tembro 2.1.1 → 2.1.2

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 (156) hide show
  1. package/dist/components/actions/action-menu.cjs +1 -1
  2. package/dist/components/actions/action-menu.js +1 -0
  3. package/dist/components/actions/button-group.cjs +1 -1
  4. package/dist/components/actions/button-group.js +1 -0
  5. package/dist/components/actions/copy-button.cjs +1 -1
  6. package/dist/components/actions/copy-button.js +1 -0
  7. package/dist/components/calendar/calendar.cjs +1 -1
  8. package/dist/components/calendar/calendar.js +1 -0
  9. package/dist/components/calendar/date-picker.cjs +1 -1
  10. package/dist/components/calendar/date-picker.js +1 -0
  11. package/dist/components/calendar/date-range-picker.cjs +1 -1
  12. package/dist/components/calendar/date-range-picker.js +1 -0
  13. package/dist/components/command/command-palette.cjs +1 -1
  14. package/dist/components/command/command-palette.js +1 -0
  15. package/dist/components/data-table/data-table-saved-filters.cjs +1 -1
  16. package/dist/components/data-table/data-table-saved-filters.js +1 -0
  17. package/dist/components/data-table/data-table.cjs +1 -1
  18. package/dist/components/data-table/data-table.js +1 -0
  19. package/dist/components/data-table/table-import-button.cjs +1 -1
  20. package/dist/components/data-table/table-import-button.js +1 -0
  21. package/dist/components/display/avatar.cjs +1 -1
  22. package/dist/components/display/avatar.js +1 -0
  23. package/dist/components/display/carousel.cjs +1 -1
  24. package/dist/components/display/carousel.js +1 -0
  25. package/dist/components/display/code-block.cjs +1 -1
  26. package/dist/components/display/code-block.js +1 -0
  27. package/dist/components/display/kanban.cjs +1 -1
  28. package/dist/components/display/kanban.js +1 -0
  29. package/dist/components/display/tree-view.cjs +1 -1
  30. package/dist/components/display/tree-view.js +1 -0
  31. package/dist/components/filters/filter-bar.cjs +1 -1
  32. package/dist/components/filters/filter-bar.js +1 -0
  33. package/dist/components/filters/saved-filter-select.cjs +1 -1
  34. package/dist/components/filters/saved-filter-select.js +1 -0
  35. package/dist/components/inputs/async-select.cjs +1 -1
  36. package/dist/components/inputs/async-select.js +1 -0
  37. package/dist/components/inputs/clearable-input.cjs +1 -1
  38. package/dist/components/inputs/clearable-input.js +1 -0
  39. package/dist/components/inputs/color-input.cjs +1 -1
  40. package/dist/components/inputs/color-input.js +1 -0
  41. package/dist/components/inputs/combobox.cjs +1 -1
  42. package/dist/components/inputs/combobox.js +1 -0
  43. package/dist/components/inputs/inline-editable.cjs +1 -1
  44. package/dist/components/inputs/inline-editable.js +1 -0
  45. package/dist/components/inputs/json-input.cjs +1 -1
  46. package/dist/components/inputs/json-input.js +1 -0
  47. package/dist/components/inputs/otp-input.cjs +1 -1
  48. package/dist/components/inputs/otp-input.js +1 -0
  49. package/dist/components/inputs/password-input.cjs +1 -1
  50. package/dist/components/inputs/password-input.js +1 -0
  51. package/dist/components/inputs/quantity-stepper.cjs +1 -1
  52. package/dist/components/inputs/quantity-stepper.js +1 -0
  53. package/dist/components/inputs/rating.cjs +1 -1
  54. package/dist/components/inputs/rating.js +1 -0
  55. package/dist/components/inputs/search-input.cjs +1 -1
  56. package/dist/components/inputs/search-input.js +1 -0
  57. package/dist/components/inputs/slider.cjs +1 -1
  58. package/dist/components/inputs/slider.js +1 -0
  59. package/dist/components/inputs/tag-input.cjs +1 -1
  60. package/dist/components/inputs/tag-input.js +1 -0
  61. package/dist/components/layout/app-sidebar.cjs +1 -1
  62. package/dist/components/layout/app-sidebar.js +1 -0
  63. package/dist/components/layout/breadcrumbs.cjs +1 -1
  64. package/dist/components/layout/breadcrumbs.js +1 -0
  65. package/dist/components/modern/dual-list-picker.cjs +1 -1
  66. package/dist/components/modern/dual-list-picker.js +1 -0
  67. package/dist/components/modern/resizable-panel.cjs +1 -1
  68. package/dist/components/modern/resizable-panel.js +1 -0
  69. package/dist/components/modern/rich-text-editor.cjs +1 -1
  70. package/dist/components/modern/rich-text-editor.js +1 -0
  71. package/dist/components/modern/tour.cjs +1 -1
  72. package/dist/components/modern/tour.js +1 -0
  73. package/dist/components/notifications/toast.cjs +1 -1
  74. package/dist/components/notifications/toast.js +1 -0
  75. package/dist/components/overlay/alert-dialog.cjs +1 -1
  76. package/dist/components/overlay/alert-dialog.js +1 -0
  77. package/dist/components/overlay/confirm-dialog.cjs +1 -1
  78. package/dist/components/overlay/confirm-dialog.js +1 -0
  79. package/dist/components/theme-provider.cjs +1 -1
  80. package/dist/components/theme-provider.js +1 -0
  81. package/dist/components/ui/checkbox/index.cjs +1 -1
  82. package/dist/components/ui/checkbox/index.js +1 -0
  83. package/dist/components/ui/collapse/index.cjs +1 -1
  84. package/dist/components/ui/collapse/index.js +1 -0
  85. package/dist/components/ui/input/index.cjs +1 -1
  86. package/dist/components/ui/input/index.js +1 -0
  87. package/dist/components/ui/radio-group/index.cjs +1 -1
  88. package/dist/components/ui/radio-group/index.js +1 -0
  89. package/dist/components/ui/right-click-menu/index.cjs +1 -1
  90. package/dist/components/ui/right-click-menu/index.js +1 -0
  91. package/dist/components/ui/segmented-control/index.cjs +1 -1
  92. package/dist/components/ui/segmented-control/index.js +1 -0
  93. package/dist/components/ui/switch/index.cjs +1 -1
  94. package/dist/components/ui/switch/index.js +1 -0
  95. package/dist/components/ui/textarea/index.cjs +1 -1
  96. package/dist/components/ui/textarea/index.js +1 -0
  97. package/dist/components/upload/file-upload.cjs +1 -1
  98. package/dist/components/upload/file-upload.js +1 -0
  99. package/dist/components/upload/image-upload.cjs +1 -1
  100. package/dist/components/upload/image-upload.js +1 -0
  101. package/dist/showcase/tembro-registry.json.cjs +1 -1
  102. package/dist/showcase/tembro-registry.json.js +1 -1
  103. package/package.json +1 -1
  104. package/packages/cli/dist/index.cjs +1 -1
  105. package/packages/cli/vendor/src/components/actions/action-menu.tsx +2 -0
  106. package/packages/cli/vendor/src/components/actions/button-group.tsx +2 -0
  107. package/packages/cli/vendor/src/components/actions/copy-button.tsx +2 -0
  108. package/packages/cli/vendor/src/components/calendar/calendar.tsx +2 -0
  109. package/packages/cli/vendor/src/components/calendar/date-picker.tsx +2 -0
  110. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +2 -0
  111. package/packages/cli/vendor/src/components/command/command-palette.tsx +2 -0
  112. package/packages/cli/vendor/src/components/data-table/data-table-saved-filters.tsx +2 -0
  113. package/packages/cli/vendor/src/components/data-table/data-table.tsx +2 -0
  114. package/packages/cli/vendor/src/components/data-table/table-import-button.tsx +2 -0
  115. package/packages/cli/vendor/src/components/display/avatar.tsx +2 -0
  116. package/packages/cli/vendor/src/components/display/carousel.tsx +2 -0
  117. package/packages/cli/vendor/src/components/display/code-block.tsx +2 -0
  118. package/packages/cli/vendor/src/components/display/kanban.tsx +2 -0
  119. package/packages/cli/vendor/src/components/display/tree-view.tsx +2 -0
  120. package/packages/cli/vendor/src/components/filters/filter-bar.tsx +2 -0
  121. package/packages/cli/vendor/src/components/filters/saved-filter-select.tsx +2 -0
  122. package/packages/cli/vendor/src/components/inputs/async-select.tsx +2 -0
  123. package/packages/cli/vendor/src/components/inputs/clearable-input.tsx +2 -0
  124. package/packages/cli/vendor/src/components/inputs/color-input.tsx +2 -0
  125. package/packages/cli/vendor/src/components/inputs/combobox.tsx +2 -0
  126. package/packages/cli/vendor/src/components/inputs/inline-editable.tsx +2 -0
  127. package/packages/cli/vendor/src/components/inputs/json-input.tsx +2 -0
  128. package/packages/cli/vendor/src/components/inputs/otp-input.tsx +2 -0
  129. package/packages/cli/vendor/src/components/inputs/password-input.tsx +2 -0
  130. package/packages/cli/vendor/src/components/inputs/quantity-stepper.tsx +2 -0
  131. package/packages/cli/vendor/src/components/inputs/rating.tsx +2 -0
  132. package/packages/cli/vendor/src/components/inputs/search-input.tsx +2 -0
  133. package/packages/cli/vendor/src/components/inputs/slider.tsx +2 -0
  134. package/packages/cli/vendor/src/components/inputs/tag-input.tsx +2 -0
  135. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +2 -0
  136. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +2 -0
  137. package/packages/cli/vendor/src/components/modern/dual-list-picker.tsx +2 -0
  138. package/packages/cli/vendor/src/components/modern/resizable-panel.tsx +2 -0
  139. package/packages/cli/vendor/src/components/modern/rich-text-editor.tsx +2 -0
  140. package/packages/cli/vendor/src/components/modern/tour.tsx +2 -0
  141. package/packages/cli/vendor/src/components/notifications/toast.tsx +2 -0
  142. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +2 -0
  143. package/packages/cli/vendor/src/components/overlay/confirm-dialog.tsx +2 -0
  144. package/packages/cli/vendor/src/components/theme-provider.tsx +2 -0
  145. package/packages/cli/vendor/src/components/ui/checkbox/index.tsx +2 -0
  146. package/packages/cli/vendor/src/components/ui/collapse/index.tsx +2 -0
  147. package/packages/cli/vendor/src/components/ui/input/index.tsx +2 -0
  148. package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +2 -0
  149. package/packages/cli/vendor/src/components/ui/right-click-menu/index.tsx +2 -0
  150. package/packages/cli/vendor/src/components/ui/segmented-control/index.tsx +2 -0
  151. package/packages/cli/vendor/src/components/ui/switch/index.tsx +2 -0
  152. package/packages/cli/vendor/src/components/ui/textarea/index.tsx +2 -0
  153. package/packages/cli/vendor/src/components/upload/file-upload.tsx +2 -0
  154. package/packages/cli/vendor/src/components/upload/image-upload.tsx +2 -0
  155. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  156. package/registry.json +1 -1
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../ui/button/index.cjs"),n=require("../ui/input/index.cjs"),r=require("../ui/dialog/index.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s({title:e=`Are you sure?`,description:s,icon:c=(0,o.jsx)(a.AlertTriangleIcon,{}),cancelLabel:l=`Cancel`,actionLabel:u=`Continue`,actionTone:d=`destructive`,cancelVariant:f=`outline`,loading:p=!1,closeOnAction:m=!0,confirmValue:h,confirmLabel:g=`Type to confirm`,confirmPlaceholder:_,confirmDescription:v,confirmCaseSensitive:y=!0,severityNote:b,errorMessage:x=`Action could not be completed. Try again.`,onActionError:S,onAction:C,children:w,preventCloseWhileLoading:T=!0,actionButtonProps:E,cancelButtonProps:D,onOpenChange:O,...k}){let[A,j]=i.useState(!1),[M,N]=i.useState(``),[P,F]=i.useState(null),I=p||A,L=!!h?.trim(),R=y?h?.trim():h?.trim().toLowerCase(),z=y?M.trim():M.trim().toLowerCase(),B=!L||z===R;i.useEffect(()=>{k.open||(N(``),F(null))},[k.open]);let V=i.useCallback((e,t)=>{!e&&T&&I||O?.(e,t)},[O,T,I]),H=()=>{V(!1,void 0)},U=async()=>{if(!(!B||I)){if(F(null),!C){m&&H();return}try{j(!0),await C(),m&&H()}catch(e){F(x),S?.(e)}finally{j(!1)}}};return(0,o.jsxs)(r.Dialog,{onOpenChange:V,...k,children:[w,(0,o.jsxs)(r.DialogContent,{children:[(0,o.jsxs)(r.DialogHeader,{children:[(0,o.jsx)(`div`,{className:`mb-3 inline-flex size-11 items-center justify-center rounded-2xl border border-destructive/20 bg-destructive/10 text-destructive [&_svg]:size-5`,children:c}),(0,o.jsx)(r.DialogTitle,{children:e}),s?(0,o.jsx)(r.DialogDescription,{children:s}):null]}),L?(0,o.jsxs)(`div`,{className:`grid gap-2.5`,children:[(0,o.jsxs)(`div`,{className:`space-y-1`,children:[(0,o.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:g}),(0,o.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:v??(0,o.jsxs)(o.Fragment,{children:[`Type `,(0,o.jsx)(`span`,{className:`font-semibold text-foreground`,children:h}),` to continue.`]})})]}),(0,o.jsx)(n.Input,{value:M,onValueChange:N,placeholder:_??h,autoComplete:`off`,autoCapitalize:`off`,spellCheck:!1,"aria-invalid":P?!0:void 0,"aria-describedby":P?`alert-dialog-error`:void 0})]}):null,b?(0,o.jsx)(`div`,{className:`rounded-2xl border border-border/70 bg-muted/35 px-3.5 py-3 text-sm leading-6 text-muted-foreground`,children:b}):null,P?(0,o.jsx)(`div`,{id:`alert-dialog-error`,role:`alert`,"aria-live":`polite`,className:`rounded-2xl border border-destructive/20 bg-destructive/8 px-3.5 py-3 text-sm leading-6 text-destructive`,children:P}):null,(0,o.jsxs)(r.DialogFooter,{children:[(0,o.jsx)(r.DialogClose,{render:()=>(0,o.jsx)(t.Button,{type:`button`,variant:f,disabled:I,...D,children:l})}),(0,o.jsx)(t.Button,{type:`button`,variant:d===`destructive`?`destructive`:`default`,loading:I,disabled:!B||I,onClick:()=>void U(),...E,children:u})]})]})]})}exports.AlertDialog=s;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../ui/button/index.cjs"),n=require("../ui/input/index.cjs"),r=require("../ui/dialog/index.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s({title:e=`Are you sure?`,description:s,icon:c=(0,o.jsx)(a.AlertTriangleIcon,{}),cancelLabel:l=`Cancel`,actionLabel:u=`Continue`,actionTone:d=`destructive`,cancelVariant:f=`outline`,loading:p=!1,closeOnAction:m=!0,confirmValue:h,confirmLabel:g=`Type to confirm`,confirmPlaceholder:_,confirmDescription:v,confirmCaseSensitive:y=!0,severityNote:b,errorMessage:x=`Action could not be completed. Try again.`,onActionError:S,onAction:C,children:w,preventCloseWhileLoading:T=!0,actionButtonProps:E,cancelButtonProps:D,onOpenChange:O,...k}){let[A,j]=i.useState(!1),[M,N]=i.useState(``),[P,F]=i.useState(null),I=p||A,L=!!h?.trim(),R=y?h?.trim():h?.trim().toLowerCase(),z=y?M.trim():M.trim().toLowerCase(),B=!L||z===R;i.useEffect(()=>{k.open||(N(``),F(null))},[k.open]);let V=i.useCallback((e,t)=>{!e&&T&&I||O?.(e,t)},[O,T,I]),H=()=>{V(!1,void 0)},U=async()=>{if(!(!B||I)){if(F(null),!C){m&&H();return}try{j(!0),await C(),m&&H()}catch(e){F(x),S?.(e)}finally{j(!1)}}};return(0,o.jsxs)(r.Dialog,{onOpenChange:V,...k,children:[w,(0,o.jsxs)(r.DialogContent,{children:[(0,o.jsxs)(r.DialogHeader,{children:[(0,o.jsx)(`div`,{className:`mb-3 inline-flex size-11 items-center justify-center rounded-2xl border border-destructive/20 bg-destructive/10 text-destructive [&_svg]:size-5`,children:c}),(0,o.jsx)(r.DialogTitle,{children:e}),s?(0,o.jsx)(r.DialogDescription,{children:s}):null]}),L?(0,o.jsxs)(`div`,{className:`grid gap-2.5`,children:[(0,o.jsxs)(`div`,{className:`space-y-1`,children:[(0,o.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:g}),(0,o.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:v??(0,o.jsxs)(o.Fragment,{children:[`Type `,(0,o.jsx)(`span`,{className:`font-semibold text-foreground`,children:h}),` to continue.`]})})]}),(0,o.jsx)(n.Input,{value:M,onValueChange:N,placeholder:_??h,autoComplete:`off`,autoCapitalize:`off`,spellCheck:!1,"aria-invalid":P?!0:void 0,"aria-describedby":P?`alert-dialog-error`:void 0})]}):null,b?(0,o.jsx)(`div`,{className:`rounded-2xl border border-border/70 bg-muted/35 px-3.5 py-3 text-sm leading-6 text-muted-foreground`,children:b}):null,P?(0,o.jsx)(`div`,{id:`alert-dialog-error`,role:`alert`,"aria-live":`polite`,className:`rounded-2xl border border-destructive/20 bg-destructive/8 px-3.5 py-3 text-sm leading-6 text-destructive`,children:P}):null,(0,o.jsxs)(r.DialogFooter,{children:[(0,o.jsx)(r.DialogClose,{render:()=>(0,o.jsx)(t.Button,{type:`button`,variant:f,disabled:I,...D,children:l})}),(0,o.jsx)(t.Button,{type:`button`,variant:d===`destructive`?`destructive`:`default`,loading:I,disabled:!B||I,onClick:()=>void U(),...E,children:u})]})]})]})}exports.AlertDialog=s;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Button as e } from "../ui/button/index.js";
2
3
  import { Input as t } from "../ui/input/index.js";
