@customafk/lunas-ui 0.1.94 → 0.1.95

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.
Files changed (142) hide show
  1. package/dist/{button-CHTjm4n8.d.cts → button-BRHW1rSO.d.cts} +7 -7
  2. package/dist/{button-c61Vw1Ns.d.mts → button-DgVnlWul.d.mts} +7 -7
  3. package/dist/cards/simple-card.d.mts +2 -2
  4. package/dist/data-display/empty.d.cts +2 -2
  5. package/dist/data-display/empty.d.mts +2 -2
  6. package/dist/data-display/statistic.d.cts +2 -2
  7. package/dist/data-display/statistic.d.mts +2 -2
  8. package/dist/{dialog-CyLgmqny.d.cts → dialog-B4h77Z-1.d.mts} +12 -12
  9. package/dist/{dialog-DdkuhWsq.d.mts → dialog-zsQVCZzj.d.cts} +12 -12
  10. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +25 -25
  11. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +27 -27
  12. package/dist/features/descriptions/index.d.cts +4 -4
  13. package/dist/features/search-modal/index.d.cts +2 -2
  14. package/dist/features/search-modal/index.d.mts +2 -2
  15. package/dist/features/tables/index.d.cts +23 -23
  16. package/dist/features/tables/index.d.mts +1 -1
  17. package/dist/features/tanstack-form/index.cjs +1 -1
  18. package/dist/features/tanstack-form/index.cjs.map +1 -1
  19. package/dist/features/tanstack-form/index.d.cts +224 -224
  20. package/dist/features/tanstack-form/index.mjs +1 -1
  21. package/dist/features/tanstack-form/index.mjs.map +1 -1
  22. package/dist/{input-BMz2evzs.d.mts → input-Dv7UKl6Z.d.mts} +4 -4
  23. package/dist/{input-mGRGirZ_.d.cts → input-VtO0d8O-.d.cts} +6 -6
  24. package/dist/layouts/flex.d.cts +5 -5
  25. package/dist/layouts/flex.d.mts +5 -5
  26. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  27. package/dist/pages/FeatureDeveloping.d.mts +2 -2
  28. package/dist/pages/FeatureFixing.d.cts +2 -2
  29. package/dist/pages/FeatureFixing.d.mts +2 -2
  30. package/dist/pages/NotAuthorized.d.cts +2 -2
  31. package/dist/pages/NotAuthorized.d.mts +2 -2
  32. package/dist/pages/NotFound.d.cts +2 -2
  33. package/dist/pages/NotFound.d.mts +2 -2
  34. package/dist/typography/paragraph.d.cts +3 -3
  35. package/dist/typography/paragraph.d.mts +5 -5
  36. package/dist/typography/title.d.cts +2 -2
  37. package/dist/typography/title.d.mts +2 -2
  38. package/dist/ui/alert-dialog.d.cts +12 -12
  39. package/dist/ui/alert-dialog.d.mts +12 -12
  40. package/dist/ui/alert.d.cts +5 -5
  41. package/dist/ui/alert.d.mts +7 -7
  42. package/dist/ui/aspect-ratio.d.cts +2 -2
  43. package/dist/ui/aspect-ratio.d.mts +2 -2
  44. package/dist/ui/avatar.d.cts +4 -4
  45. package/dist/ui/avatar.d.mts +4 -4
  46. package/dist/ui/badge.d.cts +5 -5
  47. package/dist/ui/badge.d.mts +5 -5
  48. package/dist/ui/breadcrumb.d.cts +8 -8
  49. package/dist/ui/breadcrumb.d.mts +8 -8
  50. package/dist/ui/button-group.d.cts +6 -6
  51. package/dist/ui/button-group.d.mts +6 -6
  52. package/dist/ui/button.d.cts +1 -1
  53. package/dist/ui/button.d.mts +1 -1
  54. package/dist/ui/calendar.d.cts +4 -4
  55. package/dist/ui/calendar.d.mts +4 -4
  56. package/dist/ui/card.d.cts +8 -8
  57. package/dist/ui/card.d.mts +8 -8
  58. package/dist/ui/carousel.d.cts +7 -7
  59. package/dist/ui/carousel.d.mts +7 -7
  60. package/dist/ui/checkbox.d.cts +2 -2
  61. package/dist/ui/checkbox.d.mts +2 -2
  62. package/dist/ui/collapsible.d.cts +4 -4
  63. package/dist/ui/collapsible.d.mts +4 -4
  64. package/dist/ui/command.d.cts +11 -11
  65. package/dist/ui/command.d.mts +11 -11
  66. package/dist/ui/context-menu.d.cts +16 -16
  67. package/dist/ui/context-menu.d.mts +16 -16
  68. package/dist/ui/dialog.d.cts +1 -1
  69. package/dist/ui/dialog.d.mts +1 -1
  70. package/dist/ui/drawer.d.cts +11 -11
  71. package/dist/ui/drawer.d.mts +11 -11
  72. package/dist/ui/dropdown-menu.d.cts +16 -16
  73. package/dist/ui/dropdown-menu.d.mts +16 -16
  74. package/dist/ui/empty.d.cts +9 -9
  75. package/dist/ui/empty.d.mts +9 -9
  76. package/dist/ui/field.d.cts +13 -13
  77. package/dist/ui/field.d.mts +24 -24
  78. package/dist/ui/file-uploader.d.cts +2 -2
  79. package/dist/ui/file-uploader.d.mts +2 -2
  80. package/dist/ui/form.d.cts +11 -11
  81. package/dist/ui/form.d.mts +7 -7
  82. package/dist/ui/hover-card.d.cts +4 -4
  83. package/dist/ui/hover-card.d.mts +4 -4
  84. package/dist/ui/input-otp.d.cts +5 -5
  85. package/dist/ui/input-otp.d.mts +5 -5
  86. package/dist/ui/input.d.cts +1 -1
  87. package/dist/ui/input.d.mts +1 -1
  88. package/dist/ui/inputs/search-input.d.cts +3 -3
  89. package/dist/ui/inputs/search-input.d.mts +3 -3
  90. package/dist/ui/item.d.cts +15 -15
  91. package/dist/ui/item.d.mts +15 -15
  92. package/dist/ui/label.d.cts +2 -2
  93. package/dist/ui/label.d.mts +2 -2
  94. package/dist/ui/menubar.d.cts +17 -17
  95. package/dist/ui/menubar.d.mts +17 -17
  96. package/dist/ui/multi-select.d.cts +2 -2
  97. package/dist/ui/multi-select.d.mts +3 -3
  98. package/dist/ui/navigation-menu.d.cts +11 -11
  99. package/dist/ui/navigation-menu.d.mts +11 -11
  100. package/dist/ui/pagination.d.cts +9 -9
  101. package/dist/ui/pagination.d.mts +9 -9
  102. package/dist/ui/popover.d.cts +6 -6
  103. package/dist/ui/popover.d.mts +6 -6
  104. package/dist/ui/progress.d.cts +2 -2
  105. package/dist/ui/progress.d.mts +2 -2
  106. package/dist/ui/radio-group.d.cts +3 -3
  107. package/dist/ui/radio-group.d.mts +3 -3
  108. package/dist/ui/resizable.d.cts +9 -9
  109. package/dist/ui/resizable.d.mts +9 -9
  110. package/dist/ui/scroll-area.d.cts +6 -6
  111. package/dist/ui/scroll-area.d.mts +6 -6
  112. package/dist/ui/select.d.cts +9 -9
  113. package/dist/ui/select.d.mts +9 -9
  114. package/dist/ui/separator.d.cts +2 -2
  115. package/dist/ui/separator.d.mts +2 -2
  116. package/dist/ui/sheet.d.cts +9 -9
  117. package/dist/ui/sheet.d.mts +9 -9
  118. package/dist/ui/sidebar.d.cts +27 -27
  119. package/dist/ui/sidebar.d.mts +29 -29
  120. package/dist/ui/skeleton.d.cts +2 -2
  121. package/dist/ui/skeleton.d.mts +2 -2
  122. package/dist/ui/slider.d.cts +2 -2
  123. package/dist/ui/slider.d.mts +2 -2
  124. package/dist/ui/sonner.d.cts +2 -2
  125. package/dist/ui/sonner.d.mts +2 -2
  126. package/dist/ui/spinner.d.cts +2 -2
  127. package/dist/ui/spinner.d.mts +2 -2
  128. package/dist/ui/switch.d.cts +2 -2
  129. package/dist/ui/switch.d.mts +2 -2
  130. package/dist/ui/table.d.cts +9 -9
  131. package/dist/ui/table.d.mts +9 -9
  132. package/dist/ui/tabs.d.cts +5 -5
  133. package/dist/ui/tabs.d.mts +5 -5
  134. package/dist/ui/textarea.d.cts +2 -2
  135. package/dist/ui/textarea.d.mts +2 -2
  136. package/dist/ui/toggle-group.d.cts +3 -3
  137. package/dist/ui/toggle-group.d.mts +3 -3
  138. package/dist/ui/toggle.d.cts +5 -5
  139. package/dist/ui/toggle.d.mts +5 -5
  140. package/dist/ui/tooltip.d.cts +5 -5
  141. package/dist/ui/tooltip.d.mts +5 -5
  142. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import"../../heading--VmdIi7C.mjs";import"../../paragraph-BTJV4aeF.mjs";import"../../button.variants-CL2rLGYO.mjs";import{t as e}from"../../button-C_yZHudZ.mjs";import{t}from"../../separator-Bf0gymN4.mjs";import{t as n}from"../../close-DfuHB7kq.mjs";import{c as r,l as i,r as a,s as o,t as s}from"../../dialog-DSvmcuYl.mjs";import{t as c}from"../../checkbox-Bg2FiuQw.mjs";import{t as l}from"../../input-DBtIgQB6.mjs";import{a as u,i as d,t as f}from"../../popover-BckwBuuD.mjs";import{t as p}from"../../calendar-e9Pu8pNj.mjs";import{n as m,t as h}from"../../radio-group-Cem8O6BK.mjs";import{c as g,i as _,n as v,s as y,t as b}from"../../select-CivtMKTM.mjs";import{t as x}from"../../textarea-bLtmb71c.mjs";import{cn as S}from"@customafk/react-toolkit/utils";import{cva as C}from"class-variance-authority";import{memo as w,useCallback as T,useEffect as ee,useMemo as E,useRef as te,useState as D}from"react";import{jsx as O,jsxs as k}from"react/jsx-runtime";import{ArrowDownToLine as A,AtSignIcon as j,BanIcon as M,CalendarDaysIcon as N,EyeIcon as ne,EyeOffIcon as P,Loader2 as re,Loader2Icon as F,PackagePlusIcon as ie,PlusIcon as ae,Trash2Icon as oe,XIcon as se}from"lucide-react";import{endOfToday as I,endOfTomorrow as ce,endOfYesterday as le,format as ue,lastDayOfMonth as de,startOfMonth as fe,subDays as L}from"@customafk/react-toolkit/date-fns";import{Dialog as R,Label as pe,Separator as me,Switch as z}from"radix-ui";import{createFormHook as he,createFormHookContexts as ge,useStore as B}from"@tanstack/react-form";const _e=C([`flex w-fit items-center justify-center rounded-full font-bold text-text-negative-strong`],{variants:{color:{default:`bg-primary-strong`,secondary:`bg-secondary-strong`,success:`bg-success-strong`,info:`bg-info-strong`,warning:`bg-warning-strong`,danger:`border border-danger-strong bg-linear-to-b from-danger-strong/90 via-danger-strong to-danger-strong/90`},size:{xs:`px-1.5 py-0.5 text-xs`,sm:`px-2 py-0.75 text-xs`,md:`px-2.5 py-0.75 text-sm`,lg:`px-3 py-1 text-sm`}},defaultVariants:{color:`default`,size:`sm`}}),ve=({label:e,color:t,size:n,className:r,children:i})=>O(`div`,{"data-slot":`required-indicator`,className:_e({color:t,size:n,className:r}),children:e||i});function ye({className:e,children:t,...n}){return k(pe.Root,{"data-slot":`label`,className:S(`text-text-positive`,`flex w-full items-center justify-between`,`select-none font-medium text-sm/6 leading-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,`aria-required:*:data-[slot=required-indicator]:inline-block`,e),...n,children:[t,O(ve,{label:`Required`,color:`danger`,size:`sm`,className:`hidden`})]})}const be=C(`group/field flex w-full gap-2 data-[invalid=true]:text-danger *:data-[slot=field-content]:gap-0 @md/field-group:*:data-[slot=field-content]:gap-2`,{variants:{orientation:{vertical:[`flex-col *:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`*:data-[slot=field-label]:flex-auto`,`has-[>[data-slot=field-content]]:items-start`,`has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col *:w-full [&>.sr-only]:w-auto`,`@md/field-group:flex-row`,`@md/field-group:items-center`,`@md/field-group:gap-4`,`@md/field-group:*:w-auto`,`@md/field-group:*:data-[slot=field-content]:basis-1/2`,`@md/field-group:*:data-[slot=field-content-main]:basis-1/2`,`@md/field-group:*:data-[slot=field-label]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start`,`@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}}),xe=w(({className:e,...t})=>O(`fieldset`,{"data-slot":`field-set`,className:S(`flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,e),...t}));xe.displayName=`FieldSet`;const Se=w(({className:e,variant:t=`legend`,...n})=>O(`legend`,{"data-slot":`field-legend`,"data-variant":t,className:S(`mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base`,e),...n}));Se.displayName=`FieldLegend`;const V=w(({className:e,...t})=>O(`div`,{"data-slot":`field-group`,className:S(`group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t}));V.displayName=`FieldGroup`;const H=w(({className:e,orientation:t=`vertical`,...n})=>O(`div`,{"data-slot":`field`,"data-orientation":t,className:S(be({orientation:t}),e),...n}));H.displayName=`Field`;const U=w(({className:e,...t})=>O(`div`,{"data-slot":`field-content`,className:S(`group/field-content flex flex-col gap-1.5 leading-snug`,e),...t}));U.displayName=`FieldContent`;const W=w(({className:e,...t})=>O(`div`,{"data-slot":`field-content-main`,className:S(`relative`,e),...t})),G=w(({className:e,...t})=>O(ye,{"data-slot":`field-label`,className:S(`group/field-label peer/field-label flex h-6 gap-1 font-medium leading-snug`,`has-[>[data-slot=field]]:w-full`,`has-[>[data-slot=field]]:flex-col`,`has-[>[data-slot=field]]:rounded-md`,`has-[>[data-slot=field]]:border`,`has-[>[data-slot=field]]:border-border`,`has-data-[state=checked]:border-primary`,`*:data-[slot=field]:p-4 group-data-[disabled=true]/field:opacity-50`,e),...t}));G.displayName=`FieldLabel`;const K=w(({className:e,...t})=>O(`div`,{"data-slot":`field-label`,className:S(`flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50`,e),...t}));K.displayName=`FieldTitle`;const q=w(({className:e,...t})=>O(`p`,{"data-slot":`field-description`,className:S(`nth-last-2:-mt-1 font-normal text-sm text-text-positive-weak leading-normal last:mt-0 [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4 [[data-variant=legend]+&]:-mt-1.5`,e),...t}));q.displayName=`FieldDescription`;const J=w(({isShow:e=!0,className:t,...n})=>e===!1?null:O(`div`,{"data-slot":`field-note`,className:S(`text-wrap rounded border border-primary-muted bg-primary-bg-subtle p-2 text-text-positive-weak text-xs`,t),...n}));J.displayName=`FieldNote`;const Y=w(({children:e,className:n,...r})=>k(`div`,{"data-slot":`field-separator`,"data-content":!!e,className:S(`relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2`,n),...r,children:[O(t,{className:`absolute inset-0 top-1/2`}),e&&O(`span`,{className:`relative mx-auto block w-fit bg-background px-2 text-text-positive-weak`,"data-slot":`field-separator-content`,children:e})]}));Y.displayName=`FieldSeparator`;const X=w(({className:e,children:t,errors:n,...r})=>{let i=E(()=>t||(n?n?.length===1&&n[0]?.message?O(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:O(`p`,{children:n[0].message})}):O(`ul`,{className:`flex list-none flex-col`,children:n.map(e=>typeof e==`string`?O(`li`,{children:e},e):e?.message?O(`li`,{children:e.message},e.message):null)}):null),[t,n]);return i?O(`div`,{role:`alert`,"data-slot":`field-error`,className:S(`w-full font-semibold text-danger-strong text-xs`,e),...r,children:i}):null});X.displayName=`FieldError`;const Ce=({label:e,description:t,options:n,helperText:r,orientation:i})=>{let a=Q(),o=B(a.form.store,({isSubmitting:e})=>e);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:i,children:[k(U,{children:[O(G,{children:e}),O(q,{children:t}),O(J,{isShow:!!r,children:r})]}),O(W,{children:O(V,{className:`flex flex-col gap-y-2`,children:n.map(e=>k(H,{orientation:`horizontal`,children:[O(c,{id:`${a.name}-${e.value}`,name:a.name,checked:a.state.value?.includes(e.value)??!1,disabled:o,onCheckedChange:t=>{if(t&&a.state.value!==null)a.pushValue(e.value);else if(t&&a.state.value===null)a.setValue([e.value]);else if(!t&&a.state.value!==null){let t=a.state.value.indexOf(e.value);t>-1&&a.removeValue(t)}else !t&&a.state.value===null&&a.setValue(null)}}),O(G,{htmlFor:`${a.name}-${e.value}`,className:`text-text-positive`,children:e.label})]},e.value))})})]}),O(Y,{})]})},we=({label:t,description:n,placeholder:r,orientation:i=`responsive`,helperText:a,minDate:o,maxDate:s,required:c})=>{let l=Q(),m=E(()=>c?l.state.value===null:!1,[c,l.state.value]),h=E(()=>l.state.meta.isTouched&&!l.state.meta.isValid,[l.state.meta.isTouched,l.state.meta.isValid]);return k(V,{className:`px-4`,children:[k(H,{orientation:i,"data-invalid":h,children:[k(U,{children:[O(G,{htmlFor:l.name,"aria-required":m,children:t}),O(q,{children:n})]}),k(W,{className:`flex flex-col space-y-1`,children:[O(`div`,{className:`flex w-full flex-col`,children:k(f,{children:[O(u,{asChild:!0,children:k(e,{variant:`outline`,color:`muted`,size:`lg`,className:S(`flex items-center justify-between rounded font-normal outline-border`,`hover:bg-transparent`,`focus:outline-1 focus:outline-primary-strong focus:ring-4 focus:ring-primary-weak`,`data-[state=open]:text-text-positive-muted`,`data-[state=open]:outline-1`,`data-[state=open]:outline-primary-strong`,`data-[state=open]:ring-4`,`data-[state=open]:ring-primary-weak`,l.state.value===null&&`text-text-positive-muted`),children:[O(`p`,{children:l.state.value===null?r||`Select date`:ue(l.state.value,`PPPP`)}),O(N,{strokeWidth:1})]})}),k(d,{align:`start`,side:`bottom`,className:`flex w-fit min-w-0 overflow-y-auto rounded p-0`,onBlur:l.handleBlur,children:[k(`div`,{className:`flex h-full flex-col space-y-2 border-r border-r-border p-2 [&>button]:justify-start [&>button]:text-sm`,children:[O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(I())},children:`Today`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(ce())},children:`Tomorrow`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(le())},children:`Yesterday`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(L(I(),3))},children:`Last 3 Days`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(L(I(),7))},children:`Last 7 Days`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(L(I(),30))},children:`Last 30 Days`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(fe(I()))},children:`This Month`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(de(I()))},children:`Last Month`})]}),O(`div`,{className:`flex flex-1 flex-col`,children:O(`div`,{className:`min-w-73 border-b border-b-border p-2`,children:O(p,{mode:`single`,selected:l.state.value??void 0,hidden:{before:o??new Date(1900,0,1),after:s??new Date(2100,11,31)},onSelect:e=>{e&&l.handleChange(e)}})})})]})]})}),O(J,{isShow:!!a,children:a})]})]}),O(Y,{})]})},Te=({label:e,description:t,placeholder:n,orientation:r=`responsive`,helperText:i,showErrorMessage:a=!0,maxLength:o})=>{let{form:s,name:c,state:u,handleBlur:d,handleChange:f}=Q(),p=B(s.store,({isSubmitting:e})=>e),m=E(()=>u.meta.isTouched&&!u.meta.isValid,[u.meta.isTouched,u.meta.isValid]),h=T(({target:{value:e}})=>{p||o&&e.length>o||f(e||null)},[p,o,f]),g=T(()=>{p||f(null)},[p,f]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{"data-invalid":m,orientation:r,children:[k(U,{children:[O(G,{htmlFor:c,children:e}),O(q,{children:t})]}),k(W,{children:[O(l,{id:c,name:c,value:u.value===null?``:u.value,"aria-invalid":m,autoComplete:`email`,placeholder:n,className:S(`pl-9`,p&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:d,onChange:h}),O(`div`,{className:`absolute top-0 left-0 flex size-9 items-center justify-center text-muted`,children:O(j,{size:14})}),O(`button`,{type:`button`,"aria-label":`Clear`,className:`absolute inset-y-0 inset-e-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong`,onClick:g,children:O(se,{size:14,"aria-hidden":`true`})}),O(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&O(X,{errors:u.meta.errors})}),O(J,{isShow:!!i,children:i})]})]}),O(Y,{})]})},Ee=e=>e?/^-?\d*\.?\d*$/:/^\d*\.?\d*$/,De=e=>Number(e).toLocaleString(),Oe=(e,t,n)=>{if(n===`none`)return e;let r=10**t,i=e*r;switch(n){case`up`:return Math.ceil(i)/r;case`down`:return Math.floor(i)/r;case`nearest`:return i%1<.1?Math.floor(i)/r:i%1>=.59?Math.ceil(i)/r:(Math.floor(i)+.5)/r;default:return e}},ke=({disabled:e=!1,readOnly:t=!1,allowNegative:n=!1,numberAfterDecimalPoint:r=2,roundingRule:i=`none`,value:a=null,unitText:o,decimal:s,placeholder:c,precision:u,wrapperClassName:d,className:f,onChange:p,onValueChange:m,onFocus:h,onBlur:g,..._})=>{let v=te(null),y=te(null),[b,x]=D(a?.toString()??null),C=E(()=>s?.[1]??r,[s,r]),w=E(()=>s&&s[0]-s[1],[s]),A=E(()=>Ee(n),[n]),j=T(e=>{if(!C||e===`-`)return!0;let[t,n=``]=e.split(`.`),r=t.startsWith(`-`)?t.length-1:t.length;return n.length<=C&&r<=(w??1/0)},[C,w]),M=T(e=>{if(e===`0`)return`0`;if(!Number(e))return null;let[t,n=``]=Oe(parseFloat(e),Math.min(C-1,u||0),i).toString().split(`.`),r=De(t);return n?`${r}.${n}`:r},[C,u,i]),N=T(e=>{let t=e===`0`,n=e===`-`||/^-0+(\.0+)?$/.test(e)||/^-0*\.$/.test(e);if(t){m?.(0),x(e);return}if(n){x(()=>(m?.(0),e));return}},[m]),ne=T(e=>{p?.(e);let{value:t}=e.target;if(t===``||t===void 0){m?.(null),x(null);return}N(t),!(!A.test(t)||!j(t))&&(m?.(parseFloat(t)||0),x(t))},[j,p,m,N,A]),P=T(e=>{t||(h?.(e),x(e=>typeof e==`string`?e.replace(/,/g,``):null))},[t,h]),re=T(e=>{t||(g?.(e),x(e=>e===null?null:e===`0`||e===`-`||/^-0+(\.0+)?$/.test(e)||/^-0*\.$/.test(e)?`0`:typeof e==`string`?M(e):null))},[t,M,g]);return ee(()=>{let e=document.activeElement===y.current;if(a==null||!A.test(a.toString())||!j(a.toString())){x(null);return}x(t=>e?t:M(a.toString()))},[M,a,j,A]),ee(()=>{if(!v.current||!y.current||!o)return;let e=v.current.offsetWidth;y.current.style.setProperty(`padding-right`,`${(e+10)/16}rem`)},[o]),k(`div`,{className:S(`relative`,d),children:[O(l,{..._,ref:y,value:b||(t?`0`:``),placeholder:c,disabled:e,readOnly:t,className:S(`text-end font-number text-sm slashed-zero lining-nums tabular-nums`,t&&`bg-muted text-muted-foreground`,f),onChange:ne,onFocus:P,onBlur:re}),o&&O(`span`,{ref:v,className:`-translate-y-1/2 pointer-events-none absolute top-1/2 right-2 text-muted-foreground text-sm`,children:o})]})},Ae=({label:e,description:t,placeholder:n,helperText:r,orientation:i=`responsive`,showErrorMessage:a=!0,rounding:o,decimalPlaces:s,percision:c,unit:l,required:u,allowNegative:d})=>{let f=Q(),p=B(f.form.store,({isSubmitting:e})=>e),m=E(()=>f.state.meta.errors,[f.state.meta.errors]),h=E(()=>u?f.state.value===null:!1,[u,f.state.value]),g=T(e=>{p||f.handleChange(e)},[p,f.handleChange]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:i,"data-invalid":f.state.meta.isTouched&&!f.state.meta.isValid,children:[k(U,{children:[O(G,{htmlFor:f.name,"aria-required":h,children:e}),O(q,{children:t})]}),k(W,{children:[k(`div`,{className:`relative w-full`,children:[O(ke,{id:f.name,value:f.state.value,"aria-invalid":f.state.meta.isTouched&&!f.state.meta.isValid,placeholder:n,roundingRule:o,numberAfterDecimalPoint:s,precision:c,unitText:l,allowNegative:d,className:S(p&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:f.handleBlur,onValueChange:g}),p&&O(`div`,{className:`absolute inset-y-0 inset-s-2 top-2.5 text-muted-weak [&>svg]:size-3.5`,children:O(F,{className:`animate-spin text-primary-strong`})}),a&&!!m.length&&O(`div`,{className:`absolute inset-y-0 inset-s-2 top-2.75 text-danger-strong [&>svg]:size-3.5`,children:O(M,{})}),O(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:a&&O(X,{errors:m})})]}),O(J,{isShow:!!r,children:r})]})]}),O(Y,{})]})},je=({label:e,description:t,placeholder:n,orientation:r=`responsive`,helperText:i,showErrorMessage:a=!0})=>{let{form:o,name:s,state:c,handleBlur:u,handleChange:d}=Q(),f=B(o.store,({isSubmitting:e})=>e),[p,m]=D(!1),h=E(()=>c.meta.isTouched&&!c.meta.isValid,[c.meta.isTouched,c.meta.isValid]),g=T(()=>m(e=>!e),[]),_=T(({target:{value:e}})=>{f||d(e||null)},[f,d]);return O(V,{className:`gap-y-4 px-4`,children:k(H,{"data-invalid":h,orientation:r,children:[k(U,{children:[O(G,{htmlFor:s,children:e}),O(q,{children:t})]}),k(W,{children:[O(l,{id:s,type:p?`text`:`password`,placeholder:n,value:c.value??``,"aria-invalid":h,autoComplete:`new-password`,onBlur:u,onChange:_}),O(`button`,{className:`absolute inset-y-0 inset-e-0 flex size-9 items-center justify-center rounded-e-md text-muted outline-none transition-[color,box-shadow] focus:z-10 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,type:`button`,onClick:g,"aria-label":p?`Hide password`:`Show password`,"aria-pressed":p,"aria-controls":`password`,children:O(p?P:ne,{size:16,"aria-hidden":`true`})}),O(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&O(X,{errors:c.meta.errors})}),O(J,{isShow:!!i,children:i})]})]})})},Me=({label:e,description:t,orientation:n,options:r,helperText:i})=>{let a=Q(),o=B(a.form.store,({isSubmitting:e})=>e);return k(V,{className:`px-4`,children:[k(H,{orientation:n,className:`flex-col gap-2`,children:[k(U,{children:[O(G,{children:e}),O(q,{children:t}),O(J,{isShow:!!i,children:i})]}),O(W,{children:O(h,{defaultValue:a.state.value??void 0,className:`w-full`,onValueChange:a.handleChange,children:r.map(e=>O(G,{className:S(`h-fit`,a.state.value===e.value&&`border-primary-weak! bg-primary-bg-subtle`,o&&`pointer-events-none bg-muted-muted opacity-60`,a.state.value===e.value&&o&&`border-border-strong!`),children:k(H,{orientation:`horizontal`,className:`justify-between rounded p-2!`,children:[k(U,{className:`gap-1!`,children:[O(K,{children:e.label}),O(q,{className:`text-xs`,children:e.description})]}),O(m,{value:e.value})]})},e.value))})})]}),O(Y,{})]})},Ne=({label:e,description:t,placeholder:n,orientation:r=`responsive`,options:i,helperText:a,required:o=!1})=>{let s=Q(),c=E(()=>s.state.meta.isTouched&&!s.state.meta.isValid,[s.state.meta.isTouched,s.state.meta.isValid]),l=E(()=>o?s.state.value===null:!1,[o,s.state.value]),u=E(()=>s.state.meta.errors,[s.state.meta.errors]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:r,"data-invalid":s.state.meta.isTouched&&!s.state.meta.isValid,children:[k(U,{children:[O(G,{htmlFor:s.name,"aria-required":l,children:e}),O(q,{children:t})]}),k(W,{className:`flex flex-col`,children:[k(b,{defaultValue:s.state.value||void 0,onValueChange:s.handleChange,children:[O(y,{"aria-invalid":c?`true`:void 0,onBlur:s.handleBlur,children:O(g,{placeholder:n})}),k(v,{children:[!!i.length&&i.map(e=>O(_,{value:e.value,children:e.label},e.value)),!i.length&&k(`div`,{className:`flex items-center justify-center gap-x-2 rounded border border-border bg-muted-muted px-4 py-6.5 text-center text-sm text-text-positive-weak`,children:[O(ie,{strokeWidth:1}),`No options available`]})]})]}),O(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:O(X,{errors:u})}),O(J,{isShow:!!a,children:a})]})]}),O(Y,{})]})};function Pe({className:e,...t}){return O(z.Root,{"data-slot":`switch`,className:S(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full shadow-xs transition-all`,`inline-flex h-5`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`-outline-offset-1 inset-shadow-2xs outline-1`,`data-[state=checked]:bg-primary`,`data-[state=checked]:outline-primary-strong`,`data-[state=unchecked]:bg-muted-weak`,`data-[state=unchecked]:outline-border`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...t,children:O(z.Thumb,{"data-slot":`switch-thumb`,className:S(`block size-4 bg-card shadow-xs`,`pointer-events-none rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}const Fe=({label:e,description:t,helperText:n})=>{let r=Q();return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:`vertical`,className:`relative justify-between gap-y-1`,children:[k(U,{children:[O(K,{className:`cursor-pointer`,children:O(`label`,{htmlFor:r.name,children:e})}),O(q,{children:t}),O(Pe,{id:r.name,checked:r.state.value??!1,className:`absolute top-1 right-1`,onBlur:r.handleBlur,onCheckedChange:r.handleChange})]}),O(J,{isShow:!!n,children:n})]}),O(Y,{})]})},Ie=({label:e,description:t,placeholder:n,helperText:r,counter:i=!1,orientation:a=`responsive`,showClearButton:o=!1,showErrorMessage:s=!0,required:c=!1,maxLength:u})=>{let{form:d,name:f,state:p,handleBlur:m,handleChange:h}=Q(),g=B(d.store,({isSubmitting:e})=>e),_=E(()=>o&&!g,[o,g]),v=E(()=>p.value?p.value.length:0,[p.value]),y=E(()=>{if(!i)return``;let e=`character${[0,1].includes(v)?``:`s`}`;return i&&u?`${v} / ${u} ${e}`:`${v} ${e}`},[v,i,u]),b=E(()=>p.meta.isTouched&&!p.meta.isValid,[p.meta.isTouched,p.meta.isValid]),x=E(()=>c?p.value===null:!1,[c,p.value]),C=T(({target:{value:e}})=>{g||i&&u&&e.length>u||h(e||null)},[g,i,u,h]),w=T(()=>{g||h(``)},[g,h]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:a,"data-invalid":b,children:[k(U,{children:[O(G,{"aria-required":x,htmlFor:f,children:e}),O(q,{children:t})]}),k(W,{children:[O(l,{id:f,name:f,value:p.value===null?``:p.value,"aria-invalid":b,autoComplete:`off`,placeholder:n,className:S(`pr-6`,g&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:m,onChange:C}),_&&!p.meta.errors.length&&O(`button`,{type:`button`,"aria-label":`Clear`,className:`absolute inset-y-0 inset-e-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-intense [&>svg]:size-3.5`,onClick:w,children:O(se,{"aria-hidden":`true`})}),g&&O(`div`,{className:`absolute inset-y-0 inset-e-2 top-2.5 text-muted-weak`,children:O(F,{size:14,className:`animate-spin text-primary-strong`})}),s&&!!p.meta.errors.length&&O(`div`,{className:`absolute inset-y-0 inset-e-2 top-2.5 text-danger-strong`,children:O(M,{size:14})}),k(`div`,{className:`mt-1 flex w-full items-start gap-x-2`,children:[s&&O(X,{className:`flex-1`,errors:p.meta.errors}),!!i&&O(`p`,{className:`h-4 flex-0 text-nowrap text-end text-text-positive-weak text-xs tabular-nums`,children:y})]}),O(J,{isShow:!!r,children:r})]})]}),O(Y,{})]})},Le=({label:e,description:t,placeholder:n,helperText:r,counter:i=!1,orientation:a=`responsive`,showErrorMessage:o=!0,required:s=!1,maxLength:c})=>{let{form:l,state:u,name:d,handleBlur:f,handleChange:p}=Q(),m=B(l.store,({isSubmitting:e})=>e),h=E(()=>u.value?u.value.length:0,[u.value]),g=E(()=>{if(!i)return``;let e=`character${[0,1].includes(h)?``:`s`}`;return i&&c?`${h} / ${c} ${e}`:`${h} ${e}`},[h,i,c]),_=E(()=>u.meta.isTouched&&!u.meta.isValid,[u.meta.isTouched,u.meta.isValid]),v=E(()=>u.meta.errors,[u.meta.errors]),y=E(()=>s?u.value===null:!1,[s,u.value]),b=T(({target:{value:e}})=>{m||i&&c&&e.length>c||p(e||null)},[m,i,c,p]);return k(V,{className:`px-4`,children:[k(H,{orientation:a,"data-invalid":_,children:[k(U,{children:[O(G,{"aria-required":y,htmlFor:d,children:e}),O(q,{children:t})]}),k(W,{children:[O(x,{id:d,name:d,value:u.value===null?``:u.value,"aria-invalid":_,autoComplete:`off`,placeholder:n,className:S(m&&`pointer-events-none bg-muted-muted opacity-60`),onChange:b,onBlur:f}),m&&O(`div`,{className:`absolute inset-y-0 inset-e-2 top-2.5 text-muted-weak`,children:O(F,{size:14,className:`animate-spin text-primary-strong`})}),o&&!!v.length&&O(`div`,{className:`absolute inset-y-0 inset-e-2 top-2.5 text-danger-strong`,children:O(M,{size:14})}),k(`div`,{className:`mt-1 flex w-full items-start gap-x-2`,children:[o&&O(X,{className:`flex-1`,errors:v}),!!i&&O(`p`,{className:`h-4 flex-0 text-nowrap text-end text-text-positive-weak text-xs tabular-nums`,children:g})]}),O(J,{isShow:!!r,children:r})]})]}),O(Y,{})]})},Re=({label:t,className:n})=>{let r=$(),i=T(async()=>{await r.handleSubmit({submitAction:`submit`}),r.state.isSubmitSuccessful&&r.reset()},[r]);return O(r.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:r,isSubmitting:a})=>O(e,{type:`button`,size:`md`,disabled:r,isLoading:a,className:S(`min-h-8 min-w-32`,n),onClick:i,children:t??`Submit`})})},ze=({type:t=`create`})=>{let n=$();return k(`div`,{className:`flex h-8 items-center justify-between`,children:[O(n.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:t})=>O(e,{color:`muted`,variant:`outline`,type:`button`,size:`md`,disabled:t,className:`h-full min-w-32`,onClick:()=>n.reset(),children:`Cancel`})}),t===`create`&&O(n.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:t,isSubmitting:r})=>k(e,{type:`submit`,size:`md`,disabled:t,isLoading:r,className:`h-full min-w-32`,onClick:async()=>{await n.handleSubmit({submitAction:`create`}),n.state.isSubmitSuccessful&&n.reset()},children:[O(ae,{}),`Add New`]})}),t===`update`&&O(n.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:t,isSubmitting:r})=>k(e,{type:`submit`,size:`md`,disabled:t,isLoading:r,className:`h-full min-w-32`,onClick:async()=>{await n.handleSubmit({submitAction:`update`}),n.state.isSubmitSuccessful&&n.reset()},children:[O(A,{}),`Update`]})})]})};function Z({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return O(me.Root,{"data-slot":`separator`,decorative:n,orientation:t,className:S(`shrink-0 bg-border-weak`,`data-[orientation=horizontal]:h-px`,`data-[orientation=horizontal]:w-full`,`data-[orientation=vertical]:h-full`,`data-[orientation=vertical]:w-px`,e),...r})}const Be=({title:t,description:n,onDelete:r,children:i})=>k(`section`,{"data-slot":`card-form`,className:`relative flex flex-col rounded-md bg-card pb-4 shadow-card ring-4 ring-border-weak`,children:[k(`div`,{"data-slot":`card-form-header`,className:`flex flex-col space-y-1 p-4`,children:[O(`p`,{className:`font-semibold text-lg`,children:t}),!!n&&O(`p`,{className:`text-muted text-sm`,children:n})]}),O(Z,{}),O(`div`,{"data-slot":`card-form-main`,className:`flex flex-col space-y-4 py-4`,children:i}),!!r&&k(e,{color:`danger`,variant:`outline`,size:`sm`,className:`absolute top-2 right-2`,onClick:e=>{r?.(),e.preventDefault(),e.stopPropagation()},children:[O(oe,{}),`Remove`]})]}),Ve=({children:e})=>O(`div`,{"data-slot":`section-form`,className:`flex flex-col space-y-4`,children:e}),He=({...e})=>O(`button`,{...e,type:`button`,className:`min-w-40 cursor-pointer rounded-sm border border-border bg-card px-4 py-2 font-semibold text-sm text-text-positive shadow-xs outline-none transition-all hover:opacity-90 focus:border-border focus:ring-3 focus:ring-border/80 focus:ring-offset-2 focus:drop-shadow-none disabled:pointer-events-none disabled:opacity-60 disabled:drop-shadow-none`,children:`Hủy`}),Ue=({isSubmitting:e,submitText:t=`Submit`,...n})=>O(`button`,{...n,type:`button`,"data-loading":e?`true`:void 0,className:`relative min-h-9.5 min-w-40 cursor-pointer rounded-sm border border-primary-strong bg-primary px-4 py-2 font-semibold text-sm text-text-negative shadow-card outline-none transition-all hover:opacity-90 focus:border-transparent focus:ring-3 focus:ring-primary/80 focus:ring-offset-2 focus:drop-shadow-none disabled:pointer-events-none disabled:opacity-60 disabled:drop-shadow-none data-[loading=true]:pointer-events-none data-[loading=true]:opacity-80`,children:e?O(re,{size:16,strokeWidth:3,className:`absolute top-1/2 left-1/2 z-10 -translate-x-1/2 -translate-y-1/2 animate-spin`}):t}),We=({title:e,submitText:n,open:c,onOpenChange:l,children:u})=>{let d=$(),f=T(e=>{e||d.reset(),l?.(e)},[d.reset,l]);return O(s,{open:c,onOpenChange:f,children:k(r,{"data-slot":`dialog-portal`,children:[O(o,{}),k(a,{className:`flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-2xl sm:rounded-sm`,children:[O(`div`,{"data-slot":`dialog-header`,className:`flex flex-col items-center justify-center gap-2 px-4 py-6 text-center shadow-sm sm:text-left`,children:O(i,{"data-slot":`dialog-title`,children:e})}),O(t,{}),O(`div`,{"data-slot":`dialog-content`,className:`relative flex flex-col space-y-4 overflow-y-auto p-0 pt-6 max-sm:flex-1 sm:p-4`,children:u}),O(t,{}),k(`div`,{"data-slot":`dialog-footer`,className:`flex flex-col-reverse items-center justify-between gap-2 px-6 py-4 shadow-sm sm:flex-row sm:justify-end max-sm:[&>button]:w-full`,children:[O(d.Subscribe,{selector:e=>({disabled:e.isSubmitting}),children:({disabled:e})=>O(He,{disabled:e,onClick:()=>{d.reset(),f(!1)}})}),O(d.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>O(Ue,{isSubmitting:e,disabled:t,submitText:n,onClick:()=>d.handleSubmit()})})]})]})]})})},Ge=({label:e,description:t,helperText:n,orientation:r=`responsive`,children:i})=>k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:r,children:[k(U,{children:[O(G,{children:e}),O(q,{children:t})]}),k(W,{children:[i,O(J,{isShow:!!n,children:n})]})]}),O(Y,{})]}),Ke=({title:e,open:t,contentClassName:r,onOpenChange:i,children:a})=>{let o=$();return O(R.Root,{"data-slot":`dialog`,open:t,onOpenChange:i,children:k(R.Portal,{"data-slot":`dialog-portal`,children:[O(R.Overlay,{"data-slot":`dialog-overlay`,className:S(`fixed inset-0 z-40 bg-black/50 backdrop-blur-sm`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out`)}),O(R.Content,{"data-slot":`dialog-content`,className:S(`fixed top-4 right-4 z-50 h-[calc(100dvh-2rem)] min-w-sm max-w-xl rounded-md bg-background drop-shadow-lg`,`duration-300`,`data-[state=open]:animate-in`,`data-[state=open]:slide-in-from-right`,`data-[state=open]:fade-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:slide-out-to-right`,`data-[state=closed]:fade-out`),children:k(`section`,{className:`relative flex size-full flex-col`,children:[O(`header`,{className:`flex h-14 items-center border-border border-b px-4`,children:O(`h2`,{className:`font-semibold text-lg text-primary-strong`,children:e})}),O(`div`,{className:S(`flex flex-1 flex-col overflow-y-auto py-4`,r),children:a}),k(`div`,{className:`flex flex-col space-y-4 border-border border-t px-4 py-2`,children:[O(o.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>O(Ue,{isSubmitting:e,disabled:t,className:`w-full`,onClick:()=>o.handleSubmit()})}),O(o.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:e})=>O(He,{disabled:e,className:`w-full`,onClick:()=>{o.reset(),i?.(!1)}})})]}),O(R.Close,{asChild:!0,children:O(n,{className:`absolute top-2 right-2`})})]})})]})})},qe=({children:e})=>O(`header`,{"data-slot":`section-header`,className:`px-4 pt-2.5 pb-2 font-medium text-base text-primary-strong`,children:e}),Je=({children:e})=>O(`main`,{"data-slot":`section-main`,className:`relative flex flex-col space-y-4 py-4`,children:e}),Ye=({title:e,children:t})=>k(`section`,{"data-slot":`section-form`,className:`flex flex-col rounded-md bg-background shadow-card ring-4 ring-border-weak`,children:[O(qe,{children:e}),O(Z,{}),O(Je,{children:t})]}),Xe=({title:e,description:t,helperText:n})=>k(V,{className:`gap-y-4 px-4`,children:[k(H,{className:`gap-0`,children:[k(U,{children:[O(Se,{className:`mb-1`,children:e}),O(q,{children:t})]}),O(J,{isShow:!!n,children:n})]}),O(Y,{})]}),{fieldContext:Ze,formContext:Qe,useFieldContext:Q,useFormContext:$}=ge(),{useAppForm:$e,withForm:et,withFieldGroup:tt}=he({fieldContext:Ze,formContext:Qe,fieldComponents:{TextField:Ie,TextareaField:Le,NumberField:Ae,EmailField:Te,PasswordField:je,SelectField:Ne,DateField:we,SwitchField:Fe,RadioGroupField:Me,CheckboxField:Ce,FieldGroup:V,Field:H,FieldContent:U,FieldLabel:G,FieldContentMain:W,FieldSeparator:Y,FieldError:X},formComponents:{TanStackDialogForm:We,TanStackPopoverForm:Ke,TanStackContainerForm:Ve,TanStackSectionForm:Ye,TanStackCardForm:Be,TanStackFieldGroup:Ge,TanStackTitleField:Xe,TanStackActionsForm:ze,TanStackActionSubmit:Re}});export{H as Field,U as FieldContent,W as FieldContentMain,X as FieldError,V as FieldGroup,G as FieldLabel,Y as FieldSeparator,Q as useTanStackFieldContext,$e as useTanStackForm,$ as useTanStackFormContext,tt as withTanStackFieldGroup,et as withTanStackForm};
1
+ import"../../heading--VmdIi7C.mjs";import"../../paragraph-BTJV4aeF.mjs";import"../../button.variants-CL2rLGYO.mjs";import{t as e}from"../../button-C_yZHudZ.mjs";import{t}from"../../separator-Bf0gymN4.mjs";import{t as n}from"../../close-DfuHB7kq.mjs";import{c as r,l as i,r as a,s as o,t as s}from"../../dialog-DSvmcuYl.mjs";import{t as c}from"../../checkbox-Bg2FiuQw.mjs";import{t as l}from"../../input-DBtIgQB6.mjs";import{a as u,i as d,t as f}from"../../popover-BckwBuuD.mjs";import{t as p}from"../../calendar-e9Pu8pNj.mjs";import{n as m,t as h}from"../../radio-group-Cem8O6BK.mjs";import{c as g,i as _,n as v,s as y,t as b}from"../../select-CivtMKTM.mjs";import{t as x}from"../../textarea-bLtmb71c.mjs";import{cn as S}from"@customafk/react-toolkit/utils";import{cva as C}from"class-variance-authority";import{memo as w,useCallback as T,useEffect as ee,useMemo as E,useRef as te,useState as D}from"react";import{jsx as O,jsxs as k}from"react/jsx-runtime";import{ArrowDownToLine as A,AtSignIcon as j,BanIcon as M,CalendarDaysIcon as N,EyeIcon as ne,EyeOffIcon as P,Loader2 as re,Loader2Icon as F,PackagePlusIcon as ie,PlusIcon as ae,Trash2Icon as oe,XIcon as se}from"lucide-react";import{endOfToday as I,endOfTomorrow as ce,endOfYesterday as le,format as ue,lastDayOfMonth as de,startOfMonth as fe,subDays as L}from"@customafk/react-toolkit/date-fns";import{Dialog as R,Label as pe,Separator as me,Switch as z}from"radix-ui";import{createFormHook as he,createFormHookContexts as ge,useStore as B}from"@tanstack/react-form";const _e=C([`flex w-fit items-center justify-center rounded-full font-bold text-text-negative-strong`],{variants:{color:{default:`bg-primary-strong`,secondary:`bg-secondary-strong`,success:`bg-success-strong`,info:`bg-info-strong`,warning:`bg-warning-strong`,danger:`border border-danger-strong bg-linear-to-b from-danger-strong/90 via-danger-strong to-danger-strong/90`},size:{xs:`px-1.5 py-0.5 text-xs`,sm:`px-2 py-0.75 text-xs`,md:`px-2.5 py-0.75 text-sm`,lg:`px-3 py-1 text-sm`}},defaultVariants:{color:`default`,size:`sm`}}),ve=({label:e,color:t,size:n,className:r,children:i})=>O(`div`,{"data-slot":`required-indicator`,className:_e({color:t,size:n,className:r}),children:e||i});function ye({className:e,children:t,...n}){return k(pe.Root,{"data-slot":`label`,className:S(`text-text-positive`,`flex w-full items-center justify-between`,`select-none font-medium text-sm/6 leading-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,`aria-required:*:data-[slot=required-indicator]:inline-block`,e),...n,children:[t,O(ve,{label:`Required`,color:`danger`,size:`sm`,className:`hidden`})]})}const be=C(`group/field flex w-full gap-2 data-[invalid=true]:text-danger *:data-[slot=field-content]:gap-0 @md/field-group:*:data-[slot=field-content]:gap-2`,{variants:{orientation:{vertical:[`flex-col *:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`*:data-[slot=field-label]:flex-auto`,`has-[>[data-slot=field-content]]:items-start`,`has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col *:w-full [&>.sr-only]:w-auto`,`@md/field-group:flex-row`,`@md/field-group:items-center`,`@md/field-group:gap-4`,`@md/field-group:*:w-auto`,`@md/field-group:*:data-[slot=field-content]:basis-1/2`,`@md/field-group:*:data-[slot=field-content-main]:basis-1/2`,`@md/field-group:*:data-[slot=field-label]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start`,`@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}}),xe=w(({className:e,...t})=>O(`fieldset`,{"data-slot":`field-set`,className:S(`flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,e),...t}));xe.displayName=`FieldSet`;const Se=w(({className:e,variant:t=`legend`,...n})=>O(`legend`,{"data-slot":`field-legend`,"data-variant":t,className:S(`mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base`,e),...n}));Se.displayName=`FieldLegend`;const V=w(({className:e,...t})=>O(`div`,{"data-slot":`field-group`,className:S(`group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t}));V.displayName=`FieldGroup`;const H=w(({className:e,orientation:t=`vertical`,...n})=>O(`div`,{"data-slot":`field`,"data-orientation":t,className:S(be({orientation:t}),e),...n}));H.displayName=`Field`;const U=w(({className:e,...t})=>O(`div`,{"data-slot":`field-content`,className:S(`group/field-content flex flex-col gap-1.5 leading-snug`,e),...t}));U.displayName=`FieldContent`;const W=w(({className:e,...t})=>O(`div`,{"data-slot":`field-content-main`,className:S(`relative`,e),...t})),G=w(({className:e,...t})=>O(ye,{"data-slot":`field-label`,className:S(`group/field-label peer/field-label flex h-6 gap-1 font-medium leading-snug`,`has-[>[data-slot=field]]:w-full`,`has-[>[data-slot=field]]:flex-col`,`has-[>[data-slot=field]]:rounded-md`,`has-[>[data-slot=field]]:border`,`has-[>[data-slot=field]]:border-border`,`has-data-[state=checked]:border-primary`,`*:data-[slot=field]:p-4 group-data-[disabled=true]/field:opacity-50`,e),...t}));G.displayName=`FieldLabel`;const K=w(({className:e,...t})=>O(`div`,{"data-slot":`field-label`,className:S(`flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50`,e),...t}));K.displayName=`FieldTitle`;const q=w(({className:e,...t})=>O(`p`,{"data-slot":`field-description`,className:S(`nth-last-2:-mt-1 font-normal text-sm text-text-positive-weak leading-normal last:mt-0 [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4 [[data-variant=legend]+&]:-mt-1.5`,e),...t}));q.displayName=`FieldDescription`;const J=w(({isShow:e=!0,className:t,...n})=>e===!1?null:O(`div`,{"data-slot":`field-note`,className:S(`text-wrap rounded border border-primary-muted bg-primary-bg-subtle p-2 text-text-positive-weak text-xs`,t),...n}));J.displayName=`FieldNote`;const Y=w(({children:e,className:n,...r})=>k(`div`,{"data-slot":`field-separator`,"data-content":!!e,className:S(`relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2`,n),...r,children:[O(t,{className:`absolute inset-0 top-1/2`}),e&&O(`span`,{className:`relative mx-auto block w-fit bg-background px-2 text-text-positive-weak`,"data-slot":`field-separator-content`,children:e})]}));Y.displayName=`FieldSeparator`;const X=w(({className:e,children:t,errors:n,...r})=>{let i=E(()=>t||(n?n?.length===1&&n[0]?.message?O(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:O(`p`,{children:n[0].message})}):O(`ul`,{className:`flex list-none flex-col`,children:n.map(e=>typeof e==`string`?O(`li`,{children:e},e):e?.message?O(`li`,{children:e.message},e.message):null)}):null),[t,n]);return i?O(`div`,{role:`alert`,"data-slot":`field-error`,className:S(`w-full font-semibold text-danger-strong text-xs`,e),...r,children:i}):null});X.displayName=`FieldError`;const Ce=({label:e,description:t,options:n,helperText:r,orientation:i})=>{let a=Q(),o=B(a.form.store,({isSubmitting:e})=>e);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:i,children:[k(U,{children:[O(G,{children:e}),O(q,{children:t}),O(J,{isShow:!!r,children:r})]}),O(W,{children:O(V,{className:`flex flex-col gap-y-2`,children:n.map(e=>k(H,{orientation:`horizontal`,children:[O(c,{id:`${a.name}-${e.value}`,name:a.name,checked:a.state.value?.includes(e.value)??!1,disabled:o,onCheckedChange:t=>{if(t&&a.state.value!==null)a.pushValue(e.value);else if(t&&a.state.value===null)a.setValue([e.value]);else if(!t&&a.state.value!==null){let t=a.state.value.indexOf(e.value);t>-1&&a.removeValue(t)}else !t&&a.state.value===null&&a.setValue(null)}}),O(G,{htmlFor:`${a.name}-${e.value}`,className:`text-text-positive`,children:e.label})]},e.value))})})]}),O(Y,{})]})},we=({label:t,description:n,placeholder:r,orientation:i=`responsive`,helperText:a,minDate:o,maxDate:s,required:c})=>{let l=Q(),m=E(()=>c?l.state.value===null:!1,[c,l.state.value]),h=E(()=>l.state.meta.isTouched&&!l.state.meta.isValid,[l.state.meta.isTouched,l.state.meta.isValid]);return k(V,{className:`px-4`,children:[k(H,{orientation:i,"data-invalid":h,children:[k(U,{children:[O(G,{htmlFor:l.name,"aria-required":m,children:t}),O(q,{children:n})]}),k(W,{className:`flex flex-col space-y-1`,children:[O(`div`,{className:`flex w-full flex-col`,children:k(f,{children:[O(u,{asChild:!0,children:k(e,{variant:`outline`,color:`muted`,size:`lg`,className:S(`flex items-center justify-between rounded font-normal outline-border`,`hover:bg-transparent`,`focus:outline-1 focus:outline-primary-strong focus:ring-4 focus:ring-primary-weak`,`data-[state=open]:text-text-positive-muted`,`data-[state=open]:outline-1`,`data-[state=open]:outline-primary-strong`,`data-[state=open]:ring-4`,`data-[state=open]:ring-primary-weak`,l.state.value===null&&`text-text-positive-muted`),children:[O(`p`,{children:l.state.value===null?r||`Select date`:ue(l.state.value,`PPPP`)}),O(N,{strokeWidth:1})]})}),k(d,{align:`start`,side:`bottom`,className:`flex w-fit min-w-0 overflow-y-auto rounded p-0`,onBlur:l.handleBlur,children:[k(`div`,{className:`flex h-full flex-col space-y-2 border-r border-r-border p-2 [&>button]:justify-start [&>button]:text-sm`,children:[O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(I())},children:`Today`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(ce())},children:`Tomorrow`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(le())},children:`Yesterday`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(L(I(),3))},children:`Last 3 Days`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(L(I(),7))},children:`Last 7 Days`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(L(I(),30))},children:`Last 30 Days`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(fe(I()))},children:`This Month`}),O(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(de(I()))},children:`Last Month`})]}),O(`div`,{className:`flex flex-1 flex-col`,children:O(`div`,{className:`min-w-73 border-b border-b-border p-2`,children:O(p,{mode:`single`,selected:l.state.value??void 0,hidden:{before:o??new Date(1900,0,1),after:s??new Date(2100,11,31)},onSelect:e=>{e&&l.handleChange(e)}})})})]})]})}),O(J,{isShow:!!a,children:a})]})]}),O(Y,{})]})},Te=({label:e,description:t,placeholder:n,orientation:r=`responsive`,helperText:i,showErrorMessage:a=!0,maxLength:o})=>{let{form:s,name:c,state:u,handleBlur:d,handleChange:f}=Q(),p=B(s.store,({isSubmitting:e})=>e),m=E(()=>u.meta.isTouched&&!u.meta.isValid,[u.meta.isTouched,u.meta.isValid]),h=T(({target:{value:e}})=>{p||o&&e.length>o||f(e||null)},[p,o,f]),g=T(()=>{p||f(null)},[p,f]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{"data-invalid":m,orientation:r,children:[k(U,{children:[O(G,{htmlFor:c,children:e}),O(q,{children:t})]}),k(W,{children:[O(l,{id:c,name:c,value:u.value===null?``:u.value,"aria-invalid":m,autoComplete:`email`,placeholder:n,className:S(`pl-9`,p&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:d,onChange:h}),O(`div`,{className:`absolute top-0 left-0 flex size-9 items-center justify-center text-muted`,children:O(j,{size:14})}),O(`button`,{type:`button`,"aria-label":`Clear`,className:`absolute inset-y-0 inset-e-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong`,onClick:g,children:O(se,{size:14,"aria-hidden":`true`})}),O(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&O(X,{errors:u.meta.errors})}),O(J,{isShow:!!i,children:i})]})]}),O(Y,{})]})},Ee=e=>e?/^-?\d*\.?\d*$/:/^\d*\.?\d*$/,De=e=>Number(e).toLocaleString(),Oe=(e,t,n)=>{if(n===`none`)return e;let r=10**t,i=e*r;switch(n){case`up`:return Math.ceil(i)/r;case`down`:return Math.floor(i)/r;case`nearest`:return i%1<.1?Math.floor(i)/r:i%1>=.59?Math.ceil(i)/r:(Math.floor(i)+.5)/r;default:return e}},ke=({disabled:e=!1,readOnly:t=!1,allowNegative:n=!1,numberAfterDecimalPoint:r=2,roundingRule:i=`none`,value:a=null,unitText:o,decimal:s,placeholder:c,precision:u,wrapperClassName:d,className:f,onChange:p,onValueChange:m,onFocus:h,onBlur:g,..._})=>{let v=te(null),y=te(null),[b,x]=D(a?.toString()??null),C=E(()=>s?.[1]??r,[s,r]),w=E(()=>s&&s[0]-s[1],[s]),A=E(()=>Ee(n),[n]),j=T(e=>{if(!C||e===`-`)return!0;let[t,n=``]=e.split(`.`),r=t.startsWith(`-`)?t.length-1:t.length;return n.length<=C&&r<=(w??1/0)},[C,w]),M=T(e=>{if(e===`0`)return`0`;if(!Number(e))return null;let[t,n=``]=Oe(parseFloat(e),Math.min(C-1,u||0),i).toString().split(`.`),r=De(t);return n?`${r}.${n}`:r},[C,u,i]),N=T(e=>{let t=e===`0`,n=e===`-`||/^-0+(\.0+)?$/.test(e)||/^-0*\.$/.test(e);if(t){m?.(0),x(e);return}if(n){x(()=>(m?.(0),e));return}},[m]),ne=T(e=>{p?.(e);let{value:t}=e.target;if(t===``||t===void 0){m?.(null),x(null);return}N(t),!(!A.test(t)||!j(t))&&(m?.(parseFloat(t)||0),x(t))},[j,p,m,N,A]),P=T(e=>{t||(h?.(e),x(e=>typeof e==`string`?e.replace(/,/g,``):null))},[t,h]),re=T(e=>{t||(g?.(e),x(e=>e===null?null:e===`0`||e===`-`||/^-0+(\.0+)?$/.test(e)||/^-0*\.$/.test(e)?`0`:typeof e==`string`?M(e):null))},[t,M,g]);return ee(()=>{let e=document.activeElement===y.current;if(a==null||!A.test(a.toString())||!j(a.toString())){x(null);return}x(t=>e?t:M(a.toString()))},[M,a,j,A]),ee(()=>{if(!v.current||!y.current||!o)return;let e=v.current.offsetWidth;y.current.style.setProperty(`padding-right`,`${(e+10)/16}rem`)},[o]),k(`div`,{className:S(`relative`,d),children:[O(l,{..._,ref:y,value:b||(t?`0`:``),placeholder:c,disabled:e,readOnly:t,className:S(`text-end font-number text-sm slashed-zero lining-nums tabular-nums`,t&&`bg-muted text-muted-foreground`,f),onChange:ne,onFocus:P,onBlur:re}),o&&O(`span`,{ref:v,className:`-translate-y-1/2 pointer-events-none absolute top-1/2 right-2 text-muted-foreground text-sm`,children:o})]})},Ae=({label:e,description:t,placeholder:n,helperText:r,orientation:i=`responsive`,showErrorMessage:a=!0,rounding:o,decimalPlaces:s,percision:c,unit:l,required:u,allowNegative:d})=>{let f=Q(),p=B(f.form.store,({isSubmitting:e})=>e),m=E(()=>f.state.meta.errors,[f.state.meta.errors]),h=E(()=>u?f.state.value===null:!1,[u,f.state.value]),g=T(e=>{p||f.handleChange(e)},[p,f.handleChange]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:i,"data-invalid":f.state.meta.isTouched&&!f.state.meta.isValid,children:[k(U,{children:[O(G,{htmlFor:f.name,"aria-required":h,children:e}),O(q,{children:t})]}),k(W,{children:[k(`div`,{className:`relative w-full`,children:[O(ke,{id:f.name,value:f.state.value,"aria-invalid":f.state.meta.isTouched&&!f.state.meta.isValid&&f.state.meta.isDirty,placeholder:n,roundingRule:o,numberAfterDecimalPoint:s,precision:c,unitText:l,allowNegative:d,className:S(p&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:f.handleBlur,onValueChange:g}),p&&O(`div`,{className:`absolute inset-s-2 inset-y-0 top-2.5 text-muted-weak [&>svg]:size-3.5`,children:O(F,{className:`animate-spin text-primary-strong`})}),f.state.meta.isDirty&&a&&!!m.length&&O(`div`,{className:`absolute inset-s-2 inset-y-0 top-2.75 text-danger-strong [&>svg]:size-3.5`,children:O(M,{})}),O(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:f.state.meta.isDirty&&a&&O(X,{errors:m})})]}),O(J,{isShow:!!r,children:r})]})]}),O(Y,{})]})},je=({label:e,description:t,placeholder:n,orientation:r=`responsive`,helperText:i,showErrorMessage:a=!0})=>{let{form:o,name:s,state:c,handleBlur:u,handleChange:d}=Q(),f=B(o.store,({isSubmitting:e})=>e),[p,m]=D(!1),h=E(()=>c.meta.isTouched&&!c.meta.isValid,[c.meta.isTouched,c.meta.isValid]),g=T(()=>m(e=>!e),[]),_=T(({target:{value:e}})=>{f||d(e||null)},[f,d]);return O(V,{className:`gap-y-4 px-4`,children:k(H,{"data-invalid":h,orientation:r,children:[k(U,{children:[O(G,{htmlFor:s,children:e}),O(q,{children:t})]}),k(W,{children:[O(l,{id:s,type:p?`text`:`password`,placeholder:n,value:c.value??``,"aria-invalid":h,autoComplete:`new-password`,onBlur:u,onChange:_}),O(`button`,{className:`absolute inset-y-0 inset-e-0 flex size-9 items-center justify-center rounded-e-md text-muted outline-none transition-[color,box-shadow] focus:z-10 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,type:`button`,onClick:g,"aria-label":p?`Hide password`:`Show password`,"aria-pressed":p,"aria-controls":`password`,children:O(p?P:ne,{size:16,"aria-hidden":`true`})}),O(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&O(X,{errors:c.meta.errors})}),O(J,{isShow:!!i,children:i})]})]})})},Me=({label:e,description:t,orientation:n,options:r,helperText:i})=>{let a=Q(),o=B(a.form.store,({isSubmitting:e})=>e);return k(V,{className:`px-4`,children:[k(H,{orientation:n,className:`flex-col gap-2`,children:[k(U,{children:[O(G,{children:e}),O(q,{children:t}),O(J,{isShow:!!i,children:i})]}),O(W,{children:O(h,{defaultValue:a.state.value??void 0,className:`w-full`,onValueChange:a.handleChange,children:r.map(e=>O(G,{className:S(`h-fit`,a.state.value===e.value&&`border-primary-weak! bg-primary-bg-subtle`,o&&`pointer-events-none bg-muted-muted opacity-60`,a.state.value===e.value&&o&&`border-border-strong!`),children:k(H,{orientation:`horizontal`,className:`justify-between rounded p-2!`,children:[k(U,{className:`gap-1!`,children:[O(K,{children:e.label}),O(q,{className:`text-xs`,children:e.description})]}),O(m,{value:e.value})]})},e.value))})})]}),O(Y,{})]})},Ne=({label:e,description:t,placeholder:n,orientation:r=`responsive`,options:i,helperText:a,required:o=!1})=>{let s=Q(),c=E(()=>s.state.meta.isTouched&&!s.state.meta.isValid,[s.state.meta.isTouched,s.state.meta.isValid]),l=E(()=>o?s.state.value===null:!1,[o,s.state.value]),u=E(()=>s.state.meta.errors,[s.state.meta.errors]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:r,"data-invalid":s.state.meta.isTouched&&!s.state.meta.isValid,children:[k(U,{children:[O(G,{htmlFor:s.name,"aria-required":l,children:e}),O(q,{children:t})]}),k(W,{className:`flex flex-col`,children:[k(b,{defaultValue:s.state.value||void 0,onValueChange:s.handleChange,children:[O(y,{"aria-invalid":c?`true`:void 0,onBlur:s.handleBlur,children:O(g,{placeholder:n})}),k(v,{children:[!!i.length&&i.map(e=>O(_,{value:e.value,children:e.label},e.value)),!i.length&&k(`div`,{className:`flex items-center justify-center gap-x-2 rounded border border-border bg-muted-muted px-4 py-6.5 text-center text-sm text-text-positive-weak`,children:[O(ie,{strokeWidth:1}),`No options available`]})]})]}),O(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:O(X,{errors:u})}),O(J,{isShow:!!a,children:a})]})]}),O(Y,{})]})};function Pe({className:e,...t}){return O(z.Root,{"data-slot":`switch`,className:S(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full shadow-xs transition-all`,`inline-flex h-5`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`-outline-offset-1 inset-shadow-2xs outline-1`,`data-[state=checked]:bg-primary`,`data-[state=checked]:outline-primary-strong`,`data-[state=unchecked]:bg-muted-weak`,`data-[state=unchecked]:outline-border`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...t,children:O(z.Thumb,{"data-slot":`switch-thumb`,className:S(`block size-4 bg-card shadow-xs`,`pointer-events-none rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}const Fe=({label:e,description:t,helperText:n})=>{let r=Q();return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:`vertical`,className:`relative justify-between gap-y-1`,children:[k(U,{children:[O(K,{className:`cursor-pointer`,children:O(`label`,{htmlFor:r.name,children:e})}),O(q,{children:t}),O(Pe,{id:r.name,checked:r.state.value??!1,className:`absolute top-1 right-1`,onBlur:r.handleBlur,onCheckedChange:r.handleChange})]}),O(J,{isShow:!!n,children:n})]}),O(Y,{})]})},Ie=({label:e,description:t,placeholder:n,helperText:r,counter:i=!1,orientation:a=`responsive`,showClearButton:o=!1,showErrorMessage:s=!0,required:c=!1,maxLength:u})=>{let{form:d,name:f,state:p,handleBlur:m,handleChange:h}=Q(),g=B(d.store,({isSubmitting:e})=>e),_=E(()=>o&&!g,[o,g]),v=E(()=>p.value?p.value.length:0,[p.value]),y=E(()=>{if(!i)return``;let e=`character${[0,1].includes(v)?``:`s`}`;return i&&u?`${v} / ${u} ${e}`:`${v} ${e}`},[v,i,u]),b=E(()=>p.meta.isDirty&&p.meta.isTouched&&!p.meta.isValid,[p.meta.isDirty,p.meta.isTouched,p.meta.isValid]),x=E(()=>c?p.value===null:!1,[c,p.value]),C=T(({target:{value:e}})=>{g||i&&u&&e.length>u||h(e||null)},[g,i,u,h]),w=T(()=>{g||h(``)},[g,h]);return k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:a,"data-invalid":b,children:[k(U,{children:[O(G,{"aria-required":x,htmlFor:f,children:e}),O(q,{children:t})]}),k(W,{children:[O(l,{id:f,name:f,value:p.value===null?``:p.value,"aria-invalid":b,autoComplete:`off`,placeholder:n,className:S(`pr-6`,g&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:m,onChange:C}),_&&!p.meta.errors.length&&O(`button`,{type:`button`,"aria-label":`Clear`,className:`absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-intense [&>svg]:size-3.5`,onClick:w,children:O(se,{"aria-hidden":`true`})}),g&&O(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-muted-weak`,children:O(F,{size:14,className:`animate-spin text-primary-strong`})}),p.meta.isDirty&&s&&!!p.meta.errors.length&&O(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-danger-strong`,children:O(M,{size:14})}),k(`div`,{className:`mt-1 flex w-full items-start gap-x-2`,children:[p.meta.isDirty&&s&&O(X,{className:`flex-1`,errors:p.meta.errors}),!!i&&O(`p`,{className:`h-4 flex-0 text-nowrap text-end text-text-positive-weak text-xs tabular-nums`,children:y})]}),O(J,{isShow:!!r,children:r})]})]}),O(Y,{})]})},Le=({label:e,description:t,placeholder:n,helperText:r,counter:i=!1,orientation:a=`responsive`,showErrorMessage:o=!0,required:s=!1,maxLength:c})=>{let{form:l,state:u,name:d,handleBlur:f,handleChange:p}=Q(),m=B(l.store,({isSubmitting:e})=>e),h=E(()=>u.value?u.value.length:0,[u.value]),g=E(()=>{if(!i)return``;let e=`character${[0,1].includes(h)?``:`s`}`;return i&&c?`${h} / ${c} ${e}`:`${h} ${e}`},[h,i,c]),_=E(()=>u.meta.isDirty&&u.meta.isTouched&&!u.meta.isValid,[u.meta.isDirty,u.meta.isTouched,u.meta.isValid]),v=E(()=>u.meta.errors,[u.meta.errors]),y=E(()=>s?u.value===null:!1,[s,u.value]),b=T(({target:{value:e}})=>{m||i&&c&&e.length>c||p(e||null)},[m,i,c,p]);return k(V,{className:`px-4`,children:[k(H,{orientation:a,"data-invalid":_,children:[k(U,{children:[O(G,{"aria-required":y,htmlFor:d,children:e}),O(q,{children:t})]}),k(W,{children:[O(x,{id:d,name:d,value:u.value===null?``:u.value,"aria-invalid":_,autoComplete:`off`,placeholder:n,className:S(m&&`pointer-events-none bg-muted-muted opacity-60`),onChange:b,onBlur:f}),m&&O(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-muted-weak`,children:O(F,{size:14,className:`animate-spin text-primary-strong`})}),u.meta.isDirty&&o&&!!v.length&&O(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-danger-strong`,children:O(M,{size:14})}),k(`div`,{className:`mt-1 flex w-full items-start gap-x-2`,children:[u.meta.isDirty&&o&&O(X,{className:`flex-1`,errors:v}),!!i&&O(`p`,{className:`h-4 flex-0 text-nowrap text-end text-text-positive-weak text-xs tabular-nums`,children:g})]}),O(J,{isShow:!!r,children:r})]})]}),O(Y,{})]})},Re=({label:t,className:n})=>{let r=$(),i=T(async()=>{await r.handleSubmit({submitAction:`submit`}),r.state.isSubmitSuccessful&&r.reset()},[r]);return O(r.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:r,isSubmitting:a})=>O(e,{type:`button`,size:`md`,disabled:r,isLoading:a,className:S(`min-h-8 min-w-32`,n),onClick:i,children:t??`Submit`})})},ze=({type:t=`create`})=>{let n=$();return k(`div`,{className:`flex h-8 items-center justify-between`,children:[O(n.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:t})=>O(e,{color:`muted`,variant:`outline`,type:`button`,size:`md`,disabled:t,className:`h-full min-w-32`,onClick:()=>n.reset(),children:`Cancel`})}),t===`create`&&O(n.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:t,isSubmitting:r})=>k(e,{type:`submit`,size:`md`,disabled:t,isLoading:r,className:`h-full min-w-32`,onClick:async()=>{await n.handleSubmit({submitAction:`create`}),n.state.isSubmitSuccessful&&n.reset()},children:[O(ae,{}),`Add New`]})}),t===`update`&&O(n.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:t,isSubmitting:r})=>k(e,{type:`submit`,size:`md`,disabled:t,isLoading:r,className:`h-full min-w-32`,onClick:async()=>{await n.handleSubmit({submitAction:`update`}),n.state.isSubmitSuccessful&&n.reset()},children:[O(A,{}),`Update`]})})]})};function Z({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return O(me.Root,{"data-slot":`separator`,decorative:n,orientation:t,className:S(`shrink-0 bg-border-weak`,`data-[orientation=horizontal]:h-px`,`data-[orientation=horizontal]:w-full`,`data-[orientation=vertical]:h-full`,`data-[orientation=vertical]:w-px`,e),...r})}const Be=({title:t,description:n,onDelete:r,children:i})=>k(`section`,{"data-slot":`card-form`,className:`relative flex flex-col rounded-md bg-card pb-4 shadow-card ring-4 ring-border-weak`,children:[k(`div`,{"data-slot":`card-form-header`,className:`flex flex-col space-y-1 p-4`,children:[O(`p`,{className:`font-semibold text-lg`,children:t}),!!n&&O(`p`,{className:`text-muted text-sm`,children:n})]}),O(Z,{}),O(`div`,{"data-slot":`card-form-main`,className:`flex flex-col space-y-4 py-4`,children:i}),!!r&&k(e,{color:`danger`,variant:`outline`,size:`sm`,className:`absolute top-2 right-2`,onClick:e=>{r?.(),e.preventDefault(),e.stopPropagation()},children:[O(oe,{}),`Remove`]})]}),Ve=({children:e})=>O(`div`,{"data-slot":`section-form`,className:`flex flex-col space-y-4`,children:e}),He=({...e})=>O(`button`,{...e,type:`button`,className:`min-w-40 cursor-pointer rounded-sm border border-border bg-card px-4 py-2 font-semibold text-sm text-text-positive shadow-xs outline-none transition-all hover:opacity-90 focus:border-border focus:ring-3 focus:ring-border/80 focus:ring-offset-2 focus:drop-shadow-none disabled:pointer-events-none disabled:opacity-60 disabled:drop-shadow-none`,children:`Hủy`}),Ue=({isSubmitting:e,submitText:t=`Submit`,...n})=>O(`button`,{...n,type:`button`,"data-loading":e?`true`:void 0,className:`relative min-h-9.5 min-w-40 cursor-pointer rounded-sm border border-primary-strong bg-primary px-4 py-2 font-semibold text-sm text-text-negative shadow-card outline-none transition-all hover:opacity-90 focus:border-transparent focus:ring-3 focus:ring-primary/80 focus:ring-offset-2 focus:drop-shadow-none disabled:pointer-events-none disabled:opacity-60 disabled:drop-shadow-none data-[loading=true]:pointer-events-none data-[loading=true]:opacity-80`,children:e?O(re,{size:16,strokeWidth:3,className:`absolute top-1/2 left-1/2 z-10 -translate-x-1/2 -translate-y-1/2 animate-spin`}):t}),We=({title:e,submitText:n,open:c,onOpenChange:l,children:u})=>{let d=$(),f=T(e=>{e||d.reset(),l?.(e)},[d.reset,l]);return O(s,{open:c,onOpenChange:f,children:k(r,{"data-slot":`dialog-portal`,children:[O(o,{}),k(a,{className:`flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-2xl sm:rounded-sm`,children:[O(`div`,{"data-slot":`dialog-header`,className:`flex flex-col items-center justify-center gap-2 px-4 py-6 text-center shadow-sm sm:text-left`,children:O(i,{"data-slot":`dialog-title`,children:e})}),O(t,{}),O(`div`,{"data-slot":`dialog-content`,className:`relative flex flex-col space-y-4 overflow-y-auto p-0 pt-6 max-sm:flex-1 sm:p-4`,children:u}),O(t,{}),k(`div`,{"data-slot":`dialog-footer`,className:`flex flex-col-reverse items-center justify-between gap-2 px-6 py-4 shadow-sm sm:flex-row sm:justify-end max-sm:[&>button]:w-full`,children:[O(d.Subscribe,{selector:e=>({disabled:e.isSubmitting}),children:({disabled:e})=>O(He,{disabled:e,onClick:()=>{d.reset(),f(!1)}})}),O(d.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>O(Ue,{isSubmitting:e,disabled:t,submitText:n,onClick:()=>d.handleSubmit()})})]})]})]})})},Ge=({label:e,description:t,helperText:n,orientation:r=`responsive`,children:i})=>k(V,{className:`gap-y-4 px-4`,children:[k(H,{orientation:r,children:[k(U,{children:[O(G,{children:e}),O(q,{children:t})]}),k(W,{children:[i,O(J,{isShow:!!n,children:n})]})]}),O(Y,{})]}),Ke=({title:e,open:t,contentClassName:r,onOpenChange:i,children:a})=>{let o=$();return O(R.Root,{"data-slot":`dialog`,open:t,onOpenChange:i,children:k(R.Portal,{"data-slot":`dialog-portal`,children:[O(R.Overlay,{"data-slot":`dialog-overlay`,className:S(`fixed inset-0 z-40 bg-black/50 backdrop-blur-sm`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out`)}),O(R.Content,{"data-slot":`dialog-content`,className:S(`fixed top-4 right-4 z-50 h-[calc(100dvh-2rem)] min-w-sm max-w-xl rounded-md bg-background drop-shadow-lg`,`duration-300`,`data-[state=open]:animate-in`,`data-[state=open]:slide-in-from-right`,`data-[state=open]:fade-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:slide-out-to-right`,`data-[state=closed]:fade-out`),children:k(`section`,{className:`relative flex size-full flex-col`,children:[O(`header`,{className:`flex h-14 items-center border-border border-b px-4`,children:O(`h2`,{className:`font-semibold text-lg text-primary-strong`,children:e})}),O(`div`,{className:S(`flex flex-1 flex-col overflow-y-auto py-4`,r),children:a}),k(`div`,{className:`flex flex-col space-y-4 border-border border-t px-4 py-2`,children:[O(o.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>O(Ue,{isSubmitting:e,disabled:t,className:`w-full`,onClick:()=>o.handleSubmit()})}),O(o.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:e})=>O(He,{disabled:e,className:`w-full`,onClick:()=>{o.reset(),i?.(!1)}})})]}),O(R.Close,{asChild:!0,children:O(n,{className:`absolute top-2 right-2`})})]})})]})})},qe=({children:e})=>O(`header`,{"data-slot":`section-header`,className:`px-4 pt-2.5 pb-2 font-medium text-base text-primary-strong`,children:e}),Je=({children:e})=>O(`main`,{"data-slot":`section-main`,className:`relative flex flex-col space-y-4 py-4`,children:e}),Ye=({title:e,children:t})=>k(`section`,{"data-slot":`section-form`,className:`flex flex-col rounded-md bg-background shadow-card ring-4 ring-border-weak`,children:[O(qe,{children:e}),O(Z,{}),O(Je,{children:t})]}),Xe=({title:e,description:t,helperText:n})=>k(V,{className:`gap-y-4 px-4`,children:[k(H,{className:`gap-0`,children:[k(U,{children:[O(Se,{className:`mb-1`,children:e}),O(q,{children:t})]}),O(J,{isShow:!!n,children:n})]}),O(Y,{})]}),{fieldContext:Ze,formContext:Qe,useFieldContext:Q,useFormContext:$}=ge(),{useAppForm:$e,withForm:et,withFieldGroup:tt}=he({fieldContext:Ze,formContext:Qe,fieldComponents:{TextField:Ie,TextareaField:Le,NumberField:Ae,EmailField:Te,PasswordField:je,SelectField:Ne,DateField:we,SwitchField:Fe,RadioGroupField:Me,CheckboxField:Ce,FieldGroup:V,Field:H,FieldContent:U,FieldLabel:G,FieldContentMain:W,FieldSeparator:Y,FieldError:X},formComponents:{TanStackDialogForm:We,TanStackPopoverForm:Ke,TanStackContainerForm:Ve,TanStackSectionForm:Ye,TanStackCardForm:Be,TanStackFieldGroup:Ge,TanStackTitleField:Xe,TanStackActionsForm:ze,TanStackActionSubmit:Re}});export{H as Field,U as FieldContent,W as FieldContentMain,X as FieldError,V as FieldGroup,G as FieldLabel,Y as FieldSeparator,Q as useTanStackFieldContext,$e as useTanStackForm,$ as useTanStackFormContext,tt as withTanStackFieldGroup,et as withTanStackForm};
2
2
  //# sourceMappingURL=index.mjs.map