@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/README.md +0 -115
- package/dist/index.cjs +171 -432
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +1 -77
- package/dist/index.d.ts +1 -77
- package/dist/index.js +171 -457
- package/dist/index.js.map +1 -1
- package/package.json +2 -3
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
|
|
110
|
+
var import_react2 = require("react");
|
|
368
111
|
var import_lucide_react = require("lucide-react");
|
|
369
|
-
var
|
|
112
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
370
113
|
var Accordion = ({ items, defaultValue, multiple = false }) => {
|
|
371
|
-
const [open, setOpen] = (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
428
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
471
|
-
success: /* @__PURE__ */ (0,
|
|
472
|
-
warning: /* @__PURE__ */ (0,
|
|
473
|
-
danger: /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
486
|
-
/* @__PURE__ */ (0,
|
|
487
|
-
/* @__PURE__ */ (0,
|
|
488
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
292
|
+
var import_react3 = require("react");
|
|
550
293
|
var import_lucide_react3 = require("lucide-react");
|
|
551
|
-
var
|
|
294
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
552
295
|
var Breadcrumb = ({ items }) => {
|
|
553
|
-
const [hovered, setHovered] = (0,
|
|
554
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
566
|
-
i > 0 && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
600
|
-
var
|
|
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,
|
|
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,
|
|
681
|
-
/* @__PURE__ */ (0,
|
|
682
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
760
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
808
|
-
label && /* @__PURE__ */ (0,
|
|
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
|
|
816
|
-
var
|
|
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,
|
|
819
|
-
const [hovered, setHovered] = (0,
|
|
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,
|
|
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,
|
|
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
|
|
853
|
-
var
|
|
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,
|
|
856
|
-
const [isHovered, setIsHovered] = (0,
|
|
857
|
-
const [fileNames, setFileNames] = (0,
|
|
858
|
-
const inputRef = (0,
|
|
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,
|
|
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,
|
|
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,
|
|
911
|
-
fileNames.length > 0 ? /* @__PURE__ */ (0,
|
|
912
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
933
|
-
/* @__PURE__ */ (0,
|
|
934
|
-
/* @__PURE__ */ (0,
|
|
935
|
-
leftIcon && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
999
|
-
var
|
|
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,
|
|
1002
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
1053
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
1117
|
-
var
|
|
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,
|
|
1131
|
-
const [open, setOpen] = (0,
|
|
1132
|
-
const [hoveredOption, setHoveredOption] = (0,
|
|
1133
|
-
const ref = (0,
|
|
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,
|
|
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,
|
|
1149
|
-
/* @__PURE__ */ (0,
|
|
1150
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
1183
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
1245
|
-
var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ (0,
|
|
1246
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
1268
|
-
var
|
|
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,
|
|
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,
|
|
1328
|
-
/* @__PURE__ */ (0,
|
|
1329
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
1356
|
-
/* @__PURE__ */ (0,
|
|
1357
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
1370
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
1439
|
-
/* @__PURE__ */ (0,
|
|
1440
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
1453
|
-
var TableBody = (props) => /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
1488
|
-
var
|
|
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,
|
|
1492
|
-
const [hovered, setHovered] = (0,
|
|
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,
|
|
1495
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
1557
|
-
/* @__PURE__ */ (0,
|
|
1558
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
1585
|
-
var
|
|
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
|
|
1604
|
-
const [visible, setVisible] = (0,
|
|
1605
|
-
return /* @__PURE__ */ (0,
|
|
1606
|
-
/* @__PURE__ */ (0,
|
|
1607
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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 =
|
|
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,
|