@andrilla/mado-ui 1.0.4 → 1.0.6

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.
@@ -8,22 +8,21 @@ import * as ReactDOM from "react-dom";
8
8
  import { createPortal } from "react-dom";
9
9
 
10
10
  //#region src/utils/custom-tailwind-merge.ts
11
- const integerList = Array.from({ length: 100 }, (_, i) => `${i + 1}`);
11
+ const isInteger = (classPart) => /^\d+$/.test(classPart);
12
+ const isFloat = (classPart) => /^\d+\.\d+$/.test(classPart);
13
+ const isArbitraryValue = (classPart) => /^\[.+\]$/.test(classPart);
14
+ const cornerShapeList = [
15
+ "bevel",
16
+ "notch",
17
+ "round",
18
+ "scoop",
19
+ "square",
20
+ "squircle",
21
+ "infinity",
22
+ isArbitraryValue
23
+ ];
12
24
  const twMerge = extendTailwindMerge({ extend: { classGroups: {
13
- animate: [{ animate: [
14
- "bounce",
15
- "double-spin",
16
- "drop-in",
17
- "flip",
18
- "flip-again",
19
- "grid-rows",
20
- "heartbeat",
21
- "ping",
22
- "pulse",
23
- "slide-up",
24
- "spin",
25
- "wave"
26
- ] }],
25
+ animate: [{ animate: ["fade-in", "wave"] }],
27
26
  "animation-direction": [{ "animation-direction": [
28
27
  "normal",
29
28
  "reverse",
@@ -36,11 +35,71 @@ const twMerge = extendTailwindMerge({ extend: { classGroups: {
36
35
  "backwards",
37
36
  "both"
38
37
  ] }],
39
- "animation-iteration": [{ "animation-iteration": [...integerList, "infinite"] }],
38
+ "animation-iteration": [{ "animation-iteration": ["infinite", isInteger] }],
40
39
  "animation-state": [{ "animation-state": ["running", "paused"] }],
40
+ corner: [{
41
+ corner: cornerShapeList,
42
+ "corner-super": [isFloat, isInteger],
43
+ "corner-s": cornerShapeList,
44
+ "corner-s-super": [isFloat, isInteger],
45
+ "corner-e": cornerShapeList,
46
+ "corner-e-super": [isFloat, isInteger],
47
+ "corner-t": cornerShapeList,
48
+ "corner-t-super": [isFloat, isInteger],
49
+ "corner-r": cornerShapeList,
50
+ "corner-r-super": [isFloat, isInteger],
51
+ "corner-b": cornerShapeList,
52
+ "corner-b-super": [isFloat, isInteger],
53
+ "corner-l": cornerShapeList,
54
+ "corner-l-super": [isFloat, isInteger],
55
+ "corner-ss": cornerShapeList,
56
+ "corner-ss-super": [isFloat, isInteger],
57
+ "corner-se": cornerShapeList,
58
+ "corner-se-super": [isFloat, isInteger],
59
+ "corner-es": cornerShapeList,
60
+ "corner-es-super": [isFloat, isInteger],
61
+ "corner-tl": cornerShapeList,
62
+ "corner-tl-super": [isFloat, isInteger],
63
+ "corner-tr": cornerShapeList,
64
+ "corner-tr-super": [isFloat, isInteger],
65
+ "corner-br": cornerShapeList,
66
+ "corner-br-super": [isFloat, isInteger],
67
+ "corner-bl": cornerShapeList,
68
+ "corner-bl-super": [isFloat, isInteger],
69
+ "-corner": ["infinity"],
70
+ "-corner-super": [isFloat, isInteger],
71
+ "-corner-s": ["infinity"],
72
+ "-corner-s-super": [isFloat, isInteger],
73
+ "-corner-e": ["infinity"],
74
+ "-corner-e-super": [isFloat, isInteger],
75
+ "-corner-t": ["infinity"],
76
+ "-corner-t-super": [isFloat, isInteger],
77
+ "-corner-r": ["infinity"],
78
+ "-corner-r-super": [isFloat, isInteger],
79
+ "-corner-b": ["infinity"],
80
+ "-corner-b-super": [isFloat, isInteger],
81
+ "-corner-l": ["infinity"],
82
+ "-corner-l-super": [isFloat, isInteger],
83
+ "-corner-ss": ["infinity"],
84
+ "-corner-ss-super": [isFloat, isInteger],
85
+ "-corner-se": ["infinity"],
86
+ "-corner-se-super": [isFloat, isInteger],
87
+ "-corner-es": ["infinity"],
88
+ "-corner-es-super": [isFloat, isInteger],
89
+ "-corner-tl": ["infinity"],
90
+ "-corner-tl-super": [isFloat, isInteger],
91
+ "-corner-tr": ["infinity"],
92
+ "-corner-tr-super": [isFloat, isInteger],
93
+ "-corner-br": ["infinity"],
94
+ "-corner-br-super": [isFloat, isInteger],
95
+ "-corner-bl": ["infinity"],
96
+ "-corner-bl-super": [isFloat, isInteger]
97
+ }],
98
+ ease: [{ ease: ["exponential", "spring"] }],
99
+ "font-size": [{ text: ["smaller", "larger"] }],
41
100
  "grid-cols": [{ "grid-cols": ["0fr", "1fr"] }],
42
101
  "grid-rows": [{ "grid-rows": ["0fr", "1fr"] }],
43
- transition: ["transition-rows"]
102
+ transition: [{ transition: ["transition-cols", "transition-rows"] }]
44
103
  } } });
45
104
 
46
105
  //#endregion
@@ -551,70 +610,6 @@ function Link({ as, className, customTheme, theme, type, ...props }) {
551
610
  className: twMerge(linkClasses, className)
552
611
  });
553
612
  }
554
- /**
555
- * # createLink
556
- * Creates an extended Link component with additional theme options.
557
- *
558
- * @param config - Configuration object defining new themes and defaults
559
- * @returns A new Link component with extended theme support
560
- *
561
- * @example
562
- * ```tsx
563
- * const MyLink = createLink({
564
- * as: NextLink,
565
- * className: 'font-bold',
566
- * type: 'fill',
567
- * theme: {
568
- * primary: {
569
- * customTheme: {
570
- * fill: 'after:[--theme-color:var(--color-primary-500)]',
571
- * multilineFill: '[--theme-color:var(--color-primary-500)]'
572
- * },
573
- * className: 'text-white'
574
- * }
575
- * }
576
- * })
577
- * ```
578
- */
579
- function createLink(config) {
580
- return function ExtendedLink({ theme, className, customTheme, type, as, ...props }) {
581
- const finalType = type !== void 0 ? type : config.type, finalTheme = theme !== void 0 ? theme : config.defaultTheme;
582
- const configClassName = config.className;
583
- const shouldOverrideElement = !as && Boolean(config.as);
584
- const linkProps = {
585
- ...props,
586
- className: void 0,
587
- customTheme: void 0,
588
- type: finalType
589
- };
590
- if (shouldOverrideElement) linkProps.as = config.as;
591
- else if (as) linkProps.as = as;
592
- if (finalTheme && typeof finalTheme === "string" && config.theme && finalTheme in config.theme) {
593
- const extendedTheme = config.theme[finalTheme];
594
- if (customTheme) return /* @__PURE__ */ jsx(Link, {
595
- ...linkProps,
596
- theme: "custom",
597
- customTheme,
598
- className: twMerge(configClassName, extendedTheme.className, className)
599
- });
600
- let resolvedCustomTheme;
601
- if (extendedTheme.customTheme.themeColor) resolvedCustomTheme = { themeColor: (finalType ? finalType.includes("multiline") : false) ? extendedTheme.customTheme.themeColor.multilineFill : extendedTheme.customTheme.themeColor.fill };
602
- else resolvedCustomTheme = { classes: extendedTheme.customTheme.classes };
603
- return /* @__PURE__ */ jsx(Link, {
604
- ...linkProps,
605
- theme: "custom",
606
- customTheme: resolvedCustomTheme,
607
- className: twMerge(configClassName, extendedTheme.className, className)
608
- });
609
- }
610
- return /* @__PURE__ */ jsx(Link, {
611
- ...linkProps,
612
- theme: finalTheme,
613
- className: twMerge(configClassName, className),
614
- customTheme
615
- });
616
- };
617
- }
618
613
 
619
614
  //#endregion
620
615
  //#region src/components/button.tsx
@@ -696,73 +691,6 @@ function Button({ className, customTheme, gradient = false, padding = "md", roun
696
691
  className: buttonClasses
697
692
  });
698
693
  }
699
- /**
700
- * # createButton
701
- * Creates an extended Button component with additional theme options.
702
- *
703
- * @param extendedThemes - Configuration object defining new themes
704
- * @returns A new Button component with extended theme support
705
- *
706
- * @example
707
- * ```tsx
708
- * const MyButton = createButton({
709
- * as: {
710
- * default: 'div',
711
- * link: NextLink
712
- * },
713
- * className: 'min-w-64',
714
- * padding: 'sm',
715
- * rounded: 'full',
716
- * theme: {
717
- * primary: {
718
- * customTheme: { themeColor: '[--theme-color:var(--color-primary-500)]' },
719
- * className: 'text-white'
720
- * }
721
- * }
722
- * })
723
- * ```
724
- */
725
- function createButton(config) {
726
- return function ExtendedButton({ theme, className, customTheme, gradient, padding, rounded, as, ...props }) {
727
- const finalGradient = gradient !== void 0 ? gradient : config.gradient, finalPadding = padding !== void 0 ? padding : config.padding, finalRounded = rounded !== void 0 ? rounded : config.rounded, finalTheme = theme !== void 0 ? theme : config.defaultTheme;
728
- const configClassName = config.className;
729
- const shouldOverrideElement = !as && Boolean(config.as);
730
- const getOverrideElement = () => {
731
- if (!config.as) return void 0;
732
- if (typeof config.as === "function" || typeof config.as === "string") return config.as;
733
- const hasHref = "href" in props && props.href;
734
- if (hasHref && config.as.link) return config.as.link;
735
- else if (!hasHref && config.as.default) return config.as.default;
736
- };
737
- const buttonProps = {
738
- ...props,
739
- className: void 0,
740
- customTheme: void 0,
741
- gradient: finalGradient,
742
- padding: finalPadding,
743
- rounded: finalRounded
744
- };
745
- if (shouldOverrideElement) {
746
- const overrideElement = getOverrideElement();
747
- if (overrideElement) buttonProps.as = overrideElement;
748
- } else if (as) buttonProps.as = as;
749
- if (finalTheme && typeof finalTheme === "string" && config.theme && finalTheme in config.theme) {
750
- const extendedTheme = config.theme[finalTheme];
751
- return /* @__PURE__ */ jsx(Button, {
752
- ...buttonProps,
753
- theme: "custom",
754
- customTheme: customTheme || extendedTheme.customTheme,
755
- className: twMerge(configClassName, extendedTheme.className, className)
756
- });
757
- }
758
- return /* @__PURE__ */ jsx(Button, {
759
- ...buttonProps,
760
- theme: finalTheme,
761
- className: twMerge(configClassName, className),
762
- customTheme
763
- });
764
- };
765
- }
766
694
 
767
695
  //#endregion
768
696
  //#region src/symbols/checkmark.tsx
@@ -8527,4 +8455,4 @@ function ArrowSvg({ className, ...props }) {
8527
8455
  }
8528
8456
 
8529
8457
  //#endregion
8530
- export { Anchor, Button, Checkbox, Details, DetailsBody, DetailsSummary, DropDown, DropDownButton, DropDownItem, DropDownItems, DropDownSection, DropDownSeparator, Fieldset, Form, Ghost, Heading, HumanVerification, IFrame, Input, Link, Modal, ModalClose, ModalDialog, ModalTitle, ModalTrigger, Select, SelectOption, SelectSectionTitle, SubmitButton, Textarea, Time, Tooltip, TooltipPanel, TooltipTrigger, createButton, createLink, generateHumanValidationToken, getLinkClasses, validateHuman };
8458
+ export { Anchor, Button, Checkbox, Details, DetailsBody, DetailsSummary, DropDown, DropDownButton, DropDownItem, DropDownItems, DropDownSection, DropDownSeparator, Fieldset, Form, Ghost, Heading, HumanVerification, IFrame, Input, Link, Modal, ModalClose, ModalDialog, ModalTitle, ModalTrigger, Select, SelectOption, SelectSectionTitle, SubmitButton, Textarea, Time, Tooltip, TooltipPanel, TooltipTrigger, generateHumanValidationToken, getLinkClasses, validateHuman };
@@ -3,22 +3,21 @@ import { extendTailwindMerge } from "tailwind-merge";
3
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
4
 
5
5
  //#region src/utils/custom-tailwind-merge.ts
6
- const integerList = Array.from({ length: 100 }, (_, i) => `${i + 1}`);
6
+ const isInteger = (classPart) => /^\d+$/.test(classPart);
7
+ const isFloat = (classPart) => /^\d+\.\d+$/.test(classPart);
8
+ const isArbitraryValue = (classPart) => /^\[.+\]$/.test(classPart);
9
+ const cornerShapeList = [
10
+ "bevel",
11
+ "notch",
12
+ "round",
13
+ "scoop",
14
+ "square",
15
+ "squircle",
16
+ "infinity",
17
+ isArbitraryValue
18
+ ];
7
19
  const twMerge = extendTailwindMerge({ extend: { classGroups: {
8
- animate: [{ animate: [
9
- "bounce",
10
- "double-spin",
11
- "drop-in",
12
- "flip",
13
- "flip-again",
14
- "grid-rows",
15
- "heartbeat",
16
- "ping",
17
- "pulse",
18
- "slide-up",
19
- "spin",
20
- "wave"
21
- ] }],
20
+ animate: [{ animate: ["fade-in", "wave"] }],
22
21
  "animation-direction": [{ "animation-direction": [
23
22
  "normal",
24
23
  "reverse",
@@ -31,11 +30,71 @@ const twMerge = extendTailwindMerge({ extend: { classGroups: {
31
30
  "backwards",
32
31
  "both"
33
32
  ] }],
34
- "animation-iteration": [{ "animation-iteration": [...integerList, "infinite"] }],
33
+ "animation-iteration": [{ "animation-iteration": ["infinite", isInteger] }],
35
34
  "animation-state": [{ "animation-state": ["running", "paused"] }],
35
+ corner: [{
36
+ corner: cornerShapeList,
37
+ "corner-super": [isFloat, isInteger],
38
+ "corner-s": cornerShapeList,
39
+ "corner-s-super": [isFloat, isInteger],
40
+ "corner-e": cornerShapeList,
41
+ "corner-e-super": [isFloat, isInteger],
42
+ "corner-t": cornerShapeList,
43
+ "corner-t-super": [isFloat, isInteger],
44
+ "corner-r": cornerShapeList,
45
+ "corner-r-super": [isFloat, isInteger],
46
+ "corner-b": cornerShapeList,
47
+ "corner-b-super": [isFloat, isInteger],
48
+ "corner-l": cornerShapeList,
49
+ "corner-l-super": [isFloat, isInteger],
50
+ "corner-ss": cornerShapeList,
51
+ "corner-ss-super": [isFloat, isInteger],
52
+ "corner-se": cornerShapeList,
53
+ "corner-se-super": [isFloat, isInteger],
54
+ "corner-es": cornerShapeList,
55
+ "corner-es-super": [isFloat, isInteger],
56
+ "corner-tl": cornerShapeList,
57
+ "corner-tl-super": [isFloat, isInteger],
58
+ "corner-tr": cornerShapeList,
59
+ "corner-tr-super": [isFloat, isInteger],
60
+ "corner-br": cornerShapeList,
61
+ "corner-br-super": [isFloat, isInteger],
62
+ "corner-bl": cornerShapeList,
63
+ "corner-bl-super": [isFloat, isInteger],
64
+ "-corner": ["infinity"],
65
+ "-corner-super": [isFloat, isInteger],
66
+ "-corner-s": ["infinity"],
67
+ "-corner-s-super": [isFloat, isInteger],
68
+ "-corner-e": ["infinity"],
69
+ "-corner-e-super": [isFloat, isInteger],
70
+ "-corner-t": ["infinity"],
71
+ "-corner-t-super": [isFloat, isInteger],
72
+ "-corner-r": ["infinity"],
73
+ "-corner-r-super": [isFloat, isInteger],
74
+ "-corner-b": ["infinity"],
75
+ "-corner-b-super": [isFloat, isInteger],
76
+ "-corner-l": ["infinity"],
77
+ "-corner-l-super": [isFloat, isInteger],
78
+ "-corner-ss": ["infinity"],
79
+ "-corner-ss-super": [isFloat, isInteger],
80
+ "-corner-se": ["infinity"],
81
+ "-corner-se-super": [isFloat, isInteger],
82
+ "-corner-es": ["infinity"],
83
+ "-corner-es-super": [isFloat, isInteger],
84
+ "-corner-tl": ["infinity"],
85
+ "-corner-tl-super": [isFloat, isInteger],
86
+ "-corner-tr": ["infinity"],
87
+ "-corner-tr-super": [isFloat, isInteger],
88
+ "-corner-br": ["infinity"],
89
+ "-corner-br-super": [isFloat, isInteger],
90
+ "-corner-bl": ["infinity"],
91
+ "-corner-bl-super": [isFloat, isInteger]
92
+ }],
93
+ ease: [{ ease: ["exponential", "spring"] }],
94
+ "font-size": [{ text: ["smaller", "larger"] }],
36
95
  "grid-cols": [{ "grid-cols": ["0fr", "1fr"] }],
37
96
  "grid-rows": [{ "grid-rows": ["0fr", "1fr"] }],
38
- transition: ["transition-rows"]
97
+ transition: [{ transition: ["transition-cols", "transition-rows"] }]
39
98
  } } });
40
99
 
41
100
  //#endregion