@zelelo/iskra-ui 0.1.0 → 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 +4 -1
- package/dist/index.cjs +351 -150
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +189 -52
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +45 -9
- package/dist/index.d.ts +45 -9
- package/dist/index.js +293 -95
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -28,14 +28,17 @@ __export(index_exports, {
|
|
|
28
28
|
Badge: () => Badge,
|
|
29
29
|
Button: () => Button,
|
|
30
30
|
Checkbox: () => Checkbox,
|
|
31
|
+
Divider: () => Divider,
|
|
31
32
|
Input: () => Input,
|
|
32
33
|
Modal: () => Modal,
|
|
34
|
+
ProgressBar: () => ProgressBar,
|
|
33
35
|
Radio: () => Radio,
|
|
34
36
|
RadioGroup: () => RadioGroup,
|
|
35
37
|
Skeleton: () => Skeleton,
|
|
36
38
|
Spinner: () => Spinner,
|
|
37
39
|
Switch: () => Switch,
|
|
38
40
|
Tabs: () => Tabs,
|
|
41
|
+
Textarea: () => Textarea,
|
|
39
42
|
Toast: () => Toast,
|
|
40
43
|
ToastProvider: () => ToastProvider,
|
|
41
44
|
Tooltip: () => Tooltip,
|
|
@@ -296,7 +299,7 @@ var Alert = ({
|
|
|
296
299
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: classes, role: "alert", ...props, children: [
|
|
297
300
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: Alert_default.content, children: [
|
|
298
301
|
title && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: Alert_default.title, children: title }),
|
|
299
|
-
|
|
302
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: Alert_default.description, children })
|
|
300
303
|
] }),
|
|
301
304
|
closable && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
302
305
|
"button",
|
|
@@ -434,29 +437,123 @@ var Checkbox = (0, import_react8.forwardRef)(
|
|
|
434
437
|
);
|
|
435
438
|
Checkbox.displayName = "Checkbox";
|
|
436
439
|
|
|
437
|
-
// src/components/
|
|
440
|
+
// src/components/Divider/Divider.tsx
|
|
438
441
|
var import_react9 = require("react");
|
|
439
442
|
|
|
443
|
+
// src/components/Divider/Divider.module.css
|
|
444
|
+
var Divider_default = {
|
|
445
|
+
divider: "Divider_divider",
|
|
446
|
+
horizontal: "Divider_horizontal",
|
|
447
|
+
vertical: "Divider_vertical",
|
|
448
|
+
withLabel: "Divider_withLabel",
|
|
449
|
+
label: "Divider_label",
|
|
450
|
+
start: "Divider_start",
|
|
451
|
+
end: "Divider_end"
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
// src/components/Divider/Divider.tsx
|
|
455
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
456
|
+
var Divider = ({
|
|
457
|
+
orientation = "horizontal",
|
|
458
|
+
decorative = false,
|
|
459
|
+
thickness,
|
|
460
|
+
labelPosition = "center",
|
|
461
|
+
className,
|
|
462
|
+
style,
|
|
463
|
+
children,
|
|
464
|
+
...props
|
|
465
|
+
}) => {
|
|
466
|
+
const hasLabel = Boolean(children) && orientation === "horizontal";
|
|
467
|
+
const classes = cx(
|
|
468
|
+
Divider_default.divider,
|
|
469
|
+
Divider_default[orientation],
|
|
470
|
+
hasLabel && Divider_default.withLabel,
|
|
471
|
+
hasLabel && Divider_default[labelPosition],
|
|
472
|
+
className
|
|
473
|
+
);
|
|
474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
475
|
+
"div",
|
|
476
|
+
{
|
|
477
|
+
className: classes,
|
|
478
|
+
style: { ...style, "--divider-thickness": toCss(thickness) },
|
|
479
|
+
role: hasLabel ? void 0 : decorative ? "none" : "separator",
|
|
480
|
+
"aria-orientation": !decorative && orientation === "vertical" ? "vertical" : void 0,
|
|
481
|
+
...props,
|
|
482
|
+
children: hasLabel && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: Divider_default.label, children })
|
|
483
|
+
}
|
|
484
|
+
);
|
|
485
|
+
};
|
|
486
|
+
Divider.displayName = "Divider";
|
|
487
|
+
|
|
488
|
+
// src/components/Input/Input.tsx
|
|
489
|
+
var import_react11 = require("react");
|
|
490
|
+
|
|
491
|
+
// src/components/FormField/FormField.tsx
|
|
492
|
+
var import_react10 = require("react");
|
|
493
|
+
|
|
494
|
+
// src/components/FormField/FormField.module.css
|
|
495
|
+
var FormField_default = {
|
|
496
|
+
sm: "FormField_sm",
|
|
497
|
+
md: "FormField_md",
|
|
498
|
+
lg: "FormField_lg",
|
|
499
|
+
root: "FormField_root",
|
|
500
|
+
label: "FormField_label",
|
|
501
|
+
required: "FormField_required",
|
|
502
|
+
box: "FormField_box",
|
|
503
|
+
disabled: "FormField_disabled",
|
|
504
|
+
invalid: "FormField_invalid",
|
|
505
|
+
message: "FormField_message",
|
|
506
|
+
error: "FormField_error"
|
|
507
|
+
};
|
|
508
|
+
|
|
509
|
+
// src/components/FormField/FormField.tsx
|
|
510
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
511
|
+
var FormField = ({
|
|
512
|
+
id,
|
|
513
|
+
label,
|
|
514
|
+
hint,
|
|
515
|
+
error,
|
|
516
|
+
required,
|
|
517
|
+
disabled,
|
|
518
|
+
size = "md",
|
|
519
|
+
className,
|
|
520
|
+
"aria-describedby": ariaDescribedBy,
|
|
521
|
+
children
|
|
522
|
+
}) => {
|
|
523
|
+
const autoId = (0, import_react10.useId)();
|
|
524
|
+
const controlId = id ?? autoId;
|
|
525
|
+
const hasError = Boolean(error);
|
|
526
|
+
const message = hasError ? error : hint;
|
|
527
|
+
const messageId = message ? `${controlId}-message` : void 0;
|
|
528
|
+
const describedBy = [ariaDescribedBy, messageId].filter(Boolean).join(" ") || void 0;
|
|
529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: cx(FormField_default.root, FormField_default[size], className), children: [
|
|
530
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("label", { htmlFor: controlId, className: FormField_default.label, children: [
|
|
531
|
+
label,
|
|
532
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: FormField_default.required, "aria-hidden": "true", children: " *" })
|
|
533
|
+
] }),
|
|
534
|
+
children({
|
|
535
|
+
controlProps: {
|
|
536
|
+
id: controlId,
|
|
537
|
+
"aria-describedby": describedBy,
|
|
538
|
+
"aria-invalid": hasError || void 0
|
|
539
|
+
},
|
|
540
|
+
boxClassName: cx(FormField_default.box, hasError && FormField_default.invalid, disabled && FormField_default.disabled)
|
|
541
|
+
}),
|
|
542
|
+
message && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { id: messageId, className: cx(FormField_default.message, hasError && FormField_default.error), children: message })
|
|
543
|
+
] });
|
|
544
|
+
};
|
|
545
|
+
FormField.displayName = "FormField";
|
|
546
|
+
|
|
440
547
|
// src/components/Input/Input.module.css
|
|
441
548
|
var Input_default = {
|
|
442
|
-
|
|
443
|
-
md: "Input_md",
|
|
444
|
-
lg: "Input_lg",
|
|
445
|
-
root: "Input_root",
|
|
446
|
-
label: "Input_label",
|
|
447
|
-
required: "Input_required",
|
|
448
|
-
field: "Input_field",
|
|
449
|
-
disabled: "Input_disabled",
|
|
450
|
-
invalid: "Input_invalid",
|
|
549
|
+
box: "Input_box",
|
|
451
550
|
input: "Input_input",
|
|
452
|
-
icon: "Input_icon"
|
|
453
|
-
message: "Input_message",
|
|
454
|
-
error: "Input_error"
|
|
551
|
+
icon: "Input_icon"
|
|
455
552
|
};
|
|
456
553
|
|
|
457
554
|
// src/components/Input/Input.tsx
|
|
458
|
-
var
|
|
459
|
-
var Input = (0,
|
|
555
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
556
|
+
var Input = (0, import_react11.forwardRef)(
|
|
460
557
|
({
|
|
461
558
|
size = "md",
|
|
462
559
|
label,
|
|
@@ -470,44 +567,40 @@ var Input = (0, import_react9.forwardRef)(
|
|
|
470
567
|
disabled,
|
|
471
568
|
"aria-describedby": ariaDescribedBy,
|
|
472
569
|
...props
|
|
473
|
-
}, ref) =>
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
570
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
571
|
+
FormField,
|
|
572
|
+
{
|
|
573
|
+
id,
|
|
574
|
+
size,
|
|
575
|
+
label,
|
|
576
|
+
hint,
|
|
577
|
+
error,
|
|
578
|
+
required,
|
|
579
|
+
disabled,
|
|
580
|
+
className,
|
|
581
|
+
"aria-describedby": ariaDescribedBy,
|
|
582
|
+
children: ({ controlProps, boxClassName }) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: cx(boxClassName, Input_default.box), children: [
|
|
583
|
+
startIcon && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: Input_default.icon, children: startIcon }),
|
|
584
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
489
585
|
"input",
|
|
490
586
|
{
|
|
491
587
|
ref,
|
|
492
|
-
|
|
588
|
+
...controlProps,
|
|
493
589
|
required,
|
|
494
590
|
disabled,
|
|
495
|
-
"aria-invalid": hasError || void 0,
|
|
496
|
-
"aria-describedby": describeBy,
|
|
497
591
|
className: Input_default.input,
|
|
498
592
|
...props
|
|
499
593
|
}
|
|
500
594
|
),
|
|
501
|
-
endIcon && /* @__PURE__ */ (0,
|
|
502
|
-
] })
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
}
|
|
595
|
+
endIcon && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: Input_default.icon, children: endIcon })
|
|
596
|
+
] })
|
|
597
|
+
}
|
|
598
|
+
)
|
|
506
599
|
);
|
|
507
600
|
Input.displayName = "Input";
|
|
508
601
|
|
|
509
602
|
// src/components/Modal/Modal.tsx
|
|
510
|
-
var
|
|
603
|
+
var import_react12 = require("react");
|
|
511
604
|
|
|
512
605
|
// src/components/Modal/Modal.module.css
|
|
513
606
|
var Modal_default = {
|
|
@@ -526,7 +619,7 @@ var Modal_default = {
|
|
|
526
619
|
};
|
|
527
620
|
|
|
528
621
|
// src/components/Modal/Modal.tsx
|
|
529
|
-
var
|
|
622
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
530
623
|
var Modal = ({
|
|
531
624
|
open,
|
|
532
625
|
onClose,
|
|
@@ -536,9 +629,9 @@ var Modal = ({
|
|
|
536
629
|
width,
|
|
537
630
|
children
|
|
538
631
|
}) => {
|
|
539
|
-
const ref = (0,
|
|
540
|
-
const titleId = (0,
|
|
541
|
-
(0,
|
|
632
|
+
const ref = (0, import_react12.useRef)(null);
|
|
633
|
+
const titleId = (0, import_react12.useId)();
|
|
634
|
+
(0, import_react12.useEffect)(() => {
|
|
542
635
|
if (open) {
|
|
543
636
|
ref.current?.showModal();
|
|
544
637
|
} else {
|
|
@@ -549,7 +642,7 @@ var Modal = ({
|
|
|
549
642
|
return (
|
|
550
643
|
// Escape у <dialog> уже закрывает модалку с клавиатуры
|
|
551
644
|
// oxlint-disable-next-line jsx-a11y/click-events-have-key-events jsx-a11y/no-noninteractive-element-interactions
|
|
552
|
-
/* @__PURE__ */ (0,
|
|
645
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
553
646
|
"dialog",
|
|
554
647
|
{
|
|
555
648
|
ref,
|
|
@@ -558,13 +651,13 @@ var Modal = ({
|
|
|
558
651
|
"aria-labelledby": title ? titleId : void 0,
|
|
559
652
|
onClose,
|
|
560
653
|
onClick: (e) => e.target === e.currentTarget && close(),
|
|
561
|
-
children: /* @__PURE__ */ (0,
|
|
562
|
-
title && /* @__PURE__ */ (0,
|
|
563
|
-
/* @__PURE__ */ (0,
|
|
564
|
-
/* @__PURE__ */ (0,
|
|
654
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: Modal_default.content, children: [
|
|
655
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("header", { className: Modal_default.header, children: [
|
|
656
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("h2", { id: titleId, className: Modal_default.title, children: title }),
|
|
657
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { type: "button", className: Modal_default.close, "aria-label": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", onClick: close, children: "\xD7" })
|
|
565
658
|
] }),
|
|
566
|
-
/* @__PURE__ */ (0,
|
|
567
|
-
footer && /* @__PURE__ */ (0,
|
|
659
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: Modal_default.body, children }),
|
|
660
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("footer", { className: Modal_default.footer, children: footer })
|
|
568
661
|
] })
|
|
569
662
|
}
|
|
570
663
|
)
|
|
@@ -572,12 +665,62 @@ var Modal = ({
|
|
|
572
665
|
};
|
|
573
666
|
Modal.displayName = "Modal";
|
|
574
667
|
|
|
668
|
+
// src/components/ProgressBar/ProgressBar.module.css
|
|
669
|
+
var ProgressBar_default = {
|
|
670
|
+
progress: "ProgressBar_progress",
|
|
671
|
+
sm: "ProgressBar_sm",
|
|
672
|
+
md: "ProgressBar_md",
|
|
673
|
+
lg: "ProgressBar_lg",
|
|
674
|
+
success: "ProgressBar_success",
|
|
675
|
+
danger: "ProgressBar_danger",
|
|
676
|
+
fill: "ProgressBar_fill",
|
|
677
|
+
indeterminate: "ProgressBar_indeterminate"
|
|
678
|
+
};
|
|
679
|
+
|
|
680
|
+
// src/components/ProgressBar/ProgressBar.tsx
|
|
681
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
682
|
+
var ProgressBar = ({
|
|
683
|
+
value,
|
|
684
|
+
max = 100,
|
|
685
|
+
size = "md",
|
|
686
|
+
variant = "accent",
|
|
687
|
+
className,
|
|
688
|
+
style,
|
|
689
|
+
...props
|
|
690
|
+
}) => {
|
|
691
|
+
const isIndenterminate = value === void 0;
|
|
692
|
+
const safeMax = max > 0 ? max : 100;
|
|
693
|
+
const clamped = isIndenterminate ? 0 : Math.min(Math.max(value, 0), safeMax);
|
|
694
|
+
const percent = clamped / safeMax * 100;
|
|
695
|
+
const classes = cx(
|
|
696
|
+
ProgressBar_default.progress,
|
|
697
|
+
ProgressBar_default[size],
|
|
698
|
+
ProgressBar_default[variant],
|
|
699
|
+
isIndenterminate && ProgressBar_default.indeterminate,
|
|
700
|
+
className
|
|
701
|
+
);
|
|
702
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
703
|
+
"div",
|
|
704
|
+
{
|
|
705
|
+
className: classes,
|
|
706
|
+
style: { ...style, "--progress-offset": `${percent - 100}%` },
|
|
707
|
+
role: "progressbar",
|
|
708
|
+
"aria-valuemin": 0,
|
|
709
|
+
"aria-valuemax": safeMax,
|
|
710
|
+
"aria-valuenow": isIndenterminate ? void 0 : clamped,
|
|
711
|
+
...props,
|
|
712
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: ProgressBar_default.fill })
|
|
713
|
+
}
|
|
714
|
+
);
|
|
715
|
+
};
|
|
716
|
+
ProgressBar.displayName = "ProgressBar";
|
|
717
|
+
|
|
575
718
|
// src/components/Radio/Radio.tsx
|
|
576
|
-
var
|
|
719
|
+
var import_react14 = require("react");
|
|
577
720
|
|
|
578
721
|
// src/components/RadioGroup/RadioGroupProvider/context.ts
|
|
579
|
-
var
|
|
580
|
-
var RadioGroupContext = (0,
|
|
722
|
+
var import_react13 = require("react");
|
|
723
|
+
var RadioGroupContext = (0, import_react13.createContext)(null);
|
|
581
724
|
|
|
582
725
|
// src/components/Radio/Radio.module.css
|
|
583
726
|
var Radio_default = {
|
|
@@ -594,8 +737,8 @@ var Radio_default = {
|
|
|
594
737
|
};
|
|
595
738
|
|
|
596
739
|
// src/components/Radio/Radio.tsx
|
|
597
|
-
var
|
|
598
|
-
var Radio = (0,
|
|
740
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
741
|
+
var Radio = (0, import_react14.forwardRef)(
|
|
599
742
|
({
|
|
600
743
|
size = "md",
|
|
601
744
|
label,
|
|
@@ -611,8 +754,8 @@ var Radio = (0, import_react12.forwardRef)(
|
|
|
611
754
|
"aria-describedby": ariaDescribedBy,
|
|
612
755
|
...props
|
|
613
756
|
}, ref) => {
|
|
614
|
-
const group = (0,
|
|
615
|
-
const autoId = (0,
|
|
757
|
+
const group = (0, import_react14.useContext)(RadioGroupContext);
|
|
758
|
+
const autoId = (0, import_react14.useId)();
|
|
616
759
|
const radioId = id ?? autoId;
|
|
617
760
|
const hasError = Boolean(error);
|
|
618
761
|
const messageId = hasError ? `${radioId}-message` : void 0;
|
|
@@ -625,7 +768,7 @@ var Radio = (0, import_react12.forwardRef)(
|
|
|
625
768
|
onChange?.(event);
|
|
626
769
|
group?.onChange(event.target.value);
|
|
627
770
|
};
|
|
628
|
-
return /* @__PURE__ */ (0,
|
|
771
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
629
772
|
"div",
|
|
630
773
|
{
|
|
631
774
|
className: cx(
|
|
@@ -636,8 +779,8 @@ var Radio = (0, import_react12.forwardRef)(
|
|
|
636
779
|
className
|
|
637
780
|
),
|
|
638
781
|
children: [
|
|
639
|
-
/* @__PURE__ */ (0,
|
|
640
|
-
/* @__PURE__ */ (0,
|
|
782
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("label", { className: Radio_default.label, children: [
|
|
783
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
641
784
|
"input",
|
|
642
785
|
{
|
|
643
786
|
ref,
|
|
@@ -655,9 +798,9 @@ var Radio = (0, import_react12.forwardRef)(
|
|
|
655
798
|
}
|
|
656
799
|
),
|
|
657
800
|
label,
|
|
658
|
-
required && !group && /* @__PURE__ */ (0,
|
|
801
|
+
required && !group && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: Radio_default.required, "aria-hidden": "true", children: " *" })
|
|
659
802
|
] }),
|
|
660
|
-
hasError && /* @__PURE__ */ (0,
|
|
803
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { id: messageId, className: Radio_default.error, children: error })
|
|
661
804
|
]
|
|
662
805
|
}
|
|
663
806
|
);
|
|
@@ -666,11 +809,11 @@ var Radio = (0, import_react12.forwardRef)(
|
|
|
666
809
|
Radio.displayName = "Radio";
|
|
667
810
|
|
|
668
811
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
669
|
-
var
|
|
812
|
+
var import_react16 = require("react");
|
|
670
813
|
|
|
671
814
|
// src/components/RadioGroup/RadioGroupProvider/RadioGroupProvider.tsx
|
|
672
|
-
var
|
|
673
|
-
var
|
|
815
|
+
var import_react15 = require("react");
|
|
816
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
674
817
|
var RadioGroupProvider = ({
|
|
675
818
|
name,
|
|
676
819
|
value: controlledValue,
|
|
@@ -680,10 +823,10 @@ var RadioGroupProvider = ({
|
|
|
680
823
|
required,
|
|
681
824
|
children
|
|
682
825
|
}) => {
|
|
683
|
-
const [uncontrolledValue, setUncontrolledValue] = (0,
|
|
826
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react15.useState)(defaultValue);
|
|
684
827
|
const isControlled = controlledValue !== void 0;
|
|
685
828
|
const currentValue = isControlled ? controlledValue : uncontrolledValue;
|
|
686
|
-
const autoId = (0,
|
|
829
|
+
const autoId = (0, import_react15.useId)();
|
|
687
830
|
const finalName = name ?? `radiogroup-${autoId}`;
|
|
688
831
|
const handleChange = (newValue) => {
|
|
689
832
|
if (!isControlled) {
|
|
@@ -691,7 +834,7 @@ var RadioGroupProvider = ({
|
|
|
691
834
|
}
|
|
692
835
|
onChange?.(newValue);
|
|
693
836
|
};
|
|
694
|
-
return /* @__PURE__ */ (0,
|
|
837
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
695
838
|
RadioGroupContext.Provider,
|
|
696
839
|
{
|
|
697
840
|
value: {
|
|
@@ -717,7 +860,7 @@ var RadioGroup_default = {
|
|
|
717
860
|
};
|
|
718
861
|
|
|
719
862
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
720
|
-
var
|
|
863
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
721
864
|
var RadioGroup = ({
|
|
722
865
|
value,
|
|
723
866
|
defaultValue,
|
|
@@ -731,10 +874,10 @@ var RadioGroup = ({
|
|
|
731
874
|
children,
|
|
732
875
|
...props
|
|
733
876
|
}) => {
|
|
734
|
-
const labelId = (0,
|
|
735
|
-
const messageId = (0,
|
|
877
|
+
const labelId = (0, import_react16.useId)();
|
|
878
|
+
const messageId = (0, import_react16.useId)();
|
|
736
879
|
const hasError = Boolean(error);
|
|
737
|
-
return /* @__PURE__ */ (0,
|
|
880
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
738
881
|
RadioGroupProvider,
|
|
739
882
|
{
|
|
740
883
|
name,
|
|
@@ -743,7 +886,7 @@ var RadioGroup = ({
|
|
|
743
886
|
onChange,
|
|
744
887
|
disabled,
|
|
745
888
|
required,
|
|
746
|
-
children: /* @__PURE__ */ (0,
|
|
889
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
747
890
|
"div",
|
|
748
891
|
{
|
|
749
892
|
className: cx(RadioGroup_default.root, disabled && RadioGroup_default.disabled, className),
|
|
@@ -754,12 +897,12 @@ var RadioGroup = ({
|
|
|
754
897
|
"aria-required": required || void 0,
|
|
755
898
|
...props,
|
|
756
899
|
children: [
|
|
757
|
-
label && /* @__PURE__ */ (0,
|
|
900
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { id: labelId, className: RadioGroup_default.groupLabel, children: [
|
|
758
901
|
label,
|
|
759
|
-
required && /* @__PURE__ */ (0,
|
|
902
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: RadioGroup_default.required, "aria-hidden": "true", children: " *" })
|
|
760
903
|
] }),
|
|
761
|
-
/* @__PURE__ */ (0,
|
|
762
|
-
hasError && /* @__PURE__ */ (0,
|
|
904
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: RadioGroup_default.options, children }),
|
|
905
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { id: messageId, className: RadioGroup_default.error, children: error })
|
|
763
906
|
]
|
|
764
907
|
}
|
|
765
908
|
)
|
|
@@ -782,7 +925,7 @@ var Skeleton_default = {
|
|
|
782
925
|
};
|
|
783
926
|
|
|
784
927
|
// src/components/Skeleton/Skeleton.tsx
|
|
785
|
-
var
|
|
928
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
786
929
|
var Skeleton = ({
|
|
787
930
|
variant = "text",
|
|
788
931
|
width,
|
|
@@ -806,14 +949,14 @@ var Skeleton = ({
|
|
|
806
949
|
borderRadius: toCss(radius)
|
|
807
950
|
};
|
|
808
951
|
if (variant === "text" && lines > 1) {
|
|
809
|
-
return /* @__PURE__ */ (0,
|
|
952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
810
953
|
"span",
|
|
811
954
|
{
|
|
812
955
|
className: cx(Skeleton_default.lines, className),
|
|
813
956
|
style: { width: sizeStyle.width, ...style },
|
|
814
957
|
"aria-hidden": "true",
|
|
815
958
|
...props,
|
|
816
|
-
children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ (0,
|
|
959
|
+
children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
817
960
|
"span",
|
|
818
961
|
{
|
|
819
962
|
className: baseClasses,
|
|
@@ -824,14 +967,14 @@ var Skeleton = ({
|
|
|
824
967
|
}
|
|
825
968
|
);
|
|
826
969
|
}
|
|
827
|
-
return /* @__PURE__ */ (0,
|
|
970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
828
971
|
"span",
|
|
829
972
|
{
|
|
830
973
|
className: cx(baseClasses, children != null && Skeleton_default.withChildren, className),
|
|
831
974
|
style: { ...sizeStyle, ...style },
|
|
832
975
|
"aria-hidden": "true",
|
|
833
976
|
...props,
|
|
834
|
-
children: children != null && /* @__PURE__ */ (0,
|
|
977
|
+
children: children != null && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: Skeleton_default.hidden, children })
|
|
835
978
|
}
|
|
836
979
|
);
|
|
837
980
|
};
|
|
@@ -861,7 +1004,7 @@ var Spinner_default = {
|
|
|
861
1004
|
};
|
|
862
1005
|
|
|
863
1006
|
// src/components/Spinner/Spinner.tsx
|
|
864
|
-
var
|
|
1007
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
865
1008
|
var Spinner = ({
|
|
866
1009
|
variant = "circle",
|
|
867
1010
|
size = "md",
|
|
@@ -872,7 +1015,7 @@ var Spinner = ({
|
|
|
872
1015
|
...props
|
|
873
1016
|
}) => {
|
|
874
1017
|
const { items } = SPINNER_VARIANTS[variant];
|
|
875
|
-
return /* @__PURE__ */ (0,
|
|
1018
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
876
1019
|
"span",
|
|
877
1020
|
{
|
|
878
1021
|
role: "status",
|
|
@@ -880,14 +1023,14 @@ var Spinner = ({
|
|
|
880
1023
|
className: cx(Spinner_default.spinner, Spinner_default[variant], Spinner_default[size], className),
|
|
881
1024
|
style: { ...style, ...color && { color } },
|
|
882
1025
|
...props,
|
|
883
|
-
children: Array.from({ length: items }, (_, i) => /* @__PURE__ */ (0,
|
|
1026
|
+
children: Array.from({ length: items }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: Spinner_default.item, style: { "--i": i } }, i))
|
|
884
1027
|
}
|
|
885
1028
|
);
|
|
886
1029
|
};
|
|
887
1030
|
Spinner.displayName = "Spinner";
|
|
888
1031
|
|
|
889
1032
|
// src/components/Switch/Switch.tsx
|
|
890
|
-
var
|
|
1033
|
+
var import_react17 = require("react");
|
|
891
1034
|
|
|
892
1035
|
// src/components/Switch/Switch.module.css
|
|
893
1036
|
var Switch_default = {
|
|
@@ -902,10 +1045,10 @@ var Switch_default = {
|
|
|
902
1045
|
};
|
|
903
1046
|
|
|
904
1047
|
// src/components/Switch/Switch.tsx
|
|
905
|
-
var
|
|
906
|
-
var Switch = (0,
|
|
907
|
-
({ size = "md", label, className, disabled, ...props }, ref) => /* @__PURE__ */ (0,
|
|
908
|
-
/* @__PURE__ */ (0,
|
|
1048
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1049
|
+
var Switch = (0, import_react17.forwardRef)(
|
|
1050
|
+
({ size = "md", label, className, disabled, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("label", { className: cx(Switch_default.root, Switch_default[size], disabled && Switch_default.disabled, className), children: [
|
|
1051
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
909
1052
|
"input",
|
|
910
1053
|
{
|
|
911
1054
|
ref,
|
|
@@ -917,13 +1060,13 @@ var Switch = (0, import_react15.forwardRef)(
|
|
|
917
1060
|
...props
|
|
918
1061
|
}
|
|
919
1062
|
),
|
|
920
|
-
/* @__PURE__ */ (0,
|
|
921
|
-
label && /* @__PURE__ */ (0,
|
|
1063
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: Switch_default.track, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: Switch_default.thumb }) }),
|
|
1064
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: Switch_default.label, children: label })
|
|
922
1065
|
] })
|
|
923
1066
|
);
|
|
924
1067
|
|
|
925
1068
|
// src/components/Tabs/Tabs.tsx
|
|
926
|
-
var
|
|
1069
|
+
var import_react18 = require("react");
|
|
927
1070
|
|
|
928
1071
|
// src/components/Tabs/Tabs.module.css
|
|
929
1072
|
var Tabs_default = {
|
|
@@ -934,14 +1077,14 @@ var Tabs_default = {
|
|
|
934
1077
|
};
|
|
935
1078
|
|
|
936
1079
|
// src/components/Tabs/Tabs.tsx
|
|
937
|
-
var
|
|
1080
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
938
1081
|
var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
939
|
-
const [active, setActive] = (0,
|
|
1082
|
+
const [active, setActive] = (0, import_react18.useState)(() => {
|
|
940
1083
|
const isSelectable = items.some((item) => item.value === defaultValue && !item.disabled);
|
|
941
1084
|
return isSelectable ? defaultValue : items.find((item) => !item.disabled)?.value;
|
|
942
1085
|
});
|
|
943
|
-
const id = (0,
|
|
944
|
-
const tabRefs = (0,
|
|
1086
|
+
const id = (0, import_react18.useId)();
|
|
1087
|
+
const tabRefs = (0, import_react18.useRef)([]);
|
|
945
1088
|
const activeIndex = items.findIndex((item) => item.value === active);
|
|
946
1089
|
const select = (value) => {
|
|
947
1090
|
if (value === active) return;
|
|
@@ -972,10 +1115,10 @@ var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
|
972
1115
|
tabRefs.current[next]?.focus();
|
|
973
1116
|
select(items[next].value);
|
|
974
1117
|
};
|
|
975
|
-
return /* @__PURE__ */ (0,
|
|
976
|
-
/* @__PURE__ */ (0,
|
|
1118
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: cx(Tabs_default.tabs, className), children: [
|
|
1119
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { role: "tablist", className: Tabs_default.list, children: items.map((item, index) => {
|
|
977
1120
|
const selected = index === activeIndex;
|
|
978
|
-
return /* @__PURE__ */ (0,
|
|
1121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
979
1122
|
"button",
|
|
980
1123
|
{
|
|
981
1124
|
ref: (el) => {
|
|
@@ -996,7 +1139,7 @@ var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
|
996
1139
|
item.value
|
|
997
1140
|
);
|
|
998
1141
|
}) }),
|
|
999
|
-
/* @__PURE__ */ (0,
|
|
1142
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1000
1143
|
"div",
|
|
1001
1144
|
{
|
|
1002
1145
|
role: "tabpanel",
|
|
@@ -1009,9 +1152,64 @@ var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
|
1009
1152
|
)
|
|
1010
1153
|
] });
|
|
1011
1154
|
};
|
|
1155
|
+
Tabs.displayName = "Tabs";
|
|
1156
|
+
|
|
1157
|
+
// src/components/Textarea/Textarea.tsx
|
|
1158
|
+
var import_react19 = require("react");
|
|
1159
|
+
|
|
1160
|
+
// src/components/Textarea/Textarea.module.css
|
|
1161
|
+
var Textarea_default = {
|
|
1162
|
+
textarea: "Textarea_textarea",
|
|
1163
|
+
resizeNone: "Textarea_resizeNone"
|
|
1164
|
+
};
|
|
1165
|
+
|
|
1166
|
+
// src/components/Textarea/Textarea.tsx
|
|
1167
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1168
|
+
var Textarea = (0, import_react19.forwardRef)(
|
|
1169
|
+
({
|
|
1170
|
+
size = "md",
|
|
1171
|
+
label,
|
|
1172
|
+
hint,
|
|
1173
|
+
error,
|
|
1174
|
+
resize = "vertical",
|
|
1175
|
+
rows = 3,
|
|
1176
|
+
className,
|
|
1177
|
+
id,
|
|
1178
|
+
required,
|
|
1179
|
+
disabled,
|
|
1180
|
+
"aria-describedby": ariaDescribedBy,
|
|
1181
|
+
...props
|
|
1182
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1183
|
+
FormField,
|
|
1184
|
+
{
|
|
1185
|
+
id,
|
|
1186
|
+
size,
|
|
1187
|
+
label,
|
|
1188
|
+
hint,
|
|
1189
|
+
error,
|
|
1190
|
+
required,
|
|
1191
|
+
disabled,
|
|
1192
|
+
className,
|
|
1193
|
+
"aria-describedby": ariaDescribedBy,
|
|
1194
|
+
children: ({ controlProps, boxClassName }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1195
|
+
"textarea",
|
|
1196
|
+
{
|
|
1197
|
+
ref,
|
|
1198
|
+
...controlProps,
|
|
1199
|
+
rows,
|
|
1200
|
+
required,
|
|
1201
|
+
disabled,
|
|
1202
|
+
className: cx(boxClassName, Textarea_default.textarea, resize === "none" && Textarea_default.resizeNone),
|
|
1203
|
+
...props
|
|
1204
|
+
}
|
|
1205
|
+
)
|
|
1206
|
+
}
|
|
1207
|
+
)
|
|
1208
|
+
);
|
|
1209
|
+
Textarea.displayName = "Textarea";
|
|
1012
1210
|
|
|
1013
1211
|
// src/components/Toast/Toast.tsx
|
|
1014
|
-
var
|
|
1212
|
+
var import_react20 = require("react");
|
|
1015
1213
|
|
|
1016
1214
|
// src/components/Toast/Toast.module.css
|
|
1017
1215
|
var Toast_default = {
|
|
@@ -1028,7 +1226,7 @@ var Toast_default = {
|
|
|
1028
1226
|
};
|
|
1029
1227
|
|
|
1030
1228
|
// src/components/Toast/Toast.tsx
|
|
1031
|
-
var
|
|
1229
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1032
1230
|
var Toast = ({
|
|
1033
1231
|
variant = "info",
|
|
1034
1232
|
title,
|
|
@@ -1041,25 +1239,25 @@ var Toast = ({
|
|
|
1041
1239
|
onMouseLeave,
|
|
1042
1240
|
...props
|
|
1043
1241
|
}) => {
|
|
1044
|
-
const [visible, setVisible] = (0,
|
|
1045
|
-
const timerRef = (0,
|
|
1046
|
-
const remainingRef = (0,
|
|
1047
|
-
const startedAtRef = (0,
|
|
1048
|
-
const onCloseRef = (0,
|
|
1049
|
-
(0,
|
|
1242
|
+
const [visible, setVisible] = (0, import_react20.useState)(true);
|
|
1243
|
+
const timerRef = (0, import_react20.useRef)();
|
|
1244
|
+
const remainingRef = (0, import_react20.useRef)(duration);
|
|
1245
|
+
const startedAtRef = (0, import_react20.useRef)(0);
|
|
1246
|
+
const onCloseRef = (0, import_react20.useRef)(onClose);
|
|
1247
|
+
(0, import_react20.useEffect)(() => {
|
|
1050
1248
|
onCloseRef.current = onClose;
|
|
1051
1249
|
}, [onClose]);
|
|
1052
|
-
const handleClose = (0,
|
|
1250
|
+
const handleClose = (0, import_react20.useCallback)(() => {
|
|
1053
1251
|
setVisible(false);
|
|
1054
1252
|
onCloseRef.current?.();
|
|
1055
1253
|
}, []);
|
|
1056
|
-
const clearTimer = (0,
|
|
1254
|
+
const clearTimer = (0, import_react20.useCallback)(() => {
|
|
1057
1255
|
if (timerRef.current) {
|
|
1058
1256
|
clearTimeout(timerRef.current);
|
|
1059
1257
|
timerRef.current = void 0;
|
|
1060
1258
|
}
|
|
1061
1259
|
}, []);
|
|
1062
|
-
const startTimer = (0,
|
|
1260
|
+
const startTimer = (0, import_react20.useCallback)(
|
|
1063
1261
|
(ms) => {
|
|
1064
1262
|
if (ms <= 0) return;
|
|
1065
1263
|
startedAtRef.current = Date.now();
|
|
@@ -1067,7 +1265,7 @@ var Toast = ({
|
|
|
1067
1265
|
},
|
|
1068
1266
|
[handleClose]
|
|
1069
1267
|
);
|
|
1070
|
-
(0,
|
|
1268
|
+
(0, import_react20.useEffect)(() => {
|
|
1071
1269
|
startTimer(remainingRef.current);
|
|
1072
1270
|
return clearTimer;
|
|
1073
1271
|
}, [startTimer, clearTimer]);
|
|
@@ -1084,7 +1282,7 @@ var Toast = ({
|
|
|
1084
1282
|
return null;
|
|
1085
1283
|
}
|
|
1086
1284
|
const classes = cx(Toast_default.toast, Toast_default[variant], className);
|
|
1087
|
-
return /* @__PURE__ */ (0,
|
|
1285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1088
1286
|
"div",
|
|
1089
1287
|
{
|
|
1090
1288
|
className: classes,
|
|
@@ -1092,11 +1290,11 @@ var Toast = ({
|
|
|
1092
1290
|
onMouseLeave: handleMouseLeave,
|
|
1093
1291
|
...props,
|
|
1094
1292
|
children: [
|
|
1095
|
-
/* @__PURE__ */ (0,
|
|
1096
|
-
title && /* @__PURE__ */ (0,
|
|
1097
|
-
children && /* @__PURE__ */ (0,
|
|
1293
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: Toast_default.content, role: "status", "aria-live": "polite", children: [
|
|
1294
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: Toast_default.title, children: title }),
|
|
1295
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: Toast_default.description, children })
|
|
1098
1296
|
] }),
|
|
1099
|
-
closable && /* @__PURE__ */ (0,
|
|
1297
|
+
closable && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1100
1298
|
"button",
|
|
1101
1299
|
{
|
|
1102
1300
|
type: "button",
|
|
@@ -1110,10 +1308,10 @@ var Toast = ({
|
|
|
1110
1308
|
}
|
|
1111
1309
|
);
|
|
1112
1310
|
};
|
|
1113
|
-
Toast.displayName = "
|
|
1311
|
+
Toast.displayName = "Toast";
|
|
1114
1312
|
|
|
1115
1313
|
// src/components/Toast/ToastProvider/ToastProvider.tsx
|
|
1116
|
-
var
|
|
1314
|
+
var import_react21 = require("react");
|
|
1117
1315
|
var import_react_dom = require("react-dom");
|
|
1118
1316
|
|
|
1119
1317
|
// src/components/Toast/ToastProvider/ToastContainer.module.css
|
|
@@ -1128,39 +1326,39 @@ var ToastContainer_default = {
|
|
|
1128
1326
|
};
|
|
1129
1327
|
|
|
1130
1328
|
// src/components/Toast/ToastProvider/ToastProvider.tsx
|
|
1131
|
-
var
|
|
1329
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1132
1330
|
var idCounter = 0;
|
|
1133
1331
|
var nextId = () => `toast-${Date.now()}-${idCounter++}`;
|
|
1134
|
-
var ToastContext = (0,
|
|
1332
|
+
var ToastContext = (0, import_react21.createContext)(null);
|
|
1135
1333
|
var ToastProvider = ({
|
|
1136
1334
|
children,
|
|
1137
1335
|
position = "top-right"
|
|
1138
1336
|
}) => {
|
|
1139
|
-
const [toasts, setToasts] = (0,
|
|
1140
|
-
const close = (0,
|
|
1337
|
+
const [toasts, setToasts] = (0, import_react21.useState)([]);
|
|
1338
|
+
const close = (0, import_react21.useCallback)((id) => {
|
|
1141
1339
|
setToasts((prev) => prev.filter((toast) => toast.id !== id));
|
|
1142
1340
|
}, []);
|
|
1143
|
-
const show = (0,
|
|
1341
|
+
const show = (0, import_react21.useCallback)((options) => {
|
|
1144
1342
|
const id = nextId();
|
|
1145
1343
|
setToasts((prev) => [...prev, { id, ...options }]);
|
|
1146
1344
|
return id;
|
|
1147
1345
|
}, []);
|
|
1148
|
-
const value = (0,
|
|
1346
|
+
const value = (0, import_react21.useMemo)(() => {
|
|
1149
1347
|
return { show, close };
|
|
1150
1348
|
}, [show, close]);
|
|
1151
|
-
return /* @__PURE__ */ (0,
|
|
1349
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(ToastContext.Provider, { value, children: [
|
|
1152
1350
|
children,
|
|
1153
1351
|
typeof document !== "undefined" && (0, import_react_dom.createPortal)(
|
|
1154
|
-
/* @__PURE__ */ (0,
|
|
1352
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: cx(ToastContainer_default.container, ToastContainer_default[position]), children: toasts.map(({ id, description, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Toast, { ...rest, onClose: () => close(id), children: description }, id)) }),
|
|
1155
1353
|
document.body
|
|
1156
1354
|
)
|
|
1157
1355
|
] });
|
|
1158
1356
|
};
|
|
1159
1357
|
|
|
1160
1358
|
// src/components/Toast/ToastProvider/hook/useToast.ts
|
|
1161
|
-
var
|
|
1359
|
+
var import_react22 = require("react");
|
|
1162
1360
|
var useToast = () => {
|
|
1163
|
-
const ctx = (0,
|
|
1361
|
+
const ctx = (0, import_react22.useContext)(ToastContext);
|
|
1164
1362
|
if (!ctx) {
|
|
1165
1363
|
throw new Error("useToast \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0432\u043D\u0435 ToastProvider");
|
|
1166
1364
|
}
|
|
@@ -1176,8 +1374,8 @@ var useToast = () => {
|
|
|
1176
1374
|
};
|
|
1177
1375
|
|
|
1178
1376
|
// src/components/Tooltip/Tooltip.tsx
|
|
1179
|
-
var
|
|
1180
|
-
var
|
|
1377
|
+
var import_react23 = require("react");
|
|
1378
|
+
var import_react24 = require("@floating-ui/react");
|
|
1181
1379
|
|
|
1182
1380
|
// src/components/Tooltip/Tooltip.module.css
|
|
1183
1381
|
var Tooltip_default = {
|
|
@@ -1187,7 +1385,7 @@ var Tooltip_default = {
|
|
|
1187
1385
|
};
|
|
1188
1386
|
|
|
1189
1387
|
// src/components/Tooltip/Tooltip.tsx
|
|
1190
|
-
var
|
|
1388
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1191
1389
|
var Tooltip = ({
|
|
1192
1390
|
content,
|
|
1193
1391
|
children,
|
|
@@ -1196,35 +1394,35 @@ var Tooltip = ({
|
|
|
1196
1394
|
className,
|
|
1197
1395
|
...props
|
|
1198
1396
|
}) => {
|
|
1199
|
-
const [open, setOpen] = (0,
|
|
1397
|
+
const [open, setOpen] = (0, import_react23.useState)(false);
|
|
1200
1398
|
const {
|
|
1201
1399
|
refs,
|
|
1202
1400
|
floatingStyles,
|
|
1203
1401
|
context,
|
|
1204
1402
|
placement: finalPlacement
|
|
1205
|
-
} = (0,
|
|
1403
|
+
} = (0, import_react24.useFloating)({
|
|
1206
1404
|
open,
|
|
1207
1405
|
onOpenChange: setOpen,
|
|
1208
1406
|
placement,
|
|
1209
|
-
whileElementsMounted:
|
|
1210
|
-
middleware: [(0,
|
|
1407
|
+
whileElementsMounted: import_react24.autoUpdate,
|
|
1408
|
+
middleware: [(0, import_react24.offset)(8), (0, import_react24.flip)(), (0, import_react24.shift)({ padding: 8 })]
|
|
1211
1409
|
});
|
|
1212
|
-
const hover = (0,
|
|
1213
|
-
const focus = (0,
|
|
1214
|
-
const role = (0,
|
|
1215
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
1216
|
-
const childRef = (0,
|
|
1217
|
-
const mergedRef = (0,
|
|
1218
|
-
const child = (0,
|
|
1410
|
+
const hover = (0, import_react24.useHover)(context, { delay: { open: delay, close: 0 } });
|
|
1411
|
+
const focus = (0, import_react24.useFocus)(context);
|
|
1412
|
+
const role = (0, import_react24.useRole)(context, { role: "tooltip" });
|
|
1413
|
+
const { getReferenceProps, getFloatingProps } = (0, import_react24.useInteractions)([hover, focus, role]);
|
|
1414
|
+
const childRef = (0, import_react23.isValidElement)(children) ? children.props?.ref ?? children.ref : null;
|
|
1415
|
+
const mergedRef = (0, import_react24.useMergeRefs)([refs.setReference, childRef]);
|
|
1416
|
+
const child = (0, import_react23.isValidElement)(children) ? (0, import_react23.cloneElement)(
|
|
1219
1417
|
children,
|
|
1220
1418
|
getReferenceProps({
|
|
1221
1419
|
...children.props,
|
|
1222
1420
|
ref: mergedRef
|
|
1223
1421
|
})
|
|
1224
|
-
) : /* @__PURE__ */ (0,
|
|
1225
|
-
return /* @__PURE__ */ (0,
|
|
1422
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { ref: refs.setReference, ...getReferenceProps(), children });
|
|
1423
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
|
|
1226
1424
|
child,
|
|
1227
|
-
open && /* @__PURE__ */ (0,
|
|
1425
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1228
1426
|
"div",
|
|
1229
1427
|
{
|
|
1230
1428
|
ref: refs.setFloating,
|
|
@@ -1234,7 +1432,7 @@ var Tooltip = ({
|
|
|
1234
1432
|
...getFloatingProps(props),
|
|
1235
1433
|
children: [
|
|
1236
1434
|
content,
|
|
1237
|
-
/* @__PURE__ */ (0,
|
|
1435
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: Tooltip_default.arrow })
|
|
1238
1436
|
]
|
|
1239
1437
|
}
|
|
1240
1438
|
)
|
|
@@ -1250,14 +1448,17 @@ var Tooltip = ({
|
|
|
1250
1448
|
Badge,
|
|
1251
1449
|
Button,
|
|
1252
1450
|
Checkbox,
|
|
1451
|
+
Divider,
|
|
1253
1452
|
Input,
|
|
1254
1453
|
Modal,
|
|
1454
|
+
ProgressBar,
|
|
1255
1455
|
Radio,
|
|
1256
1456
|
RadioGroup,
|
|
1257
1457
|
Skeleton,
|
|
1258
1458
|
Spinner,
|
|
1259
1459
|
Switch,
|
|
1260
1460
|
Tabs,
|
|
1461
|
+
Textarea,
|
|
1261
1462
|
Toast,
|
|
1262
1463
|
ToastProvider,
|
|
1263
1464
|
Tooltip,
|