3
4
  import { Dialog as n, DialogClose as r, DialogContent as i, DialogDescription as a, DialogFooter as o, DialogHeader as s, DialogTitle as c } from "../ui/dialog/index.js";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("./dialog-actions.cjs"),n=require("./modal-shell.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime");function a({cancelText:e=`Cancel`,confirmText:a=`Confirm`,confirmVariant:o=`default`,confirmDisabled:s=!1,cancelDisabled:c=!1,isLoading:l=!1,closeOnConfirm:u=!0,onConfirmError:d,onCancel:f,onConfirm:p,onOpenChange:m,...h}){let[g,_]=r.useState(!1),v=l||g,y=e=>{v&&e===!1||m?.(e)},b=()=>{f?.(),v||m?.(!1)},x=async()=>{if(!(s||v))try{_(!0),await p?.(),u&&m?.(!1)}catch(e){d?.(e)}finally{_(!1)}};return(0,i.jsx)(n.ModalShell,{showCloseButton:!v,onOpenChange:y,footer:(0,i.jsxs)(t.DialogActions,{children:[(0,i.jsx)(t.DialogActionButton,{type:`button`,variant:`outline`,disabled:c||v,onClick:b,children:e}),(0,i.jsx)(t.DialogActionButton,{type:`button`,variant:o,disabled:s||v,isLoading:v,onClick:()=>void x(),children:a})]}),...h})}exports.ConfirmDialog=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("./dialog-actions.cjs"),n=require("./modal-shell.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime");function a({cancelText:e=`Cancel`,confirmText:a=`Confirm`,confirmVariant:o=`default`,confirmDisabled:s=!1,cancelDisabled:c=!1,isLoading:l=!1,closeOnConfirm:u=!0,onConfirmError:d,onCancel:f,onConfirm:p,onOpenChange:m,...h}){let[g,_]=r.useState(!1),v=l||g,y=e=>{v&&e===!1||m?.(e)},b=()=>{f?.(),v||m?.(!1)},x=async()=>{if(!(s||v))try{_(!0),await p?.(),u&&m?.(!1)}catch(e){d?.(e)}finally{_(!1)}};return(0,i.jsx)(n.ModalShell,{showCloseButton:!v,onOpenChange:y,footer:(0,i.jsxs)(t.DialogActions,{children:[(0,i.jsx)(t.DialogActionButton,{type:`button`,variant:`outline`,disabled:c||v,onClick:b,children:e}),(0,i.jsx)(t.DialogActionButton,{type:`button`,variant:o,disabled:s||v,isLoading:v,onClick:()=>void x(),children:a})]}),...h})}exports.ConfirmDialog=a;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { DialogActionButton as e, DialogActions as t } from "./dialog-actions.js";
2
3
  import { ModalShell as n } from "./modal-shell.js";
