@tribepad/themis 1.0.11 → 1.0.12

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 (221) hide show
  1. package/dist/elements/Accordion/Accordion.types.d.ts +44 -4
  2. package/dist/elements/Accordion/Accordion.types.d.ts.map +1 -1
  3. package/dist/elements/Accordion/index.js +1 -1
  4. package/dist/elements/Accordion/index.js.map +1 -1
  5. package/dist/elements/Accordion/index.mjs +1 -1
  6. package/dist/elements/Accordion/index.mjs.map +1 -1
  7. package/dist/elements/AlertDialog/AlertDialog.types.d.ts +19 -2
  8. package/dist/elements/AlertDialog/AlertDialog.types.d.ts.map +1 -1
  9. package/dist/elements/AlertDialog/index.js +1 -1
  10. package/dist/elements/AlertDialog/index.js.map +1 -1
  11. package/dist/elements/AlertDialog/index.mjs +1 -1
  12. package/dist/elements/AlertDialog/index.mjs.map +1 -1
  13. package/dist/elements/Avatar/Avatar.d.ts +1 -21
  14. package/dist/elements/Avatar/Avatar.d.ts.map +1 -1
  15. package/dist/elements/Avatar/Avatar.types.d.ts +30 -11
  16. package/dist/elements/Avatar/Avatar.types.d.ts.map +1 -1
  17. package/dist/elements/Avatar/AvatarGroup.d.ts +1 -17
  18. package/dist/elements/Avatar/AvatarGroup.d.ts.map +1 -1
  19. package/dist/elements/Avatar/index.js +1 -1
  20. package/dist/elements/Avatar/index.js.map +1 -1
  21. package/dist/elements/Avatar/index.mjs +1 -1
  22. package/dist/elements/Avatar/index.mjs.map +1 -1
  23. package/dist/elements/Badge/Badge.types.d.ts +16 -9
  24. package/dist/elements/Badge/Badge.types.d.ts.map +1 -1
  25. package/dist/elements/Badge/index.js +1 -1
  26. package/dist/elements/Badge/index.js.map +1 -1
  27. package/dist/elements/Badge/index.mjs +1 -1
  28. package/dist/elements/Badge/index.mjs.map +1 -1
  29. package/dist/elements/Breadcrumbs/Breadcrumbs.d.ts +2 -34
  30. package/dist/elements/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  31. package/dist/elements/Breadcrumbs/Breadcrumbs.types.d.ts +25 -2
  32. package/dist/elements/Breadcrumbs/Breadcrumbs.types.d.ts.map +1 -1
  33. package/dist/elements/Breadcrumbs/index.js +1 -1
  34. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  35. package/dist/elements/Breadcrumbs/index.mjs +1 -1
  36. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  37. package/dist/elements/Button/Button.d.ts +1 -24
  38. package/dist/elements/Button/Button.d.ts.map +1 -1
  39. package/dist/elements/Button/Button.types.d.ts +28 -7
  40. package/dist/elements/Button/Button.types.d.ts.map +1 -1
  41. package/dist/elements/ButtonGroup/ButtonGroup.d.ts +3 -14
  42. package/dist/elements/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  43. package/dist/elements/ButtonGroup/ButtonGroup.types.d.ts +14 -5
  44. package/dist/elements/ButtonGroup/ButtonGroup.types.d.ts.map +1 -1
  45. package/dist/elements/ButtonGroup/index.js +1 -1
  46. package/dist/elements/ButtonGroup/index.js.map +1 -1
  47. package/dist/elements/ButtonGroup/index.mjs +1 -1
  48. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  49. package/dist/elements/Carousel/Carousel.types.d.ts +26 -7
  50. package/dist/elements/Carousel/Carousel.types.d.ts.map +1 -1
  51. package/dist/elements/Chart/Chart.d.ts +2 -40
  52. package/dist/elements/Chart/Chart.d.ts.map +1 -1
  53. package/dist/elements/Chart/Chart.types.d.ts +25 -10
  54. package/dist/elements/Chart/Chart.types.d.ts.map +1 -1
  55. package/dist/elements/Chart/index.js +1 -1
  56. package/dist/elements/Chart/index.js.map +1 -1
  57. package/dist/elements/Chart/index.mjs +1 -1
  58. package/dist/elements/Chart/index.mjs.map +1 -1
  59. package/dist/elements/Checkbox/Checkbox.d.ts +1 -31
  60. package/dist/elements/Checkbox/Checkbox.d.ts.map +1 -1
  61. package/dist/elements/Checkbox/Checkbox.types.d.ts +33 -1
  62. package/dist/elements/Checkbox/Checkbox.types.d.ts.map +1 -1
  63. package/dist/elements/Checkbox/index.js +1 -1
  64. package/dist/elements/Checkbox/index.js.map +1 -1
  65. package/dist/elements/Checkbox/index.mjs +1 -1
  66. package/dist/elements/Checkbox/index.mjs.map +1 -1
  67. package/dist/elements/CheckboxGroup/CheckboxGroup.d.ts +1 -26
  68. package/dist/elements/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
  69. package/dist/elements/CheckboxGroup/CheckboxGroup.types.d.ts +48 -4
  70. package/dist/elements/CheckboxGroup/CheckboxGroup.types.d.ts.map +1 -1
  71. package/dist/elements/CheckboxGroup/index.js +1 -1
  72. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  73. package/dist/elements/CheckboxGroup/index.mjs +1 -1
  74. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  75. package/dist/elements/Combobox/Combobox.d.ts +1 -30
  76. package/dist/elements/Combobox/Combobox.d.ts.map +1 -1
  77. package/dist/elements/Combobox/Combobox.types.d.ts +38 -4
  78. package/dist/elements/Combobox/Combobox.types.d.ts.map +1 -1
  79. package/dist/elements/Combobox/index.js +1 -1
  80. package/dist/elements/Combobox/index.js.map +1 -1
  81. package/dist/elements/Combobox/index.mjs +1 -1
  82. package/dist/elements/Combobox/index.mjs.map +1 -1
  83. package/dist/elements/Dropdown/Dropdown.d.ts +10 -124
  84. package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -1
  85. package/dist/elements/Dropdown/Dropdown.types.d.ts +53 -8
  86. package/dist/elements/Dropdown/Dropdown.types.d.ts.map +1 -1
  87. package/dist/elements/FileField/FileField.d.ts +2 -39
  88. package/dist/elements/FileField/FileField.d.ts.map +1 -1
  89. package/dist/elements/FileField/FileField.types.d.ts +31 -13
  90. package/dist/elements/FileField/FileField.types.d.ts.map +1 -1
  91. package/dist/elements/FileField/index.js +1 -1
  92. package/dist/elements/FileField/index.js.map +1 -1
  93. package/dist/elements/FileField/index.mjs +1 -1
  94. package/dist/elements/FileField/index.mjs.map +1 -1
  95. package/dist/elements/FormLayout/FormLayout.d.ts +2 -37
  96. package/dist/elements/FormLayout/FormLayout.d.ts.map +1 -1
  97. package/dist/elements/FormLayout/FormLayout.types.d.ts +19 -3
  98. package/dist/elements/FormLayout/FormLayout.types.d.ts.map +1 -1
  99. package/dist/elements/MatrixGrid/MatrixGrid.d.ts +2 -29
  100. package/dist/elements/MatrixGrid/MatrixGrid.d.ts.map +1 -1
  101. package/dist/elements/MatrixGrid/MatrixGrid.types.d.ts +22 -1
  102. package/dist/elements/MatrixGrid/MatrixGrid.types.d.ts.map +1 -1
  103. package/dist/elements/MatrixGrid/index.js +1 -1
  104. package/dist/elements/MatrixGrid/index.js.map +1 -1
  105. package/dist/elements/MatrixGrid/index.mjs +1 -1
  106. package/dist/elements/MatrixGrid/index.mjs.map +1 -1
  107. package/dist/elements/Modal/Modal.types.d.ts +69 -9
  108. package/dist/elements/Modal/Modal.types.d.ts.map +1 -1
  109. package/dist/elements/Pagination/Pagination.d.ts +2 -28
  110. package/dist/elements/Pagination/Pagination.d.ts.map +1 -1
  111. package/dist/elements/Pagination/Pagination.types.d.ts +26 -1
  112. package/dist/elements/Pagination/Pagination.types.d.ts.map +1 -1
  113. package/dist/elements/Pagination/index.js +1 -1
  114. package/dist/elements/Pagination/index.js.map +1 -1
  115. package/dist/elements/Pagination/index.mjs +1 -1
  116. package/dist/elements/Pagination/index.mjs.map +1 -1
  117. package/dist/elements/Panel/Panel.types.d.ts +67 -9
  118. package/dist/elements/Panel/Panel.types.d.ts.map +1 -1
  119. package/dist/elements/PasswordField/PasswordField.d.ts +2 -26
  120. package/dist/elements/PasswordField/PasswordField.d.ts.map +1 -1
  121. package/dist/elements/PasswordField/PasswordField.types.d.ts +27 -2
  122. package/dist/elements/PasswordField/PasswordField.types.d.ts.map +1 -1
  123. package/dist/elements/PasswordField/index.js +1 -1
  124. package/dist/elements/PasswordField/index.js.map +1 -1
  125. package/dist/elements/PasswordField/index.mjs +1 -1
  126. package/dist/elements/PasswordField/index.mjs.map +1 -1
  127. package/dist/elements/RadioGroup/RadioGroup.d.ts +1 -26
  128. package/dist/elements/RadioGroup/RadioGroup.d.ts.map +1 -1
  129. package/dist/elements/RadioGroup/RadioGroup.types.d.ts +43 -4
  130. package/dist/elements/RadioGroup/RadioGroup.types.d.ts.map +1 -1
  131. package/dist/elements/RadioGroup/index.js +1 -1
  132. package/dist/elements/RadioGroup/index.js.map +1 -1
  133. package/dist/elements/RadioGroup/index.mjs +1 -1
  134. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  135. package/dist/elements/RatingScale/RatingScale.d.ts +2 -30
  136. package/dist/elements/RatingScale/RatingScale.d.ts.map +1 -1
  137. package/dist/elements/RatingScale/RatingScale.types.d.ts +29 -1
  138. package/dist/elements/RatingScale/RatingScale.types.d.ts.map +1 -1
  139. package/dist/elements/RatingScale/index.js +1 -1
  140. package/dist/elements/RatingScale/index.js.map +1 -1
  141. package/dist/elements/RatingScale/index.mjs +1 -1
  142. package/dist/elements/RatingScale/index.mjs.map +1 -1
  143. package/dist/elements/SearchField/SearchField.d.ts +2 -26
  144. package/dist/elements/SearchField/SearchField.d.ts.map +1 -1
  145. package/dist/elements/SearchField/SearchField.types.d.ts +26 -2
  146. package/dist/elements/SearchField/SearchField.types.d.ts.map +1 -1
  147. package/dist/elements/SearchField/index.js +1 -1
  148. package/dist/elements/SearchField/index.js.map +1 -1
  149. package/dist/elements/SearchField/index.mjs +1 -1
  150. package/dist/elements/SearchField/index.mjs.map +1 -1
  151. package/dist/elements/Select/Select.d.ts +3 -61
  152. package/dist/elements/Select/Select.d.ts.map +1 -1
  153. package/dist/elements/Select/Select.types.d.ts +52 -4
  154. package/dist/elements/Select/Select.types.d.ts.map +1 -1
  155. package/dist/elements/Select/index.js +1 -1
  156. package/dist/elements/Select/index.js.map +1 -1
  157. package/dist/elements/Select/index.mjs +1 -1
  158. package/dist/elements/Select/index.mjs.map +1 -1
  159. package/dist/elements/SituationalJudgement/SituationalJudgement.d.ts +2 -28
  160. package/dist/elements/SituationalJudgement/SituationalJudgement.d.ts.map +1 -1
  161. package/dist/elements/SituationalJudgement/SituationalJudgement.types.d.ts +23 -1
  162. package/dist/elements/SituationalJudgement/SituationalJudgement.types.d.ts.map +1 -1
  163. package/dist/elements/SituationalJudgement/index.js +1 -1
  164. package/dist/elements/SituationalJudgement/index.js.map +1 -1
  165. package/dist/elements/SituationalJudgement/index.mjs +1 -1
  166. package/dist/elements/SituationalJudgement/index.mjs.map +1 -1
  167. package/dist/elements/Skeleton/Skeleton.types.d.ts +11 -6
  168. package/dist/elements/Skeleton/Skeleton.types.d.ts.map +1 -1
  169. package/dist/elements/Skeleton/index.js +1 -1
  170. package/dist/elements/Skeleton/index.js.map +1 -1
  171. package/dist/elements/Skeleton/index.mjs +1 -1
  172. package/dist/elements/Skeleton/index.mjs.map +1 -1
  173. package/dist/elements/Switch/Switch.types.d.ts +31 -7
  174. package/dist/elements/Switch/Switch.types.d.ts.map +1 -1
  175. package/dist/elements/Switch/index.js +1 -1
  176. package/dist/elements/Switch/index.js.map +1 -1
  177. package/dist/elements/Switch/index.mjs +1 -1
  178. package/dist/elements/Switch/index.mjs.map +1 -1
  179. package/dist/elements/Table/Table.d.ts +7 -79
  180. package/dist/elements/Table/Table.d.ts.map +1 -1
  181. package/dist/elements/Table/Table.types.d.ts +82 -17
  182. package/dist/elements/Table/Table.types.d.ts.map +1 -1
  183. package/dist/elements/Table/index.js +1 -1
  184. package/dist/elements/Table/index.js.map +1 -1
  185. package/dist/elements/Table/index.mjs +1 -1
  186. package/dist/elements/Table/index.mjs.map +1 -1
  187. package/dist/elements/Tabs/Tabs.types.d.ts +61 -5
  188. package/dist/elements/Tabs/Tabs.types.d.ts.map +1 -1
  189. package/dist/elements/Tabs/index.js +1 -1
  190. package/dist/elements/Tabs/index.js.map +1 -1
  191. package/dist/elements/Tabs/index.mjs +1 -1
  192. package/dist/elements/Tabs/index.mjs.map +1 -1
  193. package/dist/elements/TextField/TextField.d.ts +6 -71
  194. package/dist/elements/TextField/TextField.d.ts.map +1 -1
  195. package/dist/elements/TextField/TextField.types.d.ts +76 -12
  196. package/dist/elements/TextField/TextField.types.d.ts.map +1 -1
  197. package/dist/elements/TextField/index.js +1 -1
  198. package/dist/elements/TextField/index.js.map +1 -1
  199. package/dist/elements/TextField/index.mjs +1 -1
  200. package/dist/elements/TextField/index.mjs.map +1 -1
  201. package/dist/elements/Toast/Toast.types.d.ts +12 -20
  202. package/dist/elements/Toast/Toast.types.d.ts.map +1 -1
  203. package/dist/elements/Toast/Toaster.d.ts +2 -5
  204. package/dist/elements/Toast/Toaster.d.ts.map +1 -1
  205. package/dist/elements/Toast/index.js +1 -1
  206. package/dist/elements/Toast/index.js.map +1 -1
  207. package/dist/elements/Toast/index.mjs +1 -1
  208. package/dist/elements/Toast/index.mjs.map +1 -1
  209. package/dist/elements/Tooltip/Tooltip.types.d.ts +39 -4
  210. package/dist/elements/Tooltip/Tooltip.types.d.ts.map +1 -1
  211. package/dist/elements/Tooltip/index.js +1 -1
  212. package/dist/elements/Tooltip/index.js.map +1 -1
  213. package/dist/elements/Tooltip/index.mjs +1 -1
  214. package/dist/elements/Tooltip/index.mjs.map +1 -1
  215. package/dist/elements/index.js.map +1 -1
  216. package/dist/elements/index.mjs.map +1 -1
  217. package/dist/index.js +2 -2
  218. package/dist/index.js.map +1 -1
  219. package/dist/index.mjs +2 -2
  220. package/dist/index.mjs.map +1 -1
  221. package/package.json +1 -1
