@efiche/design 0.2.13 → 0.2.14

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.
package/dist/index.cjs CHANGED
@@ -52,10 +52,8 @@ var index_exports = {};
52
52
  __export(index_exports, {
53
53
  Accordion: () => Accordion_default,
54
54
  Alert: () => Alert_default,
55
- AreaChart: () => AreaChart_default,
56
55
  Avatar: () => Avatar_default,
57
56
  Badge: () => Badge_default,
58
- BarChart: () => BarChart_default,
59
57
  Breadcrumb: () => Breadcrumb_default,
60
58
  Button: () => Button_default,
61
59
  Card: () => Card,
@@ -69,9 +67,7 @@ __export(index_exports, {
69
67
  FileUpload: () => FileUpload_default,
70
68
  Input: () => Input_default,
71
69
  Label: () => Label_default,
72
- LineChart: () => LineChart_default,
73
70
  PasswordInput: () => PasswordInput_default,
74
- PieChart: () => PieChart_default,
75
71
  Progress: () => Progress_default,
76
72
  RadioGroup: () => RadioGroup_default,
77
73
  Select: () => Select_default,
@@ -110,270 +106,17 @@ var useTheme = () => {
110
106
  return ctx;
111
107
  };
112
108
 
113
- // src/components/Charts/LineChart.tsx
114
- var import_react2 = require("react");
115
- var import_recharts = require("recharts");
116
-
117
- // src/components/Charts/chartUtils.ts
118
- var CHART_COLORS = [
119
- "#3b82f6",
120
- // blue
121
- "#22c55e",
122
- // green
123
- "#f59e0b",
124
- // amber
125
- "#ef4444",
126
- // red
127
- "#8b5cf6",
128
- // violet
129
- "#06b6d4",
130
- // cyan
131
- "#f97316",
132
- // orange
133
- "#ec4899"
134
- // pink
135
- ];
136
- function getChartTheme(theme) {
137
- const isDark = theme === "dark";
138
- return {
139
- gridColor: isDark ? "#334155" : "#e2e8f0",
140
- axisStroke: isDark ? "#94a3b8" : "#64748b",
141
- axisTick: { fill: isDark ? "#94a3b8" : "#64748b", fontSize: 12 },
142
- primaryColor: isDark ? "#60a5fa" : "#3b82f6",
143
- tooltipStyle: {
144
- backgroundColor: isDark ? "#1e293b" : "#ffffff",
145
- border: `1px solid ${isDark ? "#334155" : "#e2e8f0"}`,
146
- borderRadius: "6px",
147
- color: isDark ? "#f1f5f9" : "#0f172a",
148
- fontSize: "0.8125rem"
149
- }
150
- };
151
- }
152
-
153
- // src/components/Charts/LineChart.tsx
154
- var import_jsx_runtime2 = require("react/jsx-runtime");
155
- var LineChart = ({
156
- data,
157
- xKey,
158
- lines,
159
- height = 250,
160
- legend = false,
161
- grid = true,
162
- theme = "light",
163
- className,
164
- style
165
- }) => {
166
- const containerRef = (0, import_react2.useRef)(null);
167
- const [width, setWidth] = (0, import_react2.useState)(0);
168
- const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
169
- (0, import_react2.useEffect)(() => {
170
- if (!containerRef.current) return;
171
- const measure = () => setWidth(containerRef.current.offsetWidth);
172
- measure();
173
- const ro = new ResizeObserver(measure);
174
- ro.observe(containerRef.current);
175
- return () => ro.disconnect();
176
- }, []);
177
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_recharts.LineChart, { width, height, data, children: [
178
- grid && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3", stroke: gridColor }),
179
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.XAxis, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
180
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.YAxis, { stroke: axisStroke, tick: axisTick }),
181
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.Tooltip, { contentStyle: tooltipStyle }),
182
- legend && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.Legend, {}),
183
- lines.map((line, i) => {
184
- var _a, _b;
185
- const color = (_a = line.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
186
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
187
- import_recharts.Line,
188
- {
189
- type: "monotone",
190
- dataKey: line.dataKey,
191
- name: (_b = line.label) != null ? _b : line.dataKey,
192
- stroke: color,
193
- strokeWidth: 2,
194
- dot: { fill: color, r: 4 },
195
- activeDot: { r: 6 },
196
- isAnimationActive: false
197
- },
198
- line.dataKey
199
- );
200
- })
201
- ] }) });
202
- };
203
- var LineChart_default = LineChart;
204
-
205
- // src/components/Charts/BarChart.tsx
206
- var import_react3 = require("react");
207
- var import_recharts2 = require("recharts");
208
- var import_jsx_runtime3 = require("react/jsx-runtime");
209
- var BarChart = ({
210
- data,
211
- xKey,
212
- bars,
213
- height = 250,
214
- legend = false,
215
- grid = true,
216
- theme = "light",
217
- className,
218
- style
219
- }) => {
220
- const containerRef = (0, import_react3.useRef)(null);
221
- const [width, setWidth] = (0, import_react3.useState)(0);
222
- const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
223
- (0, import_react3.useEffect)(() => {
224
- if (!containerRef.current) return;
225
- const measure = () => setWidth(containerRef.current.offsetWidth);
226
- measure();
227
- const ro = new ResizeObserver(measure);
228
- ro.observe(containerRef.current);
229
- return () => ro.disconnect();
230
- }, []);
231
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_recharts2.BarChart, { width, height, data, children: [
232
- grid && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.CartesianGrid, { strokeDasharray: "3 3", stroke: gridColor }),
233
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.XAxis, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
234
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.YAxis, { stroke: axisStroke, tick: axisTick }),
235
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.Tooltip, { contentStyle: tooltipStyle }),
236
- legend && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.Legend, {}),
237
- bars.map((bar, i) => {
238
- var _a, _b;
239
- const color = (_a = bar.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
240
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
241
- import_recharts2.Bar,
242
- {
243
- dataKey: bar.dataKey,
244
- name: (_b = bar.label) != null ? _b : bar.dataKey,
245
- fill: color,
246
- stackId: bar.stackId,
247
- isAnimationActive: false
248
- },
249
- bar.dataKey
250
- );
251
- })
252
- ] }) });
253
- };
254
- var BarChart_default = BarChart;
255
-
256
- // src/components/Charts/AreaChart.tsx
257
- var import_react4 = require("react");
258
- var import_recharts3 = require("recharts");
259
- var import_jsx_runtime4 = require("react/jsx-runtime");
260
- var AreaChart = ({
261
- data,
262
- xKey,
263
- areas,
264
- height = 250,
265
- legend = false,
266
- grid = true,
267
- theme = "light",
268
- className,
269
- style
270
- }) => {
271
- const containerRef = (0, import_react4.useRef)(null);
272
- const [width, setWidth] = (0, import_react4.useState)(0);
273
- const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
274
- (0, import_react4.useEffect)(() => {
275
- if (!containerRef.current) return;
276
- const measure = () => setWidth(containerRef.current.offsetWidth);
277
- measure();
278
- const ro = new ResizeObserver(measure);
279
- ro.observe(containerRef.current);
280
- return () => ro.disconnect();
281
- }, []);
282
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_recharts3.AreaChart, { width, height, data, children: [
283
- grid && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.CartesianGrid, { strokeDasharray: "3 3", stroke: gridColor }),
284
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.XAxis, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
285
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.YAxis, { stroke: axisStroke, tick: axisTick }),
286
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.Tooltip, { contentStyle: tooltipStyle }),
287
- legend && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.Legend, {}),
288
- areas.map((area, i) => {
289
- var _a, _b, _c;
290
- const color = (_a = area.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
291
- const opacity = (_b = area.fillOpacity) != null ? _b : area.stackId ? 0.4 : 0.15;
292
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
293
- import_recharts3.Area,
294
- {
295
- type: "monotone",
296
- dataKey: area.dataKey,
297
- name: (_c = area.label) != null ? _c : area.dataKey,
298
- stroke: color,
299
- fill: color,
300
- fillOpacity: opacity,
301
- strokeWidth: 2,
302
- stackId: area.stackId,
303
- isAnimationActive: false
304
- },
305
- area.dataKey
306
- );
307
- })
308
- ] }) });
309
- };
310
- var AreaChart_default = AreaChart;
311
-
312
- // src/components/Charts/PieChart.tsx
313
- var import_react5 = require("react");
314
- var import_recharts4 = require("recharts");
315
- var import_jsx_runtime5 = require("react/jsx-runtime");
316
- var PieChart = ({
317
- data,
318
- height = 250,
319
- donut = false,
320
- legend = false,
321
- label = false,
322
- theme = "light",
323
- className,
324
- style
325
- }) => {
326
- const containerRef = (0, import_react5.useRef)(null);
327
- const [width, setWidth] = (0, import_react5.useState)(0);
328
- const { tooltipStyle } = getChartTheme(theme);
329
- (0, import_react5.useEffect)(() => {
330
- if (!containerRef.current) return;
331
- const measure = () => setWidth(containerRef.current.offsetWidth);
332
- measure();
333
- const ro = new ResizeObserver(measure);
334
- ro.observe(containerRef.current);
335
- return () => ro.disconnect();
336
- }, []);
337
- const dataWithColors = data.map((item, i) => {
338
- var _a;
339
- return __spreadProps(__spreadValues({}, item), {
340
- fill: (_a = item.fill) != null ? _a : CHART_COLORS[i % CHART_COLORS.length]
341
- });
342
- });
343
- const outerRadius = 90;
344
- const innerRadius = donut ? 55 : 0;
345
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_recharts4.PieChart, { width, height, children: [
346
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
347
- import_recharts4.Pie,
348
- {
349
- data: dataWithColors,
350
- cx: "50%",
351
- cy: "50%",
352
- outerRadius,
353
- innerRadius,
354
- dataKey: "value",
355
- label: label ? ({ name, percent }) => `${name} ${((percent != null ? percent : 0) * 100).toFixed(0)}%` : void 0,
356
- labelLine: label,
357
- isAnimationActive: false
358
- }
359
- ),
360
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_recharts4.Tooltip, { contentStyle: tooltipStyle }),
361
- legend && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_recharts4.Legend, {})
362
- ] }) });
363
- };
364
- var PieChart_default = PieChart;
365
-
366
109
  // src/components/Accordion/Accordion.tsx
