ixia-ui-react 1.8.0 → 2.0.0

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 (270) hide show
  1. package/README.md +24 -1
  2. package/dist/accordion/index.d.ts +41 -0
  3. package/dist/accordion/index.js +142 -0
  4. package/dist/accordion/index.js.map +1 -0
  5. package/dist/alert/index.d.ts +22 -0
  6. package/dist/alert/index.js +1 -0
  7. package/dist/alert-Dcu9R8CY.js +73 -0
  8. package/dist/alert-Dcu9R8CY.js.map +1 -0
  9. package/dist/alert-dialog/index.d.ts +39 -0
  10. package/dist/alert-dialog/index.js +134 -0
  11. package/dist/alert-dialog/index.js.map +1 -0
  12. package/dist/autocomplete/index.d.ts +2 -0
  13. package/dist/autocomplete/index.js +1 -0
  14. package/dist/autocomplete-BfpWVO1l.js +169 -0
  15. package/dist/autocomplete-BfpWVO1l.js.map +1 -0
  16. package/dist/avatar/index.d.ts +2 -0
  17. package/dist/avatar/index.js +1 -0
  18. package/dist/avatar-Bp4gZh21.js +93 -0
  19. package/dist/avatar-Bp4gZh21.js.map +1 -0
  20. package/dist/badge/index.d.ts +2 -0
  21. package/dist/badge/index.js +1 -0
  22. package/dist/badge-Cl-9WTW-.js +160 -0
  23. package/dist/badge-Cl-9WTW-.js.map +1 -0
  24. package/dist/bento-box/index.d.ts +30 -0
  25. package/dist/bento-box/index.js +103 -0
  26. package/dist/bento-box/index.js.map +1 -0
  27. package/dist/breadcrumb/index.d.ts +18 -0
  28. package/dist/breadcrumb/index.js +58 -0
  29. package/dist/breadcrumb/index.js.map +1 -0
  30. package/dist/button/index.d.ts +3 -0
  31. package/dist/button/index.js +1 -0
  32. package/dist/button-BpUC-R1J.js +307 -0
  33. package/dist/button-BpUC-R1J.js.map +1 -0
  34. package/dist/button-group/index.d.ts +2 -0
  35. package/dist/button-group/index.js +1 -0
  36. package/dist/button-group-7azbqlcO.js +269 -0
  37. package/dist/button-group-7azbqlcO.js.map +1 -0
  38. package/dist/button.types-BFKrBCGd.d.ts +10 -0
  39. package/dist/calendar/index.d.ts +63 -0
  40. package/dist/calendar/index.js +292 -0
  41. package/dist/calendar/index.js.map +1 -0
  42. package/dist/chart/index.d.ts +87 -0
  43. package/dist/chart/index.js +262 -0
  44. package/dist/chart/index.js.map +1 -0
  45. package/dist/checkbox/index.d.ts +2 -0
  46. package/dist/checkbox/index.js +1 -0
  47. package/dist/checkbox-BuUZ1Lly.js +54 -0
  48. package/dist/checkbox-BuUZ1Lly.js.map +1 -0
  49. package/dist/checkbox-group/index.d.ts +6 -0
  50. package/dist/checkbox-group/index.js +17 -0
  51. package/dist/checkbox-group/index.js.map +1 -0
  52. package/dist/cn-BDi0DfT5.js +29 -0
  53. package/dist/cn-BDi0DfT5.js.map +1 -0
  54. package/dist/code-block/index.d.ts +50 -0
  55. package/dist/code-block/index.js +208 -0
  56. package/dist/code-block/index.js.map +1 -0
  57. package/dist/collapsible/index.d.ts +2 -0
  58. package/dist/collapsible/index.js +1 -0
  59. package/dist/collapsible-BVqrh0Q0.js +44 -0
  60. package/dist/collapsible-BVqrh0Q0.js.map +1 -0
  61. package/dist/color-channel-slider/index.d.ts +2 -0
  62. package/dist/color-channel-slider/index.js +1 -0
  63. package/dist/color-channel-slider-h8mUPJ35.js +70 -0
  64. package/dist/color-channel-slider-h8mUPJ35.js.map +1 -0
  65. package/dist/color-picker/index.d.ts +137 -0
  66. package/dist/color-picker/index.js +621 -0
  67. package/dist/color-picker/index.js.map +1 -0
  68. package/dist/combobox/index.d.ts +64 -0
  69. package/dist/combobox/index.js +289 -0
  70. package/dist/combobox/index.js.map +1 -0
  71. package/dist/context-menu/index.d.ts +49 -0
  72. package/dist/context-menu/index.js +166 -0
  73. package/dist/context-menu/index.js.map +1 -0
  74. package/dist/dialog/index.d.ts +36 -0
  75. package/dist/dialog/index.js +119 -0
  76. package/dist/dialog/index.js.map +1 -0
  77. package/dist/drawer/index.d.ts +31 -0
  78. package/dist/drawer/index.js +95 -0
  79. package/dist/drawer/index.js.map +1 -0
  80. package/dist/dropzone/index.d.ts +70 -0
  81. package/dist/dropzone/index.js +479 -0
  82. package/dist/dropzone/index.js.map +1 -0
  83. package/dist/field/index.d.ts +2 -0
  84. package/dist/field/index.js +1 -0
  85. package/dist/field-DTL7eA5y.js +254 -0
  86. package/dist/field-DTL7eA5y.js.map +1 -0
  87. package/dist/form/index.d.ts +220 -0
  88. package/dist/form/index.js +3 -0
  89. package/dist/form-BxMg796f.js +192 -0
  90. package/dist/form-BxMg796f.js.map +1 -0
  91. package/dist/has-single-element-child-DLGI0Dh2.js +12 -0
  92. package/dist/has-single-element-child-DLGI0Dh2.js.map +1 -0
  93. package/dist/hooks/index.d.ts +26 -0
  94. package/dist/hooks/index.js +1 -0
  95. package/dist/hooks-DUm-q_ig.js +68 -0
  96. package/dist/hooks-DUm-q_ig.js.map +1 -0
  97. package/dist/icon/index.d.ts +2 -0
  98. package/dist/icon/index.js +1 -0
  99. package/dist/icon-D3JWfCa2.js +85 -0
  100. package/dist/icon-D3JWfCa2.js.map +1 -0
  101. package/dist/icon-container/index.d.ts +10 -0
  102. package/dist/icon-container/index.js +64 -0
  103. package/dist/icon-container/index.js.map +1 -0
  104. package/dist/index-0ZQzIKoE.d.ts +11 -0
  105. package/dist/index-B3MK1QYh.d.ts +11 -0
  106. package/dist/index-BJVMIPq4.d.ts +54 -0
  107. package/dist/index-BsV-u_jc.d.ts +4 -0
  108. package/dist/index-BygR7cUT.d.ts +22 -0
  109. package/dist/index-BzTOLSgZ.d.ts +9 -0
  110. package/dist/index-C15xiG9O.d.ts +14 -0
  111. package/dist/index-C2zco6-C.d.ts +15 -0
  112. package/dist/index-CIDOd4Z8.d.ts +56 -0
  113. package/dist/index-CQti9gFb.d.ts +49 -0
  114. package/dist/index-CiE-Rqit.d.ts +70 -0
  115. package/dist/index-D1kkOg9k.d.ts +14 -0
  116. package/dist/index-DLfdAked.d.ts +34 -0
  117. package/dist/index-DMaW_XF1.d.ts +24 -0
  118. package/dist/index-Db_QGr6S.d.ts +5 -0
  119. package/dist/index-DdFxZ3Xr.d.ts +22 -0
  120. package/dist/index-DfNHJF0t.d.ts +33 -0
  121. package/dist/index-DyQYoAUf.d.ts +29 -0
  122. package/dist/index-N2CBSUDu.d.ts +14 -0
  123. package/dist/index-PuhTRMce.d.ts +11 -0
  124. package/dist/index-Wb_tILYa.d.ts +24 -0
  125. package/dist/index-bVyqfhJS.d.ts +4 -0
  126. package/dist/index-x4f8gnaI.d.ts +15 -0
  127. package/dist/input/index.d.ts +3 -0
  128. package/dist/input/index.js +1 -0
  129. package/dist/input-Laj6dwtK.js +179 -0
  130. package/dist/input-Laj6dwtK.js.map +1 -0
  131. package/dist/input-group/index.d.ts +2 -0
  132. package/dist/input-group/index.js +1 -0
  133. package/dist/input-group-CgdazGrY.js +111 -0
  134. package/dist/input-group-CgdazGrY.js.map +1 -0
  135. package/dist/input-otp/index.d.ts +13 -0
  136. package/dist/input-otp/index.js +44 -0
  137. package/dist/input-otp/index.js.map +1 -0
  138. package/dist/input.types-816rEVWU.d.ts +20 -0
  139. package/dist/input.types-D0gyoaQv.js +48 -0
  140. package/dist/input.types-D0gyoaQv.js.map +1 -0
  141. package/dist/kbd/index.d.ts +9 -0
  142. package/dist/kbd/index.js +25 -0
  143. package/dist/kbd/index.js.map +1 -0
  144. package/dist/label/index.d.ts +8 -0
  145. package/dist/label/index.js +1 -0
  146. package/dist/label-BgpayDvN.js +27 -0
  147. package/dist/label-BgpayDvN.js.map +1 -0
  148. package/dist/layer-tree/index.d.ts +728 -0
  149. package/dist/layer-tree/index.js +685 -0
  150. package/dist/layer-tree/index.js.map +1 -0
  151. package/dist/map/google/index.d.ts +143 -0
  152. package/dist/map/google/index.js +445 -0
  153. package/dist/map/google/index.js.map +1 -0
  154. package/dist/map/index.d.ts +94 -0
  155. package/dist/map/index.js +208 -0
  156. package/dist/map/index.js.map +1 -0
  157. package/dist/map.context-Dw1D7E8m.js +11 -0
  158. package/dist/map.context-Dw1D7E8m.js.map +1 -0
  159. package/dist/menu/index.d.ts +2 -0
  160. package/dist/menu/index.js +1 -0
  161. package/dist/menu-sf13cnGp.js +173 -0
  162. package/dist/menu-sf13cnGp.js.map +1 -0
  163. package/dist/menu-tone-DWBEHoX2.js +22 -0
  164. package/dist/menu-tone-DWBEHoX2.js.map +1 -0
  165. package/dist/meter/index.d.ts +2 -0
  166. package/dist/meter/index.js +1 -0
  167. package/dist/meter-HD5taq57.js +116 -0
  168. package/dist/meter-HD5taq57.js.map +1 -0
  169. package/dist/nav-bar/index.d.ts +25 -0
  170. package/dist/nav-bar/index.js +133 -0
  171. package/dist/nav-bar/index.js.map +1 -0
  172. package/dist/navigation-menu/index.d.ts +43 -0
  173. package/dist/navigation-menu/index.js +176 -0
  174. package/dist/navigation-menu/index.js.map +1 -0
  175. package/dist/number-field/index.d.ts +14 -0
  176. package/dist/number-field/index.js +116 -0
  177. package/dist/number-field/index.js.map +1 -0
  178. package/dist/popover/index.d.ts +2 -0
  179. package/dist/popover/index.js +1 -0
  180. package/dist/popover-B1s4xXrX.js +114 -0
  181. package/dist/popover-B1s4xXrX.js.map +1 -0
  182. package/dist/preview-card/index.d.ts +13 -0
  183. package/dist/preview-card/index.js +35 -0
  184. package/dist/preview-card/index.js.map +1 -0
  185. package/dist/profile/index.d.ts +21 -0
  186. package/dist/profile/index.js +52 -0
  187. package/dist/profile/index.js.map +1 -0
  188. package/dist/progress/index.d.ts +23 -0
  189. package/dist/progress/index.js +97 -0
  190. package/dist/progress/index.js.map +1 -0
  191. package/dist/radar-ping/index.d.ts +11 -0
  192. package/dist/radar-ping/index.js +49 -0
  193. package/dist/radar-ping/index.js.map +1 -0
  194. package/dist/radio-group/index.d.ts +2 -0
  195. package/dist/radio-group/index.js +1 -0
  196. package/dist/radio-group-Dj43u35Z.js +47 -0
  197. package/dist/radio-group-Dj43u35Z.js.map +1 -0
  198. package/dist/resizeable/index.d.ts +11 -0
  199. package/dist/resizeable/index.js +31 -0
  200. package/dist/resizeable/index.js.map +1 -0
  201. package/dist/scroll-area/index.d.ts +11 -0
  202. package/dist/scroll-area/index.js +51 -0
  203. package/dist/scroll-area/index.js.map +1 -0
  204. package/dist/select/index.d.ts +2 -0
  205. package/dist/select/index.js +1 -0
  206. package/dist/select-DncJXYim.js +159 -0
  207. package/dist/select-DncJXYim.js.map +1 -0
  208. package/dist/separator/index.d.ts +2 -0
  209. package/dist/separator/index.js +1 -0
  210. package/dist/separator-DgIQp1cB.js +97 -0
  211. package/dist/separator-DgIQp1cB.js.map +1 -0
  212. package/dist/sidebar/index.d.ts +80 -0
  213. package/dist/sidebar/index.js +334 -0
  214. package/dist/sidebar/index.js.map +1 -0
  215. package/dist/site-header/index.d.ts +22 -0
  216. package/dist/site-header/index.js +55 -0
  217. package/dist/site-header/index.js.map +1 -0
  218. package/dist/skeleton/index.d.ts +4 -0
  219. package/dist/skeleton/index.js +1 -0
  220. package/dist/skeleton-DSG3FWby.js +13 -0
  221. package/dist/skeleton-DSG3FWby.js.map +1 -0
  222. package/dist/slider/index.d.ts +2 -0
  223. package/dist/slider/index.js +1 -0
  224. package/dist/slider-D_XlV4OW.js +114 -0
  225. package/dist/slider-D_XlV4OW.js.map +1 -0
  226. package/dist/slider-group/index.d.ts +46 -0
  227. package/dist/slider-group/index.js +198 -0
  228. package/dist/slider-group/index.js.map +1 -0
  229. package/dist/styles.css +4 -1
  230. package/dist/switch/index.d.ts +2 -0
  231. package/dist/switch/index.js +1 -0
  232. package/dist/switch-DXHixGHe.js +23 -0
  233. package/dist/switch-DXHixGHe.js.map +1 -0
  234. package/dist/table/index.d.ts +920 -0
  235. package/dist/table/index.js +1544 -0
  236. package/dist/table/index.js.map +1 -0
  237. package/dist/tabs/index.d.ts +2 -0
  238. package/dist/tabs/index.js +1 -0
  239. package/dist/tabs-DTC7coap.js +270 -0
  240. package/dist/tabs-DTC7coap.js.map +1 -0
  241. package/dist/text-area/index.d.ts +2 -0
  242. package/dist/text-area/index.js +1 -0
  243. package/dist/text-area-H6HjKnv_.js +50 -0
  244. package/dist/text-area-H6HjKnv_.js.map +1 -0
  245. package/dist/toast/index.d.ts +65 -0
  246. package/dist/toast/index.js +216 -0
  247. package/dist/toast/index.js.map +1 -0
  248. package/dist/toggle/index.d.ts +2 -0
  249. package/dist/toggle/index.js +1 -0
  250. package/dist/toggle-ZT9thVmz.js +73 -0
  251. package/dist/toggle-ZT9thVmz.js.map +1 -0
  252. package/dist/toggle-group/index.d.ts +10 -0
  253. package/dist/toggle-group/index.js +63 -0
  254. package/dist/toggle-group/index.js.map +1 -0
  255. package/dist/toggle-group-context-CBNZEf1I.js +6 -0
  256. package/dist/toggle-group-context-CBNZEf1I.js.map +1 -0
  257. package/dist/tooltip/index.d.ts +18 -0
  258. package/dist/tooltip/index.js +1 -0
  259. package/dist/tooltip-B6z3tDbW.js +41 -0
  260. package/dist/tooltip-B6z3tDbW.js.map +1 -0
  261. package/dist/trim-text-children-CQRFg2fL.js +33 -0
  262. package/dist/trim-text-children-CQRFg2fL.js.map +1 -0
  263. package/dist/utils/index.d.ts +4 -0
  264. package/dist/utils/index.js +3 -0
  265. package/dist/utils-BI2x7nW5.js +5 -0
  266. package/dist/utils-BI2x7nW5.js.map +1 -0
  267. package/package.json +100 -31
  268. package/dist/index.d.ts +0 -8000
  269. package/dist/index.js +0 -17274
  270. package/dist/index.js.map +0 -1