@@ -26,7 +26,18 @@ export declare const DropdownPropsSchema: z.ZodObject<{
26
26
  onOpenChange: z.ZodOptional<z.ZodCustom<(isOpen: boolean) => void, (isOpen: boolean) => void>>;
27
27
  children: z.ZodCustom<ReactNode, ReactNode>;
28
28
  }, z.core.$strip>;
29
- export type DropdownProps = z.infer<typeof DropdownPropsSchema>;
29
+ export interface DropdownProps {
30
+ className?: string;
31
+ children?: ReactNode;
32
+ id?: string;
33
+ 'aria-label'?: string;
34
+ 'aria-labelledby'?: string;
35
+ 'aria-describedby'?: string;
36
+ 'data-testid'?: string;
37
+ defaultOpen?: boolean;
38
+ isOpen?: boolean;
39
+ onOpenChange?: (isOpen: boolean) => void;
40
+ }
30
41
  /**
31
42
  * Dropdown.Trigger props schema
32
43
  *
@@ -50,7 +61,12 @@ export declare const DropdownTriggerPropsSchema: z.ZodObject<{
50
61
  'data-testid': z.ZodOptional<z.ZodString>;
51
62
  children: z.ZodCustom<ReactNode, ReactNode>;
52
63
  }, z.core.$strip>;
53
- export type DropdownTriggerProps = z.infer<typeof DropdownTriggerPropsSchema>;
64
+ export interface DropdownTriggerProps {
65
+ className?: string;
66
+ children?: ReactNode;
67
+ id?: string;
68
+ 'data-testid'?: string;
69
+ }
54
70
  /**
55
71
  * Dropdown.Menu props schema
56
72
  *
@@ -86,7 +102,16 @@ export declare const DropdownMenuPropsSchema: z.ZodObject<{
86
102
  children: z.ZodCustom<ReactNode, ReactNode>;
87
103
  className: z.ZodOptional<z.ZodString>;
88
104
  }, z.core.$strip>;
89
- export type DropdownMenuProps = z.infer<typeof DropdownMenuPropsSchema>;
105
+ export interface DropdownMenuProps {
106
+ className?: string;
107
+ children?: ReactNode;
108
+ id?: string;
109
+ 'aria-label'?: string;
110
+ 'aria-labelledby'?: string;
111
+ 'data-testid'?: string;
112
+ align?: 'start' | 'center' | 'end';
113
+ side?: 'top' | 'bottom' | 'left' | 'right';
114
+ }
90
115
  /**
91
116
  * Dropdown.Item props schema
92
117
  *
@@ -117,7 +142,18 @@ export declare const DropdownItemPropsSchema: z.ZodObject<{
117
142
  'aria-label': z.ZodOptional<z.ZodString>;
118
143
  className: z.ZodOptional<z.ZodString>;
119
144
  }, z.core.$strip>;
120
- export type DropdownItemProps = z.infer<typeof DropdownItemPropsSchema>;
145
+ export interface DropdownItemProps {
146
+ className?: string;
147
+ children?: ReactNode;
148
+ id?: string;
149
+ 'aria-label'?: string;
150
+ 'data-testid'?: string;
151
+ onAction?: (...args: unknown[]) => unknown;
152
+ isDisabled?: boolean;
153
+ shortcut?: string;
154
+ icon?: ReactNode;
155
+ iconRight?: ReactNode;
156
+ }
121
157
  /**
122
158
  * Dropdown.Separator props schema
123
159
  *
@@ -141,7 +177,11 @@ export declare const DropdownSeparatorPropsSchema: z.ZodObject<{
141
177
  'data-testid': z.ZodOptional<z.ZodString>;
142
178
  className: z.ZodOptional<z.ZodString>;
143
179
  }, z.core.$strip>;
144
- export type DropdownSeparatorProps = z.infer<typeof DropdownSeparatorPropsSchema>;
180
+ export interface DropdownSeparatorProps {
181
+ className?: string;
182
+ id?: string;
183
+ 'data-testid'?: string;
184
+ }
145
185
  /**
146
186
  * Dropdown.Label props schema
147
187
  *
@@ -165,11 +205,16 @@ export declare const DropdownLabelPropsSchema: z.ZodObject<{
165
205
  children: z.ZodCustom<ReactNode, ReactNode>;
166
206
  className: z.ZodOptional<z.ZodString>;
167
207
  }, z.core.$strip>;
168
- export type DropdownLabelProps = z.infer<typeof DropdownLabelPropsSchema>;
208
+ export interface DropdownLabelProps {
209
+ className?: string;
210
+ children?: ReactNode;
211
+ id?: string;
212
+ 'data-testid'?: string;
213
+ }
169
214
  /**
170
215
  * CVA variant configuration types
171
216
  * Used for class-variance-authority integration
172
217
  */
