@cryptlex/web-components 6.7.9 → 6.7.10

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 (233) hide show
  1. package/dist/components/alert.d.ts +2 -2
  2. package/dist/components/alert.js +2 -2
  3. package/dist/components/alert.js.map +1 -1
  4. package/dist/components/autocomplete.js +2 -2
  5. package/dist/components/autocomplete.js.map +1 -1
  6. package/dist/components/avatar.d.ts +1 -1
  7. package/dist/components/avatar.js +2 -2
  8. package/dist/components/avatar.js.map +1 -1
  9. package/dist/components/badge.d.ts +2 -2
  10. package/dist/components/badge.js +2 -2
  11. package/dist/components/badge.js.map +1 -1
  12. package/dist/components/breadcrumbs.d.ts +5 -5
  13. package/dist/components/breadcrumbs.js +2 -2
  14. package/dist/components/breadcrumbs.js.map +1 -1
  15. package/dist/components/button.d.ts +3 -3
  16. package/dist/components/button.js +2 -2
  17. package/dist/components/button.js.map +1 -1
  18. package/dist/components/calendar.d.ts +7 -7
  19. package/dist/components/calendar.js +2 -2
  20. package/dist/components/calendar.js.map +1 -1
  21. package/dist/components/card.d.ts +6 -6
  22. package/dist/components/card.js +2 -2
  23. package/dist/components/card.js.map +1 -1
  24. package/dist/components/charts.d.ts +8 -8
  25. package/dist/components/charts.js +2 -2
  26. package/dist/components/charts.js.map +1 -1
  27. package/dist/components/checkbox.d.ts +2 -2
  28. package/dist/components/checkbox.js +2 -2
  29. package/dist/components/checkbox.js.map +1 -1
  30. package/dist/components/code-block.d.ts +1 -1
  31. package/dist/components/code-block.js +2 -2
  32. package/dist/components/code-block.js.map +1 -1
  33. package/dist/components/copy-button.d.ts +1 -1
  34. package/dist/components/copy-button.js +2 -2
  35. package/dist/components/copy-button.js.map +1 -1
  36. package/dist/components/data-table-filter.d.ts +1 -1
  37. package/dist/components/data-table-filter.js +1 -2
  38. package/dist/components/data-table.d.ts +11 -86
  39. package/dist/components/data-table.js +1 -2
  40. package/dist/components/date-picker.d.ts +3 -3
  41. package/dist/components/date-picker.js +2 -2
  42. package/dist/components/date-picker.js.map +1 -1
  43. package/dist/components/datefield.d.ts +4 -4
  44. package/dist/components/datefield.js +2 -2
  45. package/dist/components/datefield.js.map +1 -1
  46. package/dist/components/dialog.d.ts +8 -8
  47. package/dist/components/dialog.js +2 -2
  48. package/dist/components/dialog.js.map +1 -1
  49. package/dist/components/disclosure.d.ts +4 -4
  50. package/dist/components/disclosure.js +2 -2
  51. package/dist/components/disclosure.js.map +1 -1
  52. package/dist/components/divider.d.ts +2 -2
  53. package/dist/components/divider.js +2 -2
  54. package/dist/components/divider.js.map +1 -1
  55. package/dist/components/duration-field.d.ts +2 -2
  56. package/dist/components/duration-field.js +2 -2
  57. package/dist/components/duration-field.js.map +1 -1
  58. package/dist/components/file-trigger.d.ts +1 -1
  59. package/dist/components/file-trigger.js +2 -2
  60. package/dist/components/file-trigger.js.map +1 -1
  61. package/dist/components/form.d.ts +11 -11
  62. package/dist/components/form.js +2 -2
  63. package/dist/components/form.js.map +1 -1
  64. package/dist/components/icons.js +1 -2
  65. package/dist/components/id-search.d.ts +5 -5
  66. package/dist/components/id-search.js +2 -2
  67. package/dist/components/id-search.js.map +1 -1
  68. package/dist/components/kbd.d.ts +1 -1
  69. package/dist/components/kbd.js +2 -2
  70. package/dist/components/kbd.js.map +1 -1
  71. package/dist/components/list-box.d.ts +3 -3
  72. package/dist/components/list-box.js +2 -2
  73. package/dist/components/list-box.js.map +1 -1
  74. package/dist/components/loader.d.ts +1 -1
  75. package/dist/components/loader.js +2 -2
  76. package/dist/components/loader.js.map +1 -1
  77. package/dist/components/menu.d.ts +7 -7
  78. package/dist/components/menu.js +2 -2
  79. package/dist/components/menu.js.map +1 -1
  80. package/dist/components/multi-select.d.ts +2 -2
  81. package/dist/components/multi-select.js +2 -2
  82. package/dist/components/multi-select.js.map +1 -1
  83. package/dist/components/numberfield.d.ts +5 -5
  84. package/dist/components/numberfield.js +2 -2
  85. package/dist/components/numberfield.js.map +1 -1
  86. package/dist/components/object-table.d.ts +1 -1
  87. package/dist/components/object-table.js +2 -2
  88. package/dist/components/object-table.js.map +1 -1
  89. package/dist/components/offline-request-file-input.d.ts +2 -2
  90. package/dist/components/offline-request-file-input.js +2 -2
  91. package/dist/components/offline-request-file-input.js.map +1 -1
  92. package/dist/components/otpfield.d.ts +1 -1
  93. package/dist/components/otpfield.js +2 -2
  94. package/dist/components/otpfield.js.map +1 -1
  95. package/dist/components/popover.d.ts +2 -2
  96. package/dist/components/popover.js +2 -2
  97. package/dist/components/popover.js.map +1 -1
  98. package/dist/components/progress-bar.d.ts +1 -1
  99. package/dist/components/progress-bar.js +2 -2
  100. package/dist/components/progress-bar.js.map +1 -1
  101. package/dist/components/searchfield.d.ts +1 -1
  102. package/dist/components/searchfield.js +2 -2
  103. package/dist/components/searchfield.js.map +1 -1
  104. package/dist/components/select-options.js +2 -2
  105. package/dist/components/select-options.js.map +1 -1
  106. package/dist/components/select.d.ts +5 -5
  107. package/dist/components/select.js +2 -2
  108. package/dist/components/select.js.map +1 -1
  109. package/dist/components/sidebar.d.ts +20 -20
  110. package/dist/components/sidebar.js +2 -2
  111. package/dist/components/sidebar.js.map +1 -1
  112. package/dist/components/skeleton.d.ts +1 -1
  113. package/dist/components/skeleton.js +2 -2
  114. package/dist/components/skeleton.js.map +1 -1
  115. package/dist/components/steps.d.ts +1 -1
  116. package/dist/components/steps.js +2 -2
  117. package/dist/components/steps.js.map +1 -1
  118. package/dist/components/table-of-contents.d.ts +1 -1
  119. package/dist/components/table-of-contents.js +2 -2
  120. package/dist/components/table-of-contents.js.map +1 -1
  121. package/dist/components/table.d.ts +8 -8
  122. package/dist/components/table.js +2 -2
  123. package/dist/components/table.js.map +1 -1
  124. package/dist/components/tabs.d.ts +4 -4
  125. package/dist/components/tabs.js +2 -2
  126. package/dist/components/tabs.js.map +1 -1
  127. package/dist/components/tag-group.d.ts +2 -2
  128. package/dist/components/tag-group.js +2 -2
  129. package/dist/components/tag-group.js.map +1 -1
  130. package/dist/components/textfield.d.ts +2 -2
  131. package/dist/components/textfield.js +2 -2
  132. package/dist/components/textfield.js.map +1 -1
  133. package/dist/components/timeline.d.ts +6 -6
  134. package/dist/components/timeline.js +2 -2
  135. package/dist/components/timeline.js.map +1 -1
  136. package/dist/components/toast.d.ts +1 -1
  137. package/dist/components/toast.js +2 -2
  138. package/dist/components/toast.js.map +1 -1
  139. package/dist/components/tooltip.d.ts +2 -2
  140. package/dist/components/tooltip.js +2 -2
  141. package/dist/components/tooltip.js.map +1 -1
  142. package/dist/data-table-filter.js +2 -0
  143. package/dist/data-table-filter.js.map +1 -0
  144. package/dist/icons.js +2 -0
  145. package/dist/icons.js.map +1 -0
  146. package/dist/stories/atoms/color.stories.d.ts +11 -0
  147. package/dist/stories/atoms/icons.stories.d.ts +11 -0
  148. package/dist/stories/atoms/type.stories.d.ts +13 -0
  149. package/dist/stories/components/alert.stories.d.ts +11 -0
  150. package/dist/stories/components/avatar.stories.d.ts +6 -0
  151. package/dist/stories/components/badge.stories.d.ts +6 -0
  152. package/dist/stories/components/breadcrumbs.stories.d.ts +5 -0
  153. package/dist/stories/components/button.stories.d.ts +6 -0
  154. package/dist/stories/components/calendar.stories.d.ts +10 -0
  155. package/dist/stories/components/card.stories.d.ts +9 -0
  156. package/dist/stories/components/code-block.stories.d.ts +12 -0
  157. package/dist/stories/components/copy-button.stories.d.ts +6 -0
  158. package/dist/stories/components/date-range-picker.stories.d.ts +23 -0
  159. package/dist/stories/components/datepicker.stories.d.ts +23 -0
  160. package/dist/stories/components/dialog.stories.d.ts +5 -0
  161. package/dist/stories/components/divider.stories.d.ts +13 -0
  162. package/dist/stories/components/file-trigger.stories.d.ts +10 -0
  163. package/dist/stories/components/kbd.stories.d.ts +49 -0
  164. package/dist/stories/components/loader.stories.d.ts +12 -0
  165. package/dist/stories/components/offline-request-file-upload.stories.d.ts +10 -0
  166. package/dist/stories/components/progress-bar.stories.d.ts +15 -0
  167. package/dist/stories/components/sheet.stories.d.ts +15 -0
  168. package/dist/stories/components/skeleton.stories.d.ts +10 -0
  169. package/dist/stories/components/tabs.stories.d.ts +12 -0
  170. package/dist/stories/components/tag-group.stories.d.ts +8 -0
  171. package/dist/stories/components/timeline.stories.d.ts +6 -0
  172. package/dist/stories/components/timepicker.stories.d.ts +23 -0
  173. package/dist/stories/components/toast.stories.d.ts +12 -0
  174. package/dist/stories/components/tooltip.stories.d.ts +9 -0
  175. package/dist/stories/examples/autocomplete.stories.d.ts +11 -0
  176. package/dist/stories/examples/charts.stories.d.ts +11 -0
  177. package/dist/stories/examples/data-table.stories.d.ts +9 -0
  178. package/dist/stories/examples/key-value-card.stories.d.ts +42 -0
  179. package/dist/stories/examples/sidebar.stories.d.ts +32 -0
  180. package/dist/stories/examples/table-of-contents.stories.d.ts +6 -0
  181. package/dist/stories/inputs/form.stories.d.ts +6 -0
  182. package/dist/stories/inputs/id-search.stories.d.ts +8 -0
  183. package/dist/stories/inputs/otp-field.stories.d.ts +6 -0
  184. package/dist/stories/inputs/textfield.stories.d.ts +8 -0
  185. package/dist/stories/story-commons.d.ts +3 -0
  186. package/dist/stories/utilities/resource-formatter.stories.d.ts +7 -0
  187. package/dist/utilities/auth.js +2 -2
  188. package/dist/utilities/auth.js.map +1 -1
  189. package/dist/utilities/countries.d.ts +1 -1
  190. package/dist/utilities/countries.js +2 -2
  191. package/dist/utilities/countries.js.map +1 -1
  192. package/dist/utilities/ctx-client.d.ts +1 -1
  193. package/dist/utilities/ctx-client.js +2 -2
  194. package/dist/utilities/ctx-client.js.map +1 -1
  195. package/dist/utilities/date.js +2 -2
  196. package/dist/utilities/date.js.map +1 -1
  197. package/dist/utilities/duration.js +2 -2
  198. package/dist/utilities/duration.js.map +1 -1
  199. package/dist/utilities/empty-option.js +2 -2
  200. package/dist/utilities/empty-option.js.map +1 -1
  201. package/dist/utilities/errors.js +2 -2
  202. package/dist/utilities/errors.js.map +1 -1
  203. package/dist/utilities/form-context.js +2 -2
  204. package/dist/utilities/form-context.js.map +1 -1
  205. package/dist/utilities/form-hook.js +2 -2
  206. package/dist/utilities/form-hook.js.map +1 -1
  207. package/dist/utilities/form.js +2 -2
  208. package/dist/utilities/form.js.map +1 -1
  209. package/dist/utilities/highlight-code.js +2 -2
  210. package/dist/utilities/highlight-code.js.map +1 -1
  211. package/dist/utilities/normalize-arrays.js +2 -2
  212. package/dist/utilities/normalize-arrays.js.map +1 -1
  213. package/dist/utilities/numbers.js +2 -2
  214. package/dist/utilities/numbers.js.map +1 -1
  215. package/dist/utilities/resources.d.ts +1 -1
  216. package/dist/utilities/resources.js +2 -2
  217. package/dist/utilities/resources.js.map +1 -1
  218. package/dist/utilities/shiki.js +2 -2
  219. package/dist/utilities/shiki.js.map +1 -1
  220. package/dist/utilities/string.js +2 -2
  221. package/dist/utilities/string.js.map +1 -1
  222. package/dist/utilities/theme.js +2 -2
  223. package/dist/utilities/theme.js.map +1 -1
  224. package/dist/utilities/use-code-highlight.js +2 -2
  225. package/dist/utilities/use-code-highlight.js.map +1 -1
  226. package/dist/utilities/use-mobile.js +2 -2
  227. package/dist/utilities/use-mobile.js.map +1 -1
  228. package/dist/utilities/validators.js +2 -2
  229. package/dist/utilities/validators.js.map +1 -1
  230. package/package.json +40 -40
  231. package/dist/components/data-table-filter.js.map +0 -1
  232. package/dist/components/data-table.js.map +0 -1
  233. package/dist/components/icons.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as e,Fragment as N,jsxs as d}from"react/jsx-runtime";import{useId as I}from"react";import{Checkbox as w,composeRenderProps as p,CheckboxGroup as B}from"react-aria-components";import{useFieldContext as S}from"../utilities/form-context.js";import{classNames as t}from"../utilities/theme.js";import{labelVariants as z,FormField as D,FormFieldLabel as j,FormFieldDescription as G}from"./form.js";import{IcMinus as R,IcCheck as q}from"./icons.js";import"@tanstack/react-form";import"clsx";import"class-variance-authority";import"./card.js";import"@icons-pack/react-simple-icons";const n="group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50",l="group-data-[invalid]/checkbox:border-destructive",x="focus:outline-none focus-visible:outline-none",f="group-data-[selected]/checkbox:bg-primary",$="relative shrink-0 h-6 w-11 rounded-full border border-input bg-surface-primary transition-colors duration-200",K="absolute top-1/2 -translate-y-1/2 left-0.5 h-5 w-5 rounded-full bg-surface-secondary border border-input transition-transform duration-200",L="flex shrink-0 items-center bg-surface-primary rounded-sm justify-center border border-input text-current ring-offset-surface-secondary",T={sm:"size-icon",lg:"size-input"},g={sm:"size-3",lg:"size-icon"},Y=B;function V({className:s,label:r,description:o,errorMessage:u,requiredIndicator:k,variant:v="checkbox",size:i="sm",...m}){const C=I(),c=m.id||C,y=v==="switch",F=!!(r||o||u||k),b=e(w,{className:p(s,h=>t("group/checkbox cursor-pointer relative focus-ring flex items-center gap-x-2 disabled-muted",z,h)),id:c,...m,children:p(e(N,{}),(h,a)=>y?e("div",{className:t($,f,n,l,"group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive",x),children:e("div",{className:t(K,"group-data-[selected]/checkbox:translate-x-4.5",n,l)})}):d("div",{className:t(L,"group-data-[indeterminate]/checkbox:bg-primary",f,"group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground",n,l,"group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground",x,T[i]),children:[a.isIndeterminate&&e(R,{className:g[i]}),!a.isIndeterminate&&a.isSelected&&e(q,{className:g[i]})]}))});return F?e("div",{className:"group form-field",children:e(D,{errorMessage:u,htmlFor:c,children:d("div",{className:"flex items-start gap-1",children:[b,d("div",{className:"flex flex-col gap-1",children:[r&&e(j,{htmlFor:c,children:r}),o&&e(G,{children:o})]})]})})}):e("div",{className:"group flex",children:b})}function Z({...s}){const r=S({disabled:s.isDisabled});return e(V,{requiredIndicator:r.isRequired,isSelected:r.state.value,isDisabled:r.isSubmitting||s.isDisabled,onChange:()=>r.handleChange(!r.state.value),onBlur:r.handleBlur,...s})}export{V as Checkbox,Y as CheckboxGroup,Z as TfCheckbox};
