@efiche/design 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -143,71 +143,144 @@ var Accordion_default = Accordion;
143
143
 
144
144
  // src/components/Alert/Alert.tsx
145
145
  import { Info, CheckCircle2, AlertTriangle, AlertCircle } from "lucide-react";
146
-
147
- // src/components/Alert/Alert.module.css
148
- var Alert_default = {};
149
-
150
- // src/components/Alert/Alert.tsx
151
146
  import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
147
+ var variantMap = {
148
+ 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)" },
149
+ 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)" },
150
+ warning: { bg: "var(--ds-warning-bg, #fffbeb)", border: "var(--ds-warning, #f59e0b)", icon: "var(--ds-warning, #f59e0b)", title: "var(--ds-warning-title, #78350f)", desc: "var(--ds-warning-desc, #92400e)" },
151
+ 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)" }
152
+ };
152
153
  var icons = {
153
154
  info: /* @__PURE__ */ jsx3(Info, { size: 16 }),
154
155
  success: /* @__PURE__ */ jsx3(CheckCircle2, { size: 16 }),
155
156
  warning: /* @__PURE__ */ jsx3(AlertTriangle, { size: 16 }),
156
157
  danger: /* @__PURE__ */ jsx3(AlertCircle, { size: 16 })
157
158
  };
158
- var Alert = ({ variant = "info", title, description }) => /* @__PURE__ */ jsxs2("div", { className: `${Alert_default.alert} ${Alert_default[variant]}`, role: "alert", children: [
159
- /* @__PURE__ */ jsx3("span", { className: Alert_default.icon, children: icons[variant] }),
160
- /* @__PURE__ */ jsxs2("div", { className: Alert_default.content, children: [
161
- /* @__PURE__ */ jsx3("p", { className: Alert_default.title, children: title }),
162
- /* @__PURE__ */ jsx3("p", { className: Alert_default.description, children: description })
163
- ] })
164
- ] });
165
- var Alert_default2 = Alert;
166
-
167
- // src/components/Avatar/Avatar.module.css
168
- var Avatar_default = {};
159
+ var Alert = ({ variant = "info", title, description }) => {
160
+ const v = variantMap[variant];
161
+ return /* @__PURE__ */ jsxs2("div", { role: "alert", style: {
162
+ display: "flex",
163
+ gap: "0.75rem",
164
+ padding: "1rem",
165
+ borderRadius: "0.5rem",
166
+ borderLeft: `4px solid ${v.border}`,
167
+ backgroundColor: v.bg
168
+ }, children: [
169
+ /* @__PURE__ */ jsx3("span", { style: { flexShrink: 0, marginTop: "0.125rem", color: v.icon }, children: icons[variant] }),
170
+ /* @__PURE__ */ jsxs2("div", { style: { flex: 1 }, children: [
171
+ /* @__PURE__ */ jsx3("p", { style: { fontWeight: 600, fontSize: "0.875rem", marginBottom: "0.25rem", marginTop: 0, color: v.title }, children: title }),
172
+ /* @__PURE__ */ jsx3("p", { style: { fontSize: "0.875rem", margin: 0, color: v.desc }, children: description })
173
+ ] })
174
+ ] });
175
+ };
176
+ var Alert_default = Alert;
169
177
 
170
178
  // src/components/Avatar/Avatar.tsx
171
179
  import { jsx as jsx4 } from "react/jsx-runtime";
180
+ var sizeMap = {
181
+ sm: { width: "2rem", height: "2rem", fontSize: "0.625rem" },
182
+ md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
183
+ lg: { width: "4rem", height: "4rem", fontSize: "1.25rem" }
184
+ };
172
185
  var Avatar = ({ fallback, size = "md", style, className }) => /* @__PURE__ */ jsx4(
173
186
  "div",
174
187
  {
175
- className: `${Avatar_default.avatar} ${Avatar_default[size]}${className ? ` ${className}` : ""}`,
176
- style,
188
+ className,
177
189
  "aria-label": fallback,
190
+ style: __spreadValues(__spreadValues({
191
+ display: "inline-flex",
192
+ alignItems: "center",
193
+ justifyContent: "center",
194
+ borderRadius: "9999px",
195
+ backgroundColor: "var(--ds-accent, #f1f5f9)",
196
+ color: "var(--ds-text-primary, #0f172a)",
197
+ fontWeight: 600,
198
+ flexShrink: 0,
199
+ userSelect: "none"
200
+ }, sizeMap[size]), style),
178
201
  children: fallback
179
202
  }
180
203
  );
181
- var Avatar_default2 = Avatar;
182
-
183
- // src/components/Badge/Badge.module.css
184
- var Badge_default = {};
204
+ var Avatar_default = Avatar;
185
205
 
186
206
  // src/components/Badge/Badge.tsx
187
207
  import { jsx as jsx5 } from "react/jsx-runtime";
188
- var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ jsx5("span", { className: `${Badge_default.badge} ${Badge_default[variant]} ${Badge_default[size]}`, style, children });
189
- var Badge_default2 = Badge;
208
+ var variantMap2 = {
209
+ default: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff" },
210
+ secondary: { backgroundColor: "var(--ds-muted, #f1f5f9)", color: "var(--ds-text-secondary, #64748b)" },
211
+ outline: { backgroundColor: "transparent", border: "1px solid var(--ds-border, #e2e8f0)", color: "var(--ds-text-primary, #0f172a)" },
212
+ danger: { backgroundColor: "var(--ds-danger, #ef4444)", color: "#fff" },
213
+ success: { backgroundColor: "var(--ds-success, #22c55e)", color: "#fff" },
214
+ warning: { backgroundColor: "var(--ds-warning, #f59e0b)", color: "#fff" },
215
+ info: { backgroundColor: "var(--ds-info, #3b82f6)", color: "#fff" }
216
+ };
217
+ var sizeMap2 = {
218
+ sm: { padding: "0.125rem 0.5rem", fontSize: "0.625rem" },
219
+ md: { padding: "0.25rem 0.625rem", fontSize: "0.75rem" },
220
+ lg: { padding: "0.375rem 0.875rem", fontSize: "0.875rem" }
221
+ };
222
+ var Badge = ({ variant = "default", size = "md", children, style }) => /* @__PURE__ */ jsx5("span", { style: __spreadValues(__spreadValues(__spreadValues({
223
+ display: "inline-flex",
224
+ alignItems: "center",
225
+ gap: "0.25rem",
226
+ borderRadius: "9999px",
227
+ fontWeight: 500,
228
+ whiteSpace: "nowrap"
229
+ }, variantMap2[variant]), sizeMap2[size]), style), children });
230
+ var Badge_default = Badge;
190
231
 
191
232
  // src/components/Breadcrumb/Breadcrumb.tsx
233
+ import { useState as useState3 } from "react";
192
234
  import { ChevronRight } from "lucide-react";
193
-
194
- // src/components/Breadcrumb/Breadcrumb.module.css
195
- var Breadcrumb_default = {};
196
-
197
- // src/components/Breadcrumb/Breadcrumb.tsx
198
235
  import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
199
- var Breadcrumb = ({ items }) => /* @__PURE__ */ jsx6("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx6("ol", { className: Breadcrumb_default.list, children: items.map((item, i) => {
200
- const isLast = i === items.length - 1;
201
- return /* @__PURE__ */ jsxs3("li", { className: Breadcrumb_default.item, children: [
202
- i > 0 && /* @__PURE__ */ jsx6(ChevronRight, { size: 14, className: Breadcrumb_default.separator, "aria-hidden": true }),
203
- isLast || !item.href ? /* @__PURE__ */ jsx6("span", { className: `${Breadcrumb_default.link} ${isLast ? Breadcrumb_default.current : ""}`, children: item.label }) : /* @__PURE__ */ jsx6("a", { href: item.href, className: Breadcrumb_default.link, children: item.label })
204
- ] }, item.label);
205
- }) }) });
206
- var Breadcrumb_default2 = Breadcrumb;
236
+ var Breadcrumb = ({ items }) => {
237
+ const [hovered, setHovered] = useState3(null);
238
+ return /* @__PURE__ */ jsx6("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx6("ol", { style: {
239
+ display: "flex",
240
+ flexWrap: "wrap",
241
+ alignItems: "center",
242
+ listStyle: "none",
243
+ padding: 0,
244
+ margin: 0,
245
+ fontSize: "0.875rem"
246
+ }, children: items.map((item, i) => {
247
+ const isLast = i === items.length - 1;
248
+ const isHovered = hovered === item.label;
249
+ return /* @__PURE__ */ jsxs3("li", { style: { display: "flex", alignItems: "center" }, children: [
250
+ i > 0 && /* @__PURE__ */ jsx6(
251
+ ChevronRight,
252
+ {
253
+ size: 14,
254
+ "aria-hidden": true,
255
+ style: { color: "var(--ds-text-secondary, #64748b)", margin: "0 0.25rem", flexShrink: 0 }
256
+ }
257
+ ),
258
+ isLast || !item.href ? /* @__PURE__ */ jsx6("span", { style: {
259
+ color: isLast ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)",
260
+ fontWeight: isLast ? 500 : void 0,
261
+ cursor: isLast ? "default" : void 0
262
+ }, children: item.label }) : /* @__PURE__ */ jsx6(
263
+ "a",
264
+ {
265
+ href: item.href,
266
+ onMouseEnter: () => setHovered(item.label),
267
+ onMouseLeave: () => setHovered(null),
268
+ style: {
269
+ color: "var(--ds-text-secondary, #64748b)",
270
+ textDecoration: isHovered ? "underline" : "none",
271
+ transition: "color 0.15s"
272
+ },
273
+ children: item.label
274
+ }
275
+ )
276
+ ] }, item.label);
277
+ }) }) });
278
+ };
279
+ var Breadcrumb_default = Breadcrumb;
207
280
 