173
- export type DropdownMenuAlign = z.infer<typeof DropdownMenuPropsSchema>['align'];
174
- export type DropdownMenuSide = z.infer<typeof DropdownMenuPropsSchema>['side'];
218
+ export type DropdownMenuAlign = DropdownMenuProps['align'];
219
+ export type DropdownMenuSide = DropdownMenuProps['side'];
175
220
  //# sourceMappingURL=Dropdown.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.types.d.ts","sourceRoot":"","sources":["../../../src/elements/Dropdown/Dropdown.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;qDAQE,OAAO,KAAK,IAAI,WAAhB,OAAO,KAAK,IAAI;;iBAIhD,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;iBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;iBAYlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;iBAwBlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;iBAGvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAMnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"Dropdown.types.d.ts","sourceRoot":"","sources":["../../../src/elements/Dropdown/Dropdown.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;qDAQE,OAAO,KAAK,IAAI,WAAhB,OAAO,KAAK,IAAI;;iBAIhD,CAAC;AAEH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;iBAGrC,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;iBAYlC,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;iBAwBlC,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;iBAGvC,CAAC;AAEH,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAMnC,CAAC;AAEH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC"}
@@ -1,46 +1,9 @@
1
+ import type { FileFieldProps } from './FileField.types';
1
2
  /**
2
3
  * FileField Component
3
4
  *
4
5
  * Accessible file selection input with drag-and-drop support
5
6
  */
6
- declare const FileField: import("react").ForwardRefExoticComponent<Omit<{
7
- label: string;
8
- allowsMultiple: boolean;
9
- size: "default" | "sm" | "lg";
10
- showPreviews: boolean;
11
- previewSize: number;
12
- maxPreviewBytes: number;
13
- showProgress: boolean;
14
- className?: string | undefined;
15
- children?: any;
16
- id?: string | undefined;
17
- 'aria-label'?: string | undefined;
18
- 'aria-labelledby'?: string | undefined;
19
- 'aria-describedby'?: string | undefined;
20
- 'aria-live'?: "off" | "polite" | "assertive" | undefined;
21
- 'aria-hidden'?: boolean | undefined;
22
- 'data-testid'?: string | undefined;
23
- acceptedFileTypes?: string[] | undefined;
24
- maxFileSize?: number | undefined;
25
- maxFiles?: number | undefined;
26
- description?: string | undefined;
27
- errorMessage?: string | undefined;
28
- successMessage?: string | undefined;
29
- triggerText?: string | undefined;
30
- isRequired?: boolean | undefined;
31
- isDisabled?: boolean | undefined;
32
- isInvalid?: boolean | undefined;
33
- isValid?: boolean | undefined;
34
- name?: string | undefined;
35
- uploadProgress?: number[] | undefined;
36
- uploadStatus?: ("error" | "pending" | "uploading" | "complete")[] | undefined;
37
- }, "children"> & {
38
- value?: File[];
39
- onChange?: (files: File[]) => void;
40
- validate?: (files: File[]) => string | undefined | null;
41
- renderPreview?: (file: File) => import("react").ReactNode;
42
- uploadErrors?: Map<number, string>;
43
- onRetry?: (fileIndex: number) => void;
44
- } & import("react").RefAttributes<HTMLDivElement>>;
7
+ declare const FileField: import("react").ForwardRefExoticComponent<FileFieldProps & import("react").RefAttributes<HTMLDivElement>>;
45
8
  export { FileField };
46
9
  //# sourceMappingURL=FileField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileField.d.ts","sourceRoot":"","sources":["../../../src/elements/FileField/FileField.tsx"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAidd,CAAC;AAIF,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"FileField.d.ts","sourceRoot":"","sources":["../../../src/elements/FileField/FileField.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAwB1E;;;;GAIG;AACH,QAAA,MAAM,SAAS,2GAidd,CAAC;AAIF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -61,28 +61,46 @@ export declare const FileFieldPropsSchema: z.ZodObject<{
61
61
  * Upload status for progress indication
62
62
  */
63
63
  export type UploadStatus = 'pending' | 'uploading' | 'complete' | 'error';
64
- export type FileFieldProps = Omit<z.infer<typeof FileFieldPropsSchema>, 'children'> & {
65
- /** Controlled value - array of selected files */
64
+ export interface FileFieldProps {
65
+ className?: string;
66
+ id?: string;
67
+ 'aria-label'?: string;
68
+ 'aria-labelledby'?: string;
69
+ 'aria-describedby'?: string;
70
+ 'aria-hidden'?: boolean;
71
+ 'data-testid'?: string;
72
+ label: string;
73
+ acceptedFileTypes?: string[];
74
+ allowsMultiple?: boolean;
75
+ maxFileSize?: number;
76
+ maxFiles?: number;
77
+ description?: string;
78
+ errorMessage?: string;
79
+ successMessage?: string;
80
+ triggerText?: string;
81
+ isRequired?: boolean;
82
+ isDisabled?: boolean;
83
+ isInvalid?: boolean;
84
+ isValid?: boolean;
85
+ size?: 'sm' | 'default' | 'lg';
86
+ name?: string;
87
+ showPreviews?: boolean;
88
+ previewSize?: number;
89
+ maxPreviewBytes?: number;
90
+ showProgress?: boolean;
91
+ uploadProgress?: number[];
92
+ uploadStatus?: UploadStatus[];
66
93
  value?: File[];
67
- /** Callback when files change */
68
94
  onChange?: (files: File[]) => void;
69
- /**
70
- * Custom validation function
71
- * Called after internal validation (type, size, count)
72
- * Return a string to display as error, or undefined/null if valid
73
- */
74
95
  validate?: (files: File[]) => string | undefined | null;
75
- /** Custom preview renderer for non-image files */
76
96
  renderPreview?: (file: File) => ReactNode;
77
- /** Error messages per file index */
78
97
  uploadErrors?: Map<number, string>;
79
- /** Callback when user requests retry for failed upload */
80
98
  onRetry?: (fileIndex: number) => void;
81
- };
99
+ }
82
100
  /**
83
101
  * File field size variants
84
102
  */