2
- //# sourceMappingURL=checkbox.js.map
1
+ "use client";import{classNames as e}from"../utilities/theme.js";import{at as t,c as n}from"../icons.js";import{useFieldContext as r}from"../utilities/form-context.js";import{FormField as i,FormFieldDescription as a,FormFieldLabel as o,labelVariants as s}from"./form.js";import{useId as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";import{Checkbox as f,CheckboxGroup as p,composeRenderProps as m}from"react-aria-components";var h=`group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50`,g=`group-data-[invalid]/checkbox:border-destructive`,_=`focus:outline-none focus-visible:outline-none`,v=`group-data-[selected]/checkbox:bg-primary`,y=`relative shrink-0 h-6 w-11 rounded-full border border-input bg-surface-primary transition-colors duration-200`,b=`absolute top-1/2 -translate-y-1/2 left-0.5 h-5 w-5 rounded-full bg-surface-secondary border border-input transition-transform duration-200`,x=`flex shrink-0 items-center bg-surface-primary rounded-sm justify-center border border-input text-current ring-offset-surface-secondary`,S={sm:`size-icon`,lg:`size-input`},C={sm:`size-3`,lg:`size-icon`},w=p;function T({className:r,label:p,description:w,errorMessage:T,requiredIndicator:E,variant:D=`checkbox`,size:O=`sm`,...k}){let A=c(),j=k.id||A,M=D===`switch`,N=!!(p||w||T||E),P=u(f,{className:m(r,t=>e(`group/checkbox cursor-pointer relative focus-ring flex items-center gap-x-2 disabled-muted`,s,t)),id:j,...k,children:m(u(l,{}),(r,i)=>M?u(`div`,{className:e(y,v,h,g,`group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive`,_),children:u(`div`,{className:e(b,`group-data-[selected]/checkbox:translate-x-4.5`,h,g)})}):d(`div`,{className:e(x,`group-data-[indeterminate]/checkbox:bg-primary`,v,`group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground`,h,g,`group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground`,_,S[O]),children:[i.isIndeterminate&&u(t,{className:C[O]}),!i.isIndeterminate&&i.isSelected&&u(n,{className:C[O]})]}))});return N?u(`div`,{className:`group form-field`,children:u(i,{errorMessage:T,htmlFor:j,children:d(`div`,{className:`flex items-start gap-1`,children:[P,d(`div`,{className:`flex flex-col gap-1`,children:[p&&u(o,{htmlFor:j,children:p}),w&&u(a,{children:w})]})]})})}):u(`div`,{className:`group flex`,children:P})}function E({...e}){let t=r({disabled:e.isDisabled});return u(T,{requiredIndicator:t.isRequired,isSelected:t.state.value,isDisabled:t.isSubmitting||e.isDisabled,onChange:()=>t.handleChange(!t.state.value),onBlur:t.handleBlur,...e})}export{T as Checkbox,w as CheckboxGroup,E as TfCheckbox};
2
+ //# sourceMappingURL=checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sources":["../../lib/components/checkbox.tsx"],"sourcesContent":["'use client';\nimport { useId } from 'react';\nimport {\n Checkbox as AriaCheckbox,\n CheckboxGroup as AriaCheckboxGroup,\n composeRenderProps,\n type CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components';\n\nimport { useFieldContext } from '../utilities/form-context';\nimport { classNames } from '../utilities/theme';\nimport { FormField, FormFieldLabel, FormFieldDescription, labelVariants, type FormFieldProps } from './form';\nimport { IcCheck, IcMinus } from './icons';\n\nconst disabledClasses = 'group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50';\nconst invalidBorderClasses = 'group-data-[invalid]/checkbox:border-destructive';\nconst focusResetClasses = 'focus:outline-none focus-visible:outline-none';\nconst selectedPrimaryClasses = 'group-data-[selected]/checkbox:bg-primary';\n\nconst switchBaseClasses =\n 'relative shrink-0 h-6 w-11 rounded-full border border-input bg-surface-primary transition-colors duration-200';\nconst switchKnobClasses =\n 'absolute top-1/2 -translate-y-1/2 left-0.5 h-5 w-5 rounded-full bg-surface-secondary border border-input transition-transform duration-200';\n\nconst checkboxBaseClasses =\n 'flex shrink-0 items-center bg-surface-primary rounded-sm justify-center border border-input text-current ring-offset-surface-secondary';\n\nconst sizeClasses = {\n sm: 'size-icon',\n lg: 'size-input',\n};\n\nconst iconSizeClasses = {\n sm: 'size-3',\n lg: 'size-icon',\n};\nexport const CheckboxGroup = AriaCheckboxGroup;\ntype CheckboxProps = AriaCheckboxProps &\n FormFieldProps & {\n variant?: 'checkbox' | 'switch';\n size?: 'sm' | 'lg';\n };\nexport function Checkbox({\n className,\n label,\n description,\n errorMessage,\n requiredIndicator,\n variant = 'checkbox',\n size = 'sm',\n ...props\n}: Omit<CheckboxProps, 'children'>) {\n const generatedId = useId();\n const fieldId = props.id || generatedId;\n const isSwitch = variant === 'switch';\n const hasFormField = !!(label || description || errorMessage || requiredIndicator);\n const checkbox = (\n <AriaCheckbox\n className={composeRenderProps(className, className =>\n classNames(\n 'group/checkbox cursor-pointer relative focus-ring flex items-center gap-x-2 disabled-muted',\n labelVariants,\n className\n )\n )}\n id={fieldId}\n {...props}\n >\n {composeRenderProps(<></>, (_, renderProps) => {\n if (isSwitch) {\n return (\n <div\n className={classNames(\n switchBaseClasses,\n selectedPrimaryClasses,\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive',\n focusResetClasses\n )}\n >\n <div\n className={classNames(\n switchKnobClasses,\n 'group-data-[selected]/checkbox:translate-x-4.5',\n disabledClasses,\n invalidBorderClasses\n )}\n />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\n checkboxBaseClasses,\n 'group-data-[indeterminate]/checkbox:bg-primary',\n selectedPrimaryClasses,\n 'group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground',\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground',\n focusResetClasses,\n sizeClasses[size]\n )}\n >\n {renderProps.isIndeterminate && <IcMinus className={iconSizeClasses[size]} />}\n {!renderProps.isIndeterminate && renderProps.isSelected && (\n <IcCheck className={iconSizeClasses[size]} />\n )}\n </div>\n );\n })}\n </AriaCheckbox>\n );\n if (!hasFormField) return <div className=\"group flex\">{checkbox}</div>;\n return (\n <div className=\"group form-field\">\n <FormField {...{ errorMessage, htmlFor: fieldId }}>\n <div className=\"flex items-start gap-1\">\n {checkbox}\n <div className=\"flex flex-col gap-1\">\n {label && <FormFieldLabel htmlFor={fieldId}>{label}</FormFieldLabel>}\n {description && <FormFieldDescription>{description}</FormFieldDescription>}\n </div>\n </div>\n </FormField>\n </div>\n );\n}\n\nexport type TfCheckboxProps = Omit<React.ComponentProps<typeof Checkbox>, 'onChange' | 'onBlur' | 'isChecked'>;\nexport function TfCheckbox({ ...props }: TfCheckboxProps) {\n const field = useFieldContext<boolean>({ disabled: props.isDisabled });\n return (\n <Checkbox\n requiredIndicator={field.isRequired}\n isSelected={field.state.value}\n isDisabled={field.isSubmitting || props.isDisabled}\n onChange={() => field.handleChange(!field.state.value)}\n onBlur={field.handleBlur}\n {...props}\n />\n );\n}\n"],"names":["disabledClasses","invalidBorderClasses","focusResetClasses","selectedPrimaryClasses","switchBaseClasses","switchKnobClasses","checkboxBaseClasses","sizeClasses","iconSizeClasses","CheckboxGroup","AriaCheckboxGroup","Checkbox","className","label","description","errorMessage","requiredIndicator","variant","size","props","generatedId","useId","fieldId","isSwitch","hasFormField","checkbox","jsx","AriaCheckbox","composeRenderProps","classNames","labelVariants","Fragment","_","renderProps","jsxs","IcMinus","IcCheck","FormField","FormFieldLabel","FormFieldDescription","TfCheckbox","field","useFieldContext"],"mappings":"slBAcA,MAAMA,EAAkB,8FAClBC,EAAuB,mDACvBC,EAAoB,gDACpBC,EAAyB,4CAEzBC,EACF,gHACEC,EACF,6IAEEC,EACF,yIAEEC,EAAc,CAChB,GAAI,YACJ,GAAI,YACR,EAEMC,EAAkB,CACpB,GAAI,SACJ,GAAI,WACR,EACaC,EAAgBC,EAMtB,SAASC,EAAS,CACrB,UAAAC,EACA,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,QAAAC,EAAU,WACV,KAAAC,EAAO,KACP,GAAGC,CACP,EAAoC,CAChC,MAAMC,EAAcC,EAAA,EACdC,EAAUH,EAAM,IAAMC,EACtBG,EAAWN,IAAY,SACvBO,EAAe,CAAC,EAAEX,GAASC,GAAeC,GAAgBC,GAC1DS,EACFC,EAACC,EAAA,CACG,UAAWC,EAAmBhB,EAAWA,GACrCiB,EACI,6FACAC,EACAlB,CAAA,CACJ,EAEJ,GAAIU,EACH,GAAGH,EAEH,SAAAS,EAAmBF,EAAAK,EAAA,CAAA,CAAE,EAAK,CAACC,EAAGC,IACvBV,EAEIG,EAAC,MAAA,CACG,UAAWG,EACPzB,EACAD,EACAH,EACAC,EACA,8EACAC,CAAA,EAGJ,SAAAwB,EAAC,MAAA,CACG,UAAWG,EACPxB,EACA,iDACAL,EACAC,CAAA,CACJ,CAAA,CACJ,CAAA,EAMRiC,EAAC,MAAA,CACG,UAAWL,EACPvB,EACA,iDACAH,EACA,qHACAH,EACAC,EACA,uKACAC,EACAK,EAAYW,CAAI,CAAA,EAGnB,SAAA,CAAAe,EAAY,iBAAmBP,EAACS,EAAA,CAAQ,UAAW3B,EAAgBU,CAAI,EAAG,EAC1E,CAACe,EAAY,iBAAmBA,EAAY,cACxCG,EAAA,CAAQ,UAAW5B,EAAgBU,CAAI,CAAA,CAAG,CAAA,CAAA,CAAA,CAI1D,CAAA,CAAA,EAGT,OAAKM,EAEDE,EAAC,MAAA,CAAI,UAAU,mBACX,WAACW,EAAA,CAAgB,aAAAtB,EAAc,QAASO,EACpC,SAAAY,EAAC,MAAA,CAAI,UAAU,yBACV,SAAA,CAAAT,EACDS,EAAC,MAAA,CAAI,UAAU,sBACV,SAAA,CAAArB,GAASa,EAACY,EAAA,CAAe,QAAShB,EAAU,SAAAT,EAAM,EAClDC,GAAeY,EAACa,EAAA,CAAsB,SAAAzB,CAAA,CAAY,CAAA,CAAA,CACvD,CAAA,CAAA,CACJ,EACJ,EACJ,IAZuB,MAAA,CAAI,UAAU,aAAc,SAAAW,EAAS,CAcpE,CAGO,SAASe,EAAW,CAAE,GAAGrB,GAA0B,CACtD,MAAMsB,EAAQC,EAAyB,CAAE,SAAUvB,EAAM,WAAY,EACrE,OACIO,EAACf,EAAA,CACG,kBAAmB8B,EAAM,WACzB,WAAYA,EAAM,MAAM,MACxB,WAAYA,EAAM,cAAgBtB,EAAM,WACxC,SAAU,IAAMsB,EAAM,aAAa,CAACA,EAAM,MAAM,KAAK,EACrD,OAAQA,EAAM,WACb,GAAGtB,CAAA,CAAA,CAGhB"}
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../../lib/components/checkbox.tsx"],"sourcesContent":["'use client';\nimport { useId } from 'react';\nimport {\n Checkbox as AriaCheckbox,\n CheckboxGroup as AriaCheckboxGroup,\n composeRenderProps,\n type CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components';\n\nimport { useFieldContext } from '../utilities/form-context';\nimport { classNames } from '../utilities/theme';\nimport { FormField, FormFieldLabel, FormFieldDescription, labelVariants, type FormFieldProps } from './form';\nimport { IcCheck, IcMinus } from './icons';\n\nconst disabledClasses = 'group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50';\nconst invalidBorderClasses = 'group-data-[invalid]/checkbox:border-destructive';\nconst focusResetClasses = 'focus:outline-none focus-visible:outline-none';\nconst selectedPrimaryClasses = 'group-data-[selected]/checkbox:bg-primary';\n\nconst switchBaseClasses =\n 'relative shrink-0 h-6 w-11 rounded-full border border-input bg-surface-primary transition-colors duration-200';\nconst switchKnobClasses =\n 'absolute top-1/2 -translate-y-1/2 left-0.5 h-5 w-5 rounded-full bg-surface-secondary border border-input transition-transform duration-200';\n\nconst checkboxBaseClasses =\n 'flex shrink-0 items-center bg-surface-primary rounded-sm justify-center border border-input text-current ring-offset-surface-secondary';\n\nconst sizeClasses = {\n sm: 'size-icon',\n lg: 'size-input',\n};\n\nconst iconSizeClasses = {\n sm: 'size-3',\n lg: 'size-icon',\n};\nexport const CheckboxGroup = AriaCheckboxGroup;\ntype CheckboxProps = AriaCheckboxProps &\n FormFieldProps & {\n variant?: 'checkbox' | 'switch';\n size?: 'sm' | 'lg';\n };\nexport function Checkbox({\n className,\n label,\n description,\n errorMessage,\n requiredIndicator,\n variant = 'checkbox',\n size = 'sm',\n ...props\n}: Omit<CheckboxProps, 'children'>) {\n const generatedId = useId();\n const fieldId = props.id || generatedId;\n const isSwitch = variant === 'switch';\n const hasFormField = !!(label || description || errorMessage || requiredIndicator);\n const checkbox = (\n <AriaCheckbox\n className={composeRenderProps(className, className =>\n classNames(\n 'group/checkbox cursor-pointer relative focus-ring flex items-center gap-x-2 disabled-muted',\n labelVariants,\n className\n )\n )}\n id={fieldId}\n {...props}\n >\n {composeRenderProps(<></>, (_, renderProps) => {\n if (isSwitch) {\n return (\n <div\n className={classNames(\n switchBaseClasses,\n selectedPrimaryClasses,\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive',\n focusResetClasses\n )}\n >\n <div\n className={classNames(\n switchKnobClasses,\n 'group-data-[selected]/checkbox:translate-x-4.5',\n disabledClasses,\n invalidBorderClasses\n )}\n />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\n checkboxBaseClasses,\n 'group-data-[indeterminate]/checkbox:bg-primary',\n selectedPrimaryClasses,\n 'group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground',\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground',\n focusResetClasses,\n sizeClasses[size]\n )}\n >\n {renderProps.isIndeterminate && <IcMinus className={iconSizeClasses[size]} />}\n {!renderProps.isIndeterminate && renderProps.isSelected && (\n <IcCheck className={iconSizeClasses[size]} />\n )}\n </div>\n );\n })}\n </AriaCheckbox>\n );\n if (!hasFormField) return <div className=\"group flex\">{checkbox}</div>;\n return (\n <div className=\"group form-field\">\n <FormField {...{ errorMessage, htmlFor: fieldId }}>\n <div className=\"flex items-start gap-1\">\n {checkbox}\n <div className=\"flex flex-col gap-1\">\n {label && <FormFieldLabel htmlFor={fieldId}>{label}</FormFieldLabel>}\n {description && <FormFieldDescription>{description}</FormFieldDescription>}\n </div>\n </div>\n </FormField>\n </div>\n );\n}\n\nexport type TfCheckboxProps = Omit<React.ComponentProps<typeof Checkbox>, 'onChange' | 'onBlur' | 'isChecked'>;\nexport function TfCheckbox({ ...props }: TfCheckboxProps) {\n const field = useFieldContext<boolean>({ disabled: props.isDisabled });\n return (\n <Checkbox\n requiredIndicator={field.isRequired}\n isSelected={field.state.value}\n isDisabled={field.isSubmitting || props.isDisabled}\n onChange={() => field.handleChange(!field.state.value)}\n onBlur={field.handleBlur}\n {...props}\n />\n );\n}\n"],"mappings":"wcAcA,IAAM,EAAkB,8FAClB,EAAuB,mDACvB,EAAoB,gDACpB,EAAyB,4CAEzB,EACF,gHACE,EACF,6IAEE,EACF,yIAEE,EAAc,CAChB,GAAI,YACJ,GAAI,YACR,EAEM,EAAkB,CACpB,GAAI,SACJ,GAAI,WACR,EACa,EAAgB,EAM7B,SAAgB,EAAS,CACrB,YACA,QACA,cACA,eACA,oBACA,UAAU,WACV,OAAO,KACP,GAAG,GAC6B,CAChC,IAAM,EAAc,EAAM,EACpB,EAAU,EAAM,IAAM,EACtB,EAAW,IAAY,SACvB,EAAe,CAAC,EAAE,GAAS,GAAe,GAAgB,GAC1D,EACF,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GACrC,EACI,6FACA,EACA,CACJ,CACJ,EACA,GAAI,EACJ,GAAI,EAEH,SAAA,EAAmB,EAAA,EAAA,CAAI,CAAA,GAAI,EAAG,IACvB,EAEI,EAAC,MAAD,CACI,UAAW,EACP,EACA,EACA,EACA,EACA,8EACA,CACJ,EAEA,SAAA,EAAC,MAAD,CACI,UAAW,EACP,EACA,iDACA,EACA,CACJ,CACH,CAAA,CACA,CAAA,EAKT,EAAC,MAAD,CACI,UAAW,EACP,EACA,iDACA,EACA,qHACA,EACA,EACA,uKACA,EACA,EAAY,EAChB,EAXJ,SAAA,CAaK,EAAY,iBAAmB,EAAC,EAAD,CAAS,UAAW,EAAgB,EAAQ,CAAA,EAC3E,CAAC,EAAY,iBAAmB,EAAY,YACzC,EAAC,EAAD,CAAS,UAAW,EAAgB,EAAQ,CAAA,CAE/C,GAEZ,CACS,CAAA,EAGlB,OADK,EAED,EAAC,MAAD,CAAK,UAAU,mBACX,SAAA,EAAC,EAAD,CAAiB,eAAc,QAAS,EACpC,SAAA,EAAC,MAAD,CAAK,UAAU,yBAAf,SAAA,CACK,EACD,EAAC,MAAD,CAAK,UAAU,sBAAf,SAAA,CACK,GAAS,EAAC,EAAD,CAAgB,QAAS,EAAU,SAAA,CAAsB,CAAA,EAClE,GAAe,EAAC,EAAD,CAAA,SAAuB,CAAkC,CAAA,CACxE,CACJ,CAAA,CAAA,GACE,CAAA,CACV,CAAA,EAZiB,EAAC,MAAD,CAAK,UAAU,aAAc,SAAA,CAAc,CAAA,CAczE,CAGA,SAAgB,EAAW,CAAE,GAAG,GAA0B,CACtD,IAAM,EAAQ,EAAyB,CAAE,SAAU,EAAM,UAAW,CAAC,EACrE,OACI,EAAC,EAAD,CACI,kBAAmB,EAAM,WACzB,WAAY,EAAM,MAAM,MACxB,WAAY,EAAM,cAAgB,EAAM,WACxC,aAAgB,EAAM,aAAa,CAAC,EAAM,MAAM,KAAK,EACrD,OAAQ,EAAM,WACd,GAAI,CACP,CAAA,CAET"}
@@ -5,4 +5,4 @@ export interface CodeBlockProps extends React.ComponentProps<'div'> {
5
5
  copyText?: string;
6
6
  variant?: 'inline' | 'block';
7
7
  }