208
281
  // src/components/Button/Button.tsx
209
282
  import { LoaderCircle } from "lucide-react";
210
- import { useState as useState3 } from "react";
283
+ import { useState as useState4 } from "react";
211
284
  import { Fragment, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
212
285
  var variantStyles = {
213
286
  solid: { backgroundColor: "var(--ds-primary, #3b82f6)", color: "#fff", borderColor: "transparent" },
@@ -270,7 +343,7 @@ var Button = (_a) => {
270
343
  "size",
271
344
  "style"
272
345
  ]);
273
- const [hovered, setHovered] = useState3(false);
346
+ const [hovered, setHovered] = useState4(false);
274
347
  const resolvedVariant = variant != null ? variant : danger ? "danger" : warning ? "warning" : info ? "info" : success ? "success" : ghost ? "ghost" : outline ? "outline" : "solid";
275
348
  const resolvedSize = size != null ? size : small ? "sm" : large ? "lg" : "md";
276
349
  const isDisabled = disabled || loading;
@@ -316,43 +389,58 @@ var Button = (_a) => {
316
389
  };
317
390
  var Button_default = Button;
318
391
 
319
- // src/components/Card/Card.module.css
320
- var Card_default = {};
321
-
322
392
  // src/components/Card/Card.tsx
323
393
  import { jsx as jsx8 } from "react/jsx-runtime";
324
394
  var Card = (_a) => {
325
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
326
- return /* @__PURE__ */ jsx8("div", __spreadValues({ className: `${Card_default.card}${className ? ` ${className}` : ""}` }, props));
395
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
396
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({
397
+ border: "1px solid var(--ds-border, #e2e8f0)",
398
+ borderRadius: "0.5rem",
399
+ backgroundColor: "var(--ds-card, #ffffff)"
400
+ }, style) }, props));
327
401
  };
328
402
  var CardHeader = (_a) => {
329
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
330
- return /* @__PURE__ */ jsx8("div", __spreadValues({ className: `${Card_default.header}${className ? ` ${className}` : ""}` }, props));
403
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
404
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({
405
+ display: "flex",
406
+ flexDirection: "column",
407
+ gap: "0.375rem",
408
+ padding: "1.5rem 1.5rem 0"
409
+ }, style) }, props));
331
410
  };
332
411
  var CardTitle = (_a) => {
333
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
334
- return /* @__PURE__ */ jsx8("h3", __spreadValues({ className: `${Card_default.title}${className ? ` ${className}` : ""}` }, props));
412
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
413
+ return /* @__PURE__ */ jsx8("h3", __spreadValues({ style: __spreadValues({
414
+ fontSize: "1rem",
415
+ fontWeight: 600,
416
+ color: "var(--ds-text-primary, #0f172a)",
417
+ margin: 0,
418
+ lineHeight: 1.4
419
+ }, style) }, props));
335
420
  };
336
421
  var CardDescription = (_a) => {
337
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
338
- return /* @__PURE__ */ jsx8("p", __spreadValues({ className: `${Card_default.description}${className ? ` ${className}` : ""}` }, props));
422
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
423
+ return /* @__PURE__ */ jsx8("p", __spreadValues({ style: __spreadValues({
424
+ fontSize: "0.875rem",
425
+ color: "var(--ds-text-secondary, #64748b)",
426
+ margin: 0
427
+ }, style) }, props));
339
428
  };
340
429
  var CardContent = (_a) => {
341
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
342
- return /* @__PURE__ */ jsx8("div", __spreadValues({ className: `${Card_default.content}${className ? ` ${className}` : ""}` }, props));
430
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
431
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({ padding: "1.5rem" }, style) }, props));
343
432
  };
344
433
  var CardFooter = (_a) => {
345
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
346
- return /* @__PURE__ */ jsx8("div", __spreadValues({ className: `${Card_default.footer}${className ? ` ${className}` : ""}` }, props));
434
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
435
+ return /* @__PURE__ */ jsx8("div", __spreadValues({ style: __spreadValues({
436
+ display: "flex",
437
+ alignItems: "center",
438
+ padding: "0 1.5rem 1.5rem"
439
+ }, style) }, props));
347
440
  };
348
441
 
349
442
  // src/components/Checkbox/Checkbox.tsx
350
- import { useState as useState4 } from "react";
351
-
352
- // src/components/Checkbox/Checkbox.module.css
353
- var Checkbox_default = {};
354
-
355
- // src/components/Checkbox/Checkbox.tsx
443
+ import { useState as useState5 } from "react";
356
444
  import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
