@cryptlex/web-components 5.1.1 → 5.3.0-alpha

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 (209) hide show
  1. package/dist/components/data-table/data-table-filter.d.ts +27 -0
  2. package/dist/components/data-table/data-table-filter.js +2 -0
  3. package/dist/components/data-table/data-table-filter.js.map +1 -0
  4. package/dist/components/data-table/data-table.d.ts +72 -0
  5. package/dist/components/data-table/data-table.js +2 -0
  6. package/dist/components/data-table/data-table.js.map +1 -0
  7. package/dist/components/data-table/table-commons.d.ts +56 -0
  8. package/dist/components/data-table/table-commons.js +2 -0
  9. package/dist/components/data-table/table-commons.js.map +1 -0
  10. package/dist/components/inputs/checkbox.d.ts +8 -0
  11. package/dist/components/inputs/checkbox.js +2 -0
  12. package/dist/components/inputs/checkbox.js.map +1 -0
  13. package/dist/components/inputs/date-picker.d.ts +11 -0
  14. package/dist/components/inputs/date-picker.js +2 -0
  15. package/dist/components/inputs/date-picker.js.map +1 -0
  16. package/dist/components/inputs/datefield.d.ts +14 -0
  17. package/dist/components/inputs/datefield.js +2 -0
  18. package/dist/components/inputs/datefield.js.map +1 -0
  19. package/dist/components/inputs/field.d.ts +20 -0
  20. package/dist/components/inputs/field.js +2 -0
  21. package/dist/components/inputs/field.js.map +1 -0
  22. package/dist/components/inputs/id-search.d.ts +20 -0
  23. package/dist/components/inputs/id-search.js +2 -0
  24. package/dist/components/inputs/id-search.js.map +1 -0
  25. package/dist/components/inputs/input-otp.d.ts +7 -0
  26. package/dist/components/inputs/input-otp.js +2 -0
  27. package/dist/components/inputs/input-otp.js.map +1 -0
  28. package/dist/components/inputs/multi-select.d.ts +16 -0
  29. package/dist/components/inputs/multi-select.js +2 -0
  30. package/dist/components/inputs/multi-select.js.map +1 -0
  31. package/dist/components/inputs/numberfield.d.ts +6 -0
  32. package/dist/components/inputs/numberfield.js +2 -0
  33. package/dist/components/inputs/numberfield.js.map +1 -0
  34. package/dist/components/inputs/searchfield.d.ts +5 -0
  35. package/dist/components/inputs/searchfield.js +2 -0
  36. package/dist/components/inputs/searchfield.js.map +1 -0
  37. package/dist/components/inputs/select-options.d.ts +8 -0
  38. package/dist/components/inputs/select-options.js +2 -0
  39. package/dist/components/inputs/select-options.js.map +1 -0
  40. package/dist/components/inputs/select.d.ts +17 -0
  41. package/dist/components/inputs/select.js +2 -0
  42. package/dist/components/inputs/select.js.map +1 -0
  43. package/dist/components/inputs/textfield.d.ts +7 -0
  44. package/dist/components/inputs/textfield.js +2 -0
  45. package/dist/components/inputs/textfield.js.map +1 -0
  46. package/dist/components/key-value-card/key-value-card.d.ts +17 -0
  47. package/dist/components/key-value-card/key-value-card.js +2 -0
  48. package/dist/components/key-value-card/key-value-card.js.map +1 -0
  49. package/dist/components/ui/alert.d.ts +8 -0
  50. package/dist/components/ui/alert.js +2 -0
  51. package/dist/components/ui/alert.js.map +1 -0
  52. package/dist/components/ui/avatar.d.ts +7 -0
  53. package/dist/components/ui/avatar.js +2 -0
  54. package/dist/components/ui/avatar.js.map +1 -0
  55. package/dist/components/ui/badge.d.ts +1 -0
  56. package/dist/components/ui/badge.js +2 -0
  57. package/dist/components/ui/badge.js.map +1 -0
  58. package/dist/components/ui/breadcrumbs.d.ts +10 -0
  59. package/dist/components/ui/breadcrumbs.js +2 -0
  60. package/dist/components/ui/breadcrumbs.js.map +1 -0
  61. package/dist/components/ui/button.d.ts +11 -0
  62. package/dist/components/ui/button.js +2 -0
  63. package/dist/components/ui/button.js.map +1 -0
  64. package/dist/components/ui/calendar.d.ts +16 -0
  65. package/dist/components/ui/calendar.js +2 -0
  66. package/dist/components/ui/calendar.js.map +1 -0
  67. package/dist/components/ui/card.d.ts +7 -0
  68. package/dist/components/ui/card.js +2 -0
  69. package/dist/components/ui/card.js.map +1 -0
  70. package/dist/components/ui/dialog.d.ts +18 -0
  71. package/dist/components/ui/dialog.js +2 -0
  72. package/dist/components/ui/dialog.js.map +1 -0
  73. package/dist/components/ui/disclosure.d.ts +18 -0
  74. package/dist/components/ui/disclosure.js +2 -0
  75. package/dist/components/ui/disclosure.js.map +1 -0
  76. package/dist/components/ui/list-box.d.ts +5 -0
  77. package/dist/components/ui/list-box.js +2 -0
  78. package/dist/components/ui/list-box.js.map +1 -0
  79. package/dist/components/ui/loader.d.ts +5 -0
  80. package/dist/components/ui/loader.js +2 -0
  81. package/dist/components/ui/loader.js.map +1 -0
  82. package/dist/components/ui/menu.d.ts +24 -0
  83. package/dist/components/ui/menu.js +2 -0
  84. package/dist/components/ui/menu.js.map +1 -0
  85. package/dist/components/ui/popover.d.ts +4 -0
  86. package/dist/components/ui/popover.js +2 -0
  87. package/dist/components/ui/popover.js.map +1 -0
  88. package/dist/components/ui/sidebar.d.ts +52 -0
  89. package/dist/components/ui/sidebar.js +2 -0
  90. package/dist/components/ui/sidebar.js.map +1 -0
  91. package/dist/components/ui/skeleton.d.ts +1 -0
  92. package/dist/components/ui/skeleton.js +2 -0
  93. package/dist/components/ui/skeleton.js.map +1 -0
  94. package/dist/components/ui/sonner.d.ts +4 -0
  95. package/dist/components/ui/sonner.js +2 -0
  96. package/dist/components/ui/sonner.js.map +1 -0
  97. package/dist/components/ui/table.d.ts +8 -0
  98. package/dist/components/ui/table.js +2 -0
  99. package/dist/components/ui/table.js.map +1 -0
  100. package/dist/components/ui/tabs.d.ts +5 -0
  101. package/dist/components/ui/tabs.js +2 -0
  102. package/dist/components/ui/tabs.js.map +1 -0
  103. package/dist/components/ui/timeline.d.ts +15 -0
  104. package/dist/components/ui/timeline.js +2 -0
  105. package/dist/components/ui/timeline.js.map +1 -0
  106. package/dist/components/ui/tooltip.d.ts +4 -0
  107. package/dist/components/ui/tooltip.js +2 -0
  108. package/dist/components/ui/tooltip.js.map +1 -0
  109. package/dist/utils/form-context.d.ts +4 -0
  110. package/dist/utils/form-context.js +2 -0
  111. package/dist/utils/form-context.js.map +1 -0
  112. package/dist/utils/form-hook.d.ts +23 -0
  113. package/dist/utils/form-hook.js +2 -0
  114. package/dist/utils/form-hook.js.map +1 -0
  115. package/dist/utils/primitives.d.ts +44 -0
  116. package/dist/utils/primitives.js +2 -0
  117. package/dist/utils/primitives.js.map +1 -0
  118. package/dist/utils/resource-names.d.ts +11 -0
  119. package/dist/utils/resource-names.js +2 -0
  120. package/dist/utils/resource-names.js.map +1 -0
  121. package/dist/utils/use-mobile.d.ts +1 -0
  122. package/dist/utils/use-mobile.js +2 -0
  123. package/dist/utils/use-mobile.js.map +1 -0
  124. package/package.json +33 -35
  125. package/dist/components/data-table/data-table-filter.es.js +0 -132
  126. package/dist/components/data-table/data-table-filter.es.js.map +0 -1
  127. package/dist/components/data-table/data-table.es.js +0 -412
  128. package/dist/components/data-table/data-table.es.js.map +0 -1
  129. package/dist/components/data-table/table-commons.es.js +0 -136
  130. package/dist/components/data-table/table-commons.es.js.map +0 -1
  131. package/dist/components/inputs/checkbox.es.js +0 -61
  132. package/dist/components/inputs/checkbox.es.js.map +0 -1
  133. package/dist/components/inputs/date-picker.es.js +0 -124
  134. package/dist/components/inputs/date-picker.es.js.map +0 -1
  135. package/dist/components/inputs/datefield.es.js +0 -90
  136. package/dist/components/inputs/datefield.es.js.map +0 -1
  137. package/dist/components/inputs/field.es.js +0 -91
  138. package/dist/components/inputs/field.es.js.map +0 -1
  139. package/dist/components/inputs/id-search.es.js +0 -61
  140. package/dist/components/inputs/id-search.es.js.map +0 -1
  141. package/dist/components/inputs/input-otp.es.js +0 -60
  142. package/dist/components/inputs/input-otp.es.js.map +0 -1
  143. package/dist/components/inputs/multi-select.es.js +0 -47
  144. package/dist/components/inputs/multi-select.es.js.map +0 -1
  145. package/dist/components/inputs/numberfield.es.js +0 -101
  146. package/dist/components/inputs/numberfield.es.js.map +0 -1
  147. package/dist/components/inputs/searchfield.es.js +0 -80
  148. package/dist/components/inputs/searchfield.es.js.map +0 -1
  149. package/dist/components/inputs/select-options.es.js +0 -286
  150. package/dist/components/inputs/select-options.es.js.map +0 -1
  151. package/dist/components/inputs/select.es.js +0 -113
  152. package/dist/components/inputs/select.es.js.map +0 -1
  153. package/dist/components/inputs/textfield.es.js +0 -86
  154. package/dist/components/inputs/textfield.es.js.map +0 -1
  155. package/dist/components/key-value-card/key-value-card.es.js +0 -53
  156. package/dist/components/key-value-card/key-value-card.es.js.map +0 -1
  157. package/dist/components/ui/alert.es.js +0 -29
  158. package/dist/components/ui/alert.es.js.map +0 -1
  159. package/dist/components/ui/avatar.es.js +0 -19
  160. package/dist/components/ui/avatar.es.js.map +0 -1
  161. package/dist/components/ui/badge.es.js +0 -19
  162. package/dist/components/ui/badge.es.js.map +0 -1
  163. package/dist/components/ui/breadcrumbs.es.js +0 -104
  164. package/dist/components/ui/breadcrumbs.es.js.map +0 -1
  165. package/dist/components/ui/button.es.js +0 -58
  166. package/dist/components/ui/button.es.js.map +0 -1
  167. package/dist/components/ui/calendar.es.js +0 -163
  168. package/dist/components/ui/calendar.es.js.map +0 -1
  169. package/dist/components/ui/card.es.js +0 -53
  170. package/dist/components/ui/card.es.js.map +0 -1
  171. package/dist/components/ui/dialog.es.js +0 -156
  172. package/dist/components/ui/dialog.es.js.map +0 -1
  173. package/dist/components/ui/disclosure.es.js +0 -90
  174. package/dist/components/ui/disclosure.es.js.map +0 -1
  175. package/dist/components/ui/list-box.es.js +0 -76
  176. package/dist/components/ui/list-box.es.js.map +0 -1
  177. package/dist/components/ui/loader.es.js +0 -10
  178. package/dist/components/ui/loader.es.js.map +0 -1
  179. package/dist/components/ui/menu.es.js +0 -129
  180. package/dist/components/ui/menu.es.js.map +0 -1
  181. package/dist/components/ui/popover.es.js +0 -32
  182. package/dist/components/ui/popover.es.js.map +0 -1
  183. package/dist/components/ui/sidebar.es.js +0 -456
  184. package/dist/components/ui/sidebar.es.js.map +0 -1
  185. package/dist/components/ui/skeleton.es.js +0 -9
  186. package/dist/components/ui/skeleton.es.js.map +0 -1
  187. package/dist/components/ui/sonner.es.js +0 -24
  188. package/dist/components/ui/sonner.es.js.map +0 -1
  189. package/dist/components/ui/table.es.js +0 -88
  190. package/dist/components/ui/table.es.js.map +0 -1
  191. package/dist/components/ui/tabs.es.js +0 -83
  192. package/dist/components/ui/tabs.es.js.map +0 -1
  193. package/dist/components/ui/timeline.es.js +0 -46
  194. package/dist/components/ui/timeline.es.js.map +0 -1
  195. package/dist/components/ui/tooltip.es.js +0 -28
  196. package/dist/components/ui/tooltip.es.js.map +0 -1
  197. package/dist/index.es.d.ts +0 -861
  198. package/dist/index.es.js +0 -218
  199. package/dist/index.es.js.map +0 -1
  200. package/dist/utils/form-context.es.js +0 -8
  201. package/dist/utils/form-context.es.js.map +0 -1
  202. package/dist/utils/form-hook.es.js +0 -30
  203. package/dist/utils/form-hook.es.js.map +0 -1
  204. package/dist/utils/primitives.es.js +0 -31
  205. package/dist/utils/primitives.es.js.map +0 -1
  206. package/dist/utils/resource-names.es.js +0 -182
  207. package/dist/utils/resource-names.es.js.map +0 -1
  208. package/dist/utils/use-mobile.es.js +0 -17
  209. package/dist/utils/use-mobile.es.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{jsx as t,jsxs as l}from"react/jsx-runtime";import{OTPInput as u,OTPInputContext as m}from"input-otp";import{classNames as n}from"../../utils/primitives.js";import{Minus as p}from"lucide-react";import{use as d}from"react";import"clsx";function O({className:e,containerClassName:r,...i}){return t(u,{containerClassName:n("flex items-center gap-2 has-disabled:opacity-50",r),className:n("disabled:cursor-not-allowed",e),...i})}function P({className:e,...r}){return t("div",{className:n("flex items-center",e),...r})}function T({index:e,className:r,...i}){const o=d(m),{char:s,hasFakeCaret:a,isActive:c}=o.slots[e];return l("div",{className:n("relative flex h-input w-9 items-center justify-center border-2 border-input body transition-all",c?"z-10 border-2 border-primary":"",r),...i,children:[s,a&&t("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:t("div",{className:"h-icon w-px animate-caret-blink bg-foreground duration-1000"})})]})}function I({...e}){return t("div",{role:"separator",...e,children:t(p,{})})}export{O as InputOTP,P as InputOTPGroup,I as InputOTPSeparator,T as InputOTPSlot};
2
+ //# sourceMappingURL=input-otp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.js","sources":["../../../lib/components/inputs/input-otp.tsx"],"sourcesContent":["import { OTPInput, OTPInputContext } from \"input-otp\";\nimport { classNames } from \"lib/utils/primitives\";\nimport { Minus } from \"lucide-react\";\nimport { use } from \"react\";\n\nexport function InputOTP({\n\tclassName,\n\tcontainerClassName,\n\t...props\n}: React.ComponentProps<typeof OTPInput>) {\n\treturn (\n\t\t<OTPInput\n\t\t\tcontainerClassName={classNames(\n\t\t\t\t\"flex items-center gap-2 has-disabled:opacity-50\",\n\t\t\t\tcontainerClassName,\n\t\t\t)}\n\t\t\tclassName={classNames(\"disabled:cursor-not-allowed\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function InputOTPGroup({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn <div className={classNames(\"flex items-center\", className)} {...props} />;\n}\n\nexport function InputOTPSlot({\n\tindex,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & { index: number }) {\n\tconst inputOTPContext = use(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"relative flex h-input w-9 items-center justify-center border-2 border-input body transition-all\",\n\t\t\t\tisActive ? \"z-10 border-2 border-primary\" : \"\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{char}\n\t\t\t{hasFakeCaret && (\n\t\t\t\t<div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n\t\t\t\t\t<div className=\"h-icon w-px animate-caret-blink bg-foreground duration-1000\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div role=\"separator\" {...props}>\n\t\t\t<Minus />\n\t\t</div>\n\t);\n}\n"],"names":["InputOTP","className","containerClassName","props","jsx","OTPInput","classNames","InputOTPGroup","InputOTPSlot","index","inputOTPContext","use","OTPInputContext","char","hasFakeCaret","isActive","jsxs","InputOTPSeparator","Minus"],"mappings":"iPAKO,SAASA,EAAS,CACxB,UAAAC,EACA,mBAAAC,EACA,GAAGC,CACJ,EAA0C,CACzC,OACCC,EAACC,EAAA,CACA,mBAAoBC,EACnB,kDACAJ,CAAA,EAED,UAAWI,EAAW,8BAA+BL,CAAS,EAC7D,GAAGE,CAAA,CAAA,CAGP,CAEO,SAASI,EAAc,CAC7B,UAAAN,EACA,GAAGE,CACJ,EAAgC,CAC/B,OAAOC,EAAC,OAAI,UAAWE,EAAW,oBAAqBL,CAAS,EAAI,GAAGE,EAAO,CAC/E,CAEO,SAASK,EAAa,CAC5B,MAAAC,EACA,UAAAR,EACA,GAAGE,CACJ,EAAoD,CACnD,MAAMO,EAAkBC,EAAIC,CAAe,EACrC,CAAE,KAAAC,EAAM,aAAAC,EAAc,SAAAC,GAAaL,EAAgB,MAAMD,CAAK,EAEpE,OACCO,EAAC,MAAA,CACA,UAAWV,EACV,kGACAS,EAAW,gCAAkC,GAC7Cd,CAAA,EAEA,GAAGE,EAEH,SAAA,CAAAU,EACAC,KACC,MAAA,CAAI,UAAU,wEACd,SAAAV,EAAC,MAAA,CAAI,UAAU,6DAAA,CAA8D,CAAA,CAC9E,CAAA,CAAA,CAAA,CAIJ,CAEO,SAASa,EAAkB,CAAE,GAAGd,GAAsC,CAC5E,OACCC,EAAC,OAAI,KAAK,YAAa,GAAGD,EACzB,SAAAC,EAACc,IAAM,CAAA,CACR,CAEF"}
@@ -0,0 +1,16 @@
1
+ import { FormFieldProps } from 'lib/components/inputs/field';
2
+ import { SelectOption } from 'lib/components/inputs/select-options';
3
+ import { EasyMenu } from 'lib/components/ui/menu';
4
+ interface MultipleSelectionProps {
5
+ value: Set<string | number>;
6
+ onChange: (v: Set<string | number>) => void;
7
+ buttonLabel?: React.ReactNode;
8
+ items: SelectOption[];
9
+ }
10
+ export interface MultiSelectProps extends MultipleSelectionProps, FormFieldProps, Omit<React.ComponentProps<typeof EasyMenu>, 'label' | 'items'> {
11
+ }
12
+ export declare function MultiSelect({ items, value, onChange: setValue, label, errorMessage, description, ...props }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
13
+ export interface TfMultiSelectProps extends Omit<MultiSelectProps, "value" | "onChange"> {
14
+ }
15
+ export declare function TfMultiSelect({ ...props }: TfMultiSelectProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{FormField as d}from"./field.js";import{EasyMenu as p,MenuItem as a}from"../ui/menu.js";import{useFieldContext as u}from"../../utils/form-context.js";import{getFieldErrorMessage as c}from"../../utils/primitives.js";import"class-variance-authority";import"react-aria-components";import"lucide-react";import"./select.js";import"../ui/button.js";import"../ui/loader.js";import"../ui/list-box.js";import"../ui/popover.js";import"@tanstack/react-form";import"clsx";function f({items:i,value:e,onChange:t,label:l,errorMessage:n,description:m,...s}){return o("div",{className:"group form-field",children:o(d,{label:l,description:m,errorMessage:n,children:o(p,{selectionMode:"multiple",selectedKeys:e,onSelectionChange:r=>{typeof r!="string"&&t(r)},items:i,label:e.size,...s,children:r=>o(a,{id:r.id,isDisabled:r?.disabled,children:r.label},r.id)})})})}function I({...i}){const e=u();return o(f,{value:e.state.value,onChange:e.setValue,onClose:e.handleBlur,errorMessage:c(e),...i})}export{f as MultiSelect,I as TfMultiSelect};
2
+ //# sourceMappingURL=multi-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select.js","sources":["../../../lib/components/inputs/multi-select.tsx"],"sourcesContent":["import { FormField, type FormFieldProps } from \"lib/components/inputs/field\";\nimport type { SelectOption } from \"lib/components/inputs/select-options\";\nimport { EasyMenu, MenuItem } from \"lib/components/ui/menu\";\nimport { useFieldContext } from \"lib/utils/form-context\";\nimport { getFieldErrorMessage } from \"lib/utils/primitives\";\ninterface MultipleSelectionProps {\n\tvalue: Set<string | number>;\n\tonChange: (v: Set<string | number>) => void;\n\tbuttonLabel?: React.ReactNode;\n\titems: SelectOption[];\n}\n\nexport interface MultiSelectProps extends MultipleSelectionProps, FormFieldProps, Omit<React.ComponentProps<typeof EasyMenu>, 'label' | 'items'> { }\n\nexport function MultiSelect({\n\titems,\n\tvalue,\n\tonChange: setValue,\n\tlabel,\n\terrorMessage,\n\tdescription,\n\t...props\n}: MultiSelectProps) {\n\treturn (\n\t\t<div className=\"group form-field\">\n\t\t\t<FormField {...{ label, description, errorMessage }}>\n\t\t\t\t<EasyMenu\n\t\t\t\t\tselectionMode=\"multiple\"\n\t\t\t\t\tselectedKeys={value}\n\t\t\t\t\tonSelectionChange={(v) => {\n\t\t\t\t\t\tif (typeof (v) === 'string') return\n\t\t\t\t\t\tsetValue(v)\n\t\t\t\t\t}}\n\t\t\t\t\titems={items}\n\t\t\t\t\tlabel={value.size}\n\t\t\t\t\t{...props}>\n\t\t\t\t\t{(item) => <MenuItem id={item.id} key={item.id} isDisabled={item?.disabled}>{item.label}</MenuItem>}\n\t\t\t\t</EasyMenu>\n\t\t\t</FormField>\n\t\t</div>\n\t);\n};\n\n\n// TODO implement isDisabled\nexport interface TfMultiSelectProps\n\textends Omit<MultiSelectProps, \"value\" | \"onChange\"> { }\nexport function TfMultiSelect({ ...props }: TfMultiSelectProps) {\n\tconst field = useFieldContext<Set<number | string>>();\n\n\treturn (\n\t\t<MultiSelect\n\t\t\tvalue={field.state.value}\n\t\t\tonChange={field.setValue}\n\t\t\tonClose={field.handleBlur}\n\t\t\terrorMessage={getFieldErrorMessage(field)}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n"],"names":["MultiSelect","items","value","setValue","label","errorMessage","description","props","jsx","FormField","EasyMenu","v","item","MenuItem","TfMultiSelect","field","useFieldContext","getFieldErrorMessage"],"mappings":"0fAcO,SAASA,EAAY,CAC3B,MAAAC,EACA,MAAAC,EACA,SAAUC,EACV,MAAAC,EACA,aAAAC,EACA,YAAAC,EACA,GAAGC,CACJ,EAAqB,CACpB,OACCC,EAAC,MAAA,CAAI,UAAU,mBACd,SAAAA,EAACC,EAAA,CAAgB,MAAAL,EAAO,YAAAE,EAAa,aAAAD,EACpC,SAAAG,EAACE,EAAA,CACA,cAAc,WACd,aAAcR,EACd,kBAAoBS,GAAM,CACrB,OAAQA,GAAO,UACnBR,EAASQ,CAAC,CACX,EACA,MAAAV,EACA,MAAOC,EAAM,KACZ,GAAGK,EACH,SAACK,GAASJ,EAACK,EAAA,CAAS,GAAID,EAAK,GAAkB,WAAYA,GAAM,SAAW,SAAAA,EAAK,KAAA,EAA3CA,EAAK,EAA4C,CAAA,CAAA,EAE1F,CAAA,CACD,CAEF,CAMO,SAASE,EAAc,CAAE,GAAGP,GAA6B,CAC/D,MAAMQ,EAAQC,EAAA,EAEd,OACCR,EAACR,EAAA,CACA,MAAOe,EAAM,MAAM,MACnB,SAAUA,EAAM,SAChB,QAASA,EAAM,WACf,aAAcE,EAAqBF,CAAK,EACvC,GAAGR,CAAA,CAAA,CAGP"}
@@ -0,0 +1,6 @@
1
+ import { NumberFieldProps as AriaNumberFieldProps } from 'react-aria-components';
2
+ import { FormFieldProps } from './field';
3
+ type NumberFieldProps = AriaNumberFieldProps & FormFieldProps;
4
+ export declare function NumberField({ label, description, errorMessage, className, ...props }: NumberFieldProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function TfNumberField({ isDisabled, ...props }: Omit<React.ComponentProps<typeof NumberField>, 'value' | 'id' | 'onChange' | 'onBlur'>): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsx as r,jsxs as d}from"react/jsx-runtime";import{NumberField as c,composeRenderProps as n,Input as p}from"react-aria-components";import{Button as f}from"../ui/button.js";import{useFieldContext as h}from"../../utils/form-context.js";import{getFieldErrorMessage as l,classNames as t}from"../../utils/primitives.js";import{ChevronUp as b,ChevronDown as N}from"lucide-react";import{FormField as g,FieldGroup as F}from"./field.js";import"class-variance-authority";import"../ui/loader.js";import"@tanstack/react-form";import"clsx";const x=c;function v({className:o,...i}){return r(p,{className:n(o,e=>t("w-fit min-w-0 flex-1 border-r border-transparent bg-card pr-2 outline-0 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden",e)),...i})}function w({className:o,...i}){return d("div",{className:t("absolute right-0 flex h-full flex-col border-l",o),...i,children:[r(s,{slot:"increment",children:r(b,{"aria-hidden":!0,className:"size-icon"})}),r("div",{className:"border-b"}),r(s,{slot:"decrement",children:r(N,{"aria-hidden":!0,className:"size-icon"})})]})}function s({className:o,...i}){return r(f,{className:n(o,e=>t("w-auto grow h-3 px-0.5 text-muted-foreground",e)),variant:"ghost",size:"none",...i})}function C({label:o,description:i,errorMessage:e,className:m,...a}){return r(x,{className:n(m,u=>t("group form-field",u)),...a,children:r(g,{label:o,description:i,errorMessage:e,children:d(F,{children:[r(v,{}),r(w,{})]})})})}function P({isDisabled:o,...i}){const e=h();return r(C,{isInvalid:!!l(e),isDisabled:o||e.form.state.isSubmitting,value:e.state.value,id:e.name,onChange:e.handleChange,onBlur:e.handleBlur,errorMessage:l(e),...i})}export{C as NumberField,P as TfNumberField};
2
+ //# sourceMappingURL=numberfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberfield.js","sources":["../../../lib/components/inputs/numberfield.tsx"],"sourcesContent":["import {\n ButtonProps as AriaButtonProps,\n Input as AriaInput,\n InputProps as AriaInputProps,\n NumberField as AriaNumberField,\n NumberFieldProps as AriaNumberFieldProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { Button } from \"lib/components/ui/button\"\nimport { useFieldContext } from \"lib/utils/form-context\"\nimport { classNames, getFieldErrorMessage } from \"lib/utils/primitives\"\nimport { ChevronDown, ChevronUp } from \"lucide-react\"\nimport { FieldGroup, FormField, type FormFieldProps } from \"./field\"\n\nconst ANumberField = AriaNumberField\n\nfunction NumberFieldInput({ className, ...props }: AriaInputProps) {\n return (\n <AriaInput\n className={composeRenderProps(className, (className) =>\n classNames(\n \"w-fit min-w-0 flex-1 border-r border-transparent bg-card pr-2 outline-0 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nfunction NumberFieldSteppers({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={classNames(\n \"absolute right-0 flex h-full flex-col border-l\",\n className\n )}\n {...props}\n >\n <NumberFieldStepper slot=\"increment\">\n <ChevronUp aria-hidden className=\"size-icon\" />\n </NumberFieldStepper>\n <div className=\"border-b\" />\n <NumberFieldStepper slot=\"decrement\">\n <ChevronDown aria-hidden className=\"size-icon\" />\n </NumberFieldStepper>\n </div>\n )\n}\n\nfunction NumberFieldStepper({ className, ...props }: AriaButtonProps) {\n return (\n <Button\n className={composeRenderProps(className, (className) =>\n classNames(\"w-auto grow h-3 px-0.5 text-muted-foreground\", className)\n )}\n variant={\"ghost\"}\n size={\"none\"}\n {...props}\n />\n )\n}\n\ntype NumberFieldProps = AriaNumberFieldProps & FormFieldProps\nexport function NumberField({\n label,\n description,\n errorMessage,\n className,\n ...props\n}: NumberFieldProps) {\n return (\n <ANumberField\n className={composeRenderProps(className, (className) =>\n classNames(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <FieldGroup>\n <NumberFieldInput />\n <NumberFieldSteppers />\n </FieldGroup>\n </FormField>\n </ANumberField>\n )\n}\n\nexport function TfNumberField({ isDisabled, ...props }: Omit<React.ComponentProps<typeof NumberField>, 'value' | 'id' | 'onChange' | 'onBlur'>) {\n const field = useFieldContext<number>();\n\n return (\n <NumberField\n isInvalid={!!getFieldErrorMessage(field)}\n isDisabled={isDisabled || field.form.state.isSubmitting}\n value={field.state.value}\n id={field.name}\n onChange={field.handleChange}\n onBlur={field.handleBlur}\n errorMessage={getFieldErrorMessage(field)}\n {...props}\n />)\n}\n\n"],"names":["ANumberField","AriaNumberField","NumberFieldInput","className","props","jsx","AriaInput","composeRenderProps","classNames","NumberFieldSteppers","jsxs","NumberFieldStepper","ChevronUp","ChevronDown","Button","NumberField","label","description","errorMessage","FormField","FieldGroup","TfNumberField","isDisabled","field","useFieldContext","getFieldErrorMessage"],"mappings":"qhBAeA,MAAMA,EAAeC,EAErB,SAASC,EAAiB,CAAE,UAAAC,EAAW,GAAGC,GAAyB,CACjE,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EACE,qJACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAoB,CAC3B,UAAAN,EACA,GAAGC,CACL,EAAgC,CAC9B,OACEM,EAAC,MAAA,CACC,UAAWF,EACT,iDACAL,CAAA,EAED,GAAGC,EAEJ,SAAA,CAAAC,EAACM,EAAA,CAAmB,KAAK,YACvB,SAAAN,EAACO,GAAU,cAAW,GAAC,UAAU,WAAA,CAAY,CAAA,CAC/C,EACAP,EAAC,MAAA,CAAI,UAAU,UAAA,CAAW,EAC1BA,EAACM,EAAA,CAAmB,KAAK,YACvB,SAAAN,EAACQ,GAAY,cAAW,GAAC,UAAU,WAAA,CAAY,CAAA,CACjD,CAAA,CAAA,CAAA,CAGN,CAEA,SAASF,EAAmB,CAAE,UAAAR,EAAW,GAAGC,GAA0B,CACpE,OACEC,EAACS,EAAA,CACC,UAAWP,EAAmBJ,EAAYA,GACxCK,EAAW,+CAAgDL,CAAS,CAAA,EAEtE,QAAS,QACT,KAAM,OACL,GAAGC,CAAA,CAAA,CAGV,CAGO,SAASW,EAAY,CAC1B,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAf,EACA,GAAGC,CACL,EAAqB,CACnB,OACEC,EAACL,EAAA,CACC,UAAWO,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,WAACe,EAAA,CAAU,MAAAH,EAAc,YAAAC,EAA0B,aAAAC,EACjD,WAACE,EAAA,CACC,SAAA,CAAAf,EAACH,EAAA,EAAiB,IACjBO,EAAA,CAAA,CAAoB,CAAA,CAAA,CACvB,CAAA,CACF,CAAA,CAAA,CAGN,CAEO,SAASY,EAAc,CAAE,WAAAC,EAAY,GAAGlB,GAAiG,CAC9I,MAAMmB,EAAQC,EAAA,EAEd,OACEnB,EAACU,EAAA,CACC,UAAW,CAAC,CAACU,EAAqBF,CAAK,EACvC,WAAYD,GAAcC,EAAM,KAAK,MAAM,aAC3C,MAAOA,EAAM,MAAM,MACnB,GAAIA,EAAM,KACV,SAAUA,EAAM,aAChB,OAAQA,EAAM,WACd,aAAcE,EAAqBF,CAAK,EACvC,GAAGnB,CAAA,CAAA,CAEV"}
@@ -0,0 +1,5 @@
1
+ import { SearchFieldProps as AriaSearchFieldProps } from 'react-aria-components';
2
+ import { FormFieldProps } from './field';
3
+ export interface SearchFieldProps extends AriaSearchFieldProps, FormFieldProps {
4
+ }
5
+ export declare function SearchField({ label, description, className, errorMessage, ...props }: SearchFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as l}from"react/jsx-runtime";import{SearchIcon as s,XIcon as m}from"lucide-react";import{composeRenderProps as n,SearchField as p,Input as u,Button as h}from"react-aria-components";import{classNames as a}from"../../utils/primitives.js";import{FormField as f,FieldGroup as g}from"./field.js";import"clsx";import"class-variance-authority";function F({className:r,...i}){return e(p,{className:n(r,o=>a("group",o)),...i})}function b({className:r,...i}){return e(u,{className:n(r,o=>a("min-w-0 ring-0 focus-visible:outline-none flex-1 bg-card px-2 py-1.5 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden",o)),...i})}function x({className:r,...i}){return e(h,{className:n(r,o=>a("mr-1 opacity-70 ring-offset-background transition-opacity","data-[hovered]:opacity-100","data-[disabled]:pointer-events-none","group-data-[empty]:invisible",o)),...i})}function w({label:r,description:i,className:o,errorMessage:t,...c}){return e(F,{className:n(o,d=>a("group form-field",d)),...c,children:e(f,{label:r,description:i,errorMessage:t,children:l(g,{children:[e(s,{"aria-hidden":!0,className:"size-icon text-muted-foreground"}),e(b,{placeholder:""}),e(x,{children:e(m,{"aria-hidden":!0,className:"size-icon"})})]})})})}export{w as SearchField};
2
+ //# sourceMappingURL=searchfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchfield.js","sources":["../../../lib/components/inputs/searchfield.tsx"],"sourcesContent":["import { SearchIcon, XIcon } from \"lucide-react\"\nimport {\n Button as AriaButton,\n ButtonProps as AriaButtonProps,\n Input as AriaInput,\n InputProps as AriaInputProps,\n SearchField as AriaSearchField,\n SearchFieldProps as AriaSearchFieldProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { classNames } from \"lib/utils/primitives\"\n\nimport { FieldGroup, FormField, type FormFieldProps } from \"./field\"\n\nfunction ASearchField({ className, ...props }: AriaSearchFieldProps) {\n return (\n <AriaSearchField\n className={composeRenderProps(className, (className) =>\n classNames(\"group\", className)\n )}\n {...props}\n />\n )\n}\n\nfunction ASearchFieldInput({ className, ...props }: AriaInputProps) {\n return (\n <AriaInput\n className={composeRenderProps(className, (className) =>\n classNames(\n \"min-w-0 ring-0 focus-visible:outline-none flex-1 bg-card px-2 py-1.5 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nfunction SearchFieldClear({ className, ...props }: AriaButtonProps) {\n return (\n <AriaButton\n className={composeRenderProps(className, (className) =>\n classNames(\n \"mr-1 opacity-70 ring-offset-background transition-opacity\",\n /* Hover */\n \"data-[hovered]:opacity-100\",\n /* Disabled */\n \"data-[disabled]:pointer-events-none\",\n /* Empty */\n \"group-data-[empty]:invisible\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nexport interface SearchFieldProps extends AriaSearchFieldProps, FormFieldProps { };\nexport function SearchField({\n label,\n description,\n className,\n errorMessage,\n ...props\n}: SearchFieldProps) {\n return (\n <ASearchField\n className={composeRenderProps(className, (className) =>\n classNames(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <FieldGroup>\n <SearchIcon aria-hidden className=\"size-icon text-muted-foreground\" />\n <ASearchFieldInput placeholder=\"\" />\n <SearchFieldClear>\n <XIcon aria-hidden className=\"size-icon\" />\n </SearchFieldClear>\n </FieldGroup>\n </FormField>\n </ASearchField>\n )\n}"],"names":["ASearchField","className","props","jsx","AriaSearchField","composeRenderProps","classNames","ASearchFieldInput","AriaInput","SearchFieldClear","AriaButton","SearchField","label","description","errorMessage","FormField","FieldGroup","SearchIcon","XIcon"],"mappings":"sWAeA,SAASA,EAAa,CAAE,UAAAC,EAAW,GAAGC,GAA+B,CACnE,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EAAW,QAASL,CAAS,CAAA,EAE9B,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAkB,CAAE,UAAAN,EAAW,GAAGC,GAAyB,CAClE,OACEC,EAACK,EAAA,CACC,UAAWH,EAAmBJ,EAAYA,GACxCK,EACE,kJACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASO,EAAiB,CAAE,UAAAR,EAAW,GAAGC,GAA0B,CAClE,OACEC,EAACO,EAAA,CACC,UAAWL,EAAmBJ,EAAYA,GACxCK,EACE,4DAEA,6BAEA,sCAEA,+BACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAGO,SAASS,EAAY,CAC1B,MAAAC,EACA,YAAAC,EACA,UAAAZ,EACA,aAAAa,EACA,GAAGZ,CACL,EAAqB,CACnB,OACEC,EAACH,EAAA,CACC,UAAWK,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,WAACa,EAAA,CAAU,MAAAH,EAAc,YAAAC,EAA0B,aAAAC,EACjD,WAACE,EAAA,CACC,SAAA,CAAAb,EAACc,EAAA,CAAW,cAAW,GAAC,UAAU,kCAAkC,EACpEd,EAACI,EAAA,CAAkB,YAAY,EAAA,CAAG,EAClCJ,EAACM,GACC,SAAAN,EAACe,EAAA,CAAM,cAAW,GAAC,UAAU,YAAY,CAAA,CAC3C,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAGN"}
@@ -0,0 +1,8 @@
1
+ export type SelectOption = {
2
+ id: string;
3
+ label: React.ReactNode;
4
+ disabled?: boolean;
5
+ };
6
+ export declare const LICENSE_TYPE_OPTIONS: SelectOption[];
7
+ /** Options for MultiSelect component */
8
+ export declare const COUNTRY_OPTIONS: SelectOption[];
@@ -0,0 +1,2 @@
1
+ import{jsxs as o,Fragment as n,jsx as i}from"react/jsx-runtime";const d=[{label:i(n,{children:"Node-locked"}),id:"node-locked"},{label:i(n,{children:"Hosted floating"}),id:"hosted-floating"},{label:i(n,{children:"LexFloatServer"}),id:"on-premise-floating"}];function t(a){function e(r){return String.fromCodePoint(127397+r.toUpperCase().charCodeAt(0))}return e(a[0])+e(a[1])}const l={AF:"Afghanistan",AX:"Åland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia (Plurinational State of)",BQ:"Bonaire, Sint Eustatius and Saba",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",CV:"Caboe Verde",KH:"Cambodia",CM:"Cameroon",CA:"Canada",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic of the",CK:"Cook Islands",CR:"Costa Rica",CI:"Côte d'voire",HR:"Croatia",CU:"Cuba",CW:"Curaçao",CY:"Cyprus",CZ:"Czechia",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",SZ:"Eswatini",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran (Islamic Republic of)",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (Democratic People's Republic of)",KR:"Korea (Republic of)",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao People's Democratic Republic",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia (Federated States of)",MD:"Moldova, Republic of",MC:"Monaco",MN:"Mongolia",ME:"Montenegro",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands, Kingdom of the",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MK:"North Macedonia",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine, State of",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Réunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",BL:"Saint Barthélemy",SH:"Saint Helena, Ascension Island, Tristan da Cunha",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",MF:"Saint Martin (French part)",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SX:"Sint Maarten (Dutch part)",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",SS:"South Sudan",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania, United Republic of",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Türkiye",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom of Great Britain and Northern Ireland",UM:"United States Minor Outlying Islands",US:"United States of America",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela (Bolivarian Republic of)",VN:"Viet Nam",VG:"Virgin Islands (British)",VI:"Virgin Islands (U.S)",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe"},u=Object.entries(l).map(a=>({label:o(n,{children:[t(a[0])," ",a[1]]}),id:a[0]}));export{u as COUNTRY_OPTIONS,d as LICENSE_TYPE_OPTIONS};
2
+ //# sourceMappingURL=select-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-options.js","sources":["../../../lib/components/inputs/select-options.tsx"],"sourcesContent":["export type SelectOption = {\n\tid: string\n\tlabel: React.ReactNode,\n\tdisabled?: boolean\n}\nexport const LICENSE_TYPE_OPTIONS: SelectOption[] = [\n\t{\n\t\tlabel: <>Node-locked</>,\n\t\tid: \"node-locked\",\n\t},\n\t{\n\t\tlabel: <>Hosted floating</>,\n\t\tid: \"hosted-floating\",\n\t},\n\t{\n\t\tlabel: <>LexFloatServer</>,\n\t\tid: \"on-premise-floating\",\n\t},\n];\n\n\n/**\n * Creates Unicode flag from a two-letter ISO country code.\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\n * @param {string} country — A two-letter ISO country code (case-insensitive).\n * @return {string}\n */\nfunction getCountryFlag(country: string) {\n\tfunction getRegionalIndicatorSymbol(letter: string) {\n\t\treturn String.fromCodePoint(\n\t\t\t0x1f1e6 - 65 + letter.toUpperCase().charCodeAt(0),\n\t\t);\n\t}\n\n\treturn (\n\t\tgetRegionalIndicatorSymbol(country[0]) +\n\t\tgetRegionalIndicatorSymbol(country[1])\n\t);\n}\n\nconst ALL_COUNTRIES: { [key: string]: string } = {\n\tAF: \"Afghanistan\",\n\tAX: \"Åland Islands\",\n\tAL: \"Albania\",\n\tDZ: \"Algeria\",\n\tAS: \"American Samoa\",\n\tAD: \"Andorra\",\n\tAO: \"Angola\",\n\tAI: \"Anguilla\",\n\tAQ: \"Antarctica\",\n\tAG: \"Antigua and Barbuda\",\n\tAR: \"Argentina\",\n\tAM: \"Armenia\",\n\tAW: \"Aruba\",\n\tAU: \"Australia\",\n\tAT: \"Austria\",\n\tAZ: \"Azerbaijan\",\n\tBS: \"Bahamas\",\n\tBH: \"Bahrain\",\n\tBD: \"Bangladesh\",\n\tBB: \"Barbados\",\n\tBY: \"Belarus\",\n\tBE: \"Belgium\",\n\tBZ: \"Belize\",\n\tBJ: \"Benin\",\n\tBM: \"Bermuda\",\n\tBT: \"Bhutan\",\n\tBO: \"Bolivia (Plurinational State of)\",\n\tBQ: \"Bonaire, Sint Eustatius and Saba\",\n\tBA: \"Bosnia and Herzegovina\",\n\tBW: \"Botswana\",\n\tBV: \"Bouvet Island\",\n\tBR: \"Brazil\",\n\tIO: \"British Indian Ocean Territory\",\n\tBN: \"Brunei Darussalam\",\n\tBG: \"Bulgaria\",\n\tBF: \"Burkina Faso\",\n\tBI: \"Burundi\",\n\tCV: \"Caboe Verde\",\n\tKH: \"Cambodia\",\n\tCM: \"Cameroon\",\n\tCA: \"Canada\",\n\tKY: \"Cayman Islands\",\n\tCF: \"Central African Republic\",\n\tTD: \"Chad\",\n\tCL: \"Chile\",\n\tCN: \"China\",\n\tCX: \"Christmas Island\",\n\tCC: \"Cocos (Keeling) Islands\",\n\tCO: \"Colombia\",\n\tKM: \"Comoros\",\n\tCG: \"Congo\",\n\tCD: \"Congo, Democratic Republic of the\",\n\tCK: \"Cook Islands\",\n\tCR: \"Costa Rica\",\n\tCI: \"Côte d'voire\",\n\tHR: \"Croatia\",\n\tCU: \"Cuba\",\n\tCW: \"Curaçao\",\n\tCY: \"Cyprus\",\n\tCZ: \"Czechia\",\n\tDK: \"Denmark\",\n\tDJ: \"Djibouti\",\n\tDM: \"Dominica\",\n\tDO: \"Dominican Republic\",\n\tEC: \"Ecuador\",\n\tEG: \"Egypt\",\n\tSV: \"El Salvador\",\n\tGQ: \"Equatorial Guinea\",\n\tER: \"Eritrea\",\n\tEE: \"Estonia\",\n\tSZ: \"Eswatini\",\n\tET: \"Ethiopia\",\n\tFK: \"Falkland Islands (Malvinas)\",\n\tFO: \"Faroe Islands\",\n\tFJ: \"Fiji\",\n\tFI: \"Finland\",\n\tFR: \"France\",\n\tGF: \"French Guiana\",\n\tPF: \"French Polynesia\",\n\tTF: \"French Southern Territories\",\n\tGA: \"Gabon\",\n\tGM: \"Gambia\",\n\tGE: \"Georgia\",\n\tDE: \"Germany\",\n\tGH: \"Ghana\",\n\tGI: \"Gibraltar\",\n\tGR: \"Greece\",\n\tGL: \"Greenland\",\n\tGD: \"Grenada\",\n\tGP: \"Guadeloupe\",\n\tGU: \"Guam\",\n\tGT: \"Guatemala\",\n\tGG: \"Guernsey\",\n\tGN: \"Guinea\",\n\tGW: \"Guinea-Bissau\",\n\tGY: \"Guyana\",\n\tHT: \"Haiti\",\n\tHM: \"Heard Island and Mcdonald Islands\",\n\tVA: \"Holy See\",\n\tHN: \"Honduras\",\n\tHK: \"Hong Kong\",\n\tHU: \"Hungary\",\n\tIS: \"Iceland\",\n\tIN: \"India\",\n\tID: \"Indonesia\",\n\tIR: \"Iran (Islamic Republic of)\",\n\tIQ: \"Iraq\",\n\tIE: \"Ireland\",\n\tIM: \"Isle of Man\",\n\tIL: \"Israel\",\n\tIT: \"Italy\",\n\tJM: \"Jamaica\",\n\tJP: \"Japan\",\n\tJE: \"Jersey\",\n\tJO: \"Jordan\",\n\tKZ: \"Kazakhstan\",\n\tKE: \"Kenya\",\n\tKI: \"Kiribati\",\n\tKP: \"Korea (Democratic People's Republic of)\",\n\tKR: \"Korea (Republic of)\",\n\tKW: \"Kuwait\",\n\tKG: \"Kyrgyzstan\",\n\tLA: \"Lao People's Democratic Republic\",\n\tLV: \"Latvia\",\n\tLB: \"Lebanon\",\n\tLS: \"Lesotho\",\n\tLR: \"Liberia\",\n\tLY: \"Libya\",\n\tLI: \"Liechtenstein\",\n\tLT: \"Lithuania\",\n\tLU: \"Luxembourg\",\n\tMO: \"Macao\",\n\tMG: \"Madagascar\",\n\tMW: \"Malawi\",\n\tMY: \"Malaysia\",\n\tMV: \"Maldives\",\n\tML: \"Mali\",\n\tMT: \"Malta\",\n\tMH: \"Marshall Islands\",\n\tMQ: \"Martinique\",\n\tMR: \"Mauritania\",\n\tMU: \"Mauritius\",\n\tYT: \"Mayotte\",\n\tMX: \"Mexico\",\n\tFM: \"Micronesia (Federated States of)\",\n\tMD: \"Moldova, Republic of\",\n\tMC: \"Monaco\",\n\tMN: \"Mongolia\",\n\tME: \"Montenegro\",\n\tMS: \"Montserrat\",\n\tMA: \"Morocco\",\n\tMZ: \"Mozambique\",\n\tMM: \"Myanmar\",\n\tNA: \"Namibia\",\n\tNR: \"Nauru\",\n\tNP: \"Nepal\",\n\tNL: \"Netherlands, Kingdom of the\",\n\tNC: \"New Caledonia\",\n\tNZ: \"New Zealand\",\n\tNI: \"Nicaragua\",\n\tNE: \"Niger\",\n\tNG: \"Nigeria\",\n\tNU: \"Niue\",\n\tNF: \"Norfolk Island\",\n\tMK: \"North Macedonia\",\n\tMP: \"Northern Mariana Islands\",\n\tNO: \"Norway\",\n\tOM: \"Oman\",\n\tPK: \"Pakistan\",\n\tPW: \"Palau\",\n\tPS: \"Palestine, State of\",\n\tPA: \"Panama\",\n\tPG: \"Papua New Guinea\",\n\tPY: \"Paraguay\",\n\tPE: \"Peru\",\n\tPH: \"Philippines\",\n\tPN: \"Pitcairn\",\n\tPL: \"Poland\",\n\tPT: \"Portugal\",\n\tPR: \"Puerto Rico\",\n\tQA: \"Qatar\",\n\tRE: \"Réunion\",\n\tRO: \"Romania\",\n\tRU: \"Russian Federation\",\n\tRW: \"Rwanda\",\n\tBL: \"Saint Barthélemy\",\n\tSH: \"Saint Helena, Ascension Island, Tristan da Cunha\",\n\tKN: \"Saint Kitts and Nevis\",\n\tLC: \"Saint Lucia\",\n\tMF: \"Saint Martin (French part)\",\n\tPM: \"Saint Pierre and Miquelon\",\n\tVC: \"Saint Vincent and the Grenadines\",\n\tWS: \"Samoa\",\n\tSM: \"San Marino\",\n\tST: \"Sao Tome and Principe\",\n\tSA: \"Saudi Arabia\",\n\tSN: \"Senegal\",\n\tRS: \"Serbia\",\n\tSC: \"Seychelles\",\n\tSL: \"Sierra Leone\",\n\tSG: \"Singapore\",\n\tSX: \"Sint Maarten (Dutch part)\",\n\tSK: \"Slovakia\",\n\tSI: \"Slovenia\",\n\tSB: \"Solomon Islands\",\n\tSO: \"Somalia\",\n\tZA: \"South Africa\",\n\tGS: \"South Georgia and the South Sandwich Islands\",\n\tSS: \"South Sudan\",\n\tES: \"Spain\",\n\tLK: \"Sri Lanka\",\n\tSD: \"Sudan\",\n\tSR: \"Suriname\",\n\tSJ: \"Svalbard and Jan Mayen\",\n\tSE: \"Sweden\",\n\tCH: \"Switzerland\",\n\tSY: \"Syrian Arab Republic\",\n\tTW: \"Taiwan, Province of China\",\n\tTJ: \"Tajikistan\",\n\tTZ: \"Tanzania, United Republic of\",\n\tTH: \"Thailand\",\n\tTL: \"Timor-Leste\",\n\tTG: \"Togo\",\n\tTK: \"Tokelau\",\n\tTO: \"Tonga\",\n\tTT: \"Trinidad and Tobago\",\n\tTN: \"Tunisia\",\n\tTR: \"Türkiye\",\n\tTM: \"Turkmenistan\",\n\tTC: \"Turks and Caicos Islands\",\n\tTV: \"Tuvalu\",\n\tUG: \"Uganda\",\n\tUA: \"Ukraine\",\n\tAE: \"United Arab Emirates\",\n\tGB: \"United Kingdom of Great Britain and Northern Ireland\",\n\tUM: \"United States Minor Outlying Islands\",\n\tUS: \"United States of America\",\n\tUY: \"Uruguay\",\n\tUZ: \"Uzbekistan\",\n\tVU: \"Vanuatu\",\n\tVE: \"Venezuela (Bolivarian Republic of)\",\n\tVN: \"Viet Nam\",\n\tVG: \"Virgin Islands (British)\",\n\tVI: \"Virgin Islands (U.S)\",\n\tWF: \"Wallis and Futuna\",\n\tEH: \"Western Sahara\",\n\tYE: \"Yemen\",\n\tZM: \"Zambia\",\n\tZW: \"Zimbabwe\",\n};\n\n/** Options for MultiSelect component */\nexport const COUNTRY_OPTIONS: SelectOption[] = Object.entries(ALL_COUNTRIES).map((v) => {\n\treturn {\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{getCountryFlag(v[0])} {v[1]}\n\t\t\t</>\n\t\t),\n\t\tid: v[0],\n\t};\n});"],"names":["LICENSE_TYPE_OPTIONS","getCountryFlag","country","getRegionalIndicatorSymbol","letter","ALL_COUNTRIES","COUNTRY_OPTIONS","v","jsxs","Fragment"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { PopoverProps as AriaPopoverProps, SelectProps as AriaSelectProps, SelectValueProps as AriaSelectValueProps } from 'react-aria-components';
2
+ import { FormFieldProps } from 'lib/components/inputs/field';
3
+ import { SelectOption } from 'lib/components/inputs/select-options';
4
+ import { ListBoxHeader, ListBoxItem } from '../ui/list-box';
5
+ export declare const SelectItem: typeof ListBoxItem;
6
+ export declare const SelectHeader: typeof ListBoxHeader;
7
+ export declare const SelectCollection: typeof import('react-aria-components').Collection;
8
+ export declare const SelectValue: <T extends object>({ className, ...props }: AriaSelectValueProps<T>) => import("react/jsx-runtime").JSX.Element;
9
+ export declare function SelectPopover({ className, ...props }: AriaPopoverProps): import("react/jsx-runtime").JSX.Element;
10
+ export interface SingleSelectProps<T extends SelectOption> extends Omit<AriaSelectProps<T>, "children">, FormFieldProps {
11
+ items: Iterable<T>;
12
+ children: React.ReactNode | ((item: T) => React.ReactNode);
13
+ }
14
+ export declare function SingleSelect<T extends SelectOption>({ label, description, errorMessage, children, className, items, ...props }: SingleSelectProps<T>): import("react/jsx-runtime").JSX.Element;
15
+ type TfSingleSelectProps<T extends SelectOption> = Omit<SingleSelectProps<T>, "value" | "setValue" | 'children'>;
16
+ export declare function TfSingleSelect<T extends SelectOption>({ ...props }: TfSingleSelectProps<T>): import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as o,jsxs as c,Fragment as u}from"react/jsx-runtime";import{Select as p,composeRenderProps as i,SelectValue as f,ListBox as h}from"react-aria-components";import{FormField as S}from"./field.js";import{Button as g}from"../ui/button.js";import{useFieldContext as x}from"../../utils/form-context.js";import{getFieldErrorMessage as B,classNames as l}from"../../utils/primitives.js";import{ChevronDown as N}from"lucide-react";import{ListBoxItem as v,ListBoxHeader as C,ListBoxCollection as w}from"../ui/list-box.js";import{Popover as F}from"../ui/popover.js";import"class-variance-authority";import"../ui/loader.js";import"@tanstack/react-form";import"clsx";const L=p,_=v,G=C,J=w,P=({className:r,...t})=>o(f,{className:i(r,e=>l("line-clamp-1 data-[placeholder]:text-muted-foreground","[&>[slot=description]]:hidden",e)),...t});function V({className:r,children:t,...e}){return o(g,{...e,children:i(t,n=>c(u,{children:[n,o(N,{"aria-hidden":"true",className:"size-icon opacity-50"})]}))})}function j({className:r,...t}){return o(F,{className:i(r,e=>l("w-auto min-w-[--trigger-width]",e)),...t})}function y({className:r,...t}){return o(h,{className:i(r,e=>l("overflow-auto p-1 outline-none [clip-path:inset(0_0_0_0_round_calc(var(--radius)-2px))]",e)),...t})}function H({label:r,description:t,errorMessage:e,children:n,className:s,items:a,...m}){return o(L,{className:i(s,d=>l("group form-field",d)),...m,children:c(S,{label:r,description:t,errorMessage:e,children:[o(V,{children:o(P,{})}),o(j,{children:o(y,{items:a,children:n})})]})})}function O({...r}){const t=x();return o(H,{selectedKey:t.state.value,onSelectionChange:e=>t.handleChange(e.toString()),onBlur:t.handleBlur,errorMessage:B(t),...r,children:e=>o(_,{id:e.id,children:e.label},e.id)})}export{J as SelectCollection,G as SelectHeader,_ as SelectItem,j as SelectPopover,P as SelectValue,H as SingleSelect,O as TfSingleSelect};
2
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sources":["../../../lib/components/inputs/select.tsx"],"sourcesContent":["\"use client\"\nimport {\n ListBox as AriaListBox,\n ListBoxProps as AriaListBoxProps,\n PopoverProps as AriaPopoverProps,\n Select as AriaSelect,\n SelectProps as AriaSelectProps,\n SelectValue as AriaSelectValue,\n SelectValueProps as AriaSelectValueProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { FormField, type FormFieldProps } from \"lib/components/inputs/field\"\nimport type { SelectOption } from \"lib/components/inputs/select-options\"\nimport { Button } from \"lib/components/ui/button\"\nimport { useFieldContext } from \"lib/utils/form-context\"\nimport { classNames, getFieldErrorMessage } from \"lib/utils/primitives\"\nimport { ChevronDown } from \"lucide-react\"\nimport {\n ListBoxCollection,\n ListBoxHeader,\n ListBoxItem,\n} from \"../ui/list-box\"\nimport { Popover } from \"../ui/popover\"\n\nconst ASelect = AriaSelect\nexport const SelectItem = ListBoxItem\nexport const SelectHeader = ListBoxHeader\nexport const SelectCollection = ListBoxCollection\n\nexport const SelectValue = <T extends object>({\n className,\n ...props\n}: AriaSelectValueProps<T>) => (\n <AriaSelectValue\n className={composeRenderProps(className, (className) =>\n classNames(\n \"line-clamp-1 data-[placeholder]:text-muted-foreground\",\n /* Description */\n \"[&>[slot=description]]:hidden\",\n className\n )\n )}\n {...props}\n />\n)\n\nfunction SelectTrigger({ className, children, ...props }: React.ComponentProps<typeof Button>) {\n return (\n <Button {...props}>\n {composeRenderProps(children, (children) => (\n <>\n {children}\n <ChevronDown aria-hidden=\"true\" className=\"size-icon opacity-50\" />\n </>\n ))}\n </Button>\n )\n}\n\nexport function SelectPopover({ className, ...props }: AriaPopoverProps) {\n return (\n <Popover\n className={composeRenderProps(className, (className) =>\n classNames(\"w-auto min-w-[--trigger-width]\", className)\n )}\n {...props}\n />\n )\n}\n\nfunction SelectListBox<T extends object>({\n className,\n ...props\n}: AriaListBoxProps<T>) {\n return (\n <AriaListBox\n className={composeRenderProps(className, (className) =>\n classNames(\n \"overflow-auto p-1 outline-none [clip-path:inset(0_0_0_0_round_calc(var(--radius)-2px))]\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nexport interface SingleSelectProps<T extends SelectOption> extends Omit<AriaSelectProps<T>, \"children\">, FormFieldProps {\n items: Iterable<T>\n children: React.ReactNode | ((item: T) => React.ReactNode)\n}\n\nexport function SingleSelect<T extends SelectOption>({\n label,\n description,\n errorMessage,\n children,\n className,\n items,\n ...props\n}: SingleSelectProps<T>) {\n return (\n <ASelect\n className={composeRenderProps(className, (className) =>\n classNames(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectPopover>\n <SelectListBox items={items}>{children}</SelectListBox>\n </SelectPopover>\n </FormField>\n </ASelect>\n )\n}\n\n\ntype TfSingleSelectProps<T extends SelectOption> = Omit<SingleSelectProps<T>, \"value\" | \"setValue\" | 'children'>;\n\nexport function TfSingleSelect<T extends SelectOption>({ ...props }: TfSingleSelectProps<T>) {\n const field = useFieldContext<string>();\n\n return (\n <SingleSelect\n selectedKey={field.state.value}\n onSelectionChange={(e) => field.handleChange(e!.toString())}\n onBlur={field.handleBlur}\n errorMessage={getFieldErrorMessage(field)}\n {...props}\n >\n {(item) => <SelectItem id={item.id} key={item.id}>{item.label}</SelectItem>}\n </SingleSelect>\n );\n}\n"],"names":["ASelect","AriaSelect","SelectItem","ListBoxItem","SelectHeader","ListBoxHeader","SelectCollection","ListBoxCollection","SelectValue","className","props","jsx","AriaSelectValue","composeRenderProps","classNames","SelectTrigger","children","Button","jsxs","Fragment","ChevronDown","SelectPopover","Popover","SelectListBox","AriaListBox","SingleSelect","label","description","errorMessage","items","FormField","TfSingleSelect","field","useFieldContext","getFieldErrorMessage","item"],"mappings":"oqBAyBA,MAAMA,EAAUC,EACHC,EAAaC,EACbC,EAAeC,EACfC,EAAmBC,EAEnBC,EAAc,CAAmB,CAC5C,UAAAC,EACA,GAAGC,CACL,IACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EACE,wDAEA,gCACAL,CAAA,CACF,EAED,GAAGC,CAAA,CACN,EAGF,SAASK,EAAc,CAAE,UAAAN,EAAW,SAAAO,EAAU,GAAGN,GAA8C,CAC7F,OACEC,EAACM,GAAQ,GAAGP,EACT,WAAmBM,EAAWA,GAC7BE,EAAAC,EAAA,CACG,SAAA,CAAAH,EACDL,EAACS,EAAA,CAAY,cAAY,OAAO,UAAU,sBAAA,CAAuB,CAAA,CAAA,CACnE,CACD,CAAA,CACH,CAEJ,CAEO,SAASC,EAAc,CAAE,UAAAZ,EAAW,GAAGC,GAA2B,CACvE,OACEC,EAACW,EAAA,CACC,UAAWT,EAAmBJ,EAAYA,GACxCK,EAAW,iCAAkCL,CAAS,CAAA,EAEvD,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASa,EAAgC,CACvC,UAAAd,EACA,GAAGC,CACL,EAAwB,CACtB,OACEC,EAACa,EAAA,CACC,UAAWX,EAAmBJ,EAAYA,GACxCK,EACE,0FACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAOO,SAASe,EAAqC,CACnD,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,SAAAZ,EACA,UAAAP,EACA,MAAAoB,EACA,GAAGnB,CACL,EAAyB,CACvB,OACEC,EAACX,EAAA,CACC,UAAWa,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,SAAAQ,EAACY,EAAA,CAAU,MAAAJ,EAAc,YAAAC,EAA0B,aAAAC,EACjD,SAAA,CAAAjB,EAACI,EAAA,CACC,SAAAJ,EAACH,EAAA,CAAA,CAAY,EACf,IACCa,EAAA,CACC,SAAAV,EAACY,EAAA,CAAc,MAAAM,EAAe,SAAAb,EAAS,CAAA,CACzC,CAAA,CAAA,CACF,CAAA,CAAA,CAGN,CAKO,SAASe,EAAuC,CAAE,GAAGrB,GAAiC,CAC3F,MAAMsB,EAAQC,EAAA,EAEd,OACEtB,EAACc,EAAA,CACC,YAAaO,EAAM,MAAM,MACzB,kBAAoB,GAAMA,EAAM,aAAa,EAAG,UAAU,EAC1D,OAAQA,EAAM,WACd,aAAcE,EAAqBF,CAAK,EACvC,GAAGtB,EAEH,SAACyB,GAASxB,EAACT,EAAA,CAAW,GAAIiC,EAAK,GAAmB,SAAAA,EAAK,KAAA,EAAfA,EAAK,EAAgB,CAAA,CAAA,CAGpE"}
@@ -0,0 +1,7 @@
1
+ import { TextFieldProps as AriaTextFieldProps } from 'react-aria-components';
2
+ import { FormFieldProps } from './field';
3
+ export interface TextFieldProps extends AriaTextFieldProps, FormFieldProps {
4
+ textArea?: boolean;
5
+ }
6
+ export declare function TextField({ label, description, errorMessage, textArea, className, ...props }: TextFieldProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function TfTextField({ isDisabled, ...props }: React.ComponentProps<typeof TextField>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{TextField as u,composeRenderProps as i,TextArea as f,Input as p}from"react-aria-components";import{useFieldContext as c}from"../../utils/form-context.js";import{getFieldErrorMessage as d,classNames as n}from"../../utils/primitives.js";import{FormField as g}from"./field.js";import"@tanstack/react-form";import"clsx";import"class-variance-authority";import"lucide-react";const x=u;function b({className:r,...t}){return o(p,{className:i(r,e=>n("flex input-dim w-full border border-input bg-card ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground","disabled-muted","focus-ring",e)),...t})}function h({className:r,...t}){return o(f,{className:i(r,e=>n("flex min-h-32 w-full border border-input bg-card px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground","focus-ring","disabled-muted",e)),...t})}function F({label:r,description:t,errorMessage:e,textArea:l,className:a,...s}){return o(x,{className:i(a,m=>n("group form-field",m)),...s,children:o(g,{label:r,errorMessage:e,description:t,children:l?o(h,{}):o(b,{})})})}function B({isDisabled:r,...t}){const e=c();return o(F,{isDisabled:r||e.form.state.isSubmitting,value:e.state.value,id:e.name,name:e.name,onBlur:e.handleBlur,onChange:e.handleChange,isInvalid:!!d(e),errorMessage:d(e),...t})}export{F as TextField,B as TfTextField};
2
+ //# sourceMappingURL=textfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textfield.js","sources":["../../../lib/components/inputs/textfield.tsx"],"sourcesContent":["import {\n Input as AriaInput,\n InputProps as AriaInputProps,\n TextArea as AriaTextArea,\n TextAreaProps as AriaTextAreaProps,\n TextField as AriaTextField,\n TextFieldProps as AriaTextFieldProps,\n composeRenderProps\n} from \"react-aria-components\"\n\n\nimport { useFieldContext } from \"lib/utils/form-context\"\nimport { classNames, getFieldErrorMessage } from \"lib/utils/primitives\"\nimport { FormField, type FormFieldProps } from \"./field\"\n\nconst ATextField = AriaTextField\n\nfunction Input({ className, ...props }: AriaInputProps) {\n return (\n <AriaInput\n className={composeRenderProps(className, (className) =>\n classNames(\n \"flex input-dim w-full border border-input bg-card ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground\",\n /* Disabled */\n \"disabled-muted\",\n /* Focused */\n \"focus-ring\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nfunction TextArea({ className, ...props }: AriaTextAreaProps) {\n return (\n <AriaTextArea\n className={composeRenderProps(className, (className) =>\n classNames(\n \"flex min-h-32 w-full border border-input bg-card px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground\",\n /* Focused */\n \"focus-ring\",\n /* Disabled */\n \"disabled-muted\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nexport interface TextFieldProps extends AriaTextFieldProps, FormFieldProps {\n textArea?: boolean\n}\n\nexport function TextField({\n label,\n description,\n errorMessage,\n textArea,\n className,\n ...props\n}: TextFieldProps) {\n return (\n <ATextField\n className={composeRenderProps(className, (className) =>\n classNames(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} errorMessage={errorMessage} description={description}>\n {textArea ? <TextArea /> : <Input />}\n </FormField>\n </ATextField>\n )\n}\n\nexport function TfTextField({ isDisabled, ...props }: React.ComponentProps<typeof TextField>) {\n const field = useFieldContext<string>();\n\n return (\n <TextField\n isDisabled={isDisabled || field.form.state.isSubmitting}\n value={field.state.value}\n id={field.name}\n name={field.name}\n onBlur={field.handleBlur}\n onChange={field.handleChange}\n isInvalid={!!getFieldErrorMessage(field)}\n errorMessage={getFieldErrorMessage(field)}\n {...props} />)\n}\n\n\n"],"names":["ATextField","AriaTextField","Input","className","props","jsx","AriaInput","composeRenderProps","classNames","TextArea","AriaTextArea","TextField","label","description","errorMessage","textArea","FormField","TfTextField","isDisabled","field","useFieldContext","getFieldErrorMessage"],"mappings":"iaAeA,MAAMA,EAAaC,EAEnB,SAASC,EAAM,CAAE,UAAAC,EAAW,GAAGC,GAAyB,CACtD,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EACE,6KAEA,iBAEA,aACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAS,CAAE,UAAAN,EAAW,GAAGC,GAA4B,CAC5D,OACEC,EAACK,EAAA,CACC,UAAWH,EAAmBJ,EAAYA,GACxCK,EACE,8HAEA,aAEA,iBACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAMO,SAASO,EAAU,CACxB,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,SAAAC,EACA,UAAAZ,EACA,GAAGC,CACL,EAAmB,CACjB,OACEC,EAACL,EAAA,CACC,UAAWO,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,SAAAC,EAACW,EAAA,CAAU,MAAAJ,EAAc,aAAAE,EAA4B,YAAAD,EAClD,SAAAE,EAAWV,EAACI,EAAA,CAAA,CAAS,EAAKJ,EAACH,EAAA,CAAA,CAAM,CAAA,CACpC,CAAA,CAAA,CAGN,CAEO,SAASe,EAAY,CAAE,WAAAC,EAAY,GAAGd,GAAiD,CAC5F,MAAMe,EAAQC,EAAA,EAEd,OACEf,EAACM,EAAA,CACC,WAAYO,GAAcC,EAAM,KAAK,MAAM,aAC3C,MAAOA,EAAM,MAAM,MACnB,GAAIA,EAAM,KACV,KAAMA,EAAM,KACZ,OAAQA,EAAM,WACd,SAAUA,EAAM,aAChB,UAAW,CAAC,CAACE,EAAqBF,CAAK,EACvC,aAAcE,EAAqBF,CAAK,EACvC,GAAGf,CAAA,CAAA,CACV"}
@@ -0,0 +1,17 @@
1
+ type NestedKeyOf<T> = T extends object ? {
2
+ [K in keyof T]: K extends string | number ? `${K & string}` | `${K & string}.${NestedKeyOf<T[K]>}` : never;
3
+ }[keyof T] : never;
4
+ export type DisplayField<T> = {
5
+ display: string;
6
+ accessor: NestedKeyOf<T>;
7
+ type?: "text" | "badge" | "boolean" | "date" | "yesno" | "copyButton" | "link";
8
+ transform?: (value: any) => React.ReactNode;
9
+ };
10
+ export interface KeyValueCardProps<T> {
11
+ data: T;
12
+ label: string;
13
+ fields: DisplayField<T>[];
14
+ className?: string;
15
+ }
16
+ export declare const KeyValueCard: <T extends {}>({ data, label, fields, }: KeyValueCardProps<T>) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsxs as i,jsx as t}from"react/jsx-runtime";import{formatDate as p}from"../data-table/table-commons.js";import{Badge as m}from"../ui/badge.js";import{Card as d,CardHeader as f,CardTitle as h,CardContent as x}from"../ui/card.js";import{Skeleton as u}from"../ui/skeleton.js";import"@tanstack/react-table";import"date-fns";import"../inputs/checkbox.js";import"react-aria-components";import"../inputs/field.js";import"class-variance-authority";import"../../utils/primitives.js";import"clsx";import"lucide-react";import"../../utils/form-context.js";import"@tanstack/react-form";const Y=({data:n,label:l,fields:o})=>{const c=(e,r)=>{if(e.transform)return e.transform(r);if(r==null)return"-";switch(e.type){case"date":return t("span",{children:p(r)});case"yesno":return t("span",{children:r?"Yes":"No"});case"badge":return t("div",{className:"flex flex-wrap gap-1",children:Array.isArray(r)?r.map((s,a)=>t(m,{children:typeof s=="object"?s?.name||s?.id:s},a)):r});case"boolean":return t("span",{children:r.toString()});default:return t("span",{children:r})}};return i(d,{children:[t(f,{children:t(h,{children:l})}),t(x,{children:t("div",{className:"flex flex-col gap-2",children:n?o.map(e=>{const r=e.accessor?e.accessor.split(".").reduce((s,a)=>s&&a in s?s[a]:void 0,n):null;return i("div",{className:"flex w-full flex-col md:flex-row justify-between first:pt-0 last:pb-0",children:[t("p",{className:"text-sm flex w-full justify-start col-span-1",children:e.display}),t("div",{className:"text-sm flex w-full justify-start text-wrap break-all",children:c(e,r)})]},e.display)}):o.map((e,r)=>t(u,{className:"h-12 w-full"},r))})})]})};export{Y as KeyValueCard};
2
+ //# sourceMappingURL=key-value-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-value-card.js","sources":["../../../lib/components/key-value-card/key-value-card.tsx"],"sourcesContent":["import { formatDate } from \"lib/components/data-table/table-commons\";\nimport { Badge } from \"lib/components/ui/badge\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"lib/components/ui/card\";\nimport { Skeleton } from \"lib/components/ui/skeleton\";\n\n// Utility type to handle nested keys (dot notation) in any object\ntype NestedKeyOf<T> = T extends object\n\t? {\n\t\t[K in keyof T]: K extends string | number\n\t\t? `${K & string}` | `${K & string}.${NestedKeyOf<T[K]>}`\n\t\t: never;\n\t}[keyof T]\n\t: never;\n\n// DisplayField type that works with nested keys\nexport type DisplayField<T> = {\n\tdisplay: string;\n\taccessor: NestedKeyOf<T>;\n\ttype?:\n\t| \"text\"\n\t| \"badge\"\n\t| \"boolean\"\n\t| \"date\"\n\t| \"yesno\"\n\t| \"copyButton\"\n\t| \"link\"; // Field types\n\ttransform?: (value: any) => React.ReactNode;\n};\n\nexport interface KeyValueCardProps<T> {\n\tdata: T; // Ensure data is of type T\n\tlabel: string;\n\tfields: DisplayField<T>[];\n\tclassName?: string;\n}\n\nexport const KeyValueCard = <T extends {}>({\n\tdata,\n\tlabel,\n\tfields,\n}: KeyValueCardProps<T>) => {\n\tconst renderValue = (field: DisplayField<T>, value: any) => {\n\t\tif (field.transform) {\n\t\t\treturn field.transform(value);\n\t\t}\n\t\tif (value === undefined || value === null) {\n\t\t\treturn \"-\";\n\t\t}\n\t\tswitch (field.type) {\n\t\t\tcase \"date\":\n\t\t\t\treturn <span>{formatDate(value)}</span>;\n\t\t\tcase \"yesno\":\n\t\t\t\treturn <span>{value ? \"Yes\" : \"No\"}</span>;\n\t\t\tcase \"badge\":\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"flex flex-wrap gap-1\">\n\t\t\t\t\t\t{Array.isArray(value)\n\t\t\t\t\t\t\t? value.map((item, index) => (\n\t\t\t\t\t\t\t\t<Badge key={index}>\n\t\t\t\t\t\t\t\t\t{typeof item === \"object\" ? item?.name || item?.id : item}\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t: value}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\n\t\t\tcase \"boolean\":\n\t\t\t\treturn <span>{value.toString()}</span>;\n\t\t\tdefault:\n\t\t\t\treturn <span>{value}</span>;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Card>\n\t\t\t<CardHeader>\n\t\t\t\t<CardTitle>{label}</CardTitle>\n\t\t\t</CardHeader>\n\t\t\t<CardContent>\n\t\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t\t{data\n\t\t\t\t\t\t? fields.map((field) => {\n\t\t\t\t\t\t\t// TODO: improve this\n\t\t\t\t\t\t\tconst value = field.accessor\n\t\t\t\t\t\t\t\t? field.accessor\n\t\t\t\t\t\t\t\t\t.split(\".\")\n\t\t\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t\t\t(obj, key) =>\n\t\t\t\t\t\t\t\t\t\t\tobj && key in obj ? obj[key] : undefined,\n\t\t\t\t\t\t\t\t\t\tdata as Record<string, any>,\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={field.display}\n\t\t\t\t\t\t\t\t\tclassName=\"flex w-full flex-col md:flex-row justify-between first:pt-0 last:pb-0\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<p className=\"text-sm flex w-full justify-start col-span-1\">\n\t\t\t\t\t\t\t\t\t\t{field.display}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<div className=\"text-sm flex w-full justify-start text-wrap break-all\">\n\t\t\t\t\t\t\t\t\t\t{renderValue(field, value)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t: fields.map((_, index) => (\n\t\t\t\t\t\t\t<Skeleton key={index} className=\"h-12 w-full\" />\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</CardContent>\n\t\t</Card>\n\t);\n};\n"],"names":["KeyValueCard","data","label","fields","renderValue","field","value","jsx","formatDate","item","index","Badge","Card","CardHeader","CardTitle","CardContent","obj","key","jsxs","_","Skeleton"],"mappings":"mkBAoCO,MAAMA,EAAe,CAAe,CAC1C,KAAAC,EACA,MAAAC,EACA,OAAAC,CACD,IAA4B,CAC3B,MAAMC,EAAc,CAACC,EAAwBC,IAAe,CAC3D,GAAID,EAAM,UACT,OAAOA,EAAM,UAAUC,CAAK,EAE7B,GAA2BA,GAAU,KACpC,MAAO,IAER,OAAQD,EAAM,KAAA,CACb,IAAK,OACJ,OAAOE,EAAC,OAAA,CAAM,SAAAC,EAAWF,CAAK,EAAE,EACjC,IAAK,QACJ,OAAOC,EAAC,OAAA,CAAM,SAAAD,EAAQ,MAAQ,KAAK,EACpC,IAAK,QACJ,OACCC,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,MAAM,QAAQD,CAAK,EACjBA,EAAM,IAAI,CAACG,EAAMC,MACjBC,EAAA,CACC,SAAA,OAAOF,GAAS,SAAWA,GAAM,MAAQA,GAAM,GAAKA,CAAA,EAD1CC,CAEZ,CACA,EACCJ,CAAA,CACJ,EAGF,IAAK,UACJ,OAAOC,EAAC,OAAA,CAAM,SAAAD,EAAM,SAAA,EAAW,EAChC,QACC,OAAOC,EAAC,QAAM,SAAAD,CAAA,CAAM,CAAA,CAEvB,EAEA,SACEM,EAAA,CACA,SAAA,CAAAL,EAACM,EAAA,CACA,SAAAN,EAACO,EAAA,CAAW,SAAAZ,CAAA,CAAM,EACnB,EACAK,EAACQ,EAAA,CACA,SAAAR,EAAC,MAAA,CAAI,UAAU,sBACb,SAAAN,EACEE,EAAO,IAAKE,GAAU,CAEvB,MAAMC,EAAQD,EAAM,SACjBA,EAAM,SACN,MAAM,GAAG,EACT,OACA,CAACW,EAAKC,IACLD,GAAOC,KAAOD,EAAMA,EAAIC,CAAG,EAAI,OAChChB,CAAA,EAEA,KAEH,OACCiB,EAAC,MAAA,CAEA,UAAU,wEAEV,SAAA,CAAAX,EAAC,IAAA,CAAE,UAAU,+CACX,SAAAF,EAAM,QACR,IACC,MAAA,CAAI,UAAU,wDACb,SAAAD,EAAYC,EAAOC,CAAK,CAAA,CAC1B,CAAA,CAAA,EARKD,EAAM,OAAA,CAWd,CAAC,EACCF,EAAO,IAAI,CAACgB,EAAGT,IAChBH,EAACa,EAAA,CAAqB,UAAU,aAAA,EAAjBV,CAA+B,CAC9C,EACH,CAAA,CACD,CAAA,EACD,CAEF"}
@@ -0,0 +1,8 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { LucideIcon } from 'lucide-react';
3
+ export declare const alertVariants: (props?: ({
4
+ variant?: "destructive" | "success" | "muted" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export declare function Alert({ children, className, variant, icon: Icon, ...props }: React.ComponentProps<'div'> & VariantProps<typeof alertVariants> & {
7
+ icon?: LucideIcon;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsxs as i,jsx as t}from"react/jsx-runtime";import{cva as d}from"class-variance-authority";import{classNames as c}from"../../utils/primitives.js";import"clsx";const u=d("transition-colors border border-dotted p-2 text-foreground text-sm inline-flex items-start gap-2",{variants:{variant:{destructive:"bg-destructive-foreground/20 text-destructive border-destructive",success:"bg-success-foreground/20 text-success border-success",muted:"bg-muted-foreground/20 text-muted border-muted"}},defaultVariants:{variant:"muted"}});function v({children:r,className:s,variant:o,icon:e,...a}){return i("div",{role:"alert",className:c(u({variant:o}),s),...a,children:[e&&t(e,{className:"size-icon mt-1"}),t("span",{className:"w-full",children:r})]})}export{v as Alert,u as alertVariants};
2
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sources":["../../../lib/components/ui/alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { classNames } from \"lib/utils/primitives\";\nimport { type LucideIcon } from \"lucide-react\";\n\nexport const alertVariants = cva(\n `transition-colors border border-dotted p-2 text-foreground text-sm inline-flex items-start gap-2`,\n {\n variants: {\n variant: {\n destructive: \"bg-destructive-foreground/20 text-destructive border-destructive\",\n success: \"bg-success-foreground/20 text-success border-success\",\n muted: \"bg-muted-foreground/20 text-muted border-muted\",\n },\n },\n defaultVariants: {\n variant: \"muted\",\n },\n },\n);\n\nexport function Alert({ children, className, variant, icon: Icon, ...props }: React.ComponentProps<'div'> & VariantProps<typeof alertVariants> & {\n icon?: LucideIcon\n}) {\n\n return (\n <div role=\"alert\" className={classNames(alertVariants({ variant }), className)} {...props}>\n {Icon && <Icon className=\"size-icon mt-1\" />}\n <span className=\"w-full\">\n {children}\n </span>\n </div>)\n}"],"names":["alertVariants","cva","Alert","children","className","variant","Icon","props","jsxs","classNames","jsx"],"mappings":"qKAIO,MAAMA,EAAgBC,EACzB,mGACA,CACI,SAAU,CACN,QAAS,CACL,YAAa,mEACb,QAAS,uDACT,MAAO,gDAAA,CACX,EAEJ,gBAAiB,CACb,QAAS,OAAA,CACb,CAER,EAEO,SAASC,EAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,QAAAC,EAAS,KAAMC,EAAM,GAAGC,GAElE,CAEC,OACIC,EAAC,MAAA,CAAI,KAAK,QAAQ,UAAWC,EAAWT,EAAc,CAAE,QAAAK,CAAA,CAAS,EAAGD,CAAS,EAAI,GAAGG,EAC/E,SAAA,CAAAD,GAAQI,EAACJ,EAAA,CAAK,UAAU,gBAAA,CAAiB,EAC1CI,EAAC,OAAA,CAAK,UAAU,SACX,SAAAP,CAAA,CACL,CAAA,EACJ,CACR"}
@@ -0,0 +1,7 @@
1
+ interface InitialString {
2
+ initials: string[2];
3
+ }
4
+ export interface AvatarProps extends Omit<React.ComponentProps<"div">, "children">, InitialString {
5
+ }
6
+ export declare function Avatar({ className, initials, ...props }: AvatarProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{classNames as r}from"../../utils/primitives.js";import"clsx";function l({className:e,initials:t,...n}){return o("div",{className:r("relative text-xs font-mono font-bold flex items-center leading-none justify-center bg-accent text-accent-foreground select-none size-input shrink-0 overflow-hidden rounded-full",e),...n,children:t})}export{l as Avatar};
2
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.js","sources":["../../../lib/components/ui/avatar.tsx"],"sourcesContent":["import { classNames } from \"lib/utils/primitives\";\n\ninterface InitialString {\n\tinitials: string[2];\n}\nexport interface AvatarProps\n\textends Omit<React.ComponentProps<\"div\">, \"children\">,\n\tInitialString { }\nexport function Avatar({ className, initials, ...props }: AvatarProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"relative text-xs font-mono font-bold flex items-center leading-none justify-center bg-accent text-accent-foreground select-none size-input shrink-0 overflow-hidden rounded-full\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{initials}\n\t\t</div>\n\t);\n}\n"],"names":["Avatar","className","initials","props","jsx","classNames"],"mappings":"4GAQO,SAASA,EAAO,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAAsB,CACtE,OACCC,EAAC,MAAA,CACA,UAAWC,EACV,mLACAJ,CAAA,EAEA,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGJ"}
@@ -0,0 +1 @@
1
+ export declare function Badge({ className, children, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{classNames as i}from"../../utils/primitives.js";import"clsx";function m({className:n,children:t,...r}){return e("span",{className:i("text-muted leading-none text-sm px-1 inline-flex items-center justify-center select-none bg-card border h-input focus:outline-hidden focus:ring-1 focus:ring-ring",n),...r,children:e("span",{children:t})})}export{m as Badge};
2
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sources":["../../../lib/components/ui/badge.tsx"],"sourcesContent":["import { classNames } from \"lib/utils/primitives\";\n\nexport function Badge({ className, children, ...props }: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tclassName={classNames(\n\t\t\t\t\"text-muted leading-none text-sm px-1 inline-flex items-center justify-center select-none bg-card border h-input focus:outline-hidden focus:ring-1 focus:ring-ring\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{/* Contents */}\n\t\t\t<span>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t</span>\n\t);\n}\n"],"names":["Badge","className","children","props","jsx","classNames"],"mappings":"4GAEO,SAASA,EAAM,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAAuC,CACtF,OACCC,EAAC,OAAA,CACA,UAAWC,EACV,oKACAJ,CAAA,EAEA,GAAGE,EAGJ,SAAAC,EAAC,QACC,SAAAF,CAAA,CACF,CAAA,CAAA,CAGH"}
@@ -0,0 +1,10 @@
1
+ import { BreadcrumbProps as AriaBreadcrumbProps, BreadcrumbsProps as AriaBreadcrumbsProps, LinkProps as AriaLinkProps } from 'react-aria-components';
2
+ export declare function Breadcrumbs<T extends object>({ className, ...props }: AriaBreadcrumbsProps<T>): import("react/jsx-runtime").JSX.Element;
3
+ export declare function BreadcrumbItem({ className, ...props }: AriaBreadcrumbProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function BreadcrumbLink({ className, ...props }: AriaLinkProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
6
+ export declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
7
+ interface BreadcrumbPageProps extends Omit<AriaLinkProps, "href"> {
8
+ }
9
+ export declare function BreadcrumbPage({ className, ...props }: BreadcrumbPageProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsx as a,jsxs as i}from"react/jsx-runtime";import{Breadcrumbs as c,Breadcrumb as m,Link as s,composeRenderProps as o}from"react-aria-components";import{classNames as t}from"../../utils/primitives.js";import{ChevronRight as d,DotSquare as u}from"lucide-react";import"clsx";function g({className:e,...r}){return a(c,{className:t("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",e),...r})}function B({className:e,...r}){return a(m,{className:t("inline-flex items-center gap-1.5 sm:gap-2.5",e),...r})}function N({className:e,...r}){return a(s,{className:o(e,n=>t("transition-colors","data-[hovered]:text-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50","data-[current]:pointer-events-auto data-[current]:opacity-100",n)),...r})}function h({children:e,className:r,...n}){return a("span",{role:"presentation","aria-hidden":"true",className:t("[&>svg]:size-3.5",r),...n,children:e||a(d,{})})}function v({className:e,...r}){return i("span",{role:"presentation","aria-hidden":"true",className:t("flex size-9 items-center justify-center",e),...r,children:[a(u,{className:"size-4"}),a("span",{className:"sr-only",children:"More"})]})}function y({className:e,...r}){return a(s,{className:o(e,n=>t("font-normal text-foreground",n)),...r})}export{v as BreadcrumbEllipsis,B as BreadcrumbItem,N as BreadcrumbLink,y as BreadcrumbPage,h as BreadcrumbSeparator,g as Breadcrumbs};
2
+ //# sourceMappingURL=breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.js","sources":["../../../lib/components/ui/breadcrumbs.tsx"],"sourcesContent":["import {\n Breadcrumb as AriaBreadcrumb,\n BreadcrumbProps as AriaBreadcrumbProps,\n Breadcrumbs as AriaBreadcrumbs,\n BreadcrumbsProps as AriaBreadcrumbsProps,\n Link as AriaLink,\n LinkProps as AriaLinkProps,\n composeRenderProps,\n} from \"react-aria-components\"\n\nimport { classNames } from \"lib/utils/primitives\"\nimport { ChevronRight, DotSquare } from \"lucide-react\"\n\nexport function Breadcrumbs<T extends object>({\n className,\n ...props\n}: AriaBreadcrumbsProps<T>) {\n return (\n <AriaBreadcrumbs\n className={classNames(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function BreadcrumbItem({ className, ...props }: AriaBreadcrumbProps) {\n return (\n <AriaBreadcrumb\n className={classNames(\"inline-flex items-center gap-1.5 sm:gap-2.5\", className)}\n {...props}\n />\n )\n}\n\nexport function BreadcrumbLink({ className, ...props }: AriaLinkProps) {\n return (\n <AriaLink\n className={composeRenderProps(className, (className) =>\n classNames(\n \"transition-colors\",\n /* Hover */\n \"data-[hovered]:text-foreground\",\n /* Disabled */\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n /* Current */\n \"data-[current]:pointer-events-auto data-[current]:opacity-100\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nexport function BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={classNames(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children || <ChevronRight />}\n </span>\n )\n}\n\nexport function BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={classNames(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <DotSquare className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\ninterface BreadcrumbPageProps extends Omit<AriaLinkProps, \"href\"> { }\n\nexport function BreadcrumbPage({ className, ...props }: BreadcrumbPageProps) {\n return (\n <AriaLink\n className={composeRenderProps(className, (className) =>\n classNames(\"font-normal text-foreground\", className)\n )}\n {...props}\n />\n )\n}\n\n"],"names":["Breadcrumbs","className","props","jsx","AriaBreadcrumbs","classNames","BreadcrumbItem","AriaBreadcrumb","BreadcrumbLink","AriaLink","composeRenderProps","BreadcrumbSeparator","children","ChevronRight","BreadcrumbEllipsis","jsxs","DotSquare","BreadcrumbPage"],"mappings":"uRAaO,SAASA,EAA8B,CAC5C,UAAAC,EACA,GAAGC,CACL,EAA4B,CAC1B,OACEC,EAACC,EAAA,CACC,UAAWC,EACT,2FACAJ,CAAA,EAED,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASI,EAAe,CAAE,UAAAL,EAAW,GAAGC,GAA8B,CAC3E,OACEC,EAACI,EAAA,CACC,UAAWF,EAAW,8CAA+CJ,CAAS,EAC7E,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASM,EAAe,CAAE,UAAAP,EAAW,GAAGC,GAAwB,CACrE,OACEC,EAACM,EAAA,CACC,UAAWC,EAAmBT,EAAYA,GACxCI,EACE,oBAEA,iCAEA,iEAEA,gEACAJ,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASS,EAAoB,CAClC,SAAAC,EACA,UAAAX,EACA,GAAGC,CACL,EAAiC,CAC/B,OACEC,EAAC,OAAA,CACC,KAAK,eACL,cAAY,OACZ,UAAWE,EAAW,mBAAoBJ,CAAS,EAClD,GAAGC,EAEH,SAAAU,KAAaC,EAAA,CAAA,CAAa,CAAA,CAAA,CAGjC,CAEO,SAASC,EAAmB,CACjC,UAAAb,EACA,GAAGC,CACL,EAAiC,CAC/B,OACEa,EAAC,OAAA,CACC,KAAK,eACL,cAAY,OACZ,UAAWV,EAAW,0CAA2CJ,CAAS,EACzE,GAAGC,EAEJ,SAAA,CAAAC,EAACa,EAAA,CAAU,UAAU,QAAA,CAAS,EAC9Bb,EAAC,OAAA,CAAK,UAAU,UAAU,SAAA,MAAA,CAAI,CAAA,CAAA,CAAA,CAGpC,CAIO,SAASc,EAAe,CAAE,UAAAhB,EAAW,GAAGC,GAA8B,CAC3E,OACEC,EAACM,EAAA,CACC,UAAWC,EAAmBT,EAAYA,GACxCI,EAAW,8BAA+BJ,CAAS,CAAA,EAEpD,GAAGC,CAAA,CAAA,CAGV"}
@@ -0,0 +1,11 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { ButtonProps as AriaButtonProps } from 'react-aria-components';
3
+ export declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "ghost" | "primary" | "secondary" | "destructive" | "neutral" | null | undefined;
5
+ size?: "default" | "none" | "icon" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export type ButtonProps = AriaButtonProps & VariantProps<typeof buttonVariants> & {
8
+ ref?: React.Ref<HTMLButtonElement>;
9
+ active?: boolean;
10
+ };
11
+ export declare function Button({ className: additionalClasses, variant, size, children, isPending, active, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as e,jsxs as c,Fragment as i}from"react/jsx-runtime";import{cva as l}from"class-variance-authority";import{classNames as p}from"../../utils/primitives.js";import{Button as d,composeRenderProps as o}from"react-aria-components";import{Loader as f}from"./loader.js";import"clsx";import"lucide-react";const v=l("btn inline-flex gap-1 text-ellipsis overflow-hidden items-center justify-center font-medium transition-colors",{variants:{variant:{primary:"btn-primary",secondary:"btn-secondary",destructive:"btn-destructive",neutral:"btn-neutral",ghost:"btn-ghost",link:"text-primary underline-offset-4 hover:underline"},size:{default:"input-dim",icon:"size-input",none:""}},defaultVariants:{variant:"neutral",size:"default"}});function N({className:r,variant:a,size:s,children:m,isPending:n,active:b,...u}){return e(d,{...u,className:o(r,t=>p(v({variant:a,size:s,className:t}),r)),children:o(m,t=>c(i,{children:[n&&e(f,{}),!n&&e(i,{children:t})]}))})}export{N as Button,v as buttonVariants};
2
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sources":["../../../lib/components/ui/button.tsx"],"sourcesContent":["\"use client\"\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { classNames } from \"lib/utils/primitives\";\nimport {\n\tButton as AriaButton,\n\tcomposeRenderProps,\n\ttype ButtonProps as AriaButtonProps,\n} from \"react-aria-components\";\nimport { Loader } from \"./loader\";\n\nexport const buttonVariants = cva(\n\t\"btn inline-flex gap-1 text-ellipsis overflow-hidden items-center justify-center font-medium transition-colors\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tprimary: \"btn-primary\",\n\t\t\t\tsecondary: \"btn-secondary\",\n\t\t\t\tdestructive: \"btn-destructive\",\n\t\t\t\tneutral: \"btn-neutral\",\n\t\t\t\tghost: \"btn-ghost\",\n\t\t\t\tlink: \"text-primary underline-offset-4 hover:underline\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"input-dim\",\n\t\t\t\ticon: \"size-input\",\n\t\t\t\tnone: \"\"\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"neutral\",\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\nexport type ButtonProps = AriaButtonProps & VariantProps<typeof buttonVariants> & {\n\tref?: React.Ref<HTMLButtonElement>\n\tactive?: boolean\n}\n\nexport function Button({ className: additionalClasses, variant, size, children, isPending, active, ...props }: ButtonProps) {\n\treturn (\n\t\t<AriaButton\n\t\t\t{...props}\n\t\t\tclassName={composeRenderProps(additionalClasses, (className) =>\n\t\t\t\tclassNames(\n\t\t\t\t\tbuttonVariants({\n\t\t\t\t\t\tvariant,\n\t\t\t\t\t\tsize,\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t}),\n\t\t\t\t\tadditionalClasses\n\t\t\t\t)\n\t\t\t)}\n\t\t>\n\t\t\t{composeRenderProps(children, (children) => (<>\n\t\t\t\t{isPending && <Loader />}\n\t\t\t\t{!isPending && <>\n\t\t\t\t\t{children}\n\t\t\t\t\t{/* TODO active indication */}\n\t\t\t\t</>}\n\t\t\t</>))}\n\t\t</AriaButton>\n\t)\n}\n\n"],"names":["buttonVariants","cva","Button","additionalClasses","variant","size","children","isPending","active","props","jsx","AriaButton","composeRenderProps","className","classNames","jsxs","Fragment","Loader"],"mappings":"iUAUO,MAAMA,EAAiBC,EAC7B,gHACA,CACC,SAAU,CACT,QAAS,CACR,QAAS,cACT,UAAW,gBACX,YAAa,kBACb,QAAS,cACT,MAAO,YACP,KAAM,iDAAA,EAEP,KAAM,CACL,QAAS,YACT,KAAM,aACN,KAAM,EAAA,CACP,EAED,gBAAiB,CAChB,QAAS,UACT,KAAM,SAAA,CACP,CAEF,EAOO,SAASC,EAAO,CAAE,UAAWC,EAAmB,QAAAC,EAAS,KAAAC,EAAM,SAAAC,EAAU,UAAAC,EAAW,OAAAC,EAAQ,GAAGC,GAAsB,CAC3H,OACCC,EAACC,EAAA,CACC,GAAGF,EACJ,UAAWG,EAAmBT,EAAoBU,GACjDC,EACCd,EAAe,CACd,QAAAI,EACA,KAAAC,EACA,UAAAQ,CAAA,CACA,EACDV,CAAA,CACD,EAGA,SAAAS,EAAmBN,EAAWA,GAAcS,EAAAC,EAAA,CAC3C,SAAA,CAAAT,KAAcU,EAAA,EAAO,EACrB,CAACV,GAAaG,EAAAM,EAAA,CACb,SAAAV,CAAAA,CAEF,CAAA,EACD,CAAI,CAAA,CAAA,CAGP"}
@@ -0,0 +1,16 @@
1
+ import { CalendarCellProps as AriaCalendarCellProps, CalendarGridBodyProps as AriaCalendarGridBodyProps, CalendarGridProps as AriaCalendarGridProps, CalendarHeaderCellProps as AriaCalendarHeaderCellProps, CalendarProps as AriaCalendarProps, DateValue as AriaDateValue, RangeCalendarProps as AriaRangeCalendarProps } from 'react-aria-components';
2
+ export declare function CalendarHeading(props: React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
3
+ export declare function CalendarGrid({ className, ...props }: AriaCalendarGridProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare const CalendarGridHeader: (props: import('react-aria-components').CalendarGridHeaderProps & React.RefAttributes<HTMLTableSectionElement>) => import('react').ReactElement | null;
5
+ export declare function CalendarHeaderCell({ className, ...props }: AriaCalendarHeaderCellProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function CalendarGridBody({ className, ...props }: AriaCalendarGridBodyProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function CalendarCell({ className, ...props }: AriaCalendarCellProps): import("react/jsx-runtime").JSX.Element;
8
+ interface CalendarProps<T extends AriaDateValue> extends AriaCalendarProps<T> {
9
+ errorMessage?: string;
10
+ }
11
+ export declare function Calendar<T extends AriaDateValue>({ errorMessage, className, ...props }: CalendarProps<T>): import("react/jsx-runtime").JSX.Element;
12
+ interface RangeCalendarProps<T extends AriaDateValue> extends AriaRangeCalendarProps<T> {
13
+ errorMessage?: string;
14
+ }
15
+ export declare function RangeCalendar<T extends AriaDateValue>({ errorMessage, className, ...props }: RangeCalendarProps<T>): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsxs as o,jsx as e}from"react/jsx-runtime";import{today as v,getLocalTimeZone as y}from"@internationalized/date";import{CalendarGridHeader as b,useLocale as N,Heading as S,CalendarGrid as G,CalendarHeaderCell as H,CalendarGridBody as R,RangeCalendarStateContext as $,CalendarCell as w,composeRenderProps as l,Calendar as z,Text as m,RangeCalendar as B}from"react-aria-components";import{Button as c,buttonVariants as j}from"./button.js";import{classNames as n}from"../../utils/primitives.js";import{ChevronRight as s,ChevronLeft as u}from"lucide-react";import{use as L}from"react";import"class-variance-authority";import"./loader.js";import"clsx";function f(t){let{direction:a}=N();return o("header",{className:"flex w-full items-center gap-1 px-1 pb-4",...t,children:[e(c,{slot:"previous",size:"none",className:n("size-7 bg-transparent p-0 opacity-50","data-[hovered]:opacity-100"),children:a==="rtl"?e(s,{"aria-hidden":!0}):e(u,{"aria-hidden":!0})}),e(S,{className:"grow text-center text-sm font-medium"}),e(c,{slot:"next",className:n("size-7 bg-transparent p-0 opacity-50","data-[hovered]:opacity-100"),children:a==="rtl"?e(u,{"aria-hidden":!0}):e(s,{"aria-hidden":!0})})]})}function g({className:t,...a}){return e(G,{className:n(" border-separate border-spacing-x-0 border-spacing-y-1 ",t),...a})}const x=b;function C({className:t,...a}){return e(H,{className:n("w-9 text-xs font-normal text-muted-foreground",t),...a})}function h({className:t,...a}){return e(R,{className:n("[&>tr>td]:p-0",t),...a})}function p({className:t,...a}){const i=!!L($);return e(w,{className:l(t,(d,r)=>n(j({variant:"ghost",size:"none"}),"relative flex size-9 items-center justify-center p-0 text-sm font-normal",r.isDisabled&&"text-muted-foreground opacity-50",r.isSelected&&"bg-primary text-primary-foreground data-[focused]:bg-primary data-[focused]:text-primary-foreground",r.isHovered&&r.isSelected&&(r.isSelectionStart||r.isSelectionEnd||!i)&&"data-[hovered]:bg-primary data-[hovered]:text-primary-foreground",r.isSelected&&i&&!r.isSelectionStart&&!r.isSelectionEnd&&"rounded-none bg-accent text-accent-foreground",r.isOutsideMonth&&"text-muted-foreground opacity-50 data-[selected]:bg-accent/50 data-[selected]:text-muted-foreground data-[selected]:opacity-30",r.date.compare(v(y()))===0&&!r.isSelected&&"bg-accent text-accent-foreground",r.isUnavailable&&"cursor-default text-destructive ",r.isInvalid&&"bg-destructive text-destructive-foreground data-[focused]:bg-destructive data-[hovered]:bg-destructive data-[focused]:text-destructive-foreground data-[hovered]:text-destructive-foreground",d)),...a})}function q({errorMessage:t,className:a,...i}){return o(z,{className:l(a,d=>n("w-fit",d)),...i,children:[e(f,{}),o(g,{children:[e(x,{children:d=>e(C,{children:d})}),e(h,{children:d=>e(p,{date:d})})]}),t&&e(m,{className:"text-sm text-destructive",slot:"errorMessage",children:t})]})}function A({errorMessage:t,className:a,...i}){return o(B,{className:l(a,d=>n("w-fit",d)),...i,children:[e(f,{}),o(g,{children:[e(x,{children:d=>e(C,{children:d})}),e(h,{children:d=>e(p,{date:d})})]}),t&&e(m,{slot:"errorMessage",className:"text-sm text-destructive",children:t})]})}export{q as Calendar,p as CalendarCell,g as CalendarGrid,h as CalendarGridBody,x as CalendarGridHeader,C as CalendarHeaderCell,f as CalendarHeading,A as RangeCalendar};
2
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sources":["../../../lib/components/ui/calendar.tsx"],"sourcesContent":["import { getLocalTimeZone, today } from \"@internationalized/date\"\nimport {\n Calendar as AriaCalendar,\n CalendarCell as AriaCalendarCell,\n CalendarCellProps as AriaCalendarCellProps,\n CalendarGrid as AriaCalendarGrid,\n CalendarGridBody as AriaCalendarGridBody,\n CalendarGridBodyProps as AriaCalendarGridBodyProps,\n CalendarGridHeader as AriaCalendarGridHeader,\n CalendarGridProps as AriaCalendarGridProps,\n CalendarHeaderCell as AriaCalendarHeaderCell,\n CalendarHeaderCellProps as AriaCalendarHeaderCellProps,\n CalendarProps as AriaCalendarProps,\n DateValue as AriaDateValue,\n Heading as AriaHeading,\n RangeCalendar as AriaRangeCalendar,\n RangeCalendarProps as AriaRangeCalendarProps,\n RangeCalendarStateContext as AriaRangeCalendarStateContext,\n composeRenderProps,\n Text,\n useLocale\n} from \"react-aria-components\"\n\nimport { Button, buttonVariants } from \"lib/components/ui/button\"\nimport { classNames } from \"lib/utils/primitives\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { use } from \"react\"\n\nexport function CalendarHeading(props: React.HTMLAttributes<HTMLElement>) {\n let { direction } = useLocale()\n\n return (\n <header className=\"flex w-full items-center gap-1 px-1 pb-4\" {...props}>\n <Button\n slot=\"previous\"\n size='none'\n className={classNames(\n \"size-7 bg-transparent p-0 opacity-50\",\n /* Hover */\n \"data-[hovered]:opacity-100\"\n )}\n >\n {direction === \"rtl\" ? (\n <ChevronRight aria-hidden />\n ) : (\n <ChevronLeft aria-hidden />\n )}\n </Button>\n <AriaHeading className=\"grow text-center text-sm font-medium\" />\n <Button\n slot=\"next\"\n className={classNames(\n \"size-7 bg-transparent p-0 opacity-50\",\n /* Hover */\n \"data-[hovered]:opacity-100\"\n )}\n >\n {direction === \"rtl\" ? (\n <ChevronLeft aria-hidden />\n ) : (\n <ChevronRight aria-hidden />\n )}\n </Button>\n </header>\n )\n}\n\nexport function CalendarGrid({ className, ...props }: AriaCalendarGridProps) {\n return (\n <AriaCalendarGrid\n className={classNames(\n \" border-separate border-spacing-x-0 border-spacing-y-1 \",\n className\n )}\n {...props}\n />\n )\n}\n\nexport const CalendarGridHeader = AriaCalendarGridHeader;\n\nexport function CalendarHeaderCell({\n className,\n ...props\n}: AriaCalendarHeaderCellProps) {\n return (\n <AriaCalendarHeaderCell\n className={classNames(\n \"w-9 text-xs font-normal text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function CalendarGridBody({\n className,\n ...props\n}: AriaCalendarGridBodyProps) {\n return (\n <AriaCalendarGridBody className={classNames(\"[&>tr>td]:p-0\", className)} {...props} />\n )\n}\n\nexport function CalendarCell({ className, ...props }: AriaCalendarCellProps) {\n const isRange = Boolean(use(AriaRangeCalendarStateContext))\n return (\n <AriaCalendarCell\n className={composeRenderProps(className, (className, renderProps) =>\n classNames(\n buttonVariants({ variant: \"ghost\", size: 'none' }),\n \"relative flex size-9 items-center justify-center p-0 text-sm font-normal\",\n /* Disabled */\n renderProps.isDisabled && \"text-muted-foreground opacity-50\",\n /* Selected */\n renderProps.isSelected &&\n \"bg-primary text-primary-foreground data-[focused]:bg-primary data-[focused]:text-primary-foreground\",\n /* Hover */\n renderProps.isHovered &&\n renderProps.isSelected &&\n (renderProps.isSelectionStart ||\n renderProps.isSelectionEnd ||\n !isRange) &&\n \"data-[hovered]:bg-primary data-[hovered]:text-primary-foreground\",\n /* Selection Start/End */\n renderProps.isSelected &&\n isRange &&\n !renderProps.isSelectionStart &&\n !renderProps.isSelectionEnd &&\n \"rounded-none bg-accent text-accent-foreground\",\n /* Outside Month */\n renderProps.isOutsideMonth &&\n \"text-muted-foreground opacity-50 data-[selected]:bg-accent/50 data-[selected]:text-muted-foreground data-[selected]:opacity-30\",\n /* Current Date */\n renderProps.date.compare(today(getLocalTimeZone())) === 0 &&\n !renderProps.isSelected &&\n \"bg-accent text-accent-foreground\",\n /* Unavailable Date */\n renderProps.isUnavailable && \"cursor-default text-destructive \",\n renderProps.isInvalid &&\n \"bg-destructive text-destructive-foreground data-[focused]:bg-destructive data-[hovered]:bg-destructive data-[focused]:text-destructive-foreground data-[hovered]:text-destructive-foreground\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\ninterface CalendarProps<T extends AriaDateValue>\n extends AriaCalendarProps<T> {\n errorMessage?: string\n}\n\nexport function Calendar<T extends AriaDateValue>({\n errorMessage,\n className,\n ...props\n}: CalendarProps<T>) {\n return (\n <AriaCalendar\n className={composeRenderProps(className, (className) =>\n classNames(\"w-fit\", className)\n )}\n {...props}\n >\n <CalendarHeading />\n <CalendarGrid>\n <CalendarGridHeader>\n {(day) => <CalendarHeaderCell>{day}</CalendarHeaderCell>}\n </CalendarGridHeader>\n <CalendarGridBody>\n {(date) => <CalendarCell date={date} />}\n </CalendarGridBody>\n </CalendarGrid>\n {errorMessage && (\n <Text className=\"text-sm text-destructive\" slot=\"errorMessage\">\n {errorMessage}\n </Text>\n )}\n </AriaCalendar>\n )\n}\n\ninterface RangeCalendarProps<T extends AriaDateValue>\n extends AriaRangeCalendarProps<T> {\n errorMessage?: string\n}\n\nexport function RangeCalendar<T extends AriaDateValue>({\n errorMessage,\n className,\n ...props\n}: RangeCalendarProps<T>) {\n return (\n <AriaRangeCalendar\n className={composeRenderProps(className, (className) =>\n classNames(\"w-fit\", className)\n )}\n {...props}\n >\n <CalendarHeading />\n <CalendarGrid>\n <CalendarGridHeader>\n {(day) => <CalendarHeaderCell>{day}</CalendarHeaderCell>}\n </CalendarGridHeader>\n <CalendarGridBody>\n {(date) => <CalendarCell date={date} />}\n </CalendarGridBody>\n </CalendarGrid>\n {errorMessage && (\n <Text slot=\"errorMessage\" className=\"text-sm text-destructive\">\n {errorMessage}\n </Text>\n )}\n </AriaRangeCalendar>\n )\n}\n\n"],"names":["CalendarHeading","props","direction","useLocale","jsxs","jsx","Button","classNames","ChevronRight","ChevronLeft","AriaHeading","CalendarGrid","className","AriaCalendarGrid","CalendarGridHeader","AriaCalendarGridHeader","CalendarHeaderCell","AriaCalendarHeaderCell","CalendarGridBody","AriaCalendarGridBody","CalendarCell","isRange","use","AriaRangeCalendarStateContext","AriaCalendarCell","composeRenderProps","renderProps","buttonVariants","today","getLocalTimeZone","Calendar","errorMessage","AriaCalendar","day","date","Text","RangeCalendar","AriaRangeCalendar"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type * as React from "react";
2
+ export declare function Card({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ export declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
4
+ export declare function CardTitle({ className, ...props }: React.ComponentProps<"h3">): import("react/jsx-runtime").JSX.Element;
5
+ export declare function CardDescription({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
6
+ export declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
7
+ export declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as n}from"react/jsx-runtime";import{classNames as o}from"../../utils/primitives.js";import"clsx";function c({className:r,...e}){return n("div",{className:o("flex flex-col p-icon border border-border bg-card text-card-foreground",r),...e})}function d({className:r,...e}){return n("div",{className:o("flex flex-col gap-y-1 pb-icon shrink-0",r),...e})}function s({className:r,...e}){return n("h3",{className:o("h4 leading-none",r),...e})}function l({className:r,...e}){return n("p",{className:o("caption",r),...e})}function f({className:r,...e}){return n("div",{className:o("grow body",r),...e})}function u({className:r,...e}){return n("div",{className:o("flex items-center w-full pt-icon gap-2 justify-end",r),...e})}export{c as Card,f as CardContent,l as CardDescription,u as CardFooter,d as CardHeader,s as CardTitle};
2
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sources":["../../../lib/components/ui/card.tsx"],"sourcesContent":["import { classNames } from \"lib/utils/primitives\";\nimport type * as React from \"react\";\n\nexport function Card({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"flex flex-col p-icon border border-border bg-card text-card-foreground\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"flex flex-col gap-y-1 pb-icon shrink-0\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n\nexport function CardTitle({ className, ...props }: React.ComponentProps<\"h3\">) {\n\treturn (\n\t\t<h3 className={classNames(\"h4 leading-none\", className)} {...props} />\n\t);\n}\n\n\nexport function CardDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"p\">) {\n\treturn (\n\t\t<p className={classNames(\"caption\", className)} {...props} />\n\t);\n}\n\nexport function CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div className={classNames(\"grow body\", className)} {...props} />\n\t);\n}\n\n\nexport function CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"flex items-center w-full pt-icon gap-2 justify-end\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n\n"],"names":["Card","className","props","jsx","classNames","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":"4GAGO,SAASA,EAAK,CAAE,UAAAC,EAAW,GAAGC,GAAsC,CAC1E,OACCC,EAAC,MAAA,CACA,UAAWC,EACV,yEACAH,CAAA,EAEA,GAAGC,CAAA,CAAA,CAGP,CAEO,SAASG,EAAW,CAAE,UAAAJ,EAAW,GAAGC,GAAsC,CAChF,OACCC,EAAC,MAAA,CACA,UAAWC,EAAW,yCAA0CH,CAAS,EACxE,GAAGC,CAAA,CAAA,CAGP,CAGO,SAASI,EAAU,CAAE,UAAAL,EAAW,GAAGC,GAAqC,CAC9E,OACCC,EAAC,MAAG,UAAWC,EAAW,kBAAmBH,CAAS,EAAI,GAAGC,EAAO,CAEtE,CAGO,SAASK,EAAgB,CAC/B,UAAAN,EACA,GAAGC,CACJ,EAA8B,CAC7B,OACCC,EAAC,KAAE,UAAWC,EAAW,UAAWH,CAAS,EAAI,GAAGC,EAAO,CAE7D,CAEO,SAASM,EAAY,CAAE,UAAAP,EAAW,GAAGC,GAAsC,CACjF,OACCC,EAAC,OAAI,UAAWC,EAAW,YAAaH,CAAS,EAAI,GAAGC,EAAO,CAEjE,CAGO,SAASO,EAAW,CAAE,UAAAR,EAAW,GAAGC,GAAsC,CAChF,OACCC,EAAC,MAAA,CACA,UAAWC,EAAW,qDAAsDH,CAAS,EACpF,GAAGC,CAAA,CAAA,CAGP"}
@@ -0,0 +1,18 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { DialogProps as AriaDialogProps, DialogTrigger as AriaDialogTrigger, HeadingProps as AriaHeadingProps, Modal as AriaModal, ModalOverlayProps as AriaModalOverlayProps } from 'react-aria-components';
3
+ declare const sheetVariants: (props?: ({
4
+ side?: "top" | "bottom" | "left" | "right" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export declare const DialogTrigger: typeof AriaDialogTrigger;
7
+ export declare const DialogOverlay: ({ className, isDismissable, ...props }: AriaModalOverlayProps) => import("react/jsx-runtime").JSX.Element;
8
+ export interface DialogContentProps extends Omit<React.ComponentProps<typeof AriaModal>, "children">, VariantProps<typeof sheetVariants> {
9
+ children?: AriaDialogProps["children"];
10
+ role?: AriaDialogProps["role"];
11
+ closeButton?: boolean;
12
+ }
13
+ export declare function DialogContent({ className, children, side, role, closeButton, ...props }: DialogContentProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function DialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
15
+ export declare function DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
16
+ export declare function DialogTitle({ className, ...props }: AriaHeadingProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function DialogDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsx as a,jsxs as s,Fragment as f}from"react/jsx-runtime";import{cva as c}from"class-variance-authority";import{DialogTrigger as u,ModalOverlay as x,composeRenderProps as l,Modal as p,Dialog as h,Heading as b}from"react-aria-components";import{Button as v}from"./button.js";import{classNames as i}from"../../utils/primitives.js";import{X as y}from"lucide-react";import"./loader.js";import"clsx";const N=c(["fixed z-50 gap-4 bg-popover transition ease-in-out","data-[entering]:duration-200 data-[entering]:animate-in data-[entering]:fade-in-0 data-[exiting]:duration-200 data-[exiting]:animate-out data-[exiting]:fade-out-0"],{variants:{side:{top:"inset-x-0 top-0 border-b data-[entering]:slide-in-from-top data-[exiting]:slide-out-to-top max-h-table",bottom:"inset-x-0 bottom-0 border-t data-[entering]:slide-in-from-bottom data-[exiting]:slide-out-to-bottom max-h-table",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[entering]:slide-in-from-left data-[exiting]:slide-out-to-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[entering]:slide-in-from-right data-[exiting]:slide-out-to-right sm:max-w-sm"}}}),M=u,O=({className:t,isDismissable:e=!0,...n})=>a(x,{isDismissable:e,className:l(t,o=>i("fixed inset-0 z-50 bg-card/20","data-[exiting]:duration-100 data-[exiting]:animate-out","data-[entering]:animate-in",o)),...n});function P({className:t,children:e,side:n,role:o,closeButton:d=!0,...g}){return a(p,{className:l(t,r=>i(n?N({side:n,className:"h-full p-6"}):["fixed left-[50vw] top-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 border bg-popover p-icon duration-100 data-[exiting]:duration-100 data-[entering]:animate-in data-[exiting]:animate-out data-[entering]:fade-in-0 data-[exiting]:fade-out-0 data-[entering]:zoom-in-95 data-[exiting]:zoom-out-95 md:w-full"],r)),...g,children:a(h,{role:o,className:i(!n&&"grid h-full gap-4 relative","h-full outline-none"),children:l(e,(r,m)=>s(f,{children:[r,d&&a("div",{className:"absolute right-1 top-1",children:s(v,{size:"icon",variant:"destructive",onPress:m.close,className:"opacity-70 transition-opacity data-[hovered]:opacity-100",children:[a(y,{}),a("span",{className:"sr-only",children:"Close"})]})})]}))})})}function k({className:t,...e}){return a("div",{className:i("flex flex-col gap-y-2 text-center sm:text-left",t),...e})}function B({className:t,...e}){return a("div",{className:i("flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2",t),...e})}function R({className:t,...e}){return a(b,{slot:"title",className:i("text-lg font-semibold leading-none tracking-tight",t),...e})}function V({className:t,...e}){return a("p",{className:i("flex flex-col gap-y-1 text-center sm:text-left",t),...e})}export{P as DialogContent,V as DialogDescription,B as DialogFooter,k as DialogHeader,O as DialogOverlay,R as DialogTitle,M as DialogTrigger};
2
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sources":["../../../lib/components/ui/dialog.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport {\n Dialog as AriaDialog,\n DialogProps as AriaDialogProps,\n DialogTrigger as AriaDialogTrigger,\n Heading as AriaHeading,\n HeadingProps as AriaHeadingProps,\n Modal as AriaModal,\n ModalOverlay as AriaModalOverlay,\n ModalOverlayProps as AriaModalOverlayProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { Button } from \"lib/components/ui/button\"\nimport { classNames } from \"lib/utils/primitives\"\nimport { X } from \"lucide-react\"\n\nconst sheetVariants = cva(\n [\n \"fixed z-50 gap-4 bg-popover transition ease-in-out\",\n \"data-[entering]:duration-200 data-[entering]:animate-in data-[entering]:fade-in-0 data-[exiting]:duration-200 data-[exiting]:animate-out data-[exiting]:fade-out-0\",\n ],\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[entering]:slide-in-from-top data-[exiting]:slide-out-to-top max-h-table\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[entering]:slide-in-from-bottom data-[exiting]:slide-out-to-bottom max-h-table\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[entering]:slide-in-from-left data-[exiting]:slide-out-to-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[entering]:slide-in-from-right data-[exiting]:slide-out-to-right sm:max-w-sm\",\n },\n },\n }\n)\n\nexport const DialogTrigger = AriaDialogTrigger\n\nexport const DialogOverlay = ({\n className,\n isDismissable = true,\n ...props\n}: AriaModalOverlayProps) => (\n <AriaModalOverlay\n isDismissable={isDismissable}\n className={composeRenderProps(className, (className) =>\n classNames(\n \"fixed inset-0 z-50 bg-card/20\",\n /* Exiting */\n \"data-[exiting]:duration-100 data-[exiting]:animate-out\",\n /* Entering */\n \"data-[entering]:animate-in\",\n className\n )\n )}\n {...props}\n />\n)\n\nexport interface DialogContentProps\n extends Omit<React.ComponentProps<typeof AriaModal>, \"children\">,\n VariantProps<typeof sheetVariants> {\n children?: AriaDialogProps[\"children\"]\n role?: AriaDialogProps[\"role\"]\n closeButton?: boolean\n}\n\nexport function DialogContent({\n className,\n children,\n side,\n role,\n closeButton = true,\n ...props\n}: DialogContentProps) {\n return (\n <AriaModal\n className={composeRenderProps(className, (className) =>\n classNames(\n side\n ? sheetVariants({ side, className: \"h-full p-6\" })\n : [\"fixed left-[50vw] top-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 border bg-popover p-icon duration-100 data-[exiting]:duration-100 data-[entering]:animate-in data-[exiting]:animate-out data-[entering]:fade-in-0 data-[exiting]:fade-out-0 data-[entering]:zoom-in-95 data-[exiting]:zoom-out-95 md:w-full\"],\n className\n )\n )}\n {...props}\n >\n <AriaDialog\n role={role}\n className={classNames(!side && \"grid h-full gap-4 relative\", \"h-full outline-none\")}\n >\n {composeRenderProps(children, (children, renderProps) => (\n <>\n {children}\n {closeButton && (\n <div className=\"absolute right-1 top-1\">\n <Button\n size={'icon'}\n variant={'destructive'}\n onPress={renderProps.close}\n className=\"opacity-70 transition-opacity data-[hovered]:opacity-100\"\n >\n <X />\n <span className=\"sr-only\">Close</span>\n </Button>\n </div>\n )}\n </>\n ))}\n </AriaDialog>\n </AriaModal>\n )\n}\n\nexport function DialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={classNames(\n \"flex flex-col gap-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function DialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={classNames(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function DialogTitle({ className, ...props }: AriaHeadingProps) {\n return (\n <AriaHeading\n slot=\"title\"\n className={classNames(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function DialogDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n className={classNames(\n \"flex flex-col gap-y-1 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n )\n}"],"names":["sheetVariants","cva","DialogTrigger","AriaDialogTrigger","DialogOverlay","className","isDismissable","props","jsx","AriaModalOverlay","composeRenderProps","classNames","DialogContent","children","side","role","closeButton","AriaModal","AriaDialog","renderProps","jsxs","Fragment","Button","X","DialogHeader","DialogFooter","DialogTitle","AriaHeading","DialogDescription"],"mappings":"iZAiBA,MAAMA,EAAgBC,EACpB,CACE,qDACA,qKAAA,EAEF,CACE,SAAU,CACR,KAAM,CACJ,IAAK,yGACL,OACE,kHACF,KAAM,yHACN,MACE,4HAAA,CACJ,CACF,CAEJ,EAEaC,EAAgBC,EAEhBC,EAAgB,CAAC,CAC5B,UAAAC,EACA,cAAAC,EAAgB,GAChB,GAAGC,CACL,IACEC,EAACC,EAAA,CACC,cAAAH,EACA,UAAWI,EAAmBL,EAAYA,GACxCM,EACE,gCAEA,yDAEA,6BACAN,CAAA,CACF,EAED,GAAGE,CAAA,CACN,EAWK,SAASK,EAAc,CAC5B,UAAAP,EACA,SAAAQ,EACA,KAAAC,EACA,KAAAC,EACA,YAAAC,EAAc,GACd,GAAGT,CACL,EAAuB,CACrB,OACEC,EAACS,EAAA,CACC,UAAWP,EAAmBL,EAAYA,GACxCM,EACEG,EACId,EAAc,CAAE,KAAAc,EAAM,UAAW,YAAA,CAAc,EAC/C,CAAC,8TAA8T,EACnUT,CAAA,CACF,EAED,GAAGE,EAEJ,SAAAC,EAACU,EAAA,CACC,KAAAH,EACA,UAAWJ,EAAW,CAACG,GAAQ,6BAA8B,qBAAqB,EAEjF,SAAAJ,EAAmBG,EAAU,CAACA,EAAUM,IACvCC,EAAAC,EAAA,CACG,SAAA,CAAAR,EACAG,GACCR,EAAC,MAAA,CAAI,UAAU,yBACb,SAAAY,EAACE,EAAA,CACC,KAAM,OACN,QAAS,cACT,QAASH,EAAY,MACrB,UAAU,2DAEV,SAAA,CAAAX,EAACe,EAAA,EAAE,EACHf,EAAC,OAAA,CAAK,UAAU,UAAU,SAAA,OAAA,CAAK,CAAA,CAAA,CAAA,CACjC,CACF,CAAA,EAEJ,CACD,CAAA,CAAA,CACH,CAAA,CAGN,CAEO,SAASgB,EAAa,CAC3B,UAAAnB,EACA,GAAGE,CACL,EAAyC,CACvC,OACEC,EAAC,MAAA,CACC,UAAWG,EACT,iDACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEO,SAASkB,EAAa,CAC3B,UAAApB,EACA,GAAGE,CACL,EAAyC,CACvC,OACEC,EAAC,MAAA,CACC,UAAWG,EACT,8DACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEO,SAASmB,EAAY,CAAE,UAAArB,EAAW,GAAGE,GAA2B,CACrE,OACEC,EAACmB,EAAA,CACC,KAAK,QACL,UAAWhB,EACT,oDACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEO,SAASqB,EAAkB,CAChC,UAAAvB,EACA,GAAGE,CACL,EAA+C,CAC7C,OACEC,EAAC,IAAA,CACC,UAAWG,EACT,iDACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
@@ -0,0 +1,18 @@
1
+ import { DisclosureGroupProps as AriaDisclosureGroupProps, DisclosurePanelProps as AriaDisclosurePanelProps, DisclosureProps as AriaDisclosureProps, ButtonProps } from 'react-aria-components';
2
+ export interface DisclosureProps extends AriaDisclosureProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare function Disclosure({ children, className, ...props }: DisclosureProps): import("react/jsx-runtime").JSX.Element;
6
+ export interface DisclosureHeaderProps {
7
+ children: React.ReactNode;
8
+ className?: ButtonProps["className"];
9
+ }
10
+ export declare function DisclosureHeader({ children, className }: DisclosureHeaderProps): import("react/jsx-runtime").JSX.Element;
11
+ export interface DisclosurePanelProps extends AriaDisclosurePanelProps {
12
+ children: React.ReactNode;
13
+ }
14
+ export declare function DisclosurePanel({ children, className, ...props }: DisclosurePanelProps): import("react/jsx-runtime").JSX.Element;
15
+ export interface DisclosureGroupProps extends AriaDisclosureGroupProps {
16
+ children: React.ReactNode;
17
+ }
18
+ export declare function DisclosureGroup({ children, className, ...props }: DisclosureGroupProps): import("react/jsx-runtime").JSX.Element;