8
- export declare function CodeBlock({ code, fileName, copyText, variant, className, ...props }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function CodeBlock({ code, fileName, copyText, variant, className, ...props }: CodeBlockProps): React.JSX.Element;
@@ -1,2 +1,2 @@
1
- import{jsxs as i,jsx as e}from"react/jsx-runtime";import{classNames as l}from"../utilities/theme.js";import{CopyButton as m}from"./copy-button.js";import"clsx";import"react";import"./button.js";import"class-variance-authority";import"react-aria-components";import"./loader.js";import"./icons.js";import"@icons-pack/react-simple-icons";import"./toast.js";import"react-dom";import"./alert.js";function B({code:s,fileName:t,copyText:r,variant:o="block",className:a,...n}){const d=!!t||o==="block"&&!!r;return i("div",{className:l("rounded-md border border-border bg-surface-primary text-sm max-h-[90vh]",a),...n,children:[d&&i("div",{className:l("flex justify-between text-muted body-sm p-icon border-b border-border"),children:[e("div",{className:"min-w-0 h-full flex items-center",children:t}),o==="block"&&r&&e("div",{className:"flex items-start",children:e(m,{label:null,textToCopy:r,variant:"ghost",size:"icon-sm","aria-label":"Copy code"})})]}),i("div",{className:"relative flex items-center",children:[o==="inline"&&r&&e("div",{className:"absolute top-0 right-0 rounded-md flex items-start pt-icon pl-14 pr-icon bg-gradient-to-r from-transparent via-surface-primary to-surface-primary",children:e(m,{label:null,textToCopy:r,variant:"ghost",size:"icon-sm","aria-label":"Copy code"})}),e("pre",{className:l("flex p-icon overflow-auto w-full max-h-96",o==="inline"&&r&&"pr-20"),children:e("code",{dangerouslySetInnerHTML:{__html:s}})})]})]})}export{B as CodeBlock};
2
- //# sourceMappingURL=code-block.js.map
1
+ import{classNames as e}from"../utilities/theme.js";import{CopyButton as t}from"./copy-button.js";import"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({code:i,fileName:a,copyText:o,variant:s=`block`,className:c,...l}){let u=!!a||s===`block`&&!!o;return r(`div`,{className:e(`rounded-md border border-border bg-surface-primary text-sm max-h-[90vh]`,c),...l,children:[u&&r(`div`,{className:e(`flex justify-between text-muted body-sm p-icon border-b border-border`),children:[n(`div`,{className:`min-w-0 h-full flex items-center`,children:a}),s===`block`&&o&&n(`div`,{className:`flex items-start`,children:n(t,{label:null,textToCopy:o,variant:`ghost`,size:`icon-sm`,"aria-label":`Copy code`})})]}),r(`div`,{className:`relative flex items-center`,children:[s===`inline`&&o&&n(`div`,{className:`absolute top-0 right-0 rounded-md flex items-start pt-icon pl-14 pr-icon bg-gradient-to-r from-transparent via-surface-primary to-surface-primary`,children:n(t,{label:null,textToCopy:o,variant:`ghost`,size:`icon-sm`,"aria-label":`Copy code`})}),n(`pre`,{className:e(`flex p-icon overflow-auto w-full max-h-96`,s===`inline`&&o&&`pr-20`),children:n(`code`,{dangerouslySetInnerHTML:{__html:i}})})]})]})}export{i as CodeBlock};
2
+ //# sourceMappingURL=code-block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.js","sources":["../../lib/components/code-block.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '../utilities/theme';\nimport { CopyButton } from './copy-button';\n\nexport interface CodeBlockProps extends React.ComponentProps<'div'> {\n code: string;\n fileName?: string | React.ReactNode;\n copyText?: string;\n variant?: 'inline' | 'block';\n}\n\nexport function CodeBlock({ code, fileName, copyText, variant = 'block', className, ...props }: CodeBlockProps) {\n const showHeader = Boolean(fileName) || (variant === 'block' && Boolean(copyText));\n\n return (\n <div\n className={classNames('rounded-md border border-border bg-surface-primary text-sm max-h-[90vh]', className)}\n {...props}\n >\n {showHeader && (\n <div className={classNames('flex justify-between text-muted body-sm p-icon border-b border-border')}>\n <div className=\"min-w-0 h-full flex items-center\">{fileName}</div>\n {variant === 'block' && copyText && (\n <div className=\"flex items-start\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n </div>\n )}\n\n <div className=\"relative flex items-center\">\n {variant === 'inline' && copyText && (\n <div className=\"absolute top-0 right-0 rounded-md flex items-start pt-icon pl-14 pr-icon bg-gradient-to-r from-transparent via-surface-primary to-surface-primary\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n <pre\n className={classNames(\n 'flex p-icon overflow-auto w-full max-h-96',\n variant === 'inline' && copyText && 'pr-20'\n )}\n >\n <code dangerouslySetInnerHTML={{ __html: code }} />\n </pre>\n </div>\n </div>\n );\n}\n"],"names":["CodeBlock","code","fileName","copyText","variant","className","props","showHeader","jsxs","classNames","jsx","CopyButton"],"mappings":"uYAWO,SAASA,EAAU,CAAE,KAAAC,EAAM,SAAAC,EAAU,SAAAC,EAAU,QAAAC,EAAU,QAAS,UAAAC,EAAW,GAAGC,GAAyB,CAC5G,MAAMC,EAAa,EAAQL,GAAcE,IAAY,SAAW,EAAQD,EAExE,OACIK,EAAC,MAAA,CACG,UAAWC,EAAW,0EAA2EJ,CAAS,EACzG,GAAGC,EAEH,SAAA,CAAAC,GACGC,EAAC,MAAA,CAAI,UAAWC,EAAW,uEAAuE,EAC9F,SAAA,CAAAC,EAAC,MAAA,CAAI,UAAU,mCAAoC,SAAAR,EAAS,EAC3DE,IAAY,SAAWD,GACpBO,EAAC,MAAA,CAAI,UAAU,mBACX,SAAAA,EAACC,EAAA,CACG,MAAO,KACP,WAAYR,EACZ,QAAQ,QACR,KAAK,UACL,aAAW,WAAA,CAAA,CACf,CACJ,CAAA,EAER,EAGJK,EAAC,MAAA,CAAI,UAAU,6BACV,SAAA,CAAAJ,IAAY,UAAYD,GACrBO,EAAC,MAAA,CAAI,UAAU,oJACX,SAAAA,EAACC,EAAA,CACG,MAAO,KACP,WAAYR,EACZ,QAAQ,QACR,KAAK,UACL,aAAW,WAAA,CAAA,EAEnB,EAEJO,EAAC,MAAA,CACG,UAAWD,EACP,4CACAL,IAAY,UAAYD,GAAY,OAAA,EAGxC,WAAC,OAAA,CAAK,wBAAyB,CAAE,OAAQF,EAAK,CAAG,CAAA,CAAA,CACrD,CAAA,CACJ,CAAA,CAAA,CAAA,CAGZ"}
1
+ {"version":3,"file":"code-block.js","names":[],"sources":["../../lib/components/code-block.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '../utilities/theme';\nimport { CopyButton } from './copy-button';\n\nexport interface CodeBlockProps extends React.ComponentProps<'div'> {\n code: string;\n fileName?: string | React.ReactNode;\n copyText?: string;\n variant?: 'inline' | 'block';\n}\n\nexport function CodeBlock({ code, fileName, copyText, variant = 'block', className, ...props }: CodeBlockProps) {\n const showHeader = Boolean(fileName) || (variant === 'block' && Boolean(copyText));\n\n return (\n <div\n className={classNames('rounded-md border border-border bg-surface-primary text-sm max-h-[90vh]', className)}\n {...props}\n >\n {showHeader && (\n <div className={classNames('flex justify-between text-muted body-sm p-icon border-b border-border')}>\n <div className=\"min-w-0 h-full flex items-center\">{fileName}</div>\n {variant === 'block' && copyText && (\n <div className=\"flex items-start\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n </div>\n )}\n\n <div className=\"relative flex items-center\">\n {variant === 'inline' && copyText && (\n <div className=\"absolute top-0 right-0 rounded-md flex items-start pt-icon pl-14 pr-icon bg-gradient-to-r from-transparent via-surface-primary to-surface-primary\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n <pre\n className={classNames(\n 'flex p-icon overflow-auto w-full max-h-96',\n variant === 'inline' && copyText && 'pr-20'\n )}\n >\n <code dangerouslySetInnerHTML={{ __html: code }} />\n </pre>\n </div>\n </div>\n );\n}\n"],"mappings":"iKAWA,SAAgB,EAAU,CAAE,OAAM,WAAU,WAAU,UAAU,QAAS,YAAW,GAAG,GAAyB,CAC5G,IAAM,EAAa,EAAQ,GAAc,IAAY,SAAW,EAAQ,EAExE,OACI,EAAC,MAAD,CACI,UAAW,EAAW,0EAA2E,CAAS,EAC1G,GAAI,EAFR,SAAA,CAIK,GACG,EAAC,MAAD,CAAK,UAAW,EAAW,uEAAuE,EAAlG,SAAA,CACI,EAAC,MAAD,CAAK,UAAU,mCAAoC,SAAA,CAAc,CAAA,EAChE,IAAY,SAAW,GACpB,EAAC,MAAD,CAAK,UAAU,mBACX,SAAA,EAAC,EAAD,CACI,MAAO,KACP,WAAY,EACZ,QAAQ,QACR,KAAK,UACL,aAAW,WACd,CAAA,CACA,CAAA,CAER,CAGT,CAAA,EAAA,EAAC,MAAD,CAAK,UAAU,6BAAf,SAAA,CACK,IAAY,UAAY,GACrB,EAAC,MAAD,CAAK,UAAU,oJACX,SAAA,EAAC,EAAD,CACI,MAAO,KACP,WAAY,EACZ,QAAQ,QACR,KAAK,UACL,aAAW,WACd,CAAA,CACA,CAAA,EAET,EAAC,MAAD,CACI,UAAW,EACP,4CACA,IAAY,UAAY,GAAY,OACxC,EAEA,SAAA,EAAC,OAAD,CAAM,wBAAyB,CAAE,OAAQ,CAAK,CAAI,CAAA,CACjD,CAAA,CACJ,CACJ,CAAA,CAAA,GAEb"}
@@ -4,4 +4,4 @@ export type CopyButtonProps = Omit<ButtonProps, 'children' | 'ref' | 'active'> &
4
4
  label: ReactNode;
5
5
  textToCopy: string | number | Record<string, unknown>;
6
6
  };