85
- export type FileFieldSize = NonNullable<z.infer<typeof FileFieldPropsSchema>['size']>;
103
+ export type FileFieldSize = NonNullable<FileFieldProps['size']>;
86
104
  /**
87
105
  * Internal drag state for drop zone styling
88
106
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FileField.types.d.ts","sourceRoot":"","sources":["../../../src/elements/FileField/FileField.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqG9B,CAAC;AAEJ;;;;GAIG;AACH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,EACpC,UAAU,CACX,GAAG;IACF,iDAAiD;IACjD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAEf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAGxD,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAG1C,oCAAoC;IACpC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CACrC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAC7C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"FileField.types.d.ts","sourceRoot":"","sources":["../../../src/elements/FileField/FileField.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqG9B,CAAC;AAEJ;;;;GAIG;AACH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAC1C,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- 'use strict';var react=require('react'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),zod=require('zod');function b(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var pe=classVarianceAuthority.cva("inline-flex justify-center min-h-[44px] min-w-[44px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",{variants:{fullWidth:{true:"w-full",false:""},inVerticalGroup:{true:"items-stretch",false:"items-center"}},defaultVariants:{fullWidth:false,inVerticalGroup:false}}),me=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 relative cursor-pointer",{variants:{variant:{default:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)] shadow-md hover:bg-[var(--primary-action-hover)] data-[pressed]:bg-[var(--primary-action)]/80",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] shadow-md hover:bg-[var(--destructive-background)]/90 data-[pressed]:bg-[var(--destructive-background)]/80",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)] data-[pressed]:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] shadow-md hover:bg-[var(--secondary)]/80 data-[pressed]:bg-[var(--secondary)]/70",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)] data-[pressed]:bg-[var(--accent)]",link:"text-[var(--text-link)] underline-offset-4 hover:underline data-[pressed]:text-[var(--text-link-hover)]"},fullWidth:{true:"w-full",false:""},visualSize:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-8",icon:"h-10 w-10",dot:"h-5 w-5 rounded-full p-0 min-h-0 min-w-0"},paywall:{true:"!bg-[var(--paywall)] !text-[var(--paywall-foreground)] !shadow-md hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var ge="data-[pressed]:scale-[0.97]";var ve="data-[hovered]:shadow-md";var te="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",re="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var dt=react.createContext(null);dt.displayName="ButtonGroupContext";function ut(){return react.useContext(dt)}var ct=react.createContext(null);ct.displayName="ButtonGroupItemContext";function ft(){return react.useContext(ct)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var pt=classVarianceAuthority.cva("",{variants:{orientation:{horizontal:"min-w-[44px]",vertical:"flex min-h-[44px]"},position:{first:"",middle:"",last:"",only:""}},compoundVariants:[{orientation:"horizontal",position:"first",className:"rounded-r-none border-r-0"},{orientation:"horizontal",position:"middle",className:"rounded-none border-r-0"},{orientation:"horizontal",position:"last",className:"rounded-l-none"},{orientation:"vertical",position:"first",className:"rounded-b-none border-b-0"},{orientation:"vertical",position:"middle",className:"rounded-none border-b-0"},{orientation:"vertical",position:"last",className:"rounded-t-none"}],defaultVariants:{orientation:"horizontal",position:"only"}});classVarianceAuthority.cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var L=react.memo(react.forwardRef(({className:e,buttonVisualClassName:r,variant:t,size:a,visualSize:i,fullWidth:o,loading:d=false,loadingText:m="Loading...",shortcut:u,children:c,isDisabled:g,paywall:s=false,paywallRedirect:E,paywallDescription:_,onPress:f,...F},le)=>{let Y=react.useId(),v=ut(),y=ft(),U=t??v?.variant??"default",de=a??v?.size,z=g??v?.isDisabled??false,X=v?.orientation==="vertical",q=o||X,ue=y?pt({orientation:v?.orientation??"horizontal",position:y.position}):"",H=i??de??"default";return process.env.NODE_ENV!=="production"&&(H==="dot"||H==="icon")&&!F["aria-label"]&&!c&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsxRuntime.jsx(reactAriaComponents.Button,{ref:le,isDisabled:z||d||void 0,"aria-disabled":s?true:void 0,"aria-describedby":s?Y:void 0,onPress:P=>{if(s){E&&window.open(E,"_blank","noopener,noreferrer");return}f?.(P);},className:b(pe({fullWidth:q,inVerticalGroup:X}),e),...F,children:P=>jsxRuntime.jsxs("span",{className:b(me({variant:U,visualSize:H,paywall:s,fullWidth:q}),ue,r,ge,ve,te,re),"data-pressed":P.isPressed||void 0,children:[d&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"sr-only","aria-live":"polite",children:m})]}),!d&&c,s&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),s&&jsxRuntime.jsxs("span",{id:Y,className:"sr-only",children:["Premium feature: ",_||"Upgrade required to access this feature"]}),P.isFocusVisible&&u&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:u}),P.isPressed&&jsxRuntime.jsx("span",{className:"absolute inset-0 rounded-[inherit] bg-current opacity-10 motion-safe:animate-in motion-safe:zoom-in-95","aria-hidden":"true"})]})})}));L.displayName="Button";var Se=["focus-within:outline-none","focus-within:ring-2","focus-within:ring-[var(--ring)]","focus-within:ring-offset-2"],Ee=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"];var Fe=["disabled:pointer-events-none","disabled:opacity-50"];var D={sm:"text-xs",default:"text-sm",lg:"text-base"},ae={sm:"text-sm",default:"text-base",lg:"text-lg"},ie=["min-h-[44px]","min-w-[44px]"];var Ie=["flex","items-center","gap-1.5","text-[var(--destructive-background)]"],Ve=["flex","items-center","gap-1.5","text-[var(--success-background)]"],Ne=["text-[var(--menu-muted)]"],_e=["font-medium","text-[var(--content-foreground)]"];var ne=["transition-colors","duration-200"];function A(...e){return e.flatMap(r=>Array.isArray(r)?[...r]:[r])}var ye=classVarianceAuthority.cva("flex flex-col gap-1.5 w-full",{variants:{size:ae},defaultVariants:{size:"default"}}),Te=classVarianceAuthority.cva(A("flex flex-col items-center justify-center rounded-md border-2 border-dashed","bg-[var(--content-background)] text-[var(--content-foreground)]",ne,Se),{variants:{size:{sm:"min-h-[100px] p-4 gap-2",default:"min-h-[140px] p-6 gap-3",lg:"min-h-[180px] p-8 gap-4"},isDragOver:{true:"border-[var(--primary)] bg-[var(--primary)]/5",false:"border-[var(--input-border)] hover:border-[var(--primary)]/50"},isInvalid:{true:"border-[var(--destructive-background)] bg-[var(--destructive-background)]/5",false:""},isDisabled:{true:"opacity-50 cursor-not-allowed pointer-events-none",false:"cursor-pointer"}},compoundVariants:[{isInvalid:true,isDragOver:true,className:"border-[var(--destructive-background)] bg-[var(--destructive-background)]/5"}],defaultVariants:{size:"default",isDragOver:false,isInvalid:false,isDisabled:false}}),Pe=classVarianceAuthority.cva(A("inline-flex items-center justify-center gap-2 rounded-md font-medium",ne,ie,Ee,Fe),{variants:{size:{sm:"px-3 py-2 text-xs",default:"px-4 py-2 text-sm",lg:"px-6 py-3 text-base"},variant:{default:"bg-[var(--primary)] text-[var(--primary-foreground)] hover:bg-[var(--primary)]/90",outline:"border border-[var(--input-border)] bg-transparent hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]"}},defaultVariants:{size:"default",variant:"default"}}),Re=classVarianceAuthority.cva("flex flex-col gap-2 mt-3",{variants:{size:{sm:"gap-1.5",default:"gap-2",lg:"gap-3"}},defaultVariants:{size:"default"}}),mt=classVarianceAuthority.cva("flex items-center justify-between mb-1",{variants:{size:D},defaultVariants:{size:"default"}}),Ae=classVarianceAuthority.cva("flex items-center justify-between gap-3 bg-[var(--accent-background)] rounded-md border border-[var(--border)]",{variants:{size:{sm:"px-2 py-1.5 text-xs",default:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"}},defaultVariants:{size:"default"}}),Oe=classVarianceAuthority.cva(A("inline-flex items-center justify-center rounded-full",ie,"-mr-2 -my-1","text-[var(--menu-muted)] hover:text-[var(--destructive-background)] hover:bg-[var(--destructive-background)]/10","transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]"),{variants:{size:{sm:"",default:"",lg:""}},defaultVariants:{size:"default"}}),we=classVarianceAuthority.cva(A(Ie,"font-medium"),{variants:{size:D},defaultVariants:{size:"default"}}),Ce=classVarianceAuthority.cva(A(Ve,"font-medium"),{variants:{size:D},defaultVariants:{size:"default"}}),Le=classVarianceAuthority.cva(Ne,{variants:{size:D},defaultVariants:{size:"default"}}),De=classVarianceAuthority.cva(_e,{variants:{size:ae,isRequired:{true:"after:content-['*'] after:ml-0.5 after:text-[var(--destructive-background)]",false:""}},defaultVariants:{size:"default",isRequired:false}});function oe(e){if(e===0)return "0 B";let r=1024,t=["B","KB","MB","GB"],a=Math.floor(Math.log(e)/Math.log(r)),i=parseFloat((e/Math.pow(r,a)).toFixed(1));return `${i%1===0?i.toFixed(0):i.toFixed(1)} ${t[a]}`}function $(e,r=30){if(e.length<=r)return e;let t=e.lastIndexOf(".");if(t===-1)return `${e.slice(0,r-3)}...`;let a=e.slice(t),i=e.slice(0,t),o=r-a.length-3;return o<1?`...${a}`:`${i.slice(0,o)}...${a}`}function Be(e,r){return !r||r.length===0?true:r.some(t=>{if(t.endsWith("/*")){let a=t.slice(0,-2);return e.type.startsWith(`${a}/`)}return t.includes("/")?e.type===t:t.startsWith(".")?e.name.toLowerCase().endsWith(t.toLowerCase()):false})}function j(e){return e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":e.type.startsWith("audio/")?"audio":"file"}function W(e,r){let t=[...e];for(let a of r){let i=t.findIndex(o=>o.name===a.name);i>=0?t[i]=a:t.push(a);}return t}function jt(e){return !e||e.length===0?"any file":e.map(t=>t==="image/*"?"images":t==="video/*"?"videos":t==="audio/*"?"audio":t.startsWith(".")?t.slice(1).toUpperCase():t.includes("/")?(t.split("/")[1]??t).toUpperCase():t).join(", ")}var gt=2*1024*1024;function Ue(e){return e.type.startsWith("image/")?true:/\.(jpg|jpeg|png|gif|webp|svg|bmp|ico|avif|heic|heif|tiff|tif)$/i.test(e.name)}async function vt(e,r=200){return new Promise((t,a)=>{let i=new window.Image,o=URL.createObjectURL(e);i.onload=()=>{URL.revokeObjectURL(o);let d=Math.min(r/i.width,r/i.height,1),m=Math.round(i.width*d),u=Math.round(i.height*d),c=document.createElement("canvas");c.width=m,c.height=u;let g=c.getContext("2d");if(!g){a(new Error("Canvas context unavailable"));return}g.drawImage(i,0,0,m,u),c.toBlob(s=>{s?t(URL.createObjectURL(s)):a(new Error("Failed to create blob"));},"image/jpeg",.8);},i.onerror=()=>{URL.revokeObjectURL(o),a(new Error("Failed to load image"));},i.src=o;})}async function ze(e,r=200){return e.size>gt?vt(e,r):URL.createObjectURL(e)}function Ge(e,r={}){let{enabled:t=true,maxBytes:a=10*1024*1024,maxDimension:i=200}=r,[o,d]=react.useState(null),[m,u]=react.useState(false),[c,g]=react.useState(null),s=Ue(e);return react.useEffect(()=>{if(!t||!s){d(null),u(false),g(null);return}if(e.size>a){d(null),u(false),g("File too large for preview");return}let E=true,_=null;return (async()=>{u(true),g(null);try{_=await ze(e,i),E?(d(_),u(!1)):URL.revokeObjectURL(_);}catch(F){E&&(g(F instanceof Error?F.message:"Failed to generate preview"),u(false),d(null));}})(),()=>{E=false,_&&URL.revokeObjectURL(_),d(F=>(F&&URL.revokeObjectURL(F),null));}},[e,t,a,i,s]),{preview:o,isLoading:m,error:c,isImage:s}}function Me({file:e,size:r=64,maxBytes:t=10*1024*1024,renderPreview:a,className:i}){let{preview:o,isLoading:d,error:m,isImage:u}=Ge(e,{enabled:true,maxBytes:t,maxDimension:r*2}),c={width:r,height:r,minWidth:r,minHeight:r};if(!u&&a)return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,children:a(e)});if(d)return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,"aria-busy":"true","aria-label":`Loading preview for ${e.name}`,children:jsxRuntime.jsx(lucideReact.Loader2,{className:"h-4 w-4 animate-spin text-[var(--menu-muted)]","aria-hidden":"true"})});if(u&&o&&!m)return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,children:jsxRuntime.jsx("img",{src:o,alt:e.name,className:"w-full h-full object-cover",loading:"lazy"})});let g=j(e),s=Kt(g),E=Math.max(16,Math.floor(r*.4));return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,"aria-label":m?`Preview unavailable for ${e.name}`:void 0,children:jsxRuntime.jsx(s,{className:"text-[var(--menu-muted)]",style:{width:E,height:E},"aria-hidden":"true"})})}function Kt(e){switch(e){case "image":return lucideReact.ImageIcon;case "video":return lucideReact.VideoIcon;case "audio":return lucideReact.AudioLines;default:return lucideReact.FileIcon}}var ke=classVarianceAuthority.cva(["flex","flex-col","gap-1","w-full"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),$e=classVarianceAuthority.cva(["rounded-full","bg-[var(--accent-background)]","overflow-hidden"],{variants:{size:{sm:"h-1.5",default:"h-2",lg:"h-3"}},defaultVariants:{size:"default"}}),je=classVarianceAuthority.cva(["h-full","rounded-full","transition-all","duration-300"],{variants:{status:{pending:["bg-gradient-to-r","from-[var(--menu-muted)]","via-[var(--accent-background)]","to-[var(--menu-muted)]","bg-[length:200%_100%]","animate-progress-shimmer"],uploading:"bg-[var(--primary)]",complete:"bg-[var(--success-background)]",error:"bg-[var(--destructive-background)]"}},defaultVariants:{status:"pending"}}),We=classVarianceAuthority.cva(["flex","items-center","justify-between","gap-2"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ze=classVarianceAuthority.cva(["flex","items-center","justify-between","gap-2","mt-1","text-[var(--destructive-background)]"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ye=classVarianceAuthority.cva(["underline","hover:no-underline","min-h-[44px]","min-w-[44px]","inline-flex","items-center","justify-center","-mr-3","-my-2","focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2","rounded"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}});function tr(e,r){switch(e){case "pending":return "Waiting...";case "uploading":return `${r}%`;case "complete":return "Complete";case "error":return "Failed"}}function se({file:e,progress:r,status:t,error:a,onRetry:i,size:o="default",className:d}){let m=t==="pending",u=`progress-error-${e.name.replace(/[^a-zA-Z0-9]/g,"-")}`,c=tr(t,r);return jsxRuntime.jsxs("div",{className:b(ke({size:o}),d),children:[jsxRuntime.jsx(reactAriaComponents.ProgressBar,{"aria-label":e.name,value:m?void 0:r,isIndeterminate:m,"aria-describedby":t==="error"&&a?u:void 0,children:({percentage:g,valueText:s})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:We({size:o}),children:[jsxRuntime.jsx("span",{className:"truncate",title:e.name,children:$(e.name,30)}),jsxRuntime.jsx("span",{className:"text-[var(--menu-muted)] flex-shrink-0",children:t==="error"?"Failed":s??c})]}),jsxRuntime.jsx("div",{className:$e({size:o}),children:jsxRuntime.jsx("div",{className:je({status:t}),style:{width:m?"100%":`${g??0}%`}})})]})}),t==="error"&&a&&jsxRuntime.jsxs("div",{id:u,className:Ze({size:o}),children:[jsxRuntime.jsx("span",{children:a}),i&&jsxRuntime.jsx(reactAriaComponents.Button,{onPress:i,className:Ye({size:o}),children:"Retry"})]}),jsxRuntime.jsxs("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only",children:[t==="complete"&&`${e.name} upload complete`,t==="error"&&`${e.name} upload failed${a?`: ${a}`:""}`]})]})}se.displayName="FileProgress";var bt=react.forwardRef(function({label:r,acceptedFileTypes:t,allowsMultiple:a=false,maxFileSize:i,maxFiles:o,description:d,errorMessage:m,successMessage:u,triggerText:c,isRequired:g,isDisabled:s,isInvalid:E,isValid:_,size:f="default",name:F,id:le,className:Y,value:v=[],onChange:y,validate:U,showPreviews:de=false,previewSize:z=64,maxPreviewBytes:X=10*1024*1024,renderPreview:q,showProgress:ue=false,uploadProgress:H,uploadStatus:Xe,uploadErrors:qe,onRetry:P,"data-testid":Qe,"aria-label":gr,"aria-labelledby":vr,"aria-describedby":Ke,...St},Et){let Ft=react.useId(),Q=le??Ft,Je=`${Q}-label`,et=`${Q}-description`,tt=`${Q}-error`,[rt,ce]=react.useState(false),[It,fe]=react.useState(null),K=react.useRef(0),G=m??It,Vt=E||!!G,M=[];Ke&&M.push(Ke),d&&M.push(et),G&&M.push(tt);let Nt=M.length>0?M.join(" "):void 0,at=react.useCallback((n,x=[])=>{let I=[],h=[];for(let S of n){if(t&&!Be(S,t)){h.push(`"${S.name}" has an invalid file type`);continue}if(i&&S.size>i){h.push(`"${S.name}" exceeds the maximum size of ${oe(i)}`);continue}I.push(S);}return o&&a&&W(x,I).length>o?(h.push(`Maximum ${o} files allowed`),{valid:[],errors:h}):{valid:I,errors:h}},[t,i,o,a]),J=react.useCallback(n=>{if(!n||n.length===0)return;fe(null);let x=Array.from(n),I=a?v:[],{valid:h,errors:S}=at(x,I);if(S.length>0){fe(S[0]??"Invalid file");return}if(U&&h.length>0){let ee=U(a?W(I,h):h);if(ee){fe(ee);return}}let k;a?k=W(I,h):k=h.slice(0,1),y?.(k);},[a,v,at,U,y]),_t=react.useCallback(n=>{J(n);},[J]),yt=react.useCallback(n=>{let x=v.filter(I=>I!==n);y?.(x);},[v,y]),Tt=react.useCallback(()=>{y?.([]);},[y]),Pt=react.useCallback(n=>{n.preventDefault(),n.stopPropagation(),!s&&(K.current++,ce(true));},[s]),Rt=react.useCallback(n=>{n.preventDefault(),n.stopPropagation();},[]),At=react.useCallback(n=>{n.preventDefault(),n.stopPropagation(),K.current--,K.current===0&&ce(false);},[]),Ot=react.useCallback(n=>{if(n.preventDefault(),n.stopPropagation(),K.current=0,ce(false),s)return;let x=n.dataTransfer?.files;J(x??null);},[s,J]),wt=n=>{switch(j(n)){case "image":return lucideReact.ImageIcon;case "video":return lucideReact.VideoIcon;case "audio":return lucideReact.AudioLines;default:return lucideReact.FileIcon}},Ct=t?.join(",");return jsxRuntime.jsxs("div",{ref:Et,id:Q,className:b(ye({size:f}),Y),"data-testid":Qe??"file-field",...St,children:[jsxRuntime.jsx("label",{id:Je,className:De({size:f,isRequired:g}),children:r}),jsxRuntime.jsxs("div",{role:"group","data-testid":`${Qe??"file-field"}-dropzone`,className:b("drop-zone",Te({size:f,isDragOver:rt,isInvalid:Vt,isDisabled:s})),onDragEnter:Pt,onDragOver:Rt,onDragLeave:At,onDrop:Ot,"aria-labelledby":Je,"aria-describedby":Nt,"aria-disabled":s||void 0,children:[jsxRuntime.jsx(reactAriaComponents.FileTrigger,{acceptedFileTypes:t,allowsMultiple:a,onSelect:_t,children:jsxRuntime.jsxs(L,{variant:"outline",isDisabled:s,buttonVisualClassName:Pe({size:f}),children:[jsxRuntime.jsx(lucideReact.Upload,{className:"h-4 w-4","aria-hidden":"true"}),rt?"Drop files here":c??(a?"Choose files":"Choose file")]})}),F&&jsxRuntime.jsx("input",{type:"file",name:F,accept:Ct,multiple:a,disabled:s,className:"sr-only",tabIndex:-1,"aria-hidden":"true"})]}),d&&jsxRuntime.jsx("p",{id:et,className:Le({size:f}),children:d}),v.length>0&&jsxRuntime.jsxs("div",{className:Re({size:f}),children:[v.length>=2&&jsxRuntime.jsxs("div",{className:mt({size:f}),children:[jsxRuntime.jsxs("span",{className:"text-[var(--menu-muted)]",children:[v.length," files selected"]}),jsxRuntime.jsx(L,{variant:"link",visualSize:"sm",onPress:Tt,buttonVisualClassName:b("text-[var(--menu-muted)] hover:text-[var(--destructive-background)]","underline-offset-4 hover:underline"),"aria-label":"Clear all files",children:"Clear all"})]}),jsxRuntime.jsx("ul",{className:"space-y-2",children:v.map((n,x)=>{let I=wt(n),h=f==="sm"?Math.min(z,40):f==="lg"?Math.min(z,80):Math.min(z,48),S=Xe?.[x],k=H?.[x]??0,ee=qe?.get(x),it=ue&&S!==void 0;return jsxRuntime.jsx("li",{className:it?"p-3":Ae({size:f}),children:it?jsxRuntime.jsx(se,{file:n,progress:k,status:S,error:ee,onRetry:P?()=>P(x):void 0,size:f}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[de?jsxRuntime.jsx(Me,{file:n,size:h,maxBytes:X,renderPreview:q,className:"flex-shrink-0"}):jsxRuntime.jsx(I,{className:"h-4 w-4 flex-shrink-0 text-[var(--menu-muted)]","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"truncate",title:n.name,children:$(n.name,30)}),jsxRuntime.jsx("span",{className:"text-[var(--menu-muted)] flex-shrink-0",children:oe(n.size)})]}),jsxRuntime.jsx(L,{variant:"ghost",visualSize:"icon",onPress:()=>yt(n),buttonVisualClassName:Oe({size:f}),"aria-label":`Remove ${n.name}`,isDisabled:s,children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4","aria-hidden":"true"})})]})},`${n.name}-${x}`)})})]}),G&&jsxRuntime.jsx("p",{id:tt,role:"alert",className:we({size:f}),children:G}),!G&&_&&u&&jsxRuntime.jsx("p",{className:Ce({size:f}),children:u})]})});bt.displayName="FileField";var ht=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var mr=ht.extend({label:zod.z.string(),acceptedFileTypes:zod.z.array(zod.z.string()).optional(),allowsMultiple:zod.z.boolean().default(false),maxFileSize:zod.z.number().optional(),maxFiles:zod.z.number().optional(),description:zod.z.string().optional(),errorMessage:zod.z.string().optional(),successMessage:zod.z.string().optional(),triggerText:zod.z.string().optional(),isRequired:zod.z.boolean().optional(),isDisabled:zod.z.boolean().optional(),isInvalid:zod.z.boolean().optional(),isValid:zod.z.boolean().optional(),size:zod.z.enum(["sm","default","lg"]).default("default"),name:zod.z.string().optional(),showPreviews:zod.z.boolean().default(false),previewSize:zod.z.number().min(16).max(256).default(64),maxPreviewBytes:zod.z.number().default(10*1024*1024),showProgress:zod.z.boolean().default(false),uploadProgress:zod.z.array(zod.z.number().min(0).max(100)).optional(),uploadStatus:zod.z.array(zod.z.enum(["pending","uploading","complete","error"])).optional()}).refine(e=>!(e.successMessage&&e.errorMessage),{message:"Cannot provide both successMessage and errorMessage. Use one based on validation state.",path:["successMessage"]}).refine(e=>(typeof process<"u"&&process.env.NODE_ENV==="development"&&e.isValid&&e.isInvalid&&console.error("[FileField] Both isValid and isInvalid are true. isInvalid takes precedence."),true));exports.FileField=bt;exports.FileFieldPropsSchema=mr;exports.FilePreview=Me;exports.FileProgress=se;exports.RESIZE_THRESHOLD=gt;exports.createResizedPreview=vt;exports.deduplicateFiles=W;exports.fileFieldContainerVariants=ye;exports.fileFieldDescriptionVariants=Le;exports.fileFieldDropZoneVariants=Te;exports.fileFieldErrorVariants=we;exports.fileFieldItemVariants=Ae;exports.fileFieldLabelVariants=De;exports.fileFieldListVariants=Re;exports.fileFieldRemoveButtonVariants=Oe;exports.fileFieldSuccessVariants=Ce;exports.fileFieldTriggerVariants=Pe;exports.fileProgressBarVariants=je;exports.fileProgressErrorVariants=Ze;exports.fileProgressHeaderVariants=We;exports.fileProgressRetryVariants=Ye;exports.fileProgressTrackVariants=$e;exports.fileProgressVariants=ke;exports.formatAcceptedTypes=jt;exports.formatFileSize=oe;exports.generatePreview=ze;exports.getFileIcon=j;exports.isFileTypeAccepted=Be;exports.isImageFile=Ue;exports.truncateFileName=$;exports.useFilePreview=Ge;//# sourceMappingURL=index.js.map
2
+ 'use strict';var react=require('react'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),zod=require('zod');function b(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var pe=classVarianceAuthority.cva("inline-flex justify-center min-h-[44px] min-w-[44px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",{variants:{fullWidth:{true:"w-full",false:""},inVerticalGroup:{true:"items-stretch",false:"items-center"}},defaultVariants:{fullWidth:false,inVerticalGroup:false}}),me=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 relative cursor-pointer",{variants:{variant:{default:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)] shadow-md hover:bg-[var(--primary-action-hover)] data-[pressed]:bg-[var(--primary-action)]/80",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] shadow-md hover:bg-[var(--destructive-background)]/90 data-[pressed]:bg-[var(--destructive-background)]/80",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)] data-[pressed]:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] shadow-md hover:bg-[var(--secondary)]/80 data-[pressed]:bg-[var(--secondary)]/70",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)] data-[pressed]:bg-[var(--accent)]",link:"text-[var(--text-link)] underline-offset-4 hover:underline data-[pressed]:text-[var(--text-link-hover)]"},fullWidth:{true:"w-full",false:""},visualSize:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-8",icon:"h-10 w-10",dot:"h-5 w-5 rounded-full p-0 min-h-0 min-w-0"},paywall:{true:"!bg-[var(--paywall)] !text-[var(--paywall-foreground)] !shadow-md hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var ge="data-[pressed]:scale-[0.97]";var ve="data-[hovered]:shadow-md";var te="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",re="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var dt=react.createContext(null);dt.displayName="ButtonGroupContext";function ut(){return react.useContext(dt)}var ct=react.createContext(null);ct.displayName="ButtonGroupItemContext";function ft(){return react.useContext(ct)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var pt=classVarianceAuthority.cva("",{variants:{orientation:{horizontal:"min-w-[44px]",vertical:"flex min-h-[44px]"},position:{first:"",middle:"",last:"",only:""}},compoundVariants:[{orientation:"horizontal",position:"first",className:"rounded-r-none border-r-0"},{orientation:"horizontal",position:"middle",className:"rounded-none border-r-0"},{orientation:"horizontal",position:"last",className:"rounded-l-none"},{orientation:"vertical",position:"first",className:"rounded-b-none border-b-0"},{orientation:"vertical",position:"middle",className:"rounded-none border-b-0"},{orientation:"vertical",position:"last",className:"rounded-t-none"}],defaultVariants:{orientation:"horizontal",position:"only"}});classVarianceAuthority.cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var L=react.memo(react.forwardRef(({className:e,buttonVisualClassName:r,variant:t,size:a,visualSize:i,fullWidth:o,loading:d=false,loadingText:m="Loading...",shortcut:u,children:c,isDisabled:g,paywall:s=false,paywallRedirect:E,paywallDescription:y,onPress:f,...F},le)=>{let Y=react.useId(),v=ut(),T=ft(),U=t??v?.variant??"default",de=a??v?.size,z=g??v?.isDisabled??false,X=v?.orientation==="vertical",q=o||X,ue=T?pt({orientation:v?.orientation??"horizontal",position:T.position}):"",H=i??de??"default";return process.env.NODE_ENV!=="production"&&(H==="dot"||H==="icon")&&!F["aria-label"]&&!c&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsxRuntime.jsx(reactAriaComponents.Button,{ref:le,isDisabled:z||d||void 0,"aria-disabled":s?true:void 0,"aria-describedby":s?Y:void 0,onPress:P=>{if(s){E&&window.open(E,"_blank","noopener,noreferrer");return}f?.(P);},className:b(pe({fullWidth:q,inVerticalGroup:X}),e),...F,children:P=>jsxRuntime.jsxs("span",{className:b(me({variant:U,visualSize:H,paywall:s,fullWidth:q}),ue,r,ge,ve,te,re),"data-pressed":P.isPressed||void 0,children:[d&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"sr-only","aria-live":"polite",children:m})]}),!d&&c,s&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),s&&jsxRuntime.jsxs("span",{id:Y,className:"sr-only",children:["Premium feature: ",y||"Upgrade required to access this feature"]}),P.isFocusVisible&&u&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:u}),P.isPressed&&jsxRuntime.jsx("span",{className:"absolute inset-0 rounded-[inherit] bg-current opacity-10 motion-safe:animate-in motion-safe:zoom-in-95","aria-hidden":"true"})]})})}));L.displayName="Button";var Se=["focus-within:outline-none","focus-within:ring-2","focus-within:ring-[var(--ring)]","focus-within:ring-offset-2"],Ee=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"];var Fe=["disabled:pointer-events-none","disabled:opacity-50"];var D={sm:"text-xs",default:"text-sm",lg:"text-base"},ae={sm:"text-sm",default:"text-base",lg:"text-lg"},ie=["min-h-[44px]","min-w-[44px]"];var Ie=["flex","items-center","gap-1.5","text-[var(--destructive-background)]"],Ve=["flex","items-center","gap-1.5","text-[var(--success-background)]"],Ne=["text-[var(--menu-muted)]"],ye=["font-medium","text-[var(--content-foreground)]"];var ne=["transition-colors","duration-200"];function A(...e){return e.flatMap(r=>Array.isArray(r)?[...r]:[r])}var Te=classVarianceAuthority.cva("flex flex-col gap-1.5 w-full",{variants:{size:ae},defaultVariants:{size:"default"}}),_e=classVarianceAuthority.cva(A("flex flex-col items-center justify-center rounded-md border-2 border-dashed","bg-[var(--content-background)] text-[var(--content-foreground)]",ne,Se),{variants:{size:{sm:"min-h-[100px] p-4 gap-2",default:"min-h-[140px] p-6 gap-3",lg:"min-h-[180px] p-8 gap-4"},isDragOver:{true:"border-[var(--primary)] bg-[var(--primary)]/5",false:"border-[var(--input-border)] hover:border-[var(--primary)]/50"},isInvalid:{true:"border-[var(--destructive-background)] bg-[var(--destructive-background)]/5",false:""},isDisabled:{true:"opacity-50 cursor-not-allowed pointer-events-none",false:"cursor-pointer"}},compoundVariants:[{isInvalid:true,isDragOver:true,className:"border-[var(--destructive-background)] bg-[var(--destructive-background)]/5"}],defaultVariants:{size:"default",isDragOver:false,isInvalid:false,isDisabled:false}}),Pe=classVarianceAuthority.cva(A("inline-flex items-center justify-center gap-2 rounded-md font-medium",ne,ie,Ee,Fe),{variants:{size:{sm:"px-3 py-2 text-xs",default:"px-4 py-2 text-sm",lg:"px-6 py-3 text-base"},variant:{default:"bg-[var(--primary)] text-[var(--primary-foreground)] hover:bg-[var(--primary)]/90",outline:"border border-[var(--input-border)] bg-transparent hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]"}},defaultVariants:{size:"default",variant:"default"}}),Re=classVarianceAuthority.cva("flex flex-col gap-2 mt-3",{variants:{size:{sm:"gap-1.5",default:"gap-2",lg:"gap-3"}},defaultVariants:{size:"default"}}),mt=classVarianceAuthority.cva("flex items-center justify-between mb-1",{variants:{size:D},defaultVariants:{size:"default"}}),Ae=classVarianceAuthority.cva("flex items-center justify-between gap-3 bg-[var(--accent-background)] rounded-md border border-[var(--border)]",{variants:{size:{sm:"px-2 py-1.5 text-xs",default:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"}},defaultVariants:{size:"default"}}),Oe=classVarianceAuthority.cva(A("inline-flex items-center justify-center rounded-full",ie,"-mr-2 -my-1","text-[var(--menu-muted)] hover:text-[var(--destructive-background)] hover:bg-[var(--destructive-background)]/10","transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]"),{variants:{size:{sm:"",default:"",lg:""}},defaultVariants:{size:"default"}}),we=classVarianceAuthority.cva(A(Ie,"font-medium"),{variants:{size:D},defaultVariants:{size:"default"}}),Ce=classVarianceAuthority.cva(A(Ve,"font-medium"),{variants:{size:D},defaultVariants:{size:"default"}}),Le=classVarianceAuthority.cva(Ne,{variants:{size:D},defaultVariants:{size:"default"}}),De=classVarianceAuthority.cva(ye,{variants:{size:ae,isRequired:{true:"after:content-['*'] after:ml-0.5 after:text-[var(--destructive-background)]",false:""}},defaultVariants:{size:"default",isRequired:false}});function oe(e){if(e===0)return "0 B";let r=1024,t=["B","KB","MB","GB"],a=Math.floor(Math.log(e)/Math.log(r)),i=parseFloat((e/Math.pow(r,a)).toFixed(1));return `${i%1===0?i.toFixed(0):i.toFixed(1)} ${t[a]}`}function $(e,r=30){if(e.length<=r)return e;let t=e.lastIndexOf(".");if(t===-1)return `${e.slice(0,r-3)}...`;let a=e.slice(t),i=e.slice(0,t),o=r-a.length-3;return o<1?`...${a}`:`${i.slice(0,o)}...${a}`}function Be(e,r){return !r||r.length===0?true:r.some(t=>{if(t.endsWith("/*")){let a=t.slice(0,-2);return e.type.startsWith(`${a}/`)}return t.includes("/")?e.type===t:t.startsWith(".")?e.name.toLowerCase().endsWith(t.toLowerCase()):false})}function j(e){return e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":e.type.startsWith("audio/")?"audio":"file"}function W(e,r){let t=[...e];for(let a of r){let i=t.findIndex(o=>o.name===a.name);i>=0?t[i]=a:t.push(a);}return t}function jt(e){return !e||e.length===0?"any file":e.map(t=>t==="image/*"?"images":t==="video/*"?"videos":t==="audio/*"?"audio":t.startsWith(".")?t.slice(1).toUpperCase():t.includes("/")?(t.split("/")[1]??t).toUpperCase():t).join(", ")}var gt=2*1024*1024;function Ue(e){return e.type.startsWith("image/")?true:/\.(jpg|jpeg|png|gif|webp|svg|bmp|ico|avif|heic|heif|tiff|tif)$/i.test(e.name)}async function vt(e,r=200){return new Promise((t,a)=>{let i=new window.Image,o=URL.createObjectURL(e);i.onload=()=>{URL.revokeObjectURL(o);let d=Math.min(r/i.width,r/i.height,1),m=Math.round(i.width*d),u=Math.round(i.height*d),c=document.createElement("canvas");c.width=m,c.height=u;let g=c.getContext("2d");if(!g){a(new Error("Canvas context unavailable"));return}g.drawImage(i,0,0,m,u),c.toBlob(s=>{s?t(URL.createObjectURL(s)):a(new Error("Failed to create blob"));},"image/jpeg",.8);},i.onerror=()=>{URL.revokeObjectURL(o),a(new Error("Failed to load image"));},i.src=o;})}async function ze(e,r=200){return e.size>gt?vt(e,r):URL.createObjectURL(e)}function Ge(e,r={}){let{enabled:t=true,maxBytes:a=10*1024*1024,maxDimension:i=200}=r,[o,d]=react.useState(null),[m,u]=react.useState(false),[c,g]=react.useState(null),s=Ue(e);return react.useEffect(()=>{if(!t||!s){d(null),u(false),g(null);return}if(e.size>a){d(null),u(false),g("File too large for preview");return}let E=true,y=null;return (async()=>{u(true),g(null);try{y=await ze(e,i),E?(d(y),u(!1)):URL.revokeObjectURL(y);}catch(F){E&&(g(F instanceof Error?F.message:"Failed to generate preview"),u(false),d(null));}})(),()=>{E=false,y&&URL.revokeObjectURL(y),d(F=>(F&&URL.revokeObjectURL(F),null));}},[e,t,a,i,s]),{preview:o,isLoading:m,error:c,isImage:s}}function Me({file:e,size:r=64,maxBytes:t=10*1024*1024,renderPreview:a,className:i}){let{preview:o,isLoading:d,error:m,isImage:u}=Ge(e,{enabled:true,maxBytes:t,maxDimension:r*2}),c={width:r,height:r,minWidth:r,minHeight:r};if(!u&&a)return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,children:a(e)});if(d)return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,"aria-busy":"true","aria-label":`Loading preview for ${e.name}`,children:jsxRuntime.jsx(lucideReact.Loader2,{className:"h-4 w-4 animate-spin text-[var(--menu-muted)]","aria-hidden":"true"})});if(u&&o&&!m)return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,children:jsxRuntime.jsx("img",{src:o,alt:e.name,className:"w-full h-full object-cover",loading:"lazy"})});let g=j(e),s=Kt(g),E=Math.max(16,Math.floor(r*.4));return jsxRuntime.jsx("div",{className:b("flex items-center justify-center rounded-md overflow-hidden","bg-[var(--accent-background)]",i),style:c,"aria-label":m?`Preview unavailable for ${e.name}`:void 0,children:jsxRuntime.jsx(s,{className:"text-[var(--menu-muted)]",style:{width:E,height:E},"aria-hidden":"true"})})}function Kt(e){switch(e){case "image":return lucideReact.ImageIcon;case "video":return lucideReact.VideoIcon;case "audio":return lucideReact.AudioLines;default:return lucideReact.FileIcon}}var ke=classVarianceAuthority.cva(["flex","flex-col","gap-1","w-full"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),$e=classVarianceAuthority.cva(["rounded-full","bg-[var(--accent-background)]","overflow-hidden"],{variants:{size:{sm:"h-1.5",default:"h-2",lg:"h-3"}},defaultVariants:{size:"default"}}),je=classVarianceAuthority.cva(["h-full","rounded-full","transition-all","duration-300"],{variants:{status:{pending:["bg-gradient-to-r","from-[var(--menu-muted)]","via-[var(--accent-background)]","to-[var(--menu-muted)]","bg-[length:200%_100%]","animate-progress-shimmer"],uploading:"bg-[var(--primary)]",complete:"bg-[var(--success-background)]",error:"bg-[var(--destructive-background)]"}},defaultVariants:{status:"pending"}}),We=classVarianceAuthority.cva(["flex","items-center","justify-between","gap-2"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ze=classVarianceAuthority.cva(["flex","items-center","justify-between","gap-2","mt-1","text-[var(--destructive-background)]"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ye=classVarianceAuthority.cva(["underline","hover:no-underline","min-h-[44px]","min-w-[44px]","inline-flex","items-center","justify-center","-mr-3","-my-2","focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2","rounded"],{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}});function tr(e,r){switch(e){case "pending":return "Waiting...";case "uploading":return `${r}%`;case "complete":return "Complete";case "error":return "Failed"}}function se({file:e,progress:r,status:t,error:a,onRetry:i,size:o="default",className:d}){let m=t==="pending",u=`progress-error-${e.name.replace(/[^a-zA-Z0-9]/g,"-")}`,c=tr(t,r);return jsxRuntime.jsxs("div",{className:b(ke({size:o}),d),children:[jsxRuntime.jsx(reactAriaComponents.ProgressBar,{"aria-label":e.name,value:m?void 0:r,isIndeterminate:m,"aria-describedby":t==="error"&&a?u:void 0,children:({percentage:g,valueText:s})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:We({size:o}),children:[jsxRuntime.jsx("span",{className:"truncate",title:e.name,children:$(e.name,30)}),jsxRuntime.jsx("span",{className:"text-[var(--menu-muted)] flex-shrink-0",children:t==="error"?"Failed":s??c})]}),jsxRuntime.jsx("div",{className:$e({size:o}),children:jsxRuntime.jsx("div",{className:je({status:t}),style:{width:m?"100%":`${g??0}%`}})})]})}),t==="error"&&a&&jsxRuntime.jsxs("div",{id:u,className:Ze({size:o}),children:[jsxRuntime.jsx("span",{children:a}),i&&jsxRuntime.jsx(reactAriaComponents.Button,{onPress:i,className:Ye({size:o}),children:"Retry"})]}),jsxRuntime.jsxs("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only",children:[t==="complete"&&`${e.name} upload complete`,t==="error"&&`${e.name} upload failed${a?`: ${a}`:""}`]})]})}se.displayName="FileProgress";var bt=react.forwardRef(function({label:r,acceptedFileTypes:t,allowsMultiple:a=false,maxFileSize:i,maxFiles:o,description:d,errorMessage:m,successMessage:u,triggerText:c,isRequired:g,isDisabled:s,isInvalid:E,isValid:y,size:f="default",name:F,id:le,className:Y,value:v=[],onChange:T,validate:U,showPreviews:de=false,previewSize:z=64,maxPreviewBytes:X=10*1024*1024,renderPreview:q,showProgress:ue=false,uploadProgress:H,uploadStatus:Xe,uploadErrors:qe,onRetry:P,"data-testid":Qe,"aria-label":gr,"aria-labelledby":vr,"aria-describedby":Ke,...St},Et){let Ft=react.useId(),Q=le??Ft,Je=`${Q}-label`,et=`${Q}-description`,tt=`${Q}-error`,[rt,ce]=react.useState(false),[It,fe]=react.useState(null),K=react.useRef(0),G=m??It,Vt=E||!!G,M=[];Ke&&M.push(Ke),d&&M.push(et),G&&M.push(tt);let Nt=M.length>0?M.join(" "):void 0,at=react.useCallback((n,x=[])=>{let I=[],h=[];for(let S of n){if(t&&!Be(S,t)){h.push(`"${S.name}" has an invalid file type`);continue}if(i&&S.size>i){h.push(`"${S.name}" exceeds the maximum size of ${oe(i)}`);continue}I.push(S);}return o&&a&&W(x,I).length>o?(h.push(`Maximum ${o} files allowed`),{valid:[],errors:h}):{valid:I,errors:h}},[t,i,o,a]),J=react.useCallback(n=>{if(!n||n.length===0)return;fe(null);let x=Array.from(n),I=a?v:[],{valid:h,errors:S}=at(x,I);if(S.length>0){fe(S[0]??"Invalid file");return}if(U&&h.length>0){let ee=U(a?W(I,h):h);if(ee){fe(ee);return}}let k;a?k=W(I,h):k=h.slice(0,1),T?.(k);},[a,v,at,U,T]),yt=react.useCallback(n=>{J(n);},[J]),Tt=react.useCallback(n=>{let x=v.filter(I=>I!==n);T?.(x);},[v,T]),_t=react.useCallback(()=>{T?.([]);},[T]),Pt=react.useCallback(n=>{n.preventDefault(),n.stopPropagation(),!s&&(K.current++,ce(true));},[s]),Rt=react.useCallback(n=>{n.preventDefault(),n.stopPropagation();},[]),At=react.useCallback(n=>{n.preventDefault(),n.stopPropagation(),K.current--,K.current===0&&ce(false);},[]),Ot=react.useCallback(n=>{if(n.preventDefault(),n.stopPropagation(),K.current=0,ce(false),s)return;let x=n.dataTransfer?.files;J(x??null);},[s,J]),wt=n=>{switch(j(n)){case "image":return lucideReact.ImageIcon;case "video":return lucideReact.VideoIcon;case "audio":return lucideReact.AudioLines;default:return lucideReact.FileIcon}},Ct=t?.join(",");return jsxRuntime.jsxs("div",{ref:Et,id:Q,className:b(Te({size:f}),Y),"data-testid":Qe??"file-field",...St,children:[jsxRuntime.jsx("label",{id:Je,className:De({size:f,isRequired:g}),children:r}),jsxRuntime.jsxs("div",{role:"group","data-testid":`${Qe??"file-field"}-dropzone`,className:b("drop-zone",_e({size:f,isDragOver:rt,isInvalid:Vt,isDisabled:s})),onDragEnter:Pt,onDragOver:Rt,onDragLeave:At,onDrop:Ot,"aria-labelledby":Je,"aria-describedby":Nt,"aria-disabled":s||void 0,children:[jsxRuntime.jsx(reactAriaComponents.FileTrigger,{acceptedFileTypes:t,allowsMultiple:a,onSelect:yt,children:jsxRuntime.jsxs(L,{variant:"outline",isDisabled:s,buttonVisualClassName:Pe({size:f}),children:[jsxRuntime.jsx(lucideReact.Upload,{className:"h-4 w-4","aria-hidden":"true"}),rt?"Drop files here":c??(a?"Choose files":"Choose file")]})}),F&&jsxRuntime.jsx("input",{type:"file",name:F,accept:Ct,multiple:a,disabled:s,className:"sr-only",tabIndex:-1,"aria-hidden":"true"})]}),d&&jsxRuntime.jsx("p",{id:et,className:Le({size:f}),children:d}),v.length>0&&jsxRuntime.jsxs("div",{className:Re({size:f}),children:[v.length>=2&&jsxRuntime.jsxs("div",{className:mt({size:f}),children:[jsxRuntime.jsxs("span",{className:"text-[var(--menu-muted)]",children:[v.length," files selected"]}),jsxRuntime.jsx(L,{variant:"link",visualSize:"sm",onPress:_t,buttonVisualClassName:b("text-[var(--menu-muted)] hover:text-[var(--destructive-background)]","underline-offset-4 hover:underline"),"aria-label":"Clear all files",children:"Clear all"})]}),jsxRuntime.jsx("ul",{className:"space-y-2",children:v.map((n,x)=>{let I=wt(n),h=f==="sm"?Math.min(z,40):f==="lg"?Math.min(z,80):Math.min(z,48),S=Xe?.[x],k=H?.[x]??0,ee=qe?.get(x),it=ue&&S!==void 0;return jsxRuntime.jsx("li",{className:it?"p-3":Ae({size:f}),children:it?jsxRuntime.jsx(se,{file:n,progress:k,status:S,error:ee,onRetry:P?()=>P(x):void 0,size:f}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[de?jsxRuntime.jsx(Me,{file:n,size:h,maxBytes:X,renderPreview:q,className:"flex-shrink-0"}):jsxRuntime.jsx(I,{className:"h-4 w-4 flex-shrink-0 text-[var(--menu-muted)]","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"truncate",title:n.name,children:$(n.name,30)}),jsxRuntime.jsx("span",{className:"text-[var(--menu-muted)] flex-shrink-0",children:oe(n.size)})]}),jsxRuntime.jsx(L,{variant:"ghost",visualSize:"icon",onPress:()=>Tt(n),buttonVisualClassName:Oe({size:f}),"aria-label":`Remove ${n.name}`,isDisabled:s,children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4","aria-hidden":"true"})})]})},`${n.name}-${x}`)})})]}),G&&jsxRuntime.jsx("p",{id:tt,role:"alert",className:we({size:f}),children:G}),!G&&y&&u&&jsxRuntime.jsx("p",{className:Ce({size:f}),children:u})]})});bt.displayName="FileField";var ht=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var mr=ht.extend({label:zod.z.string(),acceptedFileTypes:zod.z.array(zod.z.string()).optional(),allowsMultiple:zod.z.boolean().default(false),maxFileSize:zod.z.number().optional(),maxFiles:zod.z.number().optional(),description:zod.z.string().optional(),errorMessage:zod.z.string().optional(),successMessage:zod.z.string().optional(),triggerText:zod.z.string().optional(),isRequired:zod.z.boolean().optional(),isDisabled:zod.z.boolean().optional(),isInvalid:zod.z.boolean().optional(),isValid:zod.z.boolean().optional(),size:zod.z.enum(["sm","default","lg"]).default("default"),name:zod.z.string().optional(),showPreviews:zod.z.boolean().default(false),previewSize:zod.z.number().min(16).max(256).default(64),maxPreviewBytes:zod.z.number().default(10*1024*1024),showProgress:zod.z.boolean().default(false),uploadProgress:zod.z.array(zod.z.number().min(0).max(100)).optional(),uploadStatus:zod.z.array(zod.z.enum(["pending","uploading","complete","error"])).optional()}).refine(e=>!(e.successMessage&&e.errorMessage),{message:"Cannot provide both successMessage and errorMessage. Use one based on validation state.",path:["successMessage"]}).refine(e=>(typeof process<"u"&&process.env.NODE_ENV==="development"&&e.isValid&&e.isInvalid&&console.error("[FileField] Both isValid and isInvalid are true. isInvalid takes precedence."),true));exports.FileField=bt;exports.FileFieldPropsSchema=mr;exports.FilePreview=Me;exports.FileProgress=se;exports.RESIZE_THRESHOLD=gt;exports.createResizedPreview=vt;exports.deduplicateFiles=W;exports.fileFieldContainerVariants=Te;exports.fileFieldDescriptionVariants=Le;exports.fileFieldDropZoneVariants=_e;exports.fileFieldErrorVariants=we;exports.fileFieldItemVariants=Ae;exports.fileFieldLabelVariants=De;exports.fileFieldListVariants=Re;exports.fileFieldRemoveButtonVariants=Oe;exports.fileFieldSuccessVariants=Ce;exports.fileFieldTriggerVariants=Pe;exports.fileProgressBarVariants=je;exports.fileProgressErrorVariants=Ze;exports.fileProgressHeaderVariants=We;exports.fileProgressRetryVariants=Ye;exports.fileProgressTrackVariants=$e;exports.fileProgressVariants=ke;exports.formatAcceptedTypes=jt;exports.formatFileSize=oe;exports.generatePreview=ze;exports.getFileIcon=j;exports.isFileTypeAccepted=Be;exports.isImageFile=Ue;exports.truncateFileName=$;exports.useFilePreview=Ge;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map