3
4
  import * as r from "react";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs");let t=require("react");t=e.__toESM(t,1);let n=require("react/jsx-runtime");var r=`azamat-ui-theme`,i=t.createContext(null);function a(){if(typeof window>`u`)return`light`;let e=window.localStorage.getItem(r);return e===`light`||e===`dark`?e:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function o({children:e}){let[o,s]=t.useState(a);t.useEffect(()=>{let e=window.document.documentElement;e.classList.toggle(`dark`,o===`dark`),e.style.colorScheme=o,window.localStorage.setItem(r,o)},[o]);let c=t.useCallback(e=>{s(e)},[]),l=t.useCallback(()=>{s(e=>e===`dark`?`light`:`dark`)},[]),u=t.useMemo(()=>({theme:o,setTheme:c,toggleTheme:l}),[o,c,l]);return(0,n.jsx)(i.Provider,{value:u,children:e})}function s(){let e=t.useContext(i);if(!e)throw Error(`useTheme must be used within ThemeProvider`);return e}exports.ThemeProvider=o,exports.useTheme=s;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs");let t=require("react");t=e.__toESM(t,1);let n=require("react/jsx-runtime");var r=`azamat-ui-theme`,i=t.createContext(null);function a(){if(typeof window>`u`)return`light`;let e=window.localStorage.getItem(r);return e===`light`||e===`dark`?e:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function o({children:e}){let[o,s]=t.useState(a);t.useEffect(()=>{let e=window.document.documentElement;e.classList.toggle(`dark`,o===`dark`),e.style.colorScheme=o,window.localStorage.setItem(r,o)},[o]);let c=t.useCallback(e=>{s(e)},[]),l=t.useCallback(()=>{s(e=>e===`dark`?`light`:`dark`)},[]),u=t.useMemo(()=>({theme:o,setTheme:c,toggleTheme:l}),[o,c,l]);return(0,n.jsx)(i.Provider,{value:u,children:e})}function s(){let e=t.useContext(i);if(!e)throw Error(`useTheme must be used within ThemeProvider`);return e}exports.ThemeProvider=o,exports.useTheme=s;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import * as e from "react";
2
3
  import { jsx as t } from "react/jsx-runtime";
3
4
  //#region src/components/theme-provider.tsx
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");function a(e,t){return t?e===!1?`indeterminate`:e===`indeterminate`:e!==!0}var o=n.forwardRef(({className:e,checked:o,defaultChecked:s=!1,onCheckedChange:c,onCheckedStateChange:l,size:u=`md`,invalid:d=!1,allowIndeterminate:f=!1,disabled:p,onClick:m,children:h,...g},_)=>{let v=o!==void 0,[y,b]=n.useState(s),x=v?o:y,S=x===`indeterminate`?`indeterminate`:x?`checked`:`unchecked`;return(0,i.jsx)(`button`,{ref:_,type:`button`,role:`checkbox`,"aria-checked":x===`indeterminate`?`mixed`:x,"data-state":S,"data-size":u,"data-slot":`checkbox`,disabled:p,"aria-invalid":d||void 0,className:t.cn(`peer flex shrink-0 items-center justify-center rounded-[10px] border border-input/88 bg-background text-primary-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.10)] outline-none transition-[background-color,border-color,box-shadow,color,transform] hover:border-ring/30 hover:bg-background focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/45 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/25 data-[size=sm]:size-4 data-[size=md]:size-5 data-[size=lg]:size-6 data-[state=checked]:border-primary/28 data-[state=checked]:bg-primary data-[state=checked]:shadow-[0_10px_24px_color-mix(in_oklch,var(--primary),transparent_82%)] data-[state=indeterminate]:border-primary/28 data-[state=indeterminate]:bg-primary data-[state=indeterminate]:shadow-[0_10px_24px_color-mix(in_oklch,var(--primary),transparent_82%)] dark:border-white/12 dark:bg-white/[0.04] dark:hover:bg-white/[0.08]`,e),onClick:e=>{let t=a(x,f);v||b(t),l?.(t),c?.(t===!0),m?.(e)},...g,children:h??(0,i.jsx)(`span`,{className:`flex items-center justify-center`,children:x===`indeterminate`?(0,i.jsx)(r.MinusIcon,{className:`size-3.5`}):x?(0,i.jsx)(r.CheckIcon,{className:`size-3.5`}):null})})});o.displayName=`Checkbox`,exports.Checkbox=o;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");function a(e,t){return t?e===!1?`indeterminate`:e===`indeterminate`:e!==!0}var o=n.forwardRef(({className:e,checked:o,defaultChecked:s=!1,onCheckedChange:c,onCheckedStateChange:l,size:u=`md`,invalid:d=!1,allowIndeterminate:f=!1,disabled:p,onClick:m,children:h,...g},_)=>{let v=o!==void 0,[y,b]=n.useState(s),x=v?o:y,S=x===`indeterminate`?`indeterminate`:x?`checked`:`unchecked`;return(0,i.jsx)(`button`,{ref:_,type:`button`,role:`checkbox`,"aria-checked":x===`indeterminate`?`mixed`:x,"data-state":S,"data-size":u,"data-slot":`checkbox`,disabled:p,"aria-invalid":d||void 0,className:t.cn(`peer flex shrink-0 items-center justify-center rounded-[10px] border border-input/88 bg-background text-primary-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.10)] outline-none transition-[background-color,border-color,box-shadow,color,transform] hover:border-ring/30 hover:bg-background focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/45 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/25 data-[size=sm]:size-4 data-[size=md]:size-5 data-[size=lg]:size-6 data-[state=checked]:border-primary/28 data-[state=checked]:bg-primary data-[state=checked]:shadow-[0_10px_24px_color-mix(in_oklch,var(--primary),transparent_82%)] data-[state=indeterminate]:border-primary/28 data-[state=indeterminate]:bg-primary data-[state=indeterminate]:shadow-[0_10px_24px_color-mix(in_oklch,var(--primary),transparent_82%)] dark:border-white/12 dark:bg-white/[0.04] dark:hover:bg-white/[0.08]`,e),onClick:e=>{let t=a(x,f);v||b(t),l?.(t),c?.(t===!0),m?.(e)},...g,children:h??(0,i.jsx)(`span`,{className:`flex items-center justify-center`,children:x===`indeterminate`?(0,i.jsx)(r.MinusIcon,{className:`size-3.5`}):x?(0,i.jsx)(r.CheckIcon,{className:`size-3.5`}):null})})});o.displayName=`Checkbox`,exports.Checkbox=o;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import * as t from "react";
3
4
  import { CheckIcon as n, MinusIcon as r } from "lucide-react";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");function a({open:e,defaultOpen:r,onOpenChange:a,onToggle:o,className:s,children:c,variant:l=`default`,size:u=`md`,...d}){let f=e!==void 0,[p,m]=n.useState(r??!1),h=f?e:p;return(0,i.jsx)(`details`,{"data-slot":`collapse`,"data-variant":l,"data-size":u,className:t.cn(`group overflow-hidden rounded-[var(--aui-card-radius,var(--radius-xl))] border border-[color:var(--aui-card-border,var(--border))] bg-card text-card-foreground shadow-[var(--aui-card-shadow,var(--aui-control-shadow,none))] transition-[background-color,border-color,box-shadow] hover:border-[color:var(--aui-control-hover-border,var(--ring))] open:border-[color:var(--aui-control-hover-border,var(--ring))] data-[variant=soft]:bg-[color:color-mix(in_oklch,var(--muted),transparent_58%)] data-[variant=soft]:shadow-none data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:shadow-none`,s),onToggle:e=>{o?.(e);let t=e.currentTarget.open;f?t!==h&&(e.currentTarget.open=h):m(t),a?.(t)},open:h,...d,children:c})}function o({icon:e,hideIcon:n=!1,size:a=`md`,inset:o=!1,indicatorPosition:s=`end`,className:c,children:l,onClick:u,...d}){let f=n?null:(0,i.jsx)(`span`,{className:`shrink-0 rounded-md text-muted-foreground transition-[color,transform] group-open:rotate-180 group-open:text-foreground`,children:e??(0,i.jsx)(r.ChevronDownIcon,{className:`size-4`})});return(0,i.jsxs)(`summary`,{"data-slot":`collapse-trigger`,"data-size":a,"data-inset":o||void 0,"data-indicator-position":s,className:t.cn(`rounded-[calc(var(--aui-card-radius,var(--radius-xl))-1px)] group-open:rounded-b-none flex cursor-pointer list-none items-start gap-3 px-4 text-sm font-semibold outline-none transition-[background-color,color,box-shadow,border-radius] hover:bg-[color:var(--aui-control-surface-hover,var(--muted))] focus-visible:bg-[color:var(--aui-control-surface-hover,var(--muted))] focus-visible:shadow-[0_0_0_1px_var(--aui-focus-ring,var(--ring)),0_0_0_5px_var(--aui-focus-ring-soft,transparent)] group-open:text-foreground data-[indicator-position=end]:justify-between data-[indicator-position=start]:justify-start data-[size=sm]:py-2.5 data-[size=md]:py-3.5 data-[size=lg]:py-4.5 data-[inset=true]:px-5 [&::-webkit-details-marker]:hidden`,d[`aria-disabled`]&&`cursor-not-allowed opacity-75 hover:bg-transparent`,c),onClick:e=>{if(d[`aria-disabled`]){e.preventDefault();return}u?.(e)},...d,children:[s===`start`?f:null,(0,i.jsx)(`span`,{className:`min-w-0 flex-1`,children:l}),s===`end`?f:null]})}function s({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`collapse-content`,className:t.cn(`border-t border-[color:var(--aui-card-border,var(--border))] bg-[color:color-mix(in_oklch,var(--muted),transparent_70%)] px-4 py-3.5 text-sm leading-6 text-muted-foreground`,e),...n})}function c({items:e,type:r=`multiple`,value:c,defaultValue:l,onValueChange:u,variant:d=`default`,size:f=`md`,className:p,...m}){let h=n.useMemo(()=>c===void 0?l===void 0?r===`single`?``:[]:l:c,[l,r,c]),[g,_]=n.useState(h),v=c??g,y=e=>Array.isArray(v)?v.includes(e):v===e,b=(e,t)=>{let n=r===`single`?t?e:``:t?Array.from(new Set([...Array.isArray(v)?v:[],e])):Array.isArray(v)?v.filter(t=>t!==e):[];c===void 0&&_(n),u?.(n)};return(0,i.jsx)(`div`,{"data-slot":`collapse-group`,className:t.cn(`grid gap-2.5`,p),...m,children:e.map(e=>(0,i.jsxs)(a,{open:y(e.key),onOpenChange:t=>{e.disabled||b(e.key,t)},variant:d,size:f,className:t.cn(e.disabled&&`pointer-events-none opacity-60`),children:[(0,i.jsx)(o,{size:f,icon:e.icon,indicatorPosition:e.indicatorPosition,className:e.triggerClassName,"aria-disabled":e.disabled||void 0,title:typeof e.disabledReason==`string`?e.disabledReason:void 0,children:(0,i.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,i.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,i.jsx)(`span`,{className:`truncate`,children:e.title}),e.badge?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.badge}):null,e.meta?(0,i.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-medium text-muted-foreground`,children:e.meta}):null]}),e.description&&(0,i.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:e.description}),e.disabled&&e.disabledReason?(0,i.jsx)(`span`,{className:`text-[11px] font-medium text-muted-foreground`,children:e.disabledReason}):null]})}),(0,i.jsx)(s,{className:e.contentClassName,children:e.content})]},e.key))})}exports.Collapse=a,exports.CollapseContent=s,exports.CollapseGroup=c,exports.CollapseTrigger=o;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");function a({open:e,defaultOpen:r,onOpenChange:a,onToggle:o,className:s,children:c,variant:l=`default`,size:u=`md`,...d}){let f=e!==void 0,[p,m]=n.useState(r??!1),h=f?e:p;return(0,i.jsx)(`details`,{"data-slot":`collapse`,"data-variant":l,"data-size":u,className:t.cn(`group overflow-hidden rounded-[var(--aui-card-radius,var(--radius-xl))] border border-[color:var(--aui-card-border,var(--border))] bg-card text-card-foreground shadow-[var(--aui-card-shadow,var(--aui-control-shadow,none))] transition-[background-color,border-color,box-shadow] hover:border-[color:var(--aui-control-hover-border,var(--ring))] open:border-[color:var(--aui-control-hover-border,var(--ring))] data-[variant=soft]:bg-[color:color-mix(in_oklch,var(--muted),transparent_58%)] data-[variant=soft]:shadow-none data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:shadow-none`,s),onToggle:e=>{o?.(e);let t=e.currentTarget.open;f?t!==h&&(e.currentTarget.open=h):m(t),a?.(t)},open:h,...d,children:c})}function o({icon:e,hideIcon:n=!1,size:a=`md`,inset:o=!1,indicatorPosition:s=`end`,className:c,children:l,onClick:u,...d}){let f=n?null:(0,i.jsx)(`span`,{className:`shrink-0 rounded-md text-muted-foreground transition-[color,transform] group-open:rotate-180 group-open:text-foreground`,children:e??(0,i.jsx)(r.ChevronDownIcon,{className:`size-4`})});return(0,i.jsxs)(`summary`,{"data-slot":`collapse-trigger`,"data-size":a,"data-inset":o||void 0,"data-indicator-position":s,className:t.cn(`rounded-[calc(var(--aui-card-radius,var(--radius-xl))-1px)] group-open:rounded-b-none flex cursor-pointer list-none items-start gap-3 px-4 text-sm font-semibold outline-none transition-[background-color,color,box-shadow,border-radius] hover:bg-[color:var(--aui-control-surface-hover,var(--muted))] focus-visible:bg-[color:var(--aui-control-surface-hover,var(--muted))] focus-visible:shadow-[0_0_0_1px_var(--aui-focus-ring,var(--ring)),0_0_0_5px_var(--aui-focus-ring-soft,transparent)] group-open:text-foreground data-[indicator-position=end]:justify-between data-[indicator-position=start]:justify-start data-[size=sm]:py-2.5 data-[size=md]:py-3.5 data-[size=lg]:py-4.5 data-[inset=true]:px-5 [&::-webkit-details-marker]:hidden`,d[`aria-disabled`]&&`cursor-not-allowed opacity-75 hover:bg-transparent`,c),onClick:e=>{if(d[`aria-disabled`]){e.preventDefault();return}u?.(e)},...d,children:[s===`start`?f:null,(0,i.jsx)(`span`,{className:`min-w-0 flex-1`,children:l}),s===`end`?f:null]})}function s({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`collapse-content`,className:t.cn(`border-t border-[color:var(--aui-card-border,var(--border))] bg-[color:color-mix(in_oklch,var(--muted),transparent_70%)] px-4 py-3.5 text-sm leading-6 text-muted-foreground`,e),...n})}function c({items:e,type:r=`multiple`,value:c,defaultValue:l,onValueChange:u,variant:d=`default`,size:f=`md`,className:p,...m}){let h=n.useMemo(()=>c===void 0?l===void 0?r===`single`?``:[]:l:c,[l,r,c]),[g,_]=n.useState(h),v=c??g,y=e=>Array.isArray(v)?v.includes(e):v===e,b=(e,t)=>{let n=r===`single`?t?e:``:t?Array.from(new Set([...Array.isArray(v)?v:[],e])):Array.isArray(v)?v.filter(t=>t!==e):[];c===void 0&&_(n),u?.(n)};return(0,i.jsx)(`div`,{"data-slot":`collapse-group`,className:t.cn(`grid gap-2.5`,p),...m,children:e.map(e=>(0,i.jsxs)(a,{open:y(e.key),onOpenChange:t=>{e.disabled||b(e.key,t)},variant:d,size:f,className:t.cn(e.disabled&&`pointer-events-none opacity-60`),children:[(0,i.jsx)(o,{size:f,icon:e.icon,indicatorPosition:e.indicatorPosition,className:e.triggerClassName,"aria-disabled":e.disabled||void 0,title:typeof e.disabledReason==`string`?e.disabledReason:void 0,children:(0,i.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,i.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,i.jsx)(`span`,{className:`truncate`,children:e.title}),e.badge?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.badge}):null,e.meta?(0,i.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-medium text-muted-foreground`,children:e.meta}):null]}),e.description&&(0,i.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:e.description}),e.disabled&&e.disabledReason?(0,i.jsx)(`span`,{className:`text-[11px] font-medium text-muted-foreground`,children:e.disabledReason}):null]})}),(0,i.jsx)(s,{className:e.contentClassName,children:e.content})]},e.key))})}exports.Collapse=a,exports.CollapseContent=s,exports.CollapseGroup=c,exports.CollapseTrigger=o;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import * as t from "react";
3
4
  import { ChevronDownIcon as n } from "lucide-react";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs"),n=require("./primitive.cjs"),r=require("./group.cjs"),i=require("../../inputs/input-decorator.cjs"),a=require("../../inputs/clearable-input.cjs"),o=require("../../inputs/date-input.cjs"),s=require("../../inputs/date-range-input.cjs"),c=require("../../inputs/money-input.cjs"),l=require("../../inputs/masked-input.cjs"),u=require("../../inputs/number-input.cjs"),d=require("../../inputs/password-input.cjs"),f=require("../../inputs/phone-input.cjs"),p=require("../../inputs/quantity-input.cjs"),m=require("../../inputs/search-input.cjs");let h=require("react");h=e.__toESM(h,1);let g=require("react/jsx-runtime");function _(e){return typeof e==`string`?e.length:typeof e==`number`?String(e).length:Array.isArray(e)?e.join(``).length:0}function v(e){return e.type===`search`||e.searchIcon!==void 0||e.loading!==void 0||e.loadingLabel!==void 0||e.resultCount!==void 0||e.shortcut!==void 0||e.debounceMs!==void 0||e.showMetaOnClear!==void 0||e.onDebouncedValueChange!==void 0}var y=h.forwardRef((e,r)=>{let y=e.kind??`text`;if(y===`search`)return(0,g.jsx)(m.SearchInput,{ref:r,...e});if(y===`password`)return(0,g.jsx)(d.PasswordInput,{ref:r,...e});if(y===`number`)return(0,g.jsx)(u.NumberInput,{ref:r,...e});if(y===`phone`)return(0,g.jsx)(f.PhoneInput,{ref:r,...e});if(y===`money`)return(0,g.jsx)(c.MoneyInput,{ref:r,...e});if(y===`quantity`)return(0,g.jsx)(p.QuantityInput,{ref:r,...e});if(y===`masked`)return(0,g.jsx)(l.MaskedInput,{ref:r,...e});if(y===`date`)return(0,g.jsx)(o.DateInput,{ref:r,...e});if(y===`date-range`)return(0,g.jsx)(s.DateRangeInput,{...e});if(y===`clearable`)return(0,g.jsx)(a.ClearableInput,{ref:r,...e});let b=e;if(v(b)){let{leading:e,searchIcon:n,helperText:i,errorText:a,showCharacterCount:o,countFormatter:s,helperClassName:c,inputClassName:l,...u}=b,d=Array.isArray(b.value)?b.value.join(` `):b.value==null||typeof b.value==`string`||typeof b.value==`number`?b.value:String(b.value),f=Array.isArray(b.defaultValue)?b.defaultValue.join(` `):b.defaultValue==null||typeof b.defaultValue==`string`||typeof b.defaultValue==`number`?b.defaultValue:String(b.defaultValue),p=(0,g.jsx)(m.SearchInput,{ref:r,searchIcon:n??e,inputClassName:l,...u,value:d,defaultValue:f});if(!i&&!a&&!o)return p;let h=_(b.value??b.defaultValue);return(0,g.jsxs)(`div`,{"data-slot":`input-field`,className:`grid gap-1.5`,children:[p,(0,g.jsxs)(`div`,{"data-slot":`input-meta`,className:`flex items-start justify-between gap-3 px-1`,children:[(0,g.jsx)(`div`,{"data-slot":`input-helper`,className:t.cn(`min-w-0 text-xs leading-5`,a?`text-destructive`:`text-muted-foreground`,c),children:a??i}),o?(0,g.jsx)(`div`,{"data-slot":`input-count`,className:t.cn(`shrink-0 text-[11px] font-medium tabular-nums`,a?`text-destructive`:`text-muted-foreground`),children:s?.(h,b.maxLength)??(typeof b.maxLength==`number`?`${h}/${b.maxLength}`:h)}):null]})]})}let{value:x,defaultValue:S,leading:C,trailing:w,trailingAction:T,clearable:E=!1,onValueChange:D,onClear:O,clearLabel:k,clearOnEscape:A,focusAfterClear:j,replaceTrailingWhenClear:M,helperText:N,errorText:P,showCharacterCount:F=!1,countFormatter:I,wrapperClassName:L,inputClassName:R,helperClassName:z,leadingPointerEvents:ee=!1,trailingPointerEvents:B=!0,onChange:V,maxLength:H,className:U,...W}=b,G=x!==void 0,[K,q]=h.useState(()=>_(S)),J=G?_(x):K,Y=P??N,X=P?`text-destructive`:`text-muted-foreground`,Z=e=>{G||q(e.target.value.length),V?.(e)},Q=e=>{Z(e),D?.(e.target.value)},$=E?(0,g.jsx)(a.ClearableInput,{ref:r,value:x,defaultValue:x===void 0?S:void 0,type:W.type??`text`,leadingIcon:C,trailing:w,trailingAction:T,clearable:E,onChange:Z,onValueChange:D,onClear:O,clearLabel:k,clearOnEscape:A,focusAfterClear:j,replaceTrailingWhenClear:M,wrapperClassName:L,inputClassName:R,className:U,maxLength:H,...W}):C||w||T?(0,g.jsx)(i.InputDecorator,{ref:r,value:x??void 0,defaultValue:x===void 0?S:void 0,type:W.type??`text`,leading:C,trailing:w,trailingAction:T,leadingPointerEvents:ee,trailingPointerEvents:B,wrapperClassName:L,inputClassName:R,className:U,onChange:Q,maxLength:H,...W}):(0,g.jsx)(n.InputPrimitive,{ref:r,value:x??void 0,defaultValue:x===void 0?S:void 0,type:W.type??`text`,className:t.cn(R,U),onChange:Q,maxLength:H,...W});return!Y&&!F?$:(0,g.jsxs)(`div`,{"data-slot":`input-field`,className:`grid gap-1.5`,children:[$,(0,g.jsxs)(`div`,{"data-slot":`input-meta`,className:`flex items-start justify-between gap-3 px-1`,children:[(0,g.jsx)(`div`,{"data-slot":`input-helper`,className:t.cn(`min-w-0 text-xs leading-5`,X,z),children:Y}),F?(0,g.jsx)(`div`,{"data-slot":`input-count`,className:t.cn(`shrink-0 text-[11px] font-medium tabular-nums`,P?`text-destructive`:`text-muted-foreground`),children:I?.(J,H)??(typeof H==`number`?`${J}/${H}`:J)}):null]})]})});y.displayName=`Input`,exports.Input=y,exports.InputGroup=r.InputGroup,exports.InputGroupAddon=r.InputGroupAddon,exports.InputGroupButton=r.InputGroupButton,exports.InputGroupInput=r.InputGroupInput,exports.InputGroupText=r.InputGroupText,exports.InputGroupTextarea=r.InputGroupTextarea;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs"),n=require("./primitive.cjs"),r=require("./group.cjs"),i=require("../../inputs/input-decorator.cjs"),a=require("../../inputs/clearable-input.cjs"),o=require("../../inputs/date-input.cjs"),s=require("../../inputs/date-range-input.cjs"),c=require("../../inputs/money-input.cjs"),l=require("../../inputs/masked-input.cjs"),u=require("../../inputs/number-input.cjs"),d=require("../../inputs/password-input.cjs"),f=require("../../inputs/phone-input.cjs"),p=require("../../inputs/quantity-input.cjs"),m=require("../../inputs/search-input.cjs");let h=require("react");h=e.__toESM(h,1);let g=require("react/jsx-runtime");function _(e){return typeof e==`string`?e.length:typeof e==`number`?String(e).length:Array.isArray(e)?e.join(``).length:0}function v(e){return e.type===`search`||e.searchIcon!==void 0||e.loading!==void 0||e.loadingLabel!==void 0||e.resultCount!==void 0||e.shortcut!==void 0||e.debounceMs!==void 0||e.showMetaOnClear!==void 0||e.onDebouncedValueChange!==void 0}var y=h.forwardRef((e,r)=>{let y=e.kind??`text`;if(y===`search`)return(0,g.jsx)(m.SearchInput,{ref:r,...e});if(y===`password`)return(0,g.jsx)(d.PasswordInput,{ref:r,...e});if(y===`number`)return(0,g.jsx)(u.NumberInput,{ref:r,...e});if(y===`phone`)return(0,g.jsx)(f.PhoneInput,{ref:r,...e});if(y===`money`)return(0,g.jsx)(c.MoneyInput,{ref:r,...e});if(y===`quantity`)return(0,g.jsx)(p.QuantityInput,{ref:r,...e});if(y===`masked`)return(0,g.jsx)(l.MaskedInput,{ref:r,...e});if(y===`date`)return(0,g.jsx)(o.DateInput,{ref:r,...e});if(y===`date-range`)return(0,g.jsx)(s.DateRangeInput,{...e});if(y===`clearable`)return(0,g.jsx)(a.ClearableInput,{ref:r,...e});let b=e;if(v(b)){let{leading:e,searchIcon:n,helperText:i,errorText:a,showCharacterCount:o,countFormatter:s,helperClassName:c,inputClassName:l,...u}=b,d=Array.isArray(b.value)?b.value.join(` `):b.value==null||typeof b.value==`string`||typeof b.value==`number`?b.value:String(b.value),f=Array.isArray(b.defaultValue)?b.defaultValue.join(` `):b.defaultValue==null||typeof b.defaultValue==`string`||typeof b.defaultValue==`number`?b.defaultValue:String(b.defaultValue),p=(0,g.jsx)(m.SearchInput,{ref:r,searchIcon:n??e,inputClassName:l,...u,value:d,defaultValue:f});if(!i&&!a&&!o)return p;let h=_(b.value??b.defaultValue);return(0,g.jsxs)(`div`,{"data-slot":`input-field`,className:`grid gap-1.5`,children:[p,(0,g.jsxs)(`div`,{"data-slot":`input-meta`,className:`flex items-start justify-between gap-3 px-1`,children:[(0,g.jsx)(`div`,{"data-slot":`input-helper`,className:t.cn(`min-w-0 text-xs leading-5`,a?`text-destructive`:`text-muted-foreground`,c),children:a??i}),o?(0,g.jsx)(`div`,{"data-slot":`input-count`,className:t.cn(`shrink-0 text-[11px] font-medium tabular-nums`,a?`text-destructive`:`text-muted-foreground`),children:s?.(h,b.maxLength)??(typeof b.maxLength==`number`?`${h}/${b.maxLength}`:h)}):null]})]})}let{value:x,defaultValue:S,leading:C,trailing:w,trailingAction:T,clearable:E=!1,onValueChange:D,onClear:O,clearLabel:k,clearOnEscape:A,focusAfterClear:j,replaceTrailingWhenClear:M,helperText:N,errorText:P,showCharacterCount:F=!1,countFormatter:I,wrapperClassName:L,inputClassName:R,helperClassName:z,leadingPointerEvents:ee=!1,trailingPointerEvents:B=!0,onChange:V,maxLength:H,className:U,...W}=b,G=x!==void 0,[K,q]=h.useState(()=>_(S)),J=G?_(x):K,Y=P??N,X=P?`text-destructive`:`text-muted-foreground`,Z=e=>{G||q(e.target.value.length),V?.(e)},Q=e=>{Z(e),D?.(e.target.value)},$=E?(0,g.jsx)(a.ClearableInput,{ref:r,value:x,defaultValue:x===void 0?S:void 0,type:W.type??`text`,leadingIcon:C,trailing:w,trailingAction:T,clearable:E,onChange:Z,onValueChange:D,onClear:O,clearLabel:k,clearOnEscape:A,focusAfterClear:j,replaceTrailingWhenClear:M,wrapperClassName:L,inputClassName:R,className:U,maxLength:H,...W}):C||w||T?(0,g.jsx)(i.InputDecorator,{ref:r,value:x??void 0,defaultValue:x===void 0?S:void 0,type:W.type??`text`,leading:C,trailing:w,trailingAction:T,leadingPointerEvents:ee,trailingPointerEvents:B,wrapperClassName:L,inputClassName:R,className:U,onChange:Q,maxLength:H,...W}):(0,g.jsx)(n.InputPrimitive,{ref:r,value:x??void 0,defaultValue:x===void 0?S:void 0,type:W.type??`text`,className:t.cn(R,U),onChange:Q,maxLength:H,...W});return!Y&&!F?$:(0,g.jsxs)(`div`,{"data-slot":`input-field`,className:`grid gap-1.5`,children:[$,(0,g.jsxs)(`div`,{"data-slot":`input-meta`,className:`flex items-start justify-between gap-3 px-1`,children:[(0,g.jsx)(`div`,{"data-slot":`input-helper`,className:t.cn(`min-w-0 text-xs leading-5`,X,z),children:Y}),F?(0,g.jsx)(`div`,{"data-slot":`input-count`,className:t.cn(`shrink-0 text-[11px] font-medium tabular-nums`,P?`text-destructive`:`text-muted-foreground`),children:I?.(J,H)??(typeof H==`number`?`${J}/${H}`:J)}):null]})]})});y.displayName=`Input`,exports.Input=y,exports.InputGroup=r.InputGroup,exports.InputGroupAddon=r.InputGroupAddon,exports.InputGroupButton=r.InputGroupButton,exports.InputGroupInput=r.InputGroupInput,exports.InputGroupText=r.InputGroupText,exports.InputGroupTextarea=r.InputGroupTextarea;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import { InputPrimitive as t } from "./primitive.js";
3
4
  import { InputGroup as n, InputGroupAddon as r, InputGroupButton as i, InputGroupInput as a, InputGroupText as o, InputGroupTextarea as s } from "./group.js";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={sm:`size-3.5`,default:`size-4`,lg:`size-5`};function a({name:e,value:a,defaultValue:o,onValueChange:s,options:c,orientation:l=`vertical`,size:u=`default`,invalid:d=!1,disabled:f=!1,className:p,itemClassName:m,itemLabelClassName:h,itemDescriptionClassName:g,..._}){let v=n.useId(),y=e??v,[b,x]=n.useState(o??``),S=a!==void 0,C=S?a:b,w=n.useRef([]),T=c.filter(e=>!e.disabled&&!f),E=e=>{S||x(e),s?.(e)},D=e=>{let t=T[e];if(!t)return;let n=c.findIndex(e=>e.value===t.value);w.current[n]?.focus(),E(t.value)};return(0,r.jsx)(`div`,{role:`radiogroup`,"aria-invalid":d||void 0,"aria-disabled":f||void 0,"data-slot":`radio-group`,"data-orientation":l,"data-invalid":d||void 0,className:t.cn(`grid gap-2`,l===`horizontal`&&`sm:flex sm:flex-wrap sm:items-center`,p),onKeyDown:e=>{if(![`ArrowDown`,`ArrowRight`,`ArrowUp`,`ArrowLeft`,`Home`,`End`].includes(e.key)||T.length===0)return;e.preventDefault();let t=Math.max(0,T.findIndex(e=>e.value===C));if(e.key===`Home`){D(0);return}if(e.key===`End`){D(T.length-1);return}D((t+(e.key===`ArrowDown`||e.key===`ArrowRight`?1:-1)+T.length)%T.length)},..._,children:c.map((e,n)=>{let a=e.value===C,o=f||e.disabled;return(0,r.jsxs)(`label`,{"data-slot":`radio-group-item`,"data-checked":a||void 0,"data-disabled":o||void 0,"data-invalid":d||void 0,className:t.cn(`group flex cursor-pointer items-start gap-3 rounded-[min(var(--radius-xl),16px)] border border-border/80 bg-background/88 px-3 py-2.5 text-sm transition hover:border-ring/35 hover:bg-accent/60 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/30 data-[checked=true]:border-primary/35 data-[checked=true]:bg-primary/8 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-55 data-[invalid=true]:border-destructive/70 data-[invalid=true]:ring-3 data-[invalid=true]:ring-destructive/15`,m),children:[(0,r.jsx)(`input`,{ref:e=>{w.current[n]=e},type:`radio`,name:y,value:e.value,checked:a,disabled:o,"aria-invalid":d||void 0,className:`sr-only`,onChange:()=>E(e.value)}),(0,r.jsx)(`span`,{"aria-hidden":`true`,className:t.cn(`mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full border border-input bg-background shadow-sm transition group-data-[checked=true]:border-primary group-data-[checked=true]:bg-primary`,i[u]),children:(0,r.jsx)(`span`,{className:`size-1.5 rounded-full bg-primary-foreground opacity-0 transition group-data-[checked=true]:opacity-100`})}),(0,r.jsxs)(`span`,{className:`min-w-0`,children:[(0,r.jsx)(`span`,{className:t.cn(`block font-medium text-foreground`,h),children:e.label}),e.description?(0,r.jsx)(`span`,{className:t.cn(`mt-1 block text-sm leading-6 text-muted-foreground`,g),children:e.description}):null]})]},e.value)})})}exports.RadioGroup=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={sm:`size-3.5`,default:`size-4`,lg:`size-5`};function a({name:e,value:a,defaultValue:o,onValueChange:s,options:c,orientation:l=`vertical`,size:u=`default`,invalid:d=!1,disabled:f=!1,className:p,itemClassName:m,itemLabelClassName:h,itemDescriptionClassName:g,..._}){let v=n.useId(),y=e??v,[b,x]=n.useState(o??``),S=a!==void 0,C=S?a:b,w=n.useRef([]),T=c.filter(e=>!e.disabled&&!f),E=e=>{S||x(e),s?.(e)},D=e=>{let t=T[e];if(!t)return;let n=c.findIndex(e=>e.value===t.value);w.current[n]?.focus(),E(t.value)};return(0,r.jsx)(`div`,{role:`radiogroup`,"aria-invalid":d||void 0,"aria-disabled":f||void 0,"data-slot":`radio-group`,"data-orientation":l,"data-invalid":d||void 0,className:t.cn(`grid gap-2`,l===`horizontal`&&`sm:flex sm:flex-wrap sm:items-center`,p),onKeyDown:e=>{if(![`ArrowDown`,`ArrowRight`,`ArrowUp`,`ArrowLeft`,`Home`,`End`].includes(e.key)||T.length===0)return;e.preventDefault();let t=Math.max(0,T.findIndex(e=>e.value===C));if(e.key===`Home`){D(0);return}if(e.key===`End`){D(T.length-1);return}D((t+(e.key===`ArrowDown`||e.key===`ArrowRight`?1:-1)+T.length)%T.length)},..._,children:c.map((e,n)=>{let a=e.value===C,o=f||e.disabled;return(0,r.jsxs)(`label`,{"data-slot":`radio-group-item`,"data-checked":a||void 0,"data-disabled":o||void 0,"data-invalid":d||void 0,className:t.cn(`group flex cursor-pointer items-start gap-3 rounded-[min(var(--radius-xl),16px)] border border-border/80 bg-background/88 px-3 py-2.5 text-sm transition hover:border-ring/35 hover:bg-accent/60 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/30 data-[checked=true]:border-primary/35 data-[checked=true]:bg-primary/8 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-55 data-[invalid=true]:border-destructive/70 data-[invalid=true]:ring-3 data-[invalid=true]:ring-destructive/15`,m),children:[(0,r.jsx)(`input`,{ref:e=>{w.current[n]=e},type:`radio`,name:y,value:e.value,checked:a,disabled:o,"aria-invalid":d||void 0,className:`sr-only`,onChange:()=>E(e.value)}),(0,r.jsx)(`span`,{"aria-hidden":`true`,className:t.cn(`mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full border border-input bg-background shadow-sm transition group-data-[checked=true]:border-primary group-data-[checked=true]:bg-primary`,i[u]),children:(0,r.jsx)(`span`,{className:`size-1.5 rounded-full bg-primary-foreground opacity-0 transition group-data-[checked=true]:opacity-100`})}),(0,r.jsxs)(`span`,{className:`min-w-0`,children:[(0,r.jsx)(`span`,{className:t.cn(`block font-medium text-foreground`,h),children:e.label}),e.description?(0,r.jsx)(`span`,{className:t.cn(`mt-1 block text-sm leading-6 text-muted-foreground`,g),children:e.description}):null]})]},e.value)})})}exports.RadioGroup=a;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import * as t from "react";
3
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i(e,t,n=224,r){return typeof window>`u`?{x:e,y:t}:{x:Math.min(Math.max(8,e),Math.max(8,window.innerWidth-n-8)),y:Math.min(Math.max(8,t),Math.max(8,window.innerHeight-r-8))}}function a({items:e,children:a,className:o,label:s=`Context menu`,...c}){let[l,u]=n.useState(!1),[d,f]=n.useState({x:0,y:0}),[p,m]=n.useState(0),h=n.useRef(null),g=n.useRef([]),_=n.useMemo(()=>e.map((e,t)=>({item:e,index:t})).filter(({item:e})=>!e.disabled),[e]),v=n.useCallback((t,n)=>{f(i(t,n,224,Math.max(44,e.length*42+12))),m(_[0]?.index??0),u(!0)},[_,e.length]);n.useEffect(()=>{if(!l)return;let e=()=>u(!1),t=e=>{e.key===`Escape`&&u(!1)};return window.addEventListener(`pointerdown`,e),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e),window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`keydown`,t)}},[l]),n.useEffect(()=>{l&&g.current[p]?.focus()},[p,l]);let y=e=>{if(_.length===0)return;let t=_[(_.findIndex(({index:e})=>e===p)+e+_.length)%_.length];m(t.index)};return(0,r.jsxs)(`div`,{"data-slot":`right-click-menu`,ref:h,tabIndex:0,className:t.cn(`contents focus:outline-none`,o),onContextMenu:e=>{e.preventDefault(),v(e.clientX,e.clientY)},onKeyDown:e=>{if(e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`){e.preventDefault();let t=h.current?.getBoundingClientRect();v(t?t.left+12:12,t?t.top+12:12)}},...c,children:[a,l?(0,r.jsx)(`div`,{"data-slot":`right-click-menu-content`,role:`menu`,"aria-label":s,className:`fixed z-50 min-w-56 max-w-[calc(100vw-1rem)] rounded-[var(--aui-card-radius,var(--radius-xl))] border border-[color:var(--aui-card-border,var(--border))] bg-[color:var(--aui-overlay-surface,var(--popover))] p-1.5 text-sm text-popover-foreground shadow-[var(--aui-popover-shadow,0_18px_42px_rgba(15,23,42,0.16))] outline-none`,style:{left:d.x,top:d.y},onPointerDown:e=>e.stopPropagation(),onKeyDown:e=>{e.key===`ArrowDown`&&(e.preventDefault(),y(1)),e.key===`ArrowUp`&&(e.preventDefault(),y(-1)),e.key===`Home`&&(e.preventDefault(),m(_[0]?.index??p)),e.key===`End`&&(e.preventDefault(),m(_.at(-1)?.index??p))},children:e.map((e,t)=>(0,r.jsxs)(`button`,{ref:e=>{g.current[t]=e},type:`button`,role:`menuitem`,disabled:e.disabled,"data-variant":e.variant??`default`,className:`group flex min-h-9 w-full items-center gap-2 rounded-[var(--radius-md)] px-2.5 py-2 text-left text-popover-foreground outline-none transition-[background-color,color] hover:bg-accent focus-visible:bg-accent data-[variant=destructive]:text-destructive data-[variant=destructive]:hover:bg-[color:color-mix(in_oklch,var(--destructive),transparent_90%)] data-[variant=destructive]:focus-visible:bg-[color:color-mix(in_oklch,var(--destructive),transparent_90%)] disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0`,onClick:()=>{e.disabled||(e.onSelect?.(),u(!1))},children:[e.icon,(0,r.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),e.shortcut?(0,r.jsx)(`span`,{className:`ml-3 text-[11px] font-medium tracking-[0.08em] text-muted-foreground group-hover:text-foreground group-focus-visible:text-foreground`,children:e.shortcut}):null]},t))}):null]})}exports.RightClickMenu=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i(e,t,n=224,r){return typeof window>`u`?{x:e,y:t}:{x:Math.min(Math.max(8,e),Math.max(8,window.innerWidth-n-8)),y:Math.min(Math.max(8,t),Math.max(8,window.innerHeight-r-8))}}function a({items:e,children:a,className:o,label:s=`Context menu`,...c}){let[l,u]=n.useState(!1),[d,f]=n.useState({x:0,y:0}),[p,m]=n.useState(0),h=n.useRef(null),g=n.useRef([]),_=n.useMemo(()=>e.map((e,t)=>({item:e,index:t})).filter(({item:e})=>!e.disabled),[e]),v=n.useCallback((t,n)=>{f(i(t,n,224,Math.max(44,e.length*42+12))),m(_[0]?.index??0),u(!0)},[_,e.length]);n.useEffect(()=>{if(!l)return;let e=()=>u(!1),t=e=>{e.key===`Escape`&&u(!1)};return window.addEventListener(`pointerdown`,e),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e),window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`keydown`,t)}},[l]),n.useEffect(()=>{l&&g.current[p]?.focus()},[p,l]);let y=e=>{if(_.length===0)return;let t=_[(_.findIndex(({index:e})=>e===p)+e+_.length)%_.length];m(t.index)};return(0,r.jsxs)(`div`,{"data-slot":`right-click-menu`,ref:h,tabIndex:0,className:t.cn(`contents focus:outline-none`,o),onContextMenu:e=>{e.preventDefault(),v(e.clientX,e.clientY)},onKeyDown:e=>{if(e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`){e.preventDefault();let t=h.current?.getBoundingClientRect();v(t?t.left+12:12,t?t.top+12:12)}},...c,children:[a,l?(0,r.jsx)(`div`,{"data-slot":`right-click-menu-content`,role:`menu`,"aria-label":s,className:`fixed z-50 min-w-56 max-w-[calc(100vw-1rem)] rounded-[var(--aui-card-radius,var(--radius-xl))] border border-[color:var(--aui-card-border,var(--border))] bg-[color:var(--aui-overlay-surface,var(--popover))] p-1.5 text-sm text-popover-foreground shadow-[var(--aui-popover-shadow,0_18px_42px_rgba(15,23,42,0.16))] outline-none`,style:{left:d.x,top:d.y},onPointerDown:e=>e.stopPropagation(),onKeyDown:e=>{e.key===`ArrowDown`&&(e.preventDefault(),y(1)),e.key===`ArrowUp`&&(e.preventDefault(),y(-1)),e.key===`Home`&&(e.preventDefault(),m(_[0]?.index??p)),e.key===`End`&&(e.preventDefault(),m(_.at(-1)?.index??p))},children:e.map((e,t)=>(0,r.jsxs)(`button`,{ref:e=>{g.current[t]=e},type:`button`,role:`menuitem`,disabled:e.disabled,"data-variant":e.variant??`default`,className:`group flex min-h-9 w-full items-center gap-2 rounded-[var(--radius-md)] px-2.5 py-2 text-left text-popover-foreground outline-none transition-[background-color,color] hover:bg-accent focus-visible:bg-accent data-[variant=destructive]:text-destructive data-[variant=destructive]:hover:bg-[color:color-mix(in_oklch,var(--destructive),transparent_90%)] data-[variant=destructive]:focus-visible:bg-[color:color-mix(in_oklch,var(--destructive),transparent_90%)] disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0`,onClick:()=>{e.disabled||(e.onSelect?.(),u(!1))},children:[e.icon,(0,r.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),e.shortcut?(0,r.jsx)(`span`,{className:`ml-3 text-[11px] font-medium tracking-[0.08em] text-muted-foreground group-hover:text-foreground group-focus-visible:text-foreground`,children:e.shortcut}):null]},t))}):null]})}exports.RightClickMenu=a;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import * as t from "react";
3
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={sm:`min-h-8 px-2.5 text-xs`,md:`min-h-9 px-3.5 text-sm`,lg:`min-h-10 px-4 text-sm`};function a({value:e,defaultValue:a,onValueChange:o,options:s,size:c=`md`,fullWidth:l=!1,equalWidth:u=!1,className:d,...f}){let[p,m]=n.useState(a??s[0]?.value),h=e??p,g=n.useRef([]),_=t=>{e===void 0&&m(t),o?.(t)},v=(e,t)=>{let n=s.map((e,t)=>({option:e,index:t})).filter(({option:e})=>!e.disabled),r=n[(n.findIndex(({index:t})=>t===e)+t+n.length)%n.length];g.current[r?.index??e]?.focus()};return(0,r.jsx)(`div`,{"data-slot":`segmented-control`,role:`radiogroup`,className:t.cn(`inline-flex gap-1 rounded-[var(--radius-2xl)] border border-border/80 bg-muted/72 p-1 text-muted-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.06),0_10px_26px_rgba(15,23,42,0.05)] backdrop-blur`,l&&`flex w-full`,u&&`grid auto-cols-fr grid-flow-col`,d),...f,children:s.map((e,n)=>{let a=e.value===h;return(0,r.jsxs)(`button`,{ref:e=>{g.current[n]=e},type:`button`,role:`radio`,"aria-checked":a,disabled:e.disabled,"data-selected":a||void 0,className:t.cn(`inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-[calc(var(--radius-xl)-2px)] border border-transparent font-medium text-muted-foreground outline-none transition-[background-color,color,border-color,box-shadow,transform] hover:bg-background/58 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[selected=true]:-translate-y-px data-[selected=true]:border-border/85 data-[selected=true]:bg-background data-[selected=true]:text-foreground data-[selected=true]:shadow-[0_1px_0_rgba(255,255,255,0.24),0_12px_24px_rgba(15,23,42,0.12)] [&_svg]:size-4 [&_svg]:shrink-0`,i[c],(l||u)&&`w-full`),onClick:()=>_(e.value),onKeyDown:e=>{(e.key===`ArrowRight`||e.key===`ArrowDown`)&&(e.preventDefault(),v(n,1)),(e.key===`ArrowLeft`||e.key===`ArrowUp`)&&(e.preventDefault(),v(n,-1))},children:[e.icon,e.label]},e.value)})})}exports.SegmentedControl=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={sm:`min-h-8 px-2.5 text-xs`,md:`min-h-9 px-3.5 text-sm`,lg:`min-h-10 px-4 text-sm`};function a({value:e,defaultValue:a,onValueChange:o,options:s,size:c=`md`,fullWidth:l=!1,equalWidth:u=!1,className:d,...f}){let[p,m]=n.useState(a??s[0]?.value),h=e??p,g=n.useRef([]),_=t=>{e===void 0&&m(t),o?.(t)},v=(e,t)=>{let n=s.map((e,t)=>({option:e,index:t})).filter(({option:e})=>!e.disabled),r=n[(n.findIndex(({index:t})=>t===e)+t+n.length)%n.length];g.current[r?.index??e]?.focus()};return(0,r.jsx)(`div`,{"data-slot":`segmented-control`,role:`radiogroup`,className:t.cn(`inline-flex gap-1 rounded-[var(--radius-2xl)] border border-border/80 bg-muted/72 p-1 text-muted-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.06),0_10px_26px_rgba(15,23,42,0.05)] backdrop-blur`,l&&`flex w-full`,u&&`grid auto-cols-fr grid-flow-col`,d),...f,children:s.map((e,n)=>{let a=e.value===h;return(0,r.jsxs)(`button`,{ref:e=>{g.current[n]=e},type:`button`,role:`radio`,"aria-checked":a,disabled:e.disabled,"data-selected":a||void 0,className:t.cn(`inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-[calc(var(--radius-xl)-2px)] border border-transparent font-medium text-muted-foreground outline-none transition-[background-color,color,border-color,box-shadow,transform] hover:bg-background/58 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[selected=true]:-translate-y-px data-[selected=true]:border-border/85 data-[selected=true]:bg-background data-[selected=true]:text-foreground data-[selected=true]:shadow-[0_1px_0_rgba(255,255,255,0.24),0_12px_24px_rgba(15,23,42,0.12)] [&_svg]:size-4 [&_svg]:shrink-0`,i[c],(l||u)&&`w-full`),onClick:()=>_(e.value),onKeyDown:e=>{(e.key===`ArrowRight`||e.key===`ArrowDown`)&&(e.preventDefault(),v(n,1)),(e.key===`ArrowLeft`||e.key===`ArrowUp`)&&(e.preventDefault(),v(n,-1))},children:[e.icon,e.label]},e.value)})})}exports.SegmentedControl=a;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import * as t from "react";
3
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={sm:`h-5 w-9`,md:`h-6.5 w-11.5`,lg:`h-8 w-14`},o={sm:`size-4 data-[state=checked]:translate-x-4.5 data-[state=unchecked]:translate-x-0.5`,md:`size-5 data-[state=checked]:translate-x-5.5 data-[state=unchecked]:translate-x-0.5`,lg:`size-6 data-[state=checked]:translate-x-7 data-[state=unchecked]:translate-x-1`},s=n.forwardRef(({className:e,checked:s,defaultChecked:c=!1,onCheckedChange:l,size:u=`md`,loading:d=!1,invalid:f=!1,label:p,description:m,labelPlacement:h=`end`,switchClassName:g,labelClassName:_,descriptionClassName:v,disabled:y,onClick:b,...x},S)=>{let C=s!==void 0,[w,T]=n.useState(c),E=C?s:w,D=y||d,O=(0,i.jsx)(`button`,{ref:S,type:`button`,role:`switch`,"aria-checked":E,"aria-invalid":f||void 0,"aria-busy":d||void 0,"data-state":E?`checked`:`unchecked`,"data-size":u,"data-slot":`switch`,disabled:D,className:t.cn(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border border-border/78 bg-input/70 shadow-[inset_0_1px_0_rgba(255,255,255,0.08)] transition-[background-color,border-color,box-shadow] outline-none hover:border-ring/30 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/45 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[state=checked]:border-primary/22 data-[state=checked]:bg-primary data-[state=checked]:shadow-[0_10px_22px_color-mix(in_oklch,var(--primary),transparent_82%)] dark:border-white/10 dark:bg-white/[0.08]`,a[u],g,!p&&e),onClick:e=>{if(D)return;let t=!E;C||T(t),l?.(t),b?.(e)},...x,children:(0,i.jsx)(`span`,{"data-slot":`switch-thumb`,"data-state":E?`checked`:`unchecked`,className:t.cn(`pointer-events-none flex items-center justify-center rounded-full bg-white shadow-[0_2px_10px_color-mix(in_oklch,var(--foreground),transparent_88%)] ring-1 ring-foreground/6 transition-transform dark:bg-[rgba(255,255,255,0.96)]`,o[u]),children:d?(0,i.jsx)(r.Loader2Icon,{className:`size-3 animate-spin text-muted-foreground`}):null})});if(!p&&!m)return O;let k=(0,i.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[p?(0,i.jsx)(`span`,{className:t.cn(`text-sm font-medium leading-5 text-foreground`,_),children:p}):null,m?(0,i.jsx)(`span`,{className:t.cn(`text-xs leading-5 text-muted-foreground`,v),children:m}):null]});return(0,i.jsx)(`label`,{"data-slot":`switch-field`,"data-label-placement":h,className:t.cn(`inline-flex min-w-0 gap-3`,h===`top`||h===`bottom`?`flex-col`:`items-start`,h===`start`&&`flex-row-reverse justify-end`,e),children:h===`bottom`?(0,i.jsxs)(i.Fragment,{children:[O,k]}):(0,i.jsxs)(i.Fragment,{children:[k,O]})})});s.displayName=`Switch`,exports.Switch=s;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={sm:`h-5 w-9`,md:`h-6.5 w-11.5`,lg:`h-8 w-14`},o={sm:`size-4 data-[state=checked]:translate-x-4.5 data-[state=unchecked]:translate-x-0.5`,md:`size-5 data-[state=checked]:translate-x-5.5 data-[state=unchecked]:translate-x-0.5`,lg:`size-6 data-[state=checked]:translate-x-7 data-[state=unchecked]:translate-x-1`},s=n.forwardRef(({className:e,checked:s,defaultChecked:c=!1,onCheckedChange:l,size:u=`md`,loading:d=!1,invalid:f=!1,label:p,description:m,labelPlacement:h=`end`,switchClassName:g,labelClassName:_,descriptionClassName:v,disabled:y,onClick:b,...x},S)=>{let C=s!==void 0,[w,T]=n.useState(c),E=C?s:w,D=y||d,O=(0,i.jsx)(`button`,{ref:S,type:`button`,role:`switch`,"aria-checked":E,"aria-invalid":f||void 0,"aria-busy":d||void 0,"data-state":E?`checked`:`unchecked`,"data-size":u,"data-slot":`switch`,disabled:D,className:t.cn(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border border-border/78 bg-input/70 shadow-[inset_0_1px_0_rgba(255,255,255,0.08)] transition-[background-color,border-color,box-shadow] outline-none hover:border-ring/30 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/45 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[state=checked]:border-primary/22 data-[state=checked]:bg-primary data-[state=checked]:shadow-[0_10px_22px_color-mix(in_oklch,var(--primary),transparent_82%)] dark:border-white/10 dark:bg-white/[0.08]`,a[u],g,!p&&e),onClick:e=>{if(D)return;let t=!E;C||T(t),l?.(t),b?.(e)},...x,children:(0,i.jsx)(`span`,{"data-slot":`switch-thumb`,"data-state":E?`checked`:`unchecked`,className:t.cn(`pointer-events-none flex items-center justify-center rounded-full bg-white shadow-[0_2px_10px_color-mix(in_oklch,var(--foreground),transparent_88%)] ring-1 ring-foreground/6 transition-transform dark:bg-[rgba(255,255,255,0.96)]`,o[u]),children:d?(0,i.jsx)(r.Loader2Icon,{className:`size-3 animate-spin text-muted-foreground`}):null})});if(!p&&!m)return O;let k=(0,i.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[p?(0,i.jsx)(`span`,{className:t.cn(`text-sm font-medium leading-5 text-foreground`,_),children:p}):null,m?(0,i.jsx)(`span`,{className:t.cn(`text-xs leading-5 text-muted-foreground`,v),children:m}):null]});return(0,i.jsx)(`label`,{"data-slot":`switch-field`,"data-label-placement":h,className:t.cn(`inline-flex min-w-0 gap-3`,h===`top`||h===`bottom`?`flex-col`:`items-start`,h===`start`&&`flex-row-reverse justify-end`,e),children:h===`bottom`?(0,i.jsxs)(i.Fragment,{children:[O,k]}):(0,i.jsxs)(i.Fragment,{children:[k,O]})})});s.displayName=`Switch`,exports.Switch=s;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import * as t from "react";
3
4
  import { Loader2Icon as n } from "lucide-react";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i(e){return typeof e==`string`?e.length:typeof e==`number`?String(e).length:Array.isArray(e)?e.join(``).length:0}var a=n.forwardRef(({className:e,value:a,defaultValue:o,onChange:s,onValueChange:c,helperText:l,errorText:u,showCharacterCount:d=!1,countFormatter:f,wrapperClassName:p,textareaClassName:m,maxLength:h,"aria-invalid":g,..._},v)=>{let y=a!==void 0,[b,x]=n.useState(()=>i(o)),S=y?i(a):b,C=u??l,w=!!u||g===!0||g===`true`,T=(0,r.jsx)(`textarea`,{"data-slot":`textarea`,value:a,defaultValue:y?void 0:o,maxLength:h,"aria-invalid":w||void 0,className:t.cn(`flex field-sizing-content min-h-28 w-full rounded-[var(--aui-control-radius,var(--radius-lg))] border border-[color:var(--aui-control-border-strong,var(--input))] bg-[color:var(--aui-control-surface,var(--background))] px-4 py-3.5 text-sm font-medium text-foreground shadow-[var(--aui-shadow-xs,0_1px_2px_rgba(15,23,42,0.04))] transition-[background-color,border-color,box-shadow,color] outline-none placeholder:text-muted-foreground/78 hover:border-[color:var(--aui-control-hover-border,var(--ring))] hover:bg-[color:var(--aui-control-surface-hover,var(--background))] focus-visible:border-[color:var(--ring)] focus-visible:ring-0 focus-visible:shadow-[var(--aui-shadow-xs,0_1px_2px_rgba(15,23,42,0.04)),0_0_0_1px_var(--aui-focus-ring,var(--ring)),0_0_0_5px_var(--aui-focus-ring-soft,transparent)] disabled:cursor-not-allowed disabled:border-[color:color-mix(in_oklch,var(--border),transparent_18%)] disabled:bg-[color:var(--aui-control-surface-disabled,var(--muted))] disabled:text-muted-foreground disabled:shadow-none disabled:opacity-100 aria-invalid:border-destructive aria-invalid:shadow-[0_0_0_1px_color-mix(in_oklch,var(--destructive),transparent_32%)] read-only:bg-[color:var(--aui-control-surface-readonly,var(--muted))]`,m,e),onChange:e=>{y||x(e.target.value.length),s?.(e),c?.(e.target.value)},ref:v,..._});return!C&&!d?T:(0,r.jsxs)(`div`,{"data-slot":`textarea-field`,className:t.cn(`grid gap-1.5`,p),children:[T,(0,r.jsxs)(`div`,{"data-slot":`textarea-meta`,className:`flex items-start justify-between gap-3 px-1`,children:[(0,r.jsx)(`div`,{"data-slot":`textarea-helper`,className:t.cn(`min-w-0 text-xs leading-5`,u?`text-destructive`:`text-muted-foreground`),children:C}),d?(0,r.jsx)(`div`,{"data-slot":`textarea-count`,className:t.cn(`shrink-0 text-[11px] font-medium tabular-nums`,u?`text-destructive`:`text-muted-foreground`),children:f?.(S,h)??(typeof h==`number`?`${S}/${h}`:S)}):null]})]})});a.displayName=`Textarea`,exports.Textarea=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i(e){return typeof e==`string`?e.length:typeof e==`number`?String(e).length:Array.isArray(e)?e.join(``).length:0}var a=n.forwardRef(({className:e,value:a,defaultValue:o,onChange:s,onValueChange:c,helperText:l,errorText:u,showCharacterCount:d=!1,countFormatter:f,wrapperClassName:p,textareaClassName:m,maxLength:h,"aria-invalid":g,..._},v)=>{let y=a!==void 0,[b,x]=n.useState(()=>i(o)),S=y?i(a):b,C=u??l,w=!!u||g===!0||g===`true`,T=(0,r.jsx)(`textarea`,{"data-slot":`textarea`,value:a,defaultValue:y?void 0:o,maxLength:h,"aria-invalid":w||void 0,className:t.cn(`flex field-sizing-content min-h-28 w-full rounded-[var(--aui-control-radius,var(--radius-lg))] border border-[color:var(--aui-control-border-strong,var(--input))] bg-[color:var(--aui-control-surface,var(--background))] px-4 py-3.5 text-sm font-medium text-foreground shadow-[var(--aui-shadow-xs,0_1px_2px_rgba(15,23,42,0.04))] transition-[background-color,border-color,box-shadow,color] outline-none placeholder:text-muted-foreground/78 hover:border-[color:var(--aui-control-hover-border,var(--ring))] hover:bg-[color:var(--aui-control-surface-hover,var(--background))] focus-visible:border-[color:var(--ring)] focus-visible:ring-0 focus-visible:shadow-[var(--aui-shadow-xs,0_1px_2px_rgba(15,23,42,0.04)),0_0_0_1px_var(--aui-focus-ring,var(--ring)),0_0_0_5px_var(--aui-focus-ring-soft,transparent)] disabled:cursor-not-allowed disabled:border-[color:color-mix(in_oklch,var(--border),transparent_18%)] disabled:bg-[color:var(--aui-control-surface-disabled,var(--muted))] disabled:text-muted-foreground disabled:shadow-none disabled:opacity-100 aria-invalid:border-destructive aria-invalid:shadow-[0_0_0_1px_color-mix(in_oklch,var(--destructive),transparent_32%)] read-only:bg-[color:var(--aui-control-surface-readonly,var(--muted))]`,m,e),onChange:e=>{y||x(e.target.value.length),s?.(e),c?.(e.target.value)},ref:v,..._});return!C&&!d?T:(0,r.jsxs)(`div`,{"data-slot":`textarea-field`,className:t.cn(`grid gap-1.5`,p),children:[T,(0,r.jsxs)(`div`,{"data-slot":`textarea-meta`,className:`flex items-start justify-between gap-3 px-1`,children:[(0,r.jsx)(`div`,{"data-slot":`textarea-helper`,className:t.cn(`min-w-0 text-xs leading-5`,u?`text-destructive`:`text-muted-foreground`),children:C}),d?(0,r.jsx)(`div`,{"data-slot":`textarea-count`,className:t.cn(`shrink-0 text-[11px] font-medium tabular-nums`,u?`text-destructive`:`text-muted-foreground`),children:f?.(S,h)??(typeof h==`number`?`${S}/${h}`:S)}):null]})]})});a.displayName=`Textarea`,exports.Textarea=a;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e } from "../../../lib/utils.js";
2
3
  import * as t from "react";
3
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("lucide-react"),a=require("react/jsx-runtime");function o(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),r=e/1024**n;return`${r.toFixed(r>=10||n===0?0:1)} ${t[n]}`}function s(e){return e?.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean)??[]}function c(e,t){let n=s(t);if(n.length===0)return!0;let r=e.name.toLowerCase(),i=e.type.toLowerCase();return n.some(e=>e.startsWith(`.`)?r.endsWith(e):e.endsWith(`/*`)?i.startsWith(e.slice(0,-1)):i===e)}function l(e){return`${e.name}-${e.size}-${e.lastModified}`}function u(e,t){return typeof e==`number`?e:e?.[l(t)]??e?.[t.name]}function d(e,t){return typeof e==`string`?e:e?.[l(t)]??e?.[t.name]??`idle`}function f(e,t,n){let r=n?.[e],i={...t,reason:e};if(typeof r==`function`)return r(i);if(typeof r==`string`)return r;switch(e){case`max-files`:return`Maximum ${t.maxFiles} file${t.maxFiles===1?``:`s`} allowed.`;case`max-size`:return`File is larger than ${o(t.maxSize??0)}.`;case`type`:return t.accept?`File type is not allowed. Expected: ${t.accept}.`:`File type is not allowed.`}}function p({currentFiles:e,incomingFiles:t,accept:n,maxFiles:r,maxSize:i,appendFiles:a,rejectionMessages:o,validateFile:s}){let l=[],u=[],d=a?e:[],p=r??(a?void 0:t.length);for(let e of t){if(p!==void 0&&d.length+l.length>=p){u.push({file:e,reason:`max-files`,message:f(`max-files`,{file:e,maxFiles:p,maxSize:i,accept:n},o)});continue}if(i!==void 0&&e.size>i){u.push({file:e,reason:`max-size`,message:f(`max-size`,{file:e,maxFiles:p,maxSize:i,accept:n},o)});continue}if(!c(e,n)){u.push({file:e,reason:`type`,message:f(`type`,{file:e,maxFiles:p,maxSize:i,accept:n},o)});continue}let t=s?.(e);if(typeof t==`string`&&t){u.push({file:e,reason:`type`,message:t});continue}l.push(e)}return{accepted:l,rejected:u,nextFiles:a?[...e,...l]:l}}function m({file:e,progress:r,status:s,remove:c,retry:l,removeLabel:u=`Remove file`}){return(0,a.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,a.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-full border border-border/70 bg-background/90 shadow-sm`,children:(0,a.jsx)(i.FileIcon,{className:`size-4 text-muted-foreground`})}),(0,a.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,a.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,a.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e.name}),(0,a.jsx)(`span`,{className:t.cn(`rounded-full px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em]`,s===`uploading`&&`bg-primary/10 text-primary`,s===`success`&&`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`,s===`error`&&`bg-destructive/10 text-destructive`,s===`idle`&&`bg-muted text-muted-foreground`),children:s})]}),(0,a.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:o(e.size)}),typeof r==`number`&&(0,a.jsx)(`div`,{className:`mt-2 h-1.5 overflow-hidden rounded-full bg-muted/80`,children:(0,a.jsx)(`div`,{className:`h-full rounded-full bg-primary shadow-[0_8px_18px_color-mix(in_oklch,var(--primary),transparent_82%)]`,style:{width:`${Math.min(Math.max(r,0),100)}%`}})})]}),s===`error`&&l?(0,a.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,className:`rounded-full`,onClick:l,children:`Retry`}):null,(0,a.jsxs)(n.Button,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`rounded-full`,onClick:e=>{t.stopInteractivePropagation(e),c()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:[(0,a.jsx)(i.XIcon,{}),(0,a.jsx)(`span`,{className:`sr-only`,children:u})]})]})}function h({files:e=[],onFilesChange:s,rejectedFiles:c,onRejectedFilesChange:l,buttonLabel:f=`Choose files`,dropzoneLabel:h=`Drop files here or click to upload`,dropzoneDescription:g,dragActiveLabel:_=`Drop files to upload`,helperText:v,clearLabel:ee=`Clear all`,removeLabel:te=`Remove file`,dropzoneAriaLabel:ne,rejectionMessages:y,maxFiles:b,maxSize:x,appendFiles:S=!0,showFileList:C=!0,showClearButton:re=!0,loading:ie=!1,progress:w,status:T,validateFile:E,onRetryFile:D,fileTriggerLabel:O=`Open file picker`,renderFile:ae,renderRejectedFile:oe,renderActions:se,className:ce,inputClassName:k,dropzoneClassName:A,fileListClassName:j,fileItemClassName:M,rejectedListClassName:N,accept:P,multiple:F,disabled:I,onDragEnter:L,onDragLeave:R,onDragOver:z,onDrop:B,...V}){let H=r.useRef(null),U=r.useRef(0),[W,G]=r.useState(!1),[le,ue]=r.useState([]),K=c??le,q=I||ie,de=F??b!==1;r.useEffect(()=>{q&&(U.current=0,G(!1))},[q]);let J=r.useCallback(e=>{c===void 0&&ue(e),l?.(e)},[l,c]),Y=r.useCallback(()=>{q||H.current?.click()},[q]),X=r.useCallback(()=>{s?.([]),J([])},[s,J]),Z=r.useCallback(t=>{let n=p({currentFiles:e,incomingFiles:t,accept:P,maxFiles:b,maxSize:x,appendFiles:S,rejectionMessages:y,validateFile:E});s?.(n.nextFiles),J(n.rejected)},[P,S,e,b,x,s,y,J,E]),fe=r.useCallback(t=>{s?.(e.filter((e,n)=>n!==t))},[e,s]),Q=e=>{q||(Z(Array.from(e.target.files??[])),e.target.value=``)},$=e=>q?(e.preventDefault(),t.stopInteractivePropagation(e),!0):!1,pe=e=>{L?.(e),!(e.defaultPrevented||$(e))&&(e.preventDefault(),U.current+=1,G(!0))},me=e=>{R?.(e),!(e.defaultPrevented||$(e))&&(U.current=Math.max(U.current-1,0),U.current===0&&G(!1))},he=e=>{z?.(e),!(e.defaultPrevented||$(e))&&e.preventDefault()},ge=e=>{B?.(e),!(e.defaultPrevented||$(e))&&(e.preventDefault(),U.current=0,G(!1),Z(Array.from(e.dataTransfer.files??[])))};return(0,a.jsxs)(`div`,{"data-slot":`file-upload`,className:t.cn(`grid gap-3`,ce),children:[(0,a.jsx)(`input`,{ref:H,type:`file`,className:t.cn(`sr-only`,k),disabled:q,accept:P,multiple:de,onChange:Q,...V}),(0,a.jsxs)(`div`,{"data-slot":`file-upload-dropzone`,"data-dragging":W||void 0,"data-disabled":q||void 0,role:`button`,"aria-disabled":q||void 0,"aria-label":ne??O,tabIndex:q?-1:0,className:t.cn(`grid cursor-pointer gap-4 rounded-[var(--radius-2xl)] border border-dashed border-border/80 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),white_12%),var(--card))] p-6 text-center shadow-sm ring-1 ring-foreground/5 outline-none transition-[background-color,border-color,box-shadow,transform] hover:-translate-y-px hover:border-primary/35 hover:bg-muted/25 hover:shadow-[0_14px_36px_rgba(15,23,42,0.08)] focus-visible:ring-2 focus-visible:ring-ring data-[dragging=true]:border-primary data-[dragging=true]:bg-primary/6 data-[dragging=true]:shadow-[0_18px_50px_color-mix(in_oklch,var(--primary),transparent_84%)] data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-60`,A),onClick:Y,onKeyDown:e=>{q||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),Y())},onDragEnter:pe,onDragLeave:me,onDragOver:he,onDrop:ge,children:[(0,a.jsx)(`div`,{className:`mx-auto flex size-13 items-center justify-center rounded-full border border-border/75 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--background),white_14%),var(--background))] text-muted-foreground shadow-[0_1px_0_rgba(255,255,255,0.12),0_10px_24px_rgba(15,23,42,0.06)]`,children:(0,a.jsx)(i.UploadCloudIcon,{className:`size-5`})}),(0,a.jsxs)(`div`,{className:`grid gap-1`,children:[(0,a.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:W?_:h}),g&&(0,a.jsx)(`div`,{className:`text-sm leading-6 text-muted-foreground`,children:g}),(P||x||b||v)&&(0,a.jsx)(`div`,{className:`text-xs leading-5 text-muted-foreground`,children:v??[P?`Types: ${P}`:null,x?`Max size: ${o(x)}`:null,b?`Max files: ${b}`:null].filter(Boolean).join(` • `)})]}),se?.({openFileDialog:Y,clearFiles:X,files:e})??(0,a.jsxs)(`div`,{className:`flex justify-center gap-2`,children:[(0,a.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,disabled:q,"aria-label":typeof f==`string`?f:O,onClick:e=>{t.stopInteractivePropagation(e),Y()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:f}),re&&e.length>0&&(0,a.jsx)(n.Button,{type:`button`,variant:`ghost`,size:`sm`,disabled:q,onClick:e=>{t.stopInteractivePropagation(e),X()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:ee})]})]}),C&&e.length>0&&(0,a.jsx)(`div`,{"data-slot":`file-upload-list`,className:t.cn(`grid gap-2`,j),children:e.map((e,n)=>{let r={file:e,index:n,progress:u(w,e),status:d(T,e),remove:()=>fe(n),retry:D?()=>D(e,n):void 0,removeLabel:te};return(0,a.jsx)(`div`,{"data-slot":`file-upload-item`,"data-status":r.status,className:t.cn(`rounded-[min(var(--radius-xl),18px)] border border-border/80 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),white_10%),var(--card))] p-3.5 shadow-sm ring-1 ring-foreground/5`,M),children:ae?.(r)??m(r)},`${e.name}-${e.lastModified}-${n}`)})}),K.length>0&&(0,a.jsx)(`div`,{"data-slot":`file-upload-rejected-list`,className:t.cn(`grid gap-2`,N),children:K.map((e,t)=>(0,a.jsx)(`div`,{className:`rounded-[min(var(--radius-lg),12px)] border border-destructive/22 bg-destructive/8 px-3 py-2.5 text-xs leading-5 text-destructive shadow-[inset_0_1px_0_rgba(255,255,255,0.08)]`,children:oe?.({rejectedFile:e,index:t})??(0,a.jsxs)(`span`,{children:[e.file.name,`: `,e.message]})},`${e.file.name}-${t}`))})]})}exports.FileUpload=h,exports.fileMatchesAccept=c,exports.formatBytes=o,exports.getFileKey=l;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("lucide-react"),a=require("react/jsx-runtime");function o(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),r=e/1024**n;return`${r.toFixed(r>=10||n===0?0:1)} ${t[n]}`}function s(e){return e?.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean)??[]}function c(e,t){let n=s(t);if(n.length===0)return!0;let r=e.name.toLowerCase(),i=e.type.toLowerCase();return n.some(e=>e.startsWith(`.`)?r.endsWith(e):e.endsWith(`/*`)?i.startsWith(e.slice(0,-1)):i===e)}function l(e){return`${e.name}-${e.size}-${e.lastModified}`}function u(e,t){return typeof e==`number`?e:e?.[l(t)]??e?.[t.name]}function d(e,t){return typeof e==`string`?e:e?.[l(t)]??e?.[t.name]??`idle`}function f(e,t,n){let r=n?.[e],i={...t,reason:e};if(typeof r==`function`)return r(i);if(typeof r==`string`)return r;switch(e){case`max-files`:return`Maximum ${t.maxFiles} file${t.maxFiles===1?``:`s`} allowed.`;case`max-size`:return`File is larger than ${o(t.maxSize??0)}.`;case`type`:return t.accept?`File type is not allowed. Expected: ${t.accept}.`:`File type is not allowed.`}}function p({currentFiles:e,incomingFiles:t,accept:n,maxFiles:r,maxSize:i,appendFiles:a,rejectionMessages:o,validateFile:s}){let l=[],u=[],d=a?e:[],p=r??(a?void 0:t.length);for(let e of t){if(p!==void 0&&d.length+l.length>=p){u.push({file:e,reason:`max-files`,message:f(`max-files`,{file:e,maxFiles:p,maxSize:i,accept:n},o)});continue}if(i!==void 0&&e.size>i){u.push({file:e,reason:`max-size`,message:f(`max-size`,{file:e,maxFiles:p,maxSize:i,accept:n},o)});continue}if(!c(e,n)){u.push({file:e,reason:`type`,message:f(`type`,{file:e,maxFiles:p,maxSize:i,accept:n},o)});continue}let t=s?.(e);if(typeof t==`string`&&t){u.push({file:e,reason:`type`,message:t});continue}l.push(e)}return{accepted:l,rejected:u,nextFiles:a?[...e,...l]:l}}function m({file:e,progress:r,status:s,remove:c,retry:l,removeLabel:u=`Remove file`}){return(0,a.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,a.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-full border border-border/70 bg-background/90 shadow-sm`,children:(0,a.jsx)(i.FileIcon,{className:`size-4 text-muted-foreground`})}),(0,a.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,a.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,a.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e.name}),(0,a.jsx)(`span`,{className:t.cn(`rounded-full px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em]`,s===`uploading`&&`bg-primary/10 text-primary`,s===`success`&&`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`,s===`error`&&`bg-destructive/10 text-destructive`,s===`idle`&&`bg-muted text-muted-foreground`),children:s})]}),(0,a.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:o(e.size)}),typeof r==`number`&&(0,a.jsx)(`div`,{className:`mt-2 h-1.5 overflow-hidden rounded-full bg-muted/80`,children:(0,a.jsx)(`div`,{className:`h-full rounded-full bg-primary shadow-[0_8px_18px_color-mix(in_oklch,var(--primary),transparent_82%)]`,style:{width:`${Math.min(Math.max(r,0),100)}%`}})})]}),s===`error`&&l?(0,a.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,className:`rounded-full`,onClick:l,children:`Retry`}):null,(0,a.jsxs)(n.Button,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`rounded-full`,onClick:e=>{t.stopInteractivePropagation(e),c()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:[(0,a.jsx)(i.XIcon,{}),(0,a.jsx)(`span`,{className:`sr-only`,children:u})]})]})}function h({files:e=[],onFilesChange:s,rejectedFiles:c,onRejectedFilesChange:l,buttonLabel:f=`Choose files`,dropzoneLabel:h=`Drop files here or click to upload`,dropzoneDescription:g,dragActiveLabel:_=`Drop files to upload`,helperText:v,clearLabel:ee=`Clear all`,removeLabel:te=`Remove file`,dropzoneAriaLabel:ne,rejectionMessages:y,maxFiles:b,maxSize:x,appendFiles:S=!0,showFileList:C=!0,showClearButton:re=!0,loading:ie=!1,progress:w,status:T,validateFile:E,onRetryFile:D,fileTriggerLabel:O=`Open file picker`,renderFile:ae,renderRejectedFile:oe,renderActions:se,className:ce,inputClassName:k,dropzoneClassName:A,fileListClassName:j,fileItemClassName:M,rejectedListClassName:N,accept:P,multiple:F,disabled:I,onDragEnter:L,onDragLeave:R,onDragOver:z,onDrop:B,...V}){let H=r.useRef(null),U=r.useRef(0),[W,G]=r.useState(!1),[le,ue]=r.useState([]),K=c??le,q=I||ie,de=F??b!==1;r.useEffect(()=>{q&&(U.current=0,G(!1))},[q]);let J=r.useCallback(e=>{c===void 0&&ue(e),l?.(e)},[l,c]),Y=r.useCallback(()=>{q||H.current?.click()},[q]),X=r.useCallback(()=>{s?.([]),J([])},[s,J]),Z=r.useCallback(t=>{let n=p({currentFiles:e,incomingFiles:t,accept:P,maxFiles:b,maxSize:x,appendFiles:S,rejectionMessages:y,validateFile:E});s?.(n.nextFiles),J(n.rejected)},[P,S,e,b,x,s,y,J,E]),fe=r.useCallback(t=>{s?.(e.filter((e,n)=>n!==t))},[e,s]),Q=e=>{q||(Z(Array.from(e.target.files??[])),e.target.value=``)},$=e=>q?(e.preventDefault(),t.stopInteractivePropagation(e),!0):!1,pe=e=>{L?.(e),!(e.defaultPrevented||$(e))&&(e.preventDefault(),U.current+=1,G(!0))},me=e=>{R?.(e),!(e.defaultPrevented||$(e))&&(U.current=Math.max(U.current-1,0),U.current===0&&G(!1))},he=e=>{z?.(e),!(e.defaultPrevented||$(e))&&e.preventDefault()},ge=e=>{B?.(e),!(e.defaultPrevented||$(e))&&(e.preventDefault(),U.current=0,G(!1),Z(Array.from(e.dataTransfer.files??[])))};return(0,a.jsxs)(`div`,{"data-slot":`file-upload`,className:t.cn(`grid gap-3`,ce),children:[(0,a.jsx)(`input`,{ref:H,type:`file`,className:t.cn(`sr-only`,k),disabled:q,accept:P,multiple:de,onChange:Q,...V}),(0,a.jsxs)(`div`,{"data-slot":`file-upload-dropzone`,"data-dragging":W||void 0,"data-disabled":q||void 0,role:`button`,"aria-disabled":q||void 0,"aria-label":ne??O,tabIndex:q?-1:0,className:t.cn(`grid cursor-pointer gap-4 rounded-[var(--radius-2xl)] border border-dashed border-border/80 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),white_12%),var(--card))] p-6 text-center shadow-sm ring-1 ring-foreground/5 outline-none transition-[background-color,border-color,box-shadow,transform] hover:-translate-y-px hover:border-primary/35 hover:bg-muted/25 hover:shadow-[0_14px_36px_rgba(15,23,42,0.08)] focus-visible:ring-2 focus-visible:ring-ring data-[dragging=true]:border-primary data-[dragging=true]:bg-primary/6 data-[dragging=true]:shadow-[0_18px_50px_color-mix(in_oklch,var(--primary),transparent_84%)] data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-60`,A),onClick:Y,onKeyDown:e=>{q||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),Y())},onDragEnter:pe,onDragLeave:me,onDragOver:he,onDrop:ge,children:[(0,a.jsx)(`div`,{className:`mx-auto flex size-13 items-center justify-center rounded-full border border-border/75 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--background),white_14%),var(--background))] text-muted-foreground shadow-[0_1px_0_rgba(255,255,255,0.12),0_10px_24px_rgba(15,23,42,0.06)]`,children:(0,a.jsx)(i.UploadCloudIcon,{className:`size-5`})}),(0,a.jsxs)(`div`,{className:`grid gap-1`,children:[(0,a.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:W?_:h}),g&&(0,a.jsx)(`div`,{className:`text-sm leading-6 text-muted-foreground`,children:g}),(P||x||b||v)&&(0,a.jsx)(`div`,{className:`text-xs leading-5 text-muted-foreground`,children:v??[P?`Types: ${P}`:null,x?`Max size: ${o(x)}`:null,b?`Max files: ${b}`:null].filter(Boolean).join(` • `)})]}),se?.({openFileDialog:Y,clearFiles:X,files:e})??(0,a.jsxs)(`div`,{className:`flex justify-center gap-2`,children:[(0,a.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,disabled:q,"aria-label":typeof f==`string`?f:O,onClick:e=>{t.stopInteractivePropagation(e),Y()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:f}),re&&e.length>0&&(0,a.jsx)(n.Button,{type:`button`,variant:`ghost`,size:`sm`,disabled:q,onClick:e=>{t.stopInteractivePropagation(e),X()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:ee})]})]}),C&&e.length>0&&(0,a.jsx)(`div`,{"data-slot":`file-upload-list`,className:t.cn(`grid gap-2`,j),children:e.map((e,n)=>{let r={file:e,index:n,progress:u(w,e),status:d(T,e),remove:()=>fe(n),retry:D?()=>D(e,n):void 0,removeLabel:te};return(0,a.jsx)(`div`,{"data-slot":`file-upload-item`,"data-status":r.status,className:t.cn(`rounded-[min(var(--radius-xl),18px)] border border-border/80 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),white_10%),var(--card))] p-3.5 shadow-sm ring-1 ring-foreground/5`,M),children:ae?.(r)??m(r)},`${e.name}-${e.lastModified}-${n}`)})}),K.length>0&&(0,a.jsx)(`div`,{"data-slot":`file-upload-rejected-list`,className:t.cn(`grid gap-2`,N),children:K.map((e,t)=>(0,a.jsx)(`div`,{className:`rounded-[min(var(--radius-lg),12px)] border border-destructive/22 bg-destructive/8 px-3 py-2.5 text-xs leading-5 text-destructive shadow-[inset_0_1px_0_rgba(255,255,255,0.08)]`,children:oe?.({rejectedFile:e,index:t})??(0,a.jsxs)(`span`,{children:[e.file.name,`: `,e.message]})},`${e.file.name}-${t}`))})]})}exports.FileUpload=h,exports.fileMatchesAccept=c,exports.formatBytes=o,exports.getFileKey=l;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e, stopInteractivePropagation as t } from "../../lib/utils.js";
2
3
  import { Button as n } from "../ui/button/index.js";
3
4
  import * as r from "react";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./file-upload.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s(e){return new Promise((t,n)=>{let r=URL.createObjectURL(e),i=new Image;i.onload=()=>{t({width:i.width,height:i.height}),URL.revokeObjectURL(r)},i.onerror=()=>{URL.revokeObjectURL(r),n(Error(`Image metadata could not be read`))},i.src=r})}function c(e,t=!0){let[n,a]=i.useState({});return i.useEffect(()=>{if(!t){a({});return}let n=e.filter(e=>e.type.startsWith(`image/`)).map(e=>[r.getFileKey(e),URL.createObjectURL(e)]);return a(Object.fromEntries(n)),()=>{n.forEach(([,e])=>URL.revokeObjectURL(e))}},[t,e]),n}function l({file:e,previewUrl:i,progress:s,remove:c,previewClassName:l,imageClassName:u}){return(0,o.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,o.jsx)(`div`,{className:t.cn(`flex size-14 shrink-0 items-center justify-center overflow-hidden rounded-[min(var(--radius-xl),16px)] border border-border/75 bg-muted/45 text-muted-foreground shadow-[0_1px_0_rgba(255,255,255,0.05)]`,l),children:i?(0,o.jsx)(`img`,{src:i,alt:e.name,className:t.cn(`size-full object-cover`,u)}):(0,o.jsx)(a.ImageIcon,{className:`size-5`})}),(0,o.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,o.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e.name}),(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:r.formatBytes(e.size)}),typeof s==`number`&&(0,o.jsx)(`div`,{className:`mt-2 h-1.5 overflow-hidden rounded-full bg-muted/80`,children:(0,o.jsx)(`div`,{className:`h-full rounded-full bg-primary shadow-[0_8px_18px_color-mix(in_oklch,var(--primary),transparent_82%)]`,style:{width:`${Math.min(Math.max(s,0),100)}%`}})})]}),(0,o.jsxs)(n.Button,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`rounded-full`,onClick:e=>{t.stopInteractivePropagation(e),c()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:[(0,o.jsx)(a.XIcon,{}),(0,o.jsx)(`span`,{className:`sr-only`,children:`Remove image`})]})]})}function u({accept:e=`image/*`,buttonLabel:t=`Choose image`,dropzoneLabel:n=`Drop images here or click to upload`,preview:i=!0,previewClassName:a,imageClassName:u,files:d=[],minImageWidth:f,minImageHeight:p,aspectRatio:m,aspectRatioTolerance:h=.04,renderImageFile:g,..._}){let v=c(d,i);return(0,o.jsx)(r.FileUpload,{accept:e,buttonLabel:t,dropzoneLabel:n,files:d,validateFile:async e=>{if(!e.type.startsWith(`image/`))return`Only image files are allowed.`;if(!f&&!p&&!m)return null;let{width:t,height:n}=await s(e);if(f&&t<f)return`Image width must be at least ${f}px.`;if(p&&n<p)return`Image height must be at least ${p}px.`;if(m){let e=t/n;if(Math.abs(e-m)>h)return`Image ratio must be close to ${m.toFixed(2)}:1.`}return null},renderFile:e=>{let t=v[r.getFileKey(e.file)];return g?.({...e,previewUrl:t})??l({...e,previewUrl:t,previewClassName:a,imageClassName:u})},..._})}exports.ImageUpload=u,exports.useImagePreviewUrls=c;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./file-upload.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s(e){return new Promise((t,n)=>{let r=URL.createObjectURL(e),i=new Image;i.onload=()=>{t({width:i.width,height:i.height}),URL.revokeObjectURL(r)},i.onerror=()=>{URL.revokeObjectURL(r),n(Error(`Image metadata could not be read`))},i.src=r})}function c(e,t=!0){let[n,a]=i.useState({});return i.useEffect(()=>{if(!t){a({});return}let n=e.filter(e=>e.type.startsWith(`image/`)).map(e=>[r.getFileKey(e),URL.createObjectURL(e)]);return a(Object.fromEntries(n)),()=>{n.forEach(([,e])=>URL.revokeObjectURL(e))}},[t,e]),n}function l({file:e,previewUrl:i,progress:s,remove:c,previewClassName:l,imageClassName:u}){return(0,o.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,o.jsx)(`div`,{className:t.cn(`flex size-14 shrink-0 items-center justify-center overflow-hidden rounded-[min(var(--radius-xl),16px)] border border-border/75 bg-muted/45 text-muted-foreground shadow-[0_1px_0_rgba(255,255,255,0.05)]`,l),children:i?(0,o.jsx)(`img`,{src:i,alt:e.name,className:t.cn(`size-full object-cover`,u)}):(0,o.jsx)(a.ImageIcon,{className:`size-5`})}),(0,o.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,o.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e.name}),(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:r.formatBytes(e.size)}),typeof s==`number`&&(0,o.jsx)(`div`,{className:`mt-2 h-1.5 overflow-hidden rounded-full bg-muted/80`,children:(0,o.jsx)(`div`,{className:`h-full rounded-full bg-primary shadow-[0_8px_18px_color-mix(in_oklch,var(--primary),transparent_82%)]`,style:{width:`${Math.min(Math.max(s,0),100)}%`}})})]}),(0,o.jsxs)(n.Button,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`rounded-full`,onClick:e=>{t.stopInteractivePropagation(e),c()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:[(0,o.jsx)(a.XIcon,{}),(0,o.jsx)(`span`,{className:`sr-only`,children:`Remove image`})]})]})}function u({accept:e=`image/*`,buttonLabel:t=`Choose image`,dropzoneLabel:n=`Drop images here or click to upload`,preview:i=!0,previewClassName:a,imageClassName:u,files:d=[],minImageWidth:f,minImageHeight:p,aspectRatio:m,aspectRatioTolerance:h=.04,renderImageFile:g,..._}){let v=c(d,i);return(0,o.jsx)(r.FileUpload,{accept:e,buttonLabel:t,dropzoneLabel:n,files:d,validateFile:async e=>{if(!e.type.startsWith(`image/`))return`Only image files are allowed.`;if(!f&&!p&&!m)return null;let{width:t,height:n}=await s(e);if(f&&t<f)return`Image width must be at least ${f}px.`;if(p&&n<p)return`Image height must be at least ${p}px.`;if(m){let e=t/n;if(Math.abs(e-m)>h)return`Image ratio must be close to ${m.toFixed(2)}:1.`}return null},renderFile:e=>{let t=v[r.getFileKey(e.file)];return g?.({...e,previewUrl:t})??l({...e,previewUrl:t,previewClassName:a,imageClassName:u})},..._})}exports.ImageUpload=u,exports.useImagePreviewUrls=c;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { cn as e, stopInteractivePropagation as t } from "../../lib/utils.js";
2
3
  import { Button as n } from "../ui/button/index.js";
3
4
  import { FileUpload as r, formatBytes as i, getFileKey as a } from "./file-upload.js";
@@ -1 +1 @@
1
- var e={$schema:`https://tembro.dev/registry.schema.json`,name:`tembro`,version:`2.1.1`,description:`Reusable React + TypeScript UI kit registry`,groups:{ui:[`badge`,`button`,`card`,`checkbox`,`accordion`,`collapse`,`dialog`,`divider`,`dropdown-menu`,`input`,`kbd`,`popover`,`radio-group`,`right-click-menu`,`scroll-box`,`select`,`segmented-control`,`skeleton`,`spinner`,`switch`,`table`,`tabs`,`textarea`,`tooltip`],overlay:[`alert-dialog`,`confirm-dialog`,`drawer`,`modal-shell`,`sheet-shell`],navigation:[`nav-tabs`,`page-tabs`,`pagination`,`stepper-tabs`,`command-bar`],inputs:[`async-select`,`combobox`,`masked-input`,`money-input`,`number-input`,`otp-input`,`password-input`,`phone-input`,`quantity-input`,`quantity-stepper`,`rating`,`search-input`,`simple-select`,`slider`,`tag-input`,`inline-editable`],form:[`form-field-shell`,`form-input`,`form-select`,`form-textarea`,`form-switch`,`form-async-select`],feedback:[`alert`,`loading-state`,`page-state`,`data-state`],display:[`activity-feed`,`avatar`,`code-block`,`data-list`,`data-state`,`info-card`,`kanban`,`list`,`metric-grid`,`progress`,`progress-circle`,`property-grid`,`result`,`statistic`,`status-dot`,`status-legend`,`timeline`,`tree-view`,`user-card`,`trend-card`],actions:[`action-menu`,`button-group`,`copy-button`,`quick-action-grid`],layout:[`app-header`,`sidebar`,`breadcrumbs`,`page-container`,`section`,`section-header`,`sidebar-nav`,`stat-card`,`sticky-footer-bar`],filters:[`filter-bar`,`saved-filter-select`],"data-table":[`data-table`],calendar:[`calendar`,`date-picker`,`date-range-picker`],upload:[`file-upload`,`image-upload`,`file-dropzone`],wizard:[`stepper`,`wizard`],notifications:[`toast`,`notification-center`],command:[],patterns:[`resource-page`,`resource-detail-page`],modern:[`calendar-scheduler`,`dual-list-picker`,`menubar`,`navigation-menu`,`resizable-panel`,`rich-text-editor`,`tour`,`qr-code`,`tag`,`carousel`,`typography`,`json-input`,`time-picker`],hooks:[`use-session-storage-state`,`use-before-unload-when-dirty`,`use-is-mobile`,`use-disclosure`,`use-debounce`,`use-data-table-view-state`],kits:[`dashboard`,`calendar-kit`,`wizard-kit`,`all`]},recommended:`button.input.textarea.checkbox.switch.radio-group.dialog.popover.select.table.badge.card.tabs.collapse.accordion.segmented-control.spinner.tooltip.kbd.sidebar.sidebar-nav.breadcrumbs.data-state.loading-state.progress.progress-circle.metric-grid.stat-card.activity-feed.data-list.user-card.action-menu.filter-bar.trend-card.notification-center.command-bar`.split(`.`),recommendedByMode:{foundation:[`button`,`input`,`textarea`,`checkbox`,`switch`,`radio-group`,`dialog`,`popover`,`select`,`table`,`badge`,`card`,`tabs`,`kbd`,`scroll-box`],sourceCopy:[`sidebar`,`sidebar-nav`,`breadcrumbs`,`data-state`,`loading-state`,`progress-circle`,`stat-card`,`metric-grid`,`activity-feed`,`user-card`,`action-menu`,`filter-bar`,`date-picker`,`date-range-picker`,`file-upload`,`file-dropzone`,`use-data-table-view-state`,`data-table`,`form-input`,`form-select`,`form-textarea`,`form-switch`,`trend-card`,`notification-center`,`command-bar`],system:[`data-table`,`data-table-view-presets`,`sidebar`,`sidebar-nav`]},publicSurface:{documented:[`button`,`input`,`select`,`card`,`badge`,`checkbox`,`dialog`,`form-field-shell`,`data-table`,`calendar`,`date-picker`,`date-range-picker`,`alert`,`charts`,`sidebar`,`file-upload`,`progress`],standalone:`accordion.divider.segmented-control.skeleton.spinner.command-bar.quantity-stepper.inline-editable.avatar.code-block.data-state.kanban.list.property-grid.statistic.tree-view.copy-button.section.sticky-footer-bar.calendar-scheduler.dual-list-picker.menubar.navigation-menu.resizable-panel.rich-text-editor.tour.qr-code.tag.carousel.typography.json-input.time-picker`.split(`.`)},migrationAliases:{"clearable-input":`input`,"search-input":`input`,"password-input":`input`,"number-input":`input`,"money-input":`input`,"phone-input":`input`,"masked-input":`input`,"quantity-input":`input`,"date-input":`input`,"date-range-input":`input`,"simple-select":`select`,combobox:`select`,"async-multi-select":`async-select`,"form-async-select":`form-select`,"app-sidebar":`sidebar`,"smart-card":`info-card`}};exports.default=e;
1
+ var e={$schema:`https://tembro.dev/registry.schema.json`,name:`tembro`,version:`2.1.2`,description:`Reusable React + TypeScript UI kit registry`,groups:{ui:[`badge`,`button`,`card`,`checkbox`,`accordion`,`collapse`,`dialog`,`divider`,`dropdown-menu`,`input`,`kbd`,`popover`,`radio-group`,`right-click-menu`,`scroll-box`,`select`,`segmented-control`,`skeleton`,`spinner`,`switch`,`table`,`tabs`,`textarea`,`tooltip`],overlay:[`alert-dialog`,`confirm-dialog`,`drawer`,`modal-shell`,`sheet-shell`],navigation:[`nav-tabs`,`page-tabs`,`pagination`,`stepper-tabs`,`command-bar`],inputs:[`async-select`,`combobox`,`masked-input`,`money-input`,`number-input`,`otp-input`,`password-input`,`phone-input`,`quantity-input`,`quantity-stepper`,`rating`,`search-input`,`simple-select`,`slider`,`tag-input`,`inline-editable`],form:[`form-field-shell`,`form-input`,`form-select`,`form-textarea`,`form-switch`,`form-async-select`],feedback:[`alert`,`loading-state`,`page-state`,`data-state`],display:[`activity-feed`,`avatar`,`code-block`,`data-list`,`data-state`,`info-card`,`kanban`,`list`,`metric-grid`,`progress`,`progress-circle`,`property-grid`,`result`,`statistic`,`status-dot`,`status-legend`,`timeline`,`tree-view`,`user-card`,`trend-card`],actions:[`action-menu`,`button-group`,`copy-button`,`quick-action-grid`],layout:[`app-header`,`sidebar`,`breadcrumbs`,`page-container`,`section`,`section-header`,`sidebar-nav`,`stat-card`,`sticky-footer-bar`],filters:[`filter-bar`,`saved-filter-select`],"data-table":[`data-table`],calendar:[`calendar`,`date-picker`,`date-range-picker`],upload:[`file-upload`,`image-upload`,`file-dropzone`],wizard:[`stepper`,`wizard`],notifications:[`toast`,`notification-center`],command:[],patterns:[`resource-page`,`resource-detail-page`],modern:[`calendar-scheduler`,`dual-list-picker`,`menubar`,`navigation-menu`,`resizable-panel`,`rich-text-editor`,`tour`,`qr-code`,`tag`,`carousel`,`typography`,`json-input`,`time-picker`],hooks:[`use-session-storage-state`,`use-before-unload-when-dirty`,`use-is-mobile`,`use-disclosure`,`use-debounce`,`use-data-table-view-state`],kits:[`dashboard`,`calendar-kit`,`wizard-kit`,`all`]},recommended:`button.input.textarea.checkbox.switch.radio-group.dialog.popover.select.table.badge.card.tabs.collapse.accordion.segmented-control.spinner.tooltip.kbd.sidebar.sidebar-nav.breadcrumbs.data-state.loading-state.progress.progress-circle.metric-grid.stat-card.activity-feed.data-list.user-card.action-menu.filter-bar.trend-card.notification-center.command-bar`.split(`.`),recommendedByMode:{foundation:[`button`,`input`,`textarea`,`checkbox`,`switch`,`radio-group`,`dialog`,`popover`,`select`,`table`,`badge`,`card`,`tabs`,`kbd`,`scroll-box`],sourceCopy:[`sidebar`,`sidebar-nav`,`breadcrumbs`,`data-state`,`loading-state`,`progress-circle`,`stat-card`,`metric-grid`,`activity-feed`,`user-card`,`action-menu`,`filter-bar`,`date-picker`,`date-range-picker`,`file-upload`,`file-dropzone`,`use-data-table-view-state`,`data-table`,`form-input`,`form-select`,`form-textarea`,`form-switch`,`trend-card`,`notification-center`,`command-bar`],system:[`data-table`,`data-table-view-presets`,`sidebar`,`sidebar-nav`]},publicSurface:{documented:[`button`,`input`,`select`,`card`,`badge`,`checkbox`,`dialog`,`form-field-shell`,`data-table`,`calendar`,`date-picker`,`date-range-picker`,`alert`,`charts`,`sidebar`,`file-upload`,`progress`],standalone:`accordion.divider.segmented-control.skeleton.spinner.command-bar.quantity-stepper.inline-editable.avatar.code-block.data-state.kanban.list.property-grid.statistic.tree-view.copy-button.section.sticky-footer-bar.calendar-scheduler.dual-list-picker.menubar.navigation-menu.resizable-panel.rich-text-editor.tour.qr-code.tag.carousel.typography.json-input.time-picker`.split(`.`)},migrationAliases:{"clearable-input":`input`,"search-input":`input`,"password-input":`input`,"number-input":`input`,"money-input":`input`,"phone-input":`input`,"masked-input":`input`,"quantity-input":`input`,"date-input":`input`,"date-range-input":`input`,"simple-select":`select`,combobox:`select`,"async-multi-select":`async-select`,"form-async-select":`form-select`,"app-sidebar":`sidebar`,"smart-card":`info-card`}};exports.default=e;
@@ -1,7 +1,7 @@
1
1
  var e = {
2
2
  $schema: "https://tembro.dev/registry.schema.json",
3
3
  name: "tembro",
4
- version: "2.1.1",
4
+ version: "2.1.2",
5
5
  description: "Reusable React + TypeScript UI kit registry",
6
6
  groups: {
7
7
  ui: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tembro",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "Reusable React UI kit with dashboard-ready components, CLI registry helpers, and TypeScript support.",
5
5
  "keywords": [
6
6
  "react",
@@ -1180,4 +1180,4 @@ ${t}`),e.forEach(r=>{let i=ee[r],n=La(r),o=qa(r,i.category),s=i.registryDependen
1180
1180
  ${n}`),o.sort().forEach(s=>{let a=ee[s],c=La(s),u=qa(s,a.category),l=a.registryDependencies?.length?` -> ${a.registryDependencies.join(", ")}`:"";console.log(` ${s} [${c}/${u}]${l}`);});console.log(`
1181
1181
  Status:`),console.log(" stable = safe public API"),console.log(" preview = usable but API may change"),console.log(" experimental = not ready for stable app contracts"),console.log(" internal = helper metadata"),console.log(`
1182
1182
  Distribution:`),console.log(" foundation = small runtime-safe primitives, hooks, and helpers"),console.log(" source-copy = copy into app source with init/add and edit locally"),console.log(" system = larger product surfaces, kits, and patterns; prefer source-copy only"),console.log(`
1183
- Usage:`),console.log(` ${$e("add button input data-table")}`),console.log(` ${$e("add form --overwrite")}`);}var Ua=Me(rt());async function Ly(t){let e=process.cwd(),r=G__default.default.join(e,"tembro.json"),i=Ua.default.existsSync(r)?await Ua.default.readJson(r):{},n=t??i.cssPath??i.globalCssPath??"src/index.css",o=await An({cwd:e,cssPath:n});C.success(`Tembro theme CSS yangilandi: ${o}`);}var Je=Me(rt());var qy={minimal:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"}],dashboard:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"},{source:"src/components/ui/dropdown-menu.tsx",target:"{ui}/dropdown-menu.tsx"},{source:"src/components/ui/skeleton.tsx",target:"{ui}/skeleton.tsx"},{source:"src/components/ui/tabs.tsx",target:"{ui}/tabs.tsx"},{source:"src/components/feedback/page-state.tsx",target:"{components}/feedback/page-state.tsx"},{source:"src/components/filters/filter-bar.tsx",target:"{components}/filters/filter-bar.tsx"},{source:"src/components/display/property-grid.tsx",target:"{components}/display/property-grid.tsx"},{source:"src/components/display/smart-card.tsx",target:"{components}/display/smart-card.tsx"},{source:"src/components/data-table/data-table.tsx",target:"{components}/data-table/data-table.tsx"}]};function l1(t,e="@"){return e==="@"?t:t.replaceAll("@/",`${e}/`)}function u1(t,e){let r=e.paths?.components??"src/components",i=e.paths?.ui??"src/components/ui",n=e.utilsPath??"src/lib/utils.ts";return t.replaceAll("{components}",r).replaceAll("{ui}",i).replaceAll("{utils}",n)}async function By(t,e,r,i){if((await Je.default.stat(t)).isDirectory()){let o=await Je.default.readdir(t,{withFileTypes:true});for(let s of o)await By(G__default.default.join(t,s.name),G__default.default.join(e,s.name),r,i);return}if(i.dryRun){C.info(`[dry-run] ${t} -> ${e}`);return}if(Je.default.existsSync(e)&&!i.overwrite){C.warn(`${e} allaqachon mavjud.`);return}await Je.default.ensureDir(G__default.default.dirname(e)),await Je.default.writeFile(e,l1(await Je.default.readFile(t,"utf8"),r)),C.success(`${e} qo\u2018shildi.`);}async function Uy(t,e={}){let r=qy[t];r||(C.error(`Preset topilmadi: ${t}`),process.exit(1));let i=process.cwd(),n=G__default.default.join(i,"tembro.json");Je.default.existsSync(n)||(C.error("tembro.json topilmadi. Avval init qiling."),process.exit(1));let o=await Je.default.readJson(n),s=In((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));for(let a of r){let c=G__default.default.join(s,a.source),u=G__default.default.join(i,u1(a.target,o));await By(c,u,o.alias,e);}}var Ot=new Tt;Ot.name("tembro").description("Tembro source-copy CLI").version("2.1.1");Ot.command("init").description("Initialize local Tembro source files in your project").option("--template <template>","Project defaults: vite or next","vite").option("--skip-install","Do not install base dependencies").option("-y, --defaults","Use template defaults without interactive prompts").action(Py);Ot.command("preset").description("Add a source-copy preset to your project").argument("<name>","preset name: minimal or dashboard").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action(Uy);Ot.command("list").description("List available registry components").action(jy);Ot.command("add").description("Copy component source files into your project").argument("[components...]","components to add").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action($y);Ot.command("theme").description("Write or update Tembro theme CSS in your global CSS file").argument("[cssPath]","global CSS path, default from tembro.json or src/index.css").action(Ly);Ot.parse();
1183
+ Usage:`),console.log(` ${$e("add button input data-table")}`),console.log(` ${$e("add form --overwrite")}`);}var Ua=Me(rt());async function Ly(t){let e=process.cwd(),r=G__default.default.join(e,"tembro.json"),i=Ua.default.existsSync(r)?await Ua.default.readJson(r):{},n=t??i.cssPath??i.globalCssPath??"src/index.css",o=await An({cwd:e,cssPath:n});C.success(`Tembro theme CSS yangilandi: ${o}`);}var Je=Me(rt());var qy={minimal:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"}],dashboard:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"},{source:"src/components/ui/dropdown-menu.tsx",target:"{ui}/dropdown-menu.tsx"},{source:"src/components/ui/skeleton.tsx",target:"{ui}/skeleton.tsx"},{source:"src/components/ui/tabs.tsx",target:"{ui}/tabs.tsx"},{source:"src/components/feedback/page-state.tsx",target:"{components}/feedback/page-state.tsx"},{source:"src/components/filters/filter-bar.tsx",target:"{components}/filters/filter-bar.tsx"},{source:"src/components/display/property-grid.tsx",target:"{components}/display/property-grid.tsx"},{source:"src/components/display/smart-card.tsx",target:"{components}/display/smart-card.tsx"},{source:"src/components/data-table/data-table.tsx",target:"{components}/data-table/data-table.tsx"}]};function l1(t,e="@"){return e==="@"?t:t.replaceAll("@/",`${e}/`)}function u1(t,e){let r=e.paths?.components??"src/components",i=e.paths?.ui??"src/components/ui",n=e.utilsPath??"src/lib/utils.ts";return t.replaceAll("{components}",r).replaceAll("{ui}",i).replaceAll("{utils}",n)}async function By(t,e,r,i){if((await Je.default.stat(t)).isDirectory()){let o=await Je.default.readdir(t,{withFileTypes:true});for(let s of o)await By(G__default.default.join(t,s.name),G__default.default.join(e,s.name),r,i);return}if(i.dryRun){C.info(`[dry-run] ${t} -> ${e}`);return}if(Je.default.existsSync(e)&&!i.overwrite){C.warn(`${e} allaqachon mavjud.`);return}await Je.default.ensureDir(G__default.default.dirname(e)),await Je.default.writeFile(e,l1(await Je.default.readFile(t,"utf8"),r)),C.success(`${e} qo\u2018shildi.`);}async function Uy(t,e={}){let r=qy[t];r||(C.error(`Preset topilmadi: ${t}`),process.exit(1));let i=process.cwd(),n=G__default.default.join(i,"tembro.json");Je.default.existsSync(n)||(C.error("tembro.json topilmadi. Avval init qiling."),process.exit(1));let o=await Je.default.readJson(n),s=In((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));for(let a of r){let c=G__default.default.join(s,a.source),u=G__default.default.join(i,u1(a.target,o));await By(c,u,o.alias,e);}}var Ot=new Tt;Ot.name("tembro").description("Tembro source-copy CLI").version("2.1.2");Ot.command("init").description("Initialize local Tembro source files in your project").option("--template <template>","Project defaults: vite or next","vite").option("--skip-install","Do not install base dependencies").option("-y, --defaults","Use template defaults without interactive prompts").action(Py);Ot.command("preset").description("Add a source-copy preset to your project").argument("<name>","preset name: minimal or dashboard").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action(Uy);Ot.command("list").description("List available registry components").action(jy);Ot.command("add").description("Copy component source files into your project").argument("[components...]","components to add").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action($y);Ot.command("theme").description("Write or update Tembro theme CSS in your global CSS file").argument("[cssPath]","global CSS path, default from tembro.json or src/index.css").action(Ly);Ot.parse();
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { Loader2Icon, MoreHorizontalIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
 
3
5
  import { Button } from "@/components/ui/button"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { CheckIcon, CopyIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { CalendarIcon, XIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { CalendarIcon, XIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { Loader2Icon, SearchIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { BookmarkIcon, SaveIcon, XIcon } from "lucide-react"
3
5
  import { Button } from "@/components/ui/button"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import {
3
5
  flexRender,
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { UploadIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
 
3
5
  import { cn } from "@/lib/utils"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
 
3
5
  import { CopyButton } from "@/components/actions/copy-button"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
 
3
5
  import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { ChevronRightIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { SlidersHorizontalIcon, XIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { BookmarkIcon, SaveIcon, Trash2Icon, CheckIcon, ChevronsUpDownIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { CheckIcon, ChevronsUpDownIcon, Loader2Icon, PlusIcon, SearchIcon, XIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { XIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
 
3
5
  import { Input } from "@/components/ui/input"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { CheckIcon, ChevronDownIcon, SearchIcon } from "lucide-react"
3
5
 
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
  import { Input } from "@/components/ui/input"
3
5
  import { cn } from "@/lib/utils"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
 
3
5
  import { cn } from "@/lib/utils"
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import * as React from "react"
2
4
 
3
5
  import { cn } from "@/lib/utils"