7
- export declare function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- "use client";import{jsxs as p,jsx as o}from"react/jsx-runtime";import{useState as n}from"react";import{Button as l}from"./button.js";import{IcCheck as f,IcCopy as u}from"./icons.js";import{toast as e}from"./toast.js";import{classNames as d}from"../utilities/theme.js";import"class-variance-authority";import"react-aria-components";import"./loader.js";import"@icons-pack/react-simple-icons";import"react-dom";import"./alert.js";import"clsx";function k({label:i,textToCopy:t,className:s,...a}){const[c,r]=n(!1);return p(l,{...a,onPress:async()=>{if(t)try{const m=typeof t=="object"?JSON.stringify(t):String(t);await navigator.clipboard.writeText(m),e({title:"Copied to clipboard",variant:"success"}),r(!0),setTimeout(()=>{r(!1)},3e3)}catch{e({title:"Failed to copy to clipboard",variant:"destructive"})}},className:d("gap-2",s),children:[c?o(f,{className:"text-success"}):o(u,{}),i]})}export{k as CopyButton};
2
- //# sourceMappingURL=copy-button.js.map
1
+ "use client";import{classNames as e}from"../utilities/theme.js";import{c as t,p as n}from"../icons.js";import{Button as r}from"./button.js";import{toast as i}from"./toast.js";import{useState as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c({label:c,textToCopy:l,className:u,...d}){let[f,p]=a(!1),m=async()=>{if(l)try{let e=typeof l==`object`?JSON.stringify(l):String(l);await navigator.clipboard.writeText(e),i({title:`Copied to clipboard`,variant:`success`}),p(!0),setTimeout(()=>{p(!1)},3e3)}catch{i({title:`Failed to copy to clipboard`,variant:`destructive`})}};return s(r,{...d,onPress:m,className:e(`gap-2`,u),children:[f?o(t,{className:`text-success`}):o(n,{}),c]})}export{c as CopyButton};
2
+ //# sourceMappingURL=copy-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button.js","sources":["../../lib/components/copy-button.tsx"],"sourcesContent":["'use client';\n\nimport { useState, type ReactNode } from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { IcCheck, IcCopy } from './icons';\nimport { toast } from './toast';\nimport { classNames } from '../utilities/theme';\n\nexport type CopyButtonProps = Omit<ButtonProps, 'children' | 'ref' | 'active'> & {\n label: ReactNode;\n textToCopy: string | number | Record<string, unknown>;\n};\n\nexport function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps) {\n const [isCopied, setIsCopied] = useState(false);\n const handlePress = async () => {\n if (!textToCopy) return;\n try {\n const text = typeof textToCopy === 'object' ? JSON.stringify(textToCopy) : String(textToCopy);\n await navigator.clipboard.writeText(text);\n toast({\n title: 'Copied to clipboard',\n variant: 'success',\n });\n setIsCopied(true);\n setTimeout(() => {\n setIsCopied(false);\n }, 3000);\n } catch {\n toast({\n title: 'Failed to copy to clipboard',\n variant: 'destructive',\n });\n }\n };\n\n return (\n <Button {...props} onPress={handlePress} className={classNames('gap-2', className)}>\n {isCopied ? <IcCheck className=\"text-success\" /> : <IcCopy />}\n {label}\n </Button>\n );\n}\n"],"names":["CopyButton","label","textToCopy","className","props","isCopied","setIsCopied","useState","jsxs","Button","text","toast","classNames","IcCheck","IcCopy"],"mappings":"wbAaO,SAASA,EAAW,CAAE,MAAAC,EAAO,WAAAC,EAAY,UAAAC,EAAW,GAAGC,GAA0B,CACpF,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAS,EAAK,EAsB9C,OACIC,EAACC,EAAA,CAAQ,GAAGL,EAAO,QAtBH,SAAY,CAC5B,GAAKF,EACL,GAAI,CACA,MAAMQ,EAAO,OAAOR,GAAe,SAAW,KAAK,UAAUA,CAAU,EAAI,OAAOA,CAAU,EAC5F,MAAM,UAAU,UAAU,UAAUQ,CAAI,EACxCC,EAAM,CACF,MAAO,sBACP,QAAS,SAAA,CACZ,EACDL,EAAY,EAAI,EAChB,WAAW,IAAM,CACbA,EAAY,EAAK,CACrB,EAAG,GAAI,CACX,MAAQ,CACJK,EAAM,CACF,MAAO,8BACP,QAAS,aAAA,CACZ,CACL,CACJ,EAG6C,UAAWC,EAAW,QAAST,CAAS,EAC5E,SAAA,CAAAE,IAAYQ,EAAA,CAAQ,UAAU,cAAA,CAAe,IAAMC,EAAA,EAAO,EAC1Db,CAAA,EACL,CAER"}
1
+ {"version":3,"file":"copy-button.js","names":[],"sources":["../../lib/components/copy-button.tsx"],"sourcesContent":["'use client';\n\nimport { useState, type ReactNode } from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { IcCheck, IcCopy } from './icons';\nimport { toast } from './toast';\nimport { classNames } from '../utilities/theme';\n\nexport type CopyButtonProps = Omit<ButtonProps, 'children' | 'ref' | 'active'> & {\n label: ReactNode;\n textToCopy: string | number | Record<string, unknown>;\n};\n\nexport function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps) {\n const [isCopied, setIsCopied] = useState(false);\n const handlePress = async () => {\n if (!textToCopy) return;\n try {\n const text = typeof textToCopy === 'object' ? JSON.stringify(textToCopy) : String(textToCopy);\n await navigator.clipboard.writeText(text);\n toast({\n title: 'Copied to clipboard',\n variant: 'success',\n });\n setIsCopied(true);\n setTimeout(() => {\n setIsCopied(false);\n }, 3000);\n } catch {\n toast({\n title: 'Failed to copy to clipboard',\n variant: 'destructive',\n });\n }\n };\n\n return (\n <Button {...props} onPress={handlePress} className={classNames('gap-2', className)}>\n {isCopied ? <IcCheck className=\"text-success\" /> : <IcCopy />}\n {label}\n </Button>\n );\n}\n"],"mappings":"kQAaA,SAAgB,EAAW,CAAE,QAAO,aAAY,YAAW,GAAG,GAA0B,CACpF,GAAM,CAAC,EAAU,GAAe,EAAS,EAAK,EACxC,EAAc,SAAY,CACvB,KACL,GAAI,CACA,IAAM,EAAO,OAAO,GAAe,SAAW,KAAK,UAAU,CAAU,EAAI,OAAO,CAAU,EAC5F,MAAM,UAAU,UAAU,UAAU,CAAI,EACxC,EAAM,CACF,MAAO,sBACP,QAAS,SACb,CAAC,EACD,EAAY,EAAI,EAChB,eAAiB,CACb,EAAY,EAAK,CACrB,EAAG,GAAI,CACX,MAAQ,CACJ,EAAM,CACF,MAAO,8BACP,QAAS,aACb,CAAC,CACL,CACJ,EAEA,OACI,EAAC,EAAD,CAAQ,GAAI,EAAO,QAAS,EAAa,UAAW,EAAW,QAAS,CAAS,EAAjF,SAAA,CACK,EAAW,EAAC,EAAD,CAAS,UAAU,cAAgB,CAAA,EAAI,EAAC,EAAD,CAAS,CAAA,EAC3D,CACG,GAEhB"}
@@ -65,5 +65,5 @@ export type FiltersConfig<TOperation extends keyof operations> = [keyof ApiFilte
65
65
  export declare function DataTableFilter({ className, previewFilters, ...props }: React.ComponentProps<'section'> & {
66
66
  /** Keys from filterConfig to show as filter chips on mount, not applied until the user edits them. */
67
67
  previewFilters?: string[];
68
- }): import("react/jsx-runtime").JSX.Element;
68
+ }): import("react").JSX.Element;
69
69
  export {};
