@efiche/design 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -20
- package/dist/index.cjs +342 -135
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +69 -1
- package/dist/index.d.ts +69 -1
- package/dist/index.js +371 -135
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -51,8 +51,10 @@ var index_exports = {};
|
|
|
51
51
|
__export(index_exports, {
|
|
52
52
|
Accordion: () => Accordion_default,
|
|
53
53
|
Alert: () => Alert_default,
|
|
54
|
+
AreaChart: () => AreaChart_default,
|
|
54
55
|
Avatar: () => Avatar_default,
|
|
55
56
|
Badge: () => Badge_default,
|
|
57
|
+
BarChart: () => BarChart_default,
|
|
56
58
|
Breadcrumb: () => Breadcrumb_default,
|
|
57
59
|
Button: () => Button_default,
|
|
58
60
|
Card: () => Card,
|
|
@@ -66,7 +68,9 @@ __export(index_exports, {
|
|
|
66
68
|
FileUpload: () => FileUpload_default,
|
|
67
69
|
Input: () => Input_default,
|
|
68
70
|
Label: () => Label_default,
|
|
71
|
+
LineChart: () => LineChart_default,
|
|
69
72
|
PasswordInput: () => PasswordInput_default,
|
|
73
|
+
PieChart: () => PieChart_default,
|
|
70
74
|
Progress: () => Progress_default,
|
|
71
75
|
RadioGroup: () => RadioGroup_default,
|
|
72
76
|
Select: () => Select_default,
|
|
@@ -105,10 +109,209 @@ var useTheme = () => {
|
|
|
105
109
|
return ctx;
|
|
106
110
|
};
|
|
107
111
|
|
|
112
|
+
// src/components/Charts/LineChart.tsx
|
|
113
|
+
var import_recharts = require("recharts");
|
|
114
|
+
|
|
115
|
+
// src/components/Charts/chartUtils.ts
|
|
116
|
+
var CHART_COLORS = [
|
|
117
|
+
"#3b82f6",
|
|
118
|
+
// blue
|
|
119
|
+
"#22c55e",
|
|
120
|
+
// green
|
|
121
|
+
"#f59e0b",
|
|
122
|
+
// amber
|
|
123
|
+
"#ef4444",
|
|
124
|
+
// red
|
|
125
|
+
"#8b5cf6",
|
|
126
|
+
// violet
|
|
127
|
+
"#06b6d4",
|
|
128
|
+
// cyan
|
|
129
|
+
"#f97316",
|
|
130
|
+
// orange
|
|
131
|
+
"#ec4899"
|
|
132
|
+
// pink
|
|
133
|
+
];
|
|
134
|
+
function getChartTheme(theme) {
|
|
135
|
+
const isDark = theme === "dark";
|
|
136
|
+
return {
|
|
137
|
+
gridColor: isDark ? "#334155" : "#e2e8f0",
|
|
138
|
+
axisStroke: isDark ? "#94a3b8" : "#64748b",
|
|
139
|
+
axisTick: { fill: isDark ? "#94a3b8" : "#64748b", fontSize: 12 },
|
|
140
|
+
primaryColor: isDark ? "#60a5fa" : "#3b82f6",
|
|
141
|
+
tooltipStyle: {
|
|
142
|
+
backgroundColor: isDark ? "#1e293b" : "#ffffff",
|
|
143
|
+
border: `1px solid ${isDark ? "#334155" : "#e2e8f0"}`,
|
|
144
|
+
borderRadius: "6px",
|
|
145
|
+
color: isDark ? "#f1f5f9" : "#0f172a",
|
|
146
|
+
fontSize: "0.8125rem"
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// src/components/Charts/LineChart.tsx
|
|
152
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
153
|
+
var LineChart = ({
|
|
154
|
+
data,
|
|
155
|
+
xKey,
|
|
156
|
+
lines,
|
|
157
|
+
height = 250,
|
|
158
|
+
legend = false,
|
|
159
|
+
grid = true,
|
|
160
|
+
theme = "light"
|
|
161
|
+
}) => {
|
|
162
|
+
const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
|
|
163
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_recharts.LineChart, { data, children: [
|
|
164
|
+
grid && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3", stroke: gridColor }),
|
|
165
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.XAxis, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
|
|
166
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.YAxis, { stroke: axisStroke, tick: axisTick }),
|
|
167
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.Tooltip, { contentStyle: tooltipStyle }),
|
|
168
|
+
legend && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_recharts.Legend, {}),
|
|
169
|
+
lines.map((line, i) => {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
const color = (_a = line.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
|
|
172
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
173
|
+
import_recharts.Line,
|
|
174
|
+
{
|
|
175
|
+
type: "monotone",
|
|
176
|
+
dataKey: line.dataKey,
|
|
177
|
+
name: (_b = line.label) != null ? _b : line.dataKey,
|
|
178
|
+
stroke: color,
|
|
179
|
+
strokeWidth: 2,
|
|
180
|
+
dot: { fill: color, r: 4 },
|
|
181
|
+
activeDot: { r: 6 }
|
|
182
|
+
},
|
|
183
|
+
line.dataKey
|
|
184
|
+
);
|
|
185
|
+
})
|
|
186
|
+
] }) });
|
|
187
|
+
};
|
|
188
|
+
var LineChart_default = LineChart;
|
|
189
|
+
|
|
190
|
+
// src/components/Charts/BarChart.tsx
|
|
191
|
+
var import_recharts2 = require("recharts");
|
|
192
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
193
|
+
var BarChart = ({
|
|
194
|
+
data,
|
|
195
|
+
xKey,
|
|
196
|
+
bars,
|
|
197
|
+
height = 250,
|
|
198
|
+
legend = false,
|
|
199
|
+
grid = true,
|
|
200
|
+
theme = "light"
|
|
201
|
+
}) => {
|
|
202
|
+
const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
|
|
203
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_recharts2.BarChart, { data, children: [
|
|
204
|
+
grid && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.CartesianGrid, { strokeDasharray: "3 3", stroke: gridColor }),
|
|
205
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.XAxis, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
|
|
206
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.YAxis, { stroke: axisStroke, tick: axisTick }),
|
|
207
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.Tooltip, { contentStyle: tooltipStyle }),
|
|
208
|
+
legend && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_recharts2.Legend, {}),
|
|
209
|
+
bars.map((bar, i) => {
|
|
210
|
+
var _a, _b;
|
|
211
|
+
const color = (_a = bar.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
|
|
212
|
+
const isLast = i === bars.length - 1;
|
|
213
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
214
|
+
import_recharts2.Bar,
|
|
215
|
+
{
|
|
216
|
+
dataKey: bar.dataKey,
|
|
217
|
+
name: (_b = bar.label) != null ? _b : bar.dataKey,
|
|
218
|
+
fill: color,
|
|
219
|
+
stackId: bar.stackId,
|
|
220
|
+
radius: bar.stackId && !isLast ? [0, 0, 0, 0] : [4, 4, 0, 0]
|
|
221
|
+
},
|
|
222
|
+
bar.dataKey
|
|
223
|
+
);
|
|
224
|
+
})
|
|
225
|
+
] }) });
|
|
226
|
+
};
|
|
227
|
+
var BarChart_default = BarChart;
|
|
228
|
+
|
|
229
|
+
// src/components/Charts/AreaChart.tsx
|
|
230
|
+
var import_recharts3 = require("recharts");
|
|
231
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
232
|
+
var AreaChart = ({
|
|
233
|
+
data,
|
|
234
|
+
xKey,
|
|
235
|
+
areas,
|
|
236
|
+
height = 250,
|
|
237
|
+
legend = false,
|
|
238
|
+
grid = true,
|
|
239
|
+
theme = "light"
|
|
240
|
+
}) => {
|
|
241
|
+
const { gridColor, axisStroke, axisTick, tooltipStyle } = getChartTheme(theme);
|
|
242
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_recharts3.AreaChart, { data, children: [
|
|
243
|
+
grid && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.CartesianGrid, { strokeDasharray: "3 3", stroke: gridColor }),
|
|
244
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.XAxis, { dataKey: xKey, stroke: axisStroke, tick: axisTick }),
|
|
245
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.YAxis, { stroke: axisStroke, tick: axisTick }),
|
|
246
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.Tooltip, { contentStyle: tooltipStyle }),
|
|
247
|
+
legend && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_recharts3.Legend, {}),
|
|
248
|
+
areas.map((area, i) => {
|
|
249
|
+
var _a, _b, _c;
|
|
250
|
+
const color = (_a = area.color) != null ? _a : CHART_COLORS[i % CHART_COLORS.length];
|
|
251
|
+
const opacity = (_b = area.fillOpacity) != null ? _b : area.stackId ? 0.4 : 0.15;
|
|
252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
253
|
+
import_recharts3.Area,
|
|
254
|
+
{
|
|
255
|
+
type: "monotone",
|
|
256
|
+
dataKey: area.dataKey,
|
|
257
|
+
name: (_c = area.label) != null ? _c : area.dataKey,
|
|
258
|
+
stroke: color,
|
|
259
|
+
fill: color,
|
|
260
|
+
fillOpacity: opacity,
|
|
261
|
+
strokeWidth: 2,
|
|
262
|
+
stackId: area.stackId
|
|
263
|
+
},
|
|
264
|
+
area.dataKey
|
|
265
|
+
);
|
|
266
|
+
})
|
|
267
|
+
] }) });
|
|
268
|
+
};
|
|
269
|
+
var AreaChart_default = AreaChart;
|
|
270
|
+
|
|
271
|
+
// src/components/Charts/PieChart.tsx
|
|
272
|
+
var import_recharts4 = require("recharts");
|
|
273
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
274
|
+
var PieChart = ({
|
|
275
|
+
data,
|
|
276
|
+
height = 250,
|
|
277
|
+
donut = false,
|
|
278
|
+
legend = false,
|
|
279
|
+
label = false,
|
|
280
|
+
theme = "light"
|
|
281
|
+
}) => {
|
|
282
|
+
const { tooltipStyle } = getChartTheme(theme);
|
|
283
|
+
const dataWithColors = data.map((item, i) => {
|
|
284
|
+
var _a;
|
|
285
|
+
return __spreadProps(__spreadValues({}, item), {
|
|
286
|
+
fill: (_a = item.fill) != null ? _a : CHART_COLORS[i % CHART_COLORS.length]
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
const outerRadius = 90;
|
|
290
|
+
const innerRadius = donut ? 55 : 0;
|
|
291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_recharts4.ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_recharts4.PieChart, { children: [
|
|
292
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
293
|
+
import_recharts4.Pie,
|
|
294
|
+
{
|
|
295
|
+
data: dataWithColors,
|
|
296
|
+
cx: "50%",
|
|
297
|
+
cy: "50%",
|
|
298
|
+
outerRadius,
|
|
299
|
+
innerRadius,
|
|
300
|
+
dataKey: "value",
|
|
301
|
+
label: label ? ({ name, percent }) => `${name} ${((percent != null ? percent : 0) * 100).toFixed(0)}%` : void 0,
|
|
302
|
+
labelLine: label
|
|
303
|
+
}
|
|
304
|
+
),
|
|
305
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_recharts4.Tooltip, { contentStyle: tooltipStyle }),
|
|
306
|
+
legend && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_recharts4.Legend, {})
|
|
307
|
+
] }) });
|
|
308
|
+
};
|
|
309
|
+
var PieChart_default = PieChart;
|
|
310
|
+
|
|
108
311
|
// src/components/Accordion/Accordion.tsx
|
|
109
312
|
var import_react2 = require("react");
|
|
110
313
|
var import_lucide_react = require("lucide-react");
|
|
111
|
-
var
|
|
314
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
112
315
|
var Accordion = ({ items, defaultValue, multiple = false }) => {
|
|
113
316
|
const [open, setOpen] = (0, import_react2.useState)(() => {
|
|
114
317
|
if (!defaultValue) return /* @__PURE__ */ new Set();
|
|
@@ -128,7 +331,7 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
|
|
|
128
331
|
return next;
|
|
129
332
|
});
|
|
130
333
|
};
|
|
131
|
-
return /* @__PURE__ */ (0,
|
|
334
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: {
|
|
132
335
|
border: "1px solid var(--ds-border, #e2e8f0)",
|
|
133
336
|
borderRadius: "0.5rem",
|
|
134
337
|
overflow: "hidden"
|
|
@@ -136,14 +339,14 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
|
|
|
136
339
|
const isOpen = open.has(item.value);
|
|
137
340
|
const isHovered = hovered === item.value;
|
|
138
341
|
const isLast = index === items.length - 1;
|
|
139
|
-
return /* @__PURE__ */ (0,
|
|
342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
140
343
|
"div",
|
|
141
344
|
{
|
|
142
345
|
style: {
|
|
143
346
|
borderBottom: isLast ? "none" : "1px solid var(--ds-border, #e2e8f0)"
|
|
144
347
|
},
|
|
145
348
|
children: [
|
|
146
|
-
/* @__PURE__ */ (0,
|
|
349
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
147
350
|
"button",
|
|
148
351
|
{
|
|
149
352
|
style: {
|
|
@@ -166,8 +369,8 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
|
|
|
166
369
|
onMouseLeave: () => setHovered(null),
|
|
167
370
|
"aria-expanded": isOpen,
|
|
168
371
|
children: [
|
|
169
|
-
/* @__PURE__ */ (0,
|
|
170
|
-
/* @__PURE__ */ (0,
|
|
372
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { children: item.trigger }),
|
|
373
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
171
374
|
import_lucide_react.ChevronDown,
|
|
172
375
|
{
|
|
173
376
|
size: 16,
|
|
@@ -182,11 +385,11 @@ var Accordion = ({ items, defaultValue, multiple = false }) => {
|
|
|
182
385
|
]
|
|
183
386
|
}
|
|
184
387
|
),
|
|
185
|
-
/* @__PURE__ */ (0,
|
|
388
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: {
|
|
186
389
|
maxHeight: isOpen ? "300px" : "0",
|
|
187
390
|
overflow: "hidden",
|
|
188
391
|
transition: "max-height 0.25s ease"
|
|
189
|
-
}, children: /* @__PURE__ */ (0,
|
|
392
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: {
|
|
190
393
|
padding: "0 1rem 1rem",
|
|
191
394
|
fontSize: "0.875rem",
|
|
192
395
|
color: "var(--ds-text-secondary, #64748b)"
|
|
@@ -201,7 +404,7 @@ var Accordion_default = Accordion;
|
|
|
201
404
|
|
|
202
405
|
// src/components/Alert/Alert.tsx
|
|
203
406
|
var import_lucide_react2 = require("lucide-react");
|
|
204
|
-
var
|
|
407
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
205
408
|
var variantMap = {
|
|
206
409
|
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)" },
|
|
207
410
|
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)" },
|
|
@@ -209,14 +412,14 @@ var variantMap = {
|
|
|
209
412
|
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)" }
|
|
210
413
|
};
|
|
211
414
|
var icons = {
|
|
212
|
-
info: /* @__PURE__ */ (0,
|
|
213
|
-
success: /* @__PURE__ */ (0,
|
|
214
|
-
warning: /* @__PURE__ */ (0,
|
|
215
|
-
danger: /* @__PURE__ */ (0,
|
|
415
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.Info, { size: 16 }),
|
|
416
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.CheckCircle2, { size: 16 }),
|
|
417
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.AlertTriangle, { size: 16 }),
|
|
418
|
+
danger: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.AlertCircle, { size: 16 })
|
|
216
419
|
};
|
|
217
420
|
var Alert = ({ variant = "info", title, description }) => {
|
|
218
421
|
const v = variantMap[variant];
|
|
219
|
-
return /* @__PURE__ */ (0,
|
|
422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { role: "alert", style: {
|
|
220
423
|
display: "flex",
|
|
221
424
|
gap: "0.75rem",
|
|
222
425
|
padding: "1rem",
|
|
@@ -224,23 +427,23 @@ var Alert = ({ variant = "info", title, description }) => {
|
|
|
224
427
|
borderLeft: `4px solid ${v.border}`,
|
|
225
428
|
backgroundColor: v.bg
|
|
226
429
|
}, children: [
|
|
227
|
-
/* @__PURE__ */ (0,
|
|
228
|
-
/* @__PURE__ */ (0,
|
|
229
|
-
/* @__PURE__ */ (0,
|
|
230
|
-
/* @__PURE__ */ (0,
|
|
430
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { flexShrink: 0, marginTop: "0.125rem", color: v.icon }, children: icons[variant] }),
|
|
431
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { flex: 1 }, children: [
|
|
432
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontWeight: 600, fontSize: "0.875rem", marginBottom: "0.25rem", marginTop: 0, color: v.title }, children: title }),
|
|
433
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontSize: "0.875rem", margin: 0, color: v.desc }, children: description })
|
|
231
434
|
] })
|
|
232
435
|
] });
|
|
233
436
|
};
|
|
234
437
|
var Alert_default = Alert;
|
|
235
438
|
|
|
236
439
|
// src/components/Avatar/Avatar.tsx
|
|
237
|
-
var
|
|
440
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
238
441
|
var sizeMap = {
|
|
239
442
|
sm: { width: "2rem", height: "2rem", fontSize: "0.625rem" },
|
|
240
443
|
md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
|
|
241
444
|
lg: { width: "4rem", height: "4rem", fontSize: "1.25rem" }
|
|
242
445
|
};
|
|
243
|
-
var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ (0,
|
|
446
|
+
var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
244
447
|
"div",
|
|
245
448
|
{
|
|
246
449
|
className,
|
|
@@ -262,7 +465,7 @@ var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ (0
|
|
|
262
465
|
var Avatar_default = Avatar;
|
|
263
466
|
|
|
264
467
|
// src/components/Badge/Badge.tsx
|
|
265
|
-
var
|
|
468
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
266
469
|
var variantMap2 = {
|
|
267
470
|
default: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff" },
|
|
268
471
|
secondary: { backgroundColor: "var(--ds-muted, #f1f5f9)", color: "var(--ds-text-secondary, #64748b)" },
|
|
@@ -277,7 +480,7 @@ var sizeMap2 = {
|
|
|
277
480
|
md: { padding: "0.25rem 0.625rem", fontSize: "0.75rem" },
|
|
278
481
|
lg: { padding: "0.375rem 0.875rem", fontSize: "0.875rem" }
|
|
279
482
|
};
|
|
280
|
-
var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ (0,
|
|
483
|
+
var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: __spreadValues(__spreadValues(__spreadValues({
|
|
281
484
|
display: "inline-flex",
|
|
282
485
|
alignItems: "center",
|
|
283
486
|
gap: "0.25rem",
|
|
@@ -290,10 +493,10 @@ var Badge_default = Badge;
|
|
|
290
493
|
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
291
494
|
var import_react3 = require("react");
|
|
292
495
|
var import_lucide_react3 = require("lucide-react");
|
|
293
|
-
var
|
|
496
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
294
497
|
var Breadcrumb = ({ items }) => {
|
|
295
498
|
const [hovered, setHovered] = (0, import_react3.useState)(null);
|
|
296
|
-
return /* @__PURE__ */ (0,
|
|
499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("ol", { style: {
|
|
297
500
|
display: "flex",
|
|
298
501
|
flexWrap: "wrap",
|
|
299
502
|
alignItems: "center",
|
|
@@ -304,8 +507,8 @@ var Breadcrumb = ({ items }) => {
|
|
|
304
507
|
}, children: items.map((item, i) => {
|
|
305
508
|
const isLast = i === items.length - 1;
|
|
306
509
|
const isHovered = hovered === item.label;
|
|
307
|
-
return /* @__PURE__ */ (0,
|
|
308
|
-
i > 0 && /* @__PURE__ */ (0,
|
|
510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("li", { style: { display: "flex", alignItems: "center" }, children: [
|
|
511
|
+
i > 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
309
512
|
import_lucide_react3.ChevronRight,
|
|
310
513
|
{
|
|
311
514
|
size: 14,
|
|
@@ -313,11 +516,11 @@ var Breadcrumb = ({ items }) => {
|
|
|
313
516
|
style: { color: "var(--ds-text-secondary, #64748b)", margin: "0 0.25rem", flexShrink: 0 }
|
|
314
517
|
}
|
|
315
518
|
),
|
|
316
|
-
isLast || !item.href ? /* @__PURE__ */ (0,
|
|
519
|
+
isLast || !item.href ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { style: {
|
|
317
520
|
color: isLast ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)",
|
|
318
521
|
fontWeight: isLast ? 500 : void 0,
|
|
319
522
|
cursor: isLast ? "default" : void 0
|
|
320
|
-
}, children: item.label }) : /* @__PURE__ */ (0,
|
|
523
|
+
}, children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
321
524
|
"a",
|
|
322
525
|
{
|
|
323
526
|
href: item.href,
|
|
@@ -339,7 +542,7 @@ var Breadcrumb_default = Breadcrumb;
|
|
|
339
542
|
// src/components/Button/Button.tsx
|
|
340
543
|
var import_lucide_react4 = require("lucide-react");
|
|
341
544
|
var import_react4 = require("react");
|
|
342
|
-
var
|
|
545
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
343
546
|
var variantStyles = {
|
|
344
547
|
solid: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff", borderColor: "transparent" },
|
|
345
548
|
outline: { backgroundColor: "transparent", color: "var(--ds-primary, #3b82f6)", borderColor: "var(--ds-primary, #3b82f6)" },
|
|
@@ -419,9 +622,9 @@ var Button = (_a) => {
|
|
|
419
622
|
opacity: isDisabled ? 0.5 : 1,
|
|
420
623
|
pointerEvents: loading ? "none" : void 0
|
|
421
624
|
}, variantStyles[resolvedVariant]), sizeStyles[resolvedSize]), hovered && !isDisabled ? variantHoverStyles[resolvedVariant] : {}), styleProp);
|
|
422
|
-
return /* @__PURE__ */ (0,
|
|
423
|
-
/* @__PURE__ */ (0,
|
|
424
|
-
/* @__PURE__ */ (0,
|
|
625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
626
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
|
|
627
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
425
628
|
"button",
|
|
426
629
|
__spreadProps(__spreadValues({
|
|
427
630
|
disabled: isDisabled,
|
|
@@ -430,7 +633,7 @@ var Button = (_a) => {
|
|
|
430
633
|
onMouseLeave: () => setHovered(false)
|
|
431
634
|
}, props), {
|
|
432
635
|
children: [
|
|
433
|
-
loading ? /* @__PURE__ */ (0,
|
|
636
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
434
637
|
import_lucide_react4.LoaderCircle,
|
|
435
638
|
{
|
|
436
639
|
"aria-hidden": true,
|
|
@@ -448,10 +651,10 @@ var Button = (_a) => {
|
|
|
448
651
|
var Button_default = Button;
|
|
449
652
|
|
|
450
653
|
// src/components/Card/Card.tsx
|
|
451
|
-
var
|
|
654
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
452
655
|
var Card = (_a) => {
|
|
453
656
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
454
|
-
return /* @__PURE__ */ (0,
|
|
657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({
|
|
455
658
|
border: "1px solid var(--ds-border, #e2e8f0)",
|
|
456
659
|
borderRadius: "0.5rem",
|
|
457
660
|
backgroundColor: "var(--ds-card, #ffffff)"
|
|
@@ -459,7 +662,7 @@ var Card = (_a) => {
|
|
|
459
662
|
};
|
|
460
663
|
var CardHeader = (_a) => {
|
|
461
664
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
462
|
-
return /* @__PURE__ */ (0,
|
|
665
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({
|
|
463
666
|
display: "flex",
|
|
464
667
|
flexDirection: "column",
|
|
465
668
|
gap: "0.375rem",
|
|
@@ -468,7 +671,7 @@ var CardHeader = (_a) => {
|
|
|
468
671
|
};
|
|
469
672
|
var CardTitle = (_a) => {
|
|
470
673
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
471
|
-
return /* @__PURE__ */ (0,
|
|
674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", __spreadValues({ style: __spreadValues({
|
|
472
675
|
fontSize: "1rem",
|
|
473
676
|
fontWeight: 600,
|
|
474
677
|
color: "var(--ds-text-primary, #0f172a)",
|
|
@@ -478,7 +681,7 @@ var CardTitle = (_a) => {
|
|
|
478
681
|
};
|
|
479
682
|
var CardDescription = (_a) => {
|
|
480
683
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
481
|
-
return /* @__PURE__ */ (0,
|
|
684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", __spreadValues({ style: __spreadValues({
|
|
482
685
|
fontSize: "0.875rem",
|
|
483
686
|
color: "var(--ds-text-secondary, #64748b)",
|
|
484
687
|
margin: 0
|
|
@@ -486,11 +689,11 @@ var CardDescription = (_a) => {
|
|
|
486
689
|
};
|
|
487
690
|
var CardContent = (_a) => {
|
|
488
691
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
489
|
-
return /* @__PURE__ */ (0,
|
|
692
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({ padding: "1.5rem" }, style) }, props));
|
|
490
693
|
};
|
|
491
694
|
var CardFooter = (_a) => {
|
|
492
695
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
493
|
-
return /* @__PURE__ */ (0,
|
|
696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadValues({ style: __spreadValues({
|
|
494
697
|
display: "flex",
|
|
495
698
|
alignItems: "center",
|
|
496
699
|
padding: "0 1.5rem 1.5rem"
|
|
@@ -499,7 +702,7 @@ var CardFooter = (_a) => {
|
|
|
499
702
|
|
|
500
703
|
// src/components/Checkbox/Checkbox.tsx
|
|
501
704
|
var import_react5 = require("react");
|
|
502
|
-
var
|
|
705
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
503
706
|
var Checkbox = ({
|
|
504
707
|
label,
|
|
505
708
|
checked,
|
|
@@ -516,7 +719,7 @@ var Checkbox = ({
|
|
|
516
719
|
setInternal(next);
|
|
517
720
|
onChange == null ? void 0 : onChange(next);
|
|
518
721
|
};
|
|
519
|
-
return /* @__PURE__ */ (0,
|
|
722
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("label", { htmlFor: id, style: {
|
|
520
723
|
display: "inline-flex",
|
|
521
724
|
alignItems: "center",
|
|
522
725
|
gap: "0.5rem",
|
|
@@ -524,7 +727,7 @@ var Checkbox = ({
|
|
|
524
727
|
userSelect: "none",
|
|
525
728
|
opacity: disabled ? 0.5 : 1
|
|
526
729
|
}, children: [
|
|
527
|
-
/* @__PURE__ */ (0,
|
|
730
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
528
731
|
"input",
|
|
529
732
|
{
|
|
530
733
|
type: "checkbox",
|
|
@@ -535,7 +738,7 @@ var Checkbox = ({
|
|
|
535
738
|
style: { position: "absolute", opacity: 0, width: 0, height: 0 }
|
|
536
739
|
}
|
|
537
740
|
),
|
|
538
|
-
/* @__PURE__ */ (0,
|
|
741
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { style: {
|
|
539
742
|
width: "1.125rem",
|
|
540
743
|
height: "1.125rem",
|
|
541
744
|
border: `2px solid ${isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)"}`,
|
|
@@ -546,8 +749,8 @@ var Checkbox = ({
|
|
|
546
749
|
flexShrink: 0,
|
|
547
750
|
transition: "background-color 0.15s, border-color 0.15s",
|
|
548
751
|
backgroundColor: isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-card, #fff)"
|
|
549
|
-
}, children: isChecked && /* @__PURE__ */ (0,
|
|
550
|
-
label && /* @__PURE__ */ (0,
|
|
752
|
+
}, children: isChecked && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { viewBox: "0 0 12 10", fill: "none", style: { width: "0.625rem", height: "0.625rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M1 5l3.5 3.5L11 1", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
|
|
753
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
|
|
551
754
|
] });
|
|
552
755
|
};
|
|
553
756
|
var Checkbox_default = Checkbox;
|
|
@@ -555,7 +758,7 @@ var Checkbox_default = Checkbox;
|
|
|
555
758
|
// src/components/CopyButton/CopyButton.tsx
|
|
556
759
|
var import_lucide_react5 = require("lucide-react");
|
|
557
760
|
var import_react6 = require("react");
|
|
558
|
-
var
|
|
761
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
559
762
|
var CopyButton = ({ text }) => {
|
|
560
763
|
const [copied, setCopied] = (0, import_react6.useState)(false);
|
|
561
764
|
const [hovered, setHovered] = (0, import_react6.useState)(false);
|
|
@@ -564,7 +767,7 @@ var CopyButton = ({ text }) => {
|
|
|
564
767
|
setCopied(true);
|
|
565
768
|
setTimeout(() => setCopied(false), 2e3);
|
|
566
769
|
};
|
|
567
|
-
return /* @__PURE__ */ (0,
|
|
770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
568
771
|
"button",
|
|
569
772
|
{
|
|
570
773
|
onClick: handleCopy,
|
|
@@ -583,7 +786,7 @@ var CopyButton = ({ text }) => {
|
|
|
583
786
|
cursor: "pointer",
|
|
584
787
|
transition: "background-color 0.15s, color 0.15s"
|
|
585
788
|
},
|
|
586
|
-
children: copied ? /* @__PURE__ */ (0,
|
|
789
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react5.Check, { style: { width: "1rem", height: "1rem" } }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react5.Copy, { style: { width: "1rem", height: "1rem" } })
|
|
587
790
|
}
|
|
588
791
|
);
|
|
589
792
|
};
|
|
@@ -592,7 +795,7 @@ var CopyButton_default = CopyButton;
|
|
|
592
795
|
// src/components/FileUpload/FileUpload.tsx
|
|
593
796
|
var import_lucide_react6 = require("lucide-react");
|
|
594
797
|
var import_react7 = require("react");
|
|
595
|
-
var
|
|
798
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
596
799
|
var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
|
|
597
800
|
const [isDragging, setIsDragging] = (0, import_react7.useState)(false);
|
|
598
801
|
const [isHovered, setIsHovered] = (0, import_react7.useState)(false);
|
|
@@ -603,7 +806,7 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
|
|
|
603
806
|
onFileSelect == null ? void 0 : onFileSelect(list);
|
|
604
807
|
};
|
|
605
808
|
const isActive = isDragging || isHovered;
|
|
606
|
-
return /* @__PURE__ */ (0,
|
|
809
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
607
810
|
"div",
|
|
608
811
|
{
|
|
609
812
|
onClick: () => {
|
|
@@ -637,7 +840,7 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
|
|
|
637
840
|
opacity: disabled ? 0.5 : 1
|
|
638
841
|
},
|
|
639
842
|
children: [
|
|
640
|
-
/* @__PURE__ */ (0,
|
|
843
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
641
844
|
"input",
|
|
642
845
|
{
|
|
643
846
|
ref: inputRef,
|
|
@@ -649,9 +852,9 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
|
|
|
649
852
|
onChange: (e) => e.target.files && handleFiles(e.target.files)
|
|
650
853
|
}
|
|
651
854
|
),
|
|
652
|
-
/* @__PURE__ */ (0,
|
|
653
|
-
fileNames.length > 0 ? /* @__PURE__ */ (0,
|
|
654
|
-
/* @__PURE__ */ (0,
|
|
855
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Upload, { size: 32, style: { color: "var(--ds-text-secondary, #64748b)" } }),
|
|
856
|
+
fileNames.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--ds-primary, #3b82f6)", fontWeight: 500, margin: 0 }, children: fileNames.join(", ") }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--ds-text-secondary, #64748b)", margin: 0 }, children: [
|
|
857
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { children: "Click to upload" }),
|
|
655
858
|
" or drag and drop"
|
|
656
859
|
] })
|
|
657
860
|
]
|
|
@@ -661,7 +864,7 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
|
|
|
661
864
|
var FileUpload_default = FileUpload;
|
|
662
865
|
|
|
663
866
|
// src/components/Input/Input.tsx
|
|
664
|
-
var
|
|
867
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
665
868
|
var inputCSS = `
|
|
666
869
|
[data-ds-input]::placeholder { color: var(--ds-text-secondary, #64748b); }
|
|
667
870
|
[data-ds-input]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
|
|
@@ -671,10 +874,10 @@ var inputCSS = `
|
|
|
671
874
|
`;
|
|
672
875
|
var Input = (_a) => {
|
|
673
876
|
var _b = _a, { error, success, leftIcon, rightIcon, style } = _b, props = __objRest(_b, ["error", "success", "leftIcon", "rightIcon", "style"]);
|
|
674
|
-
return /* @__PURE__ */ (0,
|
|
675
|
-
/* @__PURE__ */ (0,
|
|
676
|
-
/* @__PURE__ */ (0,
|
|
677
|
-
leftIcon && /* @__PURE__ */ (0,
|
|
877
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
878
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("style", { href: "ds-input", precedence: "low", children: inputCSS }),
|
|
879
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { position: "relative", display: "flex", alignItems: "center", width: "100%" }, children: [
|
|
880
|
+
leftIcon && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
|
|
678
881
|
position: "absolute",
|
|
679
882
|
left: "0.625rem",
|
|
680
883
|
display: "flex",
|
|
@@ -682,7 +885,7 @@ var Input = (_a) => {
|
|
|
682
885
|
color: "var(--ds-text-secondary, #64748b)",
|
|
683
886
|
pointerEvents: "none"
|
|
684
887
|
}, children: leftIcon }),
|
|
685
|
-
/* @__PURE__ */ (0,
|
|
888
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
686
889
|
"input",
|
|
687
890
|
__spreadValues({
|
|
688
891
|
"data-ds-input": "",
|
|
@@ -705,7 +908,7 @@ var Input = (_a) => {
|
|
|
705
908
|
}, style)
|
|
706
909
|
}, props)
|
|
707
910
|
),
|
|
708
|
-
rightIcon && /* @__PURE__ */ (0,
|
|
911
|
+
rightIcon && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: {
|
|
709
912
|
position: "absolute",
|
|
710
913
|
right: "0.625rem",
|
|
711
914
|
display: "flex",
|
|
@@ -719,10 +922,10 @@ var Input = (_a) => {
|
|
|
719
922
|
var Input_default = Input;
|
|
720
923
|
|
|
721
924
|
// src/components/Label/Label.tsx
|
|
722
|
-
var
|
|
925
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
723
926
|
var Label = (_a) => {
|
|
724
927
|
var _b = _a, { children, required, style } = _b, props = __objRest(_b, ["children", "required", "style"]);
|
|
725
|
-
return /* @__PURE__ */ (0,
|
|
928
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("label", __spreadProps(__spreadValues({ style: __spreadValues({
|
|
726
929
|
display: "block",
|
|
727
930
|
fontSize: "0.875rem",
|
|
728
931
|
fontWeight: 500,
|
|
@@ -730,7 +933,7 @@ var Label = (_a) => {
|
|
|
730
933
|
marginBottom: "0.375rem"
|
|
731
934
|
}, style) }, props), { children: [
|
|
732
935
|
children,
|
|
733
|
-
required && /* @__PURE__ */ (0,
|
|
936
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { color: "var(--ds-danger, #ef4444)", marginLeft: "0.25rem" }, children: "*" })
|
|
734
937
|
] }));
|
|
735
938
|
};
|
|
736
939
|
var Label_default = Label;
|
|
@@ -738,21 +941,21 @@ var Label_default = Label;
|
|
|
738
941
|
// src/components/PasswordInput/PasswordInput.tsx
|
|
739
942
|
var import_lucide_react7 = require("lucide-react");
|
|
740
943
|
var import_react8 = require("react");
|
|
741
|
-
var
|
|
944
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
742
945
|
var PasswordInput = (props) => {
|
|
743
946
|
const [visible, setVisible] = (0, import_react8.useState)(false);
|
|
744
|
-
return /* @__PURE__ */ (0,
|
|
947
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
745
948
|
Input_default,
|
|
746
949
|
__spreadProps(__spreadValues({}, props), {
|
|
747
950
|
type: visible ? "text" : "password",
|
|
748
|
-
rightIcon: /* @__PURE__ */ (0,
|
|
951
|
+
rightIcon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
749
952
|
"button",
|
|
750
953
|
{
|
|
751
954
|
type: "button",
|
|
752
955
|
onClick: () => setVisible((v) => !v),
|
|
753
956
|
style: { background: "none", border: "none", cursor: "pointer", padding: 0, display: "flex", pointerEvents: "all" },
|
|
754
957
|
tabIndex: -1,
|
|
755
|
-
children: visible ? /* @__PURE__ */ (0,
|
|
958
|
+
children: visible ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.EyeOff, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.Eye, { size: 16 })
|
|
756
959
|
}
|
|
757
960
|
)
|
|
758
961
|
})
|
|
@@ -761,10 +964,10 @@ var PasswordInput = (props) => {
|
|
|
761
964
|
var PasswordInput_default = PasswordInput;
|
|
762
965
|
|
|
763
966
|
// src/components/Progress/Progress.tsx
|
|
764
|
-
var
|
|
967
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
765
968
|
var Progress = ({ value = 0 }) => {
|
|
766
969
|
const pct = Math.min(100, Math.max(0, value));
|
|
767
|
-
return /* @__PURE__ */ (0,
|
|
970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
768
971
|
"div",
|
|
769
972
|
{
|
|
770
973
|
role: "progressbar",
|
|
@@ -778,7 +981,7 @@ var Progress = ({ value = 0 }) => {
|
|
|
778
981
|
borderRadius: "9999px",
|
|
779
982
|
overflow: "hidden"
|
|
780
983
|
},
|
|
781
|
-
children: /* @__PURE__ */ (0,
|
|
984
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { style: {
|
|
782
985
|
height: "100%",
|
|
783
986
|
width: `${pct}%`,
|
|
784
987
|
backgroundColor: "var(--ds-primary, #3b82f6)",
|
|
@@ -792,7 +995,7 @@ var Progress_default = Progress;
|
|
|
792
995
|
|
|
793
996
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
794
997
|
var import_react9 = require("react");
|
|
795
|
-
var
|
|
998
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
796
999
|
var RadioGroup = ({
|
|
797
1000
|
options,
|
|
798
1001
|
name,
|
|
@@ -808,9 +1011,9 @@ var RadioGroup = ({
|
|
|
808
1011
|
setInternal(val);
|
|
809
1012
|
onChange == null ? void 0 : onChange(val);
|
|
810
1013
|
};
|
|
811
|
-
return /* @__PURE__ */ (0,
|
|
1014
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: options.map((option) => {
|
|
812
1015
|
const isSelected = selected === option.value;
|
|
813
|
-
return /* @__PURE__ */ (0,
|
|
1016
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("label", { style: {
|
|
814
1017
|
display: "inline-flex",
|
|
815
1018
|
alignItems: "center",
|
|
816
1019
|
gap: "0.5rem",
|
|
@@ -818,7 +1021,7 @@ var RadioGroup = ({
|
|
|
818
1021
|
userSelect: "none",
|
|
819
1022
|
opacity: disabled ? 0.5 : 1
|
|
820
1023
|
}, children: [
|
|
821
|
-
/* @__PURE__ */ (0,
|
|
1024
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
822
1025
|
"input",
|
|
823
1026
|
{
|
|
824
1027
|
type: "radio",
|
|
@@ -830,7 +1033,7 @@ var RadioGroup = ({
|
|
|
830
1033
|
style: { position: "absolute", opacity: 0, width: 0, height: 0 }
|
|
831
1034
|
}
|
|
832
1035
|
),
|
|
833
|
-
/* @__PURE__ */ (0,
|
|
1036
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { style: {
|
|
834
1037
|
width: "1.125rem",
|
|
835
1038
|
height: "1.125rem",
|
|
836
1039
|
borderRadius: "9999px",
|
|
@@ -841,13 +1044,13 @@ var RadioGroup = ({
|
|
|
841
1044
|
flexShrink: 0,
|
|
842
1045
|
backgroundColor: "var(--ds-card, #fff)",
|
|
843
1046
|
transition: "border-color 0.15s"
|
|
844
|
-
}, children: isSelected && /* @__PURE__ */ (0,
|
|
1047
|
+
}, children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { style: {
|
|
845
1048
|
width: "0.5rem",
|
|
846
1049
|
height: "0.5rem",
|
|
847
1050
|
borderRadius: "9999px",
|
|
848
1051
|
backgroundColor: "var(--ds-primary, #3b82f6)"
|
|
849
1052
|
} }) }),
|
|
850
|
-
/* @__PURE__ */ (0,
|
|
1053
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: option.label })
|
|
851
1054
|
] }, option.value);
|
|
852
1055
|
}) });
|
|
853
1056
|
};
|
|
@@ -856,7 +1059,7 @@ var RadioGroup_default = RadioGroup;
|
|
|
856
1059
|
// src/components/Select/Select.tsx
|
|
857
1060
|
var import_lucide_react8 = require("lucide-react");
|
|
858
1061
|
var import_react10 = require("react");
|
|
859
|
-
var
|
|
1062
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
860
1063
|
var selectCSS = `
|
|
861
1064
|
[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); }
|
|
862
1065
|
`;
|
|
@@ -887,15 +1090,15 @@ var Select = ({
|
|
|
887
1090
|
document.addEventListener("mousedown", handleOutside);
|
|
888
1091
|
return () => document.removeEventListener("mousedown", handleOutside);
|
|
889
1092
|
}, []);
|
|
890
|
-
return /* @__PURE__ */ (0,
|
|
891
|
-
/* @__PURE__ */ (0,
|
|
892
|
-
/* @__PURE__ */ (0,
|
|
1093
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
1094
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("style", { href: "ds-select", precedence: "low", children: selectCSS }),
|
|
1095
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { ref, style: {
|
|
893
1096
|
position: "relative",
|
|
894
1097
|
width: "100%",
|
|
895
1098
|
opacity: disabled ? 0.5 : 1,
|
|
896
1099
|
pointerEvents: disabled ? "none" : void 0
|
|
897
1100
|
}, children: [
|
|
898
|
-
/* @__PURE__ */ (0,
|
|
1101
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
899
1102
|
"button",
|
|
900
1103
|
{
|
|
901
1104
|
type: "button",
|
|
@@ -921,8 +1124,8 @@ var Select = ({
|
|
|
921
1124
|
fontFamily: "inherit"
|
|
922
1125
|
},
|
|
923
1126
|
children: [
|
|
924
|
-
/* @__PURE__ */ (0,
|
|
925
|
-
/* @__PURE__ */ (0,
|
|
1127
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { style: { color: selectedLabel ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)" }, children: selectedLabel != null ? selectedLabel : placeholder }),
|
|
1128
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
926
1129
|
import_lucide_react8.ChevronDown,
|
|
927
1130
|
{
|
|
928
1131
|
size: 16,
|
|
@@ -937,7 +1140,7 @@ var Select = ({
|
|
|
937
1140
|
]
|
|
938
1141
|
}
|
|
939
1142
|
),
|
|
940
|
-
open && /* @__PURE__ */ (0,
|
|
1143
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: {
|
|
941
1144
|
position: "absolute",
|
|
942
1145
|
top: "calc(100% + 0.25rem)",
|
|
943
1146
|
left: 0,
|
|
@@ -951,7 +1154,7 @@ var Select = ({
|
|
|
951
1154
|
}, children: options.map((option) => {
|
|
952
1155
|
const isSelected = selected === option.value;
|
|
953
1156
|
const isHovered = hoveredOption === option.value;
|
|
954
|
-
return /* @__PURE__ */ (0,
|
|
1157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
955
1158
|
"div",
|
|
956
1159
|
{
|
|
957
1160
|
onClick: () => handleSelect(option.value),
|
|
@@ -970,7 +1173,7 @@ var Select = ({
|
|
|
970
1173
|
transition: "background-color 0.1s"
|
|
971
1174
|
},
|
|
972
1175
|
children: [
|
|
973
|
-
isSelected ? /* @__PURE__ */ (0,
|
|
1176
|
+
isSelected ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react8.Check, { size: 14, style: { color: "var(--ds-primary, #3b82f6)", flexShrink: 0 } }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { style: { width: 14, flexShrink: 0 } }),
|
|
974
1177
|
option.label
|
|
975
1178
|
]
|
|
976
1179
|
},
|
|
@@ -983,13 +1186,13 @@ var Select = ({
|
|
|
983
1186
|
var Select_default = Select;
|
|
984
1187
|
|
|
985
1188
|
// src/components/Skeleton/Skeleton.tsx
|
|
986
|
-
var
|
|
987
|
-
var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ (0,
|
|
988
|
-
/* @__PURE__ */ (0,
|
|
1189
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1190
|
+
var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
|
|
1191
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("style", { href: "ds-skeleton", precedence: "low", children: `
|
|
989
1192
|
@keyframes ds-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
|
|
990
1193
|
[data-ds-skeleton] { animation: ds-pulse 1.5s ease-in-out infinite; }
|
|
991
1194
|
` }),
|
|
992
|
-
/* @__PURE__ */ (0,
|
|
1195
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
993
1196
|
"div",
|
|
994
1197
|
{
|
|
995
1198
|
"data-ds-skeleton": "",
|
|
@@ -1007,7 +1210,7 @@ var Skeleton_default = Skeleton;
|
|
|
1007
1210
|
|
|
1008
1211
|
// src/components/Slider/Slider.tsx
|
|
1009
1212
|
var import_react11 = require("react");
|
|
1010
|
-
var
|
|
1213
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1011
1214
|
var sliderCSS = `
|
|
1012
1215
|
[data-ds-slider] {
|
|
1013
1216
|
-webkit-appearance: none;
|
|
@@ -1066,13 +1269,13 @@ var Slider = ({
|
|
|
1066
1269
|
setInternal(val);
|
|
1067
1270
|
onChange == null ? void 0 : onChange(val);
|
|
1068
1271
|
};
|
|
1069
|
-
return /* @__PURE__ */ (0,
|
|
1070
|
-
/* @__PURE__ */ (0,
|
|
1071
|
-
/* @__PURE__ */ (0,
|
|
1272
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
1273
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("style", { href: "ds-slider", precedence: "low", children: sliderCSS }),
|
|
1274
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { style: {
|
|
1072
1275
|
width: "100%",
|
|
1073
1276
|
padding: "0.25rem 0",
|
|
1074
1277
|
opacity: disabled ? 0.5 : 1
|
|
1075
|
-
}, children: /* @__PURE__ */ (0,
|
|
1278
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1076
1279
|
"input",
|
|
1077
1280
|
{
|
|
1078
1281
|
type: "range",
|
|
@@ -1092,11 +1295,11 @@ var Slider_default = Slider;
|
|
|
1092
1295
|
|
|
1093
1296
|
// src/components/Spinner/Spinner.tsx
|
|
1094
1297
|
var import_lucide_react9 = require("lucide-react");
|
|
1095
|
-
var
|
|
1298
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1096
1299
|
var sizePx = { sm: 16, md: 24, lg: 32 };
|
|
1097
|
-
var Spinner = ({ size = "md" }) => /* @__PURE__ */ (0,
|
|
1098
|
-
/* @__PURE__ */ (0,
|
|
1099
|
-
/* @__PURE__ */ (0,
|
|
1300
|
+
var Spinner = ({ size = "md" }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
|
|
1301
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
|
|
1302
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1100
1303
|
import_lucide_react9.Loader2,
|
|
1101
1304
|
{
|
|
1102
1305
|
size: sizePx[size],
|
|
@@ -1109,7 +1312,7 @@ var Spinner_default = Spinner;
|
|
|
1109
1312
|
|
|
1110
1313
|
// src/components/Switch/Switch.tsx
|
|
1111
1314
|
var import_react12 = require("react");
|
|
1112
|
-
var
|
|
1315
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1113
1316
|
var Switch = ({
|
|
1114
1317
|
label,
|
|
1115
1318
|
checked,
|
|
@@ -1126,7 +1329,7 @@ var Switch = ({
|
|
|
1126
1329
|
setInternal(next);
|
|
1127
1330
|
onChange == null ? void 0 : onChange(next);
|
|
1128
1331
|
};
|
|
1129
|
-
return /* @__PURE__ */ (0,
|
|
1332
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("label", { htmlFor: id, style: {
|
|
1130
1333
|
display: "inline-flex",
|
|
1131
1334
|
alignItems: "center",
|
|
1132
1335
|
gap: "0.625rem",
|
|
@@ -1134,7 +1337,7 @@ var Switch = ({
|
|
|
1134
1337
|
userSelect: "none",
|
|
1135
1338
|
opacity: disabled ? 0.5 : 1
|
|
1136
1339
|
}, children: [
|
|
1137
|
-
/* @__PURE__ */ (0,
|
|
1340
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1138
1341
|
"input",
|
|
1139
1342
|
{
|
|
1140
1343
|
type: "checkbox",
|
|
@@ -1145,7 +1348,7 @@ var Switch = ({
|
|
|
1145
1348
|
style: { position: "absolute", opacity: 0, width: 0, height: 0 }
|
|
1146
1349
|
}
|
|
1147
1350
|
),
|
|
1148
|
-
/* @__PURE__ */ (0,
|
|
1351
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { style: {
|
|
1149
1352
|
width: "2.75rem",
|
|
1150
1353
|
height: "1.5rem",
|
|
1151
1354
|
borderRadius: "9999px",
|
|
@@ -1153,7 +1356,7 @@ var Switch = ({
|
|
|
1153
1356
|
position: "relative",
|
|
1154
1357
|
transition: "background-color 0.2s",
|
|
1155
1358
|
flexShrink: 0
|
|
1156
|
-
}, children: /* @__PURE__ */ (0,
|
|
1359
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { style: {
|
|
1157
1360
|
position: "absolute",
|
|
1158
1361
|
top: "0.175rem",
|
|
1159
1362
|
left: "0.175rem",
|
|
@@ -1165,41 +1368,41 @@ var Switch = ({
|
|
|
1165
1368
|
transition: "transform 0.2s",
|
|
1166
1369
|
transform: isOn ? "translateX(1.25rem)" : "translateX(0)"
|
|
1167
1370
|
} }) }),
|
|
1168
|
-
label && /* @__PURE__ */ (0,
|
|
1371
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
|
|
1169
1372
|
] });
|
|
1170
1373
|
};
|
|
1171
1374
|
var Switch_default = Switch;
|
|
1172
1375
|
|
|
1173
1376
|
// src/components/Table/Table.tsx
|
|
1174
|
-
var
|
|
1377
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1175
1378
|
var tableCSS = `
|
|
1176
1379
|
[data-ds-table-row]:hover [data-ds-table-cell] { background-color: var(--ds-muted, #f1f5f9); }
|
|
1177
1380
|
`;
|
|
1178
1381
|
var Table = (_a) => {
|
|
1179
1382
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
1180
|
-
return /* @__PURE__ */ (0,
|
|
1181
|
-
/* @__PURE__ */ (0,
|
|
1182
|
-
/* @__PURE__ */ (0,
|
|
1383
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
|
|
1384
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("style", { href: "ds-table", precedence: "low", children: tableCSS }),
|
|
1385
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { style: {
|
|
1183
1386
|
width: "100%",
|
|
1184
1387
|
overflowX: "auto",
|
|
1185
1388
|
border: "1px solid var(--ds-border, #e2e8f0)",
|
|
1186
1389
|
borderRadius: "0.5rem"
|
|
1187
|
-
}, children: /* @__PURE__ */ (0,
|
|
1390
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("table", __spreadValues({ style: __spreadValues({
|
|
1188
1391
|
width: "100%",
|
|
1189
1392
|
borderCollapse: "collapse",
|
|
1190
1393
|
fontSize: "0.875rem"
|
|
1191
1394
|
}, style) }, props)) })
|
|
1192
1395
|
] });
|
|
1193
1396
|
};
|
|
1194
|
-
var TableHead = (props) => /* @__PURE__ */ (0,
|
|
1195
|
-
var TableBody = (props) => /* @__PURE__ */ (0,
|
|
1397
|
+
var TableHead = (props) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("thead", __spreadValues({}, props));
|
|
1398
|
+
var TableBody = (props) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("tbody", __spreadValues({}, props));
|
|
1196
1399
|
var TableRow = (_a) => {
|
|
1197
1400
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
1198
|
-
return /* @__PURE__ */ (0,
|
|
1401
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("tr", __spreadValues({ "data-ds-table-row": "", style }, props));
|
|
1199
1402
|
};
|
|
1200
1403
|
var TableHeader = (_a) => {
|
|
1201
1404
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
1202
|
-
return /* @__PURE__ */ (0,
|
|
1405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("th", __spreadValues({ style: __spreadValues({
|
|
1203
1406
|
padding: "0.75rem 1rem",
|
|
1204
1407
|
textAlign: "left",
|
|
1205
1408
|
fontWeight: 500,
|
|
@@ -1211,7 +1414,7 @@ var TableHeader = (_a) => {
|
|
|
1211
1414
|
};
|
|
1212
1415
|
var TableCell = (_a) => {
|
|
1213
1416
|
var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
|
|
1214
|
-
return /* @__PURE__ */ (0,
|
|
1417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1215
1418
|
"td",
|
|
1216
1419
|
__spreadValues({
|
|
1217
1420
|
"data-ds-table-cell": "",
|
|
@@ -1227,14 +1430,14 @@ var TableCell = (_a) => {
|
|
|
1227
1430
|
|
|
1228
1431
|
// src/components/Tabs/Tabs.tsx
|
|
1229
1432
|
var import_react13 = require("react");
|
|
1230
|
-
var
|
|
1433
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1231
1434
|
var Tabs = ({ tabs, defaultValue }) => {
|
|
1232
1435
|
var _a, _b;
|
|
1233
1436
|
const [active, setActive] = (0, import_react13.useState)((_b = defaultValue != null ? defaultValue : (_a = tabs[0]) == null ? void 0 : _a.value) != null ? _b : "");
|
|
1234
1437
|
const [hovered, setHovered] = (0, import_react13.useState)(null);
|
|
1235
1438
|
const activeTab = tabs.find((t) => t.value === active);
|
|
1236
|
-
return /* @__PURE__ */ (0,
|
|
1237
|
-
/* @__PURE__ */ (0,
|
|
1439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
1440
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { role: "tablist", style: {
|
|
1238
1441
|
display: "inline-flex",
|
|
1239
1442
|
backgroundColor: "var(--ds-muted, #f1f5f9)",
|
|
1240
1443
|
borderRadius: "0.5rem",
|
|
@@ -1243,7 +1446,7 @@ var Tabs = ({ tabs, defaultValue }) => {
|
|
|
1243
1446
|
}, children: tabs.map((tab) => {
|
|
1244
1447
|
const isActive = active === tab.value;
|
|
1245
1448
|
const isHovered = hovered === tab.value;
|
|
1246
|
-
return /* @__PURE__ */ (0,
|
|
1449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
1247
1450
|
"button",
|
|
1248
1451
|
{
|
|
1249
1452
|
role: "tab",
|
|
@@ -1268,14 +1471,14 @@ var Tabs = ({ tabs, defaultValue }) => {
|
|
|
1268
1471
|
whiteSpace: "nowrap"
|
|
1269
1472
|
},
|
|
1270
1473
|
children: [
|
|
1271
|
-
tab.icon && /* @__PURE__ */ (0,
|
|
1474
|
+
tab.icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { style: { display: "flex", alignItems: "center" }, children: tab.icon }),
|
|
1272
1475
|
tab.label
|
|
1273
1476
|
]
|
|
1274
1477
|
},
|
|
1275
1478
|
tab.value
|
|
1276
1479
|
);
|
|
1277
1480
|
}) }),
|
|
1278
|
-
/* @__PURE__ */ (0,
|
|
1481
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { role: "tabpanel", style: {
|
|
1279
1482
|
paddingTop: "1rem",
|
|
1280
1483
|
fontSize: "0.875rem",
|
|
1281
1484
|
color: "var(--ds-text-secondary, #64748b)"
|
|
@@ -1285,7 +1488,7 @@ var Tabs = ({ tabs, defaultValue }) => {
|
|
|
1285
1488
|
var Tabs_default = Tabs;
|
|
1286
1489
|
|
|
1287
1490
|
// src/components/Textarea/Textarea.tsx
|
|
1288
|
-
var
|
|
1491
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1289
1492
|
var textareaCSS = `
|
|
1290
1493
|
[data-ds-textarea]::placeholder { color: var(--ds-text-secondary, #64748b); }
|
|
1291
1494
|
[data-ds-textarea]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
|
|
@@ -1295,9 +1498,9 @@ var textareaCSS = `
|
|
|
1295
1498
|
`;
|
|
1296
1499
|
var Textarea = (_a) => {
|
|
1297
1500
|
var _b = _a, { error, style } = _b, props = __objRest(_b, ["error", "style"]);
|
|
1298
|
-
return /* @__PURE__ */ (0,
|
|
1299
|
-
/* @__PURE__ */ (0,
|
|
1300
|
-
/* @__PURE__ */ (0,
|
|
1501
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
|
|
1502
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("style", { href: "ds-textarea", precedence: "low", children: textareaCSS }),
|
|
1503
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1301
1504
|
"textarea",
|
|
1302
1505
|
__spreadValues({
|
|
1303
1506
|
"data-ds-textarea": "",
|
|
@@ -1324,7 +1527,7 @@ var Textarea_default = Textarea;
|
|
|
1324
1527
|
|
|
1325
1528
|
// src/components/Tooltip/Tooltip.tsx
|
|
1326
1529
|
var import_react14 = require("react");
|
|
1327
|
-
var
|
|
1530
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1328
1531
|
var positionStyle = {
|
|
1329
1532
|
top: { bottom: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
|
|
1330
1533
|
bottom: { top: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
|
|
@@ -1342,11 +1545,11 @@ var tooltipCSS = `
|
|
|
1342
1545
|
[data-ds-tt="left"]::before { left: 100%; top: 50%; transform: translateY(-50%); border-left-color: var(--ds-tooltip-bg, #0f172a); }
|
|
1343
1546
|
[data-ds-tt="right"]::before { right: 100%; top: 50%; transform: translateY(-50%); border-right-color: var(--ds-tooltip-bg, #0f172a); }
|
|
1344
1547
|
`;
|
|
1345
|
-
var
|
|
1548
|
+
var Tooltip5 = ({ content, children, position = "top" }) => {
|
|
1346
1549
|
const [visible, setVisible] = (0, import_react14.useState)(false);
|
|
1347
|
-
return /* @__PURE__ */ (0,
|
|
1348
|
-
/* @__PURE__ */ (0,
|
|
1349
|
-
/* @__PURE__ */ (0,
|
|
1550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
1551
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("style", { href: "ds-tooltip", precedence: "low", children: tooltipCSS }),
|
|
1552
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1350
1553
|
"span",
|
|
1351
1554
|
{
|
|
1352
1555
|
style: { position: "relative", display: "inline-flex" },
|
|
@@ -1356,7 +1559,7 @@ var Tooltip = ({ content, children, position = "top" }) => {
|
|
|
1356
1559
|
onBlur: () => setVisible(false),
|
|
1357
1560
|
children: [
|
|
1358
1561
|
children,
|
|
1359
|
-
/* @__PURE__ */ (0,
|
|
1562
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1360
1563
|
"span",
|
|
1361
1564
|
{
|
|
1362
1565
|
role: "tooltip",
|
|
@@ -1383,13 +1586,15 @@ var Tooltip = ({ content, children, position = "top" }) => {
|
|
|
1383
1586
|
)
|
|
1384
1587
|
] });
|
|
1385
1588
|
};
|
|
1386
|
-
var Tooltip_default =
|
|
1589
|
+
var Tooltip_default = Tooltip5;
|
|
1387
1590
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1388
1591
|
0 && (module.exports = {
|
|
1389
1592
|
Accordion,
|
|
1390
1593
|
Alert,
|
|
1594
|
+
AreaChart,
|
|
1391
1595
|
Avatar,
|
|
1392
1596
|
Badge,
|
|
1597
|
+
BarChart,
|
|
1393
1598
|
Breadcrumb,
|
|
1394
1599
|
Button,
|
|
1395
1600
|
Card,
|
|
@@ -1403,7 +1608,9 @@ var Tooltip_default = Tooltip;
|
|
|
1403
1608
|
FileUpload,
|
|
1404
1609
|
Input,
|
|
1405
1610
|
Label,
|
|
1611
|
+
LineChart,
|
|
1406
1612
|
PasswordInput,
|
|
1613
|
+
PieChart,
|
|
1407
1614
|
Progress,
|
|
1408
1615
|
RadioGroup,
|
|
1409
1616
|
Select,
|