@salesmind-ai/design-system 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/admin/index.cjs +68 -2928
  2. package/dist/admin/index.cjs.map +1 -1
  3. package/dist/admin/index.js +5 -2915
  4. package/dist/admin/index.js.map +1 -1
  5. package/dist/blog/index.cjs +53 -1064
  6. package/dist/blog/index.cjs.map +1 -1
  7. package/dist/blog/index.js +8 -1054
  8. package/dist/blog/index.js.map +1 -1
  9. package/dist/charts/index.cjs +46 -2694
  10. package/dist/charts/index.cjs.map +1 -1
  11. package/dist/charts/index.js +3 -2680
  12. package/dist/charts/index.js.map +1 -1
  13. package/dist/chunk-2GARWEJK.js +17 -0
  14. package/dist/chunk-2GARWEJK.js.map +1 -0
  15. package/dist/chunk-3NKRFUAR.js +37 -0
  16. package/dist/chunk-3NKRFUAR.js.map +1 -0
  17. package/dist/chunk-3TGSIILM.cjs +201 -0
  18. package/dist/chunk-3TGSIILM.cjs.map +1 -0
  19. package/dist/chunk-4GM5BGBN.cjs +801 -0
  20. package/dist/chunk-4GM5BGBN.cjs.map +1 -0
  21. package/dist/chunk-5LGDEZWY.cjs +2434 -0
  22. package/dist/chunk-5LGDEZWY.cjs.map +1 -0
  23. package/dist/chunk-6H4DSTXR.js +786 -0
  24. package/dist/chunk-6H4DSTXR.js.map +1 -0
  25. package/dist/chunk-6UNG76Y2.js +153 -0
  26. package/dist/chunk-6UNG76Y2.js.map +1 -0
  27. package/dist/chunk-7PX2AZ6Y.js +39 -0
  28. package/dist/chunk-7PX2AZ6Y.js.map +1 -0
  29. package/dist/chunk-B6AVAX4F.js +1415 -0
  30. package/dist/chunk-B6AVAX4F.js.map +1 -0
  31. package/dist/chunk-BILT5KD3.js +264 -0
  32. package/dist/chunk-BILT5KD3.js.map +1 -0
  33. package/dist/chunk-C2BCDNAV.js +24 -0
  34. package/dist/chunk-C2BCDNAV.js.map +1 -0
  35. package/dist/chunk-CH42VPWE.cjs +421 -0
  36. package/dist/chunk-CH42VPWE.cjs.map +1 -0
  37. package/dist/chunk-CJ2MKVAF.cjs +46 -0
  38. package/dist/chunk-CJ2MKVAF.cjs.map +1 -0
  39. package/dist/chunk-DP74LUXG.cjs +98 -0
  40. package/dist/chunk-DP74LUXG.cjs.map +1 -0
  41. package/dist/chunk-E7D6EKJ4.cjs +44 -0
  42. package/dist/chunk-E7D6EKJ4.cjs.map +1 -0
  43. package/dist/chunk-ECXBTUH6.cjs +584 -0
  44. package/dist/chunk-ECXBTUH6.cjs.map +1 -0
  45. package/dist/chunk-EFRAP5ES.js +157 -0
  46. package/dist/chunk-EFRAP5ES.js.map +1 -0
  47. package/dist/chunk-F6YYWMME.js +485 -0
  48. package/dist/chunk-F6YYWMME.js.map +1 -0
  49. package/dist/chunk-FAFAP4L5.js +183 -0
  50. package/dist/chunk-FAFAP4L5.js.map +1 -0
  51. package/dist/chunk-GUZIMHWS.js +1608 -0
  52. package/dist/chunk-GUZIMHWS.js.map +1 -0
  53. package/dist/chunk-H2Y6BSTL.cjs +69 -0
  54. package/dist/chunk-H2Y6BSTL.cjs.map +1 -0
  55. package/dist/chunk-HN4PHABT.js +126 -0
  56. package/dist/chunk-HN4PHABT.js.map +1 -0
  57. package/dist/chunk-HRENHNDJ.js +211 -0
  58. package/dist/chunk-HRENHNDJ.js.map +1 -0
  59. package/dist/chunk-I75BFEYT.cjs +2561 -0
  60. package/dist/chunk-I75BFEYT.cjs.map +1 -0
  61. package/dist/chunk-IFRATNLU.js +562 -0
  62. package/dist/chunk-IFRATNLU.js.map +1 -0
  63. package/dist/chunk-IYPXJ6YC.cjs +69 -0
  64. package/dist/chunk-IYPXJ6YC.cjs.map +1 -0
  65. package/dist/chunk-JPJN4YBC.js +409 -0
  66. package/dist/chunk-JPJN4YBC.js.map +1 -0
  67. package/dist/chunk-KBA2LFBG.js +62 -0
  68. package/dist/chunk-KBA2LFBG.js.map +1 -0
  69. package/dist/chunk-KCKUSU2M.cjs +166 -0
  70. package/dist/chunk-KCKUSU2M.cjs.map +1 -0
  71. package/dist/chunk-KJ2OXQF4.js +287 -0
  72. package/dist/chunk-KJ2OXQF4.js.map +1 -0
  73. package/dist/chunk-KNQEIU7O.cjs +1202 -0
  74. package/dist/chunk-KNQEIU7O.cjs.map +1 -0
  75. package/dist/chunk-KVGSVGRK.cjs +569 -0
  76. package/dist/chunk-KVGSVGRK.cjs.map +1 -0
  77. package/dist/chunk-L352JRV6.cjs +105 -0
  78. package/dist/chunk-L352JRV6.cjs.map +1 -0
  79. package/dist/chunk-LJADZITX.cjs +298 -0
  80. package/dist/chunk-LJADZITX.cjs.map +1 -0
  81. package/dist/chunk-LMJPWXTZ.cjs +194 -0
  82. package/dist/chunk-LMJPWXTZ.cjs.map +1 -0
  83. package/dist/chunk-LOWEAQST.js +701 -0
  84. package/dist/chunk-LOWEAQST.js.map +1 -0
  85. package/dist/chunk-MDB2WCRQ.cjs +137 -0
  86. package/dist/chunk-MDB2WCRQ.cjs.map +1 -0
  87. package/dist/chunk-MQDEE7HC.cjs +283 -0
  88. package/dist/chunk-MQDEE7HC.cjs.map +1 -0
  89. package/dist/chunk-MQRB634A.cjs +34 -0
  90. package/dist/chunk-MQRB634A.cjs.map +1 -0
  91. package/dist/chunk-MTI27RDV.js +185 -0
  92. package/dist/chunk-MTI27RDV.js.map +1 -0
  93. package/dist/chunk-MU6GW5ZV.js +2317 -0
  94. package/dist/chunk-MU6GW5ZV.js.map +1 -0
  95. package/dist/chunk-NN3TUHIH.js +28 -0
  96. package/dist/chunk-NN3TUHIH.js.map +1 -0
  97. package/dist/chunk-NT4LBP7D.cjs +111 -0
  98. package/dist/chunk-NT4LBP7D.cjs.map +1 -0
  99. package/dist/chunk-OLV7OD3X.cjs +502 -0
  100. package/dist/chunk-OLV7OD3X.cjs.map +1 -0
  101. package/dist/chunk-OXNXEQY7.js +2538 -0
  102. package/dist/chunk-OXNXEQY7.js.map +1 -0
  103. package/dist/chunk-P5BOFE5A.js +546 -0
  104. package/dist/chunk-P5BOFE5A.js.map +1 -0
  105. package/dist/chunk-Q2MFGYTE.cjs +1449 -0
  106. package/dist/chunk-Q2MFGYTE.cjs.map +1 -0
  107. package/dist/chunk-Q75DBVDY.cjs +68 -0
  108. package/dist/chunk-Q75DBVDY.cjs.map +1 -0
  109. package/dist/chunk-REQ5Q6ZI.js +1022 -0
  110. package/dist/chunk-REQ5Q6ZI.js.map +1 -0
  111. package/dist/chunk-SICKWUWB.js +62 -0
  112. package/dist/chunk-SICKWUWB.js.map +1 -0
  113. package/dist/chunk-T343CCH5.js +1190 -0
  114. package/dist/chunk-T343CCH5.js.map +1 -0
  115. package/dist/chunk-TEC62D4A.cjs +1624 -0
  116. package/dist/chunk-TEC62D4A.cjs.map +1 -0
  117. package/dist/chunk-TW5JB35D.js +2122 -0
  118. package/dist/chunk-TW5JB35D.js.map +1 -0
  119. package/dist/chunk-VC5LMUVQ.cjs +20 -0
  120. package/dist/chunk-VC5LMUVQ.cjs.map +1 -0
  121. package/dist/chunk-VM7WFMKI.cjs +76 -0
  122. package/dist/chunk-VM7WFMKI.cjs.map +1 -0
  123. package/dist/chunk-W2WTP6HS.cjs +233 -0
  124. package/dist/chunk-W2WTP6HS.cjs.map +1 -0
  125. package/dist/chunk-WH7PYHZY.cjs +35 -0
  126. package/dist/chunk-WH7PYHZY.cjs.map +1 -0
  127. package/dist/chunk-XQZVY7JJ.cjs +717 -0
  128. package/dist/chunk-XQZVY7JJ.cjs.map +1 -0
  129. package/dist/chunk-XU3OMQ7V.js +98 -0
  130. package/dist/chunk-XU3OMQ7V.js.map +1 -0
  131. package/dist/chunk-XWPDRMZG.js +62 -0
  132. package/dist/chunk-XWPDRMZG.js.map +1 -0
  133. package/dist/chunk-Y3CPKNB7.js +67 -0
  134. package/dist/chunk-Y3CPKNB7.js.map +1 -0
  135. package/dist/chunk-YNVRDD2P.js +98 -0
  136. package/dist/chunk-YNVRDD2P.js.map +1 -0
  137. package/dist/chunk-YSYR54XR.js +92 -0
  138. package/dist/chunk-YSYR54XR.js.map +1 -0
  139. package/dist/chunk-YTYDQBVY.cjs +162 -0
  140. package/dist/chunk-YTYDQBVY.cjs.map +1 -0
  141. package/dist/chunk-ZDLOA2UT.cjs +1042 -0
  142. package/dist/chunk-ZDLOA2UT.cjs.map +1 -0
  143. package/dist/chunk-ZWUKRCOJ.cjs +2162 -0
  144. package/dist/chunk-ZWUKRCOJ.cjs.map +1 -0
  145. package/dist/core/index.cjs +807 -4333
  146. package/dist/core/index.cjs.map +1 -1
  147. package/dist/core/index.js +14 -4130
  148. package/dist/core/index.js.map +1 -1
  149. package/dist/i18n/index.cjs +86 -558
  150. package/dist/i18n/index.cjs.map +1 -1
  151. package/dist/i18n/index.js +1 -544
  152. package/dist/i18n/index.js.map +1 -1
  153. package/dist/index.cjs +1432 -17140
  154. package/dist/index.cjs.map +1 -1
  155. package/dist/index.js +31 -16785
  156. package/dist/index.js.map +1 -1
  157. package/dist/marketing/index.cjs +142 -3072
  158. package/dist/marketing/index.cjs.map +1 -1
  159. package/dist/marketing/index.js +11 -3042
  160. package/dist/marketing/index.js.map +1 -1
  161. package/dist/motion/index.cjs +26 -1222
  162. package/dist/motion/index.cjs.map +1 -1
  163. package/dist/motion/index.js +2 -1215
  164. package/dist/motion/index.js.map +1 -1
  165. package/dist/nav/index.cjs +101 -1518
  166. package/dist/nav/index.cjs.map +1 -1
  167. package/dist/nav/index.js +4 -1498
  168. package/dist/nav/index.js.map +1 -1
  169. package/dist/report/index.cjs +171 -2403
  170. package/dist/report/index.cjs.map +1 -1
  171. package/dist/report/index.js +3 -2363
  172. package/dist/report/index.js.map +1 -1
  173. package/dist/sections/index.cjs +28 -378
  174. package/dist/sections/index.cjs.map +1 -1
  175. package/dist/sections/index.js +4 -372
  176. package/dist/sections/index.js.map +1 -1
  177. package/dist/social-proof/index.cjs +53 -1250
  178. package/dist/social-proof/index.cjs.map +1 -1
  179. package/dist/social-proof/index.js +6 -1235
  180. package/dist/social-proof/index.js.map +1 -1
  181. package/dist/theme/index.cjs +38 -565
  182. package/dist/theme/index.cjs.map +1 -1
  183. package/dist/theme/index.js +2 -555
  184. package/dist/theme/index.js.map +1 -1
  185. package/dist/web/client/index.cjs +38 -491
  186. package/dist/web/client/index.cjs.map +1 -1
  187. package/dist/web/client/index.js +4 -483
  188. package/dist/web/client/index.js.map +1 -1
  189. package/dist/web/index.cjs +158 -1346
  190. package/dist/web/index.cjs.map +1 -1
  191. package/dist/web/index.js +9 -1305
  192. package/dist/web/index.js.map +1 -1
  193. package/dist/web/server/index.cjs +26 -563
  194. package/dist/web/server/index.cjs.map +1 -1
  195. package/dist/web/server/index.js +1 -560
  196. package/dist/web/server/index.js.map +1 -1
  197. package/package.json +1 -1