@@ -1,2 +1 @@
1
- import"react/jsx-runtime";import"@internationalized/date";import"react";import"react-aria-components";import"./button.js";import{C as tr,D as or,F as ir}from"./data-table.js";import"./date-picker.js";import"./menu.js";import"./multi-select.js";import"./numberfield.js";import"./popover.js";import"./select.js";import"./textfield.js";import"../utilities/date.js";import"../utilities/resources.js";import"../utilities/theme.js";import"./dialog.js";import"./icons.js";import"./id-search.js";import"../utilities/use-mobile.js";import"class-variance-authority";import"./loader.js";import"clsx";import"@icons-pack/react-simple-icons";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@dnd-kit/utilities";import"@tanstack/react-query";import"@tanstack/react-table";import"@uidotdev/usehooks";import"lodash-es";import"./badge.js";import"./searchfield.js";import"./form.js";import"./card.js";import"./table.js";import"../utilities/countries.js";import"./select-options.js";import"../utilities/string.js";import"../utilities/duration.js";import"../utilities/numbers.js";import"./checkbox.js";import"../utilities/form-context.js";import"@tanstack/react-form";import"./tooltip.js";import"../utilities/ctx-client.js";import"./progress-bar.js";import"./tag-group.js";import"./calendar.js";import"./datefield.js";import"../utilities/form.js";import"./list-box.js";import"./kbd.js";import"../utilities/empty-option.js";export{tr as COMPARISON_OPERATOR_LABELS,or as DataTableFilter,ir as FILTER_COMPARISON_OPERATORS};
2
- //# sourceMappingURL=data-table-filter.js.map
1
+ import"../utilities/date.js";import"../utilities/use-mobile.js";import"./dialog.js";import{n as e,r as t,t as n}from"../data-table-filter.js";export{n as COMPARISON_OPERATOR_LABELS,e as DataTableFilter,t as FILTER_COMPARISON_OPERATORS};
@@ -122,11 +122,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
122
122
  isStale: boolean;
123
123
  isEnabled: boolean;
124
124
  fetchStatus: import('@tanstack/react-query').FetchStatus;
125
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
126
- data: T[];
127
- total: number;
128
- nextPage: number;
129
- }, unknown>>;
130
125
  } | {
131
126
  data: {
132
127
  data: T[];
@@ -176,11 +171,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
176
171
  isStale: boolean;
177
172
  isEnabled: boolean;
178
173
  fetchStatus: import('@tanstack/react-query').FetchStatus;
179
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
180
- data: T[];
181
- total: number;
182
- nextPage: number;
183
- }, unknown>>;
184
174
  } | {
185
175
  data: {
186
176
  data: T[];
@@ -230,11 +220,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
230
220
  isStale: boolean;
231
221
  isEnabled: boolean;
232
222
  fetchStatus: import('@tanstack/react-query').FetchStatus;
233
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
234
- data: T[];
235
- total: number;
236
- nextPage: number;
237
- }, unknown>>;
238
223
  } | {
239
224
  data: {
240
225
  data: T[];
@@ -284,11 +269,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
284
269
  isStale: boolean;
285
270
  isEnabled: boolean;
286
271
  fetchStatus: import('@tanstack/react-query').FetchStatus;
287
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
288
- data: T[];
289
- total: number;
290
- nextPage: number;
291
- }, unknown>>;
292
272
  } | {
293
273
  data: {
294
274
  data: T[];
@@ -338,11 +318,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
338
318
  isStale: boolean;
339
319
  isEnabled: boolean;
340
320
  fetchStatus: import('@tanstack/react-query').FetchStatus;
341
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
342
- data: T[];
343
- total: number;
344
- nextPage: number;
345
- }, unknown>>;
346
321
  };
347
322
  readonly setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
348
323
  readonly searchQuery: string;
@@ -354,8 +329,8 @@ export declare function useDataTableState<T extends object, TOperation extends k
354
329
  readonly tableActions: TableAction<T>[];
355
330
  readonly pathParameters: NoInfer<ApiPathParameters<TOperation>> | undefined;
356
331
  readonly queryParameters: NoInfer<Partial<ApiFilter<TOperation>>> | undefined;
357
- readonly viewMode: "card" | "table";
358
- readonly setViewMode: React.Dispatch<React.SetStateAction<"card" | "table">>;
332
+ readonly viewMode: "table" | "card";
333
+ readonly setViewMode: React.Dispatch<React.SetStateAction<"table" | "card">>;
359
334
  readonly Card: CardRenderer<T> | undefined;
360
335
  readonly allowSelection: boolean;
361
336
  readonly allowToolbar: boolean;
@@ -368,7 +343,7 @@ export declare function useDataTableState<T extends object, TOperation extends k
368
343
  readonly disableTableView: boolean | undefined;
369
344
  readonly hideViewToggle: boolean | undefined;
370
345
  readonly onRowNavigate: ((row: T) => void) | undefined;
371
- readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "address" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
346
+ readonly resourceName: "role" | "address" | "access-token" | "account" | "activation" | "activation-log" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
372
347
  };
