@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.js
CHANGED
|
@@ -251,7 +251,7 @@ var Alert = ({
|
|
|
251
251
|
return /* @__PURE__ */ jsxs2("div", { className: classes, role: "alert", ...props, children: [
|
|
252
252
|
/* @__PURE__ */ jsxs2("div", { className: Alert_default.content, children: [
|
|
253
253
|
title && /* @__PURE__ */ jsx7("div", { className: Alert_default.title, children: title }),
|
|
254
|
-
|
|
254
|
+
children && /* @__PURE__ */ jsx7("div", { className: Alert_default.description, children })
|
|
255
255
|
] }),
|
|
256
256
|
closable && /* @__PURE__ */ jsx7(
|
|
257
257
|
"button",
|
|
@@ -389,28 +389,122 @@ var Checkbox = forwardRef2(
|
|
|
389
389
|
);
|
|
390
390
|
Checkbox.displayName = "Checkbox";
|
|
391
391
|
|
|
392
|
+
// src/components/Divider/Divider.tsx
|
|
393
|
+
import "react";
|
|
394
|
+
|
|
395
|
+
// src/components/Divider/Divider.module.css
|
|
396
|
+
var Divider_default = {
|
|
397
|
+
divider: "Divider_divider",
|
|
398
|
+
horizontal: "Divider_horizontal",
|
|
399
|
+
vertical: "Divider_vertical",
|
|
400
|
+
withLabel: "Divider_withLabel",
|
|
401
|
+
label: "Divider_label",
|
|
402
|
+
start: "Divider_start",
|
|
403
|
+
end: "Divider_end"
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
// src/components/Divider/Divider.tsx
|
|
407
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
408
|
+
var Divider = ({
|
|
409
|
+
orientation = "horizontal",
|
|
410
|
+
decorative = false,
|
|
411
|
+
thickness,
|
|
412
|
+
labelPosition = "center",
|
|
413
|
+
className,
|
|
414
|
+
style,
|
|
415
|
+
children,
|
|
416
|
+
...props
|
|
417
|
+
}) => {
|
|
418
|
+
const hasLabel = Boolean(children) && orientation === "horizontal";
|
|
419
|
+
const classes = cx(
|
|
420
|
+
Divider_default.divider,
|
|
421
|
+
Divider_default[orientation],
|
|
422
|
+
hasLabel && Divider_default.withLabel,
|
|
423
|
+
hasLabel && Divider_default[labelPosition],
|
|
424
|
+
className
|
|
425
|
+
);
|
|
426
|
+
return /* @__PURE__ */ jsx11(
|
|
427
|
+
"div",
|
|
428
|
+
{
|
|
429
|
+
className: classes,
|
|
430
|
+
style: { ...style, "--divider-thickness": toCss(thickness) },
|
|
431
|
+
role: hasLabel ? void 0 : decorative ? "none" : "separator",
|
|
432
|
+
"aria-orientation": !decorative && orientation === "vertical" ? "vertical" : void 0,
|
|
433
|
+
...props,
|
|
434
|
+
children: hasLabel && /* @__PURE__ */ jsx11("span", { className: Divider_default.label, children })
|
|
435
|
+
}
|
|
436
|
+
);
|
|
437
|
+
};
|
|
438
|
+
Divider.displayName = "Divider";
|
|
439
|
+
|
|
392
440
|
// src/components/Input/Input.tsx
|
|
393
|
-
import { forwardRef as forwardRef3
|
|
441
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
442
|
+
|
|
443
|
+
// src/components/FormField/FormField.tsx
|
|
444
|
+
import { useId as useId3 } from "react";
|
|
445
|
+
|
|
446
|
+
// src/components/FormField/FormField.module.css
|
|
447
|
+
var FormField_default = {
|
|
448
|
+
sm: "FormField_sm",
|
|
449
|
+
md: "FormField_md",
|
|
450
|
+
lg: "FormField_lg",
|
|
451
|
+
root: "FormField_root",
|
|
452
|
+
label: "FormField_label",
|
|
453
|
+
required: "FormField_required",
|
|
454
|
+
box: "FormField_box",
|
|
455
|
+
disabled: "FormField_disabled",
|
|
456
|
+
invalid: "FormField_invalid",
|
|
457
|
+
message: "FormField_message",
|
|
458
|
+
error: "FormField_error"
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
// src/components/FormField/FormField.tsx
|
|
462
|
+
import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
463
|
+
var FormField = ({
|
|
464
|
+
id,
|
|
465
|
+
label,
|
|
466
|
+
hint,
|
|
467
|
+
error,
|
|
468
|
+
required,
|
|
469
|
+
disabled,
|
|
470
|
+
size = "md",
|
|
471
|
+
className,
|
|
472
|
+
"aria-describedby": ariaDescribedBy,
|
|
473
|
+
children
|
|
474
|
+
}) => {
|
|
475
|
+
const autoId = useId3();
|
|
476
|
+
const controlId = id ?? autoId;
|
|
477
|
+
const hasError = Boolean(error);
|
|
478
|
+
const message = hasError ? error : hint;
|
|
479
|
+
const messageId = message ? `${controlId}-message` : void 0;
|
|
480
|
+
const describedBy = [ariaDescribedBy, messageId].filter(Boolean).join(" ") || void 0;
|
|
481
|
+
return /* @__PURE__ */ jsxs4("div", { className: cx(FormField_default.root, FormField_default[size], className), children: [
|
|
482
|
+
label && /* @__PURE__ */ jsxs4("label", { htmlFor: controlId, className: FormField_default.label, children: [
|
|
483
|
+
label,
|
|
484
|
+
required && /* @__PURE__ */ jsx12("span", { className: FormField_default.required, "aria-hidden": "true", children: " *" })
|
|
485
|
+
] }),
|
|
486
|
+
children({
|
|
487
|
+
controlProps: {
|
|
488
|
+
id: controlId,
|
|
489
|
+
"aria-describedby": describedBy,
|
|
490
|
+
"aria-invalid": hasError || void 0
|
|
491
|
+
},
|
|
492
|
+
boxClassName: cx(FormField_default.box, hasError && FormField_default.invalid, disabled && FormField_default.disabled)
|
|
493
|
+
}),
|
|
494
|
+
message && /* @__PURE__ */ jsx12("p", { id: messageId, className: cx(FormField_default.message, hasError && FormField_default.error), children: message })
|
|
495
|
+
] });
|
|
496
|
+
};
|
|
497
|
+
FormField.displayName = "FormField";
|
|
394
498
|
|
|
395
499
|
// src/components/Input/Input.module.css
|
|
396
500
|
var Input_default = {
|
|
397
|
-
|
|
398
|
-
md: "Input_md",
|
|
399
|
-
lg: "Input_lg",
|
|
400
|
-
root: "Input_root",
|
|
401
|
-
label: "Input_label",
|
|
402
|
-
required: "Input_required",
|
|
403
|
-
field: "Input_field",
|
|
404
|
-
disabled: "Input_disabled",
|
|
405
|
-
invalid: "Input_invalid",
|
|
501
|
+
box: "Input_box",
|
|
406
502
|
input: "Input_input",
|
|
407
|
-
icon: "Input_icon"
|
|
408
|
-
message: "Input_message",
|
|
409
|
-
error: "Input_error"
|
|
503
|
+
icon: "Input_icon"
|
|
410
504
|
};
|
|
411
505
|
|
|
412
506
|
// src/components/Input/Input.tsx
|
|
413
|
-
import { jsx as
|
|
507
|
+
import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
414
508
|
var Input = forwardRef3(
|
|
415
509
|
({
|
|
416
510
|
size = "md",
|
|
@@ -425,39 +519,35 @@ var Input = forwardRef3(
|
|
|
425
519
|
disabled,
|
|
426
520
|
"aria-describedby": ariaDescribedBy,
|
|
427
521
|
...props
|
|
428
|
-
}, ref) =>
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
/* @__PURE__ */ jsx11(
|
|
522
|
+
}, ref) => /* @__PURE__ */ jsx13(
|
|
523
|
+
FormField,
|
|
524
|
+
{
|
|
525
|
+
id,
|
|
526
|
+
size,
|
|
527
|
+
label,
|
|
528
|
+
hint,
|
|
529
|
+
error,
|
|
530
|
+
required,
|
|
531
|
+
disabled,
|
|
532
|
+
className,
|
|
533
|
+
"aria-describedby": ariaDescribedBy,
|
|
534
|
+
children: ({ controlProps, boxClassName }) => /* @__PURE__ */ jsxs5("div", { className: cx(boxClassName, Input_default.box), children: [
|
|
535
|
+
startIcon && /* @__PURE__ */ jsx13("span", { className: Input_default.icon, children: startIcon }),
|
|
536
|
+
/* @__PURE__ */ jsx13(
|
|
444
537
|
"input",
|
|
445
538
|
{
|
|
446
539
|
ref,
|
|
447
|
-
|
|
540
|
+
...controlProps,
|
|
448
541
|
required,
|
|
449
542
|
disabled,
|
|
450
|
-
"aria-invalid": hasError || void 0,
|
|
451
|
-
"aria-describedby": describeBy,
|
|
452
543
|
className: Input_default.input,
|
|
453
544
|
...props
|
|
454
545
|
}
|
|
455
546
|
),
|
|
456
|
-
endIcon && /* @__PURE__ */
|
|
457
|
-
] })
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
}
|
|
547
|
+
endIcon && /* @__PURE__ */ jsx13("span", { className: Input_default.icon, children: endIcon })
|
|
548
|
+
] })
|
|
549
|
+
}
|
|
550
|
+
)
|
|
461
551
|
);
|
|
462
552
|
Input.displayName = "Input";
|
|
463
553
|
|
|
@@ -481,7 +571,7 @@ var Modal_default = {
|
|
|
481
571
|
};
|
|
482
572
|
|
|
483
573
|
// src/components/Modal/Modal.tsx
|
|
484
|
-
import { jsx as
|
|
574
|
+
import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
485
575
|
var Modal = ({
|
|
486
576
|
open,
|
|
487
577
|
onClose,
|
|
@@ -504,7 +594,7 @@ var Modal = ({
|
|
|
504
594
|
return (
|
|
505
595
|
// Escape у <dialog> уже закрывает модалку с клавиатуры
|
|
506
596
|
// oxlint-disable-next-line jsx-a11y/click-events-have-key-events jsx-a11y/no-noninteractive-element-interactions
|
|
507
|
-
/* @__PURE__ */
|
|
597
|
+
/* @__PURE__ */ jsx14(
|
|
508
598
|
"dialog",
|
|
509
599
|
{
|
|
510
600
|
ref,
|
|
@@ -513,13 +603,13 @@ var Modal = ({
|
|
|
513
603
|
"aria-labelledby": title ? titleId : void 0,
|
|
514
604
|
onClose,
|
|
515
605
|
onClick: (e) => e.target === e.currentTarget && close(),
|
|
516
|
-
children: /* @__PURE__ */
|
|
517
|
-
title && /* @__PURE__ */
|
|
518
|
-
/* @__PURE__ */
|
|
519
|
-
/* @__PURE__ */
|
|
606
|
+
children: /* @__PURE__ */ jsxs6("div", { className: Modal_default.content, children: [
|
|
607
|
+
title && /* @__PURE__ */ jsxs6("header", { className: Modal_default.header, children: [
|
|
608
|
+
/* @__PURE__ */ jsx14("h2", { id: titleId, className: Modal_default.title, children: title }),
|
|
609
|
+
/* @__PURE__ */ jsx14("button", { type: "button", className: Modal_default.close, "aria-label": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", onClick: close, children: "\xD7" })
|
|
520
610
|
] }),
|
|
521
|
-
/* @__PURE__ */
|
|
522
|
-
footer && /* @__PURE__ */
|
|
611
|
+
/* @__PURE__ */ jsx14("div", { className: Modal_default.body, children }),
|
|
612
|
+
footer && /* @__PURE__ */ jsx14("footer", { className: Modal_default.footer, children: footer })
|
|
523
613
|
] })
|
|
524
614
|
}
|
|
525
615
|
)
|
|
@@ -527,6 +617,56 @@ var Modal = ({
|
|
|
527
617
|
};
|
|
528
618
|
Modal.displayName = "Modal";
|
|
529
619
|
|
|
620
|
+
// src/components/ProgressBar/ProgressBar.module.css
|
|
621
|
+
var ProgressBar_default = {
|
|
622
|
+
progress: "ProgressBar_progress",
|
|
623
|
+
sm: "ProgressBar_sm",
|
|
624
|
+
md: "ProgressBar_md",
|
|
625
|
+
lg: "ProgressBar_lg",
|
|
626
|
+
success: "ProgressBar_success",
|
|
627
|
+
danger: "ProgressBar_danger",
|
|
628
|
+
fill: "ProgressBar_fill",
|
|
629
|
+
indeterminate: "ProgressBar_indeterminate"
|
|
630
|
+
};
|
|
631
|
+
|
|
632
|
+
// src/components/ProgressBar/ProgressBar.tsx
|
|
633
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
634
|
+
var ProgressBar = ({
|
|
635
|
+
value,
|
|
636
|
+
max = 100,
|
|
637
|
+
size = "md",
|
|
638
|
+
variant = "accent",
|
|
639
|
+
className,
|
|
640
|
+
style,
|
|
641
|
+
...props
|
|
642
|
+
}) => {
|
|
643
|
+
const isIndenterminate = value === void 0;
|
|
644
|
+
const safeMax = max > 0 ? max : 100;
|
|
645
|
+
const clamped = isIndenterminate ? 0 : Math.min(Math.max(value, 0), safeMax);
|
|
646
|
+
const percent = clamped / safeMax * 100;
|
|
647
|
+
const classes = cx(
|
|
648
|
+
ProgressBar_default.progress,
|
|
649
|
+
ProgressBar_default[size],
|
|
650
|
+
ProgressBar_default[variant],
|
|
651
|
+
isIndenterminate && ProgressBar_default.indeterminate,
|
|
652
|
+
className
|
|
653
|
+
);
|
|
654
|
+
return /* @__PURE__ */ jsx15(
|
|
655
|
+
"div",
|
|
656
|
+
{
|
|
657
|
+
className: classes,
|
|
658
|
+
style: { ...style, "--progress-offset": `${percent - 100}%` },
|
|
659
|
+
role: "progressbar",
|
|
660
|
+
"aria-valuemin": 0,
|
|
661
|
+
"aria-valuemax": safeMax,
|
|
662
|
+
"aria-valuenow": isIndenterminate ? void 0 : clamped,
|
|
663
|
+
...props,
|
|
664
|
+
children: /* @__PURE__ */ jsx15("div", { className: ProgressBar_default.fill })
|
|
665
|
+
}
|
|
666
|
+
);
|
|
667
|
+
};
|
|
668
|
+
ProgressBar.displayName = "ProgressBar";
|
|
669
|
+
|
|
530
670
|
// src/components/Radio/Radio.tsx
|
|
531
671
|
import { forwardRef as forwardRef4, useContext as useContext3, useId as useId5 } from "react";
|
|
532
672
|
|
|
@@ -549,7 +689,7 @@ var Radio_default = {
|
|
|
549
689
|
};
|
|
550
690
|
|
|
551
691
|
// src/components/Radio/Radio.tsx
|
|
552
|
-
import { jsx as
|
|
692
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
553
693
|
var Radio = forwardRef4(
|
|
554
694
|
({
|
|
555
695
|
size = "md",
|
|
@@ -580,7 +720,7 @@ var Radio = forwardRef4(
|
|
|
580
720
|
onChange?.(event);
|
|
581
721
|
group?.onChange(event.target.value);
|
|
582
722
|
};
|
|
583
|
-
return /* @__PURE__ */
|
|
723
|
+
return /* @__PURE__ */ jsxs7(
|
|
584
724
|
"div",
|
|
585
725
|
{
|
|
586
726
|
className: cx(
|
|
@@ -591,8 +731,8 @@ var Radio = forwardRef4(
|
|
|
591
731
|
className
|
|
592
732
|
),
|
|
593
733
|
children: [
|
|
594
|
-
/* @__PURE__ */
|
|
595
|
-
/* @__PURE__ */
|
|
734
|
+
/* @__PURE__ */ jsxs7("label", { className: Radio_default.label, children: [
|
|
735
|
+
/* @__PURE__ */ jsx16(
|
|
596
736
|
"input",
|
|
597
737
|
{
|
|
598
738
|
ref,
|
|
@@ -610,9 +750,9 @@ var Radio = forwardRef4(
|
|
|
610
750
|
}
|
|
611
751
|
),
|
|
612
752
|
label,
|
|
613
|
-
required && !group && /* @__PURE__ */
|
|
753
|
+
required && !group && /* @__PURE__ */ jsx16("span", { className: Radio_default.required, "aria-hidden": "true", children: " *" })
|
|
614
754
|
] }),
|
|
615
|
-
hasError && /* @__PURE__ */
|
|
755
|
+
hasError && /* @__PURE__ */ jsx16("p", { id: messageId, className: Radio_default.error, children: error })
|
|
616
756
|
]
|
|
617
757
|
}
|
|
618
758
|
);
|
|
@@ -625,7 +765,7 @@ import { useId as useId7 } from "react";
|
|
|
625
765
|
|
|
626
766
|
// src/components/RadioGroup/RadioGroupProvider/RadioGroupProvider.tsx
|
|
627
767
|
import { useId as useId6, useState as useState3 } from "react";
|
|
628
|
-
import { jsx as
|
|
768
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
629
769
|
var RadioGroupProvider = ({
|
|
630
770
|
name,
|
|
631
771
|
value: controlledValue,
|
|
@@ -646,7 +786,7 @@ var RadioGroupProvider = ({
|
|
|
646
786
|
}
|
|
647
787
|
onChange?.(newValue);
|
|
648
788
|
};
|
|
649
|
-
return /* @__PURE__ */
|
|
789
|
+
return /* @__PURE__ */ jsx17(
|
|
650
790
|
RadioGroupContext.Provider,
|
|
651
791
|
{
|
|
652
792
|
value: {
|
|
@@ -672,7 +812,7 @@ var RadioGroup_default = {
|
|
|
672
812
|
};
|
|
673
813
|
|
|
674
814
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
675
|
-
import { jsx as
|
|
815
|
+
import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
676
816
|
var RadioGroup = ({
|
|
677
817
|
value,
|
|
678
818
|
defaultValue,
|
|
@@ -689,7 +829,7 @@ var RadioGroup = ({
|
|
|
689
829
|
const labelId = useId7();
|
|
690
830
|
const messageId = useId7();
|
|
691
831
|
const hasError = Boolean(error);
|
|
692
|
-
return /* @__PURE__ */
|
|
832
|
+
return /* @__PURE__ */ jsx18(
|
|
693
833
|
RadioGroupProvider,
|
|
694
834
|
{
|
|
695
835
|
name,
|
|
@@ -698,7 +838,7 @@ var RadioGroup = ({
|
|
|
698
838
|
onChange,
|
|
699
839
|
disabled,
|
|
700
840
|
required,
|
|
701
|
-
children: /* @__PURE__ */
|
|
841
|
+
children: /* @__PURE__ */ jsxs8(
|
|
702
842
|
"div",
|
|
703
843
|
{
|
|
704
844
|
className: cx(RadioGroup_default.root, disabled && RadioGroup_default.disabled, className),
|
|
@@ -709,12 +849,12 @@ var RadioGroup = ({
|
|
|
709
849
|
"aria-required": required || void 0,
|
|
710
850
|
...props,
|
|
711
851
|
children: [
|
|
712
|
-
label && /* @__PURE__ */
|
|
852
|
+
label && /* @__PURE__ */ jsxs8("div", { id: labelId, className: RadioGroup_default.groupLabel, children: [
|
|
713
853
|
label,
|
|
714
|
-
required && /* @__PURE__ */
|
|
854
|
+
required && /* @__PURE__ */ jsx18("span", { className: RadioGroup_default.required, "aria-hidden": "true", children: " *" })
|
|
715
855
|
] }),
|
|
716
|
-
/* @__PURE__ */
|
|
717
|
-
hasError && /* @__PURE__ */
|
|
856
|
+
/* @__PURE__ */ jsx18("div", { className: RadioGroup_default.options, children }),
|
|
857
|
+
hasError && /* @__PURE__ */ jsx18("p", { id: messageId, className: RadioGroup_default.error, children: error })
|
|
718
858
|
]
|
|
719
859
|
}
|
|
720
860
|
)
|
|
@@ -737,7 +877,7 @@ var Skeleton_default = {
|
|
|
737
877
|
};
|
|
738
878
|
|
|
739
879
|
// src/components/Skeleton/Skeleton.tsx
|
|
740
|
-
import { jsx as
|
|
880
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
741
881
|
var Skeleton = ({
|
|
742
882
|
variant = "text",
|
|
743
883
|
width,
|
|
@@ -761,14 +901,14 @@ var Skeleton = ({
|
|
|
761
901
|
borderRadius: toCss(radius)
|
|
762
902
|
};
|
|
763
903
|
if (variant === "text" && lines > 1) {
|
|
764
|
-
return /* @__PURE__ */
|
|
904
|
+
return /* @__PURE__ */ jsx19(
|
|
765
905
|
"span",
|
|
766
906
|
{
|
|
767
907
|
className: cx(Skeleton_default.lines, className),
|
|
768
908
|
style: { width: sizeStyle.width, ...style },
|
|
769
909
|
"aria-hidden": "true",
|
|
770
910
|
...props,
|
|
771
|
-
children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */
|
|
911
|
+
children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ jsx19(
|
|
772
912
|
"span",
|
|
773
913
|
{
|
|
774
914
|
className: baseClasses,
|
|
@@ -779,14 +919,14 @@ var Skeleton = ({
|
|
|
779
919
|
}
|
|
780
920
|
);
|
|
781
921
|
}
|
|
782
|
-
return /* @__PURE__ */
|
|
922
|
+
return /* @__PURE__ */ jsx19(
|
|
783
923
|
"span",
|
|
784
924
|
{
|
|
785
925
|
className: cx(baseClasses, children != null && Skeleton_default.withChildren, className),
|
|
786
926
|
style: { ...sizeStyle, ...style },
|
|
787
927
|
"aria-hidden": "true",
|
|
788
928
|
...props,
|
|
789
|
-
children: children != null && /* @__PURE__ */
|
|
929
|
+
children: children != null && /* @__PURE__ */ jsx19("span", { className: Skeleton_default.hidden, children })
|
|
790
930
|
}
|
|
791
931
|
);
|
|
792
932
|
};
|
|
@@ -816,7 +956,7 @@ var Spinner_default = {
|
|
|
816
956
|
};
|
|
817
957
|
|
|
818
958
|
// src/components/Spinner/Spinner.tsx
|
|
819
|
-
import { jsx as
|
|
959
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
820
960
|
var Spinner = ({
|
|
821
961
|
variant = "circle",
|
|
822
962
|
size = "md",
|
|
@@ -827,7 +967,7 @@ var Spinner = ({
|
|
|
827
967
|
...props
|
|
828
968
|
}) => {
|
|
829
969
|
const { items } = SPINNER_VARIANTS[variant];
|
|
830
|
-
return /* @__PURE__ */
|
|
970
|
+
return /* @__PURE__ */ jsx20(
|
|
831
971
|
"span",
|
|
832
972
|
{
|
|
833
973
|
role: "status",
|
|
@@ -835,7 +975,7 @@ var Spinner = ({
|
|
|
835
975
|
className: cx(Spinner_default.spinner, Spinner_default[variant], Spinner_default[size], className),
|
|
836
976
|
style: { ...style, ...color && { color } },
|
|
837
977
|
...props,
|
|
838
|
-
children: Array.from({ length: items }, (_, i) => /* @__PURE__ */
|
|
978
|
+
children: Array.from({ length: items }, (_, i) => /* @__PURE__ */ jsx20("span", { className: Spinner_default.item, style: { "--i": i } }, i))
|
|
839
979
|
}
|
|
840
980
|
);
|
|
841
981
|
};
|
|
@@ -857,10 +997,10 @@ var Switch_default = {
|
|
|
857
997
|
};
|
|
858
998
|
|
|
859
999
|
// src/components/Switch/Switch.tsx
|
|
860
|
-
import { jsx as
|
|
1000
|
+
import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
861
1001
|
var Switch = forwardRef5(
|
|
862
|
-
({ size = "md", label, className, disabled, ...props }, ref) => /* @__PURE__ */
|
|
863
|
-
/* @__PURE__ */
|
|
1002
|
+
({ size = "md", label, className, disabled, ...props }, ref) => /* @__PURE__ */ jsxs9("label", { className: cx(Switch_default.root, Switch_default[size], disabled && Switch_default.disabled, className), children: [
|
|
1003
|
+
/* @__PURE__ */ jsx21(
|
|
864
1004
|
"input",
|
|
865
1005
|
{
|
|
866
1006
|
ref,
|
|
@@ -872,8 +1012,8 @@ var Switch = forwardRef5(
|
|
|
872
1012
|
...props
|
|
873
1013
|
}
|
|
874
1014
|
),
|
|
875
|
-
/* @__PURE__ */
|
|
876
|
-
label && /* @__PURE__ */
|
|
1015
|
+
/* @__PURE__ */ jsx21("span", { className: Switch_default.track, "aria-hidden": "true", children: /* @__PURE__ */ jsx21("span", { className: Switch_default.thumb }) }),
|
|
1016
|
+
label && /* @__PURE__ */ jsx21("span", { className: Switch_default.label, children: label })
|
|
877
1017
|
] })
|
|
878
1018
|
);
|
|
879
1019
|
|
|
@@ -889,7 +1029,7 @@ var Tabs_default = {
|
|
|
889
1029
|
};
|
|
890
1030
|
|
|
891
1031
|
// src/components/Tabs/Tabs.tsx
|
|
892
|
-
import { jsx as
|
|
1032
|
+
import { jsx as jsx22, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
893
1033
|
var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
894
1034
|
const [active, setActive] = useState4(() => {
|
|
895
1035
|
const isSelectable = items.some((item) => item.value === defaultValue && !item.disabled);
|
|
@@ -927,10 +1067,10 @@ var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
|
927
1067
|
tabRefs.current[next]?.focus();
|
|
928
1068
|
select(items[next].value);
|
|
929
1069
|
};
|
|
930
|
-
return /* @__PURE__ */
|
|
931
|
-
/* @__PURE__ */
|
|
1070
|
+
return /* @__PURE__ */ jsxs10("div", { className: cx(Tabs_default.tabs, className), children: [
|
|
1071
|
+
/* @__PURE__ */ jsx22("div", { role: "tablist", className: Tabs_default.list, children: items.map((item, index) => {
|
|
932
1072
|
const selected = index === activeIndex;
|
|
933
|
-
return /* @__PURE__ */
|
|
1073
|
+
return /* @__PURE__ */ jsx22(
|
|
934
1074
|
"button",
|
|
935
1075
|
{
|
|
936
1076
|
ref: (el) => {
|
|
@@ -951,7 +1091,7 @@ var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
|
951
1091
|
item.value
|
|
952
1092
|
);
|
|
953
1093
|
}) }),
|
|
954
|
-
/* @__PURE__ */
|
|
1094
|
+
/* @__PURE__ */ jsx22(
|
|
955
1095
|
"div",
|
|
956
1096
|
{
|
|
957
1097
|
role: "tabpanel",
|
|
@@ -964,6 +1104,61 @@ var Tabs = ({ items, defaultValue, onChange, className }) => {
|
|
|
964
1104
|
)
|
|
965
1105
|
] });
|
|
966
1106
|
};
|
|
1107
|
+
Tabs.displayName = "Tabs";
|
|
1108
|
+
|
|
1109
|
+
// src/components/Textarea/Textarea.tsx
|
|
1110
|
+
import { forwardRef as forwardRef6 } from "react";
|
|
1111
|
+
|
|
1112
|
+
// src/components/Textarea/Textarea.module.css
|
|
1113
|
+
var Textarea_default = {
|
|
1114
|
+
textarea: "Textarea_textarea",
|
|
1115
|
+
resizeNone: "Textarea_resizeNone"
|
|
1116
|
+
};
|
|
1117
|
+
|
|
1118
|
+
// src/components/Textarea/Textarea.tsx
|
|
1119
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1120
|
+
var Textarea = forwardRef6(
|
|
1121
|
+
({
|
|
1122
|
+
size = "md",
|
|
1123
|
+
label,
|
|
1124
|
+
hint,
|
|
1125
|
+
error,
|
|
1126
|
+
resize = "vertical",
|
|
1127
|
+
rows = 3,
|
|
1128
|
+
className,
|
|
1129
|
+
id,
|
|
1130
|
+
required,
|
|
1131
|
+
disabled,
|
|
1132
|
+
"aria-describedby": ariaDescribedBy,
|
|
1133
|
+
...props
|
|
1134
|
+
}, ref) => /* @__PURE__ */ jsx23(
|
|
1135
|
+
FormField,
|
|
1136
|
+
{
|
|
1137
|
+
id,
|
|
1138
|
+
size,
|
|
1139
|
+
label,
|
|
1140
|
+
hint,
|
|
1141
|
+
error,
|
|
1142
|
+
required,
|
|
1143
|
+
disabled,
|
|
1144
|
+
className,
|
|
1145
|
+
"aria-describedby": ariaDescribedBy,
|
|
1146
|
+
children: ({ controlProps, boxClassName }) => /* @__PURE__ */ jsx23(
|
|
1147
|
+
"textarea",
|
|
1148
|
+
{
|
|
1149
|
+
ref,
|
|
1150
|
+
...controlProps,
|
|
1151
|
+
rows,
|
|
1152
|
+
required,
|
|
1153
|
+
disabled,
|
|
1154
|
+
className: cx(boxClassName, Textarea_default.textarea, resize === "none" && Textarea_default.resizeNone),
|
|
1155
|
+
...props
|
|
1156
|
+
}
|
|
1157
|
+
)
|
|
1158
|
+
}
|
|
1159
|
+
)
|
|
1160
|
+
);
|
|
1161
|
+
Textarea.displayName = "Textarea";
|
|
967
1162
|
|
|
968
1163
|
// src/components/Toast/Toast.tsx
|
|
969
1164
|
import { useCallback, useEffect as useEffect3, useRef as useRef4, useState as useState5 } from "react";
|
|
@@ -983,7 +1178,7 @@ var Toast_default = {
|
|
|
983
1178
|
};
|
|
984
1179
|
|
|
985
1180
|
// src/components/Toast/Toast.tsx
|
|
986
|
-
import { jsx as
|
|
1181
|
+
import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
987
1182
|
var Toast = ({
|
|
988
1183
|
variant = "info",
|
|
989
1184
|
title,
|
|
@@ -1039,7 +1234,7 @@ var Toast = ({
|
|
|
1039
1234
|
return null;
|
|
1040
1235
|
}
|
|
1041
1236
|
const classes = cx(Toast_default.toast, Toast_default[variant], className);
|
|
1042
|
-
return /* @__PURE__ */
|
|
1237
|
+
return /* @__PURE__ */ jsxs11(
|
|
1043
1238
|
"div",
|
|
1044
1239
|
{
|
|
1045
1240
|
className: classes,
|
|
@@ -1047,11 +1242,11 @@ var Toast = ({
|
|
|
1047
1242
|
onMouseLeave: handleMouseLeave,
|
|
1048
1243
|
...props,
|
|
1049
1244
|
children: [
|
|
1050
|
-
/* @__PURE__ */
|
|
1051
|
-
title && /* @__PURE__ */
|
|
1052
|
-
children && /* @__PURE__ */
|
|
1245
|
+
/* @__PURE__ */ jsxs11("div", { className: Toast_default.content, role: "status", "aria-live": "polite", children: [
|
|
1246
|
+
title && /* @__PURE__ */ jsx24("div", { className: Toast_default.title, children: title }),
|
|
1247
|
+
children && /* @__PURE__ */ jsx24("div", { className: Toast_default.description, children })
|
|
1053
1248
|
] }),
|
|
1054
|
-
closable && /* @__PURE__ */
|
|
1249
|
+
closable && /* @__PURE__ */ jsx24(
|
|
1055
1250
|
"button",
|
|
1056
1251
|
{
|
|
1057
1252
|
type: "button",
|
|
@@ -1065,7 +1260,7 @@ var Toast = ({
|
|
|
1065
1260
|
}
|
|
1066
1261
|
);
|
|
1067
1262
|
};
|
|
1068
|
-
Toast.displayName = "
|
|
1263
|
+
Toast.displayName = "Toast";
|
|
1069
1264
|
|
|
1070
1265
|
// src/components/Toast/ToastProvider/ToastProvider.tsx
|
|
1071
1266
|
import { createContext as createContext3, useCallback as useCallback2, useMemo, useState as useState6 } from "react";
|
|
@@ -1083,7 +1278,7 @@ var ToastContainer_default = {
|
|
|
1083
1278
|
};
|
|
1084
1279
|
|
|
1085
1280
|
// src/components/Toast/ToastProvider/ToastProvider.tsx
|
|
1086
|
-
import { jsx as
|
|
1281
|
+
import { jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1087
1282
|
var idCounter = 0;
|
|
1088
1283
|
var nextId = () => `toast-${Date.now()}-${idCounter++}`;
|
|
1089
1284
|
var ToastContext = createContext3(null);
|
|
@@ -1103,10 +1298,10 @@ var ToastProvider = ({
|
|
|
1103
1298
|
const value = useMemo(() => {
|
|
1104
1299
|
return { show, close };
|
|
1105
1300
|
}, [show, close]);
|
|
1106
|
-
return /* @__PURE__ */
|
|
1301
|
+
return /* @__PURE__ */ jsxs12(ToastContext.Provider, { value, children: [
|
|
1107
1302
|
children,
|
|
1108
1303
|
typeof document !== "undefined" && createPortal(
|
|
1109
|
-
/* @__PURE__ */
|
|
1304
|
+
/* @__PURE__ */ jsx25("div", { className: cx(ToastContainer_default.container, ToastContainer_default[position]), children: toasts.map(({ id, description, ...rest }) => /* @__PURE__ */ jsx25(Toast, { ...rest, onClose: () => close(id), children: description }, id)) }),
|
|
1110
1305
|
document.body
|
|
1111
1306
|
)
|
|
1112
1307
|
] });
|
|
@@ -1153,7 +1348,7 @@ var Tooltip_default = {
|
|
|
1153
1348
|
};
|
|
1154
1349
|
|
|
1155
1350
|
// src/components/Tooltip/Tooltip.tsx
|
|
1156
|
-
import { Fragment, jsx as
|
|
1351
|
+
import { Fragment, jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1157
1352
|
var Tooltip = ({
|
|
1158
1353
|
content,
|
|
1159
1354
|
children,
|
|
@@ -1187,10 +1382,10 @@ var Tooltip = ({
|
|
|
1187
1382
|
...children.props,
|
|
1188
1383
|
ref: mergedRef
|
|
1189
1384
|
})
|
|
1190
|
-
) : /* @__PURE__ */
|
|
1191
|
-
return /* @__PURE__ */
|
|
1385
|
+
) : /* @__PURE__ */ jsx26("span", { ref: refs.setReference, ...getReferenceProps(), children });
|
|
1386
|
+
return /* @__PURE__ */ jsxs13(Fragment, { children: [
|
|
1192
1387
|
child,
|
|
1193
|
-
open && /* @__PURE__ */
|
|
1388
|
+
open && /* @__PURE__ */ jsxs13(
|
|
1194
1389
|
"div",
|
|
1195
1390
|
{
|
|
1196
1391
|
ref: refs.setFloating,
|
|
@@ -1200,7 +1395,7 @@ var Tooltip = ({
|
|
|
1200
1395
|
...getFloatingProps(props),
|
|
1201
1396
|
children: [
|
|
1202
1397
|
content,
|
|
1203
|
-
/* @__PURE__ */
|
|
1398
|
+
/* @__PURE__ */ jsx26("div", { className: Tooltip_default.arrow })
|
|
1204
1399
|
]
|
|
1205
1400
|
}
|
|
1206
1401
|
)
|
|
@@ -1215,14 +1410,17 @@ export {
|
|
|
1215
1410
|
Badge,
|
|
1216
1411
|
Button,
|
|
1217
1412
|
Checkbox,
|
|
1413
|
+
Divider,
|
|
1218
1414
|
Input,
|
|
1219
1415
|
Modal,
|
|
1416
|
+
ProgressBar,
|
|
1220
1417
|
Radio,
|
|
1221
1418
|
RadioGroup,
|
|
1222
1419
|
Skeleton,
|
|
1223
1420
|
Spinner,
|
|
1224
1421
|
Switch,
|
|
1225
1422
|
Tabs,
|
|
1423
|
+
Textarea,
|
|
1226
1424
|
Toast,
|
|
1227
1425
|
ToastProvider,
|
|
1228
1426
|
Tooltip,
|