@@ -0,0 +1,2434 @@
1
+ 'use strict';
2
+
3
+ var chunkW2WTP6HS_cjs = require('./chunk-W2WTP6HS.cjs');
4
+ var chunkMDB2WCRQ_cjs = require('./chunk-MDB2WCRQ.cjs');
5
+ var React20 = require('react');
6
+ var clsx18 = require('clsx');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var _switch = require('@base-ui/react/switch');
9
+ var ReactDOM = require('react-dom');
10
+ var reactSlot = require('@radix-ui/react-slot');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ var React20__default = /*#__PURE__*/_interopDefault(React20);
15
+ var clsx18__default = /*#__PURE__*/_interopDefault(clsx18);
16
+ var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
17
+
18
+ var Card = React20__default.default.forwardRef(
19
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-card", className), ...props })
20
+ );
21
+ Card.displayName = "Card";
22
+ var CardHeader = React20__default.default.forwardRef(
23
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-card__header", className), ...props })
24
+ );
25
+ CardHeader.displayName = "CardHeader";
26
+ var CardTitle = React20__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h3", { ref, className: clsx18__default.default("ds-card__title", className), ...props }));
27
+ CardTitle.displayName = "CardTitle";
28
+ var CardDescription = React20__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: clsx18__default.default("ds-card__description", className), ...props }));
29
+ CardDescription.displayName = "CardDescription";
30
+ var CardContent = React20__default.default.forwardRef(
31
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-card__content", className), ...props })
32
+ );
33
+ CardContent.displayName = "CardContent";
34
+ var CardFooter = React20__default.default.forwardRef(
35
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-card__footer", className), ...props })
36
+ );
37
+ CardFooter.displayName = "CardFooter";
38
+ var ButtonGroup = React20__default.default.forwardRef(
39
+ ({ orientation = "horizontal", fullWidth = false, size = "md", className, children, ...props }, ref) => {
40
+ return /* @__PURE__ */ jsxRuntime.jsx(
41
+ "div",
42
+ {
43
+ ref,
44
+ role: "group",
45
+ className: clsx18__default.default(
46
+ "ds-button-group",
47
+ `ds-button-group--${orientation}`,
48
+ fullWidth && "ds-button-group--full-width",
49
+ className
50
+ ),
51
+ "data-size": size,
52
+ ...props,
53
+ children
54
+ }
55
+ );
56
+ }
57
+ );
58
+ ButtonGroup.displayName = "ButtonGroup";
59
+ var TextArea = React20.forwardRef(
60
+ ({ className, label, error, helperText, id, ...props }, ref) => {
61
+ const generatedId = React20.useId();
62
+ const inputId = id || generatedId;
63
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("ds-textarea", className), children: [
64
+ label && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: inputId, className: "ds-textarea__label", children: label }),
65
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-textarea__input-wrapper", children: /* @__PURE__ */ jsxRuntime.jsx(
66
+ "textarea",
67
+ {
68
+ id: inputId,
69
+ ref,
70
+ className: clsx18__default.default("ds-textarea__input", error && "ds-textarea__input--error"),
71
+ ...props
72
+ }
73
+ ) }),
74
+ helperText && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx18__default.default("ds-textarea__helper", error && "ds-textarea__helper--error"), children: helperText })
75
+ ] });
76
+ }
77
+ );
78
+ TextArea.displayName = "TextArea";
79
+ var RadioGroupContext = React20.createContext(null);
80
+ var RadioGroup = React20.forwardRef(
81
+ ({
82
+ className,
83
+ name,
84
+ value,
85
+ onValueChange,
86
+ orientation = "vertical",
87
+ children,
88
+ ...props
89
+ }, ref) => {
90
+ const generatedName = React20.useId();
91
+ const groupName = name || generatedName;
92
+ return /* @__PURE__ */ jsxRuntime.jsx(RadioGroupContext.Provider, { value: { name: groupName, value, onChange: onValueChange }, children: /* @__PURE__ */ jsxRuntime.jsx(
93
+ "div",
94
+ {
95
+ ref,
96
+ role: "radiogroup",
97
+ className: clsx18__default.default(
98
+ "ds-radio-group",
99
+ orientation === "horizontal" && "ds-radio-group--horizontal",
100
+ className
101
+ ),
102
+ ...props,
103
+ children
104
+ }
105
+ ) });
106
+ }
107
+ );
108
+ RadioGroup.displayName = "RadioGroup";
109
+ var Radio = React20.forwardRef(
110
+ ({ className, label, value, disabled, id, onChange, ...props }, ref) => {
111
+ const context = React20.useContext(RadioGroupContext);
112
+ const generatedId = React20.useId();
113
+ const radioId = id || generatedId;
114
+ const name = context?.name || props.name;
115
+ const isChecked = context?.value !== void 0 ? context.value === value : props.checked;
116
+ const handleChange = (e) => {
117
+ onChange?.(e);
118
+ context?.onChange?.(value);
119
+ };
120
+ return /* @__PURE__ */ jsxRuntime.jsxs(
121
+ "label",
122
+ {
123
+ className: clsx18__default.default("ds-radio-wrapper", disabled && "ds-radio-wrapper--disabled", className),
124
+ children: [
125
+ /* @__PURE__ */ jsxRuntime.jsx(
126
+ "input",
127
+ {
128
+ ref,
129
+ type: "radio",
130
+ className: "ds-radio-input",
131
+ id: radioId,
132
+ name,
133
+ value,
134
+ checked: isChecked,
135
+ onChange: handleChange,
136
+ disabled,
137
+ ...props
138
+ }
139
+ ),
140
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx18__default.default("ds-radio", isChecked && "ds-radio--checked"), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-radio__indicator" }) }),
141
+ label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-radio__label", children: label })
142
+ ]
143
+ }
144
+ );
145
+ }
146
+ );
147
+ Radio.displayName = "Radio";
148
+ var Switch = React20__default.default.forwardRef(
149
+ ({ className, label, id, ...props }, ref) => {
150
+ const generatedId = React20__default.default.useId();
151
+ const switchId = id || generatedId;
152
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("ds-switch-wrapper", className), children: [
153
+ /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Root, { id: switchId, ref, className: "ds-switch", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Thumb, { className: "ds-switch__thumb" }) }),
154
+ label && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: switchId, className: "ds-switch__label", children: label })
155
+ ] });
156
+ }
157
+ );
158
+ Switch.displayName = "Switch";
159
+ var AccordionContext = React20__default.default.createContext(null);
160
+ function useAccordionContext() {
161
+ const ctx = React20__default.default.useContext(AccordionContext);
162
+ if (!ctx) {
163
+ throw new Error("Accordion compound components must be used within <Accordion>");
164
+ }
165
+ return ctx;
166
+ }
167
+ var AccordionItemContext = React20__default.default.createContext(null);
168
+ function useAccordionItemContext() {
169
+ const ctx = React20__default.default.useContext(AccordionItemContext);
170
+ if (!ctx) {
171
+ throw new Error("AccordionTrigger/AccordionContent must be used within <AccordionItem>");
172
+ }
173
+ return ctx;
174
+ }
175
+ var Accordion = React20__default.default.forwardRef(
176
+ ({ className, type = "single", defaultValue = [], collapsible: _collapsible, children, ...props }, ref) => {
177
+ const [openItems, setOpenItems] = React20__default.default.useState(
178
+ () => new Set(defaultValue)
179
+ );
180
+ const toggle = React20__default.default.useCallback(
181
+ (value) => {
182
+ setOpenItems((prev) => {
183
+ const next = new Set(prev);
184
+ if (next.has(value)) {
185
+ next.delete(value);
186
+ } else {
187
+ if (type === "single") {
188
+ next.clear();
189
+ }
190
+ next.add(value);
191
+ }
192
+ return next;
193
+ });
194
+ },
195
+ [type]
196
+ );
197
+ const contextValue = React20__default.default.useMemo(
198
+ () => ({ openItems, toggle }),
199
+ [openItems, toggle]
200
+ );
201
+ return /* @__PURE__ */ jsxRuntime.jsx(AccordionContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-accordion", className), ...props, children }) });
202
+ }
203
+ );
204
+ Accordion.displayName = "Accordion";
205
+ var AccordionItem = React20__default.default.forwardRef(
206
+ ({ className, value, children, ...props }, ref) => {
207
+ const { openItems } = useAccordionContext();
208
+ const isOpen = openItems.has(value);
209
+ const contextValue = React20__default.default.useMemo(
210
+ () => ({ value, isOpen }),
211
+ [value, isOpen]
212
+ );
213
+ return /* @__PURE__ */ jsxRuntime.jsx(AccordionItemContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
214
+ "div",
215
+ {
216
+ ref,
217
+ className: clsx18__default.default("ds-accordion__item", className),
218
+ "data-state": isOpen ? "open" : "closed",
219
+ ...props,
220
+ children
221
+ }
222
+ ) });
223
+ }
224
+ );
225
+ AccordionItem.displayName = "AccordionItem";
226
+ var AccordionTrigger = React20__default.default.forwardRef(({ className, children, ...props }, ref) => {
227
+ const { toggle } = useAccordionContext();
228
+ const { value, isOpen } = useAccordionItemContext();
229
+ return /* @__PURE__ */ jsxRuntime.jsxs(
230
+ "button",
231
+ {
232
+ ref,
233
+ type: "button",
234
+ className: clsx18__default.default("ds-accordion__trigger", className),
235
+ "aria-expanded": isOpen,
236
+ onClick: () => toggle(value),
237
+ ...props,
238
+ children: [
239
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-accordion__trigger-text", children }),
240
+ /* @__PURE__ */ jsxRuntime.jsx(
241
+ "svg",
242
+ {
243
+ className: "ds-accordion__chevron",
244
+ width: "16",
245
+ height: "16",
246
+ viewBox: "0 0 24 24",
247
+ fill: "none",
248
+ stroke: "currentColor",
249
+ strokeWidth: "2",
250
+ strokeLinecap: "round",
251
+ strokeLinejoin: "round",
252
+ "aria-hidden": "true",
253
+ children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "6 9 12 15 18 9" })
254
+ }
255
+ )
256
+ ]
257
+ }
258
+ );
259
+ });
260
+ AccordionTrigger.displayName = "AccordionTrigger";
261
+ var AccordionContent = React20__default.default.forwardRef(({ className, children, ...props }, ref) => {
262
+ const { isOpen } = useAccordionItemContext();
263
+ const contentRef = React20__default.default.useRef(null);
264
+ const [height, setHeight] = React20__default.default.useState(
265
+ isOpen ? void 0 : 0
266
+ );
267
+ React20__default.default.useEffect(() => {
268
+ const el = contentRef.current;
269
+ if (!el) return;
270
+ if (isOpen) {
271
+ const scrollHeight = el.scrollHeight;
272
+ setHeight(scrollHeight);
273
+ const timer = setTimeout(() => setHeight(void 0), 200);
274
+ return () => clearTimeout(timer);
275
+ } else {
276
+ const scrollHeight = el.scrollHeight;
277
+ setHeight(scrollHeight);
278
+ requestAnimationFrame(() => {
279
+ requestAnimationFrame(() => {
280
+ setHeight(0);
281
+ });
282
+ });
283
+ }
284
+ }, [isOpen]);
285
+ return /* @__PURE__ */ jsxRuntime.jsx(
286
+ "div",
287
+ {
288
+ ref: contentRef,
289
+ className: clsx18__default.default("ds-accordion__content", className),
290
+ style: {
291
+ height: height !== void 0 ? `${height}px` : "auto"
292
+ },
293
+ hidden: !isOpen && height === 0,
294
+ ...props,
295
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: "ds-accordion__content-inner", children })
296
+ }
297
+ );
298
+ });
299
+ AccordionContent.displayName = "AccordionContent";
300
+ var Label = React20__default.default.forwardRef(
301
+ ({ className, disabled, ...props }, ref) => {
302
+ return /* @__PURE__ */ jsxRuntime.jsx(
303
+ "label",
304
+ {
305
+ ref,
306
+ className: clsx18__default.default("ds-label", disabled && "ds-label--disabled", className),
307
+ "data-disabled": disabled || void 0,
308
+ ...props
309
+ }
310
+ );
311
+ }
312
+ );
313
+ Label.displayName = "Label";
314
+ var Skeleton = React20__default.default.forwardRef(
315
+ ({ className, ...props }, ref) => {
316
+ return /* @__PURE__ */ jsxRuntime.jsx(
317
+ "div",
318
+ {
319
+ ref,
320
+ className: clsx18__default.default("ds-skeleton", className),
321
+ ...props
322
+ }
323
+ );
324
+ }
325
+ );
326
+ Skeleton.displayName = "Skeleton";
327
+ var Separator = React20__default.default.forwardRef(
328
+ ({ className, orientation = "horizontal", ...props }, ref) => {
329
+ return /* @__PURE__ */ jsxRuntime.jsx(
330
+ "div",
331
+ {
332
+ ref,
333
+ role: "separator",
334
+ "aria-orientation": orientation,
335
+ className: clsx18__default.default(
336
+ "ds-separator",
337
+ `ds-separator--${orientation}`,
338
+ className
339
+ ),
340
+ ...props
341
+ }
342
+ );
343
+ }
344
+ );
345
+ Separator.displayName = "Separator";
346
+ var SheetContext = React20__default.default.createContext(void 0);
347
+ function useSheetContext() {
348
+ const ctx = React20__default.default.useContext(SheetContext);
349
+ if (!ctx) {
350
+ throw new Error("Sheet compound components must be used within a <Sheet> parent.");
351
+ }
352
+ return ctx;
353
+ }
354
+ var Sheet = ({ open: controlledOpen, onOpenChange, children }) => {
355
+ const [uncontrolledOpen, setUncontrolledOpen] = React20__default.default.useState(false);
356
+ const isControlled = controlledOpen !== void 0;
357
+ const open = isControlled ? controlledOpen : uncontrolledOpen;
358
+ const handleOpenChange = React20__default.default.useCallback(
359
+ (next) => {
360
+ if (!isControlled) {
361
+ setUncontrolledOpen(next);
362
+ }
363
+ onOpenChange?.(next);
364
+ },
365
+ [isControlled, onOpenChange]
366
+ );
367
+ return /* @__PURE__ */ jsxRuntime.jsx(SheetContext.Provider, { value: { open, onOpenChange: handleOpenChange }, children });
368
+ };
369
+ Sheet.displayName = "Sheet";
370
+ var SheetTrigger = React20__default.default.forwardRef(
371
+ ({ onClick, asChild = false, ...props }, ref) => {
372
+ const { onOpenChange } = useSheetContext();
373
+ const handleClick = (e) => {
374
+ onOpenChange(true);
375
+ onClick?.(e);
376
+ };
377
+ const Comp = asChild ? reactSlot.Slot : "button";
378
+ return /* @__PURE__ */ jsxRuntime.jsx(Comp, { ref, type: "button", onClick: handleClick, ...props });
379
+ }
380
+ );
381
+ SheetTrigger.displayName = "SheetTrigger";
382
+ var SheetClose = React20__default.default.forwardRef(
383
+ ({ onClick, asChild = false, ...props }, ref) => {
384
+ const { onOpenChange } = useSheetContext();
385
+ const handleClick = (e) => {
386
+ onOpenChange(false);
387
+ onClick?.(e);
388
+ };
389
+ const Comp = asChild ? reactSlot.Slot : "button";
390
+ return /* @__PURE__ */ jsxRuntime.jsx(Comp, { ref, type: "button", onClick: handleClick, ...props });
391
+ }
392
+ );
393
+ SheetClose.displayName = "SheetClose";
394
+ var SheetContent = React20__default.default.forwardRef(
395
+ ({ side = "right", className, children, ...props }, ref) => {
396
+ const { open, onOpenChange } = useSheetContext();
397
+ if (!open) return null;
398
+ return ReactDOM.createPortal(
399
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
400
+ /* @__PURE__ */ jsxRuntime.jsx(
401
+ "div",
402
+ {
403
+ className: "ds-sheet__backdrop",
404
+ onClick: () => onOpenChange(false),
405
+ "aria-hidden": "true"
406
+ }
407
+ ),
408
+ /* @__PURE__ */ jsxRuntime.jsx(
409
+ "div",
410
+ {
411
+ ref,
412
+ role: "dialog",
413
+ className: clsx18__default.default("ds-sheet__content", `ds-sheet__content--${side}`, className),
414
+ ...props,
415
+ children
416
+ }
417
+ )
418
+ ] }),
419
+ document.body
420
+ );
421
+ }
422
+ );
423
+ SheetContent.displayName = "SheetContent";
424
+ var SheetHeader = React20__default.default.forwardRef(
425
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-sheet__header", className), ...props })
426
+ );
427
+ SheetHeader.displayName = "SheetHeader";
428
+ var SheetTitle = React20__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h2", { ref, className: clsx18__default.default("ds-sheet__title", className), ...props }));
429
+ SheetTitle.displayName = "SheetTitle";
430
+ var SheetDescription = React20__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: clsx18__default.default("ds-sheet__description", className), ...props }));
431
+ SheetDescription.displayName = "SheetDescription";
432
+ var SheetFooter = React20__default.default.forwardRef(
433
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-sheet__footer", className), ...props })
434
+ );
435
+ SheetFooter.displayName = "SheetFooter";
436
+ var PopoverContext = React20__default.default.createContext(null);
437
+ function usePopoverContext() {
438
+ const context = React20__default.default.useContext(PopoverContext);
439
+ if (!context) {
440
+ throw new Error("Popover compound components must be used within <Popover>");
441
+ }
442
+ return context;
443
+ }
444
+ var Popover = ({ open: controlledOpen, onOpenChange, children }) => {
445
+ const [uncontrolledOpen, setUncontrolledOpen] = React20__default.default.useState(false);
446
+ const isControlled = controlledOpen !== void 0;
447
+ const open = isControlled ? controlledOpen : uncontrolledOpen;
448
+ const setOpen = React20__default.default.useCallback(
449
+ (value) => {
450
+ if (!isControlled) {
451
+ setUncontrolledOpen(value);
452
+ }
453
+ onOpenChange?.(value);
454
+ },
455
+ [isControlled, onOpenChange]
456
+ );
457
+ const toggle = React20__default.default.useCallback(() => {
458
+ setOpen(!open);
459
+ }, [open, setOpen]);
460
+ const contextValue = React20__default.default.useMemo(
461
+ () => ({ open, setOpen, toggle }),
462
+ [open, setOpen, toggle]
463
+ );
464
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-popover", children }) });
465
+ };
466
+ Popover.displayName = "Popover";
467
+ var PopoverTrigger = React20__default.default.forwardRef(
468
+ ({ className, onClick, asChild = false, ...props }, ref) => {
469
+ const { toggle } = usePopoverContext();
470
+ const handleClick = (e) => {
471
+ toggle();
472
+ onClick?.(e);
473
+ };
474
+ const Comp = asChild ? reactSlot.Slot : "button";
475
+ return /* @__PURE__ */ jsxRuntime.jsx(
476
+ Comp,
477
+ {
478
+ ref,
479
+ type: "button",
480
+ className: clsx18__default.default("ds-popover__trigger", className),
481
+ onClick: handleClick,
482
+ ...props
483
+ }
484
+ );
485
+ }
486
+ );
487
+ PopoverTrigger.displayName = "PopoverTrigger";
488
+ var PopoverContent = React20__default.default.forwardRef(
489
+ ({ className, side = "bottom", align = "center", ...props }, ref) => {
490
+ const { open } = usePopoverContext();
491
+ if (!open) return null;
492
+ return /* @__PURE__ */ jsxRuntime.jsx(
493
+ "div",
494
+ {
495
+ ref,
496
+ className: clsx18__default.default(
497
+ "ds-popover__content",
498
+ `ds-popover__content--${side}`,
499
+ `ds-popover__content--align-${align}`,
500
+ className
501
+ ),
502
+ ...props
503
+ }
504
+ );
505
+ }
506
+ );
507
+ PopoverContent.displayName = "PopoverContent";
508
+ var PopoverClose = React20__default.default.forwardRef(({ className, onClick, ...props }, ref) => {
509
+ const { setOpen } = usePopoverContext();
510
+ const handleClick = (e) => {
511
+ setOpen(false);
512
+ onClick?.(e);
513
+ };
514
+ return /* @__PURE__ */ jsxRuntime.jsx(
515
+ "button",
516
+ {
517
+ ref,
518
+ type: "button",
519
+ className: clsx18__default.default("ds-popover__close", className),
520
+ onClick: handleClick,
521
+ ...props
522
+ }
523
+ );
524
+ });
525
+ PopoverClose.displayName = "PopoverClose";
526
+ var Progress = React20__default.default.forwardRef(
527
+ ({ className, value = 0, max = 100, ...props }, ref) => {
528
+ const percentage = max > 0 ? Math.min(100, Math.max(0, value / max * 100)) : 0;
529
+ return /* @__PURE__ */ jsxRuntime.jsx(
530
+ "div",
531
+ {
532
+ ref,
533
+ role: "progressbar",
534
+ "aria-valuenow": value,
535
+ "aria-valuemin": 0,
536
+ "aria-valuemax": max,
537
+ className: clsx18__default.default("ds-progress", className),
538
+ ...props,
539
+ children: /* @__PURE__ */ jsxRuntime.jsx(
540
+ "div",
541
+ {
542
+ className: "ds-progress__indicator",
543
+ style: { width: `${percentage}%` }
544
+ }
545
+ )
546
+ }
547
+ );
548
+ }
549
+ );
550
+ Progress.displayName = "Progress";
551
+ var ScrollArea = React20__default.default.forwardRef(
552
+ ({ className, children, ...props }, ref) => {
553
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-scroll-area", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-scroll-area__viewport", children }) });
554
+ }
555
+ );
556
+ ScrollArea.displayName = "ScrollArea";
557
+ var ScrollBar = React20__default.default.forwardRef(
558
+ ({ className, orientation = "vertical", ...props }, ref) => {
559
+ return /* @__PURE__ */ jsxRuntime.jsx(
560
+ "div",
561
+ {
562
+ ref,
563
+ className: clsx18__default.default(
564
+ "ds-scroll-area__scrollbar",
565
+ `ds-scroll-area__scrollbar--${orientation}`,
566
+ className
567
+ ),
568
+ ...props
569
+ }
570
+ );
571
+ }
572
+ );
573
+ ScrollBar.displayName = "ScrollBar";
574
+ var Toggle = React20__default.default.forwardRef(
575
+ ({
576
+ className,
577
+ pressed: controlledPressed,
578
+ onPressedChange,
579
+ variant = "default",
580
+ size = "md",
581
+ onClick,
582
+ ...props
583
+ }, ref) => {
584
+ const [uncontrolledPressed, setUncontrolledPressed] = React20__default.default.useState(false);
585
+ const isControlled = controlledPressed !== void 0;
586
+ const pressed = isControlled ? controlledPressed : uncontrolledPressed;
587
+ const handleClick = (e) => {
588
+ const next = !pressed;
589
+ if (!isControlled) {
590
+ setUncontrolledPressed(next);
591
+ }
592
+ onPressedChange?.(next);
593
+ onClick?.(e);
594
+ };
595
+ return /* @__PURE__ */ jsxRuntime.jsx(
596
+ "button",
597
+ {
598
+ ref,
599
+ type: "button",
600
+ className: clsx18__default.default(
601
+ "ds-toggle",
602
+ `ds-toggle--${variant}`,
603
+ `ds-toggle--${size}`,
604
+ className
605
+ ),
606
+ "aria-pressed": pressed,
607
+ "data-state": pressed ? "on" : "off",
608
+ onClick: handleClick,
609
+ ...props
610
+ }
611
+ );
612
+ }
613
+ );
614
+ Toggle.displayName = "Toggle";
615
+ var CollapsibleContext = React20__default.default.createContext(null);
616
+ function useCollapsibleContext() {
617
+ const context = React20__default.default.useContext(CollapsibleContext);
618
+ if (!context) {
619
+ throw new Error("Collapsible compound components must be used within <Collapsible>");
620
+ }
621
+ return context;
622
+ }
623
+ var Collapsible = React20__default.default.forwardRef(
624
+ ({ className, open: controlledOpen, onOpenChange, children, ...props }, ref) => {
625
+ const [uncontrolledOpen, setUncontrolledOpen] = React20__default.default.useState(false);
626
+ const isControlled = controlledOpen !== void 0;
627
+ const open = isControlled ? controlledOpen : uncontrolledOpen;
628
+ const toggle = React20__default.default.useCallback(() => {
629
+ const next = !open;
630
+ if (!isControlled) {
631
+ setUncontrolledOpen(next);
632
+ }
633
+ onOpenChange?.(next);
634
+ }, [open, isControlled, onOpenChange]);
635
+ const contextValue = React20__default.default.useMemo(
636
+ () => ({ open, toggle }),
637
+ [open, toggle]
638
+ );
639
+ return /* @__PURE__ */ jsxRuntime.jsx(CollapsibleContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
640
+ "div",
641
+ {
642
+ ref,
643
+ className: clsx18__default.default("ds-collapsible", className),
644
+ "data-state": open ? "open" : "closed",
645
+ ...props,
646
+ children
647
+ }
648
+ ) });
649
+ }
650
+ );
651
+ Collapsible.displayName = "Collapsible";
652
+ var CollapsibleTrigger = React20__default.default.forwardRef(({ className, onClick, ...props }, ref) => {
653
+ const { toggle } = useCollapsibleContext();
654
+ const handleClick = (e) => {
655
+ toggle();
656
+ onClick?.(e);
657
+ };
658
+ return /* @__PURE__ */ jsxRuntime.jsx(
659
+ "button",
660
+ {
661
+ ref,
662
+ type: "button",
663
+ className: clsx18__default.default("ds-collapsible__trigger", className),
664
+ onClick: handleClick,
665
+ ...props
666
+ }
667
+ );
668
+ });
669
+ CollapsibleTrigger.displayName = "CollapsibleTrigger";
670
+ var CollapsibleContent = React20__default.default.forwardRef(({ className, children, ...props }, ref) => {
671
+ const { open } = useCollapsibleContext();
672
+ const contentRef = React20__default.default.useRef(null);
673
+ const [maxHeight, setMaxHeight] = React20__default.default.useState(
674
+ open ? void 0 : 0
675
+ );
676
+ React20__default.default.useEffect(() => {
677
+ const el = contentRef.current;
678
+ if (!el) return;
679
+ if (open) {
680
+ const scrollHeight = el.scrollHeight;
681
+ setMaxHeight(scrollHeight);
682
+ const timer = setTimeout(() => setMaxHeight(void 0), 200);
683
+ return () => clearTimeout(timer);
684
+ } else {
685
+ const scrollHeight = el.scrollHeight;
686
+ setMaxHeight(scrollHeight);
687
+ requestAnimationFrame(() => {
688
+ requestAnimationFrame(() => {
689
+ setMaxHeight(0);
690
+ });
691
+ });
692
+ }
693
+ }, [open]);
694
+ return /* @__PURE__ */ jsxRuntime.jsx(
695
+ "div",
696
+ {
697
+ ref: contentRef,
698
+ className: clsx18__default.default("ds-collapsible__content", className),
699
+ "data-state": open ? "open" : "closed",
700
+ style: {
701
+ maxHeight: maxHeight !== void 0 ? `${maxHeight}px` : "none"
702
+ },
703
+ hidden: !open && maxHeight === 0,
704
+ ...props,
705
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: "ds-collapsible__content-inner", children })
706
+ }
707
+ );
708
+ });
709
+ CollapsibleContent.displayName = "CollapsibleContent";
710
+ var HoverCardContext = React20__default.default.createContext(null);
711
+ function useHoverCardContext() {
712
+ const context = React20__default.default.useContext(HoverCardContext);
713
+ if (!context) {
714
+ throw new Error("HoverCard compound components must be used within <HoverCard>");
715
+ }
716
+ return context;
717
+ }
718
+ var HoverCard = ({
719
+ openDelay = 200,
720
+ closeDelay = 100,
721
+ children
722
+ }) => {
723
+ const [open, setOpen] = React20__default.default.useState(false);
724
+ const openTimerRef = React20__default.default.useRef();
725
+ const closeTimerRef = React20__default.default.useRef();
726
+ const onOpen = React20__default.default.useCallback(() => {
727
+ clearTimeout(closeTimerRef.current);
728
+ openTimerRef.current = setTimeout(() => setOpen(true), openDelay);
729
+ }, [openDelay]);
730
+ const onClose = React20__default.default.useCallback(() => {
731
+ clearTimeout(openTimerRef.current);
732
+ closeTimerRef.current = setTimeout(() => setOpen(false), closeDelay);
733
+ }, [closeDelay]);
734
+ React20__default.default.useEffect(() => {
735
+ return () => {
736
+ clearTimeout(openTimerRef.current);
737
+ clearTimeout(closeTimerRef.current);
738
+ };
739
+ }, []);
740
+ const contextValue = React20__default.default.useMemo(
741
+ () => ({ open, onOpen, onClose }),
742
+ [open, onOpen, onClose]
743
+ );
744
+ return /* @__PURE__ */ jsxRuntime.jsx(HoverCardContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-hover-card", children }) });
745
+ };
746
+ HoverCard.displayName = "HoverCard";
747
+ var HoverCardTrigger = React20__default.default.forwardRef(({ className, onMouseEnter, onMouseLeave, ...props }, ref) => {
748
+ const { onOpen, onClose } = useHoverCardContext();
749
+ const handleMouseEnter = (e) => {
750
+ onOpen();
751
+ onMouseEnter?.(e);
752
+ };
753
+ const handleMouseLeave = (e) => {
754
+ onClose();
755
+ onMouseLeave?.(e);
756
+ };
757
+ return /* @__PURE__ */ jsxRuntime.jsx(
758
+ "span",
759
+ {
760
+ ref,
761
+ className: clsx18__default.default("ds-hover-card__trigger", className),
762
+ onMouseEnter: handleMouseEnter,
763
+ onMouseLeave: handleMouseLeave,
764
+ ...props
765
+ }
766
+ );
767
+ });
768
+ HoverCardTrigger.displayName = "HoverCardTrigger";
769
+ var HoverCardContent = React20__default.default.forwardRef(
770
+ ({ className, side = "bottom", align = "center", onMouseEnter, onMouseLeave, ...props }, ref) => {
771
+ const { open, onOpen, onClose } = useHoverCardContext();
772
+ const handleMouseEnter = (e) => {
773
+ onOpen();
774
+ onMouseEnter?.(e);
775
+ };
776
+ const handleMouseLeave = (e) => {
777
+ onClose();
778
+ onMouseLeave?.(e);
779
+ };
780
+ if (!open) return null;
781
+ return /* @__PURE__ */ jsxRuntime.jsx(
782
+ "div",
783
+ {
784
+ ref,
785
+ className: clsx18__default.default(
786
+ "ds-hover-card__content",
787
+ `ds-hover-card__content--${side}`,
788
+ `ds-hover-card__content--align-${align}`,
789
+ className
790
+ ),
791
+ onMouseEnter: handleMouseEnter,
792
+ onMouseLeave: handleMouseLeave,
793
+ ...props
794
+ }
795
+ );
796
+ }
797
+ );
798
+ HoverCardContent.displayName = "HoverCardContent";
799
+ var AspectRatio = React20__default.default.forwardRef(
800
+ ({ className, ratio = 1, style, children, ...props }, ref) => {
801
+ return /* @__PURE__ */ jsxRuntime.jsx(
802
+ "div",
803
+ {
804
+ ref,
805
+ className: clsx18__default.default("ds-aspect-ratio", className),
806
+ style: { ...style, paddingBottom: `${1 / ratio * 100}%` },
807
+ ...props,
808
+ children
809
+ }
810
+ );
811
+ }
812
+ );
813
+ AspectRatio.displayName = "AspectRatio";
814
+ var Pagination = React20__default.default.forwardRef(
815
+ ({ className, "aria-label": ariaLabel = "pagination", ...props }, ref) => {
816
+ return /* @__PURE__ */ jsxRuntime.jsx(
817
+ "nav",
818
+ {
819
+ ref,
820
+ role: "navigation",
821
+ "aria-label": ariaLabel,
822
+ className: clsx18__default.default("ds-pagination", className),
823
+ ...props
824
+ }
825
+ );
826
+ }
827
+ );
828
+ Pagination.displayName = "Pagination";
829
+ var PaginationContent = React20__default.default.forwardRef(({ className, ...props }, ref) => {
830
+ return /* @__PURE__ */ jsxRuntime.jsx(
831
+ "ul",
832
+ {
833
+ ref,
834
+ className: clsx18__default.default("ds-pagination__content", className),
835
+ ...props
836
+ }
837
+ );
838
+ });
839
+ PaginationContent.displayName = "PaginationContent";
840
+ var PaginationItem = React20__default.default.forwardRef(({ className, ...props }, ref) => {
841
+ return /* @__PURE__ */ jsxRuntime.jsx(
842
+ "li",
843
+ {
844
+ ref,
845
+ className: clsx18__default.default("ds-pagination__item", className),
846
+ ...props
847
+ }
848
+ );
849
+ });
850
+ PaginationItem.displayName = "PaginationItem";
851
+ var PaginationLink = React20__default.default.forwardRef(({ className, isActive = false, size = "md", asChild = false, ...props }, ref) => {
852
+ const Comp = asChild ? reactSlot.Slot : "button";
853
+ return /* @__PURE__ */ jsxRuntime.jsx(
854
+ Comp,
855
+ {
856
+ ref,
857
+ "aria-current": isActive ? "page" : void 0,
858
+ className: clsx18__default.default(
859
+ "ds-pagination__link",
860
+ `ds-pagination__link--${size}`,
861
+ isActive && "ds-pagination__link--active",
862
+ className
863
+ ),
864
+ ...props
865
+ }
866
+ );
867
+ });
868
+ PaginationLink.displayName = "PaginationLink";
869
+ var PaginationPrevious = React20__default.default.forwardRef(({ className, label = "Previous", "aria-label": ariaLabel = "Go to previous page", ...props }, ref) => {
870
+ return /* @__PURE__ */ jsxRuntime.jsxs(
871
+ PaginationLink,
872
+ {
873
+ ref,
874
+ "aria-label": ariaLabel,
875
+ className: clsx18__default.default("ds-pagination__prev", className),
876
+ ...props,
877
+ children: [
878
+ /* @__PURE__ */ jsxRuntime.jsx(
879
+ "svg",
880
+ {
881
+ xmlns: "http://www.w3.org/2000/svg",
882
+ width: "16",
883
+ height: "16",
884
+ viewBox: "0 0 24 24",
885
+ fill: "none",
886
+ stroke: "currentColor",
887
+ strokeWidth: "2",
888
+ strokeLinecap: "round",
889
+ strokeLinejoin: "round",
890
+ "aria-hidden": "true",
891
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m15 18-6-6 6-6" })
892
+ }
893
+ ),
894
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: label })
895
+ ]
896
+ }
897
+ );
898
+ });
899
+ PaginationPrevious.displayName = "PaginationPrevious";
900
+ var PaginationNext = React20__default.default.forwardRef(({ className, label = "Next", "aria-label": ariaLabel = "Go to next page", ...props }, ref) => {
901
+ return /* @__PURE__ */ jsxRuntime.jsxs(
902
+ PaginationLink,
903
+ {
904
+ ref,
905
+ "aria-label": ariaLabel,
906
+ className: clsx18__default.default("ds-pagination__next", className),
907
+ ...props,
908
+ children: [
909
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
910
+ /* @__PURE__ */ jsxRuntime.jsx(
911
+ "svg",
912
+ {
913
+ xmlns: "http://www.w3.org/2000/svg",
914
+ width: "16",
915
+ height: "16",
916
+ viewBox: "0 0 24 24",
917
+ fill: "none",
918
+ stroke: "currentColor",
919
+ strokeWidth: "2",
920
+ strokeLinecap: "round",
921
+ strokeLinejoin: "round",
922
+ "aria-hidden": "true",
923
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 18 6-6-6-6" })
924
+ }
925
+ )
926
+ ]
927
+ }
928
+ );
929
+ });
930
+ PaginationNext.displayName = "PaginationNext";
931
+ var PaginationEllipsis = React20__default.default.forwardRef(({ className, ...props }, ref) => {
932
+ return /* @__PURE__ */ jsxRuntime.jsx(
933
+ "span",
934
+ {
935
+ ref,
936
+ "aria-hidden": "true",
937
+ className: clsx18__default.default("ds-pagination__ellipsis", className),
938
+ ...props,
939
+ children: "..."
940
+ }
941
+ );
942
+ });
943
+ PaginationEllipsis.displayName = "PaginationEllipsis";
944
+ var levelToElement = {
945
+ display: "h1",
946
+ h1: "h1",
947
+ h2: "h2",
948
+ h3: "h3",
949
+ h4: "h4",
950
+ h5: "h5",
951
+ h6: "h6"
952
+ };
953
+ var Heading = React20__default.default.forwardRef(
954
+ ({ className, level = "h2", as, children, ...props }, ref) => {
955
+ const Comp = as ?? levelToElement[level];
956
+ return /* @__PURE__ */ jsxRuntime.jsx(
957
+ Comp,
958
+ {
959
+ ref,
960
+ className: clsx18__default.default("ds-heading", `ds-heading--${level}`, className),
961
+ ...props,
962
+ children
963
+ }
964
+ );
965
+ }
966
+ );
967
+ Heading.displayName = "Heading";
968
+ var Text = React20__default.default.forwardRef(
969
+ ({ className, variant = "body", as = "p", children, ...props }, ref) => {
970
+ const Comp = as;
971
+ return /* @__PURE__ */ jsxRuntime.jsx(
972
+ Comp,
973
+ {
974
+ ref,
975
+ className: clsx18__default.default("ds-text", `ds-text--${variant}`, className),
976
+ ...props,
977
+ children
978
+ }
979
+ );
980
+ }
981
+ );
982
+ Text.displayName = "Text";
983
+ var Prose = React20__default.default.forwardRef(
984
+ ({ className, children, ...props }, ref) => {
985
+ return /* @__PURE__ */ jsxRuntime.jsx(
986
+ "div",
987
+ {
988
+ ref,
989
+ className: clsx18__default.default("ds-prose", className),
990
+ ...props,
991
+ children
992
+ }
993
+ );
994
+ }
995
+ );
996
+ Prose.displayName = "Prose";
997
+ var CarouselContext = React20__default.default.createContext(void 0);
998
+ function useCarouselContext() {
999
+ const ctx = React20__default.default.useContext(CarouselContext);
1000
+ if (!ctx) {
1001
+ throw new Error("Carousel compound components must be used within a <Carousel> parent.");
1002
+ }
1003
+ return ctx;
1004
+ }
1005
+ var Carousel = React20__default.default.forwardRef(
1006
+ ({ className, children, ...props }, ref) => {
1007
+ const scrollRef = React20__default.default.useRef(null);
1008
+ return /* @__PURE__ */ jsxRuntime.jsx(CarouselContext.Provider, { value: { scrollRef }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-carousel", className), ...props, children }) });
1009
+ }
1010
+ );
1011
+ Carousel.displayName = "Carousel";
1012
+ var CarouselContent = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1013
+ const { scrollRef } = useCarouselContext();
1014
+ const mergedRef = React20__default.default.useCallback(
1015
+ (node) => {
1016
+ scrollRef.current = node;
1017
+ if (typeof ref === "function") {
1018
+ ref(node);
1019
+ } else if (ref) {
1020
+ ref.current = node;
1021
+ }
1022
+ },
1023
+ [ref, scrollRef]
1024
+ );
1025
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: mergedRef, className: clsx18__default.default("ds-carousel__content", className), ...props });
1026
+ });
1027
+ CarouselContent.displayName = "CarouselContent";
1028
+ var CarouselItem = React20__default.default.forwardRef(
1029
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-carousel__item", className), ...props })
1030
+ );
1031
+ CarouselItem.displayName = "CarouselItem";
1032
+ var CarouselPrevious = React20__default.default.forwardRef(({ className, onClick, children, "aria-label": ariaLabel = "Previous slide", ...props }, ref) => {
1033
+ const { scrollRef } = useCarouselContext();
1034
+ const handleClick = (e) => {
1035
+ const container = scrollRef.current;
1036
+ if (container) {
1037
+ const firstItem = container.querySelector(".ds-carousel__item");
1038
+ const scrollAmount = firstItem ? firstItem.clientWidth : container.clientWidth;
1039
+ container.scrollBy({ left: -scrollAmount, behavior: "smooth" });
1040
+ }
1041
+ onClick?.(e);
1042
+ };
1043
+ return /* @__PURE__ */ jsxRuntime.jsx(
1044
+ "button",
1045
+ {
1046
+ ref,
1047
+ type: "button",
1048
+ className: clsx18__default.default("ds-carousel__prev", className),
1049
+ "aria-label": ariaLabel,
1050
+ onClick: handleClick,
1051
+ ...props,
1052
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
1053
+ "path",
1054
+ {
1055
+ d: "M10 12L6 8L10 4",
1056
+ stroke: "currentColor",
1057
+ strokeWidth: "1.5",
1058
+ strokeLinecap: "round",
1059
+ strokeLinejoin: "round"
1060
+ }
1061
+ ) })
1062
+ }
1063
+ );
1064
+ });
1065
+ CarouselPrevious.displayName = "CarouselPrevious";
1066
+ var CarouselNext = React20__default.default.forwardRef(({ className, onClick, children, "aria-label": ariaLabel = "Next slide", ...props }, ref) => {
1067
+ const { scrollRef } = useCarouselContext();
1068
+ const handleClick = (e) => {
1069
+ const container = scrollRef.current;
1070
+ if (container) {
1071
+ const firstItem = container.querySelector(".ds-carousel__item");
1072
+ const scrollAmount = firstItem ? firstItem.clientWidth : container.clientWidth;
1073
+ container.scrollBy({ left: scrollAmount, behavior: "smooth" });
1074
+ }
1075
+ onClick?.(e);
1076
+ };
1077
+ return /* @__PURE__ */ jsxRuntime.jsx(
1078
+ "button",
1079
+ {
1080
+ ref,
1081
+ type: "button",
1082
+ className: clsx18__default.default("ds-carousel__next", className),
1083
+ "aria-label": ariaLabel,
1084
+ onClick: handleClick,
1085
+ ...props,
1086
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
1087
+ "path",
1088
+ {
1089
+ d: "M6 4L10 8L6 12",
1090
+ stroke: "currentColor",
1091
+ strokeWidth: "1.5",
1092
+ strokeLinecap: "round",
1093
+ strokeLinejoin: "round"
1094
+ }
1095
+ ) })
1096
+ }
1097
+ );
1098
+ });
1099
+ CarouselNext.displayName = "CarouselNext";
1100
+ function mergeRefs(...refs) {
1101
+ return (node) => {
1102
+ refs.forEach((ref) => {
1103
+ if (typeof ref === "function") ref(node);
1104
+ else if (ref) ref.current = node;
1105
+ });
1106
+ };
1107
+ }
1108
+ var CommandContext = React20__default.default.createContext(void 0);
1109
+ function useCommandContext() {
1110
+ const ctx = React20__default.default.useContext(CommandContext);
1111
+ if (!ctx) {
1112
+ throw new Error("Command compound components must be used within a <Command> parent.");
1113
+ }
1114
+ return ctx;
1115
+ }
1116
+ function getOptionElements(listEl) {
1117
+ if (!listEl) return [];
1118
+ return Array.from(listEl.querySelectorAll('[role="option"]'));
1119
+ }
1120
+ var Command = React20__default.default.forwardRef(
1121
+ ({ className, value: controlledValue, onValueChange, onKeyDown, children, ...props }, ref) => {
1122
+ const [uncontrolledValue, setUncontrolledValue] = React20__default.default.useState("");
1123
+ const [activeId, setActiveId] = React20__default.default.useState(null);
1124
+ const listRef = React20__default.default.useRef(null);
1125
+ const isControlled = controlledValue !== void 0;
1126
+ const search = isControlled ? controlledValue : uncontrolledValue;
1127
+ const inputId = React20__default.default.useId();
1128
+ const listId = React20__default.default.useId();
1129
+ const setSearch = React20__default.default.useCallback(
1130
+ (next) => {
1131
+ if (!isControlled) {
1132
+ setUncontrolledValue(next);
1133
+ }
1134
+ onValueChange?.(next);
1135
+ },
1136
+ [isControlled, onValueChange]
1137
+ );
1138
+ React20__default.default.useEffect(() => {
1139
+ const frame = requestAnimationFrame(() => {
1140
+ const items = getOptionElements(listRef.current);
1141
+ if (items.length > 0) {
1142
+ setActiveId(items[0].id);
1143
+ } else {
1144
+ setActiveId(null);
1145
+ }
1146
+ });
1147
+ return () => cancelAnimationFrame(frame);
1148
+ }, [search]);
1149
+ const handleKeyDown = React20__default.default.useCallback(
1150
+ (e) => {
1151
+ const items = getOptionElements(listRef.current);
1152
+ if (items.length === 0) {
1153
+ onKeyDown?.(e);
1154
+ return;
1155
+ }
1156
+ const currentIndex = items.findIndex((el) => el.id === activeId);
1157
+ switch (e.key) {
1158
+ case "ArrowDown": {
1159
+ e.preventDefault();
1160
+ const nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;
1161
+ setActiveId(items[nextIndex].id);
1162
+ items[nextIndex].scrollIntoView?.({ block: "nearest" });
1163
+ break;
1164
+ }
1165
+ case "ArrowUp": {
1166
+ e.preventDefault();
1167
+ const prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;
1168
+ setActiveId(items[prevIndex].id);
1169
+ items[prevIndex].scrollIntoView?.({ block: "nearest" });
1170
+ break;
1171
+ }
1172
+ case "Home": {
1173
+ e.preventDefault();
1174
+ setActiveId(items[0].id);
1175
+ items[0].scrollIntoView?.({ block: "nearest" });
1176
+ break;
1177
+ }
1178
+ case "End": {
1179
+ e.preventDefault();
1180
+ const lastItem = items[items.length - 1];
1181
+ setActiveId(lastItem.id);
1182
+ lastItem.scrollIntoView?.({ block: "nearest" });
1183
+ break;
1184
+ }
1185
+ case "Enter": {
1186
+ const target = e.target;
1187
+ if (target.getAttribute("role") === "option") break;
1188
+ const activeEl = activeId ? document.getElementById(activeId) : null;
1189
+ if (activeEl) {
1190
+ e.preventDefault();
1191
+ activeEl.click();
1192
+ }
1193
+ break;
1194
+ }
1195
+ }
1196
+ onKeyDown?.(e);
1197
+ },
1198
+ [activeId, onKeyDown]
1199
+ );
1200
+ const ctx = React20__default.default.useMemo(
1201
+ () => ({ search, setSearch, activeId, setActiveId, listRef, inputId, listId }),
1202
+ [search, setSearch, activeId, inputId, listId]
1203
+ );
1204
+ return /* @__PURE__ */ jsxRuntime.jsx(CommandContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
1205
+ "div",
1206
+ {
1207
+ ref,
1208
+ className: clsx18__default.default("ds-command", className),
1209
+ onKeyDown: handleKeyDown,
1210
+ ...props,
1211
+ children
1212
+ }
1213
+ ) });
1214
+ }
1215
+ );
1216
+ Command.displayName = "Command";
1217
+ var CommandInput = React20__default.default.forwardRef(({ className, onChange, ...props }, ref) => {
1218
+ const { search, setSearch, activeId, inputId, listId } = useCommandContext();
1219
+ const handleChange = (e) => {
1220
+ setSearch(e.target.value);
1221
+ onChange?.(e);
1222
+ };
1223
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-command__input-wrapper", children: [
1224
+ /* @__PURE__ */ jsxRuntime.jsxs(
1225
+ "svg",
1226
+ {
1227
+ className: "ds-command__input-icon",
1228
+ width: "16",
1229
+ height: "16",
1230
+ viewBox: "0 0 16 16",
1231
+ fill: "none",
1232
+ "aria-hidden": "true",
1233
+ children: [
1234
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "7", cy: "7", r: "5", stroke: "currentColor", strokeWidth: "1.5" }),
1235
+ /* @__PURE__ */ jsxRuntime.jsx(
1236
+ "path",
1237
+ {
1238
+ d: "M11 11L14 14",
1239
+ stroke: "currentColor",
1240
+ strokeWidth: "1.5",
1241
+ strokeLinecap: "round"
1242
+ }
1243
+ )
1244
+ ]
1245
+ }
1246
+ ),
1247
+ /* @__PURE__ */ jsxRuntime.jsx(
1248
+ "input",
1249
+ {
1250
+ ref,
1251
+ id: inputId,
1252
+ type: "text",
1253
+ role: "combobox",
1254
+ "aria-expanded": "true",
1255
+ "aria-controls": listId,
1256
+ "aria-activedescendant": activeId ?? void 0,
1257
+ "aria-autocomplete": "list",
1258
+ autoComplete: "off",
1259
+ className: clsx18__default.default("ds-command__input", className),
1260
+ value: search,
1261
+ onChange: handleChange,
1262
+ ...props
1263
+ }
1264
+ )
1265
+ ] });
1266
+ });
1267
+ CommandInput.displayName = "CommandInput";
1268
+ var CommandList = React20__default.default.forwardRef(
1269
+ ({ className, ...props }, ref) => {
1270
+ const { listRef, listId } = useCommandContext();
1271
+ return /* @__PURE__ */ jsxRuntime.jsx(
1272
+ "div",
1273
+ {
1274
+ ref: mergeRefs(ref, listRef),
1275
+ id: listId,
1276
+ role: "listbox",
1277
+ className: clsx18__default.default("ds-command__list", className),
1278
+ ...props
1279
+ }
1280
+ );
1281
+ }
1282
+ );
1283
+ CommandList.displayName = "CommandList";
1284
+ var CommandEmpty = React20__default.default.forwardRef(
1285
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-command__empty", className), ...props })
1286
+ );
1287
+ CommandEmpty.displayName = "CommandEmpty";
1288
+ var CommandGroup = React20__default.default.forwardRef(
1289
+ ({ className, heading, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx18__default.default("ds-command__group", className), ...props, children: [
1290
+ heading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-command__group-heading", children: heading }),
1291
+ children
1292
+ ] })
1293
+ );
1294
+ CommandGroup.displayName = "CommandGroup";
1295
+ var CommandItem = React20__default.default.forwardRef(
1296
+ ({ className, onSelect, onClick, onKeyDown, onPointerEnter, id: externalId, ...props }, ref) => {
1297
+ const generatedId = React20__default.default.useId();
1298
+ const { activeId, setActiveId } = useCommandContext();
1299
+ const itemId = externalId || generatedId;
1300
+ const isActive = activeId === itemId;
1301
+ const handleClick = (e) => {
1302
+ onSelect?.();
1303
+ onClick?.(e);
1304
+ };
1305
+ const handleKeyDown = (e) => {
1306
+ if (e.key === "Enter") {
1307
+ onSelect?.();
1308
+ }
1309
+ onKeyDown?.(e);
1310
+ };
1311
+ const handlePointerEnter = (e) => {
1312
+ setActiveId(itemId);
1313
+ onPointerEnter?.(e);
1314
+ };
1315
+ return /* @__PURE__ */ jsxRuntime.jsx(
1316
+ "div",
1317
+ {
1318
+ ref,
1319
+ id: itemId,
1320
+ role: "option",
1321
+ tabIndex: 0,
1322
+ "aria-selected": isActive,
1323
+ "data-active": isActive || void 0,
1324
+ className: clsx18__default.default("ds-command__item", className),
1325
+ onClick: handleClick,
1326
+ onKeyDown: handleKeyDown,
1327
+ onPointerEnter: handlePointerEnter,
1328
+ ...props
1329
+ }
1330
+ );
1331
+ }
1332
+ );
1333
+ CommandItem.displayName = "CommandItem";
1334
+ var CommandSeparator = React20__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-command__separator", className), ...props }));
1335
+ CommandSeparator.displayName = "CommandSeparator";
1336
+ var SIZE_CLASSES = {
1337
+ sm: "ds-dialog__content--sm",
1338
+ lg: "ds-dialog__content--lg",
1339
+ xl: "ds-dialog__content--xl"
1340
+ };
1341
+ var CommandDialog = ({
1342
+ open,
1343
+ onOpenChange,
1344
+ title = "Search",
1345
+ size = "lg",
1346
+ className,
1347
+ children
1348
+ }) => /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
1349
+ chunkW2WTP6HS_cjs.DialogContent,
1350
+ {
1351
+ className: clsx18__default.default("ds-command-dialog", SIZE_CLASSES[size], className),
1352
+ children: [
1353
+ /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.DialogTitle, { className: "ds-command-dialog__sr-title", children: title }),
1354
+ children
1355
+ ]
1356
+ }
1357
+ ) });
1358
+ CommandDialog.displayName = "CommandDialog";
1359
+ var DrawerContext = React20__default.default.createContext(void 0);
1360
+ function useDrawerContext() {
1361
+ const ctx = React20__default.default.useContext(DrawerContext);
1362
+ if (!ctx) {
1363
+ throw new Error("Drawer compound components must be used within a <Drawer> parent.");
1364
+ }
1365
+ return ctx;
1366
+ }
1367
+ var Drawer = ({ open: controlledOpen, onOpenChange, children }) => {
1368
+ const [uncontrolledOpen, setUncontrolledOpen] = React20__default.default.useState(false);
1369
+ const isControlled = controlledOpen !== void 0;
1370
+ const open = isControlled ? controlledOpen : uncontrolledOpen;
1371
+ const handleOpenChange = React20__default.default.useCallback(
1372
+ (next) => {
1373
+ if (!isControlled) {
1374
+ setUncontrolledOpen(next);
1375
+ }
1376
+ onOpenChange?.(next);
1377
+ },
1378
+ [isControlled, onOpenChange]
1379
+ );
1380
+ return /* @__PURE__ */ jsxRuntime.jsx(DrawerContext.Provider, { value: { open, onOpenChange: handleOpenChange }, children });
1381
+ };
1382
+ Drawer.displayName = "Drawer";
1383
+ var DrawerTrigger = React20__default.default.forwardRef(({ onClick, ...props }, ref) => {
1384
+ const { onOpenChange } = useDrawerContext();
1385
+ const handleClick = (e) => {
1386
+ onOpenChange(true);
1387
+ onClick?.(e);
1388
+ };
1389
+ return /* @__PURE__ */ jsxRuntime.jsx("button", { ref, type: "button", onClick: handleClick, ...props });
1390
+ });
1391
+ DrawerTrigger.displayName = "DrawerTrigger";
1392
+ var DrawerClose = React20__default.default.forwardRef(({ onClick, ...props }, ref) => {
1393
+ const { onOpenChange } = useDrawerContext();
1394
+ const handleClick = (e) => {
1395
+ onOpenChange(false);
1396
+ onClick?.(e);
1397
+ };
1398
+ return /* @__PURE__ */ jsxRuntime.jsx("button", { ref, type: "button", onClick: handleClick, ...props });
1399
+ });
1400
+ DrawerClose.displayName = "DrawerClose";
1401
+ var DrawerContent = React20__default.default.forwardRef(
1402
+ ({ className, children, ...props }, ref) => {
1403
+ const { open, onOpenChange } = useDrawerContext();
1404
+ if (!open) return null;
1405
+ return ReactDOM.createPortal(
1406
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1407
+ /* @__PURE__ */ jsxRuntime.jsx(
1408
+ "div",
1409
+ {
1410
+ className: "ds-drawer__backdrop",
1411
+ onClick: () => onOpenChange(false),
1412
+ "aria-hidden": "true"
1413
+ }
1414
+ ),
1415
+ /* @__PURE__ */ jsxRuntime.jsxs(
1416
+ "div",
1417
+ {
1418
+ ref,
1419
+ role: "dialog",
1420
+ className: clsx18__default.default("ds-drawer__content", className),
1421
+ ...props,
1422
+ children: [
1423
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-drawer__handle", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-drawer__handle-bar" }) }),
1424
+ children
1425
+ ]
1426
+ }
1427
+ )
1428
+ ] }),
1429
+ document.body
1430
+ );
1431
+ }
1432
+ );
1433
+ DrawerContent.displayName = "DrawerContent";
1434
+ var DrawerHeader = React20__default.default.forwardRef(
1435
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-drawer__header", className), ...props })
1436
+ );
1437
+ DrawerHeader.displayName = "DrawerHeader";
1438
+ var DrawerTitle = React20__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h2", { ref, className: clsx18__default.default("ds-drawer__title", className), ...props }));
1439
+ DrawerTitle.displayName = "DrawerTitle";
1440
+ var DrawerDescription = React20__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: clsx18__default.default("ds-drawer__description", className), ...props }));
1441
+ DrawerDescription.displayName = "DrawerDescription";
1442
+ var DrawerFooter = React20__default.default.forwardRef(
1443
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-drawer__footer", className), ...props })
1444
+ );
1445
+ DrawerFooter.displayName = "DrawerFooter";
1446
+ var DEFAULT_WEEKDAY_LABELS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
1447
+ var DEFAULT_MONTH_NAMES = [
1448
+ "January",
1449
+ "February",
1450
+ "March",
1451
+ "April",
1452
+ "May",
1453
+ "June",
1454
+ "July",
1455
+ "August",
1456
+ "September",
1457
+ "October",
1458
+ "November",
1459
+ "December"
1460
+ ];
1461
+ function isSameDay(a, b) {
1462
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
1463
+ }
1464
+ function getDaysInMonth(year, month) {
1465
+ return new Date(year, month + 1, 0).getDate();
1466
+ }
1467
+ function getCalendarGrid(year, month) {
1468
+ const firstDay = new Date(year, month, 1).getDay();
1469
+ const daysInMonth = getDaysInMonth(year, month);
1470
+ const daysInPrevMonth = getDaysInMonth(year, month - 1);
1471
+ const days = [];
1472
+ for (let i = firstDay - 1; i >= 0; i--) {
1473
+ days.push(new Date(year, month - 1, daysInPrevMonth - i));
1474
+ }
1475
+ for (let d = 1; d <= daysInMonth; d++) {
1476
+ days.push(new Date(year, month, d));
1477
+ }
1478
+ const remaining = 7 - days.length % 7;
1479
+ if (remaining < 7) {
1480
+ for (let d = 1; d <= remaining; d++) {
1481
+ days.push(new Date(year, month + 1, d));
1482
+ }
1483
+ }
1484
+ const weeks = [];
1485
+ for (let i = 0; i < days.length; i += 7) {
1486
+ weeks.push(days.slice(i, i + 7));
1487
+ }
1488
+ return weeks;
1489
+ }
1490
+ var Calendar = React20__default.default.forwardRef(
1491
+ ({ className, selected, onSelect, month, onMonthChange, labels, ...props }, ref) => {
1492
+ const weekdayLabels = labels?.weekdays ?? DEFAULT_WEEKDAY_LABELS;
1493
+ const monthNames = labels?.months ?? DEFAULT_MONTH_NAMES;
1494
+ const formatDayLabel = labels?.formatDayLabel ?? ((d) => d.toDateString());
1495
+ const today = /* @__PURE__ */ new Date();
1496
+ const [internalMonth, setInternalMonth] = React20__default.default.useState(
1497
+ () => month ?? selected ?? /* @__PURE__ */ new Date()
1498
+ );
1499
+ const displayedMonth = month ?? internalMonth;
1500
+ const displayYear = displayedMonth.getFullYear();
1501
+ const displayMonthIndex = displayedMonth.getMonth();
1502
+ const weeks = getCalendarGrid(displayYear, displayMonthIndex);
1503
+ const navigateMonth = (delta) => {
1504
+ const next = new Date(displayYear, displayMonthIndex + delta, 1);
1505
+ if (onMonthChange) {
1506
+ onMonthChange(next);
1507
+ } else {
1508
+ setInternalMonth(next);
1509
+ }
1510
+ };
1511
+ const handleDayClick = (date) => {
1512
+ onSelect?.(date);
1513
+ };
1514
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx18__default.default("ds-calendar", className), ...props, children: [
1515
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-calendar__header", children: [
1516
+ /* @__PURE__ */ jsxRuntime.jsx(
1517
+ "button",
1518
+ {
1519
+ type: "button",
1520
+ className: "ds-calendar__nav-button",
1521
+ onClick: () => navigateMonth(-1),
1522
+ "aria-label": labels?.previousMonth ?? "Previous month",
1523
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1524
+ "svg",
1525
+ {
1526
+ width: "16",
1527
+ height: "16",
1528
+ viewBox: "0 0 24 24",
1529
+ fill: "none",
1530
+ stroke: "currentColor",
1531
+ strokeWidth: "2",
1532
+ strokeLinecap: "round",
1533
+ strokeLinejoin: "round",
1534
+ children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "15 18 9 12 15 6" })
1535
+ }
1536
+ )
1537
+ }
1538
+ ),
1539
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-calendar__title", children: [
1540
+ monthNames[displayMonthIndex],
1541
+ " ",
1542
+ displayYear
1543
+ ] }),
1544
+ /* @__PURE__ */ jsxRuntime.jsx(
1545
+ "button",
1546
+ {
1547
+ type: "button",
1548
+ className: "ds-calendar__nav-button",
1549
+ onClick: () => navigateMonth(1),
1550
+ "aria-label": labels?.nextMonth ?? "Next month",
1551
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1552
+ "svg",
1553
+ {
1554
+ width: "16",
1555
+ height: "16",
1556
+ viewBox: "0 0 24 24",
1557
+ fill: "none",
1558
+ stroke: "currentColor",
1559
+ strokeWidth: "2",
1560
+ strokeLinecap: "round",
1561
+ strokeLinejoin: "round",
1562
+ children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "9 18 15 12 9 6" })
1563
+ }
1564
+ )
1565
+ }
1566
+ )
1567
+ ] }),
1568
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-calendar__grid", role: "grid", children: [
1569
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-calendar__head-row", role: "row", children: weekdayLabels.map((wdLabel) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-calendar__head-cell", role: "columnheader", children: wdLabel }, wdLabel)) }),
1570
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-calendar__body", children: weeks.map((week, wi) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-calendar__row", role: "row", children: week.map((date, di) => {
1571
+ const isOutside = date.getMonth() !== displayMonthIndex;
1572
+ const isSelected = selected ? isSameDay(date, selected) : false;
1573
+ const isToday = isSameDay(date, today);
1574
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-calendar__cell", role: "gridcell", children: /* @__PURE__ */ jsxRuntime.jsx(
1575
+ "button",
1576
+ {
1577
+ type: "button",
1578
+ className: clsx18__default.default(
1579
+ "ds-calendar__day",
1580
+ isSelected && "ds-calendar__day--selected",
1581
+ isToday && "ds-calendar__day--today",
1582
+ isOutside && "ds-calendar__day--outside"
1583
+ ),
1584
+ onClick: () => handleDayClick(date),
1585
+ tabIndex: isOutside ? -1 : 0,
1586
+ "aria-label": formatDayLabel(date),
1587
+ children: date.getDate()
1588
+ }
1589
+ ) }, di);
1590
+ }) }, wi)) })
1591
+ ] })
1592
+ ] });
1593
+ }
1594
+ );
1595
+ Calendar.displayName = "Calendar";
1596
+ var InputOTPContext = React20__default.default.createContext({
1597
+ value: "",
1598
+ activeIndex: -1
1599
+ });
1600
+ var InputOTP = React20__default.default.forwardRef(
1601
+ ({ className, length = 6, value = "", onChange, children, "aria-label": ariaLabel = "One-time password", ...props }, ref) => {
1602
+ const inputRef = React20__default.default.useRef(null);
1603
+ const [activeIndex, setActiveIndex] = React20__default.default.useState(-1);
1604
+ const handleChange = (e) => {
1605
+ const newValue = e.target.value.replace(/[^0-9]/g, "").slice(0, length);
1606
+ onChange?.(newValue);
1607
+ };
1608
+ const handleFocus = () => {
1609
+ setActiveIndex(Math.min(value.length, length - 1));
1610
+ };
1611
+ const handleBlur = () => {
1612
+ setActiveIndex(-1);
1613
+ };
1614
+ const handleKeyDown = (e) => {
1615
+ if (e.key === "Backspace" && value.length > 0) {
1616
+ onChange?.(value.slice(0, -1));
1617
+ }
1618
+ };
1619
+ const handleContainerClick = () => {
1620
+ inputRef.current?.focus();
1621
+ };
1622
+ const contextValue = React20__default.default.useMemo(
1623
+ () => ({ value, activeIndex }),
1624
+ [value, activeIndex]
1625
+ );
1626
+ return /* @__PURE__ */ jsxRuntime.jsx(InputOTPContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsxs(
1627
+ "div",
1628
+ {
1629
+ ref,
1630
+ className: clsx18__default.default("ds-input-otp", className),
1631
+ onClick: handleContainerClick,
1632
+ ...props,
1633
+ children: [
1634
+ /* @__PURE__ */ jsxRuntime.jsx(
1635
+ "input",
1636
+ {
1637
+ ref: inputRef,
1638
+ type: "text",
1639
+ inputMode: "numeric",
1640
+ autoComplete: "one-time-code",
1641
+ pattern: "[0-9]*",
1642
+ maxLength: length,
1643
+ value,
1644
+ onChange: handleChange,
1645
+ onFocus: handleFocus,
1646
+ onBlur: handleBlur,
1647
+ onKeyDown: handleKeyDown,
1648
+ className: "ds-input-otp__hidden-input",
1649
+ "aria-label": ariaLabel
1650
+ }
1651
+ ),
1652
+ children
1653
+ ]
1654
+ }
1655
+ ) });
1656
+ }
1657
+ );
1658
+ InputOTP.displayName = "InputOTP";
1659
+ var InputOTPGroup = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1660
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-input-otp__group", className), ...props });
1661
+ });
1662
+ InputOTPGroup.displayName = "InputOTPGroup";
1663
+ var InputOTPSlot = React20__default.default.forwardRef(
1664
+ ({ className, index, ...props }, ref) => {
1665
+ const { value, activeIndex } = React20__default.default.useContext(InputOTPContext);
1666
+ const char = value[index] ?? "";
1667
+ const isActive = activeIndex === index;
1668
+ const isFilled = char !== "";
1669
+ return /* @__PURE__ */ jsxRuntime.jsx(
1670
+ "div",
1671
+ {
1672
+ ref,
1673
+ className: clsx18__default.default(
1674
+ "ds-input-otp__slot",
1675
+ isActive && "ds-input-otp__slot--active",
1676
+ isFilled && "ds-input-otp__slot--filled",
1677
+ className
1678
+ ),
1679
+ ...props,
1680
+ children: char
1681
+ }
1682
+ );
1683
+ }
1684
+ );
1685
+ InputOTPSlot.displayName = "InputOTPSlot";
1686
+ var InputOTPSeparator = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1687
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-input-otp__separator", className), role: "separator", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(
1688
+ "svg",
1689
+ {
1690
+ width: "8",
1691
+ height: "8",
1692
+ viewBox: "0 0 8 8",
1693
+ fill: "currentColor",
1694
+ children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "4", cy: "4", r: "2" })
1695
+ }
1696
+ ) });
1697
+ });
1698
+ InputOTPSeparator.displayName = "InputOTPSeparator";
1699
+ var ContextMenuContext = React20__default.default.createContext({
1700
+ open: false,
1701
+ position: { x: 0, y: 0 },
1702
+ onClose: () => {
1703
+ }
1704
+ });
1705
+ function ContextMenu({ children }) {
1706
+ const [open, setOpen] = React20__default.default.useState(false);
1707
+ const [position, setPosition] = React20__default.default.useState({ x: 0, y: 0 });
1708
+ const handleOpen = React20__default.default.useCallback((x, y) => {
1709
+ setPosition({ x, y });
1710
+ setOpen(true);
1711
+ }, []);
1712
+ const handleClose = React20__default.default.useCallback(() => {
1713
+ setOpen(false);
1714
+ }, []);
1715
+ const contextValue = React20__default.default.useMemo(
1716
+ () => ({ open, position, onClose: handleClose }),
1717
+ [open, position, handleClose]
1718
+ );
1719
+ return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuInternalContext.Provider, { value: { onOpen: handleOpen }, children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuContext.Provider, { value: contextValue, children }) });
1720
+ }
1721
+ ContextMenu.displayName = "ContextMenu";
1722
+ var ContextMenuInternalContext = React20__default.default.createContext({ onOpen: () => {
1723
+ } });
1724
+ var ContextMenuTrigger = React20__default.default.forwardRef(({ className, onContextMenu, ...props }, ref) => {
1725
+ const { onOpen } = React20__default.default.useContext(ContextMenuInternalContext);
1726
+ const handleContextMenu = (e) => {
1727
+ e.preventDefault();
1728
+ onOpen(e.clientX, e.clientY);
1729
+ onContextMenu?.(e);
1730
+ };
1731
+ return /* @__PURE__ */ jsxRuntime.jsx(
1732
+ "div",
1733
+ {
1734
+ ref,
1735
+ className: clsx18__default.default("ds-context-menu__trigger", className),
1736
+ onContextMenu: handleContextMenu,
1737
+ ...props
1738
+ }
1739
+ );
1740
+ });
1741
+ ContextMenuTrigger.displayName = "ContextMenuTrigger";
1742
+ var ContextMenuContent = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1743
+ const { open, position, onClose } = React20__default.default.useContext(ContextMenuContext);
1744
+ const contentRef = React20__default.default.useRef(null);
1745
+ const mergedRef = React20__default.default.useCallback(
1746
+ (node) => {
1747
+ contentRef.current = node;
1748
+ if (typeof ref === "function") ref(node);
1749
+ else if (ref) ref.current = node;
1750
+ },
1751
+ [ref]
1752
+ );
1753
+ React20__default.default.useEffect(() => {
1754
+ if (!open) return;
1755
+ const handleClickOutside = (e) => {
1756
+ if (contentRef.current && !contentRef.current.contains(e.target)) {
1757
+ onClose();
1758
+ }
1759
+ };
1760
+ const handleEscape = (e) => {
1761
+ if (e.key === "Escape") {
1762
+ onClose();
1763
+ }
1764
+ };
1765
+ const timer = setTimeout(() => {
1766
+ document.addEventListener("mousedown", handleClickOutside);
1767
+ }, 0);
1768
+ document.addEventListener("keydown", handleEscape);
1769
+ return () => {
1770
+ clearTimeout(timer);
1771
+ document.removeEventListener("mousedown", handleClickOutside);
1772
+ document.removeEventListener("keydown", handleEscape);
1773
+ };
1774
+ }, [open, onClose]);
1775
+ if (!open) return null;
1776
+ return ReactDOM__default.default.createPortal(
1777
+ /* @__PURE__ */ jsxRuntime.jsx(
1778
+ "div",
1779
+ {
1780
+ ref: mergedRef,
1781
+ role: "menu",
1782
+ className: clsx18__default.default("ds-context-menu__content", className),
1783
+ style: { top: position.y, left: position.x },
1784
+ ...props
1785
+ }
1786
+ ),
1787
+ document.body
1788
+ );
1789
+ });
1790
+ ContextMenuContent.displayName = "ContextMenuContent";
1791
+ var ContextMenuItem = React20__default.default.forwardRef(
1792
+ ({ className, onSelect, onClick, ...props }, ref) => {
1793
+ const { onClose } = React20__default.default.useContext(ContextMenuContext);
1794
+ const handleClick = (e) => {
1795
+ onSelect?.();
1796
+ onClose();
1797
+ onClick?.(e);
1798
+ };
1799
+ return /* @__PURE__ */ jsxRuntime.jsx(
1800
+ "div",
1801
+ {
1802
+ ref,
1803
+ role: "menuitem",
1804
+ className: clsx18__default.default("ds-context-menu__item", className),
1805
+ onClick: handleClick,
1806
+ ...props
1807
+ }
1808
+ );
1809
+ }
1810
+ );
1811
+ ContextMenuItem.displayName = "ContextMenuItem";
1812
+ var ContextMenuSeparator = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1813
+ return /* @__PURE__ */ jsxRuntime.jsx(
1814
+ "div",
1815
+ {
1816
+ ref,
1817
+ role: "separator",
1818
+ className: clsx18__default.default("ds-context-menu__separator", className),
1819
+ ...props
1820
+ }
1821
+ );
1822
+ });
1823
+ ContextMenuSeparator.displayName = "ContextMenuSeparator";
1824
+ var ContextMenuLabel = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1825
+ return /* @__PURE__ */ jsxRuntime.jsx(
1826
+ "div",
1827
+ {
1828
+ ref,
1829
+ className: clsx18__default.default("ds-context-menu__label", className),
1830
+ ...props
1831
+ }
1832
+ );
1833
+ });
1834
+ ContextMenuLabel.displayName = "ContextMenuLabel";
1835
+ var FormFieldContext = React20__default.default.createContext(void 0);
1836
+ function useFormField() {
1837
+ const ctx = React20__default.default.useContext(FormFieldContext);
1838
+ if (!ctx) {
1839
+ throw new Error("useFormField must be used within a <FormField>");
1840
+ }
1841
+ return ctx;
1842
+ }
1843
+ var FormItemContext = React20__default.default.createContext(void 0);
1844
+ function FormField({ name, children, value, onChange, onBlur, error }) {
1845
+ const id = React20__default.default.useId();
1846
+ const contextValue = React20__default.default.useMemo(
1847
+ () => ({ id: `${id}-form-item`, name, error }),
1848
+ [id, name, error]
1849
+ );
1850
+ const fieldProps = React20__default.default.useMemo(
1851
+ () => ({
1852
+ value: value ?? "",
1853
+ onChange: onChange ?? (() => {
1854
+ }),
1855
+ onBlur: onBlur ?? (() => {
1856
+ }),
1857
+ error,
1858
+ id: `${id}-form-item`
1859
+ }),
1860
+ [value, onChange, onBlur, error, id]
1861
+ );
1862
+ return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: contextValue, children: children(fieldProps) });
1863
+ }
1864
+ FormField.displayName = "FormField";
1865
+ var FormItem = React20__default.default.forwardRef(
1866
+ ({ className, ...props }, ref) => {
1867
+ const id = React20__default.default.useId();
1868
+ const contextValue = React20__default.default.useMemo(() => ({ id }), [id]);
1869
+ return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-form__item", className), ...props }) });
1870
+ }
1871
+ );
1872
+ FormItem.displayName = "FormItem";
1873
+ var FormLabel = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1874
+ const fieldCtx = React20__default.default.useContext(FormFieldContext);
1875
+ const hasError = !!fieldCtx?.error;
1876
+ return /* @__PURE__ */ jsxRuntime.jsx(
1877
+ "label",
1878
+ {
1879
+ ref,
1880
+ htmlFor: fieldCtx?.id,
1881
+ className: clsx18__default.default("ds-form__label", hasError && "ds-form__label--error", className),
1882
+ ...props
1883
+ }
1884
+ );
1885
+ });
1886
+ FormLabel.displayName = "FormLabel";
1887
+ var FormControl = React20__default.default.forwardRef(
1888
+ ({ className, children, ...props }, ref) => {
1889
+ const fieldCtx = React20__default.default.useContext(FormFieldContext);
1890
+ const descriptionId = fieldCtx ? `${fieldCtx.id}-description` : void 0;
1891
+ const messageId = fieldCtx ? `${fieldCtx.id}-message` : void 0;
1892
+ const hasError = !!fieldCtx?.error;
1893
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx18__default.default("ds-form__control", className), ...props, children: React20__default.default.isValidElement(children) ? React20__default.default.cloneElement(children, {
1894
+ id: fieldCtx?.id,
1895
+ "aria-describedby": descriptionId,
1896
+ "aria-invalid": hasError || void 0,
1897
+ "aria-errormessage": hasError ? messageId : void 0
1898
+ }) : children });
1899
+ }
1900
+ );
1901
+ FormControl.displayName = "FormControl";
1902
+ var FormDescription = React20__default.default.forwardRef(({ className, ...props }, ref) => {
1903
+ const fieldCtx = React20__default.default.useContext(FormFieldContext);
1904
+ return /* @__PURE__ */ jsxRuntime.jsx(
1905
+ "p",
1906
+ {
1907
+ ref,
1908
+ id: fieldCtx ? `${fieldCtx.id}-description` : void 0,
1909
+ className: clsx18__default.default("ds-form__description", className),
1910
+ ...props
1911
+ }
1912
+ );
1913
+ });
1914
+ FormDescription.displayName = "FormDescription";
1915
+ var FormMessage = React20__default.default.forwardRef(({ className, children, ...props }, ref) => {
1916
+ const fieldCtx = React20__default.default.useContext(FormFieldContext);
1917
+ const message = children ?? fieldCtx?.error;
1918
+ if (!message) return null;
1919
+ return /* @__PURE__ */ jsxRuntime.jsx(
1920
+ "p",
1921
+ {
1922
+ ref,
1923
+ id: fieldCtx ? `${fieldCtx.id}-message` : void 0,
1924
+ role: "alert",
1925
+ className: clsx18__default.default("ds-form__message", className),
1926
+ ...props,
1927
+ children: message
1928
+ }
1929
+ );
1930
+ });
1931
+ FormMessage.displayName = "FormMessage";
1932
+ var MAX_RESPONSIVE_COLS = 6;
1933
+ var Grid = React20.forwardRef(
1934
+ ({ columns, rows, align, justify, fixed, className, style, ...props }, ref) => {
1935
+ const useColClass = typeof columns === "number" && columns >= 1 && columns <= MAX_RESPONSIVE_COLS;
1936
+ return /* @__PURE__ */ jsxRuntime.jsx(
1937
+ chunkMDB2WCRQ_cjs.Box,
1938
+ {
1939
+ ref,
1940
+ className: clsx18__default.default(
1941
+ "ds-grid",
1942
+ useColClass && `ds-grid--cols-${columns}`,
1943
+ fixed && "ds-grid--fixed",
1944
+ className
1945
+ ),
1946
+ style: {
1947
+ gridTemplateColumns: useColClass ? void 0 : typeof columns === "number" ? `repeat(${columns}, 1fr)` : columns,
1948
+ gridTemplateRows: typeof rows === "number" ? `repeat(${rows}, 1fr)` : rows,
1949
+ alignItems: align,
1950
+ justifyItems: justify,
1951
+ ...style
1952
+ },
1953
+ ...props
1954
+ }
1955
+ );
1956
+ }
1957
+ );
1958
+ Grid.displayName = "Grid";
1959
+ var Section = React20.forwardRef(
1960
+ ({ padding = "md", className, children, ...props }, ref) => {
1961
+ return /* @__PURE__ */ jsxRuntime.jsx(
1962
+ "section",
1963
+ {
1964
+ ref,
1965
+ className: clsx18__default.default("ds-section-block", `ds-section-block--${padding}`, className),
1966
+ ...props,
1967
+ children
1968
+ }
1969
+ );
1970
+ }
1971
+ );
1972
+ Section.displayName = "Section";
1973
+ var VisuallyHidden = React20.forwardRef(
1974
+ ({ className, ...props }, ref) => {
1975
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { ref, className: clsx18__default.default("ds-visually-hidden", className), ...props });
1976
+ }
1977
+ );
1978
+ VisuallyHidden.displayName = "VisuallyHidden";
1979
+ var StatusBadge = React20__default.default.forwardRef(
1980
+ ({ variant = "default", size = "md", dot = false, className, children }, ref) => {
1981
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1982
+ "span",
1983
+ {
1984
+ ref,
1985
+ className: clsx18__default.default(
1986
+ "ds-status-badge",
1987
+ `ds-status-badge--${variant}`,
1988
+ `ds-status-badge--${size}`,
1989
+ dot && "ds-status-badge--dot",
1990
+ className
1991
+ ),
1992
+ children: [
1993
+ dot && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-status-badge__dot" }),
1994
+ children
1995
+ ]
1996
+ }
1997
+ );
1998
+ }
1999
+ );
2000
+ StatusBadge.displayName = "StatusBadge";
2001
+ var DefaultIcons = {
2002
+ info: /* @__PURE__ */ jsxRuntime.jsxs(
2003
+ "svg",
2004
+ {
2005
+ width: "20",
2006
+ height: "20",
2007
+ viewBox: "0 0 24 24",
2008
+ fill: "none",
2009
+ stroke: "currentColor",
2010
+ strokeWidth: "2",
2011
+ strokeLinecap: "round",
2012
+ strokeLinejoin: "round",
2013
+ children: [
2014
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
2015
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
2016
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
2017
+ ]
2018
+ }
2019
+ ),
2020
+ success: /* @__PURE__ */ jsxRuntime.jsxs(
2021
+ "svg",
2022
+ {
2023
+ width: "20",
2024
+ height: "20",
2025
+ viewBox: "0 0 24 24",
2026
+ fill: "none",
2027
+ stroke: "currentColor",
2028
+ strokeWidth: "2",
2029
+ strokeLinecap: "round",
2030
+ strokeLinejoin: "round",
2031
+ children: [
2032
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }),
2033
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "22 4 12 14.01 9 11.01" })
2034
+ ]
2035
+ }
2036
+ ),
2037
+ warning: /* @__PURE__ */ jsxRuntime.jsxs(
2038
+ "svg",
2039
+ {
2040
+ width: "20",
2041
+ height: "20",
2042
+ viewBox: "0 0 24 24",
2043
+ fill: "none",
2044
+ stroke: "currentColor",
2045
+ strokeWidth: "2",
2046
+ strokeLinecap: "round",
2047
+ strokeLinejoin: "round",
2048
+ children: [
2049
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }),
2050
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
2051
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
2052
+ ]
2053
+ }
2054
+ ),
2055
+ error: /* @__PURE__ */ jsxRuntime.jsxs(
2056
+ "svg",
2057
+ {
2058
+ width: "20",
2059
+ height: "20",
2060
+ viewBox: "0 0 24 24",
2061
+ fill: "none",
2062
+ stroke: "currentColor",
2063
+ strokeWidth: "2",
2064
+ strokeLinecap: "round",
2065
+ strokeLinejoin: "round",
2066
+ children: [
2067
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
2068
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
2069
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
2070
+ ]
2071
+ }
2072
+ )
2073
+ };
2074
+ var Alert = React20__default.default.forwardRef(
2075
+ ({ className, variant = "info", title, icon, children, ...props }, ref) => {
2076
+ const renderedIcon = icon || DefaultIcons[variant];
2077
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2078
+ "div",
2079
+ {
2080
+ ref,
2081
+ role: "alert",
2082
+ className: clsx18__default.default("ds-alert", `ds-alert--${variant}`, className),
2083
+ ...props,
2084
+ children: [
2085
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-alert__icon", "aria-hidden": "true", children: renderedIcon }),
2086
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-alert__content", children: [
2087
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-alert__title", children: title }),
2088
+ children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-alert__description", children })
2089
+ ] })
2090
+ ]
2091
+ }
2092
+ );
2093
+ }
2094
+ );
2095
+ Alert.displayName = "Alert";
2096
+ var ToastContext = React20.createContext(void 0);
2097
+ var useToast = () => {
2098
+ const context = React20.useContext(ToastContext);
2099
+ if (!context) {
2100
+ throw new Error("useToast must be used within a ToastProvider");
2101
+ }
2102
+ return context;
2103
+ };
2104
+ var ToastItem = ({
2105
+ title,
2106
+ description,
2107
+ variant = "info",
2108
+ action,
2109
+ onDismiss,
2110
+ dismissLabel = "Close"
2111
+ }) => {
2112
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("ds-toast-root", `ds-toast--${variant}`), "data-state": "open", role: "alert", children: [
2113
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-toast-title", children: title }),
2114
+ description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-toast-description", children: description }),
2115
+ action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-toast-action", children: action }),
2116
+ /* @__PURE__ */ jsxRuntime.jsx(
2117
+ "button",
2118
+ {
2119
+ onClick: onDismiss,
2120
+ style: {
2121
+ background: "transparent",
2122
+ border: "none",
2123
+ color: "var(--text-tertiary)",
2124
+ cursor: "pointer",
2125
+ padding: "4px",
2126
+ marginLeft: "auto",
2127
+ gridColumn: "action",
2128
+ alignSelf: "start"
2129
+ },
2130
+ "aria-label": dismissLabel,
2131
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
2132
+ "svg",
2133
+ {
2134
+ width: "14",
2135
+ height: "14",
2136
+ viewBox: "0 0 24 24",
2137
+ fill: "none",
2138
+ stroke: "currentColor",
2139
+ strokeWidth: "2",
2140
+ strokeLinecap: "round",
2141
+ strokeLinejoin: "round",
2142
+ children: [
2143
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
2144
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
2145
+ ]
2146
+ }
2147
+ )
2148
+ }
2149
+ )
2150
+ ] });
2151
+ };
2152
+ var ToastProvider = ({ children }) => {
2153
+ const [toasts, setToasts] = React20.useState([]);
2154
+ const [mounted, setMounted] = React20.useState(false);
2155
+ const idCounter = React20.useRef(0);
2156
+ React20.useEffect(() => setMounted(true), []);
2157
+ const removeToast = React20.useCallback((id) => {
2158
+ setToasts((prev) => prev.filter((t) => t.id !== id));
2159
+ }, []);
2160
+ const addToast = React20.useCallback(
2161
+ ({ duration = 5e3, ...props }) => {
2162
+ const id = `toast-${++idCounter.current}`;
2163
+ const newToast = { ...props, id, duration };
2164
+ setToasts((prev) => [...prev, newToast]);
2165
+ if (duration !== Infinity) {
2166
+ setTimeout(() => {
2167
+ removeToast(id);
2168
+ }, duration);
2169
+ }
2170
+ },
2171
+ [removeToast]
2172
+ );
2173
+ return /* @__PURE__ */ jsxRuntime.jsxs(ToastContext.Provider, { value: { addToast, removeToast }, children: [
2174
+ children,
2175
+ mounted && ReactDOM.createPortal(
2176
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-toast-viewport", children: toasts.map((toast) => /* @__PURE__ */ jsxRuntime.jsx(ToastItem, { ...toast, onDismiss: () => removeToast(toast.id) }, toast.id)) }),
2177
+ document.body
2178
+ )
2179
+ ] });
2180
+ };
2181
+ var EmptyState = React20__default.default.forwardRef(
2182
+ ({ icon, title, description, action, className, ...props }, ref) => {
2183
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx18__default.default("ds-empty-state", className), ...props, children: [
2184
+ icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-empty-state__icon", children: icon }),
2185
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-empty-state__title", children: title }),
2186
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-empty-state__description", children: description }),
2187
+ action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-empty-state__action", children: action })
2188
+ ] });
2189
+ }
2190
+ );
2191
+ EmptyState.displayName = "EmptyState";
2192
+
2193
+ // src/tokens/colors.ts
2194
+ var COLORS = {
2195
+ text: {
2196
+ primary: "var(--text-primary)",
2197
+ secondary: "var(--text-secondary)",
2198
+ tertiary: "var(--text-tertiary)",
2199
+ disabled: "var(--text-disabled)"
2200
+ },
2201
+ glass: {
2202
+ base: "var(--glass-base)",
2203
+ baseHover: "var(--glass-base-hover)",
2204
+ baseActive: "var(--glass-base-active)",
2205
+ backdrop: "var(--glass-backdrop)"
2206
+ },
2207
+ rim: {
2208
+ top: "var(--rim-light-top)",
2209
+ bottom: "var(--rim-light-bottom)"
2210
+ },
2211
+ brand: {
2212
+ pink: "var(--brand-pink)",
2213
+ yellow: "var(--brand-yellow)",
2214
+ pinkGlow: "var(--brand-pink-glow)"
2215
+ },
2216
+ status: {
2217
+ success: "var(--status-success)",
2218
+ warning: "var(--status-warning)",
2219
+ error: "var(--status-error)",
2220
+ info: "var(--status-info)"
2221
+ },
2222
+ button: {
2223
+ primaryBg: "var(--btn-primary-bg)",
2224
+ primaryBgHover: "var(--btn-primary-bg-hover)",
2225
+ secondaryBg: "var(--btn-secondary-bg)",
2226
+ secondaryBgHover: "var(--btn-secondary-bg-hover)"
2227
+ }
2228
+ };
2229
+
2230
+ // src/tokens/typography.ts
2231
+ var FONT_FAMILY = {
2232
+ sans: "var(--font-family)",
2233
+ mono: "var(--font-family-mono)"
2234
+ };
2235
+ var FONT_SIZE = {
2236
+ xs: "var(--font-size-xs)",
2237
+ sm: "var(--font-size-sm)",
2238
+ base: "var(--font-size-base)",
2239
+ lg: "var(--font-size-lg)",
2240
+ xl: "var(--font-size-xl)",
2241
+ "2xl": "var(--font-size-2xl)",
2242
+ "3xl": "var(--font-size-3xl)"
2243
+ };
2244
+ var FONT_WEIGHT = {
2245
+ normal: "var(--font-weight-normal)",
2246
+ medium: "var(--font-weight-medium)",
2247
+ semibold: "var(--font-weight-semibold)",
2248
+ bold: "var(--font-weight-bold)"
2249
+ };
2250
+ var LINE_HEIGHT = {
2251
+ tight: "var(--line-height-tight)",
2252
+ normal: "var(--line-height-normal)",
2253
+ relaxed: "var(--line-height-relaxed)"
2254
+ };
2255
+
2256
+ // src/tokens/radius.ts
2257
+ var RADIUS = {
2258
+ panel: "var(--radius-panel)",
2259
+ card: "var(--radius-card)",
2260
+ button: "var(--radius-button)",
2261
+ badge: "var(--radius-badge)",
2262
+ pill: "var(--radius-pill)"
2263
+ };
2264
+
2265
+ // src/tokens/shadows.ts
2266
+ var SHADOWS = {
2267
+ glass: {
2268
+ outer: "var(--glass-shadow-outer)",
2269
+ inner: "var(--glass-shadow-inner)",
2270
+ combined: "var(--glass-shadow-combined)",
2271
+ elevated: "var(--glass-shadow-elevated)",
2272
+ elevatedCombined: "var(--glass-shadow-elevated-combined)"
2273
+ },
2274
+ interactive: {
2275
+ rest: "var(--shadow-interactive-rest)",
2276
+ restSubtle: "var(--shadow-interactive-rest-subtle)",
2277
+ restLight: "var(--shadow-interactive-rest-light)",
2278
+ hover: "var(--shadow-interactive-hover)",
2279
+ hoverSubtle: "var(--shadow-interactive-hover-subtle)",
2280
+ active: "var(--shadow-interactive-active)"
2281
+ }
2282
+ };
2283
+
2284
+ // src/tokens/z-index.ts
2285
+ var Z_INDEX = {
2286
+ void: "var(--z-void)",
2287
+ glassPanel: "var(--z-glass-panel)",
2288
+ ornament: "var(--z-ornament)",
2289
+ dropdown: "var(--z-dropdown)",
2290
+ modalBackdrop: "var(--z-modal-backdrop)",
2291
+ modal: "var(--z-modal)",
2292
+ tooltip: "var(--z-tooltip)"
2293
+ };
2294
+
2295
+ // src/tokens/breakpoints.ts
2296
+ var BREAKPOINTS = {
2297
+ "3xs": 320,
2298
+ "2xs": 375,
2299
+ xs: 480,
2300
+ sm: 640,
2301
+ md: 768,
2302
+ lg: 1024,
2303
+ xl: 1280,
2304
+ "2xl": 1536,
2305
+ "3xl": 1920,
2306
+ "4xl": 2560,
2307
+ "5xl": 3840
2308
+ };
2309
+ var MEDIA_QUERIES = {
2310
+ "3xs": `(min-width: ${BREAKPOINTS["3xs"]}px)`,
2311
+ "2xs": `(min-width: ${BREAKPOINTS["2xs"]}px)`,
2312
+ xs: `(min-width: ${BREAKPOINTS.xs}px)`,
2313
+ sm: `(min-width: ${BREAKPOINTS.sm}px)`,
2314
+ md: `(min-width: ${BREAKPOINTS.md}px)`,
2315
+ lg: `(min-width: ${BREAKPOINTS.lg}px)`,
2316
+ xl: `(min-width: ${BREAKPOINTS.xl}px)`,
2317
+ "2xl": `(min-width: ${BREAKPOINTS["2xl"]}px)`,
2318
+ "3xl": `(min-width: ${BREAKPOINTS["3xl"]}px)`,
2319
+ "4xl": `(min-width: ${BREAKPOINTS["4xl"]}px)`,
2320
+ "5xl": `(min-width: ${BREAKPOINTS["5xl"]}px)`
2321
+ };
2322
+
2323
+ exports.Accordion = Accordion;
2324
+ exports.AccordionContent = AccordionContent;
2325
+ exports.AccordionItem = AccordionItem;
2326
+ exports.AccordionTrigger = AccordionTrigger;
2327
+ exports.Alert = Alert;
2328
+ exports.AspectRatio = AspectRatio;
2329
+ exports.BREAKPOINTS = BREAKPOINTS;
2330
+ exports.ButtonGroup = ButtonGroup;
2331
+ exports.COLORS = COLORS;
2332
+ exports.Calendar = Calendar;
2333
+ exports.Card = Card;
2334
+ exports.CardContent = CardContent;
2335
+ exports.CardDescription = CardDescription;
2336
+ exports.CardFooter = CardFooter;
2337
+ exports.CardHeader = CardHeader;
2338
+ exports.CardTitle = CardTitle;
2339
+ exports.Carousel = Carousel;
2340
+ exports.CarouselContent = CarouselContent;
2341
+ exports.CarouselItem = CarouselItem;
2342
+ exports.CarouselNext = CarouselNext;
2343
+ exports.CarouselPrevious = CarouselPrevious;
2344
+ exports.Collapsible = Collapsible;
2345
+ exports.CollapsibleContent = CollapsibleContent;
2346
+ exports.CollapsibleTrigger = CollapsibleTrigger;
2347
+ exports.Command = Command;
2348
+ exports.CommandDialog = CommandDialog;
2349
+ exports.CommandEmpty = CommandEmpty;
2350
+ exports.CommandGroup = CommandGroup;
2351
+ exports.CommandInput = CommandInput;
2352
+ exports.CommandItem = CommandItem;
2353
+ exports.CommandList = CommandList;
2354
+ exports.CommandSeparator = CommandSeparator;
2355
+ exports.ContextMenu = ContextMenu;
2356
+ exports.ContextMenuContent = ContextMenuContent;
2357
+ exports.ContextMenuItem = ContextMenuItem;
2358
+ exports.ContextMenuLabel = ContextMenuLabel;
2359
+ exports.ContextMenuSeparator = ContextMenuSeparator;
2360
+ exports.ContextMenuTrigger = ContextMenuTrigger;
2361
+ exports.Drawer = Drawer;
2362
+ exports.DrawerClose = DrawerClose;
2363
+ exports.DrawerContent = DrawerContent;
2364
+ exports.DrawerDescription = DrawerDescription;
2365
+ exports.DrawerFooter = DrawerFooter;
2366
+ exports.DrawerHeader = DrawerHeader;
2367
+ exports.DrawerTitle = DrawerTitle;
2368
+ exports.DrawerTrigger = DrawerTrigger;
2369
+ exports.EmptyState = EmptyState;
2370
+ exports.FONT_FAMILY = FONT_FAMILY;
2371
+ exports.FONT_SIZE = FONT_SIZE;
2372
+ exports.FONT_WEIGHT = FONT_WEIGHT;
2373
+ exports.FormControl = FormControl;
2374
+ exports.FormDescription = FormDescription;
2375
+ exports.FormField = FormField;
2376
+ exports.FormItem = FormItem;
2377
+ exports.FormLabel = FormLabel;
2378
+ exports.FormMessage = FormMessage;
2379
+ exports.Grid = Grid;
2380
+ exports.Heading = Heading;
2381
+ exports.HoverCard = HoverCard;
2382
+ exports.HoverCardContent = HoverCardContent;
2383
+ exports.HoverCardTrigger = HoverCardTrigger;
2384
+ exports.InputOTP = InputOTP;
2385
+ exports.InputOTPGroup = InputOTPGroup;
2386
+ exports.InputOTPSeparator = InputOTPSeparator;
2387
+ exports.InputOTPSlot = InputOTPSlot;
2388
+ exports.LINE_HEIGHT = LINE_HEIGHT;
2389
+ exports.Label = Label;
2390
+ exports.MEDIA_QUERIES = MEDIA_QUERIES;
2391
+ exports.Pagination = Pagination;
2392
+ exports.PaginationContent = PaginationContent;
2393
+ exports.PaginationEllipsis = PaginationEllipsis;
2394
+ exports.PaginationItem = PaginationItem;
2395
+ exports.PaginationLink = PaginationLink;
2396
+ exports.PaginationNext = PaginationNext;
2397
+ exports.PaginationPrevious = PaginationPrevious;
2398
+ exports.Popover = Popover;
2399
+ exports.PopoverClose = PopoverClose;
2400
+ exports.PopoverContent = PopoverContent;
2401
+ exports.PopoverTrigger = PopoverTrigger;
2402
+ exports.Progress = Progress;
2403
+ exports.Prose = Prose;
2404
+ exports.RADIUS = RADIUS;
2405
+ exports.Radio = Radio;
2406
+ exports.RadioGroup = RadioGroup;
2407
+ exports.SHADOWS = SHADOWS;
2408
+ exports.ScrollArea = ScrollArea;
2409
+ exports.ScrollBar = ScrollBar;
2410
+ exports.Section = Section;
2411
+ exports.Separator = Separator;
2412
+ exports.Sheet = Sheet;
2413
+ exports.SheetClose = SheetClose;
2414
+ exports.SheetContent = SheetContent;
2415
+ exports.SheetDescription = SheetDescription;
2416
+ exports.SheetFooter = SheetFooter;
2417
+ exports.SheetHeader = SheetHeader;
2418
+ exports.SheetTitle = SheetTitle;
2419
+ exports.SheetTrigger = SheetTrigger;
2420
+ exports.Skeleton = Skeleton;
2421
+ exports.StatusBadge = StatusBadge;
2422
+ exports.Switch = Switch;
2423
+ exports.Text = Text;
2424
+ exports.TextArea = TextArea;
2425
+ exports.ToastContext = ToastContext;
2426
+ exports.ToastItem = ToastItem;
2427
+ exports.ToastProvider = ToastProvider;
2428
+ exports.Toggle = Toggle;
2429
+ exports.VisuallyHidden = VisuallyHidden;
2430
+ exports.Z_INDEX = Z_INDEX;
2431
+ exports.useFormField = useFormField;
2432
+ exports.useToast = useToast;
2433
+ //# sourceMappingURL=out.js.map
2434
+ //# sourceMappingURL=chunk-5LGDEZWY.cjs.map