373
348
  export declare const DataTableContext: React.Context<{
374
349
  readonly tableState: DataTableState;
@@ -442,11 +417,6 @@ export declare const DataTableContext: React.Context<{
442
417
  isStale: boolean;
443
418
  isEnabled: boolean;
444
419
  fetchStatus: import('@tanstack/react-query').FetchStatus;
445
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
446
- data: object[];
447
- total: number;
448
- nextPage: number;
449
- }, unknown>>;
450
420
  } | {
451
421
  data: {
452
422
  data: object[];
@@ -496,11 +466,6 @@ export declare const DataTableContext: React.Context<{
496
466
  isStale: boolean;
497
467
  isEnabled: boolean;
498
468
  fetchStatus: import('@tanstack/react-query').FetchStatus;
499
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
500
- data: object[];
501
- total: number;
502
- nextPage: number;
503
- }, unknown>>;
504
469
  } | {
505
470
  data: {
506
471
  data: object[];
@@ -550,11 +515,6 @@ export declare const DataTableContext: React.Context<{
550
515
  isStale: boolean;
551
516
  isEnabled: boolean;
552
517
  fetchStatus: import('@tanstack/react-query').FetchStatus;
553
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
554
- data: object[];
555
- total: number;
556
- nextPage: number;
557
- }, unknown>>;
558
518
  } | {
559
519
  data: {
560
520
  data: object[];
@@ -604,11 +564,6 @@ export declare const DataTableContext: React.Context<{
604
564
  isStale: boolean;
605
565
  isEnabled: boolean;
606
566
  fetchStatus: import('@tanstack/react-query').FetchStatus;
607
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
608
- data: object[];
609
- total: number;
610
- nextPage: number;
611
- }, unknown>>;
612
567
  } | {
613
568
  data: {
614
569
  data: object[];
@@ -658,11 +613,6 @@ export declare const DataTableContext: React.Context<{
658
613
  isStale: boolean;
659
614
  isEnabled: boolean;
660
615
  fetchStatus: import('@tanstack/react-query').FetchStatus;
661
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
662
- data: object[];
663
- total: number;
664
- nextPage: number;
665
- }, unknown>>;
666
616
  };
667
617
  readonly setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
668
618
  readonly searchQuery: string;
@@ -1260,8 +1210,8 @@ export declare const DataTableContext: React.Context<{
1260
1210
  id: string;
1261
1211
  } | undefined> | undefined;
1262
1212
  readonly queryParameters: NoInfer<Partial<ApiFilter<keyof operations>>> | undefined;
1263
- readonly viewMode: "card" | "table";
1264
- readonly setViewMode: React.Dispatch<React.SetStateAction<"card" | "table">>;
1213
+ readonly viewMode: "table" | "card";
1214
+ readonly setViewMode: React.Dispatch<React.SetStateAction<"table" | "card">>;
1265
1215
  readonly Card: CardRenderer<object> | undefined;
1266
1216
  readonly allowSelection: boolean;
1267
1217
  readonly allowToolbar: boolean;
@@ -1274,7 +1224,7 @@ export declare const DataTableContext: React.Context<{
1274
1224
  readonly disableTableView: boolean | undefined;
1275
1225
  readonly hideViewToggle: boolean | undefined;
1276
1226
  readonly onRowNavigate: ((row: object) => void) | undefined;
1277
- readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "address" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
1227
+ readonly resourceName: "role" | "address" | "access-token" | "account" | "activation" | "activation-log" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
1278
1228
  } | null>;
1279
1229
  export declare function useDataTable(): {
1280
1230
  readonly tableState: DataTableState;
@@ -1348,11 +1298,6 @@ export declare function useDataTable(): {
1348
1298
  isStale: boolean;
1349
1299
  isEnabled: boolean;
1350
1300
  fetchStatus: import('@tanstack/react-query').FetchStatus;
1351
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
1352
- data: object[];
1353
- total: number;
1354
- nextPage: number;
1355
- }, unknown>>;
1356
1301
  } | {
1357
1302
  data: {
1358
1303
  data: object[];
@@ -1402,11 +1347,6 @@ export declare function useDataTable(): {
1402
1347
  isStale: boolean;
1403
1348
  isEnabled: boolean;
1404
1349
  fetchStatus: import('@tanstack/react-query').FetchStatus;
1405
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
1406
- data: object[];
1407
- total: number;
1408
- nextPage: number;
1409
- }, unknown>>;
1410
1350
  } | {
1411
1351
  data: {
1412
1352
  data: object[];
@@ -1456,11 +1396,6 @@ export declare function useDataTable(): {
1456
1396
  isStale: boolean;
1457
1397
  isEnabled: boolean;
1458
1398
  fetchStatus: import('@tanstack/react-query').FetchStatus;
1459
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
1460
- data: object[];
1461
- total: number;
1462
- nextPage: number;
1463
- }, unknown>>;
1464
1399
  } | {
1465
1400
  data: {
1466
1401
  data: object[];
@@ -1510,11 +1445,6 @@ export declare function useDataTable(): {
1510
1445
  isStale: boolean;
1511
1446
  isEnabled: boolean;
1512
1447
  fetchStatus: import('@tanstack/react-query').FetchStatus;
1513
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
1514
- data: object[];
1515
- total: number;
1516
- nextPage: number;
1517
- }, unknown>>;
1518
1448
  } | {
1519
1449
  data: {
1520
1450
  data: object[];
@@ -1564,11 +1494,6 @@ export declare function useDataTable(): {
1564
1494
  isStale: boolean;
1565
1495
  isEnabled: boolean;
1566
1496
  fetchStatus: import('@tanstack/react-query').FetchStatus;
1567
- promise: Promise<import('@tanstack/react-query').InfiniteData<{
1568
- data: object[];
1569
- total: number;
1570
- nextPage: number;
1571
- }, unknown>>;
1572
1497
  };
1573
1498
  readonly setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
1574
1499
  readonly searchQuery: string;
@@ -2166,8 +2091,8 @@ export declare function useDataTable(): {
2166
2091
  id: string;
2167
2092
  } | undefined> | undefined;
2168
2093
  readonly queryParameters: NoInfer<Partial<ApiFilter<keyof operations>>> | undefined;
2169
- readonly viewMode: "card" | "table";
2170
- readonly setViewMode: React.Dispatch<React.SetStateAction<"card" | "table">>;
2094
+ readonly viewMode: "table" | "card";
2095
+ readonly setViewMode: React.Dispatch<React.SetStateAction<"table" | "card">>;
2171
2096
  readonly Card: CardRenderer<object> | undefined;
2172
2097
  readonly allowSelection: boolean;
2173
2098
  readonly allowToolbar: boolean;
@@ -2180,15 +2105,15 @@ export declare function useDataTable(): {
2180
2105
  readonly disableTableView: boolean | undefined;
2181
2106
  readonly hideViewToggle: boolean | undefined;
2182
2107
  readonly onRowNavigate: ((row: object) => void) | undefined;
2183
- readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "address" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
2108
+ readonly resourceName: "role" | "address" | "access-token" | "account" | "activation" | "activation-log" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
2184
2109
  };
2185
2110
  export declare function DataTableProvider<T extends object, TOperation extends keyof operations>({ children, ...props }: {
2186
2111
  children: React.ReactNode;
2187
- } & ReturnType<typeof useDataTableState<T, TOperation>>): import("react/jsx-runtime").JSX.Element;
2112
+ } & ReturnType<typeof useDataTableState<T, TOperation>>): React.JSX.Element;
2188
2113
  export type DataTableProps = React.ComponentProps<'section'> & {
2189
2114
  cardGridClassName?: string;
2190
2115
  };
2191
- export declare function DataTable({ className, cardGridClassName, ...props }: DataTableProps): import("react/jsx-runtime").JSX.Element;
2116
+ export declare function DataTable({ className, cardGridClassName, ...props }: DataTableProps): React.JSX.Element;
2192
2117
  export type CardSelectionProps = {
2193
2118
  isSelected: boolean;
2194
2119
  onToggle: () => void;
@@ -1,2 +1 @@
1
- "use client";import{jsx as t,Fragment as M,jsxs as m}from"react/jsx-runtime";import{parseAbsolute as Y,getLocalTimeZone as J}from"@internationalized/date";import{createContext as et,useContext as tt,useState as D,useMemo as W,useEffect as ie,useRef as Te,Fragment as rt}from"react";import{Pressable as De}from"react-aria-components";import{Button as x}from"./button.js";import{useSensors as nt,useSensor as Se,PointerSensor as at,KeyboardSensor as it,DndContext as ot,closestCenter as st,DragOverlay as lt}from"@dnd-kit/core";import{sortableKeyboardCoordinates as ct,SortableContext as ut,verticalListSortingStrategy as dt,arrayMove as mt,useSortable as pt}from"@dnd-kit/sortable";import{CSS as gt}from"@dnd-kit/utilities";import{useQuery as ft,useInfiniteQuery as bt}from"@tanstack/react-query";import{createColumnHelper as Oe,useReactTable as ht,getCoreRowModel as yt,flexRender as ne}from"@tanstack/react-table";import{useLocalStorage as ee}from"@uidotdev/usehooks";import{merge as vt}from"lodash-es";import{Badge as xe}from"./badge.js";import{DatePicker as te}from"./date-picker.js";import{EasyMenu as _,MenuItem as O,MenuTrigger as St,MenuPopover as xt,MenuHeader as wt,Menu as Nt}from"./menu.js";import{MultiSelect as Ct}from"./multi-select.js";import{NumberField as Pt}from"./numberfield.js";import{PopoverTrigger as Ft,Popover as It}from"./popover.js";import{SelectTrigger as At}from"./select.js";import{TextField as Tt}from"./textfield.js";import{formatDate as B}from"../utilities/date.js";import{useProjectName as oe,useResourceFormatter as $,ALL_OS as Dt}from"../utilities/resources.js";import{classNames as w}from"../utilities/theme.js";import{ControlledDialogProvider as Ot,useControlledDialog as se,DialogHeader as Mt,DialogTitle as zt,DialogBody as Rt,DialogFooter as jt}from"./dialog.js";import{IcRefresh as Lt,IcMenu as _t,IcLayoutGrid as $t,IcColumns as Et,IcGrip as qt,IcFirst as Vt,IcLeft as kt,IcRight as Ht,IcLast as Bt,IcMoreVertical as Kt,IcInfo as Qt,IcSortAsc as Gt,IcSortDesc as Ut,IcSortNone as Zt,IcCheck as re,IcMinus as Xt,IcAccount as Yt,IcLicense as Jt,IcDate as Wt,IcFile as er,IcFilter as le,IcClose as Me}from"./icons.js";import{MultipleIdSearchInput as tr}from"./id-search.js";import{useIsMobile as K}from"../utilities/use-mobile.js";import{Loader as ze}from"./loader.js";import{SearchField as rr}from"./searchfield.js";import{Table as nr,TableHeader as ar,TableRow as we,TableHead as ir,TableBody as or,TableCell as sr}from"./table.js";import{CountryName as lr}from"../utilities/countries.js";import{Duration as cr}from"../utilities/duration.js";import{formatDays as ur,formatFilesize as dr,formatNumber as mr}from"../utilities/numbers.js";import{pluralizeTimes as pr}from"../utilities/string.js";import{Checkbox as Ne}from"./checkbox.js";import{TooltipTrigger as gr,Tooltip as fr}from"./tooltip.js";import{getSubscriptionStartTriggerLabel as br,ALL_LICENSE_TYPES as hr}from"./select-options.js";import{useCtxClient as yr}from"../utilities/ctx-client.js";import{ProgressBar as vr}from"./progress-bar.js";import{TagGroup as Sr,Tag as xr}from"./tag-group.js";import"class-variance-authority";import"clsx";import"@icons-pack/react-simple-icons";import"./calendar.js";import"./form.js";import"./card.js";import"./datefield.js";import"../utilities/form.js";import"../utilities/form-context.js";import"@tanstack/react-form";import"./list-box.js";import"./kbd.js";import"../utilities/empty-option.js";function wr(e){return e?e.desc?`-${e.id}`:`+${e.id}`:"-createdAt"}const Re=Oe(),Nr=[Re.accessor("checkbox",{header:({table:e})=>t(Ne,{isIndeterminate:e.getIsSomeRowsSelected()&&!e.getIsAllPageRowsSelected(),isSelected:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected(),onChange:()=>e.toggleAllPageRowsSelected(),"aria-label":"Select all",size:"sm"}),cell:({row:e})=>t(Ne,{isSelected:e.getIsSelected(),onChange:()=>e.toggleSelected(),"aria-label":"Select row",size:"sm"}),enableSorting:!1,enableHiding:!1})],I="TableActions";function Cr(e){return e.length===0?[]:[Re.accessor(I,{header:"Actions",id:I,enableHiding:!1,cell:({row:n})=>t(Rr,{label:t(Kt,{className:"text-icon-primary"}),data:n.original,items:e}),enableSorting:!1})]}function Hn(){return Oe()}function Bn({path:e,resourceName:n,pathParameters:r,queryParameters:o,columns:l,filterConfig:i,columnsToHideByDefault:a={},allowSelection:d=!1,allowToolbar:c=!0,initialFilters:s=[],previewFilters:p,tableActions:b,Card:v,onRowNavigate:y,disableTableView:S,hideViewToggle:C,include:A}){const[R,E]=D({pagination:{pageIndex:0,pageSize:20},sorting:[]}),{sorting:g,pagination:h}=R,[q,qe]=D(""),[ue,de]=D({}),[Q,Ve]=D(s),G=W(()=>Q.filter(u=>u.active!==!1).map(u=>{if(u.type==="derived-select"){const F=i[u.property];return F?.type==="derived-select"?F.toApiQuery(String(u.value??"")):{}}const f=u.value instanceof Set?Array.from(u.value):u.value;return u.needOperator===!1?{[u.property]:Array.isArray(f)?f.join(","):f}:u.operator==="between"&&Array.isArray(f)&&f.length===2?{[u.property]:{gte:f[0],lte:f[1]}}:Array.isArray(f)?{[u.property]:{[u.operator]:f.join(",")}}:{[u.property]:{[u.operator]:f}}}).reduce((u,f)=>vt(u,f),{}),[Q,i]),V=A?.length?A.join(","):void 0,k={...o,...G,limit:h.pageSize,sort:wr(g[0]),search:q,...V?{include:V}:{}},ke=yr(),He=["get",e,{...k,page:h.pageIndex+1},"table"],Be=["get",e,k,"card"],U=`${e}_ctx`,[me,pe]=ee(`${U}_column_order_preference`,[]),[ge,Ke]=ee(`${U}_column_visibility_preference`,{id:!1,...a}),[Qe,Ge]=ee(`${U}_view_mode_preference`,S?"card":"table"),Ue=K(),T=S||Ue&&v?"card":Qe,Z=u=>{E(f=>({...f,...u}))};async function fe(u){const f=await ke.GET(e,{params:{query:{...o,page:u,limit:h.pageSize,sort:k.sort,search:k.search,...V?{include:V}:{},...G},path:r}});return{data:f.data??[],total:Number.parseInt(f.response.headers.get("Pagination-Count")||"0"),nextPage:u+1}}const j=ft({queryKey:He,enabled:T==="table",queryFn:()=>fe(h.pageIndex+1),placeholderData:u=>u}),P=bt({queryKey:Be,enabled:T==="card",initialPageParam:1,queryFn:({pageParam:u})=>fe(u),getNextPageParam:(u,f)=>f.flatMap(H=>H.data).length<u.total?u.nextPage:void 0}),be=W(()=>T==="table"?j.data?.data??[]:P.data?.pages.flatMap(u=>u.data)??[],[T,j.data,P.data]),he=W(()=>T==="table"?j.data?.total??0:P.data?.pages[0]?.total??0,[T,j.data,P.data]),ye=T==="table"?j:{...P,data:{data:be,total:he},isLoading:P.isLoading,isFetching:P.isFetching,isError:P.isError,error:P.error,refetch:P.refetch},Ze=b.filter(ce),Xe=[...d?Nr:[],...l,...Cr(Ze??[])];function Ye(u){return typeof u=="function"}function L(u,f){return Ye(u)?u(f):u}const ve=ht({data:be,columns:Xe,getCoreRowModel:yt(),rowCount:he,manualPagination:!0,onPaginationChange:u=>{Z({pagination:L(u,h)})},manualSorting:!0,onSortingChange:u=>{de({}),Z({sorting:[...L(u,g)]})},manualFiltering:!0,onColumnVisibilityChange:u=>{Ke(L(u,ge))},onRowSelectionChange:u=>{de(L(u,ue))},onColumnOrderChange:u=>{pe(L(u,me))},state:{sorting:g,columnVisibility:ge,pagination:h,rowSelection:ue,columnOrder:me},meta:{refetch:ye.refetch}});return ie(()=>{const u=ve.getAllFlatColumns().map(F=>F.id),f=u.filter(F=>F!=="checkbox"&&F!==I);pe(F=>{const H=F.filter(X=>f.includes(X)),Je=f.filter(X=>!F.includes(X)),We=H.length>0?[...H,...Je]:f;return[...u.includes("checkbox")?["checkbox"]:[],...We,...u.includes(I)?[I]:[]]})},[]),{tableState:R,updateTableState:Z,query:ye,setSearchQuery:qe,searchQuery:q,tanTable:ve,mergedFilters:G,filters:Q,setFilters:Ve,filterConfig:i,tableActions:b,pathParameters:r,queryParameters:o,viewMode:T,setViewMode:Ge,Card:v,allowSelection:d,allowToolbar:c,previewFilters:p,infiniteQuery:P,disableTableView:S,hideViewToggle:C,onRowNavigate:y,resourceName:n}}const je=et(null);function N(){const e=tt(je);if(!e)throw Error("DataTable should be used within DataTableProvider.");return e}function Kn({children:e,...n}){return t(je.Provider,{value:n,children:e})}function Pr(){const{query:e,resourceName:n,allowToolbar:r}=N(),o=$();if(e.isFetching)return null;if(e.isError)return m("span",{className:"flex gap-3 items-center",children:[t(Qt,{className:"text-icon-primary"}),t("span",{children:e.error?.message})]});if(e.data?.data?.length===0){const l=n&&pr(o(n),2).toLowerCase();return m("div",{className:"text-center flex flex-col gap-2",children:[t("p",{className:"font-semibold text-text-primary",children:l?`No ${l} found.`:"No results found."}),r&&t("p",{className:"text-text-secondary",children:"Adjust your filter or search request."})]})}return t(M,{children:"Unknown error. Please contact customer support."})}function Fr({cardGridClassName:e}){const{query:n,tanTable:r,viewMode:o,tableActions:l,Card:i}=N(),a=l.filter(ce),d=o==="card"&&!!i;return n.isLoading?t("div",{className:"body-sm flex items-center justify-center min-h-32",children:t(ze,{})}):r.getRowModel().rows.length===0?t("div",{className:"body-sm flex items-center justify-center min-h-32 text-muted",children:t(Pr,{})}):d?t(Ir,{Card:i,actions:a,className:e}):t(zr,{className:"w-full"})}function Qn({className:e,cardGridClassName:n,...r}){const{viewMode:o,Card:l,allowToolbar:i}=N(),a=o==="card"&&!!l;return t(M,{children:m(Ot,{children:[i&&t(Or,{}),m("section",{...r,className:w("z-20 flex flex-col",a?"":"border rounded-lg",e),children:[t("div",{className:"w-full overflow-auto relative rounded-t-lg [scrollbar-width:none]",tabIndex:0,children:t(Fr,{cardGridClassName:n})}),!a&&m("div",{className:"flex w-full justify-between border-t gap-icon py-2 px-icon bg-surface-secondary rounded-b-lg overflow-x-auto",children:[m("div",{className:"flex gap-icon",children:[t(Ar,{}),t(Dr,{})]}),t(Tr,{})]})]})]})})}function Ir({Card:e,actions:n,className:r,...o}){const{tanTable:l,allowSelection:i}=N(),{infiniteQuery:a}=N(),d=Te(null);return ie(()=>{const c=d.current;if(!c)return;const s=new IntersectionObserver(p=>{p[0].isIntersecting&&a.hasNextPage&&!a.isFetchingNextPage&&a.fetchNextPage()},{threshold:.1});return s.observe(c),()=>s.disconnect()},[a.hasNextPage,a.isFetchingNextPage]),m("div",{...o,className:w(r,"grid grid-cols-1 lg:grid-cols-2 gap-icon pb-input"),children:[l.getRowModel().rows.map((c,s)=>{const p={isSelected:c.getIsSelected(),onToggle:()=>c.toggleSelected(),allowSelection:i};return t(rt,{children:e(c.original,n,p,s)},c.id)}),t("div",{ref:d,className:"col-span-full h-4 flex items-center justify-center",children:a.isFetchingNextPage&&t(ze,{})})]})}function Ar(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),[r,o]=D(null),l=$(),i=nt(Se(at),Se(it,{coordinateGetter:ct}));return t(ot,{sensors:i,collisionDetection:st,onDragStart:d=>{const{active:c}=d;o(c.id.toString())},onDragEnd:d=>{const{active:c,over:s}=d;if(s&&c.id!==s.id){const p=n.getState().columnOrder,b=p.indexOf(c.id.toString()),v=p.indexOf(s.id.toString());n.setColumnOrder([...mt(p,b,v)])}o(null)},children:m(ut,{items:n.getState().columnOrder,strategy:dt,children:[m(_,{label:m(M,{children:[t(Et,{className:"inline align-bottom me-1 text-icon-primary"}),"Columns"]}),selectionMode:"multiple",size:"sm",items:n.getAllFlatColumns(),selectedKeys:n.getVisibleFlatColumns().map(d=>d.id),children:[t(O,{onAction:()=>n.toggleAllColumnsVisible(),className:"italic",children:"(select all)"}),n.getState().columnOrder.map(d=>{const c=n.getAllFlatColumns().find(s=>s.id===d);return!c||c.id==="checkbox"||c.id===I?null:t(a,{column:c},c.id)})]}),t(lt,{children:r?t("div",{className:"opacity-70 border-2 border-primary",children:l(r)}):null})]})});function a({column:d}){const{attributes:c,listeners:s,setNodeRef:p,transform:b,transition:v}=pt({id:d.id}),y={transform:gt.Transform.toString(b),transition:v,zIndex:"999"};return m(O,{ref:p,style:y,...c,id:d.id,onAction:()=>d.toggleVisibility(),isDisabled:!d.getCanHide(),className:"flex items-center",children:[t(qt,{...s,className:"size-icon cursor-grab text-icon-primary"}),ae(d),d.getIsSorted()&&t(Le,{className:"size-icon",direction:d.getIsSorted()})]})}}function Tr(){const{tanTable:e}=N(),n=e.getRowCount();return m("div",{className:"flex items-center gap-2",children:[t("span",{className:"whitespace-nowrap body-sm text-muted",children:`${e.getState().pagination.pageIndex*e.getState().pagination.pageSize+1} - ${Math.min((e.getState().pagination.pageIndex+1)*e.getState().pagination.pageSize,n)} of ${n?.toLocaleString()}`}),(e.getCanNextPage()||e.getCanPreviousPage())&&m(M,{children:[t(x,{"aria-label":"First page",onPress:()=>e.firstPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(Vt,{})}),t(x,{"aria-label":"Previous page",onPress:()=>e.previousPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(kt,{})}),t(x,{"aria-label":"Next page",onPress:()=>e.nextPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Ht,{})}),t(x,{"aria-label":"Last page",onClick:()=>e.lastPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Bt,{})})]})]})}function Dr(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),r=[10,20,30,40,50];return t(_,{label:n.getState().pagination.pageSize.toString(),selectionMode:"single",size:"sm",selectedKeys:[n.getState().pagination.pageSize.toString()],items:r.map(o=>({id:o.toString(),value:o})),children:o=>t(O,{onAction:()=>n.setPageSize(o.value),children:o.value})})}function Or(){const{query:e,tanTable:n,searchQuery:r,setSearchQuery:o,tableActions:l,viewMode:i,setViewMode:a,Card:d,previewFilters:c,disableTableView:s,hideViewToggle:p}=N(),b=n.getSelectedRowModel().rows.length>0,v=K(),y=l.filter(S=>S.resourceType!=="single").filter(S=>S.resourceType==="multiple"===b);return m("section",{className:"flex justify-between my-0 mb-icon gap-icon overflow-x-auto py-1",children:[m("div",{className:w("flex gap-icon max-md:min-w-0 max-md:flex-1"),children:[t(x,{"aria-label":"Refresh",isPending:e.isFetching,onClick:()=>e.refetch(),variant:"neutral",size:"icon",className:w("max-md:shrink-0"),children:t(Lt,{})}),t(rr,{value:r,onChange:o,className:w("max-md:min-w-0 max-md:flex-1")}),t(Vr,{previewFilters:c,className:w("max-md:shrink-0")})]}),!v&&m("div",{className:"flex gap-icon",children:[t(Ie,{items:y,isFetching:e.isFetching}),d&&!s&&!p&&m("div",{className:"flex gap-1 bg-surface-primary rounded-md overflow-hidden",children:[t(x,{variant:i==="table"?"primary":"neutral",size:"icon",onPress:()=>a("table"),"aria-label":"Table view",className:"border-none",children:t(_t,{})}),t(x,{variant:i==="card"?"primary":"neutral",size:"icon",onPress:()=>a("card"),"aria-label":"Card view",className:"border-none",children:t($t,{})})]})]}),v&&y.length>0&&t("div",{className:"fixed inset-x-0 bottom-0 z-30 flex gap-icon border-t bg-surface-primary p-icon",children:t(Ie,{items:y,isFetching:e.isFetching,buttonClassName:"flex-1 justify-center"})})]})}function Le({direction:e,...n}){return e==="asc"?t(Gt,{className:"size-3.5",...n}):e==="desc"?t(Ut,{className:"size-3.5",...n}):t(Zt,{className:"size-3.5",...n})}function ae(e){const n=$(),r=e.columnDef.header;return typeof r=="string"?r:n(e.id)}function Mr(e){const n=e.column.columnDef.meta?.displayType,r=e.getValue();if(r==null)return null;switch(n){case"date":return t("span",{className:"tabular-nums",children:B(r)});case"number":return t("span",{className:"block text-right tabular-nums",children:mr(r)});case"boolean":return t(xe,{variant:r?"success":"destructive",className:"capitalize",children:String(r)});case"badge":return t(xe,{children:String(r)});case"tags":let o=Array.isArray(r)?r:[String(r)];return t(Sr,{items:o.map(a=>({id:a,name:a})),className:"!flex-nowrap",children:a=>t(xr,{children:a.name})});case"progressBar":const[l,i]=r;return t(vr,{meterClassName:"w-16",label:`${l}/${i}`,minValue:0,maxValue:i,value:l});case"country":return t(lr,{value:r});case"enum":return t("span",{className:"uppercase w-full",children:String(r)});case"fileSize":return dr(r);case"days":return ur(r);case"os":return Dt[r]??r;case"licenseType":return hr[r]??r;case"subscriptionInterval":return cr.formatISODuration(r);case"subscriptionStartTrigger":return br(r);default:return String(r)}}function Ce({header:e}){const n=e.column.columnDef.header;return typeof n=="string"||!n?ae(e.column):typeof n=="function"?typeof n(e.getContext())=="string"?ae(e.column):ne(n,e.getContext()):ne(n,e.getContext())}function zr({className:e}){const{tanTable:n,onRowNavigate:r}=N(),o=(l,i,a="z-50")=>w("text-left body-sm font-medium whitespace-nowrap",l&&`sticky right-0 ${a} text-center justify-center`,i);return m(nr,{className:w("table-auto border-0",e),children:[t(ar,{className:"sticky top-0 z-10 rounded-lg border-stroke-secondary!",children:n.getHeaderGroups().map(l=>t(we,{className:"border-stroke-secondary!",children:l.headers.map(i=>m(ir,{scope:"col",colSpan:i.colSpan,className:o(i.id===I,"bg-surface-secondary"),children:[!i.column.getCanSort()&&!i.isPlaceholder&&t("div",{className:w("w-full flex items-center gap-1 text-xs uppercase font-semibold text-text-secondary",i.id===I?"justify-center":"justify-start"),children:t(Ce,{header:i})}),i.column.getCanSort()&&m(x,{variant:"ghost",size:"none",className:w("w-full p-1 rounded-md uppercase text-text-secondary text-xs font-semibold",i.id===I?"justify-center":"justify-start",i.column.getIsSorted()?"text-primary":""),onPress:i.column.getToggleSortingHandler(),children:[t("span",{children:t(Ce,{header:i})}),i.column.getIsSorted()&&t(Le,{direction:i.column.getIsSorted()})]})]},i.id))},l.id))}),t(or,{children:n.getRowModel().rows.map(l=>t(we,{className:w("group border-stroke-secondary! bg-surface-primary hover:not-data-[selected=true]:bg-surface-secondary data-[selected=true]:bg-surface-tertiary",r&&"cursor-pointer focus-visible:outline focus-visible:outline-ring"),"data-selected":l.getIsSelected(),...r&&{role:"link",tabIndex:0,onClick:i=>{i.target.closest('a, button, input, select, textarea, [role="button"]')||r(l.original)},onKeyDown:i=>{i.key==="Enter"&&r(l.original)}},children:l.getVisibleCells().map(i=>{const a=i.column.id===I,d=i.column.columnDef.meta?.displayType?Mr(i):ne(i.column.columnDef.cell,i.getContext());return t(sr,{className:w(o(a,a?"bg-surface-primary group-hover:not-group-data-[selected=true]:bg-surface-secondary group-data-[selected=true]:bg-surface-tertiary":"","z-1"),a&&"flex justify-center items-center"),children:d},i.id)})},l.id))})]})}function Pe(e){return e.resourceType==="none"}function ce(e){return e.resourceType==="single"}function Fe(e){return e.resourceType==="multiple"}function Ie({items:e,isFetching:n,buttonClassName:r}){const{openDialog:o,closeDialog:l}=se(),{tanTable:i,mergedFilters:a}=N();function d(s,p){return s.isDisabled?Pe(s)?s.isDisabled():Fe(s)?s.isDisabled(p):!1:!1}const c=i.getSelectedRowModel().rows.map(s=>s.original);return t(M,{children:e.map((s,p)=>{const b=s.icon,v=d(s,c)||n;return m(x,{"aria-label":s.label,type:"button",isDisabled:v,className:w("animate-in fade-in slide-in-from-right-15 duration-300 transition-transform",r),onPress:y=>{const S={event:y,openDialog:o,closeDialog:l,activeFilters:a};Pe(s)?s.onPress(S):Fe(s)&&s.onPress({...S,data:c})},variant:s.variant??"neutral",children:[b&&t(b,{"aria-hidden":!0}),t("span",{children:s.label})]},`${s.label}-${p}`)})})}function Rr({label:e,items:n,data:r}){const{openDialog:o,closeDialog:l}=se(),{mergedFilters:i}=N();return n.length<5?t("div",{className:"flex items-center gap-2",children:n.map((a,d)=>{const c=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(gr,{children:[t(x,{"aria-label":typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,variant:"ghost",size:"icon",onPress:()=>{const p={openDialog:o,closeDialog:l};a.onPress({...p,data:r,activeFilters:i})},children:t(c,{className:"size-icon"})}),t(fr,{children:s})]},`${d}-${typeof s=="string"?s:""}`)})}):t(_,{withChevron:!1,"aria-label":"Actions",label:e,size:"icon",children:n.map((a,d)=>{const c=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(O,{id:typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,onAction:()=>{const p={openDialog:o,closeDialog:l};ce(a)&&a.onPress({...p,data:r,activeFilters:i})},children:[t(c,{className:"size-icon"}),s]},`${d}-${typeof s=="string"?s:""}`)})})}const Gn=["eq","ne","cn","nc","sw","ew","in","nin","gt","gte","lt","lte","between"],Ae={eq:"equal to",ne:"not equal to",cn:"contains",nc:"does not contain",sw:"starts with",ew:"ends with",in:"includes",nin:"does not include",gt:"greater than",gte:"greater than or equal to",lt:"less than",lte:"less than or equal to",between:"between"},jr={eq:"=",ne:"≠",cn:"contains",nc:"!contains",sw:"starts with",ew:"ends with",in:"in",nin:"not in",gt:">",gte:"≥",lt:"<",lte:"≤",between:"↔"};function z(e,n){const r=n.type,o=`${e}-${Date.now()}`,l=r==="bool"||r==="derived-select"?!1:n.needOperator??!0,i=l?_e[r][0]:"eq",a={id:o,property:e,operator:i,needOperator:l};switch(r){case"bool":return{...a,type:r,value:!0};case"derived-select":return{...a,type:r,value:n.options[0]?.id??""};case"string":return{...a,type:r,value:""};case"date":return{...a,type:r,value:i==="between"?[new Date().toISOString(),new Date().toISOString()]:new Date().toISOString()};case"id":return{...a,type:r,value:""};case"id-search":return{...a,type:r,value:[]};case"enum":return{...a,type:r,value:new Set};case"number":return{...a,type:r,value:0}}}const _e={bool:["eq"],"derived-select":["eq"],enum:["in","nin"],id:["in","nin"],"id-search":["in","nin"],string:["eq","ne","cn","nc","sw","ew","in","nin"],date:["between","lt","gt"],number:["eq","ne","gt","gte","lt","lte"]};function Lr(e,n){let r=n.value!==void 0?n.value:e.value;const o=n.operator??e.operator;if(e.type==="date"&&n.operator!==void 0)if(o==="between"&&!Array.isArray(r)){const l=typeof r=="string"?r:new Date().toISOString();r=[l,l]}else o!=="between"&&Array.isArray(r)&&(r=r[0]??new Date().toISOString());return r}function $e(){const{setFilters:e,filterConfig:n}=N();return{updateFilter:(i,a)=>{e(d=>{const c=d.find(p=>p.property===i)??z(i,n[i]),s={...c,...a,value:Lr(c,a),active:!0};return d.some(p=>p.id===c.id)?d.map(p=>p.id===c.id?s:p):[...d,s]})},removeFilter:i=>{e(a=>{const d=a.find(c=>c.id===i);return d?d.isPreview?a.map(c=>c.id===i?{...z(c.property,n[c.property]),active:!1,isPreview:!0}:c):a.filter(c=>c.id!==i):a})},clearAllFilters:()=>{e(i=>i.filter(a=>a.isPreview).map(a=>({...z(a.property,n[a.property]),active:!1,isPreview:!0})))}}}function _r(e,n){switch(e.type){case"string":case"id":return e.value??"";case"number":return e.value?.toString()??"";case"bool":return e.value?"true":"false";case"derived-select":{const r=n[e.property];if(!r||r.type!=="derived-select")return e.value??"";const o=r.options.find(l=>l.id===e.value);return typeof o?.label=="string"?o.label:e.value??""}case"date":if(Array.isArray(e.value)){const[r,o]=e.value;return`${B(r,{dateStyle:"short"})??""} – ${B(o,{dateStyle:"short"})??""}`}return e.value?B(e.value,{dateStyle:"short"})??"":"";case"enum":return e.value&&e.value.size>0?`${e.value.size} selected`:"";case"id-search":return e.value&&e.value.length>0?e.value.length===1?"1 item":`${e.value.length} items`:""}}function $r({filter:e,filterConfig:n,onChange:r}){if(e.type==="string"||e.type==="id")return t(Tt,{autoFocus:!0,value:e.value??"",onChange:r,"aria-label":"Filter value"});if(e.type==="number")return t(Pt,{autoFocus:!0,value:e.value,onChange:r,"aria-label":"Filter value"});if(e.type==="date"){if(e.operator==="between"){const[l,i]=Array.isArray(e.value)?e.value:[new Date().toISOString(),new Date().toISOString()],a=Y(l,J()),d=Y(i,J());return m("div",{className:"flex flex-col gap-icon",children:[t(te,{autoFocus:!0,hideTimeZone:!0,label:"From",value:a,onChange:c=>r([c?c.toAbsoluteString():l,i])}),t(te,{hideTimeZone:!0,label:"To",value:d,onChange:c=>r([l,c?c.toAbsoluteString():i])})]})}const o=e.value&&!Array.isArray(e.value)?Y(e.value,J()):null;return t(te,{autoFocus:!0,hideTimeZone:!0,value:o,onChange:l=>r(l?l.toAbsoluteString():new Date().toISOString()),"aria-label":"Filter date"})}if(e.type==="enum"){const o=n[e.property];return o.type!=="enum"?null:t(Ct,{autoFocus:!0,items:o.options,value:e.value??new Set,onChange:r,"aria-label":"Filter value"})}if(e.type==="id-search"){const o=n[e.property];if(o.type!=="id-search")return null;const l=o.defaultParams;return t(tr,{autoFocus:!0,path:o.path,accessor:o.accessor,defaultParams:l,value:e.value??[],onChange:r,"aria-label":"Filter value"})}return null}function Ee({filter:e,filterConfig:n,resourceFormatter:r,onRemove:o,onUpdate:l,isOpen:i,onOpenChange:a}){const d=e.needOperator===!1?["eq"]:_e[e.type],c=_r(e,n),s=oe(),p=K(),b=e.type==="bool"||e.type==="derived-select",v=p?m("div",{className:"flex flex-col gap-1",children:[t("span",{className:"body-sm text-muted",children:r(e.property)}),t(At,{type:"button",className:"w-full","aria-label":r(e.property),children:c})]}):m(x,{type:"button",variant:e.active===!1?"neutral":"primary_neutral",className:"animate-in slide-in-from-left-10 fade-in flex justify-between gap-2",children:[t(le,{}),b?t("span",{className:"font-medium",children:c}):m(M,{children:[t("span",{className:"font-medium",children:r(e.property)}),s!=="customer-portal"&&t("span",{children:jr[e.operator]}),s!=="customer-portal"&&c&&t("span",{children:c})]}),e.active!==!1&&t(De,{onPress:()=>o(),children:t("span",{className:"bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center",children:t(Me,{className:"size-2.5 text-surface-primary"})})})]});if(b){let y,S;if(e.type==="bool")y=[{id:"true",label:"True"},{id:"false",label:"False"}],S=e.value?"true":"false";else{const C=n[e.property];y=C?.type==="derived-select"?C.options:[],S=e.value??""}return m(St,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),m(xt,{className:"min-w-48",children:[t(wt,{inset:!0,separator:!1,children:r(e.property)}),t(Nt,{selectionMode:"single",disallowEmptySelection:!0,selectedKeys:new Set([S]),onSelectionChange:C=>{if(C==="all")return;const A=C.values().next().value;A!=null&&l({value:e.type==="bool"?String(A)==="true":String(A)})},"aria-label":"Filter value",children:y.map(C=>t(O,{id:C.id,children:C.label},C.id))})]})]})}return m(Ft,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),t(It,{className:"p-icon min-w-48",children:m("div",{className:"flex flex-col gap-icon",children:[d.length>1&&t(_,{label:Ae[e.operator],variant:"neutral","aria-label":"Change operator",children:d.map(y=>t(O,{onAction:()=>l({operator:y}),children:Ae[y]},y))}),t($r,{filter:e,filterConfig:n,onChange:y=>l({value:y})}),t(x,{type:"button",variant:"neutral",className:"self-end",onPress:o,"aria-label":`Remove ${r(e.property)} filter`,children:"Clear"})]})})]})}function Er({onApply:e}){const{filters:n,filterConfig:r}=N(),o=$(),{updateFilter:l,removeFilter:i,clearAllFilters:a}=$e(),[d,c]=D(null);return m(M,{children:[t(Mt,{children:t(zt,{children:"Filter"})}),t(Rt,{className:"flex flex-col gap-input",children:Object.keys(r).map(s=>{const p=n.find(b=>b.property===s)??z(s,r[s]);return t(Ee,{filter:p,filterConfig:r,resourceFormatter:o,onRemove:()=>i(p.id),onUpdate:b=>l(s,b),isOpen:d===s,onOpenChange:b=>c(b?s:null)},s)})}),m(jt,{children:[t(x,{variant:"neutral",onPress:()=>{a(),c(null)},children:"Clear All"}),t(x,{variant:"primary",onPress:e,children:"Apply"})]})]})}function qr({className:e,hasClearableFilters:n,isDisabled:r,onClearAll:o,...l}){const{openDialog:i,closeDialog:a}=se();return t("section",{...l,className:w("flex items-center",e),children:m(x,{variant:n?"primary_neutral":"neutral",isDisabled:r,"aria-label":"Filter",onPress:()=>i(t(Er,{onApply:a})),className:"min-w-0 flex-1",children:[t(le,{}),"Filters",n&&t(De,{onPress:o,children:t("span",{className:"animate-slide-in bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center",children:t(Me,{className:"size-2.5 text-surface-primary"})})})]})})}function Vr({className:e,previewFilters:n,...r}){const{filters:o,query:l,setFilters:i,filterConfig:a}=N(),d=K(),c=$(),s=Object.keys(a).filter(g=>!o.some(h=>h.property===g)).sort(),[p,b]=D(null),v=Te(!1);ie(()=>{if(!v.current&&o.length===0){const g=[];n&&n.length>0&&g.push(...n.filter(h=>a[h]).map(h=>({...z(h,a[h]),active:!1,isPreview:!0}))),g.length>0&&i(g)}v.current=!0},[]);const{updateFilter:y,removeFilter:S,clearAllFilters:C}=$e(),A=g=>{const h=z(g,a[g]);i([...o,h]),b(h.id)},R=o.some(g=>!g.isPreview||g.active!==!1),E=()=>{C(),b(null)};return d?t(qr,{...r,className:e,hasClearableFilters:R,isDisabled:l.isPending,onClearAll:E}):m("section",{...r,className:w("flex flex-wrap gap-icon items-center",e),children:[o.filter(g=>g.property in a).map(g=>t(Ee,{filter:g,filterConfig:a,resourceFormatter:c,onRemove:()=>S(g.id),onUpdate:h=>y(g.property,h),isOpen:p===g.id,onOpenChange:h=>b(h?g.id:null)},g.id)),s.length>0&&t(_,{label:t(le,{}),isDisabled:l.isPending,variant:"neutral","aria-label":"Add filter",children:s.map(g=>{const h=a[g].type,q=kr[h];return m(O,{className:"!justify-between",onAction:()=>A(g),children:[c(g),t(q,{})]},g)})}),R&&t(x,{variant:"ghost",onPress:E,"aria-label":"Clear all filters",className:"animate-in fade-in",children:"Clear All"})]})}const kr={"id-search":er,bool:re,"derived-select":re,date:Wt,enum:Jt,id:Yt,number:Xt,string:re};export{Ae as C,Vr as D,Qn as DataTable,je as DataTableContext,Kn as DataTableProvider,Gn as F,Hn as getColumnHelper,N as useDataTable,Bn as useDataTableState};
2
- //# sourceMappingURL=data-table.js.map
1
+ import"../utilities/date.js";import"../utilities/use-mobile.js";import"./dialog.js";import{a as e,c as t,i as n,l as r,o as i,s as a}from"../data-table-filter.js";export{n as DataTable,e as DataTableContext,i as DataTableProvider,a as getColumnHelper,t as useDataTable,r as useDataTableState};
@@ -19,7 +19,7 @@ interface DatePickerProps<T extends AriaDateValue> extends AriaDatePickerProps<T
19
19
  * />
