Skip to content

Commit f25a81e

Browse files
Deploy Storybook preview for PR #3900
1 parent 6d53187 commit f25a81e

227 files changed

Lines changed: 208 additions & 208 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/DateRangeCalendar-Lp7Ebph4.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/allPaths-CnwBb_mq.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/allPathsLoader-Bkw813Yi.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/formatter-EIJCOSYU-C_0zDRnK.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/index-DGRndsQB.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/pdf-viewer-CtxoUIHd.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/useOsdkClient-il4guZPb.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/ActionButton-revmG3rY.js renamed to storybook/pr-3900/7656bed255520dbff102a2ef636d8965b8aaba35/assets/ActionButton-DPUhH6Lo.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/ActionForm-DlUINT1p.js renamed to storybook/pr-3900/7656bed255520dbff102a2ef636d8965b8aaba35/assets/ActionForm-CPvj9qeK.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

storybook/pr-3900/39e0cd4059a3e7e0eef9037f41c3d76190111033/assets/ActionForm.stories-vkOc1cmC.js renamed to storybook/pr-3900/7656bed255520dbff102a2ef636d8965b8aaba35/assets/ActionForm.stories-C0sCWcDE.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import{j as n,u as xe,r as D,g as De,a as Ee}from"./iframe-CNz8RlYl.js";import{F as j,S as O}from"./SubmissionOutputPanel-DUUnyvXT.js";import{A as E}from"./action-form-DqmdZXzd.js";import"./preload-helper-BIeB60q0.js";import"./DropdownField-DQKVOkv8.js";import"./debounce-DBQB4U5e.js";import"./useOsdkClient-il4guZPb.js";import"./index-XxW0KRYf.js";import"./Input-CpAPI-dP.js";import"./useBaseUiId-D4vwSczU.js";import"./useControlled-DQvqj1ii.js";import"./index-DGRndsQB.js";import"./index-BlGd4sFh.js";import"./PopoverPopup-Dj7q3xHP.js";import"./InternalBackdrop--VJLOWNr.js";import"./composite-CZy-mnNe.js";import"./index-CPfBu2RL.js";import"./getDisabledMountTransitionStyles-B2i134Af.js";import"./ToolbarRootContext-D4VXXO-L.js";import"./tick-Bs481eBK.js";import"./svgIconContainer-B0JmWAlI.js";import"./small-cross-PTH7Ve-P.js";import"./search-ERRW7qI9.js";import"./cross-CO8ceZUf.js";import"./useValueChanged-C6ABxE1k.js";import"./getPseudoElementBounds-Der8dMUs.js";import"./CompositeItem-rHSaquZY.js";import"./makeExternalStore-pBRszKy8.js";import"./BaseForm-xK3mIVy3.js";import"./ActionButton-revmG3rY.js";import"./Button-BoQYF-o_.js";import"./SkeletonBar-Sl0pLnzx.js";import"./Tooltip-CAngo_3k.js";import"./info-sign-B5KaJKdk.js";import"./chevron-up-DgraSbQm.js";import"./chevron-down-DoirlpdZ.js";import"./useEventCallback-DfP35NXy.js";import"./iconLoader-CgxA1V0b.js";import"./CompositeRoot-DlGasQEx.js";import"./Switch-Di7_drwN.js";import"./TimePicker-CIp9BYT3.js";import"./CollapsiblePanel-DvAEYQfZ.js";import"./error-DqoZ7f_W.js";import"./assertUnreachable-tCT10eXl.js";import"./withOsdkMetrics-CtoWR-rA.js";const{expect:i,fn:y,userEvent:s,waitFor:u,within:c}=__STORYBOOK_MODULE_TEST__,Ne=xe.actionDefinition,Be=De.actionDefinition,Re=Ee.actionDefinition,Pe=1500,Ie=[{fieldKey:"fullName",label:"Full name",fieldComponent:"TEXT_INPUT",defaultValue:"Grace Hopper",fieldComponentProps:{}},{fieldKey:"yearsExperience",label:"Years of experience",fieldComponent:"NUMBER_INPUT",defaultValue:42,fieldComponentProps:{min:0}},{fieldKey:"isRemote",label:"Remote employee",fieldComponent:"RADIO_BUTTONS",defaultValue:!0,fieldComponentProps:{options:[{label:"True",value:!0},{label:"False",value:!1}]}},{fieldKey:"isFullTime",label:"Employment type",fieldComponent:"DROPDOWN",defaultValue:!0,fieldComponentProps:{items:[!0,!1],itemToStringLabel:t=>t===!0?"Full-time":"Contractor",placeholder:"Select employment type"}}],Ue=[{fieldKey:"fullName",label:"Employee legal name",fieldComponent:"TEXT_INPUT",helperText:"Use the name that should appear in HR records.",fieldComponentProps:{placeholder:"Ada Lovelace",minLength:2}},{fieldKey:"yearsExperience",label:"Relevant experience",fieldComponent:"NUMBER_INPUT",helperText:"Whole years only.",fieldComponentProps:{min:0,max:80}},{fieldKey:"isRemote",label:"Remote employee",fieldComponent:"SWITCH",helperText:"Turn on when the employee is not assigned to an office.",fieldComponentProps:{}},{fieldKey:"isFullTime",label:"Employment type",fieldComponent:"DROPDOWN",helperText:"Choose whether this employee is full-time or a contractor.",fieldComponentProps:{items:[!0,!1],itemToStringLabel:t=>t===!0?"Full-time":"Contractor",placeholder:"Select employment type"}}],d=y().mockName("onSuccess"),P=y().mockName("onError"),I=y().mockName("onSubmit"),U=y().mockName("onSubmit:slow"),k=y().mockName("onSubmit:failure");function ke(t){d(t)}function B(t,e){return e(t)}function je(t,e){return e(t)}function Oe(t,e){return e(t)}const He=(t,e)=>(I(t),B(t,e)),Ke=async(t,e)=>(U(t),await Ae(Pe),B(t,e)),We=async t=>{throw k(t),await Ae(300),new Error("Demo submission failed")};function Ae(t){return new Promise(e=>setTimeout(e,t))}function R({applyStoryAction:t,onSubmit:e}){const[o,a]=D.useState({status:"idle"}),p=D.useCallback(async(r,m)=>{a({status:"submitting",submittedValues:r});try{let l;if(e==null){const K=await t(r,m);ke(K),l=K}else l=await e(r,m);return a({status:"success",submittedValues:r,response:l}),l}catch(l){throw a({status:"error",submittedValues:r,error:l}),l}},[t,e]);return{handleStoryError:D.useCallback(r=>{a(m=>({...m,status:"error",error:r})),P(r)},[]),handleStorySubmit:p,submission:o}}function _e({formFieldDefinitions:t,formTitle:e,isSubmitDisabled:o,onSubmit:a,showFormTitle:p}){const{handleStoryError:H,handleStorySubmit:r,submission:m}=R({applyStoryAction:B,onSubmit:a});return n.jsx(j,{output:n.jsx(O,{idleMessage:"Submit the form to see the action response.",snapshot:m}),children:n.jsx(E,{actionDefinition:Ne,formFieldDefinitions:t,formTitle:e,isSubmitDisabled:o,onError:H,onSubmit:r,showFormTitle:p})})}function Le(){const{handleStoryError:t,handleStorySubmit:e}=R({applyStoryAction:je});return n.jsx("div",{className:"osdkFormCard",style:{marginInline:"auto"},children:n.jsx(E,{actionDefinition:Be,onError:t,onSubmit:e,showFormTitle:!0})})}function Ve(){const{handleStoryError:t,handleStorySubmit:e,submission:o}=R({applyStoryAction:Oe});return n.jsx(j,{output:n.jsx(O,{idleMessage:"Submit the form to see the action response.",snapshot:o}),children:n.jsx(E,{actionDefinition:Re,onError:t,onSubmit:e,showFormTitle:!0})})}const jt={title:"Components/ActionForm/Usage",component:_e,tags:["beta"],parameters:{controls:{expanded:!0},docs:{description:{component:"ActionForm fetches action metadata through @osdk/react, renders fields for each action parameter, validates user input, and submits through useOsdkAction."}}},argTypes:{formFieldDefinitions:{control:!1,description:"Complete replacement for generated fields. Include every action parameter that should appear in the form."},formTitle:{control:"text",description:"Optional title used when showFormTitle is true."},isSubmitDisabled:{control:"boolean",description:"Disables the submit button before validation runs."},onSubmit:{control:!1,table:{category:"Events"}},showFormTitle:{control:"boolean",description:"Shows the form title above the generated fields."}},args:{isSubmitDisabled:!1,showFormTitle:!1}},f={render:()=>n.jsx(Le,{}),parameters:{docs:{description:{story:"Shows ActionForm's default behavior: it maps action metadata to generated field components when no formFieldDefinitions are provided."},source:{code:`import { ActionForm } from "@osdk/react-components/experimental";
1+
import{j as n,u as xe,r as D,g as De,a as Ee}from"./iframe-DNLO30Ww.js";import{F as j,S as O}from"./SubmissionOutputPanel-CD0azJao.js";import{A as E}from"./action-form-Y6UOA12q.js";import"./preload-helper-DMPS02wq.js";import"./DropdownField-Cqy_ppKQ.js";import"./debounce-spsT2235.js";import"./useOsdkClient-BWnKxiQN.js";import"./index-BXPwi4ll.js";import"./Input-ChfQp7iv.js";import"./useBaseUiId-BD76vFJo.js";import"./useControlled-DrtjR5iX.js";import"./index-ByST95mm.js";import"./index-SmrZ48_U.js";import"./PopoverPopup-Tdg4qabi.js";import"./InternalBackdrop-CgHl6qqD.js";import"./composite-Dh6pm8eM.js";import"./index-D6M7-y6_.js";import"./getDisabledMountTransitionStyles-CaxoHLLt.js";import"./ToolbarRootContext-CSBtcNyO.js";import"./tick-BmhstWDK.js";import"./svgIconContainer-BhTCIoRp.js";import"./small-cross-BAGSfF0m.js";import"./search-BPhsSIu0.js";import"./cross-DyXX2kzu.js";import"./useValueChanged-DCJA7BE8.js";import"./getPseudoElementBounds-C7vUDRr2.js";import"./CompositeItem-C2jJgszn.js";import"./makeExternalStore-DaD-3fW6.js";import"./BaseForm-DO_myelW.js";import"./ActionButton-DPUhH6Lo.js";import"./Button-G1G-2Ckd.js";import"./SkeletonBar-Dzoc_fkT.js";import"./Tooltip-BOZFqeeI.js";import"./info-sign-CSkcnrTi.js";import"./chevron-up-BKuhfsrx.js";import"./chevron-down-DkxMLSoH.js";import"./useEventCallback-CqB29WRK.js";import"./iconLoader-CBxRwrqE.js";import"./CompositeRoot-CQkGDt-3.js";import"./Switch-_CC1tKwH.js";import"./TimePicker-Dq1LdOo_.js";import"./CollapsiblePanel-BPvxPRY4.js";import"./error-DXYf62L2.js";import"./assertUnreachable-tCT10eXl.js";import"./withOsdkMetrics-CAvqvWGd.js";const{expect:i,fn:y,userEvent:s,waitFor:u,within:c}=__STORYBOOK_MODULE_TEST__,Ne=xe.actionDefinition,Be=De.actionDefinition,Re=Ee.actionDefinition,Pe=1500,Ie=[{fieldKey:"fullName",label:"Full name",fieldComponent:"TEXT_INPUT",defaultValue:"Grace Hopper",fieldComponentProps:{}},{fieldKey:"yearsExperience",label:"Years of experience",fieldComponent:"NUMBER_INPUT",defaultValue:42,fieldComponentProps:{min:0}},{fieldKey:"isRemote",label:"Remote employee",fieldComponent:"RADIO_BUTTONS",defaultValue:!0,fieldComponentProps:{options:[{label:"True",value:!0},{label:"False",value:!1}]}},{fieldKey:"isFullTime",label:"Employment type",fieldComponent:"DROPDOWN",defaultValue:!0,fieldComponentProps:{items:[!0,!1],itemToStringLabel:t=>t===!0?"Full-time":"Contractor",placeholder:"Select employment type"}}],Ue=[{fieldKey:"fullName",label:"Employee legal name",fieldComponent:"TEXT_INPUT",helperText:"Use the name that should appear in HR records.",fieldComponentProps:{placeholder:"Ada Lovelace",minLength:2}},{fieldKey:"yearsExperience",label:"Relevant experience",fieldComponent:"NUMBER_INPUT",helperText:"Whole years only.",fieldComponentProps:{min:0,max:80}},{fieldKey:"isRemote",label:"Remote employee",fieldComponent:"SWITCH",helperText:"Turn on when the employee is not assigned to an office.",fieldComponentProps:{}},{fieldKey:"isFullTime",label:"Employment type",fieldComponent:"DROPDOWN",helperText:"Choose whether this employee is full-time or a contractor.",fieldComponentProps:{items:[!0,!1],itemToStringLabel:t=>t===!0?"Full-time":"Contractor",placeholder:"Select employment type"}}],d=y().mockName("onSuccess"),P=y().mockName("onError"),I=y().mockName("onSubmit"),U=y().mockName("onSubmit:slow"),k=y().mockName("onSubmit:failure");function ke(t){d(t)}function B(t,e){return e(t)}function je(t,e){return e(t)}function Oe(t,e){return e(t)}const He=(t,e)=>(I(t),B(t,e)),Ke=async(t,e)=>(U(t),await Ae(Pe),B(t,e)),We=async t=>{throw k(t),await Ae(300),new Error("Demo submission failed")};function Ae(t){return new Promise(e=>setTimeout(e,t))}function R({applyStoryAction:t,onSubmit:e}){const[o,a]=D.useState({status:"idle"}),p=D.useCallback(async(r,m)=>{a({status:"submitting",submittedValues:r});try{let l;if(e==null){const K=await t(r,m);ke(K),l=K}else l=await e(r,m);return a({status:"success",submittedValues:r,response:l}),l}catch(l){throw a({status:"error",submittedValues:r,error:l}),l}},[t,e]);return{handleStoryError:D.useCallback(r=>{a(m=>({...m,status:"error",error:r})),P(r)},[]),handleStorySubmit:p,submission:o}}function _e({formFieldDefinitions:t,formTitle:e,isSubmitDisabled:o,onSubmit:a,showFormTitle:p}){const{handleStoryError:H,handleStorySubmit:r,submission:m}=R({applyStoryAction:B,onSubmit:a});return n.jsx(j,{output:n.jsx(O,{idleMessage:"Submit the form to see the action response.",snapshot:m}),children:n.jsx(E,{actionDefinition:Ne,formFieldDefinitions:t,formTitle:e,isSubmitDisabled:o,onError:H,onSubmit:r,showFormTitle:p})})}function Le(){const{handleStoryError:t,handleStorySubmit:e}=R({applyStoryAction:je});return n.jsx("div",{className:"osdkFormCard",style:{marginInline:"auto"},children:n.jsx(E,{actionDefinition:Be,onError:t,onSubmit:e,showFormTitle:!0})})}function Ve(){const{handleStoryError:t,handleStorySubmit:e,submission:o}=R({applyStoryAction:Oe});return n.jsx(j,{output:n.jsx(O,{idleMessage:"Submit the form to see the action response.",snapshot:o}),children:n.jsx(E,{actionDefinition:Re,onError:t,onSubmit:e,showFormTitle:!0})})}const jt={title:"Components/ActionForm/Usage",component:_e,tags:["beta"],parameters:{controls:{expanded:!0},docs:{description:{component:"ActionForm fetches action metadata through @osdk/react, renders fields for each action parameter, validates user input, and submits through useOsdkAction."}}},argTypes:{formFieldDefinitions:{control:!1,description:"Complete replacement for generated fields. Include every action parameter that should appear in the form."},formTitle:{control:"text",description:"Optional title used when showFormTitle is true."},isSubmitDisabled:{control:"boolean",description:"Disables the submit button before validation runs."},onSubmit:{control:!1,table:{category:"Events"}},showFormTitle:{control:"boolean",description:"Shows the form title above the generated fields."}},args:{isSubmitDisabled:!1,showFormTitle:!1}},f={render:()=>n.jsx(Le,{}),parameters:{docs:{description:{story:"Shows ActionForm's default behavior: it maps action metadata to generated field components when no formFieldDefinitions are provided."},source:{code:`import { ActionForm } from "@osdk/react-components/experimental";
22
33
// ActionForm reads the action definition metadata and chooses default
44
// field components for supported parameter types.

0 commit comments

Comments
 (0)