@@ -0,0 +1,192 @@
1
+ import { t as cn } from "./cn-BDi0DfT5.js";
2
+ import { n as Icon } from "./icon-D3JWfCa2.js";
3
+ import { i as AlertDescription, n as AlertTitle, r as AlertIcon, t as Alert } from "./alert-Dcu9R8CY.js";
4
+ import { t as Button } from "./button-BpUC-R1J.js";
5
+ import { _ as FieldCheckbox, a as FieldSlider, c as FieldRow, d as FieldLabel, f as FieldInputGroupInput, g as FieldDescription, h as FieldErrors, i as FieldSwitch, l as FieldRadioGroup, m as FieldInput, n as FieldToggle, o as FieldSet, p as FieldInputGroup, r as FieldTextArea, s as FieldSelect, u as FieldRadio, v as fieldContext, x as useFormContext, y as formContext } from "./field-DTL7eA5y.js";
6
+ import { cva } from "class-variance-authority";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { createFormHook } from "@tanstack/react-form";
9
+ // src/components/form/form.tsx
10
+ function Form$1({ className, ref, ...props }) {
11
+ return /* @__PURE__ */ jsx("form", {
12
+ className: cn("flex flex-col gap-sm", className),
13
+ ref,
14
+ ...props
15
+ });
16
+ }
17
+ // src/components/form/form-errors.tsx
18
+ const collectObjectMessages = (value, acc) => {
19
+ const { message } = value;
20
+ if (typeof message === "string") {
21
+ acc.add(message);
22
+ return;
23
+ }
24
+ Object.values(value).forEach((nestedValue) => collectMessages(nestedValue, acc));
25
+ };
26
+ const collectStringMessage = (value, acc) => {
27
+ if (value.trim()) acc.add(value);
28
+ };
29
+ const collectMessages = (value, acc) => {
30
+ if (value == void 0) return;
31
+ if (typeof value === "string") {
32
+ collectStringMessage(value, acc);
33
+ return;
34
+ }
35
+ if (Array.isArray(value)) {
36
+ value.forEach((inputValue) => collectMessages(inputValue, acc));
37
+ return;
38
+ }
39
+ if (typeof value === "object") collectObjectMessages(value, acc);
40
+ };
41
+ function FormErrors({ className, children, ref, ...props }) {
42
+ const form = useFormContext();
43
+ return /* @__PURE__ */ jsx(form.Subscribe, {
44
+ selector: (state) => [state.errors, state.fieldMeta],
45
+ children: ([errors, fieldMeta]) => {
46
+ const messages = /* @__PURE__ */ new Set();
47
+ collectMessages(errors, messages);
48
+ Object.values(fieldMeta).forEach((meta) => collectMessages(meta.errors, messages));
49
+ if (!messages.size) return;
50
+ return /* @__PURE__ */ jsxs(Alert, {
51
+ className: cn("", className),
52
+ ref,
53
+ tone: "error",
54
+ ...props,
55
+ children: [
56
+ /* @__PURE__ */ jsx(AlertIcon, { children: /* @__PURE__ */ jsx(Icon, { name: "fieldError" }) }),
57
+ /* @__PURE__ */ jsx(AlertTitle, { children }),
58
+ /* @__PURE__ */ jsx(AlertDescription, { children: /* @__PURE__ */ jsx("ul", {
59
+ className: "list-inside list-disc has-[>:only-child]:list-none",
60
+ children: [...messages].map((message) => /* @__PURE__ */ jsx("li", { children: message }, message))
61
+ }) })
62
+ ]
63
+ });
64
+ }
65
+ });
66
+ }
67
+ // src/components/form/form-footer.tsx
68
+ function FormFooter({ orientation = "horizontal", className, ref, ...props }) {
69
+ return /* @__PURE__ */ jsx("div", {
70
+ className: cn("flex gap-2xs", className, orientation === "horizontal" && "flex-row", orientation === "vertical" && "flex-col"),
71
+ ref,
72
+ ...props
73
+ });
74
+ }
75
+ // src/components/form/form-reset.tsx
76
+ function FormReset({ className, ref, ...props }) {
77
+ const form = useFormContext(), handleClick = () => {
78
+ form.reset();
79
+ };
80
+ return /* @__PURE__ */ jsx(form.Subscribe, {
81
+ selector: (state) => state,
82
+ children: (state) => /* @__PURE__ */ jsx(Button, {
83
+ className: cn("w-full", className),
84
+ disabled: !state.values,
85
+ onClick: handleClick,
86
+ ref,
87
+ variant: "outline",
88
+ tone: "neutral",
89
+ type: "reset",
90
+ ...props
91
+ })
92
+ });
93
+ }
94
+ // src/components/form/form-set.tsx
95
+ function FormSet({ className, ref, ...props }) {
96
+ return /* @__PURE__ */ jsx("div", {
97
+ className: cn("flex flex-col gap-xs", className),
98
+ ref,
99
+ ...props
100
+ });
101
+ }
102
+ // src/components/form/form-set-content.tsx
103
+ function FormSetContent({ className, ref, ...props }) {
104
+ return /* @__PURE__ */ jsx("div", {
105
+ className: cn("flex flex-col gap-md", className),
106
+ ref,
107
+ ...props
108
+ });
109
+ }
110
+ // src/components/form/form.types.ts
111
+ const formSetHeadingVariants = cva("", {
112
+ defaultVariants: { size: "medium" },
113
+ variants: { size: {
114
+ large: "style-text-strong-2",
115
+ medium: "style-text-strong-1",
116
+ small: "style-text-strong-0"
117
+ } }
118
+ });
119
+ // src/components/form/form-set-heading.tsx
120
+ function FormSetHeading({ size, className, ref, ...props }) {
121
+ return /* @__PURE__ */ jsx("span", {
122
+ className: cn(formSetHeadingVariants({
123
+ className,
124
+ size
125
+ })),
126
+ ref,
127
+ ...props
128
+ });
129
+ }
130
+ // src/components/form/form-submit.tsx
131
+ function FormSubmit({ className, children, ref, ...props }) {
132
+ const form = useFormContext();
133
+ return /* @__PURE__ */ jsx(form.Subscribe, {
134
+ selector: (state) => state,
135
+ children: (state) => /* @__PURE__ */ jsxs(Button, {
136
+ className: cn("w-full", className),
137
+ disabled: state.isSubmitting || !state.canSubmit,
138
+ ref,
139
+ type: "submit",
140
+ ...props,
141
+ children: [state.isSubmitting && /* @__PURE__ */ jsx(Icon, {
142
+ name: "spinner",
143
+ className: "animate-spin"
144
+ }), !state.isSubmitting && children]
145
+ })
146
+ });
147
+ }
148
+ // src/components/form/form-context.tsx
149
+ const { useAppForm, withFieldGroup, withForm, useTypedAppFormContext } = createFormHook({
150
+ fieldComponents: {
151
+ Checkbox: FieldCheckbox,
152
+ Description: FieldDescription,
153
+ Errors: FieldErrors,
154
+ Input: FieldInput,
155
+ InputGroup: FieldInputGroup,
156
+ InputGroupInput: FieldInputGroupInput,
157
+ Label: FieldLabel,
158
+ Radio: FieldRadio,
159
+ RadioGroup: FieldRadioGroup,
160
+ Row: FieldRow,
161
+ Select: FieldSelect,
162
+ Set: FieldSet,
163
+ Slider: FieldSlider,
164
+ Switch: FieldSwitch,
165
+ TextArea: FieldTextArea,
166
+ Toggle: FieldToggle
167
+ },
168
+ fieldContext,
169
+ formComponents: {
170
+ Errors: FormErrors,
171
+ Footer: FormFooter,
172
+ Reset: FormReset,
173
+ Set: FormSet,
174
+ SetContent: FormSetContent,
175
+ SetHeading: FormSetHeading,
176
+ Submit: FormSubmit
177
+ },
178
+ formContext
179
+ });
180
+ // src/components/form/index.ts
181
+ const Form = Object.assign(Form$1, {
182
+ Errors: FormErrors,
183
+ Footer: FormFooter,
184
+ Reset: FormReset,
185
+ Set: FormSet,
186
+ SetContent: FormSetContent,
187
+ SetHeading: FormSetHeading,
188
+ Submit: FormSubmit
189
+ });
190
+ export { withForm as a, FormSetContent as c, FormFooter as d, FormErrors as f, withFieldGroup as i, FormSet as l, useAppForm as n, FormSubmit as o, useTypedAppFormContext as r, FormSetHeading as s, Form as t, FormReset as u };
191
+
192
+ //# sourceMappingURL=form-BxMg796f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-BxMg796f.js","names":["Form","FormRoot"],"sources":["../src/components/form/form.tsx","../src/components/form/form-errors.tsx","../src/components/form/form-footer.tsx","../src/components/form/form-reset.tsx","../src/components/form/form-set.tsx","../src/components/form/form-set-content.tsx","../src/components/form/form.types.ts","../src/components/form/form-set-heading.tsx","../src/components/form/form-submit.tsx","../src/components/form/form-context.tsx","../src/components/form/index.ts"],"sourcesContent":["import { cn } from '@/utils/cn'\n\ntype FormProps = React.ComponentProps<'form'>\n\nexport function Form({ className, ref, ...props }: FormProps) {\n return <form className={cn('flex flex-col gap-sm', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { Alert, AlertDescription, AlertIcon, AlertTitle } from '../alert'\nimport { Icon } from '../icon'\nimport { useFormContext } from './form-contexts'\nimport type { FormErrorsProps } from './form.types'\n\nconst collectObjectMessages = (value: object, acc: Set<string>) => {\n const { message } = value as { message?: unknown }\n if (typeof message === 'string') {\n acc.add(message)\n return\n }\n Object.values(value).forEach((nestedValue) => collectMessages(nestedValue, acc))\n },\n collectStringMessage = (value: string, acc: Set<string>) => {\n if (value.trim()) {\n acc.add(value)\n }\n },\n collectMessages = (value: unknown, acc: Set<string>) => {\n if (value == undefined) {\n return\n }\n if (typeof value === 'string') {\n collectStringMessage(value, acc)\n return\n }\n if (Array.isArray(value)) {\n value.forEach((inputValue) => collectMessages(inputValue, acc))\n return\n }\n if (typeof value === 'object') {\n collectObjectMessages(value, acc)\n }\n }\n\nexport function FormErrors({ className, children, ref, ...props }: FormErrorsProps) {\n const form = useFormContext()\n\n return (\n <form.Subscribe selector={(state) => [state.errors, state.fieldMeta]}>\n {([errors, fieldMeta]) => {\n const messages = new Set<string>()\n collectMessages(errors, messages)\n Object.values(fieldMeta as Record<string, { errors?: unknown }>).forEach((meta) =>\n collectMessages(meta.errors, messages),\n )\n\n if (!messages.size) {\n return undefined\n }\n\n return (\n <Alert className={cn('', className)} ref={ref} tone=\"error\" {...props}>\n <AlertIcon>\n <Icon name=\"fieldError\" />\n </AlertIcon>\n <AlertTitle>{children}</AlertTitle>\n <AlertDescription>\n <ul className=\"list-inside list-disc has-[>:only-child]:list-none\">\n {[...messages].map((message) => (\n <li key={message}>{message}</li>\n ))}\n </ul>\n </AlertDescription>\n </Alert>\n )\n }}\n </form.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormFooterProps } from './form.types'\n\nexport function FormFooter({\n orientation = 'horizontal',\n className,\n ref,\n ...props\n}: FormFooterProps) {\n return (\n <div\n className={cn(\n 'flex gap-2xs',\n className,\n orientation === 'horizontal' && 'flex-row',\n orientation === 'vertical' && 'flex-col',\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { useFormContext } from './form-contexts'\nimport type { FormResetProps } from './form.types'\n\nexport function FormReset({ className, ref, ...props }: FormResetProps) {\n const form = useFormContext(),\n handleClick = () => {\n form.reset()\n }\n\n return (\n <form.Subscribe selector={(state) => state}>\n {(state) => (\n <Button\n className={cn('w-full', className)}\n disabled={!state.values}\n onClick={handleClick}\n ref={ref}\n variant=\"outline\"\n tone=\"neutral\"\n type=\"reset\"\n {...props}\n />\n )}\n </form.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormSetProps } from './form.types'\n\nexport function FormSet({ className, ref, ...props }: FormSetProps) {\n return <div className={cn('flex flex-col gap-xs', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormSetContentProps } from './form.types'\n\nexport function FormSetContent({ className, ref, ...props }: FormSetContentProps) {\n return <div className={cn('flex flex-col gap-md', className)} ref={ref} {...props} />\n}\n","import { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport type { Button } from '../button'\n\ntype FormProps = React.ComponentProps<'form'>\ntype FormSubmitProps = React.ComponentProps<typeof Button>\ntype FormResetProps = React.ComponentProps<typeof Button>\ntype FormErrorsProps = React.ComponentProps<'div'> & {\n headerLabel?: string\n}\ntype FormSetProps = React.ComponentProps<'div'>\ntype FormSetHeadingProps = React.ComponentProps<'span'> &\n VariantProps<typeof formSetHeadingVariants>\ntype FormSetContentProps = React.ComponentProps<'div'>\ntype FormFooterProps = React.ComponentProps<'div'> & {\n orientation?: 'horizontal' | 'vertical'\n}\n\nconst formSetHeadingVariants = cva('', {\n defaultVariants: {\n size: 'medium',\n },\n variants: {\n size: {\n large: 'style-text-strong-2',\n medium: 'style-text-strong-1',\n small: 'style-text-strong-0',\n },\n },\n})\n\nexport type {\n FormProps,\n FormSubmitProps,\n FormResetProps,\n FormErrorsProps,\n FormSetProps,\n FormSetHeadingProps,\n FormSetContentProps,\n FormFooterProps,\n}\nexport { formSetHeadingVariants }\n","import { cn } from '@/utils/cn'\n\nimport { formSetHeadingVariants } from './form.types'\nimport type { FormSetHeadingProps } from './form.types'\n\nexport function FormSetHeading({ size, className, ref, ...props }: FormSetHeadingProps) {\n return <span className={cn(formSetHeadingVariants({ className, size }))} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useFormContext } from './form-contexts'\nimport type { FormSubmitProps } from './form.types'\n\nexport function FormSubmit({ className, children, ref, ...props }: FormSubmitProps) {\n const form = useFormContext()\n\n return (\n <form.Subscribe selector={(state) => state}>\n {(state) => (\n <Button\n className={cn('w-full', className)}\n disabled={state.isSubmitting || !state.canSubmit}\n ref={ref}\n type=\"submit\"\n {...props}\n >\n {state.isSubmitting && <Icon name=\"spinner\" className=\"animate-spin\" />}\n {!state.isSubmitting && children}\n </Button>\n )}\n </form.Subscribe>\n )\n}\n","import { createFormHook } from '@tanstack/react-form'\n\nimport {\n FieldCheckbox,\n FieldDescription,\n FieldErrors,\n FieldInput,\n FieldInputGroup,\n FieldInputGroupInput,\n FieldLabel,\n FieldRadio,\n FieldRadioGroup,\n FieldSelect,\n FieldSet,\n FieldSlider,\n FieldSwitch,\n FieldTextArea,\n FieldToggle,\n} from '../field'\nimport { FieldRow } from '../field/field-row'\nimport { fieldContext, formContext } from './form-contexts'\nimport { FormErrors } from './form-errors'\nimport { FormFooter } from './form-footer'\nimport { FormReset } from './form-reset'\nimport { FormSet } from './form-set'\nimport { FormSetContent } from './form-set-content'\nimport { FormSetHeading } from './form-set-heading'\nimport { FormSubmit } from './form-submit'\n\nexport { fieldContext, formContext, useFieldContext, useFormContext } from './form-contexts'\n\nexport const { useAppForm, withFieldGroup, withForm, useTypedAppFormContext } = createFormHook({\n fieldComponents: {\n Checkbox: FieldCheckbox,\n Description: FieldDescription,\n Errors: FieldErrors,\n Input: FieldInput,\n InputGroup: FieldInputGroup,\n InputGroupInput: FieldInputGroupInput,\n Label: FieldLabel,\n Radio: FieldRadio,\n RadioGroup: FieldRadioGroup,\n Row: FieldRow,\n Select: FieldSelect,\n Set: FieldSet,\n Slider: FieldSlider,\n Switch: FieldSwitch,\n TextArea: FieldTextArea,\n Toggle: FieldToggle,\n },\n fieldContext,\n formComponents: {\n Errors: FormErrors,\n Footer: FormFooter,\n Reset: FormReset,\n Set: FormSet,\n SetContent: FormSetContent,\n SetHeading: FormSetHeading,\n Submit: FormSubmit,\n },\n formContext,\n})\n","import { Form as FormRoot } from './form'\nimport { FormErrors } from './form-errors'\nimport { FormFooter } from './form-footer'\nimport { FormReset } from './form-reset'\nimport { FormSet } from './form-set'\nimport { FormSetContent } from './form-set-content'\nimport { FormSetHeading } from './form-set-heading'\nimport { FormSubmit } from './form-submit'\n\nconst Form = Object.assign(FormRoot, {\n Errors: FormErrors,\n Footer: FormFooter,\n Reset: FormReset,\n Set: FormSet,\n SetContent: FormSetContent,\n SetHeading: FormSetHeading,\n Submit: FormSubmit,\n})\n\nexport type { FormErrorsProps, FormProps, FormResetProps, FormSubmitProps } from './form.types'\nexport {\n fieldContext,\n formContext,\n useAppForm,\n useFieldContext,\n useFormContext,\n useTypedAppFormContext,\n withFieldGroup,\n withForm,\n} from './form-context'\nexport { FormErrors } from './form-errors'\nexport { FormReset } from './form-reset'\nexport { FormSubmit } from './form-submit'\nexport { FormFooter } from './form-footer'\nexport { FormSet } from './form-set'\nexport { FormSetContent } from './form-set-content'\nexport { FormSetHeading } from './form-set-heading'\n\nexport { Form }\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Children, Fragment, isValidElement } from "react";
2
+ // src/utils/has-single-element-child.ts
3
+ function hasSingleElementChild(children) {
4
+ const items = Children.toArray(children), [child] = items;
5
+ if (items.length !== 1) return false;
6
+ if (!isValidElement(child)) return false;
7
+ if (child.type === Fragment) return hasSingleElementChild(child.props.children);
8
+ return true;
9
+ }
10
+ export { hasSingleElementChild as t };
11
+
12
+ //# sourceMappingURL=has-single-element-child-DLGI0Dh2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-single-element-child-DLGI0Dh2.js","names":[],"sources":["../src/utils/has-single-element-child.ts"],"sourcesContent":["// oxlint-disable no-magic-numbers\nimport { Children, Fragment, isValidElement } from 'react'\nimport type { ReactNode } from 'react'\n\nexport function hasSingleElementChild(children: ReactNode): boolean {\n const items = Children.toArray(children),\n [child] = items\n\n if (items.length !== 1) {\n return false\n }\n\n if (!isValidElement<{ children?: ReactNode }>(child)) {\n return false\n }\n if (child.type === Fragment) {\n return hasSingleElementChild(child.props.children)\n }\n\n return true\n}\n"],"mappings":";;AAIA,SAAgB,sBAAsB,UAA8B;CAClE,MAAM,QAAQ,SAAS,QAAQ,QAAQ,GACrC,CAAC,SAAS;CAEZ,IAAI,MAAM,WAAW,GACnB,OAAO;CAGT,IAAI,CAAC,eAAyC,KAAK,GACjD,OAAO;CAET,IAAI,MAAM,SAAS,UACjB,OAAO,sBAAsB,MAAM,MAAM,QAAQ;CAGnD,OAAO;AACT"}
@@ -0,0 +1,26 @@
1
+ import { r as IconComponent } from "../index-Wb_tILYa.js";
2
+ interface Device {
3
+ name: 'mobile' | 'tablet' | 'desktop';
4
+ query: string;
5
+ }
6
+ export declare function useMediaQuery(deviceName: Device['name']): boolean;
7
+ type ThemeValue = 'light' | 'dark' | 'system';
8
+ interface Theme {
9
+ value: ThemeValue;
10
+ label: string;
11
+ icon: IconComponent;
12
+ }
13
+ interface ThemeProviderState {
14
+ theme: ThemeValue;
15
+ setTheme: (theme: ThemeValue) => void;
16
+ }
17
+ interface ThemeProviderProps {
18
+ children: React.ReactNode;
19
+ defaultTheme?: ThemeValue;
20
+ storageKey?: string;
21
+ }
22
+ declare const THEME_STORAGE_KEY = "ixia-ui-theme", DEFAULT_THEME: ThemeValue, getThemeByValue: (value: ThemeValue, themes: Theme[]) => Theme | undefined;
23
+ declare function ThemeProvider({ children, defaultTheme, storageKey, ...props }: ThemeProviderProps): import("react").JSX.Element;
24
+ declare function useTheme(): ThemeProviderState;
25
+ export { DEFAULT_THEME, THEME_STORAGE_KEY, type Theme, ThemeProvider, type ThemeProviderProps, type ThemeProviderState, type ThemeValue, getThemeByValue, useTheme };
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export { r as DEFAULT_THEME, i as THEME_STORAGE_KEY, t as ThemeProvider, a as getThemeByValue, o as useMediaQuery, n as useTheme } from "../hooks-DUm-q_ig.js";
@@ -0,0 +1,68 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React, { createContext, useContext, useEffect, useState } from "react";
3
+ // src/hooks/use-media-query.ts
4
+ const devices = [
5
+ {
6
+ name: "mobile",
7
+ query: "(max-width: 767px), (orientation: landscape) and (max-height: 500px)"
8
+ },
9
+ {
10
+ name: "tablet",
11
+ query: "(min-width: 768px) and (max-width: 1023px)"
12
+ },
13
+ {
14
+ name: "desktop",
15
+ query: "(min-width: 1024px)"
16
+ }
17
+ ];
18
+ function getInitialMatch(query) {
19
+ if (typeof globalThis.matchMedia !== "function") return false;
20
+ return globalThis.matchMedia(query).matches;
21
+ }
22
+ function useMediaQuery(deviceName) {
23
+ const device = devices.find((candidate) => candidate.name === deviceName), [matches, setMatches] = React.useState(() => getInitialMatch(device.query));
24
+ React.useEffect(() => {
25
+ const media = globalThis.matchMedia(device.query), update = () => setMatches(media.matches);
26
+ update();
27
+ media.addEventListener("change", update);
28
+ return () => media.removeEventListener("change", update);
29
+ }, [device]);
30
+ return matches;
31
+ }
32
+ // src/hooks/theme/theme.constants.ts
33
+ const THEME_STORAGE_KEY = "ixia-ui-theme";
34
+ const DEFAULT_THEME = "light";
35
+ const getThemeByValue = (value, themes) => themes.find((themeItem) => themeItem.value === value);
36
+ // src/hooks/theme/use-theme.tsx
37
+ const ThemeProviderContext = createContext({
38
+ setTheme: () => void 0,
39
+ theme: "system"
40
+ });
41
+ function getStoredTheme(storageKey, fallback) {
42
+ const stored = localStorage.getItem(storageKey);
43
+ if (stored === "light" || stored === "dark" || stored === "system") return stored;
44
+ return fallback;
45
+ }
46
+ function ThemeProvider({ children, defaultTheme = DEFAULT_THEME, storageKey = THEME_STORAGE_KEY, ...props }) {
47
+ const [theme, setTheme] = useState(() => getStoredTheme(storageKey, defaultTheme));
48
+ useEffect(() => {
49
+ globalThis.document.documentElement.setAttribute("data-theme", theme);
50
+ localStorage.setItem(storageKey, theme);
51
+ }, [theme, storageKey]);
52
+ return /* @__PURE__ */ jsx(ThemeProviderContext.Provider, {
53
+ ...props,
54
+ value: {
55
+ setTheme,
56
+ theme
57
+ },
58
+ children
59
+ });
60
+ }
61
+ function useTheme() {
62
+ const context = useContext(ThemeProviderContext);
63
+ if (context === void 0) throw new Error("useTheme must be used within a ThemeProvider");
64
+ return context;
65
+ }
66
+ export { getThemeByValue as a, THEME_STORAGE_KEY as i, useTheme as n, useMediaQuery as o, DEFAULT_THEME as r, ThemeProvider as t };
67
+
68
+ //# sourceMappingURL=hooks-DUm-q_ig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-DUm-q_ig.js","names":[],"sources":["../src/hooks/use-media-query.ts","../src/hooks/theme/theme.constants.ts","../src/hooks/theme/use-theme.tsx"],"sourcesContent":["import React from 'react'\n\ninterface Device {\n name: 'mobile' | 'tablet' | 'desktop'\n query: string\n}\n\nconst devices: Device[] = [\n { name: 'mobile', query: '(max-width: 767px), (orientation: landscape) and (max-height: 500px)' },\n { name: 'tablet', query: '(min-width: 768px) and (max-width: 1023px)' },\n { name: 'desktop', query: '(min-width: 1024px)' },\n]\n\nfunction getInitialMatch(query: string): boolean {\n if (typeof globalThis.matchMedia !== 'function') {\n return false\n }\n return globalThis.matchMedia(query).matches\n}\n\nexport function useMediaQuery(deviceName: Device['name']) {\n const device = devices.find((candidate) => candidate.name === deviceName)!,\n [matches, setMatches] = React.useState(() => getInitialMatch(device.query))\n\n React.useEffect(() => {\n const media = globalThis.matchMedia(device.query),\n update = () => setMatches(media.matches)\n\n update()\n\n media.addEventListener('change', update)\n\n return () => media.removeEventListener('change', update)\n }, [device])\n\n return matches\n}\n","import type { Theme, ThemeValue } from './theme.types'\n\nconst THEME_STORAGE_KEY = 'ixia-ui-theme',\n DEFAULT_THEME: ThemeValue = 'light',\n getThemeByValue = (value: ThemeValue, themes: Theme[]): Theme | undefined =>\n themes.find((themeItem) => themeItem.value === value)\n\nexport { THEME_STORAGE_KEY, DEFAULT_THEME, getThemeByValue }\n","import { createContext, useContext, useEffect, useState } from 'react'\n\nimport { DEFAULT_THEME, THEME_STORAGE_KEY } from './theme.constants.ts'\nimport type { ThemeProviderProps, ThemeProviderState, ThemeValue } from './theme.types.ts'\n\nconst initialState: ThemeProviderState = {\n setTheme: () => undefined,\n theme: 'system',\n },\n ThemeProviderContext = createContext<ThemeProviderState>(initialState)\n\nfunction getStoredTheme(storageKey: string, fallback: ThemeValue): ThemeValue {\n const stored = localStorage.getItem(storageKey)\n if (stored === 'light' || stored === 'dark' || stored === 'system') {\n return stored\n }\n return fallback\n}\n\nfunction ThemeProvider({\n children,\n defaultTheme = DEFAULT_THEME,\n storageKey = THEME_STORAGE_KEY,\n ...props\n}: ThemeProviderProps) {\n const [theme, setTheme] = useState<ThemeValue>(() => getStoredTheme(storageKey, defaultTheme))\n\n useEffect(() => {\n const root = globalThis.document.documentElement\n root.setAttribute('data-theme', theme)\n localStorage.setItem(storageKey, theme)\n }, [theme, storageKey])\n\n return (\n <ThemeProviderContext.Provider {...props} value={{ setTheme, theme }}>\n {children}\n </ThemeProviderContext.Provider>\n )\n}\n\nfunction useTheme() {\n const context = useContext(ThemeProviderContext)\n\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n\n return context\n}\n\nexport { ThemeProvider, useTheme }\n"],"mappings":";;;AAOA,MAAM,UAAoB;CACxB;EAAE,MAAM;EAAU,OAAO;CAAuE;CAChG;EAAE,MAAM;EAAU,OAAO;CAA6C;CACtE;EAAE,MAAM;EAAW,OAAO;CAAsB;AAClD;AAEA,SAAS,gBAAgB,OAAwB;CAC/C,IAAI,OAAO,WAAW,eAAe,YACnC,OAAO;CAET,OAAO,WAAW,WAAW,KAAK,CAAC,CAAC;AACtC;AAEA,SAAgB,cAAc,YAA4B;CACxD,MAAM,SAAS,QAAQ,MAAM,cAAc,UAAU,SAAS,UAAU,GACtE,CAAC,SAAS,cAAc,MAAM,eAAe,gBAAgB,OAAO,KAAK,CAAC;CAE5E,MAAM,gBAAgB;EACpB,MAAM,QAAQ,WAAW,WAAW,OAAO,KAAK,GAC9C,eAAe,WAAW,MAAM,OAAO;EAEzC,OAAO;EAEP,MAAM,iBAAiB,UAAU,MAAM;EAEvC,aAAa,MAAM,oBAAoB,UAAU,MAAM;CACzD,GAAG,CAAC,MAAM,CAAC;CAEX,OAAO;AACT;;AClCA,MAAM,oBAAoB;AACxB,MAAA,gBAA4B;AAC5B,MAAA,mBAAmB,OAAmB,WACpC,OAAO,MAAM,cAAc,UAAU,UAAU,KAAK;;ACAxD,MAIE,uBAAuB,cAAkC;CAHvD,gBAAgB,KAAA;CAChB,OAAO;AAE2D,CAAC;AAEvE,SAAS,eAAe,YAAoB,UAAkC;CAC5E,MAAM,SAAS,aAAa,QAAQ,UAAU;CAC9C,IAAI,WAAW,WAAW,WAAW,UAAU,WAAW,UACxD,OAAO;CAET,OAAO;AACT;AAEA,SAAS,cAAc,EACrB,UACA,eAAe,eACf,aAAa,mBACb,GAAG,SACkB;CACrB,MAAM,CAAC,OAAO,YAAY,eAA2B,eAAe,YAAY,YAAY,CAAC;CAE7F,gBAAgB;EAEd,WADwB,SAAS,gBAC5B,aAAa,cAAc,KAAK;EACrC,aAAa,QAAQ,YAAY,KAAK;CACxC,GAAG,CAAC,OAAO,UAAU,CAAC;CAEtB,OACE,oBAAC,qBAAqB,UAAtB;EAA+B,GAAI;EAAO,OAAO;GAAE;GAAU;EAAM;EAChE;CAC4B,CAAA;AAEnC;AAEA,SAAS,WAAW;CAClB,MAAM,UAAU,WAAW,oBAAoB;CAE/C,IAAI,YAAY,KAAA,GACd,MAAM,IAAI,MAAM,8CAA8C;CAGhE,OAAO;AACT"}
@@ -0,0 +1,2 @@
1
+ import { a as IconOverrides, c as IconRegistry, i as IconName, l as IconRenderProps, n as Icon, o as IconProps, r as IconComponent, s as IconProviderProps, t as IconProvider, u as IconWeight } from "../index-Wb_tILYa.js";
2
+ export { Icon, type IconComponent, type IconName, type IconOverrides, type IconProps, IconProvider, type IconProviderProps, type IconRegistry, type IconRenderProps, type IconWeight };
@@ -0,0 +1 @@
1
+ export { n as Icon, t as IconProvider } from "../icon-D3JWfCa2.js";
@@ -0,0 +1,85 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { ArrowsDownUpIcon, CaretDownIcon, CaretLeftIcon, CaretLineLeftIcon, CaretLineRightIcon, CaretRightIcon, CaretUpDownIcon, CaretUpIcon, CheckCircleIcon, CheckIcon, CircleNotchIcon, CopyIcon, DotsThreeIcon, DownloadIcon, EyeClosedIcon, EyeIcon, FileArrowUpIcon, FolderIcon, FolderOpenIcon, FolderSimpleIcon, FunnelIcon, FunnelSimpleIcon, InfoIcon, LockSimpleIcon, LockSimpleOpenIcon, MagnifyingGlassIcon, MinusIcon, PercentIcon, PlusIcon, SortAscendingIcon, SortDescendingIcon, StackIcon, ThreeDIcon, TrashIcon, UploadIcon, WarningCircleIcon, WarningIcon, XCircleIcon, XIcon } from "@phosphor-icons/react";
4
+ // src/components/icon/default-icons.ts
5
+ const defaultIcons = {
6
+ "3d": ThreeDIcon,
7
+ add: PlusIcon,
8
+ chevronDown: CaretDownIcon,
9
+ chevronLeft: CaretLeftIcon,
10
+ chevronRight: CaretRightIcon,
11
+ chevronUp: CaretUpIcon,
12
+ chevronsUpDown: CaretUpDownIcon,
13
+ close: XIcon,
14
+ columnFilter: FunnelSimpleIcon,
15
+ copy: CopyIcon,
16
+ delete: TrashIcon,
17
+ download: DownloadIcon,
18
+ ellipsis: DotsThreeIcon,
19
+ error: WarningCircleIcon,
20
+ fieldError: XCircleIcon,
21
+ fileUpload: FileArrowUpIcon,
22
+ filter: FunnelIcon,
23
+ firstPage: CaretLineLeftIcon,
24
+ folder: FolderIcon,
25
+ folderExpandAll: FolderSimpleIcon,
26
+ folderOpen: FolderOpenIcon,
27
+ hidden: EyeClosedIcon,
28
+ info: InfoIcon,
29
+ lastPage: CaretLineRightIcon,
30
+ layers: StackIcon,
31
+ locked: LockSimpleIcon,
32
+ minus: MinusIcon,
33
+ percent: PercentIcon,
34
+ search: MagnifyingGlassIcon,
35
+ selected: CheckIcon,
36
+ sort: ArrowsDownUpIcon,
37
+ sortAscending: SortAscendingIcon,
38
+ sortDescending: SortDescendingIcon,
39
+ spinner: CircleNotchIcon,
40
+ success: CheckCircleIcon,
41
+ unlocked: LockSimpleOpenIcon,
42
+ upload: UploadIcon,
43
+ visible: EyeIcon,
44
+ warning: WarningIcon
45
+ };
46
+ // src/components/icon/icon-context.ts
47
+ const IconContext = React.createContext({ icons: {} });
48
+ // src/components/icon/icon.tsx
49
+ function Icon({ name, weight, ...props }) {
50
+ const context = React.useContext(IconContext), Custom = context.icons[name], Default = defaultIcons[name];
51
+ if (Custom) return /* @__PURE__ */ jsx(Custom, {
52
+ "aria-hidden": "true",
53
+ ...props
54
+ });
55
+ return /* @__PURE__ */ jsx(Default, {
56
+ "aria-hidden": "true",
57
+ weight: weight ?? context.weight,
58
+ ...props
59
+ });
60
+ }
61
+ // src/components/icon/icon-provider.tsx
62
+ /**
63
+ * Replaces the default Phosphor icons and sets their weight for every library component below it.
64
+ * Providers can be nested; inner providers override only the icon names and weight they set.
65
+ */
66
+ function IconProvider({ icons, weight, children }) {
67
+ const parent = React.useContext(IconContext), value = React.useMemo(() => ({
68
+ icons: {
69
+ ...parent.icons,
70
+ ...icons
71
+ },
72
+ weight: weight ?? parent.weight
73
+ }), [
74
+ parent,
75
+ icons,
76
+ weight
77
+ ]);
78
+ return /* @__PURE__ */ jsx(IconContext, {
79
+ value,
80
+ children
81
+ });
82
+ }
83
+ export { Icon as n, IconProvider as t };
84
+
85
+ //# sourceMappingURL=icon-D3JWfCa2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-D3JWfCa2.js","names":[],"sources":["../src/components/icon/default-icons.ts","../src/components/icon/icon-context.ts","../src/components/icon/icon.tsx","../src/components/icon/icon-provider.tsx"],"sourcesContent":["import {\n ArrowsDownUpIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretLineLeftIcon,\n CaretLineRightIcon,\n CaretRightIcon,\n CaretUpDownIcon,\n CaretUpIcon,\n CheckCircleIcon,\n CheckIcon,\n CircleNotchIcon,\n CopyIcon,\n DotsThreeIcon,\n DownloadIcon,\n EyeClosedIcon,\n EyeIcon,\n FileArrowUpIcon,\n FolderIcon,\n FolderOpenIcon,\n FolderSimpleIcon,\n FunnelIcon,\n FunnelSimpleIcon,\n InfoIcon,\n LockSimpleIcon,\n LockSimpleOpenIcon,\n MagnifyingGlassIcon,\n MinusIcon,\n PercentIcon,\n PlusIcon,\n SortAscendingIcon,\n SortDescendingIcon,\n StackIcon,\n ThreeDIcon,\n TrashIcon,\n UploadIcon,\n WarningCircleIcon,\n WarningIcon,\n XCircleIcon,\n XIcon,\n} from '@phosphor-icons/react'\n\nimport type { DefaultIconRegistry } from './icon.types'\n\nexport const defaultIcons: DefaultIconRegistry = {\n '3d': ThreeDIcon,\n add: PlusIcon,\n chevronDown: CaretDownIcon,\n chevronLeft: CaretLeftIcon,\n chevronRight: CaretRightIcon,\n chevronUp: CaretUpIcon,\n chevronsUpDown: CaretUpDownIcon,\n close: XIcon,\n columnFilter: FunnelSimpleIcon,\n copy: CopyIcon,\n delete: TrashIcon,\n download: DownloadIcon,\n ellipsis: DotsThreeIcon,\n error: WarningCircleIcon,\n fieldError: XCircleIcon,\n fileUpload: FileArrowUpIcon,\n filter: FunnelIcon,\n firstPage: CaretLineLeftIcon,\n folder: FolderIcon,\n folderExpandAll: FolderSimpleIcon,\n folderOpen: FolderOpenIcon,\n hidden: EyeClosedIcon,\n info: InfoIcon,\n lastPage: CaretLineRightIcon,\n layers: StackIcon,\n locked: LockSimpleIcon,\n minus: MinusIcon,\n percent: PercentIcon,\n search: MagnifyingGlassIcon,\n selected: CheckIcon,\n sort: ArrowsDownUpIcon,\n sortAscending: SortAscendingIcon,\n sortDescending: SortDescendingIcon,\n spinner: CircleNotchIcon,\n success: CheckCircleIcon,\n unlocked: LockSimpleOpenIcon,\n upload: UploadIcon,\n visible: EyeIcon,\n warning: WarningIcon,\n}\n","import React from 'react'\n\nimport type { IconContextValue } from './icon.types'\n\nexport const IconContext = React.createContext<IconContextValue>({ icons: {} })\n","import React from 'react'\n\nimport { defaultIcons } from './default-icons'\nimport { IconContext } from './icon-context'\nimport type { IconRenderProps } from './icon.types'\n\nexport function Icon({ name, weight, ...props }: IconRenderProps) {\n const context = React.useContext(IconContext),\n Custom = context.icons[name],\n Default = defaultIcons[name]\n\n if (Custom) {\n return <Custom aria-hidden=\"true\" {...props} />\n }\n\n return <Default aria-hidden=\"true\" weight={weight ?? context.weight} {...props} />\n}\n","import React from 'react'\n\nimport { IconContext } from './icon-context'\nimport type { IconProviderProps } from './icon.types'\n\n/**\n * Replaces the default Phosphor icons and sets their weight for every library component below it.\n * Providers can be nested; inner providers override only the icon names and weight they set.\n */\nexport function IconProvider({ icons, weight, children }: IconProviderProps) {\n const parent = React.useContext(IconContext),\n value = React.useMemo(\n () => ({ icons: { ...parent.icons, ...icons }, weight: weight ?? parent.weight }),\n [parent, icons, weight],\n )\n\n return <IconContext value={value}>{children}</IconContext>\n}\n"],"mappings":";;;;AA4CA,MAAa,eAAoC;CAC/C,MAAM;CACN,KAAK;CACL,aAAa;CACb,aAAa;CACb,cAAc;CACd,WAAW;CACX,gBAAgB;CAChB,OAAO;CACP,cAAc;CACd,MAAM;CACN,QAAQ;CACR,UAAU;CACV,UAAU;CACV,OAAO;CACP,YAAY;CACZ,YAAY;CACZ,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,iBAAiB;CACjB,YAAY;CACZ,QAAQ;CACR,MAAM;CACN,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,SAAS;CACT,QAAQ;CACR,UAAU;CACV,MAAM;CACN,eAAe;CACf,gBAAgB;CAChB,SAAS;CACT,SAAS;CACT,UAAU;CACV,QAAQ;CACR,SAAS;CACT,SAAS;AACX;;AChFA,MAAa,cAAc,MAAM,cAAgC,EAAE,OAAO,CAAC,EAAE,CAAC;;ACE9E,SAAgB,KAAK,EAAE,MAAM,QAAQ,GAAG,SAA0B;CAChE,MAAM,UAAU,MAAM,WAAW,WAAW,GAC1C,SAAS,QAAQ,MAAM,OACvB,UAAU,aAAa;CAEzB,IAAI,QACF,OAAO,oBAAC,QAAD;EAAQ,eAAY;EAAO,GAAI;CAAQ,CAAA;CAGhD,OAAO,oBAAC,SAAD;EAAS,eAAY;EAAO,QAAQ,UAAU,QAAQ;EAAQ,GAAI;CAAQ,CAAA;AACnF;;;;;;ACPA,SAAgB,aAAa,EAAE,OAAO,QAAQ,YAA+B;CAC3E,MAAM,SAAS,MAAM,WAAW,WAAW,GACzC,QAAQ,MAAM,eACL;EAAE,OAAO;GAAE,GAAG,OAAO;GAAO,GAAG;EAAM;EAAG,QAAQ,UAAU,OAAO;CAAO,IAC/E;EAAC;EAAQ;EAAO;CAAM,CACxB;CAEF,OAAO,oBAAC,aAAD;EAAoB;EAAQ;CAAsB,CAAA;AAC3D"}
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ declare const iconContainerVariants: (props?: ({
3
+ shape?: "rounded" | "square" | null | undefined;
4
+ size?: "large" | "medium" | "small" | null | undefined;
5
+ tone?: "accent" | "brand" | "error" | "info" | "neutral" | "success" | "warning" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ type IconContainerProps = React.ComponentProps<'div'> & VariantProps<typeof iconContainerVariants>;
8
+ export declare function IconContainer({ shape, size, tone, className, children, ref, ...props }: IconContainerProps): import("react").JSX.Element;
9
+ export type { IconContainerProps };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,64 @@
1
+ import { t as cn } from "../cn-BDi0DfT5.js";
2
+ import { cva } from "class-variance-authority";
3
+ import { jsx } from "react/jsx-runtime";
4
+ // src/components/icon-container/icon-container.types.ts
5
+ const iconContainerVariants = cva("flex shrink-0 items-center justify-center", {
6
+ compoundVariants: [
7
+ {
8
+ className: "rounded-xl",
9
+ shape: "square",
10
+ size: "small"
11
+ },
12
+ {
13
+ className: "rounded-2xl",
14
+ shape: "square",
15
+ size: "medium"
16
+ },
17
+ {
18
+ className: "rounded-3xl",
19
+ shape: "square",
20
+ size: "large"
21
+ }
22
+ ],
23
+ defaultVariants: {
24
+ shape: "rounded",
25
+ size: "medium",
26
+ tone: "brand"
27
+ },
28
+ variants: {
29
+ shape: {
30
+ rounded: "rounded-full",
31
+ square: ""
32
+ },
33
+ size: {
34
+ large: "size-3xl [&>svg]:size-xl",
35
+ medium: "size-2xl [&>svg]:size-lg",
36
+ small: "size-xl [&>svg]:size-md"
37
+ },
38
+ tone: {
39
+ accent: "bg-accent-container-high text-accent-on-container",
40
+ brand: "bg-brand-container-high text-brand-on-container",
41
+ error: "bg-error-container-high text-error-on-container",
42
+ info: "bg-info-container-high text-info-on-container",
43
+ neutral: "bg-neutral-container-high text-neutral-on-container",
44
+ success: "bg-success-container-high text-success-on-container",
45
+ warning: "bg-warning-container-high text-warning-on-container"
46
+ }
47
+ }
48
+ });
49
+ // src/components/icon-container/icon-container.tsx
50
+ function IconContainer({ shape, size, tone, className, children, ref, ...props }) {
51
+ return /* @__PURE__ */ jsx("div", {
52
+ className: cn(iconContainerVariants({
53
+ shape,
54
+ size,
55
+ tone
56
+ }), className),
57
+ ref,
58
+ ...props,
59
+ children
60
+ });
61
+ }
62
+ export { IconContainer };
63
+
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/components/icon-container/icon-container.types.ts","../../src/components/icon-container/icon-container.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nconst iconContainerVariants = cva('flex shrink-0 items-center justify-center', {\n compoundVariants: [\n {\n className: 'rounded-xl',\n shape: 'square',\n size: 'small',\n },\n {\n className: 'rounded-2xl',\n shape: 'square',\n size: 'medium',\n },\n {\n className: 'rounded-3xl',\n shape: 'square',\n size: 'large',\n },\n ],\n defaultVariants: {\n shape: 'rounded',\n size: 'medium',\n tone: 'brand',\n },\n variants: {\n shape: {\n rounded: 'rounded-full',\n square: '',\n },\n size: {\n large: 'size-3xl [&>svg]:size-xl',\n medium: 'size-2xl [&>svg]:size-lg',\n small: 'size-xl [&>svg]:size-md',\n },\n tone: {\n accent: 'bg-accent-container-high text-accent-on-container',\n brand: 'bg-brand-container-high text-brand-on-container',\n error: 'bg-error-container-high text-error-on-container',\n info: 'bg-info-container-high text-info-on-container',\n neutral: 'bg-neutral-container-high text-neutral-on-container',\n success: 'bg-success-container-high text-success-on-container',\n warning: 'bg-warning-container-high text-warning-on-container',\n },\n },\n})\n\ntype IconContainerProps = React.ComponentProps<'div'> & VariantProps<typeof iconContainerVariants>\n\nexport { iconContainerVariants }\nexport type { IconContainerProps }\n","import { cn } from '@/utils/cn'\n\nimport { iconContainerVariants } from './icon-container.types'\nimport type { IconContainerProps } from './icon-container.types'\n\nexport function IconContainer({\n shape,\n size,\n tone,\n className,\n children,\n ref,\n ...props\n}: IconContainerProps) {\n return (\n <div\n className={cn(iconContainerVariants({ shape, size, tone }), className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n}\n"],"mappings":";;;;AAGA,MAAM,wBAAwB,IAAI,6CAA6C;CAC7E,kBAAkB;EAChB;GACE,WAAW;GACX,OAAO;GACP,MAAM;EACR;EACA;GACE,WAAW;GACX,OAAO;GACP,MAAM;EACR;EACA;GACE,WAAW;GACX,OAAO;GACP,MAAM;EACR;CACF;CACA,iBAAiB;EACf,OAAO;EACP,MAAM;EACN,MAAM;CACR;CACA,UAAU;EACR,OAAO;GACL,SAAS;GACT,QAAQ;EACV;EACA,MAAM;GACJ,OAAO;GACP,QAAQ;GACR,OAAO;EACT;EACA,MAAM;GACJ,QAAQ;GACR,OAAO;GACP,OAAO;GACP,MAAM;GACN,SAAS;GACT,SAAS;GACT,SAAS;EACX;CACF;AACF,CAAC;;ACzCD,SAAgB,cAAc,EAC5B,OACA,MACA,MACA,WACA,UACA,KACA,GAAG,SACkB;CACrB,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,sBAAsB;GAAE;GAAO;GAAM;EAAK,CAAC,GAAG,SAAS;EAChE;EACL,GAAI;EAEH;CACE,CAAA;AAET"}
@@ -0,0 +1,11 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { ComponentProps } from "react";
3
+ declare const badgeVariants: (props?: ({
4
+ size?: "large" | "medium" | null | undefined;
5
+ tone?: "accent" | "brand" | "error" | "info" | "neutral" | "success" | "warning" | null | undefined;
6
+ variant?: "fill" | "outline" | "soft" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ type BadgeProps = ComponentProps<'div'> & VariantProps<typeof badgeVariants>;
9
+ declare function Badge({ className, size, tone, variant, ref, children, ...props }: BadgeProps): import("react").JSX.Element;
10
+ export { BadgeProps as n, Badge as t };
11
+ //# sourceMappingURL=index-0ZQzIKoE.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ declare const buttonGroupVariants: (props?: ({
3
+ orientation?: "horizontal" | "vertical" | null | undefined;
4
+ size?: "extraSmall" | "large" | "medium" | "small" | null | undefined;
5
+ tone?: "accent" | "brand" | "error" | "info" | "neutral" | "success" | "warning" | null | undefined;
6
+ variant?: "elevated" | "fill" | "ghost" | "outline" | "secondary" | "soft" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ type ButtonGroupProps = React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>;
9
+ declare function ButtonGroup({ size, variant, tone, orientation, className, ref, ...props }: ButtonGroupProps): import("react").JSX.Element;
10
+ export { ButtonGroupProps as n, ButtonGroup as t };
11
+ //# sourceMappingURL=index-B3MK1QYh.d.ts.map
@@ -0,0 +1,54 @@
1
+ import { n as inputVariants } from "./input.types-816rEVWU.js";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { Autocomplete } from "@base-ui/react/autocomplete";
4
+ type AutocompleteProps = React.ComponentProps<typeof Autocomplete.Root>;
5
+ type AutocompleteInputGroupProps = React.ComponentProps<'div'> & VariantProps<typeof inputVariants>;
6
+ type AutocompleteInputGroupAddonProps = React.ComponentProps<'div'>;
7
+ type AutocompleteInputGroupInputProps = React.ComponentProps<typeof Autocomplete.Input>;
8
+ type AutocompleteContentProps = React.ComponentProps<typeof Autocomplete.Positioner>;
9
+ type AutocompleteEmptyProps = React.ComponentProps<typeof Autocomplete.Empty>;
10
+ type AutocompleteGridContentProps = React.ComponentProps<typeof Autocomplete.Positioner> & {
11
+ placeholder?: string;
12
+ emptyText: string;
13
+ };
14
+ type AutocompleteItemProps = React.ComponentProps<typeof Autocomplete.Item>;
15
+ type AutocompleteGridItemProps = React.ComponentProps<typeof Autocomplete.Item>;
16
+ type AutocompleteGroupProps = React.ComponentProps<typeof Autocomplete.Group>;
17
+ type AutocompleteGroupLabelProps = React.ComponentProps<typeof Autocomplete.GroupLabel>;
18
+ type AutocompleteCollectionProps = React.ComponentProps<typeof Autocomplete.Collection>;
19
+ type AutocompleteRowProps = React.ComponentProps<typeof Autocomplete.Row>;
20
+ type AutocompleteTriggerProps = React.ComponentProps<typeof Autocomplete.Trigger>;
21
+ type AutocompleteStatusProps = React.ComponentProps<typeof Autocomplete.Status>;
22
+ declare function Autocomplete$2({ ...props }: AutocompleteProps): import("react").JSX.Element;
23
+ declare function AutocompleteCollection({ ...props }: AutocompleteCollectionProps): import("react").JSX.Element;
24
+ declare function AutocompleteContent({ className, children, sideOffset, ref, ...props }: AutocompleteContentProps): import("react").JSX.Element;
25
+ declare function AutocompleteEmpty({ className, ref, ...props }: AutocompleteEmptyProps): import("react").JSX.Element;
26
+ declare function AutocompleteGridContent({ placeholder, emptyText, className, children, sideOffset, ref, ...props }: AutocompleteGridContentProps): import("react").JSX.Element;
27
+ declare function AutocompleteGridItem({ className, children, ref, ...props }: AutocompleteGridItemProps): import("react").JSX.Element;
28
+ declare function AutocompleteGroup({ className, ref, ...props }: AutocompleteGroupProps): import("react").JSX.Element;
29
+ declare function AutocompleteGroupLabel({ className, ref, ...props }: AutocompleteGroupProps): import("react").JSX.Element;
30
+ declare function AutocompleteInputGroup({ variant, className, ref, ...props }: AutocompleteInputGroupProps): import("react").JSX.Element;
31
+ declare function AutocompleteInputGroupAddon({ className, ref, ...props }: AutocompleteInputGroupAddonProps): import("react").JSX.Element;
32
+ declare function AutocompleteInputGroupInput({ placeholder, className, ref, ...props }: AutocompleteInputGroupInputProps): import("react").JSX.Element;
33
+ declare function AutocompleteItem({ className, ref, ...props }: AutocompleteItemProps): import("react").JSX.Element;
34
+ declare function AutocompleteRow({ className, ref, ...props }: AutocompleteRowProps): import("react").JSX.Element;
35
+ declare function AutocompleteStatus({ className, ref, ...props }: AutocompleteStatusProps): import("react").JSX.Element;
36
+ declare function AutocompleteTrigger({ className, ref, ...props }: AutocompleteTriggerProps): import("react").JSX.Element;
37
+ declare const Autocomplete$1: typeof Autocomplete$2 & {
38
+ Collection: typeof AutocompleteCollection;
39
+ Content: typeof AutocompleteContent;
40
+ Empty: typeof AutocompleteEmpty;
41
+ GridContent: typeof AutocompleteGridContent;
42
+ GridItem: typeof AutocompleteGridItem;
43
+ Group: typeof AutocompleteGroup;
44
+ GroupLabel: typeof AutocompleteGroupLabel;
45
+ InputGroup: typeof AutocompleteInputGroup;
46
+ InputGroupAddon: typeof AutocompleteInputGroupAddon;
47
+ InputGroupInput: typeof AutocompleteInputGroupInput;
48
+ Item: typeof AutocompleteItem;
49
+ Row: typeof AutocompleteRow;
50
+ Status: typeof AutocompleteStatus;
51
+ Trigger: typeof AutocompleteTrigger;
52
+ };
53
+ export { AutocompleteTriggerProps as A, AutocompleteInputGroupAddonProps as C, AutocompleteProps as D, AutocompleteItemProps as E, AutocompleteRowProps as O, AutocompleteGroupProps as S, AutocompleteInputGroupProps as T, AutocompleteContentProps as _, AutocompleteItem as a, AutocompleteGridItemProps as b, AutocompleteInputGroup as c, AutocompleteGridItem as d, AutocompleteGridContent as f, AutocompleteCollectionProps as g, AutocompleteCollection as h, AutocompleteRow as i, AutocompleteStatusProps as k, AutocompleteGroupLabel as l, AutocompleteContent as m, AutocompleteTrigger as n, AutocompleteInputGroupInput as o, AutocompleteEmpty as p, AutocompleteStatus as r, AutocompleteInputGroupAddon as s, Autocomplete$1 as t, AutocompleteGroup as u, AutocompleteEmptyProps as v, AutocompleteInputGroupInputProps as w, AutocompleteGroupLabelProps as x, AutocompleteGridContentProps as y };
54
+ //# sourceMappingURL=index-BJVMIPq4.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { t as InputProps } from "./input.types-816rEVWU.js";
2
+ declare function Input({ fileUploadButtonIcon, fileUploadButtonLabel, maxFiles, maxFileSize, clearFilesLabel, filesSelectedLabel, maxFilesErrorLabel, maxFileSizeErrorLabel, compact, variant, size, className, ref, ...props }: InputProps): import("react").JSX.Element;
3
+ export { Input as t };
4
+ //# sourceMappingURL=index-BsV-u_jc.d.ts.map