20
20
  * ```
21
21
  */
22
- export declare function DatePicker<T extends AriaDateValue>({ label, description, errorMessage, requiredIndicator, className, ...props }: DatePickerProps<T>): import("react/jsx-runtime").JSX.Element;
22
+ export declare function DatePicker<T extends AriaDateValue>({ label, description, errorMessage, requiredIndicator, className, ...props }: DatePickerProps<T>): import("react").JSX.Element;
23
23
  /**
24
24
  * Form-integrated date picker that works with TanStack Form.
25
25
  *
@@ -27,7 +27,7 @@ export declare function DatePicker<T extends AriaDateValue>({ label, description
27
27
  * Automatically handles form state, validation, and error messages.
28
28
  * Uses the field context to connect with the form's validation system.
29
29
  */
30
- export declare function TfDatePicker({ ...props }: Omit<DatePickerProps<ZonedDateTime>, 'value' | 'onChange' | 'onBlur' | 'isInvalid' | 'errorMessage'>): import("react/jsx-runtime").JSX.Element;
30
+ export declare function TfDatePicker({ ...props }: Omit<DatePickerProps<ZonedDateTime>, 'value' | 'onChange' | 'onBlur' | 'isInvalid' | 'errorMessage'>): import("react").JSX.Element;
31
31
  interface DateRangePickerProps<T extends AriaDateValue> extends AriaDateRangePickerProps<T>, FormFieldProps {
32
32
  }
33
33
  /**
@@ -47,5 +47,5 @@ interface DateRangePickerProps<T extends AriaDateValue> extends AriaDateRangePic
47
47
  * />
48
48
  * ```
