@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.js CHANGED
@@ -48,299 +48,17 @@ var useTheme = () => {
48
48
  return ctx;
49
49
  };
50
50
 
51
- // src/components/Charts/LineChart.tsx
52
- import { useEffect, useRef, useState as useState2 } from "react";
53
- import {
54
- LineChart as RechartsLineChart,
55
- Line,
56
- XAxis,
57
- YAxis,
58
- CartesianGrid,
59
- Tooltip,
60
- Legend
61
- } from "recharts";
62
-
63
- // src/components/Charts/chartUtils.ts
64
- var CHART_COLORS = [
65
- "#3b82f6",
66
- // blue
67
- "#22c55e",
68
- // green
69
- "#f59e0b",
70
- // amber
71
- "#ef4444",
72
- // red
73
- "#8b5cf6",
74
- // violet
75
- "#06b6d4",
76
- // cyan
77
- "#f97316",
78
- // orange
79
- "#ec4899"
80
- // pink
81
- ];
82
- function getChartTheme(theme) {
83
- const isDark = theme === "dark";
84
- return {
85
- gridColor: isDark ? "#334155" : "#e2e8f0",
86
- axisStroke: isDark ? "#94a3b8" : "#64748b",
87
- axisTick: { fill: isDark ? "#94a3b8" : "#64748b", fontSize: 12 },
88
- primaryColor: isDark ? "#60a5fa" : "#3b82f6",
89
- tooltipStyle: {
90
- backgroundColor: isDark ? "#1e293b" : "#ffffff",
91
- border: `1px solid ${isDark ? "#334155" : "#e2e8f0"}`,
92
- borderRadius: "6px",
93
- color: isDark ? "#f1f5f9" : "#0f172a",
94
- fontSize: "0.8125rem"
95
- }
96
- };
97
- }
98
-
99
- // src/components/Charts/LineChart.tsx
100
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
101
- var LineChart = ({
102
- data,
103
- xKey,
104
- lines,
105
- height = 250,
106
- legend = false,
107
- grid = true,
108
- theme = "light",
109
- className,
110
- style
111
- }) => {
112
- const containerRef = useRef(null);
113
- const [width, setWidth] = useState2(0);
114
- const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
115
- useEffect(() => {
116
- if (!containerRef.current) return;
117
- const measure = () => setWidth(containerRef.current.offsetWidth);
118
- measure();
119
- const ro = new ResizeObserver(measure);
120
- ro.observe(containerRef.current);
121
- return () => ro.disconnect();
122
- }, []);
123
- return /* @__PURE__ */ jsx2("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ jsxs(RechartsLineChart, { width, height, data, children: [
124
- grid && /* @__PURE__ */ jsx2(CartesianGrid, { strokeDasharray: "3 3", stroke: gridColor }),
125
- /* @__PURE__ */ jsx2(XAxis, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
126
- /* @__PURE__ */ jsx2(YAxis, { stroke: axisStroke, tick: axisTick }),
127
- /* @__PURE__ */ jsx2(Tooltip, { contentStyle: tooltipStyle }),
128
- legend && /* @__PURE__ */ jsx2(Legend, {}),
129
- lines.map((line, i) => {
130
- var _a, _b;
131
- const color = (_a = line.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
132
- return /* @__PURE__ */ jsx2(
133
- Line,
134
- {
135
- type: "monotone",
136
- dataKey: line.dataKey,
137
- name: (_b = line.label) != null ? _b : line.dataKey,
138
- stroke: color,
139
- strokeWidth: 2,
140
- dot: { fill: color, r: 4 },
141
- activeDot: { r: 6 },
142
- isAnimationActive: false
143
- },
144
- line.dataKey
145
- );
146
- })
147
- ] }) });
148
- };
149
- var LineChart_default = LineChart;
150
-
151
- // src/components/Charts/BarChart.tsx
152
- import { useEffect as useEffect2, useRef as useRef2, useState as useState3 } from "react";
153
- import {
154
- BarChart as RechartsBarChart,
155
- Bar,
156
- XAxis as XAxis2,
157
- YAxis as YAxis2,
158
- CartesianGrid as CartesianGrid2,
159
- Tooltip as Tooltip2,
160
- Legend as Legend2
161
- } from "recharts";
162
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
163
- var BarChart = ({
164
- data,
165
- xKey,
166
- bars,
167
- height = 250,
168
- legend = false,
169
- grid = true,
170
- theme = "light",
171
- className,
172
- style
173
- }) => {
174
- const containerRef = useRef2(null);
175
- const [width, setWidth] = useState3(0);
176
- const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
177
- useEffect2(() => {
178
- if (!containerRef.current) return;
179
- const measure = () => setWidth(containerRef.current.offsetWidth);
180
- measure();
181
- const ro = new ResizeObserver(measure);
182
- ro.observe(containerRef.current);
183
- return () => ro.disconnect();
184
- }, []);
185
- return /* @__PURE__ */ jsx3("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ jsxs2(RechartsBarChart, { width, height, data, children: [
186
- grid && /* @__PURE__ */ jsx3(CartesianGrid2, { strokeDasharray: "3 3", stroke: gridColor }),
187
- /* @__PURE__ */ jsx3(XAxis2, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
188
- /* @__PURE__ */ jsx3(YAxis2, { stroke: axisStroke, tick: axisTick }),
189
- /* @__PURE__ */ jsx3(Tooltip2, { contentStyle: tooltipStyle }),
190
- legend && /* @__PURE__ */ jsx3(Legend2, {}),
191
- bars.map((bar, i) => {
192
- var _a, _b;
193
- const color = (_a = bar.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
194
- return /* @__PURE__ */ jsx3(
195
- Bar,
196
- {
197
- dataKey: bar.dataKey,
198
- name: (_b = bar.label) != null ? _b : bar.dataKey,
199
- fill: color,
200
- stackId: bar.stackId,
201
- isAnimationActive: false
202
- },
203
- bar.dataKey
204
- );
205
- })
206
- ] }) });
207
- };
208
- var BarChart_default = BarChart;
209
-
210
- // src/components/Charts/AreaChart.tsx
211
- import { useEffect as useEffect3, useRef as useRef3, useState as useState4 } from "react";
212
- import {
213
- AreaChart as RechartsAreaChart,
214
- Area,
215
- XAxis as XAxis3,
216
- YAxis as YAxis3,
217
- CartesianGrid as CartesianGrid3,
218
- Tooltip as Tooltip3,
219
- Legend as Legend3
220
- } from "recharts";
221
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
222
- var AreaChart = ({
223
- data,
224
- xKey,
225
- areas,
226
- height = 250,
227
- legend = false,
228
- grid = true,
229
- theme = "light",
230
- className,
231
- style
232
- }) => {
233
- const containerRef = useRef3(null);
234
- const [width, setWidth] = useState4(0);
235
- const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
236
- useEffect3(() => {
237
- if (!containerRef.current) return;
238
- const measure = () => setWidth(containerRef.current.offsetWidth);
239
- measure();
240
- const ro = new ResizeObserver(measure);
241
- ro.observe(containerRef.current);
242
- return () => ro.disconnect();
243
- }, []);
244
- return /* @__PURE__ */ jsx4("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ jsxs3(RechartsAreaChart, { width, height, data, children: [
245
- grid && /* @__PURE__ */ jsx4(CartesianGrid3, { strokeDasharray: "3 3", stroke: gridColor }),
246
- /* @__PURE__ */ jsx4(XAxis3, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
247
- /* @__PURE__ */ jsx4(YAxis3, { stroke: axisStroke, tick: axisTick }),
248
- /* @__PURE__ */ jsx4(Tooltip3, { contentStyle: tooltipStyle }),
249
- legend && /* @__PURE__ */ jsx4(Legend3, {}),
250
- areas.map((area, i) => {
251
- var _a, _b, _c;
252
- const color = (_a = area.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
253
- const opacity = (_b = area.fillOpacity) != null ? _b : area.stackId ? 0.4 : 0.15;
254
- return /* @__PURE__ */ jsx4(
255
- Area,
256
- {
257
- type: "monotone",
258
- dataKey: area.dataKey,
259
- name: (_c = area.label) != null ? _c : area.dataKey,
260
- stroke: color,
261
- fill: color,
262
- fillOpacity: opacity,
263
- strokeWidth: 2,
264
- stackId: area.stackId,
265
- isAnimationActive: false
266
- },
267
- area.dataKey
268
- );
269
- })
270
- ] }) });
271
- };
272
- var AreaChart_default = AreaChart;
273
-
274
- // src/components/Charts/PieChart.tsx
275
- import { useEffect as useEffect4, useRef as useRef4, useState as useState5 } from "react";
276
- import {
277
- PieChart as RechartsPieChart,
278
- Pie,
279
- Tooltip as Tooltip4,
280
- Legend as Legend4
281
- } from "recharts";
282
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
283
- var PieChart = ({
284
- data,
285
- height = 250,
286
- donut = false,
287
- legend = false,
288
- label = false,
289
- theme = "light",
290
- className,
291
- style
292
- }) => {
293
- const containerRef = useRef4(null);
294
- const [width, setWidth] = useState5(0);
295
- const { tooltipStyle } = getChartTheme(theme);
296
- useEffect4(() => {
297
- if (!containerRef.current) return;
298
- const measure = () => setWidth(containerRef.current.offsetWidth);
299
- measure();
300
- const ro = new ResizeObserver(measure);
301
- ro.observe(containerRef.current);
302
- return () => ro.disconnect();
303
- }, []);
304
- const dataWithColors = data.map((item, i) => {
305
- var _a;
306
- return __spreadProps(__spreadValues({}, item), {
307
- fill: (_a = item.fill) != null ? _a : CHART_COLORS[i % CHART_COLORS.length]
308
- });
309
- });
310
- const outerRadius = 90;
311
- const innerRadius = donut ? 55 : 0;
312
- return /* @__PURE__ */ jsx5("div", { ref: containerRef, className, style: __spreadValues({ minWidth: 250, width: "100%" }, style), children: width > 0 && /* @__PURE__ */ jsxs4(RechartsPieChart, { width, height, children: [
313
- /* @__PURE__ */ jsx5(
314
- Pie,
315
- {
316
- data: dataWithColors,
317
- cx: "50%",
318
- cy: "50%",
319
- outerRadius,
320
- innerRadius,
321
- dataKey: "value",
322
- label: label ? ({ name, percent }) => `${name} ${((percent != null ? percent : 0) * 100).toFixed(0)}%` : void 0,
323
- labelLine: label,
324
- isAnimationActive: false
325
- }
326
- ),
327
- /* @__PURE__ */ jsx5(Tooltip4, { contentStyle: tooltipStyle }),
328
- legend && /* @__PURE__ */ jsx5(Legend4, {})
329
- ] }) });
330
- };
331
- var PieChart_default = PieChart;
332
-
333
51
  // src/components/Accordion/Accordion.tsx
