@remoteoss/remote-flows 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/dist/{chunk-BY2NZ5QF.js → chunk-4F7PYKUZ.js} +2 -2
- package/dist/chunk-4QHHDFB2.js +2 -0
- package/dist/chunk-4QHHDFB2.js.map +1 -0
- package/dist/chunk-5UXOVZY5.js +2 -0
- package/dist/chunk-5UXOVZY5.js.map +1 -0
- package/dist/{chunk-DARQDP44.js → chunk-7V6IPASW.js} +2 -2
- package/dist/chunk-A4RX3KRZ.js +2 -0
- package/dist/chunk-A4RX3KRZ.js.map +1 -0
- package/dist/{chunk-Z5SEXEAZ.js → chunk-AD7ZWPEI.js} +2 -2
- package/dist/chunk-ANPGCYMT.js +2 -0
- package/dist/chunk-ANPGCYMT.js.map +1 -0
- package/dist/{chunk-BIWKEH5R.js → chunk-DOA6BAUQ.js} +2 -2
- package/dist/{chunk-DE6ICD4X.js → chunk-FCRDQVTB.js} +2 -2
- package/dist/{chunk-HHNKZK2V.js → chunk-FI76EKUS.js} +2 -2
- package/dist/chunk-GCF5EF2A.js +2 -0
- package/dist/chunk-GCF5EF2A.js.map +1 -0
- package/dist/chunk-GKEURJR4.js +2 -0
- package/dist/chunk-GKEURJR4.js.map +1 -0
- package/dist/{chunk-P5PQMJ4T.js → chunk-IJWDAD54.js} +2 -2
- package/dist/{chunk-HGBJ3RNH.js → chunk-J2RINDSC.js} +2 -2
- package/dist/chunk-KQCZ2KSO.js +2 -0
- package/dist/chunk-KQCZ2KSO.js.map +1 -0
- package/dist/chunk-KY7BGW6H.js +2 -0
- package/dist/chunk-KY7BGW6H.js.map +1 -0
- package/dist/chunk-MKJHD77O.js +1 -0
- package/dist/chunk-MKJHD77O.js.map +1 -0
- package/dist/{chunk-ZEGD25G2.js → chunk-NZFES56Y.js} +2 -2
- package/dist/chunk-Q6GIPVSE.js +2 -0
- package/dist/chunk-Q6GIPVSE.js.map +1 -0
- package/dist/chunk-SJ56GVNV.js +2 -0
- package/dist/{chunk-ATKR5HCM.js.map → chunk-SJ56GVNV.js.map} +1 -1
- package/dist/{chunk-VWM3PP54.js → chunk-UPRUP24B.js} +2 -2
- package/dist/chunk-UPRUP24B.js.map +1 -0
- package/dist/chunk-UTCIIPYZ.js +2 -0
- package/dist/chunk-UTCIIPYZ.js.map +1 -0
- package/dist/chunk-VTAHQOKR.js +2 -0
- package/dist/chunk-VTAHQOKR.js.map +1 -0
- package/dist/{chunk-LT4TLUWZ.js → chunk-VV7RML2Q.js} +2 -2
- package/dist/chunk-WRDKLT4N.js +2 -0
- package/dist/chunk-WRDKLT4N.js.map +1 -0
- package/dist/{chunk-JEULWBZA.js → chunk-XEQTLVMV.js} +2 -2
- package/dist/chunk-YGP3O2VJ.js +2 -0
- package/dist/chunk-YGP3O2VJ.js.map +1 -0
- package/dist/chunk-YNLDKIE4.js +2 -0
- package/dist/chunk-YNLDKIE4.js.map +1 -0
- package/dist/{chunk-Q2ZB5MOF.js → chunk-YVC4OEFJ.js} +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +24 -0
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +2 -0
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js.map +1 -0
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +10 -0
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +2 -0
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js.map +1 -0
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.d.ts +5 -0
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +2 -0
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js.map +1 -0
- package/dist/flows/ContractAmendment/context.d.ts +58 -0
- package/dist/flows/ContractAmendment/context.js +2 -0
- package/dist/flows/ContractAmendment/context.js.map +1 -0
- package/dist/flows/ContractAmendment/hooks.d.ts +6 -0
- package/dist/flows/ContractAmendment/hooks.js +2 -0
- package/dist/flows/ContractAmendment/hooks.js.map +1 -0
- package/dist/flows/ContractAmendment/index.d.ts +10 -0
- package/dist/flows/ContractAmendment/index.js +2 -0
- package/dist/flows/ContractAmendment/index.js.map +1 -0
- package/dist/flows/ContractAmendment/types.d.ts +11 -0
- package/dist/flows/ContractAmendment/types.js +1 -0
- package/dist/flows/ContractAmendment/types.js.map +1 -0
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +6 -3
- package/dist/flows/CostCalculator/hooks.d.ts +5 -2
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +1 -1
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/jsonSchema.d.ts +0 -1
- package/dist/flows/CostCalculator/jsonSchema.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +1 -1
- package/dist/flows/CostCalculator/utils.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/types.d.ts +24 -1
- package/dist/flows/utils.d.ts +10 -0
- package/dist/flows/utils.js +2 -0
- package/dist/flows/utils.js.map +1 -0
- package/dist/hooks-BQWrl9Bj.d.ts +50 -0
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +65 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{types.gen-dIMXHE0Y.d.ts → types.gen-DCJSPsGk.d.ts} +1 -1
- package/package.json +2 -1
- package/dist/chunk-A5W3QNYJ.js +0 -2
- package/dist/chunk-A5W3QNYJ.js.map +0 -1
- package/dist/chunk-ATKR5HCM.js +0 -2
- package/dist/chunk-EEWCEZ3D.js +0 -2
- package/dist/chunk-EEWCEZ3D.js.map +0 -1
- package/dist/chunk-NIDHTKHS.js +0 -2
- package/dist/chunk-NIDHTKHS.js.map +0 -1
- package/dist/chunk-VWM3PP54.js.map +0 -1
- /package/dist/{chunk-BY2NZ5QF.js.map → chunk-4F7PYKUZ.js.map} +0 -0
- /package/dist/{chunk-DARQDP44.js.map → chunk-7V6IPASW.js.map} +0 -0
- /package/dist/{chunk-Z5SEXEAZ.js.map → chunk-AD7ZWPEI.js.map} +0 -0
- /package/dist/{chunk-BIWKEH5R.js.map → chunk-DOA6BAUQ.js.map} +0 -0
- /package/dist/{chunk-DE6ICD4X.js.map → chunk-FCRDQVTB.js.map} +0 -0
- /package/dist/{chunk-HHNKZK2V.js.map → chunk-FI76EKUS.js.map} +0 -0
- /package/dist/{chunk-P5PQMJ4T.js.map → chunk-IJWDAD54.js.map} +0 -0
- /package/dist/{chunk-HGBJ3RNH.js.map → chunk-J2RINDSC.js.map} +0 -0
- /package/dist/{chunk-ZEGD25G2.js.map → chunk-NZFES56Y.js.map} +0 -0
- /package/dist/{chunk-LT4TLUWZ.js.map → chunk-VV7RML2Q.js.map} +0 -0
- /package/dist/{chunk-JEULWBZA.js.map → chunk-XEQTLVMV.js.map} +0 -0
- /package/dist/{chunk-Q2ZB5MOF.js.map → chunk-YVC4OEFJ.js.map} +0 -0
package/dist/chunk-EEWCEZ3D.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as H,b as V}from"./chunk-HHNKZK2V.js";import{a}from"./chunk-ATKR5HCM.js";import{b as q}from"./chunk-OLJ2S6A6.js";import{a as r}from"./chunk-AYDF3IFZ.js";import $ from"react";import tt from"react";import{CalendarIcon as Ve}from"lucide-react";import*as f from"react";import{useFormContext as Me}from"react-hook-form";import*as A from"react";import{ChevronLeft as Se,ChevronRight as Ne}from"lucide-react";import{DayPicker as we}from"react-day-picker";function K({className:e,classNames:t,showOutsideDays:o=!0,...n}){return A.createElement(we,{showOutsideDays:o,className:a("p-3",e),classNames:{months:"flex flex-col sm:flex-row gap-2",month:"flex flex-col gap-4",caption:"flex justify-center pt-1 relative items-center w-full",caption_label:"text-sm font-medium",nav:"flex items-center gap-1",nav_button:a(H({variant:"outline"}),"size-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-x-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:a("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",n.mode==="range"?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:a(H({variant:"ghost"}),"size-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",day_range_end:"day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground aria-selected:text-muted-foreground",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...t},components:{IconLeft:r(({className:i,...l})=>A.createElement(Se,{className:a("size-4",i),...l}),"IconLeft"),IconRight:r(({className:i,...l})=>A.createElement(Ne,{className:a("size-4",i),...l}),"IconRight")},...n})}r(K,"Calendar");import*as u from"react";import{Slot as Ie}from"@radix-ui/react-slot";import{Controller as Te,FormProvider as ke,useFormContext as Le,useFormState as De}from"react-hook-form";import*as X from"react";import*as Y from"@radix-ui/react-label";function Q({className:e,...t}){return X.createElement(Y.Root,{"data-slot":"label",className:a("flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...t})}r(Q,"Label");var Z=ke,ee=u.createContext({}),b=r(({...e})=>u.createElement(ee.Provider,{value:{name:e.name}},u.createElement(Te,{...e})),"FormField"),G=r(()=>{let e=u.useContext(ee),t=u.useContext(te),{getFieldState:o}=Le(),n=De({name:e.name}),i=o(e.name,n);if(!e)throw new Error("useFormField should be used within <FormField>");let{id:l}=t;return{id:l,name:e.name,formItemId:`${l}-form-item`,formDescriptionId:`${l}-form-item-description`,formMessageId:`${l}-form-item-message`,...i}},"useFormField"),te=u.createContext({});function v({className:e,...t}){let o=u.useId();return u.createElement(te.Provider,{value:{id:o}},u.createElement("div",{"data-slot":"form-item",className:a("grid gap-2",e),...t}))}r(v,"FormItem");function x({className:e,...t}){let{error:o,formItemId:n}=G();return u.createElement(Q,{"data-slot":"form-label","data-error":!!o,className:a("text-base-color mb-1 data-[error=true]:text-destructive",e),htmlFor:n,...t})}r(x,"FormLabel");var g=u.forwardRef(({...e},t)=>{let{error:o,formItemId:n,formDescriptionId:i,formMessageId:l}=G();return u.createElement(Ie,{"data-slot":"form-control",ref:t,id:n,"aria-describedby":o?`${i} ${l}`:`${i}`,"aria-invalid":!!o,...e})});g.displayName="FormControl";function C({className:e,...t}){let{formDescriptionId:o}=G();return u.createElement("p",{"data-slot":"form-description",id:o,className:a("text-base-color text-sm",e),...t})}r(C,"FormDescription");function P({className:e,...t}){let{error:o,formMessageId:n}=G(),i=o?String(o?.message??""):t.children;return i?u.createElement("p",{"data-slot":"form-message",id:n,className:a("text-destructive text-sm",e),...t},i):null}r(P,"FormMessage");import*as M from"react";import*as S from"@radix-ui/react-popover";function oe({...e}){return M.createElement(S.Root,{"data-slot":"popover",...e})}r(oe,"Popover");function re({...e}){return M.createElement(S.Trigger,{"data-slot":"popover-trigger",...e})}r(re,"PopoverTrigger");function ae({className:e,align:t="center",sideOffset:o=4,...n}){return M.createElement(S.Portal,null,M.createElement(S.Content,{"data-slot":"popover-content",align:t,sideOffset:o,className:a("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...n}))}r(ae,"PopoverContent");import{PopoverClose as Ee}from"@radix-ui/react-popover";import{format as Be}from"date-fns";function ie({description:e,label:t,name:o}){let{control:n}=Me();return f.createElement(b,{control:n,name:o,render:({field:i})=>f.createElement(v,{className:`flex flex-col RemoteFlows__DatePickerField__Item__${o}`},f.createElement(x,{className:"RemoteFlows__DatePickerField__Label"},t),f.createElement(oe,null,f.createElement(re,{asChild:!0},f.createElement(g,null,f.createElement("div",null,f.createElement(V,{variant:"outline",className:a("w-full pl-3 text-left font-normal",!i.value&&"text-muted-foreground")},i.value?f.createElement(f.Fragment,null,Be(i.value,"yyyy-MM-dd")):f.createElement("span",null,"Pick a date"),f.createElement(Ve,{className:"ml-auto h-4 w-4 opacity-50"}))))),f.createElement(ae,{className:"w-auto p-0 RemoteFlows__DatepickerField__PopoverContent",align:"start"},f.createElement(K,{mode:"single",className:"RemoteFlows__DatepickerField__Calendar",selected:i.value,onSelect:i.onChange,components:{DayContent:r(l=>f.createElement(Ee,null,l.date.getDate()),"DayContent")},disabled:l=>l<new Date("1900-01-01")}))),e?f.createElement(C,null,e):null,f.createElement(P,null))})}r(ie,"DatePickerField");import*as k from"react";function ne({label:e,name:t,fields:o,description:n}){return k.createElement("fieldset",{className:a("border-1 border-input p-4 rounded-xl",`RemoteFlows__FieldSetField__${t}`)},k.createElement("legend",{className:"text-sm font-semibold px-2"},e),n?k.createElement("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:n}}):null,k.createElement("div",{className:"grid gap-4"},o.map(i=>{let l=z[i.type];return k.createElement(l,{...i,key:i.name,name:`${t}.${i.name}`})})))}r(ne,"FieldSetField");import*as N from"react";import{useFormContext as $e}from"react-hook-form";import y,{useState as Ae,useRef as Ge}from"react";import{Upload as ze,X as Ue}from"lucide-react";function le({onChange:e,className:t,multiple:o}){let[n,i]=Ae([]),l=Ge(null),p=r(()=>{l.current?.click()},"handleClick"),F=r(c=>{if(c.target.files&&c.target.files.length>0){let I=Array.from(c.target.files);i(I),e(c)}},"handleChange"),m=r(c=>{i(I=>I.filter(Re=>Re!==c))},"onRemoveFile");return y.createElement("div",{className:a("flex flex-col items-start gap-4",t)},y.createElement("input",{type:"file",ref:l,onChange:F,className:"hidden","aria-label":"File upload",multiple:o}),y.createElement(V,{onClick:p,className:"gap-2"},y.createElement(ze,{className:"h-4 w-4"}),"Choose File"),n.length===0&&y.createElement("div",{className:"text-sm"},o?y.createElement("span",{className:"font-medium"},"No files selected. You can select multiple files"):y.createElement("span",{className:"font-medium"},"No file selected.")),n.length>0&&n.map((c,I)=>y.createElement("div",{key:I,className:"text-sm flex items-center gap-2"},"Selected file: ",y.createElement("span",{className:"font-medium"},c.name)," (",Math.round(c.size/1024)," KB)",y.createElement(V,{variant:"ghost",onClick:()=>m(c)},y.createElement(Ue,null)))))}r(le,"FileUploader");function se({name:e,description:t,label:o,multiple:n,onChange:i}){let{control:l}=$e();return N.createElement(b,{control:l,name:e,render:({field:p,fieldState:F})=>N.createElement(v,{className:`RemoteFlows__FileUpload__Item__${e}`},N.createElement(x,{className:"RemoteFlows__FileUpload__Label"},o),N.createElement(g,null,N.createElement(le,{...p,onChange:m=>{p.onChange(m),i?.(m)},multiple:n,className:a("RemoteFlows__FileUpload__Input")})),t&&N.createElement("div",{className:"flex items-center justify-between"},N.createElement(C,{className:"RemoteFlows__FileUpload__Description"},t)),F.error&&N.createElement(P,{className:"RemoteFlows__FileUpload__Error"}))})}r(se,"FileUploadField");import*as L from"@radix-ui/react-radio-group";import{CircleIcon as He}from"lucide-react";import*as E from"react";function me({className:e,...t}){return E.createElement(L.Root,{"data-slot":"radio-group",className:a("grid gap-3",e),...t})}r(me,"RadioGroup");function ce({className:e,...t}){return E.createElement(L.Item,{"data-slot":"radio-group-item",className:a("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t},E.createElement(L.Indicator,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center"},E.createElement(He,{className:"fill-radio absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})))}r(ce,"RadioGroupItem");import*as h from"react";import{useFormContext as je}from"react-hook-form";function de({name:e,defaultValue:t,description:o,label:n,options:i}){let{control:l}=je();return h.createElement(b,{control:l,name:e,defaultValue:t,render:({field:p,fieldState:F})=>h.createElement(v,{className:a("space-y-3",`RemoteFlows__RadioGroupField__Item__${e}`)},h.createElement(x,null,n),h.createElement(g,null,h.createElement(me,{onValueChange:p.onChange,defaultValue:p.value,className:"flex flex-col space-y-1"},i.map(m=>h.createElement(v,{key:m.value,className:"flex items-center space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item"},h.createElement(g,null,h.createElement(ce,{value:m.value,className:"RemoteFlows__RadioField__Input"})),h.createElement(x,{className:"font-normal mb-0 RemoteFlows__RadioField__Label"},m.label))))),o&&h.createElement(C,null,o),F.error&&h.createElement(P,null))})}r(de,"RadioGroupField");import*as _ from"react";import*as d from"react";import*as s from"@radix-ui/react-select";import{CheckIcon as Oe,ChevronDownIcon as pe,ChevronUpIcon as We}from"lucide-react";function ue({...e}){return d.createElement(s.Root,{"data-slot":"select",...e})}r(ue,"Select");function fe({...e}){return d.createElement(s.Group,{"data-slot":"select-group",...e})}r(fe,"SelectGroup");function Fe({...e}){return d.createElement(s.Value,{"data-slot":"select-value",...e})}r(Fe,"SelectValue");function ge({className:e,children:t,...o}){return d.createElement(s.Trigger,{"data-slot":"select-trigger",className:a("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-full items-center justify-between rounded-xl border bg-transparent px-4 py-7 text-sm whitespace-nowrap transition-[color] outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","focus-visible:border-focused",e),...o},t,d.createElement(s.Icon,{asChild:!0,className:"absolute right-4"},d.createElement(pe,{className:"size-4"})))}r(ge,"SelectTrigger");function ve({className:e,children:t,position:o="popper",...n}){return d.createElement(s.Portal,null,d.createElement(s.Content,{"data-slot":"select-content",className:a("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-xl border",o==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:o,...n},d.createElement(Je,null),d.createElement(s.Viewport,{className:a(o==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1")},t),d.createElement(qe,null)))}r(ve,"SelectContent");function xe({className:e,children:t,...o}){return d.createElement(s.Item,{"data-slot":"select-item",className:a("focus:bg-accent focus:text-accent-foreground min-h-11 justify-between [&_svg:not([class*='text-'])]:text-muted-foreground flex w-full cursor-default items-center gap-2 py-2 px-4 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...o},d.createElement(s.ItemText,null,t),d.createElement("span",{className:"flex size-3.5 items-center justify-center"},d.createElement(s.ItemIndicator,null,d.createElement(Oe,{className:"size-4"}))))}r(xe,"SelectItem");function Je({className:e,...t}){return d.createElement(s.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:a("flex cursor-default items-center justify-center py-1",e),...t},d.createElement(We,{className:"size-4"}))}r(Je,"SelectScrollUpButton");function qe({className:e,...t}){return d.createElement(s.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:a("flex cursor-default items-center justify-center py-1",e),...t},d.createElement(pe,{className:"size-4"}))}r(qe,"SelectScrollDownButton");import{useFormContext as Ke}from"react-hook-form";function _e({label:e,name:t,options:o,defaultValue:n,description:i,onChange:l}){let{control:p}=Ke();return _.createElement(b,{defaultValue:n,control:p,name:t,render:({field:F,fieldState:m})=>_.createElement(v,{className:`RemoteFlows__SelectField__Item__${t}`},_.createElement(x,{className:"RemoteFlows__SelectField__Label"},e),_.createElement(g,{"aria-label":e},_.createElement("div",{className:"relative"},_.createElement(ue,{value:F.value||"",onValueChange:c=>{F.onChange(c),l?.(c)}},_.createElement(ge,{className:"RemoteFlows__SelectField__Trigger","aria-invalid":!!m.error},_.createElement("span",{className:"absolute"},_.createElement(Fe,{placeholder:e}))),_.createElement(ve,{className:"RemoteFlows__SelectField__Content"},_.createElement(fe,{className:"RemoteFlows__SelectField__Group"},o.map(c=>_.createElement(xe,{key:c.value,value:c.value,className:"RemoteFlows__SelectField__SelectItem"},c.label))))))),i&&_.createElement(C,null,i),m.error&&_.createElement(P,null))})}r(_e,"SelectField");import*as T from"react";import{useFormContext as Xe}from"react-hook-form";import*as be from"react";function Ce({className:e,type:t,...o}){return be.createElement("input",{type:t,"data-slot":"input",className:a("shadow-xs border-input file:text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-xl border bg-transparent px-4 py-7 text-sm transition-[color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-focused","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...o})}r(Ce,"Input");var Ye={type:"text",inputMode:"decimal",pattern:"^[0-9.]*$"};function j({name:e,description:t,label:o,type:n,onChange:i}){let{control:l}=Xe(),F=n==="number"?Ye:{type:n};return T.createElement(b,{control:l,name:e,render:({field:m,fieldState:c})=>T.createElement(v,{className:`RemoteFlows__TextField__Item__${e}`},T.createElement(x,{className:"RemoteFlows__TextField__Label"},o),T.createElement(g,null,T.createElement(Ce,{...m,value:m.value??"",onChange:I=>{m.onChange(I),i?.(I)},...F,className:"RemoteFlows__TextField__Input",placeholder:o})),t&&T.createElement(C,{className:"RemoteFlows__TextField__Description"},t),c.error&&T.createElement(P,{className:"RemoteFlows__TextField__Error"}))})}r(j,"TextField");import*as D from"react";import*as B from"@radix-ui/react-checkbox";import{Check as Qe}from"lucide-react";var O=D.forwardRef(({className:e,...t},o)=>D.createElement(B.Root,{ref:o,className:a("peer h-4 w-4 shrink-0 rounded-sm border border-input ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-checkbox data-[state=checked]:text-primary",e),...t},D.createElement(B.Indicator,{className:a("flex items-center justify-center text-current")},D.createElement(Qe,{className:"h-4 w-4"}))));O.displayName=B.Root.displayName;import*as w from"react";import{useFormContext as Ze}from"react-hook-form";function Pe({name:e,defaultValue:t,description:o,label:n}){let{control:i}=Ze();return w.createElement(b,{control:i,name:e,defaultValue:t,render:({field:l,fieldState:p})=>w.createElement(v,{className:a(`RemoteFlows__CheckBoxField__Item__${e}`)},w.createElement(g,null,w.createElement("div",{className:"flex space-x-2"},w.createElement(O,{id:e,onCheckedChange:l.onChange,checked:l.value,className:"RemoteFlows__CheckBox__Input"}),w.createElement(x,{htmlFor:e,className:"mb-0 RemoteFlows__CheckBox__Label"},n))),o&&w.createElement(C,null,o),p.error&&w.createElement(P,null))})}r(Pe,"CheckBoxField");import*as R from"react";import{useFormContext as et}from"react-hook-form";import*as U from"react";var W=U.forwardRef(({className:e,...t},o)=>U.createElement("textarea",{className:a("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:o,...t}));W.displayName="Textarea";function he({name:e,description:t,label:o,onChange:n,maxLength:i}){let{control:l}=et();return R.createElement(b,{control:l,name:e,render:({field:p,fieldState:F})=>{let m=p.value?.length??0;return R.createElement(v,{className:`RemoteFlows__TextArea__Item__${e}`},R.createElement(x,{className:"RemoteFlows__TextArea__Label"},o),R.createElement(g,null,R.createElement(W,{...p,value:p.value??"",onChange:c=>{p.onChange(c),n?.(c)},className:a(F.error&&"border-red-500 focus-visible:ring-red-500","RemoteFlows__TextArea__Input"),placeholder:o})),(t||i)&&R.createElement("div",{className:"flex items-center justify-between"},t&&R.createElement(C,{className:"RemoteFlows__TextArea__Description"},t),i&&R.createElement("span",{className:"text-sm ml-auto RemoteFlows__TextArea__MaxLength"},m,"/",i)),F.error&&R.createElement(P,{className:"RemoteFlows__TextArea__Error"}))}})}r(he,"TextAreaField");var z={checkbox:Pe,text:j,select:_e,radio:de,number:r(e=>tt.createElement(j,{...e,type:"text"}),"number"),file:se,fieldset:ne,date:ie,textarea:he};var ye=r(({fields:e})=>!e||e.length===0?null:$.createElement($.Fragment,null,e.map(t=>{if(t.isVisible===!1||t.deprecated)return null;let o=z[t.inputType];return o?$.createElement(o,{key:t.name,...t}):$.createElement("p",{className:"error"},"Field type ",t.inputType," not supported")})),"JSONSchemaFormFields");import J from"react";function nr({onSubmit:e,onError:t,onSuccess:o}){let{form:n,formId:i,costCalculatorBag:l}=q(),p=r(async F=>{let m=await l?.onSubmit(F);await e?.(F),m?.error?t?.(m.error):m?.data&&o?.(m?.data)},"handleSubmit");return J.createElement(Z,{...n},J.createElement("form",{id:i,onSubmit:n.handleSubmit(p),className:"space-y-4 RemoteFlows__CostCalculatorForm"},J.createElement(ye,{fields:l?.fields??[]})))}r(nr,"CostCalculatorForm");export{nr as a};
|
|
2
|
-
//# sourceMappingURL=chunk-EEWCEZ3D.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/JSONSchemaForm.tsx","../src/components/form/fields/fieldsMapping.tsx","../src/components/form/fields/DatePickerField.tsx","../src/components/ui/calendar.tsx","../src/components/ui/form.tsx","../src/components/ui/label.tsx","../src/components/ui/popover.tsx","../src/components/form/fields/FieldSetField.tsx","../src/components/form/fields/FileUploadField.tsx","../src/components/ui/file-uploader.tsx","../src/components/ui/radio-group.tsx","../src/components/form/fields/RadioGroupField.tsx","../src/components/form/fields/SelectField.tsx","../src/components/ui/select.tsx","../src/components/form/fields/TextField.tsx","../src/components/ui/input.tsx","../src/components/ui/checkbox.tsx","../src/components/form/fields/CheckBoxField.tsx","../src/components/form/fields/TextAreaField.tsx","../src/components/ui/textarea.tsx","../src/flows/CostCalculator/CostCalculatorForm.tsx"],"sourcesContent":["import React from 'react';\nimport { fieldsMap } from '@/src/components/form/fields/fieldsMapping';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport { SupportedTypes } from '@/src/components/form/fields/types';\n\ntype JSONSchemaFormFieldsProps = {\n fields: Fields;\n};\n\nexport const JSONSchemaFormFields = ({ fields }: JSONSchemaFormFieldsProps) => {\n if (!fields || fields.length === 0) return null;\n\n return (\n <>\n {fields.map((field) => {\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n const FieldComponent = fieldsMap[field.inputType as SupportedTypes];\n\n return FieldComponent ? (\n <FieldComponent key={field.name} {...field} />\n ) : (\n <p className=\"error\">\n Field type {field.inputType as string} not supported\n </p>\n );\n })}\n </>\n );\n};\n","import React from 'react';\nimport { DatePickerField } from '@/src/components/form/fields/DatePickerField';\nimport { FieldSetField } from '@/src/components/form/fields/FieldSetField';\nimport { FileUploadField } from '@/src/components/form/fields/FileUploadField';\nimport { RadioGroupField } from '@/src/components/form/fields/RadioGroupField';\nimport { SelectField } from '@/src/components/form/fields/SelectField';\nimport { TextField } from '@/src/components/form/fields/TextField';\nimport { CheckBoxField } from '@/src/components/form/fields/CheckBoxField';\nimport { TextAreaField } from '@/src/components/form/fields/TextAreaField';\nimport { SupportedTypes } from '@/src/components/form/fields/types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const fieldsMap: Record<SupportedTypes, React.ComponentType<any>> = {\n checkbox: CheckBoxField,\n text: TextField,\n select: SelectField,\n radio: RadioGroupField,\n number: (props) => <TextField {...props} type=\"text\" />,\n file: FileUploadField,\n fieldset: FieldSetField,\n date: DatePickerField,\n textarea: TextAreaField,\n};\n","import { CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Calendar } from '@/src/components/ui/calendar';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/src/components/ui/popover';\nimport { cn } from '@/src/lib/utils';\nimport { PopoverClose } from '@radix-ui/react-popover';\nimport { format } from 'date-fns';\n\ntype DatePickerFieldProps = {\n description?: string;\n label: string;\n name: string;\n};\n\nexport function DatePickerField({\n description,\n label,\n name,\n}: DatePickerFieldProps) {\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem\n className={`flex flex-col RemoteFlows__DatePickerField__Item__${name}`}\n >\n <FormLabel className=\"RemoteFlows__DatePickerField__Label\">\n {label}\n </FormLabel>\n <Popover>\n <PopoverTrigger asChild>\n <FormControl>\n <div>\n <Button\n variant={'outline'}\n className={cn(\n 'w-full pl-3 text-left font-normal',\n !field.value && 'text-muted-foreground',\n )}\n >\n {field.value ? (\n <>{format(field.value, 'yyyy-MM-dd')}</>\n ) : (\n <span>Pick a date</span>\n )}\n <CalendarIcon className=\"ml-auto h-4 w-4 opacity-50\" />\n </Button>\n </div>\n </FormControl>\n </PopoverTrigger>\n <PopoverContent\n className={`w-auto p-0 RemoteFlows__DatepickerField__PopoverContent`}\n align=\"start\"\n >\n <Calendar\n mode=\"single\"\n className=\"RemoteFlows__DatepickerField__Calendar\"\n selected={field.value}\n onSelect={field.onChange}\n components={{\n DayContent: (props) => {\n return <PopoverClose>{props.date.getDate()}</PopoverClose>;\n },\n }}\n disabled={(date) => date < new Date('1900-01-01')}\n />\n </PopoverContent>\n </Popover>\n {description ? (\n <FormDescription>{description}</FormDescription>\n ) : null}\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import * as React from 'react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '@/src/lib/utils';\nimport { buttonVariants } from '@/src/components/ui/button';\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: React.ComponentProps<typeof DayPicker>) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-3', className)}\n classNames={{\n months: 'flex flex-col sm:flex-row gap-2',\n month: 'flex flex-col gap-4',\n caption: 'flex justify-center pt-1 relative items-center w-full',\n caption_label: 'text-sm font-medium',\n nav: 'flex items-center gap-1',\n nav_button: cn(\n buttonVariants({ variant: 'outline' }),\n 'size-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n ),\n nav_button_previous: 'absolute left-1',\n nav_button_next: 'absolute right-1',\n table: 'w-full border-collapse space-x-1',\n head_row: 'flex',\n head_cell:\n 'text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]',\n row: 'flex w-full mt-2',\n cell: cn(\n 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md',\n props.mode === 'range'\n ? '[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md'\n : '[&:has([aria-selected])]:rounded-md',\n ),\n day: cn(\n buttonVariants({ variant: 'ghost' }),\n 'size-8 p-0 font-normal aria-selected:opacity-100',\n ),\n day_range_start:\n 'day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground',\n day_range_end:\n 'day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground',\n day_selected:\n 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n day_today: 'bg-accent text-accent-foreground',\n day_outside:\n 'day-outside text-muted-foreground aria-selected:text-muted-foreground',\n day_disabled: 'text-muted-foreground opacity-50',\n day_range_middle:\n 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n ...classNames,\n }}\n components={{\n IconLeft: ({ className, ...props }) => (\n <ChevronLeft className={cn('size-4', className)} {...props} />\n ),\n IconRight: ({ className, ...props }) => (\n <ChevronRight className={cn('size-4', className)} {...props} />\n ),\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar };\n","import * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { cn } from '@/src/lib/utils';\nimport { Label } from '@/src/components/ui/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn('grid gap-2', className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\n 'text-base-color mb-1 data-[error=true]:text-destructive',\n className,\n )}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nconst FormControl = React.forwardRef<\n React.ComponentRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\n\nFormControl.displayName = 'FormControl';\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-base-color text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn('text-destructive text-sm', className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import { fieldsMap } from '@/src/components/form/fields/fieldsMapping';\nimport { cn } from '@/src/lib/utils';\nimport * as React from 'react';\nimport { SupportedTypes } from './types';\n\ntype FieldBase = {\n label: string;\n name: string;\n description: string;\n};\n\ntype FieldWithOptions = FieldBase & {\n type: 'select' | 'radio';\n options: Array<{ value: string; label: string }>;\n};\n\ntype FieldWithoutOptions = FieldBase & {\n type: Exclude<SupportedTypes, 'select' | 'radio'>;\n options?: never;\n};\n\ntype Field = FieldWithOptions | FieldWithoutOptions;\n\ntype FieldSetProps = {\n label: string;\n name: string;\n description: string;\n fields: Field[];\n};\n\nexport function FieldSetField({\n label,\n name,\n fields,\n description,\n}: FieldSetProps) {\n return (\n <fieldset\n className={cn(\n 'border-1 border-input p-4 rounded-xl',\n `RemoteFlows__FieldSetField__${name}`,\n )}\n >\n <legend className=\"text-sm font-semibold px-2\">{label}</legend>\n {description ? (\n <div\n className=\"mb-5 RemoteFlows__FieldSetField__Description\"\n dangerouslySetInnerHTML={{ __html: description }}\n />\n ) : null}\n <div className=\"grid gap-4\">\n {fields.map((field) => {\n const FieldComponent = fieldsMap[field.type];\n return (\n <FieldComponent\n {...field}\n key={field.name}\n name={`${name}.${field.name}`}\n />\n );\n })}\n </div>\n </fieldset>\n );\n}\n","import * as React from 'react';\n\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { FileUploader } from '../../ui/file-uploader';\nimport { cn } from '@/src/lib/utils';\n\ntype FileUploadFieldProps = {\n label: string;\n description?: string;\n name: string;\n multiple?: boolean;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\nexport function FileUploadField({\n name,\n description,\n label,\n multiple,\n onChange,\n}: FileUploadFieldProps) {\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n return (\n <FormItem className={`RemoteFlows__FileUpload__Item__${name}`}>\n <FormLabel className=\"RemoteFlows__FileUpload__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <FileUploader\n {...field}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n field.onChange(event);\n onChange?.(event);\n }}\n multiple={multiple}\n className={cn('RemoteFlows__FileUpload__Input')}\n />\n </FormControl>\n {description && (\n <div className=\"flex items-center justify-between\">\n <FormDescription className=\"RemoteFlows__FileUpload__Description\">\n {description}\n </FormDescription>\n </div>\n )}\n {fieldState.error && (\n <FormMessage className=\"RemoteFlows__FileUpload__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n","import React, { useState, useRef } from 'react';\nimport { Button } from '@/src/components/ui/button';\nimport { Upload, X } from 'lucide-react';\nimport { cn } from '@/src/lib/utils';\n\ntype FileUploaderProps = {\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n className?: string;\n multiple?: boolean;\n};\n\nexport function FileUploader({\n onChange,\n className,\n multiple,\n}: FileUploaderProps) {\n const [files, setFiles] = useState<File[]>([]);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleClick = () => {\n inputRef.current?.click();\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const newFiles = Array.from(e.target.files);\n\n setFiles(newFiles);\n onChange(e);\n }\n };\n\n const onRemoveFile = (file: File) => {\n setFiles((prevFiles) => prevFiles.filter((f) => f !== file));\n };\n\n return (\n <div className={cn('flex flex-col items-start gap-4', className)}>\n <input\n type=\"file\"\n ref={inputRef}\n onChange={handleChange}\n className=\"hidden\"\n aria-label=\"File upload\"\n multiple={multiple}\n />\n <Button onClick={handleClick} className=\"gap-2\">\n <Upload className=\"h-4 w-4\" />\n Choose File\n </Button>\n {files.length === 0 && (\n <div className=\"text-sm\">\n {!multiple ? (\n <span className=\"font-medium\">No file selected.</span>\n ) : (\n <span className=\"font-medium\">\n No files selected. You can select multiple files\n </span>\n )}\n </div>\n )}\n {files.length > 0 &&\n files.map((file, index) => (\n <div key={index} className=\"text-sm flex items-center gap-2\">\n Selected file: <span className=\"font-medium\">{file.name}</span> (\n {Math.round(file.size / 1024)} KB)\n <Button variant=\"ghost\" onClick={() => onRemoveFile(file)}>\n <X />\n </Button>\n </div>\n ))}\n </div>\n );\n}\n","import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { CircleIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn('grid gap-3', className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-radio absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n","import {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { RadioGroup, RadioGroupItem } from '@/src/components/ui/radio-group';\nimport { cn } from '@/src/lib/utils';\nimport * as React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\ntype RadioGroupFieldProps = {\n name: string;\n label: string;\n description?: string;\n defaultValue?: string;\n options: Array<{ value: string; label: string }>;\n};\n\nexport function RadioGroupField({\n name,\n defaultValue,\n description,\n label,\n options,\n}: RadioGroupFieldProps) {\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormItem\n className={cn(\n 'space-y-3',\n `RemoteFlows__RadioGroupField__Item__${name}`,\n )}\n >\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <RadioGroup\n onValueChange={field.onChange}\n defaultValue={field.value}\n className=\"flex flex-col space-y-1\"\n >\n {options.map((option) => (\n <FormItem\n key={option.value}\n className=\"flex items-center space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item\"\n >\n <FormControl>\n <RadioGroupItem\n value={option.value}\n className=\"RemoteFlows__RadioField__Input\"\n />\n </FormControl>\n <FormLabel className=\"font-normal mb-0 RemoteFlows__RadioField__Label\">\n {option.label}\n </FormLabel>\n </FormItem>\n ))}\n </RadioGroup>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n )}\n />\n );\n}\n","import * as React from 'react';\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/src/components/ui/select';\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\n\ntype SelectFieldProps = {\n label: string;\n name: string;\n placeholder?: string;\n description?: string;\n options: Array<{ value: string; label: string }>;\n defaultValue?: string;\n className?: string;\n onChange?: (value: string) => void;\n};\n\nexport function SelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n}: SelectFieldProps) {\n const { control } = useFormContext();\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n return (\n <FormItem className={`RemoteFlows__SelectField__Item__${name}`}>\n <FormLabel className=\"RemoteFlows__SelectField__Label\">\n {label}\n </FormLabel>\n <FormControl aria-label={label}>\n <div className=\"relative\">\n <Select\n value={field.value || ''}\n onValueChange={(value: string) => {\n field.onChange(value);\n onChange?.(value);\n }}\n >\n <SelectTrigger\n className=\"RemoteFlows__SelectField__Trigger\"\n aria-invalid={Boolean(fieldState.error)}\n >\n <span className=\"absolute\">\n <SelectValue placeholder={label} />\n </span>\n </SelectTrigger>\n <SelectContent className=\"RemoteFlows__SelectField__Content\">\n <SelectGroup className=\"RemoteFlows__SelectField__Group\">\n {options.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n className=\"RemoteFlows__SelectField__SelectItem\"\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-full items-center justify-between rounded-xl border bg-transparent px-4 py-7 text-sm whitespace-nowrap transition-[color] outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n 'focus-visible:border-focused',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild className=\"absolute right-4\">\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-xl border',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1.5 text-sm font-medium', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground min-h-11 justify-between [&_svg:not([class*='text-'])]:text-muted-foreground flex w-full cursor-default items-center gap-2 py-2 px-4 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <span className=\"flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import * as React from 'react';\n\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { Input } from '../../ui/input';\n\ntype TextFieldProps = React.ComponentProps<'input'> & {\n label: string;\n description?: string;\n name: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype InputModeAttrsProps = Pick<\n React.ComponentProps<'input'>,\n 'type' | 'inputMode' | 'pattern'\n>;\n\nconst inputModeAttrs: InputModeAttrsProps = {\n type: 'text',\n inputMode: 'decimal',\n pattern: '^[0-9.]*$',\n};\n\nexport function TextField({\n name,\n description,\n label,\n type,\n onChange,\n}: TextFieldProps) {\n const { control } = useFormContext();\n const isTypeNumber = type === 'number';\n const typeAttrs = isTypeNumber ? inputModeAttrs : { type };\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => (\n <FormItem className={`RemoteFlows__TextField__Item__${name}`}>\n <FormLabel className=\"RemoteFlows__TextField__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <Input\n {...field}\n value={field.value ?? ''}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n field.onChange(event);\n onChange?.(event);\n }}\n {...typeAttrs}\n className=\"RemoteFlows__TextField__Input\"\n placeholder={label}\n />\n </FormControl>\n {description && (\n <FormDescription className=\"RemoteFlows__TextField__Description\">\n {description}\n </FormDescription>\n )}\n {fieldState.error && (\n <FormMessage className=\"RemoteFlows__TextField__Error\" />\n )}\n </FormItem>\n )}\n />\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'shadow-xs border-input file:text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-xl border bg-transparent px-4 py-7 text-sm transition-[color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-focused',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","'use client';\n\nimport * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer h-4 w-4 shrink-0 rounded-sm border border-input ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-checkbox data-[state=checked]:text-primary',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn('flex items-center justify-center text-current')}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { Checkbox } from '@/src/components/ui/checkbox';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { cn } from '@/src/lib/utils';\nimport * as React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\ntype CheckBoxFieldProps = {\n name: string;\n label: string;\n description?: string;\n defaultValue?: string;\n};\n\nexport function CheckBoxField({\n name,\n defaultValue,\n description,\n label,\n}: CheckBoxFieldProps) {\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n return (\n <FormItem className={cn(`RemoteFlows__CheckBoxField__Item__${name}`)}>\n <FormControl>\n <div className=\"flex space-x-2\">\n <Checkbox\n id={name}\n onCheckedChange={field.onChange}\n checked={field.value}\n className=\"RemoteFlows__CheckBox__Input\"\n />\n <FormLabel\n htmlFor={name}\n className=\"mb-0 RemoteFlows__CheckBox__Label\"\n >\n {label}\n </FormLabel>\n </div>\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n {fieldState.error && <FormMessage />}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { useFormContext } from 'react-hook-form';\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui/form';\nimport { Textarea } from '../../ui/textarea';\nimport { cn } from '@/src/lib/utils';\n\ntype TextAreaFieldProps = {\n label: string;\n description?: string;\n name: string;\n maxLength?: number;\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n};\n\nexport function TextAreaField({\n name,\n description,\n label,\n onChange,\n maxLength,\n}: TextAreaFieldProps) {\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const valueLength = field.value?.length ?? 0;\n return (\n <FormItem className={`RemoteFlows__TextArea__Item__${name}`}>\n <FormLabel className=\"RemoteFlows__TextArea__Label\">\n {label}\n </FormLabel>\n <FormControl>\n <Textarea\n {...field}\n value={field.value ?? ''}\n onChange={(event: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(event);\n onChange?.(event);\n }}\n className={cn(\n fieldState.error &&\n 'border-red-500 focus-visible:ring-red-500',\n 'RemoteFlows__TextArea__Input',\n )}\n placeholder={label}\n />\n </FormControl>\n {(description || maxLength) && (\n <div className=\"flex items-center justify-between\">\n {description && (\n <FormDescription className=\"RemoteFlows__TextArea__Description\">\n {description}\n </FormDescription>\n )}\n {maxLength && (\n <span className=\"text-sm ml-auto RemoteFlows__TextArea__MaxLength\">\n {valueLength}/{maxLength}\n </span>\n )}\n </div>\n )}\n {fieldState.error && (\n <FormMessage className=\"RemoteFlows__TextArea__Error\" />\n )}\n </FormItem>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<'textarea'>\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n","import { CostCalculatorEstimateResponse } from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useCostCalculatorContext } from '@/src/flows/CostCalculator/context';\nimport { EstimationError } from '@/src/flows/CostCalculator/hooks';\nimport { CostCalculatorEstimationFormValues } from '@/src/flows/CostCalculator/types';\nimport React from 'react';\n\ntype CostCalculatorFormProps = Partial<{\n /**\n * Callback function that handles form submission. When form is submit, the form values are sent to the consumer app before behind submitted to Remote.\n * @param data - The payload sent to the /cost-calculator/estimation endpoint.\n */\n onSubmit: (data: CostCalculatorEstimationFormValues) => Promise<void> | void;\n /**\n * Callback function to handle the success when the estimation succeeds. The CostCalculatorEstimateResponse is sent back to you.\n * @param data - The response data from the /cost-calculator/estimation endpoint.\n */\n onSuccess: (data: CostCalculatorEstimateResponse) => Promise<void> | void;\n /**\n * Callback function to handle the error when the estimation fails.\n * @param error - The error object.\n */\n onError: (error: EstimationError) => void;\n}>;\n\nexport function CostCalculatorForm({\n onSubmit,\n onError,\n onSuccess,\n}: CostCalculatorFormProps) {\n const { form, formId, costCalculatorBag } = useCostCalculatorContext();\n\n const handleSubmit = async (values: CostCalculatorEstimationFormValues) => {\n const costCalculatorResults = await costCalculatorBag?.onSubmit(values);\n\n await onSubmit?.(values);\n if (costCalculatorResults?.error) {\n onError?.(costCalculatorResults.error);\n } else {\n if (costCalculatorResults?.data) {\n onSuccess?.(costCalculatorResults?.data);\n }\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4 RemoteFlows__CostCalculatorForm\"\n >\n <JSONSchemaFormFields fields={costCalculatorBag?.fields ?? []} />\n </form>\n </Form>\n );\n}\n"],"mappings":"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","names":["React","React","CalendarIcon","React","useFormContext","React","ChevronLeft","ChevronRight","DayPicker","Calendar","className","classNames","showOutsideDays","props","DayPicker","cn","buttonVariants","__name","ChevronLeft","ChevronRight","React","Slot","Controller","FormProvider","useFormContext","useFormState","React","LabelPrimitive","Label","className","props","cn","__name","Form","FormProvider","FormFieldContext","FormField","__name","props","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","useFormContext","formState","useFormState","fieldState","id","FormItem","className","cn","FormLabel","error","formItemId","Label","FormControl","ref","formDescriptionId","formMessageId","Slot","FormDescription","FormMessage","body","React","PopoverPrimitive","Popover","props","__name","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","PopoverClose","format","DatePickerField","description","label","name","control","useFormContext","FormField","field","FormItem","FormLabel","Popover","PopoverTrigger","FormControl","Button","cn","format","CalendarIcon","PopoverContent","Calendar","__name","props","PopoverClose","date","FormDescription","FormMessage","React","FieldSetField","label","name","fields","description","cn","field","FieldComponent","fieldsMap","__name","React","useFormContext","React","useState","useRef","Upload","X","FileUploader","onChange","className","multiple","files","setFiles","useState","inputRef","useRef","handleClick","__name","handleChange","e","newFiles","onRemoveFile","file","prevFiles","f","React","cn","Button","Upload","index","X","FileUploadField","name","description","label","multiple","onChange","control","useFormContext","FormField","field","fieldState","FormItem","FormLabel","FormControl","FileUploader","event","cn","FormDescription","FormMessage","__name","RadioGroupPrimitive","CircleIcon","React","RadioGroup","className","props","cn","__name","RadioGroupItem","CircleIcon","React","useFormContext","RadioGroupField","name","defaultValue","description","label","options","control","useFormContext","FormField","field","fieldState","FormItem","cn","FormLabel","FormControl","RadioGroup","option","RadioGroupItem","FormDescription","FormMessage","__name","React","React","SelectPrimitive","CheckIcon","ChevronDownIcon","ChevronUpIcon","Select","props","__name","SelectGroup","SelectValue","SelectTrigger","className","children","cn","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectItem","className","children","props","cn","CheckIcon","__name","SelectScrollUpButton","className","props","cn","ChevronUpIcon","__name","SelectScrollDownButton","ChevronDownIcon","useFormContext","SelectField","label","name","options","defaultValue","description","onChange","control","useFormContext","FormField","field","fieldState","FormItem","FormLabel","FormControl","Select","value","SelectTrigger","SelectValue","SelectContent","SelectGroup","option","SelectItem","FormDescription","FormMessage","__name","React","useFormContext","React","Input","className","type","props","cn","__name","inputModeAttrs","TextField","name","description","label","type","onChange","control","useFormContext","typeAttrs","FormField","field","fieldState","FormItem","FormLabel","FormControl","Input","event","FormDescription","FormMessage","__name","React","CheckboxPrimitive","Check","Checkbox","className","props","ref","cn","Check","React","useFormContext","CheckBoxField","name","defaultValue","description","label","control","useFormContext","FormField","field","fieldState","FormItem","cn","FormControl","Checkbox","FormLabel","FormDescription","FormMessage","__name","React","useFormContext","React","Textarea","className","props","ref","cn","TextAreaField","name","description","label","onChange","maxLength","control","useFormContext","FormField","field","fieldState","valueLength","FormItem","FormLabel","FormControl","Textarea","event","cn","FormDescription","FormMessage","__name","fieldsMap","CheckBoxField","TextField","SelectField","RadioGroupField","__name","props","React","FileUploadField","FieldSetField","DatePickerField","TextAreaField","JSONSchemaFormFields","__name","fields","React","field","FieldComponent","fieldsMap","React","CostCalculatorForm","onSubmit","onError","onSuccess","form","formId","costCalculatorBag","useCostCalculatorContext","handleSubmit","__name","values","costCalculatorResults","React","Form","JSONSchemaFormFields"]}
|
package/dist/chunk-NIDHTKHS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as D}from"./chunk-VWM3PP54.js";import{c as O}from"./chunk-ATKR5HCM.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{object as Pe}from"yup";import{formDataBodySerializer as Ie}from"@hey-api/client-fetch";import{createClient as ee,createConfig as te}from"@hey-api/client-fetch";var h=ee(te({baseUrl:"https://gateway.remote.com/"}));var G=t(e=>(e.client??h).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/estimation",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateEstimation");var I=t(e=>(e?.client??h).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/estimation-pdf",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateEstimationPdf");var v=t(e=>(e.client??h).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/countries",...e}),"getIndexCountry");var S=t(e=>(e.client??h).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/regions/{slug}/fields",...e}),"getShowRegionField");var U=t(e=>(e?.client??h).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/company-currencies",...e}),"getIndexCompanyCurrency");import{createClient as he}from"@hey-api/client-fetch";import{QueryClient as de,QueryClientProvider as me,useQuery as ue}from"@tanstack/react-query";import C,{createContext as Ee,useContext as ye,useRef as A}from"react";var k={staging:"https://gateway.niceremote.com",partners:"https://gateway.partners.remote-sandbox.com",production:"https://gateway.remote.com"};function y(e){let r=document.documentElement;Object.keys(e).forEach(o=>{let n=e[o];n&&r.style.setProperty(o,n)})}t(y,"setCssProperties");function re(e){let r={};return Object.keys(e).forEach(o=>{r[`--${o}`]=e[o]}),r}t(re,"mapThemeColors");function oe(e){return{"--spacing":e}}t(oe,"mapThemeSpacing");function ne(e){return{"--radius":e}}t(ne,"mapThemeBorderRadius");function ae(e){return{"--fontSizeBase":e.fontSizeBase}}t(ae,"mapThemeFont");function B(e){e?.colors&&y(re(e.colors)),e?.spacing&&y(oe(e.spacing)),e?.borderRadius&&y(ne(e.borderRadius)),e?.font&&y(ae(e.font))}t(B,"applyTheme");import se,{createContext as ie,useEffect as le,useMemo as pe}from"react";var ce=ie({theme:{}});function q(e){le(()=>{e.theme&&Object.keys(e.theme).length>0&&B(e.theme)},[e.theme]);let r=pe(()=>({theme:e.theme}),[e.theme]);return se.createElement(ce.Provider,{value:r},e.children)}t(q,"ThemeProvider");var Ce=new de,F=Ee({client:null}),m=t(()=>ye(F),"useClient");function we({children:e,auth:r,isTestingMode:o}){let n=A(null),{refetch:i}=ue({queryKey:["auth"],queryFn:r,enabled:!1}),l=o?k.partners:"https://gateway.remote.com",c=A(he({...h.getConfig(),baseUrl:l,auth:t(async()=>{function u(p){return!p||Date.now()+6e4>p}if(t(u,"hasTokenExpired"),!n.current||u(n.current.expiresAt)){let{data:p}=await i();p&&(n.current={accessToken:p.accessToken,expiresAt:Date.now()+p.expiresIn*1e3})}return n.current?.accessToken},"auth")}));return C.createElement(F.Provider,{value:{client:c.current}},e)}t(we,"RemoteFlowContextWrapper");function $e({auth:e,children:r,isTestingMode:o=!1,theme:n}){return C.createElement(me,{client:Ce},C.createElement(we,{isTestingMode:o,auth:e},C.createElement(q,{theme:n},r)))}t($e,"RemoteFlows");import{createHeadlessForm as W,modify as M}from"@remoteoss/json-schema-form";import{useMutation as z,useQuery as x}from"@tanstack/react-query";import{useState as _}from"react";import{string as V}from"yup";var fe=t(({includePremiumBenefits:e})=>{let{client:r}=m();return x({queryKey:["cost-calculator-countries",e],queryFn:t(()=>v({client:r,headers:{Authorization:""},query:{include_premium_benefits:e}}),"queryFn"),select:t(o=>o.data?.data.map(n=>({value:n.region_slug,label:n.name,childRegions:n.child_regions,hasAdditionalFields:n.has_additional_fields,regionSlug:n.region_slug})),"select")})},"useCostCalculatorCountries"),Te=t(()=>{let{client:e}=m();return x({queryKey:["company-currencies"],queryFn:t(()=>U({client:e,headers:{Authorization:""}}),"queryFn"),select:t(r=>r.data?.data?.company_currencies.map(o=>({value:o.slug,label:o.code})),"select")})},"useCompanyCurrencies"),Oe=t(()=>{let{client:e}=m();return z({mutationFn:t(r=>G({client:e,headers:{Authorization:""},body:r}),"mutationFn")})},"useCostCalculatorEstimation"),dt=t(()=>{let{client:e}=m();return z({mutationFn:t(r=>I({client:e,headers:{Authorization:""},body:r}),"mutationFn")})},"useCostCalculatorEstimationPdf"),xe=t((e,{includePremiumBenefits:r,options:o})=>{let{client:n}=m();return x({queryKey:["cost-calculator-region-fields",e,r],queryFn:t(()=>S({client:n,headers:{Authorization:""},path:{slug:e},query:{include_premium_benefits:r}}),"queryFn"),enabled:!!e,select:t(({data:i})=>{let l=i?.data?.schema||{};if(o&&o.jsfModify){let{schema:c}=M(l,o.jsfModify);l=c}return W(l)},"select")})},"useRegionFields"),P={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1},mt=t(({defaultRegion:e,estimationOptions:r,options:o}={estimationOptions:P})=>{let{schema:n}=M(D.data.schema,o?.jsfModify||{}),i=W(n),[l,c]=_(e),[u,p]=_(),{data:w,isLoading:N}=fe({includePremiumBenefits:r.includePremiumBenefits}),{data:b,isLoading:J}=Te(),H=l||u?.value,{data:K,isLoading:Q}=xe(H,{includePremiumBenefits:r.includePremiumBenefits,options:o}),R=Oe();async function $(a){try{await f.validate(a,{abortEarly:!1})}catch(s){return{data:null,error:s}}return new Promise((s,T)=>{R.mutate(L(a,r),{onSuccess:t(E=>{E.data?s({data:E.data,error:null}):s({data:null,error:new Error("Something went wrong. Please try again later.")})},"onSuccess"),onError:t(E=>{T({data:null,error:E})},"onError")})})}t($,"onSubmit");function Y(a){let s=w?.find(({value:T})=>T===a);s&&s.childRegions.length===0&&s.hasAdditionalFields?c(s.regionSlug):c(void 0),p(s)}t(Y,"onCountryChange");function X(a){c(a)}t(X,"onRegionChange");let d=i.fields.find(a=>a.name==="region");if(d){let a=u?.childRegions.map(s=>({value:s.slug,label:s.name}))??[];d.options=a,d.isVisible=a.length>0,d.required=a.length>0,d.onChange=X,d.schema=a.length>0?V().required("Region is required"):V()}if(b){let a=i.fields.find(s=>s.name==="currency");a&&(a.options=b)}if(w){let a=i.fields.find(s=>s.name==="country");a&&(a.options=w,a.onChange=Y)}let Z=t(()=>{p(void 0),c(e)},"resetForm"),g=[...i.fields,...K?.fields||[]],f=j(g);return{stepState:{current:0,total:1,isLastStep:!0},fields:g,validationSchema:f,handleValidation:t(a=>f.validate(a,{abortEarly:!1}),"handleValidation"),isSubmitting:R.isPending,isLoading:N&&J&&Q,onSubmit:$,resetForm:Z}},"useCostCalculator");function j(e){let r=e.reduce((o,n)=>(o[n.name]=n.schema,o),{});return Pe(r)}t(j,"buildValidationSchema");function be(e){let r="benefit-";return Object.keys(e).reduce((o,n)=>{let l={benefit_group_slug:n.replace(r,""),benefit_tier_slug:e[n]};return[...o,l]},[])}t(be,"formatBenefits");function L(e,r=P){return{employer_currency_slug:e.currency,include_benefits:r.includeBenefits,include_cost_breakdowns:r.includeCostBreakdowns,include_premium_benefits:r.includePremiumBenefits,employments:[{region_slug:e.region||e.country,annual_gross_salary:O(e.salary),annual_gross_salary_in_employer_currency:O(e.salary),employment_term:e.contract_duration_type??"fixed",title:r.title,regional_to_employer_exchange_rate:"1",age:e.age??void 0,...e.benefits&&{benefits:be(e.benefits)}}]}}t(L,"buildPayload");export{$e as a,j as b,L as c,dt as d,P as e,mt as f};
|
|
2
|
-
//# sourceMappingURL=chunk-NIDHTKHS.js.map
|