49
49
  */
50
- export declare function DateRangePicker<T extends AriaDateValue>({ label, description, errorMessage, className, ...props }: DateRangePickerProps<T>): import("react/jsx-runtime").JSX.Element;
50
+ export declare function DateRangePicker<T extends AriaDateValue>({ label, description, errorMessage, className, ...props }: DateRangePickerProps<T>): import("react").JSX.Element;
51
51
  export {};
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as e,jsxs as o}from"react/jsx-runtime";import{DatePicker as b,composeRenderProps as c,Popover as v,Dialog as N,DateRangePicker as P}from"react-aria-components";import{toZoned as k,getLocalTimeZone as d,parseAbsolute as C}from"@internationalized/date";import{Button as p}from"./button.js";import{Calendar as y,RangeCalendar as R}from"./calendar.js";import{DateInput as m}from"./datefield.js";import{getFieldErrorMessage as u}from"../utilities/form.js";import{useFieldContext as F}from"../utilities/form-context.js";import{classNames as n}from"../utilities/theme.js";import{FormField as f,FieldGroup as g}from"./form.js";import{IcDate as h}from"./icons.js";import"class-variance-authority";import"./loader.js";import"clsx";import"@icons-pack/react-simple-icons";import"react";import"@tanstack/react-form";import"./card.js";const x=({className:a,popoverClassName:r,...i})=>e(v,{className:c(r,t=>n("w-auto p-3 bg-surface-primary border",t)),children:e(N,{className:n("flex w-full flex-col gap-y-2 outline-none sm:flex-row sm:gap-x-icon sm:gap-y-0",a),...i})});function I({label:a,description:r,errorMessage:i,requiredIndicator:t,className:l,...s}){return o(b,{className:c(l,D=>n("group flex flex-col gap-2",D)),...s,children:[e(f,{label:a,description:r,errorMessage:i,requiredIndicator:t,children:o(g,{children:[e(m,{className:"flex-1",variant:"ghost"}),e(p,{variant:"ghost",size:"icon",className:"-me-3 ms-2",children:e(h,{"aria-hidden":!0})})]})}),e(x,{children:e(y,{})})]})}function Q({...a}){const r=F({disabled:a.isDisabled});return e(I,{requiredIndicator:r.isRequired,hideTimeZone:!0,granularity:"day",isDisabled:a.isDisabled||r.isSubmitting,value:r.state.value?C(r.state.value,d()):null,onChange:i=>i?r.handleChange(k(i,d()).toAbsoluteString()):r.handleChange(null),onBlur:r.handleBlur,isInvalid:!!u(r),errorMessage:u(r),...a})}function U({label:a,description:r,errorMessage:i,className:t,...l}){return o(P,{className:c(t,s=>n("group flex flex-col gap-2",s)),...l,children:[e(f,{label:a,errorMessage:i,description:r,children:o(g,{children:[e(m,{variant:"ghost",slot:"start"}),e("span",{"aria-hidden":!0,className:"px-2 body-sm text-muted-foreground",children:"-"}),e(m,{className:"flex-1",variant:"ghost",slot:"end"}),e(p,{variant:"ghost",size:"icon",className:"mr-1 data-[focus-visible]:ring-offset-0",children:e(h,{"aria-hidden":!0})})]})}),e(x,{children:e(R,{})})]})}export{I as DatePicker,U as DateRangePicker,Q as TfDatePicker};
2
- //# sourceMappingURL=date-picker.js.map
1
+ "use client";import{classNames as e}from"../utilities/theme.js";import{_ as t}from"../icons.js";import{useFieldContext as n}from"../utilities/form-context.js";import{Button as r}from"./button.js";import{FieldGroup as i,FormField as a}from"./form.js";import{getFieldErrorMessage as o}from"../utilities/form.js";import{Calendar as s,RangeCalendar as c}from"./calendar.js";import{DateInput as l}from"./datefield.js";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{DatePicker as f,DateRangePicker as p,Dialog as m,Popover as h,composeRenderProps as g}from"react-aria-components";import{getLocalTimeZone as _,parseAbsolute as v,toZoned as y}from"@internationalized/date";var b=({className:t,popoverClassName:n,...r})=>u(h,{className:g(n,t=>e(`w-auto p-3 bg-surface-primary border`,t)),children:u(m,{className:e(`flex w-full flex-col gap-y-2 outline-none sm:flex-row sm:gap-x-icon sm:gap-y-0`,t),...r})});function x({label:n,description:o,errorMessage:c,requiredIndicator:p,className:m,...h}){return d(f,{className:g(m,t=>e(`group flex flex-col gap-2`,t)),...h,children:[u(a,{label:n,description:o,errorMessage:c,requiredIndicator:p,children:d(i,{children:[u(l,{className:`flex-1`,variant:`ghost`}),u(r,{variant:`ghost`,size:`icon`,className:`-me-3 ms-2`,children:u(t,{"aria-hidden":!0})})]})}),u(b,{children:u(s,{})})]})}function S({...e}){let t=n({disabled:e.isDisabled});return u(x,{requiredIndicator:t.isRequired,hideTimeZone:!0,granularity:`day`,isDisabled:e.isDisabled||t.isSubmitting,value:t.state.value?v(t.state.value,_()):null,onChange:e=>e?t.handleChange(y(e,_()).toAbsoluteString()):t.handleChange(null),onBlur:t.handleBlur,isInvalid:!!o(t),errorMessage:o(t),...e})}function C({label:n,description:o,errorMessage:s,className:f,...m}){return d(p,{className:g(f,t=>e(`group flex flex-col gap-2`,t)),...m,children:[u(a,{label:n,errorMessage:s,description:o,children:d(i,{children:[u(l,{variant:`ghost`,slot:`start`}),u(`span`,{"aria-hidden":!0,className:`px-2 body-sm text-muted-foreground`,children:`-`}),u(l,{className:`flex-1`,variant:`ghost`,slot:`end`}),u(r,{variant:`ghost`,size:`icon`,className:`mr-1 data-[focus-visible]:ring-offset-0`,children:u(t,{"aria-hidden":!0})})]})}),u(b,{children:u(c,{})})]})}export{x as DatePicker,C as DateRangePicker,S as TfDatePicker};
2
+ //# sourceMappingURL=date-picker.js.map