357
445
  var Checkbox = ({
358
446
  label,
@@ -362,7 +450,7 @@ var Checkbox = ({
362
450
  id,
363
451
  onChange
364
452
  }) => {
365
- const [internal, setInternal] = useState4(defaultChecked);
453
+ const [internal, setInternal] = useState5(defaultChecked);
366
454
  const isChecked = checked !== void 0 ? checked : internal;
367
455
  const handleChange = () => {
368
456
  if (disabled) return;
@@ -370,7 +458,14 @@ var Checkbox = ({
370
458
  setInternal(next);
371
459
  onChange == null ? void 0 : onChange(next);
372
460
  };
373
- return /* @__PURE__ */ jsxs5("label", { className: `${Checkbox_default.container} ${disabled ? Checkbox_default.disabled : ""}`, htmlFor: id, children: [
461
+ return /* @__PURE__ */ jsxs5("label", { htmlFor: id, style: {
462
+ display: "inline-flex",
463
+ alignItems: "center",
464
+ gap: "0.5rem",
465
+ cursor: disabled ? "not-allowed" : "pointer",
466
+ userSelect: "none",
467
+ opacity: disabled ? 0.5 : 1
468
+ }, children: [
374
469
  /* @__PURE__ */ jsx9(
375
470
  "input",
376
471
  {
@@ -379,26 +474,33 @@ var Checkbox = ({
379
474
  checked: isChecked,
380
475
  disabled,
381
476
  onChange: handleChange,
382
- className: Checkbox_default.input
477
+ style: { position: "absolute", opacity: 0, width: 0, height: 0 }
383
478
  }
384
479
  ),
385
- /* @__PURE__ */ jsx9("span", { className: `${Checkbox_default.box} ${isChecked ? Checkbox_default.checked : ""}`, children: isChecked && /* @__PURE__ */ jsx9("svg", { viewBox: "0 0 12 10", fill: "none", className: Checkbox_default.checkmark, children: /* @__PURE__ */ jsx9("path", { d: "M1 5l3.5 3.5L11 1", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
386
- label && /* @__PURE__ */ jsx9("span", { className: Checkbox_default.label, children: label })
480
+ /* @__PURE__ */ jsx9("span", { style: {
481
+ width: "1.125rem",
482
+ height: "1.125rem",
483
+ border: `2px solid ${isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)"}`,
484
+ borderRadius: "0.25rem",
485
+ display: "flex",
486
+ alignItems: "center",
487
+ justifyContent: "center",
488
+ flexShrink: 0,
489
+ transition: "background-color 0.15s, border-color 0.15s",
490
+ backgroundColor: isChecked ? "var(--ds-primary, #3b82f6)" : "var(--ds-card, #fff)"
491
+ }, children: isChecked && /* @__PURE__ */ jsx9("svg", { viewBox: "0 0 12 10", fill: "none", style: { width: "0.625rem", height: "0.625rem" }, children: /* @__PURE__ */ jsx9("path", { d: "M1 5l3.5 3.5L11 1", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
492
+ label && /* @__PURE__ */ jsx9("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
387
493
  ] });
388
494
  };
389
- var Checkbox_default2 = Checkbox;
495
+ var Checkbox_default = Checkbox;
390
496
 
391
497
  // src/components/CopyButton/CopyButton.tsx
392
498
  import { Check, Copy } from "lucide-react";
393
- import { useState as useState5 } from "react";
394
-
395
- // src/components/CopyButton/CopyButton.module.css
396
- var CopyButton_default = {};
397
-
398
- // src/components/CopyButton/CopyButton.tsx
499
+ import { useState as useState6 } from "react";
399
500
  import { jsx as jsx10 } from "react/jsx-runtime";
400
501
  var CopyButton = ({ text }) => {
401
- const [copied, setCopied] = useState5(false);
502
+ const [copied, setCopied] = useState6(false);
503
+ const [hovered, setHovered] = useState6(false);
402
504
  const handleCopy = () => {
403
505
  navigator.clipboard.writeText(text);
404
506
  setCopied(true);
@@ -407,40 +509,51 @@ var CopyButton = ({ text }) => {
407
509
  return /* @__PURE__ */ jsx10(
408
510
  "button",
409
511
  {
410
- className: CopyButton_default.copyButton,
411
512
  onClick: handleCopy,
513
+ onMouseEnter: () => setHovered(true),
514
+ onMouseLeave: () => setHovered(false),
412
515
  "aria-label": copied ? "Copied" : `Copy ${text}`,
413
- children: copied ? /* @__PURE__ */ jsx10(Check, { className: CopyButton_default.icon }) : /* @__PURE__ */ jsx10(Copy, { className: CopyButton_default.icon })
516
+ style: {
517
+ display: "inline-flex",
518
+ alignItems: "center",
519
+ justifyContent: "center",
520
+ padding: "0.25rem",
521
+ border: "none",
522
+ borderRadius: "0.25rem",
523
+ backgroundColor: hovered ? "var(--ds-accent, #f1f5f9)" : "transparent",
524
+ color: hovered ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)",
525
+ cursor: "pointer",
526
+ transition: "background-color 0.15s, color 0.15s"
527
+ },
528
+ children: copied ? /* @__PURE__ */ jsx10(Check, { style: { width: "1rem", height: "1rem" } }) : /* @__PURE__ */ jsx10(Copy, { style: { width: "1rem", height: "1rem" } })
414
529
  }
415
530
  );
416
531
  };
417
- var CopyButton_default2 = CopyButton;
532
+ var CopyButton_default = CopyButton;
418
533
 
419
534
  // src/components/FileUpload/FileUpload.tsx
420
535
  import { Upload } from "lucide-react";
421
- import { useRef, useState as useState6 } from "react";
422
-
423
- // src/components/FileUpload/FileUpload.module.css
424
- var FileUpload_default = {};
425
-
426
- // src/components/FileUpload/FileUpload.tsx
536
+ import { useRef, useState as useState7 } from "react";
427
537
  import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
428
538
  var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
429
- const [isDragging, setIsDragging] = useState6(false);
430
- const [fileNames, setFileNames] = useState6([]);
539
+ const [isDragging, setIsDragging] = useState7(false);
540
+ const [isHovered, setIsHovered] = useState7(false);
541
+ const [fileNames, setFileNames] = useState7([]);
431
542
  const inputRef = useRef(null);
432
543
  const handleFiles = (list) => {
433
544
  setFileNames(Array.from(list).map((f) => f.name));
434
545
  onFileSelect == null ? void 0 : onFileSelect(list);
435
546
  };
547
+ const isActive = isDragging || isHovered;
436
548
  return /* @__PURE__ */ jsxs6(
437
549
  "div",
438
550
  {
439
- className: `${FileUpload_default.zone} ${isDragging ? FileUpload_default.dragging : ""} ${disabled ? FileUpload_default.disabled : ""}`,
440
551
  onClick: () => {
441
552
  var _a;
442
553
  return !disabled && ((_a = inputRef.current) == null ? void 0 : _a.click());
443
554
  },
555
+ onMouseEnter: () => !disabled && setIsHovered(true),
556
+ onMouseLeave: () => setIsHovered(false),
444
557
  onDragOver: (e) => {
445
558
  e.preventDefault();
446
559
  setIsDragging(true);
@@ -451,6 +564,20 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
451
564
  setIsDragging(false);
452
565
  if (!disabled && e.dataTransfer.files.length) handleFiles(e.dataTransfer.files);
453
566
  },
567
+ style: {
568
+ border: `2px dashed ${isActive ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)"}`,
569
+ borderRadius: "0.5rem",
570
+ padding: "2rem",
571
+ display: "flex",
572
+ flexDirection: "column",
573
+ alignItems: "center",
574
+ gap: "0.5rem",
575
+ cursor: disabled ? "not-allowed" : "pointer",
576
+ backgroundColor: isActive ? "var(--ds-primary-50, #eff6ff)" : "var(--ds-muted, #f1f5f9)",
577
+ transition: "border-color 0.15s, background-color 0.15s",
578
+ textAlign: "center",
579
+ opacity: disabled ? 0.5 : 1
580
+ },
454
581
  children: [
455
582
  /* @__PURE__ */ jsx11(
456
583
  "input",
@@ -460,12 +587,12 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
460
587
  accept,
461
588
  multiple,
462
589
  disabled,
463
- className: FileUpload_default.input,
590
+ style: { display: "none" },
464
591
  onChange: (e) => e.target.files && handleFiles(e.target.files)
465
592
  }
466
593
  ),
467
- /* @__PURE__ */ jsx11(Upload, { size: 32, className: FileUpload_default.icon }),
468
- fileNames.length > 0 ? /* @__PURE__ */ jsx11("p", { className: FileUpload_default.fileName, children: fileNames.join(", ") }) : /* @__PURE__ */ jsxs6("p", { className: FileUpload_default.hint, children: [
594
+ /* @__PURE__ */ jsx11(Upload, { size: 32, style: { color: "var(--ds-text-secondary, #64748b)" } }),
595
+ fileNames.length > 0 ? /* @__PURE__ */ jsx11("p", { style: { fontSize: "0.875rem", color: "var(--ds-primary, #3b82f6)", fontWeight: 500, margin: 0 }, children: fileNames.join(", ") }) : /* @__PURE__ */ jsxs6("p", { style: { fontSize: "0.875rem", color: "var(--ds-text-secondary, #64748b)", margin: 0 }, children: [
469
596
  /* @__PURE__ */ jsx11("strong", { children: "Click to upload" }),
470
597
  " or drag and drop"
471
598
  ] })
@@ -473,65 +600,91 @@ var FileUpload = ({ accept, multiple, disabled, onFileSelect }) => {
473
600
  }
474
601
  );
475
602
  };
476
- var FileUpload_default2 = FileUpload;
477
-
478
- // src/components/Input/Input.module.css
479
- var Input_default = {};
603
+ var FileUpload_default = FileUpload;
480
604
 
481
605
  // src/components/Input/Input.tsx
482
- import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
606
+ import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
607
+ var inputCSS = `
608
+ [data-ds-input]::placeholder { color: var(--ds-text-secondary, #64748b); }
609
+ [data-ds-input]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
610
+ [data-ds-input]:disabled { opacity: 0.5; cursor: not-allowed; background-color: var(--ds-muted, #f1f5f9); }
611
+ [data-ds-input][data-error="true"]:focus { border-color: var(--ds-danger, #ef4444); box-shadow: 0 0 0 3px rgb(239 68 68 / 0.15); }
612
+ [data-ds-input][data-success="true"]:focus { border-color: var(--ds-success, #22c55e); box-shadow: 0 0 0 3px rgb(34 197 94 / 0.15); }
613
+ `;
483
614
  var Input = (_a) => {
484
- var _b = _a, {
485
- error,
486
- success,
487
- leftIcon,
488
- rightIcon,
489
- className
490
- } = _b, props = __objRest(_b, [
491
- "error",
492
- "success",
493
- "leftIcon",
494
- "rightIcon",
495
- "className"
496
- ]);
497
- const wrapperClasses = [
498
- Input_default.wrapper,
499
- error ? Input_default.error : "",
500
- success ? Input_default.success : "",
501
- leftIcon ? Input_default.hasLeft : "",
502
- rightIcon ? Input_default.hasRight : "",
503
- className != null ? className : ""
504
- ].filter(Boolean).join(" ");
505
- return /* @__PURE__ */ jsxs7("div", { className: wrapperClasses, children: [
506
- leftIcon && /* @__PURE__ */ jsx12("span", { className: Input_default.leftIcon, children: leftIcon }),
507
- /* @__PURE__ */ jsx12("input", __spreadValues({ className: Input_default.input }, props)),
508
- rightIcon && /* @__PURE__ */ jsx12("span", { className: Input_default.rightIcon, children: rightIcon })
615
+ var _b = _a, { error, success, leftIcon, rightIcon, style } = _b, props = __objRest(_b, ["error", "success", "leftIcon", "rightIcon", "style"]);
616
+ return /* @__PURE__ */ jsxs7(Fragment2, { children: [
617
+ /* @__PURE__ */ jsx12("style", { href: "ds-input", precedence: "low", children: inputCSS }),
618
+ /* @__PURE__ */ jsxs7("div", { style: { position: "relative", display: "flex", alignItems: "center", width: "100%" }, children: [
619
+ leftIcon && /* @__PURE__ */ jsx12("span", { style: {
620
+ position: "absolute",
621
+ left: "0.625rem",
622
+ display: "flex",
623
+ alignItems: "center",
624
+ color: "var(--ds-text-secondary, #64748b)",
625
+ pointerEvents: "none"
626
+ }, children: leftIcon }),
627
+ /* @__PURE__ */ jsx12(
628
+ "input",
629
+ __spreadValues({
630
+ "data-ds-input": "",
631
+ "data-error": error ? "true" : void 0,
632
+ "data-success": success ? "true" : void 0,
633
+ style: __spreadValues({
634
+ width: "100%",
635
+ height: "2.25rem",
636
+ paddingTop: 0,
637
+ paddingBottom: 0,
638
+ paddingLeft: leftIcon ? "2.25rem" : "0.75rem",
639
+ paddingRight: rightIcon ? "2.25rem" : "0.75rem",
640
+ border: `1px solid ${error ? "var(--ds-danger, #ef4444)" : success ? "var(--ds-success, #22c55e)" : "var(--ds-border, #e2e8f0)"}`,
641
+ borderRadius: "0.375rem",
642
+ fontSize: "0.875rem",
643
+ backgroundColor: "var(--ds-card, #fff)",
644
+ color: "var(--ds-text-primary, #0f172a)",
645
+ fontFamily: "inherit",
646
+ transition: "border-color 0.15s, box-shadow 0.15s"
647
+ }, style)
648
+ }, props)
649
+ ),
650
+ rightIcon && /* @__PURE__ */ jsx12("span", { style: {
651
+ position: "absolute",
652
+ right: "0.625rem",
653
+ display: "flex",
654
+ alignItems: "center",
655
+ color: "var(--ds-text-secondary, #64748b)",
656
+ pointerEvents: "none"
657
+ }, children: rightIcon })
658
+ ] })
509
659
  ] });
510
660
  };
511
- var Input_default2 = Input;
512
-
513
- // src/components/Label/Label.module.css
514
- var Label_default = {};
661
+ var Input_default = Input;
515
662
 
516
663
  // src/components/Label/Label.tsx
517
664
  import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
518
665
  var Label = (_a) => {
519
- var _b = _a, { children, required, className } = _b, props = __objRest(_b, ["children", "required", "className"]);
520
- return /* @__PURE__ */ jsxs8("label", __spreadProps(__spreadValues({ className: `${Label_default.label} ${className != null ? className : ""}` }, props), { children: [
666
+ var _b = _a, { children, required, style } = _b, props = __objRest(_b, ["children", "required", "style"]);
667
+ return /* @__PURE__ */ jsxs8("label", __spreadProps(__spreadValues({ style: __spreadValues({
668
+ display: "block",
669
+ fontSize: "0.875rem",
670
+ fontWeight: 500,
671
+ color: "var(--ds-text-primary, #0f172a)",
672
+ marginBottom: "0.375rem"
673
+ }, style) }, props), { children: [
521
674
  children,
522
- required && /* @__PURE__ */ jsx13("span", { className: Label_default.required, children: "*" })
675
+ required && /* @__PURE__ */ jsx13("span", { style: { color: "var(--ds-danger, #ef4444)", marginLeft: "0.25rem" }, children: "*" })
523
676
  ] }));
524
677
  };
525
- var Label_default2 = Label;
678
+ var Label_default = Label;
526
679
 
527
680
  // src/components/PasswordInput/PasswordInput.tsx
528
681
  import { Eye, EyeOff } from "lucide-react";
529
- import { useState as useState7 } from "react";
682
+ import { useState as useState8 } from "react";
530
683
  import { jsx as jsx14 } from "react/jsx-runtime";
531
684
  var PasswordInput = (props) => {
532
- const [visible, setVisible] = useState7(false);
685
+ const [visible, setVisible] = useState8(false);
533
686
  return /* @__PURE__ */ jsx14(
534
- Input_default2,
687
+ Input_default,
535
688
  __spreadProps(__spreadValues({}, props), {
536
689
  type: visible ? "text" : "password",
537
690
  rightIcon: /* @__PURE__ */ jsx14(
@@ -549,9 +702,6 @@ var PasswordInput = (props) => {
549
702
  };
550
703
  var PasswordInput_default = PasswordInput;
551
704
 
552
- // src/components/Progress/Progress.module.css
553
- var Progress_default = {};
554
-
555
705
  // src/components/Progress/Progress.tsx
556
706
  import { jsx as jsx15 } from "react/jsx-runtime";
557
707
  var Progress = ({ value = 0 }) => {
@@ -559,24 +709,31 @@ var Progress = ({ value = 0 }) => {
559
709
  return /* @__PURE__ */ jsx15(
560
710
  "div",
561
711
  {
562
- className: Progress_default.track,
563
712
  role: "progressbar",
564
713
  "aria-valuenow": pct,
565
714
  "aria-valuemin": 0,
566
715
  "aria-valuemax": 100,
567
- children: /* @__PURE__ */ jsx15("div", { className: Progress_default.fill, style: { width: `${pct}%` } })
716
+ style: {
717
+ width: "100%",
718
+ height: "0.5rem",
719
+ backgroundColor: "var(--ds-border, #e2e8f0)",
720
+ borderRadius: "9999px",
721
+ overflow: "hidden"
722
+ },
723
+ children: /* @__PURE__ */ jsx15("div", { style: {
724
+ height: "100%",
725
+ width: `${pct}%`,
726
+ backgroundColor: "var(--ds-primary, #3b82f6)",
727
+ borderRadius: "9999px",
728
+ transition: "width 0.3s ease"
729
+ } })
568
730
  }
569
731
  );
570
732
  };
571
- var Progress_default2 = Progress;
572
-
573
- // src/components/RadioGroup/RadioGroup.tsx
574
- import { useState as useState8 } from "react";
575
-
576
- // src/components/RadioGroup/RadioGroup.module.css
577
- var RadioGroup_default = {};
733
+ var Progress_default = Progress;
578
734
 
579
735
  // src/components/RadioGroup/RadioGroup.tsx
736
+ import { useState as useState9 } from "react";
580
737
  import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
581
738
  var RadioGroup = ({
582
739
  options,
@@ -586,48 +743,65 @@ var RadioGroup = ({
586
743
  disabled,
587
744
  onChange
588
745
  }) => {
589
- const [internal, setInternal] = useState8(defaultValue);
746
+ const [internal, setInternal] = useState9(defaultValue);
590
747
  const selected = value !== void 0 ? value : internal;
591
748
  const handleChange = (val) => {
592
749
  if (disabled) return;
593
750
  setInternal(val);
594
751
  onChange == null ? void 0 : onChange(val);
595
752
  };
596
- return /* @__PURE__ */ jsx16("div", { className: RadioGroup_default.group, children: options.map((option) => /* @__PURE__ */ jsxs9(
597
- "label",
598
- {
599
- className: `${RadioGroup_default.item} ${disabled ? RadioGroup_default.disabled : ""}`,
600
- children: [
601
- /* @__PURE__ */ jsx16(
602
- "input",
603
- {
604
- type: "radio",
605
- name,
606
- value: option.value,
607
- checked: selected === option.value,
608
- disabled,
609
- onChange: () => handleChange(option.value),
610
- className: RadioGroup_default.input
611
- }
612
- ),
613
- /* @__PURE__ */ jsx16("span", { className: `${RadioGroup_default.dot} ${selected === option.value ? RadioGroup_default.checked : ""}`, children: selected === option.value && /* @__PURE__ */ jsx16("span", { className: RadioGroup_default.inner }) }),
614
- /* @__PURE__ */ jsx16("span", { className: RadioGroup_default.label, children: option.label })
615
- ]
616
- },
617
- option.value
618
- )) });
753
+ return /* @__PURE__ */ jsx16("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: options.map((option) => {
754
+ const isSelected = selected === option.value;
755
+ return /* @__PURE__ */ jsxs9("label", { style: {
756
+ display: "inline-flex",
757
+ alignItems: "center",
758
+ gap: "0.5rem",
759
+ cursor: disabled ? "not-allowed" : "pointer",
760
+ userSelect: "none",
761
+ opacity: disabled ? 0.5 : 1
762
+ }, children: [
763
+ /* @__PURE__ */ jsx16(
764
+ "input",
765
+ {
766
+ type: "radio",
767
+ name,
768
+ value: option.value,
769
+ checked: isSelected,
770
+ disabled,
771
+ onChange: () => handleChange(option.value),
772
+ style: { position: "absolute", opacity: 0, width: 0, height: 0 }
773
+ }
774
+ ),
775
+ /* @__PURE__ */ jsx16("span", { style: {
776
+ width: "1.125rem",
777
+ height: "1.125rem",
778
+ borderRadius: "9999px",
779
+ border: `2px solid ${isSelected ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)"}`,
780
+ display: "flex",
781
+ alignItems: "center",
782
+ justifyContent: "center",
783
+ flexShrink: 0,
784
+ backgroundColor: "var(--ds-card, #fff)",
785
+ transition: "border-color 0.15s"
786
+ }, children: isSelected && /* @__PURE__ */ jsx16("span", { style: {
787
+ width: "0.5rem",
788
+ height: "0.5rem",
789
+ borderRadius: "9999px",
790
+ backgroundColor: "var(--ds-primary, #3b82f6)"
791
+ } }) }),
792
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: option.label })
793
+ ] }, option.value);
794
+ }) });
619
795
  };
620
- var RadioGroup_default2 = RadioGroup;
796
+ var RadioGroup_default = RadioGroup;
621
797
 
622
798
  // src/components/Select/Select.tsx
623
799
  import { Check as Check2, ChevronDown as ChevronDown2 } from "lucide-react";
624
- import { useEffect, useRef as useRef2, useState as useState9 } from "react";
625
-
626
- // src/components/Select/Select.module.css
627
- var Select_default = {};
628
-
629
- // src/components/Select/Select.tsx
630
- import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
800
+ import { useEffect, useRef as useRef2, useState as useState10 } from "react";
801
+ import { Fragment as Fragment3, jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
802
+ var selectCSS = `
803
+ [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); }
804
+ `;
631
805
  var Select = ({
632
806
  options,
633
807
  value,
@@ -637,8 +811,9 @@ var Select = ({
637
811
  onChange
638
812
  }) => {
639
813
  var _a;
640
- const [internal, setInternal] = useState9(defaultValue);
641
- const [open, setOpen] = useState9(false);
814
+ const [internal, setInternal] = useState10(defaultValue);
815
+ const [open, setOpen] = useState10(false);
816
+ const [hoveredOption, setHoveredOption] = useState10(null);
642
817
  const ref = useRef2(null);
643
818
  const selected = value !== void 0 ? value : internal;
644
819
  const selectedLabel = (_a = options.find((o) => o.value === selected)) == null ? void 0 : _a.label;
@@ -654,59 +829,168 @@ var Select = ({
654
829
  document.addEventListener("mousedown", handleOutside);
655
830
  return () => document.removeEventListener("mousedown", handleOutside);
656
831
  }, []);
657
- return /* @__PURE__ */ jsxs10("div", { ref, className: `${Select_default.wrapper} ${disabled ? Select_default.disabled : ""}`, children: [
658
- /* @__PURE__ */ jsxs10(
659
- "button",
660
- {
661
- type: "button",
662
- className: `${Select_default.trigger} ${open ? Select_default.open : ""}`,
663
- onClick: () => !disabled && setOpen((o) => !o),
664
- disabled,
665
- children: [
666
- /* @__PURE__ */ jsx17("span", { className: selectedLabel ? Select_default.value : Select_default.placeholder, children: selectedLabel != null ? selectedLabel : placeholder }),
667
- /* @__PURE__ */ jsx17(ChevronDown2, { size: 16, className: `${Select_default.chevron} ${open ? Select_default.chevronOpen : ""}` })
668
- ]
669
- }
670
- ),
671
- open && /* @__PURE__ */ jsx17("div", { className: Select_default.dropdown, children: options.map((option) => /* @__PURE__ */ jsxs10(
672
- "div",
673
- {
674
- className: `${Select_default.option} ${selected === option.value ? Select_default.selected : ""}`,
675
- onClick: () => handleSelect(option.value),
676
- children: [
677
- selected === option.value ? /* @__PURE__ */ jsx17(Check2, { size: 14, className: Select_default.checkIcon }) : /* @__PURE__ */ jsx17("span", { className: Select_default.checkSpacer }),
678
- option.label
679
- ]
680
- },
681
- option.value
682
- )) })
832
+ return /* @__PURE__ */ jsxs10(Fragment3, { children: [
833
+ /* @__PURE__ */ jsx17("style", { href: "ds-select", precedence: "low", children: selectCSS }),
834
+ /* @__PURE__ */ jsxs10("div", { ref, style: {
835
+ position: "relative",
836
+ width: "100%",
837
+ opacity: disabled ? 0.5 : 1,
838
+ pointerEvents: disabled ? "none" : void 0
839
+ }, children: [
840
+ /* @__PURE__ */ jsxs10(
841
+ "button",
842
+ {
843
+ type: "button",
844
+ "data-ds-select-trigger": "",
845
+ onClick: () => !disabled && setOpen((o) => !o),
846
+ disabled,
847
+ style: {
848
+ width: "100%",
849
+ height: "2.25rem",
850
+ padding: "0 0.75rem",
851
+ border: `1px solid ${open ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)"}`,
852
+ borderRadius: "0.375rem",
853
+ fontSize: "0.875rem",
854
+ backgroundColor: "var(--ds-card, #fff)",
855
+ cursor: "pointer",
856
+ display: "flex",
857
+ alignItems: "center",
858
+ justifyContent: "space-between",
859
+ gap: "0.5rem",
860
+ boxShadow: open ? "0 0 0 3px rgb(59 130 246 / 0.15)" : "none",
861
+ transition: "border-color 0.15s, box-shadow 0.15s",
862
+ textAlign: "left",
863
+ fontFamily: "inherit"
864
+ },
865
+ children: [
866
+ /* @__PURE__ */ jsx17("span", { style: { color: selectedLabel ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)" }, children: selectedLabel != null ? selectedLabel : placeholder }),
867
+ /* @__PURE__ */ jsx17(
868
+ ChevronDown2,
869
+ {
870
+ size: 16,
871
+ style: {
872
+ flexShrink: 0,
873
+ color: "var(--ds-text-secondary, #64748b)",
874
+ transition: "transform 0.15s",
875
+ transform: open ? "rotate(180deg)" : "rotate(0deg)"
876
+ }
877
+ }
878
+ )
879
+ ]
880
+ }
881
+ ),
882
+ open && /* @__PURE__ */ jsx17("div", { style: {
883
+ position: "absolute",
884
+ top: "calc(100% + 0.25rem)",
885
+ left: 0,
886
+ right: 0,
887
+ zIndex: 50,
888
+ backgroundColor: "var(--ds-card, #fff)",
889
+ border: "1px solid var(--ds-border, #e2e8f0)",
890
+ borderRadius: "0.375rem",
891
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1)",
892
+ overflow: "hidden"
893
+ }, children: options.map((option) => {
894
+ const isSelected = selected === option.value;
895
+ const isHovered = hoveredOption === option.value;
896
+ return /* @__PURE__ */ jsxs10(
897
+ "div",
898
+ {
899
+ onClick: () => handleSelect(option.value),
900
+ onMouseEnter: () => setHoveredOption(option.value),
901
+ onMouseLeave: () => setHoveredOption(null),
902
+ style: {
903
+ padding: "0.5rem 0.75rem",
904
+ fontSize: "0.875rem",
905
+ cursor: "pointer",
906
+ display: "flex",
907
+ alignItems: "center",
908
+ gap: "0.5rem",
909
+ color: "var(--ds-text-primary, #0f172a)",
910
+ backgroundColor: isSelected || isHovered ? "var(--ds-muted, #f1f5f9)" : "transparent",
911
+ fontWeight: isSelected ? 500 : void 0,
912
+ transition: "background-color 0.1s"
913
+ },
914
+ children: [
915
+ isSelected ? /* @__PURE__ */ jsx17(Check2, { size: 14, style: { color: "var(--ds-primary, #3b82f6)", flexShrink: 0 } }) : /* @__PURE__ */ jsx17("span", { style: { width: 14, flexShrink: 0 } }),
916
+ option.label
917
+ ]
918
+ },
919
+ option.value
920
+ );
921
+ }) })
922
+ ] })
683
923
  ] });
684
924
  };
685
- var Select_default2 = Select;
686
-
687
- // src/components/Skeleton/Skeleton.module.css
688
- var Skeleton_default = {};
925
+ var Select_default = Select;
689
926
 
690
927
  // src/components/Skeleton/Skeleton.tsx
691
- import { jsx as jsx18 } from "react/jsx-runtime";
692
- var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ jsx18(
693
- "div",
694
- {
695
- className: `${Skeleton_default.skeleton} ${circle ? Skeleton_default.circle : ""}`,
696
- style: { height, width },
697
- "aria-hidden": "true"
698
- }
699
- );
700
- var Skeleton_default2 = Skeleton;
701
-
702
- // src/components/Slider/Slider.tsx
703
- import { useState as useState10 } from "react";
704
-
705
- // src/components/Slider/Slider.module.css
706
- var Slider_default = {};
928
+ import { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
929
+ var Skeleton = ({ height = "1rem", width = "100%", circle = false }) => /* @__PURE__ */ jsxs11(Fragment4, { children: [
930
+ /* @__PURE__ */ jsx18("style", { href: "ds-skeleton", precedence: "low", children: `
931
+ @keyframes ds-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
932
+ [data-ds-skeleton] { animation: ds-pulse 1.5s ease-in-out infinite; }
933
+ ` }),
934
+ /* @__PURE__ */ jsx18(
935
+ "div",
936
+ {
937
+ "data-ds-skeleton": "",
938
+ "aria-hidden": "true",
939
+ style: {
940
+ height,
941
+ width,
942
+ backgroundColor: "var(--ds-muted, #f1f5f9)",
943
+ borderRadius: circle ? "9999px" : "0.375rem"
944
+ }
945
+ }
946
+ )
947
+ ] });
948
+ var Skeleton_default = Skeleton;
707
949
 
708
950
  // src/components/Slider/Slider.tsx
709
- import { jsx as jsx19 } from "react/jsx-runtime";
951
+ import { useState as useState11 } from "react";
952
+ import { Fragment as Fragment5, jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
953
+ var sliderCSS = `
954
+ [data-ds-slider] {
955
+ -webkit-appearance: none;
956
+ appearance: none;
957
+ width: 100%;
958
+ height: 0.375rem;
959
+ border-radius: 9999px;
960
+ outline: none;
961
+ cursor: pointer;
962
+ background: linear-gradient(
963
+ to right,
964
+ var(--ds-primary, #3b82f6) 0%,
965
+ var(--ds-primary, #3b82f6) var(--fill, 50%),
966
+ var(--ds-border, #e2e8f0) var(--fill, 50%),
967
+ var(--ds-border, #e2e8f0) 100%
968
+ );
969
+ }
970
+ [data-ds-slider]::-webkit-slider-thumb {
971
+ -webkit-appearance: none;
972
+ appearance: none;
973
+ width: 1.125rem;
974
+ height: 1.125rem;
975
+ border-radius: 9999px;
976
+ background-color: var(--ds-primary, #3b82f6);
977
+ cursor: pointer;
978
+ border: 2px solid #fff;
979
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.2);
980
+ transition: transform 0.1s;
981
+ }
982
+ [data-ds-slider]::-webkit-slider-thumb:hover { transform: scale(1.2); }
983
+ [data-ds-slider]::-moz-range-thumb {
984
+ width: 1.125rem;
985
+ height: 1.125rem;
986
+ border-radius: 9999px;
987
+ background-color: var(--ds-primary, #3b82f6);
988
+ cursor: pointer;
989
+ border: 2px solid #fff;
990
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.2);
991
+ }
992
+ [data-ds-slider]:disabled { cursor: not-allowed; }
993
+ `;
710
994
  var Slider = ({
711
995
  value,
712
996
  defaultValue = 50,
@@ -716,7 +1000,7 @@ var Slider = ({
716
1000
  disabled,
717
1001
  onChange
718
1002
  }) => {
719
- const [internal, setInternal] = useState10(defaultValue);
1003
+ const [internal, setInternal] = useState11(defaultValue);
720
1004
  const current = value !== void 0 ? value : internal;
721
1005
  const fill = `${(current - min) / (max - min) * 100}%`;
722
1006
  const handleChange = (e) => {
@@ -724,43 +1008,50 @@ var Slider = ({
724
1008
  setInternal(val);
725
1009
  onChange == null ? void 0 : onChange(val);
726
1010
  };
727
- return /* @__PURE__ */ jsx19("div", { className: `${Slider_default.wrapper} ${disabled ? Slider_default.disabled : ""}`, children: /* @__PURE__ */ jsx19(
728
- "input",
729
- {
730
- type: "range",
731
- min,
732
- max,
733
- step,
734
- value: current,
735
- disabled,
736
- onChange: handleChange,
737
- className: Slider_default.range,
738
- style: { "--fill": fill }
739
- }
740
- ) });
1011
+ return /* @__PURE__ */ jsxs12(Fragment5, { children: [
1012
+ /* @__PURE__ */ jsx19("style", { href: "ds-slider", precedence: "low", children: sliderCSS }),
1013
+ /* @__PURE__ */ jsx19("div", { style: {
1014
+ width: "100%",
1015
+ padding: "0.25rem 0",
1016
+ opacity: disabled ? 0.5 : 1
1017
+ }, children: /* @__PURE__ */ jsx19(
1018
+ "input",
1019
+ {
1020
+ type: "range",
1021
+ "data-ds-slider": "",
1022
+ min,
1023
+ max,
1024
+ step,
1025
+ value: current,
1026
+ disabled,
1027
+ onChange: handleChange,
1028
+ style: { "--fill": fill }
1029
+ }
1030
+ ) })
1031
+ ] });
741
1032
  };
742
- var Slider_default2 = Slider;
1033
+ var Slider_default = Slider;
743
1034
 
744
1035
  // src/components/Spinner/Spinner.tsx
745
1036
  import { Loader2 } from "lucide-react";
746
-
747
- // src/components/Spinner/Spinner.module.css
748
- var Spinner_default = {};
749
-
750
- // src/components/Spinner/Spinner.tsx
751
- import { jsx as jsx20 } from "react/jsx-runtime";
1037
+ import { Fragment as Fragment6, jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
752
1038
  var sizePx = { sm: 16, md: 24, lg: 32 };
753
- var Spinner = ({ size = "md" }) => /* @__PURE__ */ jsx20(Loader2, { size: sizePx[size], className: Spinner_default.spinner, "aria-label": "Loading" });
754
- var Spinner_default2 = Spinner;
755
-
756
- // src/components/Switch/Switch.tsx
757
- import { useState as useState11 } from "react";
758
-
759
- // src/components/Switch/Switch.module.css
760
- var Switch_default = {};
1039
+ var Spinner = ({ size = "md" }) => /* @__PURE__ */ jsxs13(Fragment6, { children: [
1040
+ /* @__PURE__ */ jsx20("style", { href: "ds-spin", precedence: "low", children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` }),
1041
+ /* @__PURE__ */ jsx20(
1042
+ Loader2,
1043
+ {
1044
+ size: sizePx[size],
1045
+ "aria-label": "Loading",
1046
+ style: { color: "var(--ds-primary, #3b82f6)", animation: "ds-spin 0.75s linear infinite" }
1047
+ }
1048
+ )
1049
+ ] });
1050
+ var Spinner_default = Spinner;
761
1051
 
762
1052
  // src/components/Switch/Switch.tsx
763
- import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
1053
+ import { useState as useState12 } from "react";
1054
+ import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
764
1055
  var Switch = ({
765
1056
  label,
766
1057
  checked,
@@ -769,7 +1060,7 @@ var Switch = ({
769
1060
  id,
770
1061
  onChange
771
1062
  }) => {
772
- const [internal, setInternal] = useState11(defaultChecked);
1063
+ const [internal, setInternal] = useState12(defaultChecked);
773
1064
  const isOn = checked !== void 0 ? checked : internal;
774
1065
  const handleToggle = () => {
775
1066
  if (disabled) return;
@@ -777,7 +1068,14 @@ var Switch = ({
777
1068
  setInternal(next);
778
1069
  onChange == null ? void 0 : onChange(next);
779
1070
  };
780
- return /* @__PURE__ */ jsxs11("label", { className: `${Switch_default.container} ${disabled ? Switch_default.disabled : ""}`, htmlFor: id, children: [
1071
+ return /* @__PURE__ */ jsxs14("label", { htmlFor: id, style: {
1072
+ display: "inline-flex",
1073
+ alignItems: "center",
1074
+ gap: "0.625rem",
1075
+ cursor: disabled ? "not-allowed" : "pointer",
1076
+ userSelect: "none",
1077
+ opacity: disabled ? 0.5 : 1
1078
+ }, children: [
781
1079
  /* @__PURE__ */ jsx21(
782
1080
  "input",
783
1081
  {
@@ -786,103 +1084,254 @@ var Switch = ({
786
1084
  checked: isOn,
787
1085
  disabled,
788
1086
  onChange: handleToggle,
789
- className: Switch_default.input
1087
+ style: { position: "absolute", opacity: 0, width: 0, height: 0 }
790
1088
  }
791
1089
  ),
792
- /* @__PURE__ */ jsx21("span", { className: `${Switch_default.track} ${isOn ? Switch_default.on : ""}`, children: /* @__PURE__ */ jsx21("span", { className: `${Switch_default.thumb} ${isOn ? Switch_default.thumbOn : ""}` }) }),
793
- label && /* @__PURE__ */ jsx21("span", { className: Switch_default.label, children: label })
1090
+ /* @__PURE__ */ jsx21("span", { style: {
1091
+ width: "2.75rem",
1092
+ height: "1.5rem",
1093
+ borderRadius: "9999px",
1094
+ backgroundColor: isOn ? "var(--ds-primary, #3b82f6)" : "var(--ds-border, #e2e8f0)",
1095
+ position: "relative",
1096
+ transition: "background-color 0.2s",
1097
+ flexShrink: 0
1098
+ }, children: /* @__PURE__ */ jsx21("span", { style: {
1099
+ position: "absolute",
1100
+ top: "0.175rem",
1101
+ left: "0.175rem",
1102
+ width: "1.15rem",
1103
+ height: "1.15rem",
1104
+ borderRadius: "9999px",
1105
+ backgroundColor: "#fff",
1106
+ boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.15)",
1107
+ transition: "transform 0.2s",
1108
+ transform: isOn ? "translateX(1.25rem)" : "translateX(0)"
1109
+ } }) }),
1110
+ label && /* @__PURE__ */ jsx21("span", { style: { fontSize: "0.875rem", color: "var(--ds-text-primary, #0f172a)" }, children: label })
794
1111
  ] });
795
1112
  };
796
- var Switch_default2 = Switch;
797
-
798
- // src/components/Table/Table.module.css
799
- var Table_default = {};
1113
+ var Switch_default = Switch;
800
1114
 
801
1115
  // src/components/Table/Table.tsx
802
- import { jsx as jsx22 } from "react/jsx-runtime";
1116
+ import { Fragment as Fragment7, jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
1117
+ var tableCSS = `
1118
+ [data-ds-table-row]:hover [data-ds-table-cell] { background-color: var(--ds-muted, #f1f5f9); }
1119
+ `;
803
1120
  var Table = (_a) => {
804
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
805
- return /* @__PURE__ */ jsx22("div", { className: Table_default.wrapper, children: /* @__PURE__ */ jsx22("table", __spreadValues({ className: `${Table_default.table}${className ? ` ${className}` : ""}` }, props)) });
1121
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1122
+ return /* @__PURE__ */ jsxs15(Fragment7, { children: [
1123
+ /* @__PURE__ */ jsx22("style", { href: "ds-table", precedence: "low", children: tableCSS }),
1124
+ /* @__PURE__ */ jsx22("div", { style: {
1125
+ width: "100%",
1126
+ overflowX: "auto",
1127
+ border: "1px solid var(--ds-border, #e2e8f0)",
1128
+ borderRadius: "0.5rem"
1129
+ }, children: /* @__PURE__ */ jsx22("table", __spreadValues({ style: __spreadValues({
1130
+ width: "100%",
1131
+ borderCollapse: "collapse",
1132
+ fontSize: "0.875rem"
1133
+ }, style) }, props)) })
1134
+ ] });
806
1135
  };
807
1136
  var TableHead = (props) => /* @__PURE__ */ jsx22("thead", __spreadValues({}, props));
808
1137
  var TableBody = (props) => /* @__PURE__ */ jsx22("tbody", __spreadValues({}, props));
809
1138
  var TableRow = (_a) => {
810
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
811
- return /* @__PURE__ */ jsx22("tr", __spreadValues({ className: `${Table_default.row}${className ? ` ${className}` : ""}` }, props));
1139
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1140
+ return /* @__PURE__ */ jsx22("tr", __spreadValues({ "data-ds-table-row": "", style }, props));
812
1141
  };
813
1142
  var TableHeader = (_a) => {
814
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
815
- return /* @__PURE__ */ jsx22("th", __spreadValues({ className: `${Table_default.th}${className ? ` ${className}` : ""}` }, props));
1143
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1144
+ return /* @__PURE__ */ jsx22("th", __spreadValues({ style: __spreadValues({
1145
+ padding: "0.75rem 1rem",
1146
+ textAlign: "left",
1147
+ fontWeight: 500,
1148
+ color: "var(--ds-text-secondary, #64748b)",
1149
+ backgroundColor: "var(--ds-muted, #f1f5f9)",
1150
+ borderBottom: "1px solid var(--ds-border, #e2e8f0)",
1151
+ whiteSpace: "nowrap"
1152
+ }, style) }, props));
816
1153
  };
817
1154
  var TableCell = (_a) => {
818
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
819
- return /* @__PURE__ */ jsx22("td", __spreadValues({ className: `${Table_default.td}${className ? ` ${className}` : ""}` }, props));
1155
+ var _b = _a, { style } = _b, props = __objRest(_b, ["style"]);
1156
+ return /* @__PURE__ */ jsx22(
1157
+ "td",
1158
+ __spreadValues({
1159
+ "data-ds-table-cell": "",
1160
+ style: __spreadValues({
1161
+ padding: "0.75rem 1rem",
1162
+ borderBottom: "1px solid var(--ds-border, #e2e8f0)",
1163
+ color: "var(--ds-text-primary, #0f172a)",
1164
+ transition: "background-color 0.1s"
1165
+ }, style)
1166
+ }, props)
1167
+ );
820
1168
  };
821
1169
 
822
1170
  // src/components/Tabs/Tabs.tsx
823
- import { useState as useState12 } from "react";
824
-
825
- // src/components/Tabs/Tabs.module.css
826
- var Tabs_default = {};
827
-
828
- // src/components/Tabs/Tabs.tsx
829
- import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
1171
+ import { useState as useState13 } from "react";
1172
+ import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
830
1173
  var Tabs = ({ tabs, defaultValue }) => {
831
1174
  var _a, _b;
832
- const [active, setActive] = useState12((_b = defaultValue != null ? defaultValue : (_a = tabs[0]) == null ? void 0 : _a.value) != null ? _b : "");
1175
+ const [active, setActive] = useState13((_b = defaultValue != null ? defaultValue : (_a = tabs[0]) == null ? void 0 : _a.value) != null ? _b : "");
1176
+ const [hovered, setHovered] = useState13(null);
833
1177
  const activeTab = tabs.find((t) => t.value === active);
834
- return /* @__PURE__ */ jsxs12("div", { className: Tabs_default.root, children: [
835
- /* @__PURE__ */ jsx23("div", { className: Tabs_default.list, role: "tablist", children: tabs.map((tab) => /* @__PURE__ */ jsxs12(
836
- "button",
837
- {
838
- role: "tab",
839
- "aria-selected": active === tab.value,
840
- className: `${Tabs_default.trigger} ${active === tab.value ? Tabs_default.active : ""}`,
841
- onClick: () => setActive(tab.value),
842
- children: [
843
- tab.icon && /* @__PURE__ */ jsx23("span", { className: Tabs_default["trigger-icon"], children: tab.icon }),
844
- tab.label
845
- ]
846
- },
847
- tab.value
848
- )) }),
849
- /* @__PURE__ */ jsx23("div", { className: Tabs_default.content, role: "tabpanel", children: activeTab == null ? void 0 : activeTab.content })
1178
+ return /* @__PURE__ */ jsxs16("div", { style: { display: "flex", flexDirection: "column" }, children: [
1179
+ /* @__PURE__ */ jsx23("div", { role: "tablist", style: {
1180
+ display: "inline-flex",
1181
+ backgroundColor: "var(--ds-muted, #f1f5f9)",
1182
+ borderRadius: "0.5rem",
1183
+ padding: "0.25rem",
1184
+ gap: "0.125rem"
1185
+ }, children: tabs.map((tab) => {
1186
+ const isActive = active === tab.value;
1187
+ const isHovered = hovered === tab.value;
1188
+ return /* @__PURE__ */ jsxs16(
1189
+ "button",
1190
+ {
1191
+ role: "tab",
1192
+ "aria-selected": isActive,
1193
+ onClick: () => setActive(tab.value),
1194
+ onMouseEnter: () => setHovered(tab.value),
1195
+ onMouseLeave: () => setHovered(null),
1196
+ style: {
1197
+ display: "inline-flex",
1198
+ alignItems: "center",
1199
+ gap: "0.375rem",
1200
+ padding: "0.375rem 0.75rem",
1201
+ fontSize: "0.875rem",
1202
+ fontWeight: 500,
1203
+ borderRadius: "0.375rem",
1204
+ background: isActive ? "var(--ds-card, #ffffff)" : "transparent",
1205
+ border: "none",
1206
+ cursor: "pointer",
1207
+ color: isActive || isHovered ? "var(--ds-text-primary, #0f172a)" : "var(--ds-text-secondary, #64748b)",
1208
+ boxShadow: isActive ? "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)" : "none",
1209
+ transition: "color 0.15s, background-color 0.15s, box-shadow 0.15s",
1210
+ whiteSpace: "nowrap"
1211
+ },
1212
+ children: [
1213
+ tab.icon && /* @__PURE__ */ jsx23("span", { style: { display: "flex", alignItems: "center" }, children: tab.icon }),
1214
+ tab.label
1215
+ ]
1216
+ },
1217
+ tab.value
1218
+ );
1219
+ }) }),
1220
+ /* @__PURE__ */ jsx23("div", { role: "tabpanel", style: {
1221
+ paddingTop: "1rem",
1222
+ fontSize: "0.875rem",
1223
+ color: "var(--ds-text-secondary, #64748b)"
1224
+ }, children: activeTab == null ? void 0 : activeTab.content })
850
1225
  ] });
851
1226
  };
852
- var Tabs_default2 = Tabs;
853
-
854
- // src/components/Textarea/Textarea.module.css
855
- var Textarea_default = {};
1227
+ var Tabs_default = Tabs;
856
1228
 
857
1229
  // src/components/Textarea/Textarea.tsx
858
- import { jsx as jsx24 } from "react/jsx-runtime";
1230
+ import { Fragment as Fragment8, jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
1231
+ var textareaCSS = `
1232
+ [data-ds-textarea]::placeholder { color: var(--ds-text-secondary, #64748b); }
1233
+ [data-ds-textarea]:focus { outline: none; border-color: var(--ds-primary, #3b82f6); box-shadow: 0 0 0 3px rgb(59 130 246 / 0.15); }
1234
+ [data-ds-textarea]:disabled { opacity: 0.5; cursor: not-allowed; background-color: var(--ds-muted, #f1f5f9); }
1235
+ [data-ds-textarea][data-error="true"] { border-color: var(--ds-danger, #ef4444); }
1236
+ [data-ds-textarea][data-error="true"]:focus { border-color: var(--ds-danger, #ef4444); box-shadow: 0 0 0 3px rgb(239 68 68 / 0.15); }
1237
+ `;
859
1238
  var Textarea = (_a) => {
860
- var _b = _a, { error, className } = _b, props = __objRest(_b, ["error", "className"]);
861
- const classes = [
862
- Textarea_default.textarea,
863
- error ? Textarea_default.error : "",
864
- className != null ? className : ""
865
- ].filter(Boolean).join(" ");
866
- return /* @__PURE__ */ jsx24("textarea", __spreadValues({ className: classes }, props));
867
- };
868
- var Textarea_default2 = Textarea;
869
-
870
- // src/components/Tooltip/Tooltip.module.css
871
- var Tooltip_default = {};
1239
+ var _b = _a, { error, style } = _b, props = __objRest(_b, ["error", "style"]);
1240
+ return /* @__PURE__ */ jsxs17(Fragment8, { children: [
1241
+ /* @__PURE__ */ jsx24("style", { href: "ds-textarea", precedence: "low", children: textareaCSS }),
1242
+ /* @__PURE__ */ jsx24(
1243
+ "textarea",
1244
+ __spreadValues({
1245
+ "data-ds-textarea": "",
1246
+ "data-error": error ? "true" : void 0,
1247
+ style: __spreadValues({
1248
+ width: "100%",
1249
+ padding: "0.5rem 0.75rem",
1250
+ border: `1px solid ${error ? "var(--ds-danger, #ef4444)" : "var(--ds-border, #e2e8f0)"}`,
1251
+ borderRadius: "0.375rem",
1252
+ fontSize: "0.875rem",
1253
+ backgroundColor: "var(--ds-card, #fff)",
1254
+ color: "var(--ds-text-primary, #0f172a)",
1255
+ fontFamily: "inherit",
1256
+ resize: "vertical",
1257
+ transition: "border-color 0.15s, box-shadow 0.15s",
1258
+ minHeight: "6rem",
1259
+ boxSizing: "border-box"
1260
+ }, style)
1261
+ }, props)
1262
+ )
1263
+ ] });
1264
+ };
1265
+ var Textarea_default = Textarea;
872
1266
 
873
1267
  // src/components/Tooltip/Tooltip.tsx
874
- import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
875
- var Tooltip = ({ content, children, position = "top" }) => /* @__PURE__ */ jsxs13("span", { className: Tooltip_default.wrapper, children: [
876
- children,
877
- /* @__PURE__ */ jsx25("span", { className: `${Tooltip_default.tooltip} ${Tooltip_default[position]}`, role: "tooltip", children: content })
878
- ] });
879
- var Tooltip_default2 = Tooltip;
1268
+ import { useState as useState14 } from "react";
1269
+ import { Fragment as Fragment9, jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
1270
+ var positionStyle = {
1271
+ top: { bottom: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
1272
+ bottom: { top: "calc(100% + 8px)", left: "50%", transform: "translateX(-50%)" },
1273
+ left: { right: "calc(100% + 8px)", top: "50%", transform: "translateY(-50%)" },
1274
+ right: { left: "calc(100% + 8px)", top: "50%", transform: "translateY(-50%)" }
1275
+ };
1276
+ var tooltipCSS = `
1277
+ [data-ds-tt]::before {
1278
+ content: '';
1279
+ position: absolute;
1280
+ border: 5px solid transparent;
1281
+ }
1282
+ [data-ds-tt="top"]::before { top: 100%; left: 50%; transform: translateX(-50%); border-top-color: var(--ds-tooltip-bg, #0f172a); }
1283
+ [data-ds-tt="bottom"]::before { bottom: 100%; left: 50%; transform: translateX(-50%); border-bottom-color: var(--ds-tooltip-bg, #0f172a); }
1284
+ [data-ds-tt="left"]::before { left: 100%; top: 50%; transform: translateY(-50%); border-left-color: var(--ds-tooltip-bg, #0f172a); }
1285
+ [data-ds-tt="right"]::before { right: 100%; top: 50%; transform: translateY(-50%); border-right-color: var(--ds-tooltip-bg, #0f172a); }
1286
+ `;
1287
+ var Tooltip = ({ content, children, position = "top" }) => {
1288
+ const [visible, setVisible] = useState14(false);
1289
+ return /* @__PURE__ */ jsxs18(Fragment9, { children: [
1290
+ /* @__PURE__ */ jsx25("style", { href: "ds-tooltip", precedence: "low", children: tooltipCSS }),
1291
+ /* @__PURE__ */ jsxs18(
1292
+ "span",
1293
+ {
1294
+ style: { position: "relative", display: "inline-flex" },
1295
+ onMouseEnter: () => setVisible(true),
1296
+ onMouseLeave: () => setVisible(false),
1297
+ onFocus: () => setVisible(true),
1298
+ onBlur: () => setVisible(false),
1299
+ children: [
1300
+ children,
1301
+ /* @__PURE__ */ jsx25(
1302
+ "span",
1303
+ {
1304
+ role: "tooltip",
1305
+ "data-ds-tt": position,
1306
+ style: __spreadValues({
1307
+ position: "absolute",
1308
+ zIndex: 50,
1309
+ padding: "0.375rem 0.625rem",
1310
+ backgroundColor: "var(--ds-tooltip-bg, #0f172a)",
1311
+ color: "var(--ds-tooltip-text, #ffffff)",
1312
+ fontSize: "0.75rem",
1313
+ lineHeight: 1.4,
1314
+ borderRadius: "0.375rem",
1315
+ whiteSpace: "nowrap",
1316
+ pointerEvents: "none",
1317
+ opacity: visible ? 1 : 0,
1318
+ transition: "opacity 0.15s"
1319
+ }, positionStyle[position]),
1320
+ children: content
1321
+ }
1322
+ )
1323
+ ]
1324
+ }
1325
+ )
1326
+ ] });
1327
+ };
1328
+ var Tooltip_default = Tooltip;
880
1329
  export {
881
1330
  Accordion_default as Accordion,
882
- Alert_default2 as Alert,
883
- Avatar_default2 as Avatar,
884
- Badge_default2 as Badge,
885
- Breadcrumb_default2 as Breadcrumb,
1331
+ Alert_default as Alert,
1332
+ Avatar_default as Avatar,
1333
+ Badge_default as Badge,
1334
+ Breadcrumb_default as Breadcrumb,
886
1335
  Button_default as Button,
887
1336
  Card,
888
1337
  CardContent,
@@ -890,29 +1339,29 @@ export {
890
1339
  CardFooter,
891
1340
  CardHeader,
892
1341
  CardTitle,
893
- Checkbox_default2 as Checkbox,
894
- CopyButton_default2 as CopyButton,
895
- FileUpload_default2 as FileUpload,
896
- Input_default2 as Input,
897
- Label_default2 as Label,
1342
+ Checkbox_default as Checkbox,
1343
+ CopyButton_default as CopyButton,
1344
+ FileUpload_default as FileUpload,
1345
+ Input_default as Input,
1346
+ Label_default as Label,
898
1347
  PasswordInput_default as PasswordInput,
899
- Progress_default2 as Progress,
900
- RadioGroup_default2 as RadioGroup,
901
- Select_default2 as Select,
902
- Skeleton_default2 as Skeleton,
903
- Slider_default2 as Slider,
904
- Spinner_default2 as Spinner,
905
- Switch_default2 as Switch,
1348
+ Progress_default as Progress,
1349
+ RadioGroup_default as RadioGroup,
1350
+ Select_default as Select,
1351
+ Skeleton_default as Skeleton,
1352
+ Slider_default as Slider,
1353
+ Spinner_default as Spinner,
1354
+ Switch_default as Switch,
906
1355
  Table,
907
1356
  TableBody,
908
1357
  TableCell,
909
1358
  TableHead,
910
1359
  TableHeader,
911
1360
  TableRow,
912
- Tabs_default2 as Tabs,
913
- Textarea_default2 as Textarea,
1361
+ Tabs_default as Tabs,
1362
+ Textarea_default as Textarea,
914
1363
  ThemeProvider,
915
- Tooltip_default2 as Tooltip,
1364
+ Tooltip_default as Tooltip,
916
1365
  useTheme
917
1366
  };
918
1367
  //# sourceMappingURL=index.js.map