367
- var import_react6 = require("react");
110
+ var import_react2 = require("react");
368
111
  var import_lucide_react = require("lucide-react");
369
- var import_jsx_runtime6 = require("react/jsx-runtime");
112
+ var import_jsx_runtime2 = require("react/jsx-runtime");
370
113
  var Accordion = ({ items, defaultValue, multiple = false }) => {
371
- const [open, setOpen] = (0, import_react6.useState)(() => {
114
+ const [open, setOpen] = (0, import_react2.useState)(() => {
372
115
  if (!defaultValue) return /* @__PURE__ */ new Set();
373
116
  if (Array.isArray(defaultValue)) return new Set(defaultValue);
374
117
  return /* @__PURE__ */ new Set([defaultValue]);
375
118
  });
376
- const [hovered, setHovered] = (0, import_react6.useState)(null);
119
+ const [hovered, setHovered] = (0, import_react2.useState)(null);
377
120
  const toggle = (value) => {
378
121
  setOpen((prev) => {
379
122
  const next = new Set(prev);
@@ -386,7 +129,7 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
386
129
  return next;
387
130
  });
388
131
  };
389
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: {
132
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: {
390
133
  border: "1px solid var(--ds-border, #e2e8f0)",
391
134
  borderRadius: "0.5rem",
392
135
  overflow: "hidden"
@@ -394,14 +137,14 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
394
137
  const isOpen = open.has(item.value);
395
138
  const isHovered = hovered === item.value;
396
139
  const isLast = index === items.length - 1;
397
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
140
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
398
141
  "div",
399
142
  {
400
143
  style: {
401
144
  borderBottom: isLast ? "none" : "1px solid var(--ds-border, #e2e8f0)"
402
145
  },
403
146
  children: [
404
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
147
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
405
148
  "button",
406
149
  {
407
150
  style: {
@@ -424,8 +167,8 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
424
167
  onMouseLeave: () => setHovered(null),
425
168
  "aria-expanded": isOpen,
426
169
  children: [
427
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { children: item.trigger }),
428
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
170
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: item.trigger }),
171
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
429
172
  import_lucide_react.ChevronDown,
430
173
  {
431
174
  size: 16,
@@ -440,11 +183,11 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
440
183
  ]
441
184
  }
442
185
  ),
443
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: {
186
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: {
444
187
  maxHeight: isOpen ? "300px" : "0",
445
188
  overflow: "hidden",
446
189
  transition: "max-height 0.25s ease"
447
- }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: {
190
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: {
448
191
  padding: "0 1rem 1rem",
449
192
  fontSize: "0.875rem",
450
193
  color: "var(--ds-text-secondary, #64748b)"
@@ -459,7 +202,7 @@ var Accordion_default = Accordion;
459
202
 
460
203
  // src/components/Alert/Alert.tsx
461
204
  var import_lucide_react2 = require("lucide-react");
462
- var import_jsx_runtime7 = require("react/jsx-runtime");
205
+ var import_jsx_runtime3 = require("react/jsx-runtime");
463
206
  var variantMap = {
464
207
  info: { bg: "var(--ds-info-bg, #eff6ff)", border: "var(--ds-info, #3b82f6)", icon: "var(--ds-info, #3b82f6)", title: "var(--ds-info-title, #1e3a8a)", desc: "var(--ds-info-desc, #1e40af)" },
465
208
  success: { bg: "var(--ds-success-bg, #f0fdf4)", border: "var(--ds-success, #22c55e)", icon: "var(--ds-success, #22c55e)", title: "var(--ds-success-title, #14532d)", desc: "var(--ds-success-desc, #166534)" },
@@ -467,14 +210,14 @@ var variantMap = {
467
210
  danger: { bg: "var(--ds-danger-bg, #fef2f2)", border: "var(--ds-danger, #ef4444)", icon: "var(--ds-danger, #ef4444)", title: "var(--ds-danger-title, #7f1d1d)", desc: "var(--ds-danger-desc, #991b1b)" }
468
211
  };
469
212
  var icons = {
470
- info: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.Info, { size: 16 }),
471
- success: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.CheckCircle2, { size: 16 }),
472
- warning: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.AlertTriangle, { size: 16 }),
473
- danger: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.AlertCircle, { size: 16 })
213
+ info: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.Info, { size: 16 }),
214
+ success: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.CheckCircle2, { size: 16 }),
215
+ warning: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.AlertTriangle, { size: 16 }),
216
+ danger: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.AlertCircle, { size: 16 })
474
217
  };
475
218
  var Alert = ({ variant = "info", title, description }) => {
476
219
  const v = variantMap[variant];
477
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { role: "alert", style: {
220
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { role: "alert", style: {
478
221
  display: "flex",
479
222
  gap: "0.75rem",
480
223
  padding: "1rem",
@@ -482,23 +225,23 @@ var Alert = ({ variant = "info", title, description }) => {
482
225
  borderLeft: `4px solid ${v.border}`,
483
226
  backgroundColor: v.bg
484
227
  }, children: [
485
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { flexShrink: 0, marginTop: "0.125rem", color: v.icon }, children: icons[variant] }),
486
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { flex: 1 }, children: [
487
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontWeight: 600, fontSize: "0.875rem", marginBottom: "0.25rem", marginTop: 0, color: v.title }, children: title }),
488
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontSize: "0.875rem", margin: 0, color: v.desc }, children: description })
228
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { flexShrink: 0, marginTop: "0.125rem", color: v.icon }, children: icons[variant] }),
229
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { flex: 1 }, children: [
230
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: { fontWeight: 600, fontSize: "0.875rem", marginBottom: "0.25rem", marginTop: 0, color: v.title }, children: title }),
231
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: { fontSize: "0.875rem", margin: 0, color: v.desc }, children: description })
489
232
  ] })