334
- import { useState as useState6 } from "react";
52
+ import { useState as useState2 } from "react";
335
53
  import { ChevronDown } from "lucide-react";
336
- import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
54
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
337
55
  var Accordion = ({ items, defaultValue, multiple = false }) => {
338
- const [open, setOpen] = useState6(() => {
56
+ const [open, setOpen] = useState2(() => {
339
57
  if (!defaultValue) return /* @__PURE__ */ new Set();
340
58
  if (Array.isArray(defaultValue)) return new Set(defaultValue);
341
59
  return /* @__PURE__ */ new Set([defaultValue]);
342
60
  });
343
- const [hovered, setHovered] = useState6(null);
61
+ const [hovered, setHovered] = useState2(null);
344
62
  const toggle = (value) => {
345
63
  setOpen((prev) => {
346
64
  const next = new Set(prev);
@@ -353,7 +71,7 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
353
71
  return next;
354
72
  });
355
73
  };
356
- return /* @__PURE__ */ jsx6("div", { style: {
74
+ return /* @__PURE__ */ jsx2("div", { style: {
357
75
  border: "1px solid var(--ds-border, #e2e8f0)",
358
76
  borderRadius: "0.5rem",
359
77
  overflow: "hidden"
@@ -361,14 +79,14 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
361
79
  const isOpen = open.has(item.value);
362
80
  const isHovered = hovered === item.value;
363
81
  const isLast = index === items.length - 1;
364
- return /* @__PURE__ */ jsxs5(
82
+ return /* @__PURE__ */ jsxs(
365
83
  "div",
366
84
  {
367
85
  style: {
368
86
  borderBottom: isLast ? "none" : "1px solid var(--ds-border, #e2e8f0)"
369
87
  },
370
88
  children: [
371
- /* @__PURE__ */ jsxs5(
89
+ /* @__PURE__ */ jsxs(
372
90
  "button",
373
91
  {
374
92
  style: {
@@ -391,8 +109,8 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
391
109
  onMouseLeave: () => setHovered(null),
392
110
  "aria-expanded": isOpen,
393
111
  children: [
394
- /* @__PURE__ */ jsx6("span", { children: item.trigger }),
395
- /* @__PURE__ */ jsx6(
112
+ /* @__PURE__ */ jsx2("span", { children: item.trigger }),
113
+ /* @__PURE__ */ jsx2(
396
114
  ChevronDown,
397
115
  {
398
116
  size: 16,
@@ -407,11 +125,11 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
407
125
  ]
408
126
  }
409
127
  ),
410
- /* @__PURE__ */ jsx6("div", { style: {
128
+ /* @__PURE__ */ jsx2("div", { style: {
411
129
  maxHeight: isOpen ? "300px" : "0",
412
130
  overflow: "hidden",
413
131
  transition: "max-height 0.25s ease"
414
- }, children: /* @__PURE__ */ jsx6("div", { style: {
132
+ }, children: /* @__PURE__ */ jsx2("div", { style: {
415
133
  padding: "0 1rem 1rem",
416
134
  fontSize: "0.875rem",
417
135
  color: "var(--ds-text-secondary, #64748b)"
@@ -426,7 +144,7 @@ var Accordion_default = Accordion;
426
144
 
427
145
  // src/components/Alert/Alert.tsx
428
146
  import { Info, CheckCircle2, AlertTriangle, AlertCircle } from "lucide-react";
429
- import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
147
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
430
148
  var variantMap = {
431
149
  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)" },
432
150
  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)" },
@@ -434,14 +152,14 @@ var variantMap = {
434
152
  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)" }
435
153
  };
436
154
  var icons = {
437
- info: /* @__PURE__ */ jsx7(Info, { size: 16 }),
438
- success: /* @__PURE__ */ jsx7(CheckCircle2, { size: 16 }),
439
- warning: /* @__PURE__ */ jsx7(AlertTriangle, { size: 16 }),
440
- danger: /* @__PURE__ */ jsx7(AlertCircle, { size: 16 })
155
+ info: /* @__PURE__ */ jsx3(Info, { size: 16 }),
156
+ success: /* @__PURE__ */ jsx3(CheckCircle2, { size: 16 }),
157
+ warning: /* @__PURE__ */ jsx3(AlertTriangle, { size: 16 }),
158
+ danger: /* @__PURE__ */ jsx3(AlertCircle, { size: 16 })
441
159
  };
442
160
  var Alert = ({ variant = "info", title, description }) => {
443
161
  const v = variantMap[variant];
444
- return /* @__PURE__ */ jsxs6("div", { role: "alert", style: {
162
+ return /* @__PURE__ */ jsxs2("div", { role: "alert", style: {
445
163
  display: "flex",
446
164
  gap: "0.75rem",
447
165
  padding: "1rem",
@@ -449,23 +167,23 @@ var Alert = ({ variant = "info", title, description }) => {
449
167
  borderLeft: `4px solid ${v.border}`,
450
168
  backgroundColor: v.bg
451
169
  }, children: [
452
- /* @__PURE__ */ jsx7("span", { style: { flexShrink: 0, marginTop: "0.125rem", color: v.icon }, children: icons[variant] }),
453
- /* @__PURE__ */ jsxs6("div", { style: { flex: 1 }, children: [
454
- /* @__PURE__ */ jsx7("p", { style: { fontWeight: 600, fontSize: "0.875rem", marginBottom: "0.25rem", marginTop: 0, color: v.title }, children: title }),
455
- /* @__PURE__ */ jsx7("p", { style: { fontSize: "0.875rem", margin: 0, color: v.desc }, children: description })
170
+ /* @__PURE__ */ jsx3("span", { style: { flexShrink: 0, marginTop: "0.125rem", color: v.icon }, children: icons[variant] }),
171
+ /* @__PURE__ */ jsxs2("div", { style: { flex: 1 }, children: [
172
+ /* @__PURE__ */ jsx3("p", { style: { fontWeight: 600, fontSize: "0.875rem", marginBottom: "0.25rem", marginTop: 0, color: v.title }, children: title }),
173
+ /* @__PURE__ */ jsx3("p", { style: { fontSize: "0.875rem", margin: 0, color: v.desc }, children: description })
456
174
  ] })
457
175
  ] });
458
176
  };
459
177
  var Alert_default = Alert;
460
178
 
461
179
  // src/components/Avatar/Avatar.tsx
462
- import { jsx as jsx8 } from "react/jsx-runtime";
180
+ import { jsx as jsx4 } from "react/jsx-runtime";
463
181
  var sizeMap = {
464
182
  sm: { width: "2rem", height: "2rem", fontSize: "0.625rem" },
465
183
  md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
466
184
  lg: { width: "4rem", height: "4rem", fontSize: "1.25rem" }
467
185
  };
468
- var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ jsx8(
186
+ var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ jsx4(
469
187
  "div",
470
188
  {
471
189
  className,
@@ -487,7 +205,7 @@ var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ js
487
205
  var Avatar_default = Avatar;
488
206
 
489
207
  // src/components/Badge/Badge.tsx
490
- import { jsx as jsx9 } from "react/jsx-runtime";
208
+ import { jsx as jsx5 } from "react/jsx-runtime";
491
209
  var variantMap2 = {
492
210
  default: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff" },
493
211
  secondary: { backgroundColor: "var(--ds-muted, #f1f5f9)", color: "var(--ds-text-secondary, #64748b)" },
@@ -502,7 +220,7 @@ var sizeMap2 = {
502
220
  md: { padding: "0.25rem 0.625rem", fontSize: "0.75rem" },
503
221
  lg: { padding: "0.375rem 0.875rem", fontSize: "0.875rem" }
504
222
  };
505
- var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ jsx9("span", { style: __spreadValues(__spreadValues(__spreadValues({
223
+ var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ jsx5("span", { style: __spreadValues(__spreadValues(__spreadValues({
506
224
  display: "inline-flex",
507
225
  alignItems: "center",
508
226
  gap: "0.25rem",
@@ -513,12 +231,12 @@ var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PUR
513
231
  var Badge_default = Badge;
514
232
 
515
233
  // src/components/Breadcrumb/Breadcrumb.tsx
516
- import { useState as useState7 } from "react";
234
+ import { useState as useState3 } from "react";
517
235
  import { ChevronRight } from "lucide-react";
518
- import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
236
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
519
237
  var Breadcrumb = ({ items }) => {
520
- const [hovered, setHovered] = useState7(null);
521
- return /* @__PURE__ */ jsx10("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx10("ol", { style: {
238
+ const [hovered, setHovered] = useState3(null);
239
+ return /* @__PURE__ */ jsx6("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx6("ol", { style: {
522
240
  display: "flex",
523
241
  flexWrap: "wrap",
524
242
  alignItems: "center",
@@ -529,8 +247,8 @@ var Breadcrumb = ({ items }) => {
529
247
  }, children: items.map((item, i) => {
530
248
  const isLast = i === items.length - 1;
531
249
  const isHovered = hovered === item.label;
532
- return /* @__PURE__ */ jsxs7("li", { style: { display: "flex", alignItems: "center" }, children: [
533
- i > 0 && /* @__PURE__ */ jsx10(
250
+ return /* @__PURE__ */ jsxs3("li", { style: { display: "flex", alignItems: "center" }, children: [
251
+ i > 0 && /* @__PURE__ */ jsx6(
534
252
  ChevronRight,
535
253
  {
536
254
  size: 14,
@@ -538,11 +256,11 @@ var Breadcrumb = ({ items }) => {
538
256
  style: { color: "var(--ds-text-secondary, #64748b)", margin: "0 0.25rem", flexShrink: 0 }
539
257
  }
540
258
  ),
541
- isLast || !item.href ? /* @__PURE__ */ jsx10("span", { style: {
259
+ isLast || !item.href ? /* @__PURE__ */ jsx6("span", { style: {
542
260
  color: isLast ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)",
543
261
  fontWeight: isLast ? 500 : void 0,
544
262
  cursor: isLast ? "default" : void 0
545
- }, children: item.label }) : /* @__PURE__ */ jsx10(
263
+ }, children: item.label }) : /* @__PURE__ */ jsx6(
546
264
  "a",
547
265
  {
548
266
  href: item.href,
@@ -563,8 +281,8 @@ var Breadcrumb_default = Breadcrumb;
563
281
 
564
282
  // src/components/Button/Button.tsx
565
283
  import { LoaderCircle } from "lucide-react";
566
- import { useState as useState8 } from "react";
567
- import { Fragment, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
284
+ import { useState as useState4 } from "react";
285
+ import { Fragment, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
568
286
  var variantStyles = {
569
287
  solid: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff", borderColor: "transparent" },
570
288
  outline: { backgroundColor: "transparent", color: "var(--ds-primary, #3b82f6)", borderColor: "var(--ds-primary, #3b82f6)" },
@@ -626,7 +344,7 @@ var Button = (_a) => {
626
344
  "size",
627
345
  "style"
628
346
  ]);
629
- const [hovered, setHovered] = useState8(false);
347
+ const [hovered, setHovered] = useState4(false);
630
348
  const resolvedVariant = variant != null ? variant : danger ? "danger" : warning ? "warning" : info ? "info" : success ? "success" : ghost ? "ghost" : outline ? "outline" : "solid";
631
349
  const resolvedSize = size != null ? size : small ? "sm" : large ? "lg" : "md";
632
350
  const isDisabled = disabled || loading;
@@ -644,9 +362,9 @@ var Button = (_a) => {
644
362
  opacity: isDisabled ? 0.5 : 1,
645
363
  pointerEvents: loading ? "none" : void 0
646
364
  }, variantStyles[resolvedVariant]), sizeStyles[resolvedSize]), hovered && !isDisabled ? variantHoverStyles[resolvedVariant] : {}), styleProp);
647
- return /* @__PURE__ */ jsxs8(Fragment, { children: [
648
- /* @__PURE__ */ jsx11("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
649
- /* @__PURE__ */ jsxs8(
365
+ return /* @__PURE__ */ jsxs4(Fragment, { children: [
366
+ /* @__PURE__ */ jsx7("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
367
+ /* @__PURE__ */ jsxs4(
650
368
  "button",
651
369
  __spreadProps(__spreadValues({
652
370
  disabled: isDisabled,
@@ -655,7 +373,7 @@ var Button = (_a) => {
655
373
  onMouseLeave: () => setHovered(false)
656
374
  }, props), {
657
375
  children: [
658
- loading ? /* @__PURE__ */ jsx11(
376
+ loading ? /* @__PURE__ */ jsx7(
659
377
  LoaderCircle,
660
378
  {
661
379
  "aria-hidden": true,
@@ -673,10 +391,10 @@ var Button = (_a) => {
673
391
  var Button_default = Button;
674
392
 
675
393
  // src/components/Card/Card.tsx
676
- import { jsx as jsx12 } from "react/jsx-runtime";
394
+ import { jsx as jsx8 } from "react/jsx-runtime";
677
395
  var Card = (_a) => {
678
396
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
679
- return /* @__PURE__ */ jsx12("div", __spreadValues({ style: __spreadValues({
397
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({
680
398
  border: "1px solid var(--ds-border, #e2e8f0)",
681
399
  borderRadius: "0.5rem",
682
400
  backgroundColor: "var(--ds-card, #ffffff)"
@@ -684,7 +402,7 @@ var Card = (_a) => {
684
402
  };
685
403
  var CardHeader = (_a) => {
686
404
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
687
- return /* @__PURE__ */ jsx12("div", __spreadValues({ style: __spreadValues({
405
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({
688
406
  display: "flex",
689
407
  flexDirection: "column",
690
408
  gap: "0.375rem",
@@ -693,7 +411,7 @@ var CardHeader = (_a) => {
693
411
  };
694
412
  var CardTitle = (_a) => {
695
413
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
696
- return /* @__PURE__ */ jsx12("h3", __spreadValues({ style: __spreadValues({
414
+ return /* @__PURE__ */ jsx8("h3", __spreadValues({ style: __spreadValues({
697
415
  fontSize: "1rem",
698
416
  fontWeight: 600,
699
417
  color: "var(--ds-text-primary, #0f172a)",
@@ -703,7 +421,7 @@ var CardTitle = (_a) => {
703
421
  };
704
422
  var CardDescription = (_a) => {
705
423
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
706
- return /* @__PURE__ */ jsx12("p", __spreadValues({ style: __spreadValues({
424
+ return /* @__PURE__ */ jsx8("p", __spreadValues({ style: __spreadValues({
707
425
  fontSize: "0.875rem",
708
426
  color: "var(--ds-text-secondary, #64748b)",
709
427
  margin: 0
@@ -711,11 +429,11 @@ var CardDescription = (_a) => {
711
429
  };
712
430
  var CardContent = (_a) => {
713
431
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
714
- return /* @__PURE__ */ jsx12("div", __spreadValues({ style: __spreadValues({ padding: "1.5rem" }, style) }, props));
432
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({ padding: "1.5rem" }, style) }, props));
715
433
  };
716
434
  var CardFooter = (_a) => {
717
435
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
718
- return /* @__PURE__ */ jsx12("div", __spreadValues({ style: __spreadValues({
436
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({
719
437
  display: "flex",
720
438
  alignItems: "center",
721
439
  padding: "0 1.5rem 1.5rem"
@@ -723,8 +441,8 @@ var CardFooter = (_a) => {
723
441
  };
724
442
 
725
443
  // src/components/Checkbox/Checkbox.tsx
726
- import { useState as useState9 } from "react";
727
- import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
444
+ import { useState as useState5 } from "react";
445
+ import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
728
446
  var Checkbox = ({
729
447
  label,
730
448
  checked,
@@ -733,7 +451,7 @@ var Checkbox = ({
733
451
  id,
734
452
  onChange
735
453
  }) => {
736
- const [internal, setInternal] = useState9(defaultChecked);
454
+ const [internal, setInternal] = useState5(defaultChecked);
737
455
  const isChecked = checked !== void 0 ? checked : internal;
738
456
  const handleChange = () => {
739
457
  if (disabled) return;
@@ -741,7 +459,7 @@ var Checkbox = ({
741
459
  setInternal(next);
742
460
  onChange == null ? void 0 : onChange(next);
743
461
  };
744
- return /* @__PURE__ */ jsxs9("label", { htmlFor: id, style: {
462
+ return /* @__PURE__ */ jsxs5("label", { htmlFor: id, style: {
745
463
  display: "inline-flex",
746
464
  alignItems: "center",
747
465
  gap: "0.5rem",
@@ -749,7 +467,7 @@ var Checkbox = ({
749
467
  userSelect: "none",
750
468
  opacity: disabled ? 0.5 : 1
751
469
  }, children: [
752
- /* @__PURE__ */ jsx13(
470
+ /* @__PURE__ */ jsx9(
753
471
  "input",
754
472
  {
755
473
  type: "checkbox",
@@ -760,7 +478,7 @@ var Checkbox = ({
760
478
  style: { position: "absolute", opacity: 0, width: 0, height: 0 }
761
479
  }
762
480
  ),
763
- /* @__PURE__ */ jsx13("span", { style: {
481
+ /* @__PURE__ */ jsx9("span", { style: {
764
482
  width: "1.125rem",
765
483
  height: "1.125rem",
766
484
  border: `2px solid ${isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)"}`,
@@ -771,25 +489,25 @@ var Checkbox = ({
771
489
  flexShrink: 0,
772
490
  transition: "background-color 0.15s, border-color 0.15s",
773
491
  backgroundColor: isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-card, #fff)"
774
- }, children: isChecked && /* @__PURE__ */ jsx13("svg", { viewBox: "0 0 12 10", fill: "none", style: { width: "0.625rem", height: "0.625rem" }, children: /* @__PURE__ */ jsx13("path", { d: "M1 5l3.5 3.5L11 1", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
775
- label && /* @__PURE__ */ jsx13("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
492
+ }, children: isChecked && /* @__PURE__ */ jsx9("svg", { viewBox: "0 0 12 10", fill: "none", style: { width: "0.625rem", height: "0.625rem" }, children: /* @__PURE__ */ jsx9("path", { d: "M1 5l3.5 3.5L11 1", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
493
+ label && /* @__PURE__ */ jsx9("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
776
494
  ] });
777
495
  };
778
496
  var Checkbox_default = Checkbox;
779
497
 
780
498
  // src/components/CopyButton/CopyButton.tsx
781
499
  import { Check, Copy } from "lucide-react";
782
- import { useState as useState10 } from "react";
783
- import { jsx as jsx14 } from "react/jsx-runtime";
500
+ import { useState as useState6 } from "react";
501
+ import { jsx as jsx10 } from "react/jsx-runtime";
784
502
  var CopyButton = ({ text }) => {
785
- const [copied, setCopied] = useState10(false);
786
- const [hovered, setHovered] = useState10(false);
503
+ const [copied, setCopied] = useState6(false);
504
+ const [hovered, setHovered] = useState6(false);
787
505
  const handleCopy = () => {
788
506
  navigator.clipboard.writeText(text);
789
507
  setCopied(true);
790
508
  setTimeout(() => setCopied(false), 2e3);
791
509
  };
792
- return /* @__PURE__ */ jsx14(
510
+ return /* @__PURE__ */ jsx10(
793
511
  "button",
794
512
  {
795
513
  onClick: handleCopy,
@@ -808,7 +526,7 @@ var CopyButton = ({ text }) => {
808
526
  cursor: "pointer",
809
527
  transition: "background-color 0.15s, color 0.15s"
810
528
  },
811
- children: copied ? /* @__PURE__ */ jsx14(Check, { style: { width: "1rem", height: "1rem" } }) : /* @__PURE__ */ jsx14(Copy, { style: { width: "1rem", height: "1rem" } })
529
+ children: copied ? /* @__PURE__ */ jsx10(Check, { style: { width: "1rem", height: "1rem" } }) : /* @__PURE__ */ jsx10(Copy, { style: { width: "1rem", height: "1rem" } })
812
530
  }
813
531
  );
814
532
  };
@@ -816,19 +534,19 @@ var CopyButton_default = CopyButton;
816
534
 
817
535
  // src/components/FileUpload/FileUpload.tsx
818
536
  import { Upload } from "lucide-react";
819
- import { useRef as useRef5, useState as useState11 } from "react";
820
- import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
537
+ import { useRef, useState as useState7 } from "react";
538
+ import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
821
539
  var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
822
- const [isDragging, setIsDragging] = useState11(false);
823
- const [isHovered, setIsHovered] = useState11(false);
824
- const [fileNames, setFileNames] = useState11([]);
825
- const inputRef = useRef5(null);
540
+ const [isDragging, setIsDragging] = useState7(false);
541
+ const [isHovered, setIsHovered] = useState7(false);
542
+ const [fileNames, setFileNames] = useState7([]);
543
+ const inputRef = useRef(null);
826
544
  const handleFiles = (list) => {
827
545
  setFileNames(Array.from(list).map((f) => f.name));
828
546
  onFileSelect == null ? void 0 : onFileSelect(list);
829
547
  };
830
548
  const isActive = isDragging || isHovered;
831
- return /* @__PURE__ */ jsxs10(
549
+ return /* @__PURE__ */ jsxs6(
832
550
  "div",
833
551
  {
834
552
  onClick: () => {
@@ -862,7 +580,7 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
862
580
  opacity: disabled ? 0.5 : 1
863
581
  },
864
582
  children: [
865
- /* @__PURE__ */ jsx15(
583
+ /* @__PURE__ */ jsx11(
866
584
  "input",
867
585
  {
868
586
  ref: inputRef,
@@ -874,9 +592,9 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
874
592
  onChange: (e) => e.target.files && handleFiles(e.target.files)
875
593
  }
876
594
  ),
877
- /* @__PURE__ */ jsx15(Upload, { size: 32, style: { color: "var(--ds-text-secondary, #64748b)" } }),
878
- fileNames.length > 0 ? /* @__PURE__ */ jsx15("p", { style: { fontSize: "0.875rem", color: "var(--ds-primary, #3b82f6)", fontWeight: 500, margin: 0 }, children: fileNames.join(", ") }) : /* @__PURE__ */ jsxs10("p", { style: { fontSize: "0.875rem", color: "var(--ds-text-secondary, #64748b)", margin: 0 }, children: [
879
- /* @__PURE__ */ jsx15("strong", { children: "Click to upload" }),
595
+ /* @__PURE__ */ jsx11(Upload, { size: 32, style: { color: "var(--ds-text-secondary, #64748b)" } }),
596
+ fileNames.length > 0 ? /* @__PURE__ */ jsx11("p", { style: { fontSize: "0.875rem", color: "var(--ds-primary, #3b82f6)", fontWeight: 500, margin: 0 }, children: fileNames.join(", ") }) : /* @__PURE__ */ jsxs6("p", { style: { fontSize: "0.875rem", color: "var(--ds-text-secondary, #64748b)", margin: 0 }, children: [
597
+ /* @__PURE__ */ jsx11("strong", { children: "Click to upload" }),
880
598
  " or drag and drop"
881
599
  ] })
882
600
  ]
@@ -886,7 +604,7 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
886
604
  var FileUpload_default = FileUpload;
887
605
 
888
606
  // src/components/Input/Input.tsx
889
- import { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
607
+ import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
890
608
  var inputCSS = `
891
609
  [data-ds-input]::placeholder { color: var(--ds-text-secondary, #64748b); }
892
610
  [data-ds-input]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
@@ -896,10 +614,10 @@ var inputCSS = `
896
614
  `;
897
615
  var Input = (_a) => {
898
616
  var _b = _a, { error, success, leftIcon, rightIcon, style } = _b, props = __objRest(_b, ["error", "success", "leftIcon", "rightIcon", "style"]);
899
- return /* @__PURE__ */ jsxs11(Fragment2, { children: [
900
- /* @__PURE__ */ jsx16("style", { href: "ds-input", precedence: "low", children: inputCSS }),
901
- /* @__PURE__ */ jsxs11("div", { style: { position: "relative", display: "flex", alignItems: "center", width: "100%" }, children: [
902
- leftIcon && /* @__PURE__ */ jsx16("span", { style: {
617
+ return /* @__PURE__ */ jsxs7(Fragment2, { children: [
618
+ /* @__PURE__ */ jsx12("style", { href: "ds-input", precedence: "low", children: inputCSS }),
619
+ /* @__PURE__ */ jsxs7("div", { style: { position: "relative", display: "flex", alignItems: "center", width: "100%" }, children: [
620
+ leftIcon && /* @__PURE__ */ jsx12("span", { style: {
903
621
  position: "absolute",
904
622
  left: "0.625rem",
905
623
  display: "flex",
@@ -907,7 +625,7 @@ var Input = (_a) => {
907
625
  color: "var(--ds-text-secondary, #64748b)",
908
626
  pointerEvents: "none"
909
627
  }, children: leftIcon }),
910
- /* @__PURE__ */ jsx16(
628
+ /* @__PURE__ */ jsx12(
911
629
  "input",
912
630
  __spreadValues({
913
631
  "data-ds-input": "",
@@ -930,7 +648,7 @@ var Input = (_a) => {
930
648
  }, style)
931
649
  }, props)
932
650
  ),
933
- rightIcon && /* @__PURE__ */ jsx16("span", { style: {
651
+ rightIcon && /* @__PURE__ */ jsx12("span", { style: {
934
652
  position: "absolute",
935
653
  right: "0.625rem",
936
654
  display: "flex",
@@ -944,10 +662,10 @@ var Input = (_a) => {
944
662
  var Input_default = Input;
945
663
 
946
664
  // src/components/Label/Label.tsx
947
- import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
665
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
948
666
  var Label = (_a) => {
949
667
  var _b = _a, { children, required, style } = _b, props = __objRest(_b, ["children", "required", "style"]);
950
- return /* @__PURE__ */ jsxs12("label", __spreadProps(__spreadValues({ style: __spreadValues({
668
+ return /* @__PURE__ */ jsxs8("label", __spreadProps(__spreadValues({ style: __spreadValues({
951
669
  display: "block",
952
670
  fontSize: "0.875rem",
953
671
  fontWeight: 500,
@@ -955,29 +673,29 @@ var Label = (_a) => {
955
673
  marginBottom: "0.375rem"
956
674
  }, style) }, props), { children: [
957
675
  children,
958
- required && /* @__PURE__ */ jsx17("span", { style: { color: "var(--ds-danger, #ef4444)", marginLeft: "0.25rem" }, children: "*" })
676
+ required && /* @__PURE__ */ jsx13("span", { style: { color: "var(--ds-danger, #ef4444)", marginLeft: "0.25rem" }, children: "*" })
959
677
  ] }));
960
678
  };
961
679
  var Label_default = Label;
962
680
 
963
681
  // src/components/PasswordInput/PasswordInput.tsx
964
682
  import { Eye, EyeOff } from "lucide-react";
965
- import { useState as useState12 } from "react";
966
- import { jsx as jsx18 } from "react/jsx-runtime";
683
+ import { useState as useState8 } from "react";
684
+ import { jsx as jsx14 } from "react/jsx-runtime";
967
685
  var PasswordInput = (props) => {
968
- const [visible, setVisible] = useState12(false);
969
- return /* @__PURE__ */ jsx18(
686
+ const [visible, setVisible] = useState8(false);
687
+ return /* @__PURE__ */ jsx14(
970
688
  Input_default,
971
689
  __spreadProps(__spreadValues({}, props), {
972
690
  type: visible ? "text" : "password",
973
- rightIcon: /* @__PURE__ */ jsx18(
691
+ rightIcon: /* @__PURE__ */ jsx14(
974
692
  "button",
975
693
  {
976
694
  type: "button",
977
695
  onClick: () => setVisible((v) => !v),
978
696
  style: { background: "none", border: "none", cursor: "pointer", padding: 0, display: "flex", pointerEvents: "all" },
979
697
  tabIndex: -1,
980
- children: visible ? /* @__PURE__ */ jsx18(EyeOff, { size: 16 }) : /* @__PURE__ */ jsx18(Eye, { size: 16 })
698
+ children: visible ? /* @__PURE__ */ jsx14(EyeOff, { size: 16 }) : /* @__PURE__ */ jsx14(Eye, { size: 16 })
981
699
  }
982
700
  )
983
701
  })
@@ -986,10 +704,10 @@ var PasswordInput = (props) => {
986
704
  var PasswordInput_default = PasswordInput;
987
705
 
988
706
  // src/components/Progress/Progress.tsx
989
- import { jsx as jsx19 } from "react/jsx-runtime";
707
+ import { jsx as jsx15 } from "react/jsx-runtime";
990
708
  var Progress = ({ value = 0 }) => {
991
709
  const pct = Math.min(100, Math.max(0, value));
992
- return /* @__PURE__ */ jsx19(
710
+ return /* @__PURE__ */ jsx15(
993
711
  "div",
994
712
  {
995
713
  role: "progressbar",
@@ -1003,7 +721,7 @@ var Progress = ({ value = 0 }) => {
1003
721
  borderRadius: "9999px",
1004
722
  overflow: "hidden"
1005
723
  },
1006
- children: /* @__PURE__ */ jsx19("div", { style: {
724
+ children: /* @__PURE__ */ jsx15("div", { style: {
1007
725
  height: "100%",
1008
726
  width: `${pct}%`,
1009
727
  backgroundColor: "var(--ds-primary, #3b82f6)",
@@ -1016,8 +734,8 @@ var Progress = ({ value = 0 }) => {
1016
734
  var Progress_default = Progress;
1017
735
 
1018
736
  // src/components/RadioGroup/RadioGroup.tsx
1019
- import { useState as useState13 } from "react";
1020
- import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
737
+ import { useState as useState9 } from "react";
738
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
1021
739
  var RadioGroup = ({
1022
740
  options,
1023
741
  name,
@@ -1026,16 +744,16 @@ var RadioGroup = ({
1026
744
  disabled,
1027
745
  onChange
1028
746
  }) => {
1029
- const [internal, setInternal] = useState13(defaultValue);
747
+ const [internal, setInternal] = useState9(defaultValue);
1030
748
  const selected = value !== void 0 ? value : internal;
1031
749
  const handleChange = (val) => {
1032
750
  if (disabled) return;
1033
751
  setInternal(val);
1034
752
  onChange == null ? void 0 : onChange(val);
1035
753
  };
1036
- return /* @__PURE__ */ jsx20("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: options.map((option) => {
754
+ return /* @__PURE__ */ jsx16("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: options.map((option) => {
1037
755
  const isSelected = selected === option.value;
1038
- return /* @__PURE__ */ jsxs13("label", { style: {
756
+ return /* @__PURE__ */ jsxs9("label", { style: {
1039
757
  display: "inline-flex",
1040
758
  alignItems: "center",
1041
759
  gap: "0.5rem",
@@ -1043,7 +761,7 @@ var RadioGroup = ({
1043
761
  userSelect: "none",
1044
762
  opacity: disabled ? 0.5 : 1
1045
763
  }, children: [
1046
- /* @__PURE__ */ jsx20(
764
+ /* @__PURE__ */ jsx16(
1047
765
  "input",
1048
766
  {
1049
767
  type: "radio",
@@ -1055,7 +773,7 @@ var RadioGroup = ({
1055
773
  style: { position: "absolute", opacity: 0, width: 0, height: 0 }
1056
774
  }
1057
775
  ),
1058
- /* @__PURE__ */ jsx20("span", { style: {
776
+ /* @__PURE__ */ jsx16("span", { style: {
1059
777
  width: "1.125rem",
1060
778
  height: "1.125rem",
1061
779
  borderRadius: "9999px",
@@ -1066,13 +784,13 @@ var RadioGroup = ({
1066
784
  flexShrink: 0,
1067
785
  backgroundColor: "var(--ds-card, #fff)",
1068
786
  transition: "border-color 0.15s"
1069
- }, children: isSelected && /* @__PURE__ */ jsx20("span", { style: {
787
+ }, children: isSelected && /* @__PURE__ */ jsx16("span", { style: {
1070
788
  width: "0.5rem",
1071
789
  height: "0.5rem",
1072
790
  borderRadius: "9999px",
1073
791
  backgroundColor: "var(--ds-primary, #3b82f6)"
1074
792
  } }) }),
1075
- /* @__PURE__ */ jsx20("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: option.label })
793
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: option.label })
1076
794
  ] }, option.value);
1077
795
  }) });
1078
796
  };
@@ -1080,8 +798,8 @@ var RadioGroup_default = RadioGroup;
1080
798
 
1081
799
  // src/components/Select/Select.tsx
1082
800
  import { Check as Check2, ChevronDown as ChevronDown2 } from "lucide-react";
1083
- import { useEffect as useEffect5, useRef as useRef6, useState as useState14 } from "react";
1084
- import { Fragment as Fragment3, jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
801
+ import { useEffect, useRef as useRef2, useState as useState10 } from "react";
802
+ import { Fragment as Fragment3, jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
1085
803
  var selectCSS = `
1086
804
  [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); }
1087
805
  `;
@@ -1094,10 +812,10 @@ var Select = ({
1094
812
  onChange
1095
813
  }) => {
1096
814
  var _a;
1097
- const [internal, setInternal] = useState14(defaultValue);
1098
- const [open, setOpen] = useState14(false);
1099
- const [hoveredOption, setHoveredOption] = useState14(null);
1100
- const ref = useRef6(null);
815
+ const [internal, setInternal] = useState10(defaultValue);
816
+ const [open, setOpen] = useState10(false);
817
+ const [hoveredOption, setHoveredOption] = useState10(null);
818
+ const ref = useRef2(null);
1101
819
  const selected = value !== void 0 ? value : internal;
1102
820
  const selectedLabel = (_a = options.find((o) => o.value === selected)) == null ? void 0 : _a.label;
1103
821
  const handleSelect = (val) => {
@@ -1105,22 +823,22 @@ var Select = ({
1105
823
  setOpen(false);
1106
824
  onChange == null ? void 0 : onChange(val);
1107
825
  };
1108
- useEffect5(() => {
826
+ useEffect(() => {
1109
827
  const handleOutside = (e) => {
1110
828
  if (ref.current && !ref.current.contains(e.target)) setOpen(false);
1111
829
  };
1112
830
  document.addEventListener("mousedown", handleOutside);
1113
831
  return () => document.removeEventListener("mousedown", handleOutside);
1114
832
  }, []);
1115
- return /* @__PURE__ */ jsxs14(Fragment3, { children: [
1116
- /* @__PURE__ */ jsx21("style", { href: "ds-select", precedence: "low", children: selectCSS }),
1117
- /* @__PURE__ */ jsxs14("div", { ref, style: {
833
+ return /* @__PURE__ */ jsxs10(Fragment3, { children: [
834
+ /* @__PURE__ */ jsx17("style", { href: "ds-select", precedence: "low", children: selectCSS }),
835
+ /* @__PURE__ */ jsxs10("div", { ref, style: {
1118
836
  position: "relative",
1119
837
  width: "100%",
1120
838
  opacity: disabled ? 0.5 : 1,
1121
839
  pointerEvents: disabled ? "none" : void 0
1122
840
  }, children: [
1123
- /* @__PURE__ */ jsxs14(
841
+ /* @__PURE__ */ jsxs10(
1124
842
  "button",
1125
843
  {
1126
844
  type: "button",
@@ -1146,8 +864,8 @@ var Select = ({
1146
864
  fontFamily: "inherit"
1147
865
  },
1148
866
  children: [
1149
- /* @__PURE__ */ jsx21("span", { style: { color: selectedLabel ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)" }, children: selectedLabel != null ? selectedLabel : placeholder }),
1150
- /* @__PURE__ */ jsx21(
867
+ /* @__PURE__ */ jsx17("span", { style: { color: selectedLabel ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)" }, children: selectedLabel != null ? selectedLabel : placeholder }),
868
+ /* @__PURE__ */ jsx17(
1151
869
  ChevronDown2,
1152
870
  {
1153
871
  size: 16,
@@ -1162,7 +880,7 @@ var Select = ({
1162
880
  ]
1163
881
  }
1164
882
  ),
1165
- open && /* @__PURE__ */ jsx21("div", { style: {
883
+ open && /* @__PURE__ */ jsx17("div", { style: {
1166
884
  position: "absolute",
1167
885
  top: "calc(100% + 0.25rem)",
1168
886
  left: 0,
@@ -1176,7 +894,7 @@ var Select = ({
1176
894
  }, children: options.map((option) => {
1177
895
  const isSelected = selected === option.value;
1178
896
  const isHovered = hoveredOption === option.value;
1179
- return /* @__PURE__ */ jsxs14(
897
+ return /* @__PURE__ */ jsxs10(
1180
898
  "div",
1181
899
  {
1182
900
  onClick: () => handleSelect(option.value),
@@ -1195,7 +913,7 @@ var Select = ({
1195
913
  transition: "background-color 0.1s"
1196
914
  },
1197
915
  children: [
1198
- isSelected ? /* @__PURE__ */ jsx21(Check2, { size: 14, style: { color: "var(--ds-primary, #3b82f6)", flexShrink: 0 } }) : /* @__PURE__ */ jsx21("span", { style: { width: 14, flexShrink: 0 } }),
916
+ isSelected ? /* @__PURE__ */ jsx17(Check2, { size: 14, style: { color: "var(--ds-primary, #3b82f6)", flexShrink: 0 } }) : /* @__PURE__ */ jsx17("span", { style: { width: 14, flexShrink: 0 } }),
1199
917
  option.label
1200
918
  ]
1201
919
  },
@@ -1208,13 +926,13 @@ var Select = ({
1208
926
  var Select_default = Select;
1209
927
 
1210
928
  // src/components/Skeleton/Skeleton.tsx
1211
- import { Fragment as Fragment4, jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
1212
- var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ jsxs15(Fragment4, { children: [
1213
- /* @__PURE__ */ jsx22("style", { href: "ds-skeleton", precedence: "low", children: `
929
+ import { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
930
+ var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ jsxs11(Fragment4, { children: [
931
+ /* @__PURE__ */ jsx18("style", { href: "ds-skeleton", precedence: "low", children: `
1214
932
  @keyframes ds-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
1215
933
  [data-ds-skeleton] { animation: ds-pulse 1.5s ease-in-out infinite; }
1216
934
  ` }),
1217
- /* @__PURE__ */ jsx22(
935
+ /* @__PURE__ */ jsx18(
1218
936
  "div",
1219
937
  {
1220
938
  "data-ds-skeleton": "",
@@ -1231,8 +949,8 @@ var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PU
1231
949
  var Skeleton_default = Skeleton;
1232
950
 
1233
951
  // src/components/Slider/Slider.tsx
1234
- import { useState as useState15 } from "react";
1235
- import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
952
+ import { useState as useState11 } from "react";
953
+ import { Fragment as Fragment5, jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
1236
954
  var sliderCSS = `
1237
955
  [data-ds-slider] {
1238
956
  -webkit-appearance: none;
@@ -1283,7 +1001,7 @@ var Slider = ({
1283
1001
  disabled,
1284
1002
  onChange
1285
1003
  }) => {
1286
- const [internal, setInternal] = useState15(defaultValue);
1004
+ const [internal, setInternal] = useState11(defaultValue);
1287
1005
  const current = value !== void 0 ? value : internal;
1288
1006
  const fill = `${(current - min) / (max - min) * 100}%`;
1289
1007
  const handleChange = (e) => {
@@ -1291,13 +1009,13 @@ var Slider = ({
1291
1009
  setInternal(val);
1292
1010
  onChange == null ? void 0 : onChange(val);
1293
1011
  };
1294
- return /* @__PURE__ */ jsxs16(Fragment5, { children: [
1295
- /* @__PURE__ */ jsx23("style", { href: "ds-slider", precedence: "low", children: sliderCSS }),
1296
- /* @__PURE__ */ jsx23("div", { style: {
1012
+ return /* @__PURE__ */ jsxs12(Fragment5, { children: [
1013
+ /* @__PURE__ */ jsx19("style", { href: "ds-slider", precedence: "low", children: sliderCSS }),
1014
+ /* @__PURE__ */ jsx19("div", { style: {
1297
1015
  width: "100%",
1298
1016
  padding: "0.25rem 0",
1299
1017
  opacity: disabled ? 0.5 : 1
1300
- }, children: /* @__PURE__ */ jsx23(
1018
+ }, children: /* @__PURE__ */ jsx19(
1301
1019
  "input",
1302
1020
  {
1303
1021
  type: "range",
@@ -1317,11 +1035,11 @@ var Slider_default = Slider;
1317
1035
 
1318
1036
  // src/components/Spinner/Spinner.tsx
1319
1037
  import { Loader2 } from "lucide-react";
1320
- import { Fragment as Fragment6, jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
1038
+ import { Fragment as Fragment6, jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
1321
1039
  var sizePx = { sm: 16, md: 24, lg: 32 };
1322
- var Spinner = ({ size = "md" }) => /* @__PURE__ */ jsxs17(Fragment6, { children: [
1323
- /* @__PURE__ */ jsx24("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
1324
- /* @__PURE__ */ jsx24(
1040
+ var Spinner = ({ size = "md" }) => /* @__PURE__ */ jsxs13(Fragment6, { children: [
1041
+ /* @__PURE__ */ jsx20("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
1042
+ /* @__PURE__ */ jsx20(
1325
1043
  Loader2,
1326
1044
  {
1327
1045
  size: sizePx[size],
@@ -1333,8 +1051,8 @@ var Spinner = ({ size = "md" }) => /* @__PURE__ */ jsxs17(Fragment6, { children:
1333
1051
  var Spinner_default = Spinner;
1334
1052
 
1335
1053
  // src/components/Switch/Switch.tsx
1336
- import { useState as useState16 } from "react";
1337
- import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
1054
+ import { useState as useState12 } from "react";
1055
+ import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
1338
1056
  var Switch = ({
1339
1057
  label,
1340
1058
  checked,
@@ -1343,7 +1061,7 @@ var Switch = ({
1343
1061
  id,
1344
1062
  onChange
1345
1063
  }) => {
1346
- const [internal, setInternal] = useState16(defaultChecked);
1064
+ const [internal, setInternal] = useState12(defaultChecked);
1347
1065
  const isOn = checked !== void 0 ? checked : internal;
1348
1066
  const handleToggle = () => {
1349
1067
  if (disabled) return;
@@ -1351,7 +1069,7 @@ var Switch = ({
1351
1069
  setInternal(next);
1352
1070
  onChange == null ? void 0 : onChange(next);
1353
1071
  };
1354
- return /* @__PURE__ */ jsxs18("label", { htmlFor: id, style: {
1072
+ return /* @__PURE__ */ jsxs14("label", { htmlFor: id, style: {
1355
1073
  display: "inline-flex",
1356
1074
  alignItems: "center",
1357
1075
  gap: "0.625rem",
@@ -1359,7 +1077,7 @@ var Switch = ({
1359
1077
  userSelect: "none",
1360
1078
  opacity: disabled ? 0.5 : 1
1361
1079
  }, children: [
1362
- /* @__PURE__ */ jsx25(
1080
+ /* @__PURE__ */ jsx21(
1363
1081
  "input",
1364
1082
  {
1365
1083
  type: "checkbox",
@@ -1370,7 +1088,7 @@ var Switch = ({
1370
1088
  style: { position: "absolute", opacity: 0, width: 0, height: 0 }
1371
1089
  }
1372
1090
  ),
1373
- /* @__PURE__ */ jsx25("span", { style: {
1091
+ /* @__PURE__ */ jsx21("span", { style: {
1374
1092
  width: "2.75rem",
1375
1093
  height: "1.5rem",
1376
1094
  borderRadius: "9999px",
@@ -1378,7 +1096,7 @@ var Switch = ({
1378
1096
  position: "relative",
1379
1097
  transition: "background-color 0.2s",
1380
1098
  flexShrink: 0
1381
- }, children: /* @__PURE__ */ jsx25("span", { style: {
1099
+ }, children: /* @__PURE__ */ jsx21("span", { style: {
1382
1100
  position: "absolute",
1383
1101
  top: "0.175rem",
1384
1102
  left: "0.175rem",
@@ -1390,41 +1108,41 @@ var Switch = ({
1390
1108
  transition: "transform 0.2s",
1391
1109
  transform: isOn ? "translateX(1.25rem)" : "translateX(0)"
1392
1110
  } }) }),
1393
- label && /* @__PURE__ */ jsx25("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
1111
+ label && /* @__PURE__ */ jsx21("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
1394
1112
  ] });
1395
1113
  };
1396
1114
  var Switch_default = Switch;
1397
1115
 
1398
1116
  // src/components/Table/Table.tsx
1399
- import { Fragment as Fragment7, jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
1117
+ import { Fragment as Fragment7, jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
1400
1118
  var tableCSS = `
1401
1119
  [data-ds-table-row]:hover [data-ds-table-cell] { background-color: var(--ds-muted, #f1f5f9); }
1402
1120
  `;
1403
1121
  var Table = (_a) => {
1404
1122
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1405
- return /* @__PURE__ */ jsxs19(Fragment7, { children: [
1406
- /* @__PURE__ */ jsx26("style", { href: "ds-table", precedence: "low", children: tableCSS }),
1407
- /* @__PURE__ */ jsx26("div", { style: {
1123
+ return /* @__PURE__ */ jsxs15(Fragment7, { children: [
1124
+ /* @__PURE__ */ jsx22("style", { href: "ds-table", precedence: "low", children: tableCSS }),
1125
+ /* @__PURE__ */ jsx22("div", { style: {
1408
1126
  width: "100%",
1409
1127
  overflowX: "auto",
1410
1128
  border: "1px solid var(--ds-border, #e2e8f0)",
1411
1129
  borderRadius: "0.5rem"
1412
- }, children: /* @__PURE__ */ jsx26("table", __spreadValues({ style: __spreadValues({
1130
+ }, children: /* @__PURE__ */ jsx22("table", __spreadValues({ style: __spreadValues({
1413
1131
  width: "100%",
1414
1132
  borderCollapse: "collapse",
1415
1133
  fontSize: "0.875rem"
1416
1134
  }, style) }, props)) })
1417
1135
  ] });
1418
1136
  };
1419
- var TableHead = (props) => /* @__PURE__ */ jsx26("thead", __spreadValues({}, props));
1420
- var TableBody = (props) => /* @__PURE__ */ jsx26("tbody", __spreadValues({}, props));
1137
+ var TableHead = (props) => /* @__PURE__ */ jsx22("thead", __spreadValues({}, props));
1138
+ var TableBody = (props) => /* @__PURE__ */ jsx22("tbody", __spreadValues({}, props));
1421
1139
  var TableRow = (_a) => {
1422
1140
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1423
- return /* @__PURE__ */ jsx26("tr", __spreadValues({ "data-ds-table-row": "", style }, props));
1141
+ return /* @__PURE__ */ jsx22("tr", __spreadValues({ "data-ds-table-row": "", style }, props));
1424
1142
  };
1425
1143
  var TableHeader = (_a) => {
1426
1144
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1427
- return /* @__PURE__ */ jsx26("th", __spreadValues({ style: __spreadValues({
1145
+ return /* @__PURE__ */ jsx22("th", __spreadValues({ style: __spreadValues({
1428
1146
  padding: "0.75rem 1rem",
1429
1147
  textAlign: "left",
1430
1148
  fontWeight: 500,
@@ -1436,7 +1154,7 @@ var TableHeader = (_a) => {
1436
1154
  };
1437
1155
  var TableCell = (_a) => {
1438
1156
  var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1439
- return /* @__PURE__ */ jsx26(
1157
+ return /* @__PURE__ */ jsx22(
1440
1158
  "td",
1441
1159
  __spreadValues({
1442
1160
  "data-ds-table-cell": "",
@@ -1451,15 +1169,15 @@ var TableCell = (_a) => {
1451
1169
  };
1452
1170
 
1453
1171
  // src/components/Tabs/Tabs.tsx
1454
- import { useState as useState17 } from "react";
1455
- import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
1172
+ import { useState as useState13 } from "react";
1173
+ import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
1456
1174
  var Tabs = ({ tabs, defaultValue }) => {
1457
1175
  var _a, _b;
1458
- const [active, setActive] = useState17((_b = defaultValue != null ? defaultValue : (_a = tabs[0]) == null ? void 0 : _a.value) != null ? _b : "");
1459
- const [hovered, setHovered] = useState17(null);
1176
+ const [active, setActive] = useState13((_b = defaultValue != null ? defaultValue : (_a = tabs[0]) == null ? void 0 : _a.value) != null ? _b : "");
1177
+ const [hovered, setHovered] = useState13(null);
1460
1178
  const activeTab = tabs.find((t) => t.value === active);
1461
- return /* @__PURE__ */ jsxs20("div", { style: { display: "flex", flexDirection: "column" }, children: [
1462
- /* @__PURE__ */ jsx27("div", { role: "tablist", style: {
1179
+ return /* @__PURE__ */ jsxs16("div", { style: { display: "flex", flexDirection: "column" }, children: [
1180
+ /* @__PURE__ */ jsx23("div", { role: "tablist", style: {
1463
1181
  display: "inline-flex",
1464
1182
  backgroundColor: "var(--ds-muted, #f1f5f9)",
1465
1183
  borderRadius: "0.5rem",
@@ -1468,7 +1186,7 @@ var Tabs = ({ tabs, defaultValue }) => {
1468
1186
  }, children: tabs.map((tab) => {
1469
1187
  const isActive = active === tab.value;
1470
1188
  const isHovered = hovered === tab.value;
1471
- return /* @__PURE__ */ jsxs20(
1189
+ return /* @__PURE__ */ jsxs16(
1472
1190
  "button",
1473
1191
  {
1474
1192
  role: "tab",
@@ -1493,14 +1211,14 @@ var Tabs = ({ tabs, defaultValue }) => {
1493
1211
  whiteSpace: "nowrap"
1494
1212
  },
1495
1213
  children: [
1496
- tab.icon && /* @__PURE__ */ jsx27("span", { style: { display: "flex", alignItems: "center" }, children: tab.icon }),
1214
+ tab.icon && /* @__PURE__ */ jsx23("span", { style: { display: "flex", alignItems: "center" }, children: tab.icon }),
1497
1215
  tab.label
1498
1216
  ]
1499
1217
  },
1500
1218
  tab.value
1501
1219
  );
1502
1220
  }) }),
1503
- /* @__PURE__ */ jsx27("div", { role: "tabpanel", style: {
1221
+ /* @__PURE__ */ jsx23("div", { role: "tabpanel", style: {
1504
1222
  paddingTop: "1rem",
1505
1223
  fontSize: "0.875rem",
1506
1224
  color: "var(--ds-text-secondary, #64748b)"
@@ -1510,7 +1228,7 @@ var Tabs = ({ tabs, defaultValue }) => {
1510
1228
  var Tabs_default = Tabs;
1511
1229
 
1512
1230
  // src/components/Textarea/Textarea.tsx
1513
- import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
1231
+ import { Fragment as Fragment8, jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
1514
1232
  var textareaCSS = `
1515
1233
  [data-ds-textarea]::placeholder { color: var(--ds-text-secondary, #64748b); }
1516
1234
  [data-ds-textarea]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
@@ -1520,9 +1238,9 @@ var textareaCSS = `
1520
1238
  `;
1521
1239
  var Textarea = (_a) => {
1522
1240
  var _b = _a, { error, style } = _b, props = __objRest(_b, ["error", "style"]);
1523
- return /* @__PURE__ */ jsxs21(Fragment8, { children: [
1524
- /* @__PURE__ */ jsx28("style", { href: "ds-textarea", precedence: "low", children: textareaCSS }),
1525
- /* @__PURE__ */ jsx28(
1241
+ return /* @__PURE__ */ jsxs17(Fragment8, { children: [
1242
+ /* @__PURE__ */ jsx24("style", { href: "ds-textarea", precedence: "low", children: textareaCSS }),
1243
+ /* @__PURE__ */ jsx24(
1526
1244
  "textarea",
1527
1245
  __spreadValues({
1528
1246
  "data-ds-textarea": "",
@@ -1548,8 +1266,8 @@ var Textarea = (_a) => {
1548
1266
  var Textarea_default = Textarea;
1549
1267
 
1550
1268
  // src/components/Tooltip/Tooltip.tsx
1551
- import { useState as useState18 } from "react";
1552
- import { Fragment as Fragment9, jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
1269
+ import { useState as useState14 } from "react";
1270
+ import { Fragment as Fragment9, jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
1553
1271
  var positionStyle = {
1554
1272
  top: { bottom: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
1555
1273
  bottom: { top: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
@@ -1567,11 +1285,11 @@ var tooltipCSS = `
1567
1285
  [data-ds-tt="left"]::before { left: 100%; top: 50%; transform: translateY(-50%); border-left-color: var(--ds-tooltip-bg, #0f172a); }
1568
1286
  [data-ds-tt="right"]::before { right: 100%; top: 50%; transform: translateY(-50%); border-right-color: var(--ds-tooltip-bg, #0f172a); }
1569
1287
  `;
1570
- var Tooltip5 = ({ content, children, position = "top" }) => {
1571
- const [visible, setVisible] = useState18(false);
1572
- return /* @__PURE__ */ jsxs22(Fragment9, { children: [
1573
- /* @__PURE__ */ jsx29("style", { href: "ds-tooltip", precedence: "low", children: tooltipCSS }),
1574
- /* @__PURE__ */ jsxs22(
1288
+ var Tooltip = ({ content, children, position = "top" }) => {
1289
+ const [visible, setVisible] = useState14(false);
1290
+ return /* @__PURE__ */ jsxs18(Fragment9, { children: [
1291
+ /* @__PURE__ */ jsx25("style", { href: "ds-tooltip", precedence: "low", children: tooltipCSS }),
1292
+ /* @__PURE__ */ jsxs18(
1575
1293
  "span",
1576
1294
  {
1577
1295
  style: { position: "relative", display: "inline-flex" },
@@ -1581,7 +1299,7 @@ var Tooltip5 = ({ content, children, position = "top" }) => {
1581
1299
  onBlur: () => setVisible(false),
1582
1300
  children: [
1583
1301
  children,
1584
- /* @__PURE__ */ jsx29(
1302
+ /* @__PURE__ */ jsx25(
1585
1303
  "span",
1586
1304
  {
1587
1305
  role: "tooltip",
@@ -1608,14 +1326,12 @@ var Tooltip5 = ({ content, children, position = "top" }) => {
1608
1326
  )
1609
1327
  ] });
1610
1328
  };
1611
- var Tooltip_default = Tooltip5;
1329
+ var Tooltip_default = Tooltip;
1612
1330
  export {
1613
1331
  Accordion_default as Accordion,
1614
1332
  Alert_default as Alert,
1615
- AreaChart_default as AreaChart,
1616
1333
  Avatar_default as Avatar,
1617
1334
  Badge_default as Badge,
1618
- BarChart_default as BarChart,
1619
1335
  Breadcrumb_default as Breadcrumb,
1620
1336
  Button_default as Button,
1621
1337
  Card,
@@ -1629,9 +1345,7 @@ export {
1629
1345
  FileUpload_default as FileUpload,
1630
1346
  Input_default as Input,
1631
1347
  Label_default as Label,
1632
- LineChart_default as LineChart,
1633
1348
  PasswordInput_default as PasswordInput,
1634
- PieChart_default as PieChart,
1635
1349
  Progress_default as Progress,
1636
1350
  RadioGroup_default as RadioGroup,
1637
1351
  Select_default as Select,