490
233
  ] });
491
234
  };
492
235
  var Alert_default = Alert;
493
236
 
494
237
  // src/components/Avatar/Avatar.tsx
495
- var import_jsx_runtime8 = require("react/jsx-runtime");
238
+ var import_jsx_runtime4 = require("react/jsx-runtime");
496
239
  var sizeMap = {
497
240
  sm: { width: "2rem", height: "2rem", fontSize: "0.625rem" },
498
241
  md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
499
242
  lg: { width: "4rem", height: "4rem", fontSize: "1.25rem" }
500
243
  };
501
- var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
244
+ var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
502
245
  "div",
503
246
  {
504
247
  className,
@@ -520,7 +263,7 @@ var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ (0
520
263
  var Avatar_default = Avatar;
521
264
 
522
265
  // src/components/Badge/Badge.tsx
523
- var import_jsx_runtime9 = require("react/jsx-runtime");
266
+ var import_jsx_runtime5 = require("react/jsx-runtime");
524
267
  var variantMap2 = {
525
268
  default: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff" },
526
269
  secondary: { backgroundColor: "var(--ds-muted, #f1f5f9)", color: "var(--ds-text-secondary, #64748b)" },
@@ -535,7 +278,7 @@ var sizeMap2 = {
535
278
  md: { padding: "0.25rem 0.625rem", fontSize: "0.75rem" },
536
279
  lg: { padding: "0.375rem 0.875rem", fontSize: "0.875rem" }
537
280
  };
538
- var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: __spreadValues(__spreadValues(__spreadValues({
281
+ var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: __spreadValues(__spreadValues(__spreadValues({
539
282
  display: "inline-flex",
540
283
  alignItems: "center",
541
284
  gap: "0.25rem",
@@ -546,12 +289,12 @@ var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PUR
546
289
  var Badge_default = Badge;
547
290
 
548
291
  // src/components/Breadcrumb/Breadcrumb.tsx
549
- var import_react7 = require("react");
292
+ var import_react3 = require("react");
550
293
  var import_lucide_react3 = require("lucide-react");
551
- var import_jsx_runtime10 = require("react/jsx-runtime");
294
+ var import_jsx_runtime6 = require("react/jsx-runtime");
552
295
  var Breadcrumb = ({ items }) => {
553
- const [hovered, setHovered] = (0, import_react7.useState)(null);
554
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("ol", { style: {
296
+ const [hovered, setHovered] = (0, import_react3.useState)(null);
297
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("ol", { style: {
555
298
  display: "flex",
556
299
  flexWrap: "wrap",
557
300
  alignItems: "center",
@@ -562,8 +305,8 @@ var Breadcrumb = ({ items }) => {
562
305
  }, children: items.map((item, i) => {
563
306
  const isLast = i === items.length - 1;
564
307
  const isHovered = hovered === item.label;
565
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("li", { style: { display: "flex", alignItems: "center" }, children: [
566
- i > 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
308
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("li", { style: { display: "flex", alignItems: "center" }, children: [
309
+ i > 0 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
567
310
  import_lucide_react3.ChevronRight,
568
311
  {
569
312
  size: 14,
@@ -571,11 +314,11 @@ var Breadcrumb = ({ items }) => {
571
314
  style: { color: "var(--ds-text-secondary, #64748b)", margin: "0 0.25rem", flexShrink: 0 }
572
315
  }
573
316
  ),
574
- isLast || !item.href ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { style: {
317
+ isLast || !item.href ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: {
575
318
  color: isLast ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)",
576
319
  fontWeight: isLast ? 500 : void 0,
577
320
  cursor: isLast ? "default" : void 0
578
- }, children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
321
+ }, children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
579
322
  "a",
580
323
  {
581
324
  href: item.href,
@@ -596,8 +339,8 @@ var Breadcrumb_default = Breadcrumb;
596
339
 
597
340
  // src/components/Button/Button.tsx
598
341
  var import_lucide_react4 = require("lucide-react");
599
- var import_react8 = require("react");
600
- var import_jsx_runtime11 = require("react/jsx-runtime");
342
+ var import_react4 = require("react");
343
+ var import_jsx_runtime7 = require("react/jsx-runtime");
601
344
  var variantStyles = {
602
345
  solid: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff", borderColor: "transparent" },
603
346
  outline: { backgroundColor: "transparent", color: "var(--ds-primary, #3b82f6)", borderColor: "var(--ds-primary, #3b82f6)" },
@@ -659,7 +402,7 @@ var Button = (_a) => {
659
402
  "size",
660
403
  "style"
661
404
  ]);
662
- const [hovered, setHovered] = (0, import_react8.useState)(false);
405
+ const [hovered, setHovered] = (0, import_react4.useState)(false);
663
406
  const resolvedVariant = variant != null ? variant : danger ? "danger" : warning ? "warning" : info ? "info" : success ? "success" : ghost ? "ghost" : outline ? "outline" : "solid";
664
407
  const resolvedSize = size != null ? size : small ? "sm" : large ? "lg" : "md";
665
408
  const isDisabled = disabled || loading;
@@ -677,9 +420,9 @@ var Button = (_a) => {
677
420
  opacity: isDisabled ? 0.5 : 1,
678
421
  pointerEvents: loading ? "none" : void 0
679
422
  }, variantStyles[resolvedVariant]), sizeStyles[resolvedSize]), hovered && !isDisabled ? variantHoverStyles[resolvedVariant] : {}), styleProp);
680
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
681
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
682
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
423
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
424
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
425
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
683
426
  "button",
684
427
  __spreadProps(__spreadValues({
685
428
  disabled: isDisabled,
@@ -688,7 +431,7 @@ var Button = (_a) => {
688
431
  onMouseLeave: () => setHovered(false)
689
432
  }, props), {
690
433
  children: [
691
- loading ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
434
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
692
435
  import_lucide_react4.LoaderCircle,
693
436
  {
694
437
  "aria-hidden": true,
@@ -706,10 +449,10 @@ var Button = (_a) => {
706
449
  var Button_default = Button;
707
450
 
708
451
  // src/components/Card/Card.tsx
709
- var import_jsx_runtime12 = require("react/jsx-runtime");
452
+ var import_jsx_runtime8 = require("react/jsx-runtime");
710
453
  var Card = (_a) => {
711
454
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
712
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({
455
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", __spreadValues({ style: __spreadValues({
713
456
  border: "1px solid var(--ds-border, #e2e8f0)",
714
457
  borderRadius: "0.5rem",
715
458
  backgroundColor: "var(--ds-card, #ffffff)"
@@ -717,7 +460,7 @@ var Card = (_a) => {
717
460
  };
718
461
  var CardHeader = (_a) => {
719
462
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
720
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({
463
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", __spreadValues({ style: __spreadValues({
721
464
  display: "flex",
722
465
  flexDirection: "column",
723
466
  gap: "0.375rem",
@@ -726,7 +469,7 @@ var CardHeader = (_a) => {
726
469
  };
727
470
  var CardTitle = (_a) => {
728
471
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
729
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", __spreadValues({ style: __spreadValues({
472
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", __spreadValues({ style: __spreadValues({
730
473
  fontSize: "1rem",
731
474
  fontWeight: 600,
732
475
  color: "var(--ds-text-primary, #0f172a)",
@@ -736,7 +479,7 @@ var CardTitle = (_a) => {
736
479
  };
737
480
  var CardDescription = (_a) => {
738
481
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
739
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", __spreadValues({ style: __spreadValues({
482
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", __spreadValues({ style: __spreadValues({
740
483
  fontSize: "0.875rem",
741
484
  color: "var(--ds-text-secondary, #64748b)",
742
485
  margin: 0
@@ -744,11 +487,11 @@ var CardDescription = (_a) => {
744
487
  };
745
488
  var CardContent = (_a) => {
746
489
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
747
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({ padding: "1.5rem" }, style) }, props));
490
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", __spreadValues({ style: __spreadValues({ padding: "1.5rem" }, style) }, props));
748
491
  };
749
492
  var CardFooter = (_a) => {
750
493
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
751
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({
494
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", __spreadValues({ style: __spreadValues({
752
495
  display: "flex",
753
496
  alignItems: "center",
754
497
  padding: "0 1.5rem 1.5rem"
@@ -756,8 +499,8 @@ var CardFooter = (_a) => {
756
499
  };
757
500
 
758
501
  // src/components/Checkbox/Checkbox.tsx
759
- var import_react9 = require("react");
760
- var import_jsx_runtime13 = require("react/jsx-runtime");
502
+ var import_react5 = require("react");
503
+ var import_jsx_runtime9 = require("react/jsx-runtime");
761
504
  var Checkbox = ({
762
505
  label,
763
506
  checked,
@@ -766,7 +509,7 @@ var Checkbox = ({
766
509
  id,
767
510
  onChange
768
511
  }) => {
769
- const [internal, setInternal] = (0, import_react9.useState)(defaultChecked);
512
+ const [internal, setInternal] = (0, import_react5.useState)(defaultChecked);
770
513
  const isChecked = checked !== void 0 ? checked : internal;
771
514
  const handleChange = () => {
772
515
  if (disabled) return;
@@ -774,7 +517,7 @@ var Checkbox = ({
774
517
  setInternal(next);
775
518
  onChange == null ? void 0 : onChange(next);
776
519
  };
777
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("label", { htmlFor: id, style: {
520
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("label", { htmlFor: id, style: {
778
521
  display: "inline-flex",
779
522
  alignItems: "center",
780
523
  gap: "0.5rem",
@@ -782,7 +525,7 @@ var Checkbox = ({
782
525
  userSelect: "none",
783
526
  opacity: disabled ? 0.5 : 1
784
527
  }, children: [
785
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
528
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
786
529
  "input",
787
530
  {
788
531
  type: "checkbox",
@@ -793,7 +536,7 @@ var Checkbox = ({
793
536
  style: { position: "absolute", opacity: 0, width: 0, height: 0 }
794
537
  }
795
538
  ),
796
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { style: {
539
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: {
797
540
  width: "1.125rem",
798
541
  height: "1.125rem",
799
542
  border: `2px solid ${isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)"}`,
@@ -804,25 +547,25 @@ var Checkbox = ({
804
547
  flexShrink: 0,
805
548
  transition: "background-color 0.15s, border-color 0.15s",
806
549
  backgroundColor: isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-card, #fff)"
807
- }, children: isChecked && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { viewBox: "0 0 12 10", fill: "none", style: { width: "0.625rem", height: "0.625rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M1 5l3.5 3.5L11 1", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
808
- label && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
550
+ }, children: isChecked && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { viewBox: "0 0 12 10", fill: "none", style: { width: "0.625rem", height: "0.625rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M1 5l3.5 3.5L11 1", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
551
+ label && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
809
552
  ] });
810
553
  };
811
554
  var Checkbox_default = Checkbox;
812
555
 
813
556
  // src/components/CopyButton/CopyButton.tsx
814
557
  var import_lucide_react5 = require("lucide-react");
815
- var import_react10 = require("react");
816
- var import_jsx_runtime14 = require("react/jsx-runtime");
558
+ var import_react6 = require("react");
559
+ var import_jsx_runtime10 = require("react/jsx-runtime");
817
560
  var CopyButton = ({ text }) => {
818
- const [copied, setCopied] = (0, import_react10.useState)(false);
819
- const [hovered, setHovered] = (0, import_react10.useState)(false);
561
+ const [copied, setCopied] = (0, import_react6.useState)(false);
562
+ const [hovered, setHovered] = (0, import_react6.useState)(false);
820
563
  const handleCopy = () => {
821
564
  navigator.clipboard.writeText(text);
822
565
  setCopied(true);
823
566
  setTimeout(() => setCopied(false), 2e3);
824
567
  };
825
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
568
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
826
569
  "button",
827
570
  {
828
571
  onClick: handleCopy,
@@ -841,7 +584,7 @@ var CopyButton = ({ text }) => {
841
584
  cursor: "pointer",
842
585
  transition: "background-color 0.15s, color 0.15s"
843
586
  },
844
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react5.Check, { style: { width: "1rem", height: "1rem" } }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react5.Copy, { style: { width: "1rem", height: "1rem" } })
587
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react5.Check, { style: { width: "1rem", height: "1rem" } }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react5.Copy, { style: { width: "1rem", height: "1rem" } })
845
588
  }
846
589
  );
847
590
  };
@@ -849,19 +592,19 @@ var CopyButton_default = CopyButton;
849
592
 
850
593
  // src/components/FileUpload/FileUpload.tsx
851
594
  var import_lucide_react6 = require("lucide-react");
852
- var import_react11 = require("react");
853
- var import_jsx_runtime15 = require("react/jsx-runtime");
595
+ var import_react7 = require("react");
596
+ var import_jsx_runtime11 = require("react/jsx-runtime");
854
597
  var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
855
- const [isDragging, setIsDragging] = (0, import_react11.useState)(false);
856
- const [isHovered, setIsHovered] = (0, import_react11.useState)(false);
857
- const [fileNames, setFileNames] = (0, import_react11.useState)([]);
858
- const inputRef = (0, import_react11.useRef)(null);
598
+ const [isDragging, setIsDragging] = (0, import_react7.useState)(false);
599
+ const [isHovered, setIsHovered] = (0, import_react7.useState)(false);
600
+ const [fileNames, setFileNames] = (0, import_react7.useState)([]);
601
+ const inputRef = (0, import_react7.useRef)(null);
859
602
  const handleFiles = (list) => {
860
603
  setFileNames(Array.from(list).map((f) => f.name));
861
604
  onFileSelect == null ? void 0 : onFileSelect(list);
862
605
  };
863
606
  const isActive = isDragging || isHovered;
864
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
607
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
865
608
  "div",
866
609
  {
867
610
  onClick: () => {
@@ -895,7 +638,7 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
895
638
  opacity: disabled ? 0.5 : 1
896
639
  },
897
640
  children: [
898
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
641
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
899
642
  "input",
900
643
  {
901
644
  ref: inputRef,
@@ -907,9 +650,9 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
907
650
  onChange: (e) => e.target.files && handleFiles(e.target.files)
908
651
  }
909
652
  ),
910
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Upload, { size: 32, style: { color: "var(--ds-text-secondary, #64748b)" } }),
911
- fileNames.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--ds-primary, #3b82f6)", fontWeight: 500, margin: 0 }, children: fileNames.join(", ") }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--ds-text-secondary, #64748b)", margin: 0 }, children: [
912
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { children: "Click to upload" }),
653
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react6.Upload, { size: 32, style: { color: "var(--ds-text-secondary, #64748b)" } }),
654
+ fileNames.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--ds-primary, #3b82f6)", fontWeight: 500, margin: 0 }, children: fileNames.join(", ") }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--ds-text-secondary, #64748b)", margin: 0 }, children: [
655
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("strong", { children: "Click to upload" }),
913
656
  " or drag and drop"
914
657
  ] })
915
658
  ]
@@ -919,7 +662,7 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
919
662
  var FileUpload_default = FileUpload;
920
663
 
921
664
  // src/components/Input/Input.tsx
922
- var import_jsx_runtime16 = require("react/jsx-runtime");
665
+ var import_jsx_runtime12 = require("react/jsx-runtime");
923
666
  var inputCSS = `
924
667
  [data-ds-input]::placeholder { color: var(--ds-text-secondary, #64748b); }
925
668
  [data-ds-input]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
@@ -929,10 +672,10 @@ var inputCSS = `
929
672
  `;
930
673
  var Input = (_a) => {
931
674
  var _b = _a, { error, success, leftIcon, rightIcon, style } = _b, props = __objRest(_b, ["error", "success", "leftIcon", "rightIcon", "style"]);
932
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
933
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("style", { href: "ds-input", precedence: "low", children: inputCSS }),
934
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { position: "relative", display: "flex", alignItems: "center", width: "100%" }, children: [
935
- leftIcon && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
675
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
676
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("style", { href: "ds-input", precedence: "low", children: inputCSS }),
677
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { position: "relative", display: "flex", alignItems: "center", width: "100%" }, children: [
678
+ leftIcon && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { style: {
936
679
  position: "absolute",
937
680
  left: "0.625rem",
938
681
  display: "flex",
@@ -940,7 +683,7 @@ var Input = (_a) => {
940
683
  color: "var(--ds-text-secondary, #64748b)",
941
684
  pointerEvents: "none"
942
685
  }, children: leftIcon }),
943
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
686
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
944
687
  "input",
945
688
  __spreadValues({
946
689
  "data-ds-input": "",
@@ -963,7 +706,7 @@ var Input = (_a) => {
963
706
  }, style)
964
707
  }, props)
965
708
  ),
966
- rightIcon && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
709
+ rightIcon && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { style: {
967
710
  position: "absolute",
968
711
  right: "0.625rem",
969
712
  display: "flex",
@@ -977,10 +720,10 @@ var Input = (_a) => {
977
720
  var Input_default = Input;
978
721
 
979
722
  // src/components/Label/Label.tsx
980
- var import_jsx_runtime17 = require("react/jsx-runtime");
723
+ var import_jsx_runtime13 = require("react/jsx-runtime");
981
724
  var Label = (_a) => {
982
725
  var _b = _a, { children, required, style } = _b, props = __objRest(_b, ["children", "required", "style"]);
983
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("label", __spreadProps(__spreadValues({ style: __spreadValues({
726
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("label", __spreadProps(__spreadValues({ style: __spreadValues({
984
727
  display: "block",
985
728
  fontSize: "0.875rem",
986
729
  fontWeight: 500,
@@ -988,29 +731,29 @@ var Label = (_a) => {
988
731
  marginBottom: "0.375rem"
989
732
  }, style) }, props), { children: [
990
733
  children,
991
- required && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { color: "var(--ds-danger, #ef4444)", marginLeft: "0.25rem" }, children: "*" })
734
+ required && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { style: { color: "var(--ds-danger, #ef4444)", marginLeft: "0.25rem" }, children: "*" })
992
735
  ] }));
993
736
  };
994
737
  var Label_default = Label;
995
738
 
996
739
  // src/components/PasswordInput/PasswordInput.tsx
997
740
  var import_lucide_react7 = require("lucide-react");
998
- var import_react12 = require("react");
999
- var import_jsx_runtime18 = require("react/jsx-runtime");
741
+ var import_react8 = require("react");
742
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1000
743
  var PasswordInput = (props) => {
1001
- const [visible, setVisible] = (0, import_react12.useState)(false);
1002
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
744
+ const [visible, setVisible] = (0, import_react8.useState)(false);
745
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1003
746
  Input_default,
1004
747
  __spreadProps(__spreadValues({}, props), {
1005
748
  type: visible ? "text" : "password",
1006
- rightIcon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
749
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1007
750
  "button",
1008
751
  {
1009
752
  type: "button",
1010
753
  onClick: () => setVisible((v) => !v),
1011
754
  style: { background: "none", border: "none", cursor: "pointer", padding: 0, display: "flex", pointerEvents: "all" },
1012
755
  tabIndex: -1,
1013
- children: visible ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.EyeOff, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.Eye, { size: 16 })
756
+ children: visible ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react7.EyeOff, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react7.Eye, { size: 16 })
1014
757
  }
1015
758
  )
1016
759
  })
@@ -1019,10 +762,10 @@ var PasswordInput = (props) => {
1019
762
  var PasswordInput_default = PasswordInput;
1020
763
 
1021
764
  // src/components/Progress/Progress.tsx
1022
- var import_jsx_runtime19 = require("react/jsx-runtime");
765
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1023
766
  var Progress = ({ value = 0 }) => {
1024
767
  const pct = Math.min(100, Math.max(0, value));
1025
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
768
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1026
769
  "div",
1027
770
  {
1028
771
  role: "progressbar",
@@ -1036,7 +779,7 @@ var Progress = ({ value = 0 }) => {
1036
779
  borderRadius: "9999px",
1037
780
  overflow: "hidden"
1038
781
  },
1039
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { style: {
782
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: {
1040
783
  height: "100%",
1041
784
  width: `${pct}%`,
1042
785
  backgroundColor: "var(--ds-primary, #3b82f6)",
@@ -1049,8 +792,8 @@ var Progress = ({ value = 0 }) => {
1049
792
  var Progress_default = Progress;
1050
793
 
1051
794
  // src/components/RadioGroup/RadioGroup.tsx
1052
- var import_react13 = require("react");
1053
- var import_jsx_runtime20 = require("react/jsx-runtime");
795
+ var import_react9 = require("react");
796
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1054
797
  var RadioGroup = ({
1055
798
  options,
1056
799
  name,
@@ -1059,16 +802,16 @@ var RadioGroup = ({
1059
802
  disabled,
1060
803
  onChange
1061
804
  }) => {
1062
- const [internal, setInternal] = (0, import_react13.useState)(defaultValue);
805
+ const [internal, setInternal] = (0, import_react9.useState)(defaultValue);
1063
806
  const selected = value !== void 0 ? value : internal;
1064
807
  const handleChange = (val) => {
1065
808
  if (disabled) return;
1066
809
  setInternal(val);
1067
810
  onChange == null ? void 0 : onChange(val);
1068
811
  };
1069
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: options.map((option) => {
812
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: options.map((option) => {
1070
813
  const isSelected = selected === option.value;
1071
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("label", { style: {
814
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("label", { style: {
1072
815
  display: "inline-flex",
1073
816
  alignItems: "center",
1074
817
  gap: "0.5rem",
@@ -1076,7 +819,7 @@ var RadioGroup = ({
1076
819
  userSelect: "none",
1077
820
  opacity: disabled ? 0.5 : 1
1078
821
  }, children: [
1079
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
822
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1080
823
  "input",
1081
824
  {
1082
825
  type: "radio",
@@ -1088,7 +831,7 @@ var RadioGroup = ({
1088
831
  style: { position: "absolute", opacity: 0, width: 0, height: 0 }
1089
832
  }
1090
833
  ),
1091
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { style: {
834
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
1092
835
  width: "1.125rem",
1093
836
  height: "1.125rem",
1094
837
  borderRadius: "9999px",
@@ -1099,13 +842,13 @@ var RadioGroup = ({
1099
842
  flexShrink: 0,
1100
843
  backgroundColor: "var(--ds-card, #fff)",
1101
844
  transition: "border-color 0.15s"
1102
- }, children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { style: {
845
+ }, children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
1103
846
  width: "0.5rem",
1104
847
  height: "0.5rem",
1105
848
  borderRadius: "9999px",
1106
849
  backgroundColor: "var(--ds-primary, #3b82f6)"
1107
850
  } }) }),
1108
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: option.label })
851
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: option.label })
1109
852
  ] }, option.value);
1110
853
  }) });
1111
854
  };
@@ -1113,8 +856,8 @@ var RadioGroup_default = RadioGroup;
1113
856
 
1114
857
  // src/components/Select/Select.tsx
1115
858
  var import_lucide_react8 = require("lucide-react");
1116
- var import_react14 = require("react");
1117
- var import_jsx_runtime21 = require("react/jsx-runtime");
859
+ var import_react10 = require("react");
860
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1118
861
  var selectCSS = `
1119
862
  [data-ds-select-trigger]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
1120
863
  `;
@@ -1127,10 +870,10 @@ var Select = ({
1127
870
  onChange
1128
871
  }) => {
1129
872
  var _a;
1130
- const [internal, setInternal] = (0, import_react14.useState)(defaultValue);
1131
- const [open, setOpen] = (0, import_react14.useState)(false);
1132
- const [hoveredOption, setHoveredOption] = (0, import_react14.useState)(null);
1133
- const ref = (0, import_react14.useRef)(null);
873
+ const [internal, setInternal] = (0, import_react10.useState)(defaultValue);
874
+ const [open, setOpen] = (0, import_react10.useState)(false);
875
+ const [hoveredOption, setHoveredOption] = (0, import_react10.useState)(null);
876
+ const ref = (0, import_react10.useRef)(null);
1134
877
  const selected = value !== void 0 ? value : internal;
1135
878
  const selectedLabel = (_a = options.find((o) => o.value === selected)) == null ? void 0 : _a.label;
1136
879
  const handleSelect = (val) => {
@@ -1138,22 +881,22 @@ var Select = ({
1138
881
  setOpen(false);
1139
882
  onChange == null ? void 0 : onChange(val);
1140
883
  };
1141
- (0, import_react14.useEffect)(() => {
884
+ (0, import_react10.useEffect)(() => {
1142
885
  const handleOutside = (e) => {
1143
886
  if (ref.current && !ref.current.contains(e.target)) setOpen(false);
1144
887
  };
1145
888
  document.addEventListener("mousedown", handleOutside);
1146
889
  return () => document.removeEventListener("mousedown", handleOutside);
1147
890
  }, []);
1148
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
1149
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("style", { href: "ds-select", precedence: "low", children: selectCSS }),
1150
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { ref, style: {
891
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
892
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("style", { href: "ds-select", precedence: "low", children: selectCSS }),
893
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { ref, style: {
1151
894
  position: "relative",
1152
895
  width: "100%",
1153
896
  opacity: disabled ? 0.5 : 1,
1154
897
  pointerEvents: disabled ? "none" : void 0
1155
898
  }, children: [
1156
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
899
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1157
900
  "button",
1158
901
  {
1159
902
  type: "button",
@@ -1179,8 +922,8 @@ var Select = ({
1179
922
  fontFamily: "inherit"
1180
923
  },
1181
924
  children: [
1182
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { style: { color: selectedLabel ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)" }, children: selectedLabel != null ? selectedLabel : placeholder }),
1183
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
925
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { color: selectedLabel ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)" }, children: selectedLabel != null ? selectedLabel : placeholder }),
926
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1184
927
  import_lucide_react8.ChevronDown,
1185
928
  {
1186
929
  size: 16,
@@ -1195,7 +938,7 @@ var Select = ({
1195
938
  ]
1196
939
  }
1197
940
  ),
1198
- open && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: {
941
+ open && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: {
1199
942
  position: "absolute",
1200
943
  top: "calc(100% + 0.25rem)",
1201
944
  left: 0,
@@ -1209,7 +952,7 @@ var Select = ({
1209
952
  }, children: options.map((option) => {
1210
953
  const isSelected = selected === option.value;
1211
954
  const isHovered = hoveredOption === option.value;
1212
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
955
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1213
956
  "div",
1214
957
  {
1215
958
  onClick: () => handleSelect(option.value),
@@ -1228,7 +971,7 @@ var Select = ({
1228
971
  transition: "background-color 0.1s"
1229
972
  },
1230
973
  children: [
1231
- isSelected ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react8.Check, { size: 14, style: { color: "var(--ds-primary, #3b82f6)", flexShrink: 0 } }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { style: { width: 14, flexShrink: 0 } }),
974
+ isSelected ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react8.Check, { size: 14, style: { color: "var(--ds-primary, #3b82f6)", flexShrink: 0 } }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { width: 14, flexShrink: 0 } }),
1232
975
  option.label
1233
976
  ]
1234
977
  },
@@ -1241,13 +984,13 @@ var Select = ({
1241
984
  var Select_default = Select;
1242
985
 
1243
986
  // src/components/Skeleton/Skeleton.tsx
1244
- var import_jsx_runtime22 = require("react/jsx-runtime");
1245
- var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1246
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("style", { href: "ds-skeleton", precedence: "low", children: `
987
+ var import_jsx_runtime18 = require("react/jsx-runtime");
988
+ var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
989
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("style", { href: "ds-skeleton", precedence: "low", children: `
1247
990
  @keyframes ds-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
1248
991
  [data-ds-skeleton] { animation: ds-pulse 1.5s ease-in-out infinite; }
1249
992
  ` }),
1250
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
993
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1251
994
  "div",
1252
995
  {
1253
996
  "data-ds-skeleton": "",
@@ -1264,8 +1007,8 @@ var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PU
1264
1007
  var Skeleton_default = Skeleton;
1265
1008
 
1266
1009
  // src/components/Slider/Slider.tsx
1267
- var import_react15 = require("react");
1268
- var import_jsx_runtime23 = require("react/jsx-runtime");
1010
+ var import_react11 = require("react");
1011
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1269
1012
  var sliderCSS = `
1270
1013
  [data-ds-slider] {
1271
1014
  -webkit-appearance: none;
@@ -1316,7 +1059,7 @@ var Slider = ({
1316
1059
  disabled,
1317
1060
  onChange
1318
1061
  }) => {
1319
- const [internal, setInternal] = (0, import_react15.useState)(defaultValue);
1062
+ const [internal, setInternal] = (0, import_react11.useState)(defaultValue);
1320
1063
  const current = value !== void 0 ? value : internal;
1321
1064
  const fill = `${(current - min) / (max - min) * 100}%`;
1322
1065
  const handleChange = (e) => {
@@ -1324,13 +1067,13 @@ var Slider = ({
1324
1067
  setInternal(val);
1325
1068
  onChange == null ? void 0 : onChange(val);
1326
1069
  };
1327
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
1328
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("style", { href: "ds-slider", precedence: "low", children: sliderCSS }),
1329
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { style: {
1070
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
1071
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("style", { href: "ds-slider", precedence: "low", children: sliderCSS }),
1072
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { style: {
1330
1073
  width: "100%",
1331
1074
  padding: "0.25rem 0",
1332
1075
  opacity: disabled ? 0.5 : 1
1333
- }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1076
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1334
1077
  "input",
1335
1078
  {
1336
1079
  type: "range",
@@ -1350,11 +1093,11 @@ var Slider_default = Slider;
1350
1093
 
1351
1094
  // src/components/Spinner/Spinner.tsx
1352
1095
  var import_lucide_react9 = require("lucide-react");
1353
- var import_jsx_runtime24 = require("react/jsx-runtime");
1096
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1354
1097
  var sizePx = { sm: 16, md: 24, lg: 32 };
1355
- var Spinner = ({ size = "md" }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
1356
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
1357
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1098
+ var Spinner = ({ size = "md" }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
1099
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
1100
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1358
1101
  import_lucide_react9.Loader2,
1359
1102
  {
1360
1103
  size: sizePx[size],
@@ -1366,8 +1109,8 @@ var Spinner = ({ size = "md" }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs
1366
1109
  var Spinner_default = Spinner;
1367
1110
 
1368
1111
  // src/components/Switch/Switch.tsx
1369
- var import_react16 = require("react");
1370
- var import_jsx_runtime25 = require("react/jsx-runtime");
1112
+ var import_react12 = require("react");
1113
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1371
1114
  var Switch = ({
1372
1115
  label,
1373
1116
  checked,
@@ -1376,7 +1119,7 @@ var Switch = ({
1376
1119
  id,
1377
1120
  onChange
1378
1121
  }) => {
1379
- const [internal, setInternal] = (0, import_react16.useState)(defaultChecked);
1122
+ const [internal, setInternal] = (0, import_react12.useState)(defaultChecked);
1380
1123
  const isOn = checked !== void 0 ? checked : internal;
1381
1124
  const handleToggle = () => {
1382
1125
  if (disabled) return;
@@ -1384,7 +1127,7 @@ var Switch = ({
1384
1127
  setInternal(next);
1385
1128
  onChange == null ? void 0 : onChange(next);
1386
1129
  };
1387
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("label", { htmlFor: id, style: {
1130
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("label", { htmlFor: id, style: {
1388
1131
  display: "inline-flex",
1389
1132
  alignItems: "center",
1390
1133
  gap: "0.625rem",
@@ -1392,7 +1135,7 @@ var Switch = ({
1392
1135
  userSelect: "none",
1393
1136
  opacity: disabled ? 0.5 : 1
1394
1137
  }, children: [
1395
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1138
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1396
1139
  "input",
1397
1140
  {
1398
1141
  type: "checkbox",
@@ -1403,7 +1146,7 @@ var Switch = ({
1403
1146
  style: { position: "absolute", opacity: 0, width: 0, height: 0 }
1404
1147
  }
1405
1148
  ),
1406
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { style: {
1149
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { style: {
1407
1150
  width: "2.75rem",
1408
1151
  height: "1.5rem",
1409
1152
  borderRadius: "9999px",
@@ -1411,7 +1154,7 @@ var Switch = ({
1411
1154
  position: "relative",
1412
1155
  transition: "background-color 0.2s",
1413
1156
  flexShrink: 0
1414
- }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { style: {
1157
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { style: {
1415
1158
  position: "absolute",
1416
1159
  top: "0.175rem",
1417
1160
  left: "0.175rem",
@@ -1423,41 +1166,41 @@ var Switch = ({
1423
1166
  transition: "transform 0.2s",
1424
1167
  transform: isOn ? "translateX(1.25rem)" : "translateX(0)"
1425
1168
  } }) }),
1426
- label && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
1169
+ label && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
1427
1170
  ] });
1428
1171
  };
1429
1172
  var Switch_default = Switch;
1430
1173
 
1431
1174
  // src/components/Table/Table.tsx
1432
- var import_jsx_runtime26 = require("react/jsx-runtime");
1175
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1433
1176
  var tableCSS = `
1434
1177
  [data-ds-table-row]:hover [data-ds-table-cell] { background-color: var(--ds-muted, #f1f5f9); }
1435
1178
  `;
1436
1179
  var Table = (_a) => {
1437
1180
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1438
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
1439
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("style", { href: "ds-table", precedence: "low", children: tableCSS }),
1440
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { style: {
1181
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1182
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("style", { href: "ds-table", precedence: "low", children: tableCSS }),
1183
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { style: {
1441
1184
  width: "100%",
1442
1185
  overflowX: "auto",
1443
1186
  border: "1px solid var(--ds-border, #e2e8f0)",
1444
1187
  borderRadius: "0.5rem"
1445
- }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("table", __spreadValues({ style: __spreadValues({
1188
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("table", __spreadValues({ style: __spreadValues({
1446
1189
  width: "100%",
1447
1190
  borderCollapse: "collapse",
1448
1191
  fontSize: "0.875rem"
1449
1192
  }, style) }, props)) })
1450
1193
  ] });
1451
1194
  };
1452
- var TableHead = (props) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("thead", __spreadValues({}, props));
1453
- var TableBody = (props) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("tbody", __spreadValues({}, props));
1195
+ var TableHead = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("thead", __spreadValues({}, props));
1196
+ var TableBody = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tbody", __spreadValues({}, props));
1454
1197
  var TableRow = (_a) => {
1455
1198
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1456
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("tr", __spreadValues({ "data-ds-table-row": "", style }, props));
1199
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", __spreadValues({ "data-ds-table-row": "", style }, props));
1457
1200
  };
1458
1201
  var TableHeader = (_a) => {
1459
1202
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1460
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("th", __spreadValues({ style: __spreadValues({
1203
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("th", __spreadValues({ style: __spreadValues({
1461
1204
  padding: "0.75rem 1rem",
1462
1205
  textAlign: "left",
1463
1206
  fontWeight: 500,
@@ -1469,7 +1212,7 @@ var TableHeader = (_a) => {
1469
1212
  };
1470
1213
  var TableCell = (_a) => {
1471
1214
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1472
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1215
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1473
1216
  "td",
1474
1217
  __spreadValues({
1475
1218
  "data-ds-table-cell": "",
@@ -1484,15 +1227,15 @@ var TableCell = (_a) => {
1484
1227
  };
1485
1228
 
1486
1229
  // src/components/Tabs/Tabs.tsx
1487
- var import_react17 = require("react");
1488
- var import_jsx_runtime27 = require("react/jsx-runtime");
1230
+ var import_react13 = require("react");
1231
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1489
1232
  var Tabs = ({ tabs, defaultValue }) => {
1490
1233
  var _a, _b;
1491
- const [active, setActive] = (0, import_react17.useState)((_b = defaultValue != null ? defaultValue : (_a = tabs[0]) == null ? void 0 : _a.value) != null ? _b : "");
1492
- const [hovered, setHovered] = (0, import_react17.useState)(null);
1234
+ const [active, setActive] = (0, import_react13.useState)((_b = defaultValue != null ? defaultValue : (_a = tabs[0]) == null ? void 0 : _a.value) != null ? _b : "");
1235
+ const [hovered, setHovered] = (0, import_react13.useState)(null);
1493
1236
  const activeTab = tabs.find((t) => t.value === active);
1494
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { style: { display: "flex", flexDirection: "column" }, children: [
1495
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { role: "tablist", style: {
1237
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { style: { display: "flex", flexDirection: "column" }, children: [
1238
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { role: "tablist", style: {
1496
1239
  display: "inline-flex",
1497
1240
  backgroundColor: "var(--ds-muted, #f1f5f9)",
1498
1241
  borderRadius: "0.5rem",
@@ -1501,7 +1244,7 @@ var Tabs = ({ tabs, defaultValue }) => {
1501
1244
  }, children: tabs.map((tab) => {
1502
1245
  const isActive = active === tab.value;
1503
1246
  const isHovered = hovered === tab.value;
1504
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
1247
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1505
1248
  "button",
1506
1249
  {
1507
1250
  role: "tab",
@@ -1526,14 +1269,14 @@ var Tabs = ({ tabs, defaultValue }) => {
1526
1269
  whiteSpace: "nowrap"
1527
1270
  },
1528
1271
  children: [
1529
- tab.icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { style: { display: "flex", alignItems: "center" }, children: tab.icon }),
1272
+ tab.icon && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { style: { display: "flex", alignItems: "center" }, children: tab.icon }),
1530
1273
  tab.label
1531
1274
  ]
1532
1275
  },
1533
1276
  tab.value
1534
1277
  );
1535
1278
  }) }),
1536
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { role: "tabpanel", style: {
1279
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { role: "tabpanel", style: {
1537
1280
  paddingTop: "1rem",
1538
1281
  fontSize: "0.875rem",
1539
1282
  color: "var(--ds-text-secondary, #64748b)"
@@ -1543,7 +1286,7 @@ var Tabs = ({ tabs, defaultValue }) => {
1543
1286
  var Tabs_default = Tabs;
1544
1287
 
1545
1288
  // src/components/Textarea/Textarea.tsx
1546
- var import_jsx_runtime28 = require("react/jsx-runtime");
1289
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1547
1290
  var textareaCSS = `
1548
1291
  [data-ds-textarea]::placeholder { color: var(--ds-text-secondary, #64748b); }
1549
1292
  [data-ds-textarea]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
@@ -1553,9 +1296,9 @@ var textareaCSS = `
1553
1296
  `;
1554
1297
  var Textarea = (_a) => {
1555
1298
  var _b = _a, { error, style } = _b, props = __objRest(_b, ["error", "style"]);
1556
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
1557
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("style", { href: "ds-textarea", precedence: "low", children: textareaCSS }),
1558
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1299
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
1300
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("style", { href: "ds-textarea", precedence: "low", children: textareaCSS }),
1301
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1559
1302
  "textarea",
1560
1303
  __spreadValues({
1561
1304
  "data-ds-textarea": "",
@@ -1581,8 +1324,8 @@ var Textarea = (_a) => {
1581
1324
  var Textarea_default = Textarea;
1582
1325
 
1583
1326
  // src/components/Tooltip/Tooltip.tsx
1584
- var import_react18 = require("react");
1585
- var import_jsx_runtime29 = require("react/jsx-runtime");
1327
+ var import_react14 = require("react");
1328
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1586
1329
  var positionStyle = {
1587
1330
  top: { bottom: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
1588
1331
  bottom: { top: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
@@ -1600,11 +1343,11 @@ var tooltipCSS = `
1600
1343
  [data-ds-tt="left"]::before { left: 100%; top: 50%; transform: translateY(-50%); border-left-color: var(--ds-tooltip-bg, #0f172a); }
1601
1344
  [data-ds-tt="right"]::before { right: 100%; top: 50%; transform: translateY(-50%); border-right-color: var(--ds-tooltip-bg, #0f172a); }
1602
1345
  `;
1603
- var Tooltip5 = ({ content, children, position = "top" }) => {
1604
- const [visible, setVisible] = (0, import_react18.useState)(false);
1605
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
1606
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("style", { href: "ds-tooltip", precedence: "low", children: tooltipCSS }),
1607
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
1346
+ var Tooltip = ({ content, children, position = "top" }) => {
1347
+ const [visible, setVisible] = (0, import_react14.useState)(false);
1348
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
1349
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("style", { href: "ds-tooltip", precedence: "low", children: tooltipCSS }),
1350
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
1608
1351
  "span",
1609
1352
  {
1610
1353
  style: { position: "relative", display: "inline-flex" },
@@ -1614,7 +1357,7 @@ var Tooltip5 = ({ content, children, position = "top" }) => {
1614
1357
  onBlur: () => setVisible(false),
1615
1358
  children: [
1616
1359
  children,
1617
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1360
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1618
1361
  "span",
1619
1362
  {
1620
1363
  role: "tooltip",
@@ -1641,15 +1384,13 @@ var Tooltip5 = ({ content, children, position = "top" }) => {
1641
1384
  )
1642
1385
  ] });
1643
1386
  };
1644
- var Tooltip_default = Tooltip5;
1387
+ var Tooltip_default = Tooltip;
1645
1388
  // Annotate the CommonJS export names for ESM import in node:
1646
1389
  0 && (module.exports = {
1647
1390
  Accordion,
1648
1391
  Alert,
1649
- AreaChart,
1650
1392
  Avatar,
1651
1393
  Badge,
1652
- BarChart,
1653
1394
  Breadcrumb,
1654
1395
  Button,
1655
1396
  Card,
@@ -1663,9 +1404,7 @@ var Tooltip_default = Tooltip5;
1663
1404
  FileUpload,
1664
1405
  Input,
1665
1406
  Label,
1666
- LineChart,
1667
1407
  PasswordInput,
1668
- PieChart,
1669
1408
  Progress,
1670
1409
  RadioGroup,
1671
1410
  Select,