@4alldigital/foundation-ui--gamma 1.26.0 → 1.27.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.
Files changed (119) hide show
  1. package/dist/foundation-ui.css +1 -1
  2. package/dist/index.esm.js +179 -166
  3. package/dist/index.js +189 -176
  4. package/dist/types/fui/components/Button/Button.d.ts +1 -1
  5. package/dist/types/fui/components/Button/Button.stories.d.ts +1 -0
  6. package/dist/types/fui/components/Button/Button.types.d.ts +1 -0
  7. package/dist/types/fui/components/Card/Card.d.ts +8 -0
  8. package/dist/types/fui/components/Card/Card.stories.d.ts +6 -0
  9. package/dist/types/fui/components/Card/Card.test.d.ts +1 -0
  10. package/dist/types/fui/components/Card/Card.types.d.ts +27 -0
  11. package/dist/types/fui/components/Card/index.d.ts +1 -0
  12. package/dist/types/fui/components/Card/types/CardBasic/CardBasic.d.ts +8 -0
  13. package/dist/types/fui/components/Card/types/CardBasic/CardBasic.stories.d.ts +6 -0
  14. package/dist/types/fui/components/Card/types/CardBasic/CardBasic.test.d.ts +1 -0
  15. package/dist/types/fui/components/Card/types/CardBasic/CardBasic.types.d.ts +4 -0
  16. package/dist/types/fui/components/Card/types/CardBasic/index.d.ts +1 -0
  17. package/dist/types/fui/components/Card/types/CardMedia/CardMedia.d.ts +8 -0
  18. package/dist/types/fui/components/Card/types/CardMedia/CardMedia.stories.d.ts +6 -0
  19. package/dist/types/fui/components/Card/types/CardMedia/CardMedia.test.d.ts +1 -0
  20. package/dist/types/fui/components/Card/types/CardMedia/CardMedia.types.d.ts +4 -0
  21. package/dist/types/fui/components/Card/types/CardMedia/index.d.ts +1 -0
  22. package/dist/types/fui/components/Card/types/CardVideo/CardVideo.d.ts +8 -0
  23. package/dist/types/fui/components/Card/types/CardVideo/CardVideo.stories.d.ts +6 -0
  24. package/dist/types/fui/components/Card/types/CardVideo/CardVideo.test.d.ts +1 -0
  25. package/dist/types/fui/components/Card/types/CardVideo/CardVideo.types.d.ts +4 -0
  26. package/dist/types/fui/components/Card/types/CardVideo/index.d.ts +1 -0
  27. package/dist/types/fui/components/Checkbox/Checkbox.types.d.ts +4 -1
  28. package/dist/types/fui/components/Container/Container.d.ts +1 -1
  29. package/dist/types/fui/components/Container/Container.types.d.ts +2 -0
  30. package/dist/types/fui/components/ContentPageLayout/ContentPageLayout.types.d.ts +2 -2
  31. package/dist/types/fui/components/ContentRowsLayout/ContentRowsLayout.types.d.ts +2 -2
  32. package/dist/types/fui/components/Copy/Copy.d.ts +1 -1
  33. package/dist/types/fui/components/Copy/Copy.types.d.ts +13 -11
  34. package/dist/types/fui/components/Form/Form.d.ts +1 -1
  35. package/dist/types/fui/components/Form/Form.types.d.ts +3 -0
  36. package/dist/types/fui/components/FormField/FormField.d.ts +1 -1
  37. package/dist/types/fui/components/FormField/FormField.stories.d.ts +1 -0
  38. package/dist/types/fui/components/FormField/FormField.types.d.ts +7 -4
  39. package/dist/types/fui/components/FormSelect/FormSelect.types.d.ts +5 -2
  40. package/dist/types/fui/components/Heading/Heading.types.d.ts +6 -6
  41. package/dist/types/fui/components/Label/Label.d.ts +1 -1
  42. package/dist/types/fui/components/Label/Label.types.d.ts +6 -2
  43. package/dist/types/fui/components/Link/Link.types.d.ts +1 -1
  44. package/dist/types/fui/components/Notice/Notice.d.ts +1 -1
  45. package/dist/types/fui/components/Notice/Notice.types.d.ts +1 -1
  46. package/dist/types/fui/components/Radio/Radio.types.d.ts +2 -1
  47. package/dist/types/fui/components/TextInput/TextInput.types.d.ts +2 -1
  48. package/dist/types/fui/components/index.d.ts +23 -0
  49. package/dist/types/fui/features/Search/Search.d.ts +5 -0
  50. package/dist/types/fui/features/Search/Search.stories.d.ts +6 -0
  51. package/dist/types/fui/features/Search/Search.test.d.ts +1 -0
  52. package/dist/types/fui/features/Search/Search.types.d.ts +10 -0
  53. package/dist/types/fui/features/Search/index.d.ts +1 -0
  54. package/dist/types/fui/features/Search/view-helpers/appendClassName.d.ts +1 -0
  55. package/dist/types/fui/features/Search/view-helpers/formatResult.d.ts +3 -0
  56. package/dist/types/fui/features/Search/view-helpers/getFilterValueDisplay.d.ts +1 -0
  57. package/dist/types/fui/features/Search/view-helpers/getUrlSanitizer.d.ts +6 -0
  58. package/dist/types/fui/features/Search/view-helpers/index.d.ts +4 -0
  59. package/dist/types/fui/features/Search/views/Layout/Layout.d.ts +7 -0
  60. package/dist/types/fui/features/Search/views/Layout/Layout.stories.d.ts +6 -0
  61. package/dist/types/fui/features/Search/views/Layout/Layout.test.d.ts +1 -0
  62. package/dist/types/fui/features/Search/views/Layout/Layout.types.d.ts +10 -0
  63. package/dist/types/fui/features/Search/views/Layout/index.d.ts +1 -0
  64. package/dist/types/fui/features/Search/views/MultiCheckboxFacet/MultiCheckboxFacet.d.ts +7 -0
  65. package/dist/types/fui/features/Search/views/MultiCheckboxFacet/MultiCheckboxFacet.stories.d.ts +6 -0
  66. package/dist/types/fui/features/Search/views/MultiCheckboxFacet/MultiCheckboxFacet.test.d.ts +1 -0
  67. package/dist/types/fui/features/Search/views/MultiCheckboxFacet/MultiCheckboxFacet.types.d.ts +4 -0
  68. package/dist/types/fui/features/Search/views/MultiCheckboxFacet/index.d.ts +1 -0
  69. package/dist/types/fui/features/Search/views/Paging/Paging.d.ts +7 -0
  70. package/dist/types/fui/features/Search/views/Paging/Paging.stories.d.ts +6 -0
  71. package/dist/types/fui/features/Search/views/Paging/Paging.test.d.ts +1 -0
  72. package/dist/types/fui/features/Search/views/Paging/Paging.types.d.ts +14 -0
  73. package/dist/types/fui/features/Search/views/Paging/index.d.ts +1 -0
  74. package/dist/types/fui/features/Search/views/PagingInfo/PagingInfo.d.ts +8 -0
  75. package/dist/types/fui/features/Search/views/PagingInfo/PagingInfo.stories.d.ts +6 -0
  76. package/dist/types/fui/features/Search/views/PagingInfo/PagingInfo.test.d.ts +1 -0
  77. package/dist/types/fui/features/Search/views/PagingInfo/PagingInfo.types.d.ts +16 -0
  78. package/dist/types/fui/features/Search/views/PagingInfo/index.d.ts +1 -0
  79. package/dist/types/fui/features/Search/views/Result/Result.d.ts +7 -0
  80. package/dist/types/fui/features/Search/views/Result/Result.stories.d.ts +6 -0
  81. package/dist/types/fui/features/Search/views/Result/Result.test.d.ts +1 -0
  82. package/dist/types/fui/features/Search/views/Result/Result.types.d.ts +22 -0
  83. package/dist/types/fui/features/Search/views/Result/index.d.ts +1 -0
  84. package/dist/types/fui/features/Search/views/Results/Results.d.ts +8 -0
  85. package/dist/types/fui/features/Search/views/Results/Results.stories.d.ts +6 -0
  86. package/dist/types/fui/features/Search/views/Results/Results.test.d.ts +1 -0
  87. package/dist/types/fui/features/Search/views/Results/Results.types.d.ts +19 -0
  88. package/dist/types/fui/features/Search/views/Results/index.d.ts +1 -0
  89. package/dist/types/fui/features/Search/views/ResultsPerPage/ResultsPerPage.d.ts +7 -0
  90. package/dist/types/fui/features/Search/views/ResultsPerPage/ResultsPerPage.stories.d.ts +6 -0
  91. package/dist/types/fui/features/Search/views/ResultsPerPage/ResultsPerPage.test.d.ts +1 -0
  92. package/dist/types/fui/features/Search/views/ResultsPerPage/ResultsPerPage.types.d.ts +17 -0
  93. package/dist/types/fui/features/Search/views/ResultsPerPage/index.d.ts +1 -0
  94. package/dist/types/fui/features/Search/views/SearchBox/SearchBox.d.ts +7 -0
  95. package/dist/types/fui/features/Search/views/SearchBox/SearchBox.stories.d.ts +6 -0
  96. package/dist/types/fui/features/Search/views/SearchBox/SearchBox.test.d.ts +1 -0
  97. package/dist/types/fui/features/Search/views/SearchBox/SearchBox.types.d.ts +6 -0
  98. package/dist/types/fui/features/Search/views/SearchBox/index.d.ts +1 -0
  99. package/dist/types/fui/features/Search/views/Sidebar/Sidebar.d.ts +8 -0
  100. package/dist/types/fui/features/Search/views/Sidebar/Sidebar.stories.d.ts +6 -0
  101. package/dist/types/fui/features/Search/views/Sidebar/Sidebar.test.d.ts +1 -0
  102. package/dist/types/fui/features/Search/views/Sidebar/Sidebar.types.d.ts +3 -0
  103. package/dist/types/fui/features/Search/views/Sidebar/index.d.ts +1 -0
  104. package/dist/types/fui/features/Search/views/SingleLinksFacet/SingleLinksFacet.d.ts +7 -0
  105. package/dist/types/fui/features/Search/views/SingleLinksFacet/SingleLinksFacet.stories.d.ts +6 -0
  106. package/dist/types/fui/features/Search/views/SingleLinksFacet/SingleLinksFacet.test.d.ts +1 -0
  107. package/dist/types/fui/features/Search/views/SingleLinksFacet/SingleLinksFacet.types.d.ts +4 -0
  108. package/dist/types/fui/features/Search/views/SingleLinksFacet/index.d.ts +1 -0
  109. package/dist/types/fui/features/Search/views/SingleSelectFacet/SingleSelectFacet.d.ts +7 -0
  110. package/dist/types/fui/features/Search/views/SingleSelectFacet/SingleSelectFacet.stories.d.ts +6 -0
  111. package/dist/types/fui/features/Search/views/SingleSelectFacet/SingleSelectFacet.test.d.ts +1 -0
  112. package/dist/types/fui/features/Search/views/SingleSelectFacet/SingleSelectFacet.types.d.ts +4 -0
  113. package/dist/types/fui/features/Search/views/SingleSelectFacet/index.d.ts +1 -0
  114. package/dist/types/fui/features/Search/views/Sorting/Sorting.d.ts +7 -0
  115. package/dist/types/fui/features/Search/views/Sorting/Sorting.stories.d.ts +6 -0
  116. package/dist/types/fui/features/Search/views/Sorting/Sorting.test.d.ts +1 -0
  117. package/dist/types/fui/features/Search/views/Sorting/Sorting.types.d.ts +20 -0
  118. package/dist/types/fui/features/Search/views/Sorting/index.d.ts +1 -0
  119. package/package.json +4 -31
package/dist/index.js CHANGED
@@ -13,27 +13,47 @@ var Blockquote = function (_a) {
13
13
  };
14
14
  Blockquote.displayName = 'Blockquote';
15
15
 
16
- var BTN_TYPES;
16
+ exports.BTN_TYPES = void 0;
17
17
  (function (BTN_TYPES) {
18
18
  BTN_TYPES["SUBMIT"] = "submit";
19
19
  BTN_TYPES["RESET"] = "reset";
20
20
  BTN_TYPES["BUTTON"] = "button";
21
- })(BTN_TYPES || (BTN_TYPES = {}));
22
- var BTN_VARIANTS;
21
+ })(exports.BTN_TYPES || (exports.BTN_TYPES = {}));
22
+ exports.BTN_VARIANTS = void 0;
23
23
  (function (BTN_VARIANTS) {
24
24
  BTN_VARIANTS["PRIMARY"] = "primary";
25
25
  BTN_VARIANTS["SECONDARY"] = "secondary";
26
26
  BTN_VARIANTS["TERTIARY"] = "tertiary";
27
- })(BTN_VARIANTS || (BTN_VARIANTS = {}));
28
- var BTN_SIZES;
27
+ })(exports.BTN_VARIANTS || (exports.BTN_VARIANTS = {}));
28
+ exports.BTN_SIZES = void 0;
29
29
  (function (BTN_SIZES) {
30
30
  BTN_SIZES["SMALL"] = "small";
31
31
  BTN_SIZES["MEDIUM"] = "medium";
32
32
  BTN_SIZES["LARGE"] = "large";
33
- })(BTN_SIZES || (BTN_SIZES = {}));
33
+ })(exports.BTN_SIZES || (exports.BTN_SIZES = {}));
34
+
35
+ /**
36
+ * Icon component
37
+ * List of supported icons can be found at https://icon-sets.iconify.design.
38
+ */
39
+ var Icon = function (_a) {
40
+ var name = _a.name, _b = _a.size, size = _b === void 0 ? 24 : _b, color = _a.color, id = _a.id, className = _a.className, testID = _a.testID;
41
+ if (color) {
42
+ return (jsxRuntime.jsx(react.Icon, { "data-testid": testID || id || 'Icon', icon: name, width: size, height: size, color: color, className: className, fill: color || 'currentColor' }));
43
+ }
44
+ return (jsxRuntime.jsx(react.Icon, { "data-testid": testID || id || 'Icon', icon: name, width: size, height: size }));
45
+ };
46
+ Icon.displayName = 'Icon';
47
+
48
+ var Loader = function (_a) {
49
+ var color = _a.color, _b = _a.size, size = _b === void 0 ? 8 : _b, _c = _a.thickness, thickness = _c === void 0 ? 4 : _c;
50
+ var sizeClass = size ? "w-".concat(size, " h-").concat(size) : 'w-8 h-8';
51
+ return (jsxRuntime.jsx("div", { "data-testid": "Loader", className: 'mr-3 flex items-center justify-center', children: jsxRuntime.jsxs("div", { role: "status", className: 'flex items-center', children: [jsxRuntime.jsxs("svg", { className: "animate-spin ".concat(sizeClass, " text-white"), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [jsxRuntime.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: color || 'currentColor', strokeWidth: thickness }), jsxRuntime.jsx("path", { className: "opacity-75", fill: color || 'currentColor', d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }), jsxRuntime.jsx("span", { className: "sr-only", children: "Loading..." })] }) }));
52
+ };
53
+ Loader.displayName = 'Loader';
34
54
 
35
55
  var Button = function (_a) {
36
- var _b = _a.variant, variant = _b === void 0 ? BTN_VARIANTS.PRIMARY : _b, _c = _a.size, size = _c === void 0 ? BTN_SIZES.MEDIUM : _c, _d = _a.type, type = _d === void 0 ? BTN_TYPES.BUTTON : _d, _e = _a.wide, wide = _e === void 0 ? true : _e, _f = _a.rounded, rounded = _f === void 0 ? true : _f, _g = _a.raised, raised = _g === void 0 ? true : _g, uppercase = _a.uppercase, children = _a.children, id = _a.id, disabled = _a.disabled, ariaLabel = _a.ariaLabel, onClick = _a.onClick, icon = _a.icon, external = _a.external, iconFirst = _a.iconFirst, outline = _a.outline, testID = _a.testID, className = _a.className;
56
+ var _b = _a.variant, variant = _b === void 0 ? exports.BTN_VARIANTS.PRIMARY : _b, _c = _a.size, size = _c === void 0 ? exports.BTN_SIZES.MEDIUM : _c, _d = _a.type, type = _d === void 0 ? exports.BTN_TYPES.BUTTON : _d, _e = _a.wide, wide = _e === void 0 ? true : _e, _f = _a.rounded, rounded = _f === void 0 ? true : _f, _g = _a.raised, raised = _g === void 0 ? true : _g, uppercase = _a.uppercase, children = _a.children, id = _a.id, disabled = _a.disabled, ariaLabel = _a.ariaLabel, onClick = _a.onClick, icon = _a.icon, external = _a.external, iconFirst = _a.iconFirst, outline = _a.outline, testID = _a.testID, className = _a.className, isLoading = _a.isLoading;
37
57
  var smallX = wide ? 'px-5' : 'px-3';
38
58
  var mediumX = wide ? 'px-8' : 'px-4';
39
59
  var largeX = wide ? 'px-11' : 'px-5';
@@ -60,50 +80,52 @@ var Button = function (_a) {
60
80
  icon: 'w-6 h-6',
61
81
  },
62
82
  };
63
- var classes = cx('font-bold flex items-center transition-all duration-200 transform active:scale-95 justify-around border-solid border rounded cursor-pointer focus:outline-none', { 'text-white border-primary hover:bg-primary-darker hover:border-primary-darker': variant === 'primary' }, { 'text-white border-secondary hover:bg-secondary-darker hover:border-secondary-darker': variant === 'secondary' }, { 'text-black border-tertiary hover:bg-tertiary-darker hover:border-tertiary-darker': variant === 'tertiary' }, { 'bg-primary': variant === 'primary' && !outline }, { 'bg-secondary': variant === 'secondary' && !outline }, { 'bg-tertiary': variant === 'tertiary' && !outline }, { 'bg-transparent': outline }, { shadow: raised }, { uppercase: uppercase }, { 'auto-cols-auto grid-cols-2 gap-2': icon || external }, { 'rounded-full': rounded }, { 'flex-row-reverse': iconFirst }, "".concat(sizes[size].y, " ").concat(sizes[size].x, " ").concat(sizes[size].text), className);
83
+ var classes = cx('appearance-none font-body flex items-center transition-all duration-200 transform active:scale-95 justify-around border-solid border rounded cursor-pointer outline-none focus:outline-none focus-visible:outline-none', { 'text-white border-primary hover:bg-primary-darker': variant === 'primary' }, { 'text-white border-secondary hover:bg-secondary-darker': variant === 'secondary' }, { 'text-black border-tertiary hover:bg-tertiary-darker': variant === 'tertiary' }, { 'bg-primary': variant === 'primary' }, { 'bg-secondary': variant === 'secondary' }, { 'bg-tertiary': variant === 'tertiary' }, { 'border-primary300 dark:border-primary400 hover:border-primary400 dark:hover:border-primary500': outline }, { shadow: raised }, { uppercase: uppercase }, { 'auto-cols-auto grid-cols-2 gap-2': icon || external }, { 'rounded-full': rounded }, { 'flex-row-reverse': iconFirst }, { 'opacity-50 cursor-not-allowed': disabled }, "".concat(sizes[size].y, " ").concat(sizes[size].x, " ").concat(sizes[size].text), className);
64
84
  var iconClasses = cx(sizes[size].icon);
65
- return (jsxRuntime.jsx("button", { id: id, "data-testid": testID || id || 'Button', onClick: onClick, className: classes, type: type, disabled: disabled, "aria-label": ariaLabel, role: "button", children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [children, icon && !external && (jsxRuntime.jsx("span", { className: "flex items-center", children: jsxRuntime.jsx(react.Icon, { icon: icon, className: iconClasses }) })), external && (jsxRuntime.jsx("span", { className: "flex items-center", children: jsxRuntime.jsx(react.Icon, { icon: "carbon:launch", className: iconClasses }) }))] }) }));
85
+ return (jsxRuntime.jsx("button", { id: id, "data-testid": testID || id || 'Button', onClick: onClick, className: classes, type: type, disabled: disabled, "aria-label": ariaLabel, role: "button", children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isLoading && (jsxRuntime.jsx("div", { className: "flex items-center", children: jsxRuntime.jsx(Loader, { size: 4 }) })), children, icon && !external && (jsxRuntime.jsx("span", { className: "flex items-center", children: jsxRuntime.jsx(Icon, { name: icon, className: iconClasses }) })), external && (jsxRuntime.jsx("span", { className: "flex items-center", children: jsxRuntime.jsx(Icon, { name: "carbon:launch", className: iconClasses }) }))] }) }));
66
86
  };
67
87
  Button.displayName = 'Button';
68
88
 
69
- var ALIGN;
70
- (function (ALIGN) {
71
- ALIGN["LEFT"] = "left";
72
- ALIGN["CENTER"] = "center";
73
- ALIGN["RIGHT"] = "right";
74
- ALIGN["JUSTIFY"] = "justify";
75
- ALIGN["NOWRAP"] = "nowrap";
76
- })(ALIGN || (ALIGN = {}));
77
- var TRANSFORM;
78
- (function (TRANSFORM) {
79
- TRANSFORM["LOWERCASE"] = "lowercase";
80
- TRANSFORM["UPPERCASE"] = "uppercase";
81
- TRANSFORM["CAPITALIZE"] = "capitalize";
82
- TRANSFORM["NORMALCASE"] = "normal-case";
83
- })(TRANSFORM || (TRANSFORM = {}));
84
- var CONTEXTUAL;
85
- (function (CONTEXTUAL) {
86
- CONTEXTUAL["INVERTED"] = "inverted";
87
- CONTEXTUAL["MUTED"] = "muted";
88
- })(CONTEXTUAL || (CONTEXTUAL = {}));
89
- var SIZE$1;
90
- (function (SIZE) {
91
- SIZE["SMALL"] = "small";
92
- SIZE["LARGE"] = "large";
93
- SIZE["INTRO"] = "intro";
94
- })(SIZE$1 || (SIZE$1 = {}));
95
- var TAG;
96
- (function (TAG) {
97
- TAG["P"] = "p";
98
- TAG["SPAN"] = "span";
99
- TAG["DIV"] = "div";
100
- TAG["SMALL"] = "small";
101
- })(TAG || (TAG = {}));
89
+ exports.COPY_ALIGN = void 0;
90
+ (function (COPY_ALIGN) {
91
+ COPY_ALIGN["LEFT"] = "left";
92
+ COPY_ALIGN["CENTER"] = "center";
93
+ COPY_ALIGN["RIGHT"] = "right";
94
+ COPY_ALIGN["JUSTIFY"] = "justify";
95
+ COPY_ALIGN["NOWRAP"] = "nowrap";
96
+ })(exports.COPY_ALIGN || (exports.COPY_ALIGN = {}));
97
+ exports.COPY_TRANSFORM = void 0;
98
+ (function (COPY_TRANSFORM) {
99
+ COPY_TRANSFORM["LOWERCASE"] = "lowercase";
100
+ COPY_TRANSFORM["UPPERCASE"] = "uppercase";
101
+ COPY_TRANSFORM["CAPITALIZE"] = "capitalize";
102
+ COPY_TRANSFORM["NORMALCASE"] = "normal-case";
103
+ })(exports.COPY_TRANSFORM || (exports.COPY_TRANSFORM = {}));
104
+ exports.COPY_CONTEXTUAL = void 0;
105
+ (function (COPY_CONTEXTUAL) {
106
+ COPY_CONTEXTUAL["INVERTED"] = "inverted";
107
+ COPY_CONTEXTUAL["MUTED"] = "muted";
108
+ })(exports.COPY_CONTEXTUAL || (exports.COPY_CONTEXTUAL = {}));
109
+ exports.COPY_SIZE = void 0;
110
+ (function (COPY_SIZE) {
111
+ COPY_SIZE["SMALL"] = "small";
112
+ COPY_SIZE["LARGE"] = "large";
113
+ COPY_SIZE["INTRO"] = "intro";
114
+ })(exports.COPY_SIZE || (exports.COPY_SIZE = {}));
115
+ exports.COPY_TAG = void 0;
116
+ (function (COPY_TAG) {
117
+ COPY_TAG["P"] = "p";
118
+ COPY_TAG["SPAN"] = "span";
119
+ COPY_TAG["DIV"] = "div";
120
+ COPY_TAG["SMALL"] = "small";
121
+ })(exports.COPY_TAG || (exports.COPY_TAG = {}));
102
122
 
103
123
  var Copy = function (_a) {
104
124
  var _b;
105
- var children = _a.children, _c = _a.as, Tag = _c === void 0 ? TAG.P : _c, size = _a.size, _d = _a.align, align = _d === void 0 ? ALIGN.LEFT : _d, transform = _a.transform, id = _a.id, testID = _a.testID;
106
- var classes = cx((_b = {}, _b["text-".concat(align)] = align, _b), { 'text-sm': size === 'small' }, { 'text-lg': size === 'large' }, { 'text-2xl': size === 'intro' }, { 'mb-3 leading-5': Tag === 'p' }, { 'text-sm': Tag === 'small' }, 'body-text', transform);
125
+ var children = _a.children, _c = _a.as, Tag = _c === void 0 ? exports.COPY_TAG.P : _c, size = _a.size, _d = _a.align, align = _d === void 0 ? exports.COPY_ALIGN.LEFT : _d, transform = _a.transform, id = _a.id, className = _a.className, testID = _a.testID;
126
+ var classes = cx((_b = {}, _b["text-".concat(align)] = align, _b), { 'text-sm': size === 'small' }, { 'text-lg': size === 'large' }, { 'text-2xl': size === 'intro' }, { 'mb-3 leading-5 mt-0': Tag === 'p' }, { 'text-sm': Tag === 'small' },
127
+ //'body-text',
128
+ transform, className);
107
129
  return (jsxRuntime.jsx(Tag, { "data-testid": testID || id || 'Copy', className: classes, children: children }));
108
130
  };
109
131
  Copy.displayName = 'Copy';
@@ -111,33 +133,33 @@ Copy.displayName = 'Copy';
111
133
  var Hr = function () { return (jsxRuntime.jsx("hr", { className: cx('border-0 border-b border-dark-body-text dark:border-dark-body-text') })); };
112
134
  Hr.displayName = 'Hr';
113
135
 
114
- var HeadingTag;
115
- (function (HeadingTag) {
116
- HeadingTag["H1"] = "h1";
117
- HeadingTag["H2"] = "h2";
118
- HeadingTag["H3"] = "h3";
119
- HeadingTag["H4"] = "h4";
120
- HeadingTag["H5"] = "h5";
121
- })(HeadingTag || (HeadingTag = {}));
122
- var HeadingAlign;
123
- (function (HeadingAlign) {
124
- HeadingAlign["LEFT"] = "left";
125
- HeadingAlign["CENTER"] = "center";
126
- HeadingAlign["RIGHT"] = "right";
127
- HeadingAlign["JUSTIFY"] = "justify";
128
- HeadingAlign["NOWRAP"] = "nowrap";
129
- })(HeadingAlign || (HeadingAlign = {}));
130
- var HeadingTransform;
131
- (function (HeadingTransform) {
132
- HeadingTransform["LOWERCASE"] = "lowercase";
133
- HeadingTransform["UPPERCASE"] = "uppercase";
134
- HeadingTransform["CAPITALIZE"] = "capitalize";
135
- HeadingTransform["NORMAL_CASE"] = "normal-case";
136
- })(HeadingTransform || (HeadingTransform = {}));
136
+ exports.HEADING_TAGS = void 0;
137
+ (function (HEADING_TAGS) {
138
+ HEADING_TAGS["H1"] = "h1";
139
+ HEADING_TAGS["H2"] = "h2";
140
+ HEADING_TAGS["H3"] = "h3";
141
+ HEADING_TAGS["H4"] = "h4";
142
+ HEADING_TAGS["H5"] = "h5";
143
+ })(exports.HEADING_TAGS || (exports.HEADING_TAGS = {}));
144
+ exports.HEADING_ALIGN = void 0;
145
+ (function (HEADING_ALIGN) {
146
+ HEADING_ALIGN["LEFT"] = "left";
147
+ HEADING_ALIGN["CENTER"] = "center";
148
+ HEADING_ALIGN["RIGHT"] = "right";
149
+ HEADING_ALIGN["JUSTIFY"] = "justify";
150
+ HEADING_ALIGN["NOWRAP"] = "nowrap";
151
+ })(exports.HEADING_ALIGN || (exports.HEADING_ALIGN = {}));
152
+ exports.HEADING_TRANSFORM = void 0;
153
+ (function (HEADING_TRANSFORM) {
154
+ HEADING_TRANSFORM["LOWERCASE"] = "lowercase";
155
+ HEADING_TRANSFORM["UPPERCASE"] = "uppercase";
156
+ HEADING_TRANSFORM["CAPITALIZE"] = "capitalize";
157
+ HEADING_TRANSFORM["NORMAL_CASE"] = "normal-case";
158
+ })(exports.HEADING_TRANSFORM || (exports.HEADING_TRANSFORM = {}));
137
159
 
138
160
  var Heading = function (_a) {
139
161
  var _b;
140
- var children = _a.children, _c = _a.tag, tag = _c === void 0 ? HeadingTag.H1 : _c, transform = _a.transform, align = _a.align, id = _a.id, testID = _a.testID, flush = _a.flush, className = _a.className;
162
+ var children = _a.children, _c = _a.tag, tag = _c === void 0 ? exports.HEADING_TAGS.H1 : _c, transform = _a.transform, align = _a.align, id = _a.id, testID = _a.testID, flush = _a.flush, className = _a.className;
141
163
  var fontSize = function () {
142
164
  switch (tag) {
143
165
  case 'h1':
@@ -156,24 +178,11 @@ var Heading = function (_a) {
156
178
  };
157
179
  var size = fontSize();
158
180
  var Tag = tag;
159
- var classes = cx("font-heading font-bold ".concat(size), (_b = {}, _b["text-".concat(align)] = align, _b), { 'm-0': flush }, transform, className);
181
+ var classes = cx("font-heading font-bold mb-2 ".concat(size), (_b = {}, _b["text-".concat(align)] = align, _b), { 'm-0': flush }, transform, className);
160
182
  return (jsxRuntime.jsx(Tag, { "data-testid": testID || id || 'Heading', className: classes, children: children }));
161
183
  };
162
184
  Heading.displayName = 'Heading';
163
185
 
164
- /**
165
- * Icon component
166
- * List of supported icons can be found at https://icon-sets.iconify.design.
167
- */
168
- var Icon = function (_a) {
169
- var name = _a.name, _b = _a.size, size = _b === void 0 ? 24 : _b, color = _a.color, id = _a.id, className = _a.className, testID = _a.testID;
170
- if (color) {
171
- return (jsxRuntime.jsx(react.Icon, { "data-testid": testID || id || 'Icon', icon: name, width: size, height: size, color: color, className: className, fill: color || 'currentColor' }));
172
- }
173
- return (jsxRuntime.jsx(react.Icon, { "data-testid": testID || id || 'Icon', icon: name, width: size, height: size }));
174
- };
175
- Icon.displayName = 'Icon';
176
-
177
186
  var Image = function (_a) {
178
187
  var src = _a.src, alt = _a.alt, title = _a.title, caption = _a.caption, _b = _a.figure, figure = _b === void 0 ? false : _b, onLoad = _a.onLoad, id = _a.id, className = _a.className, testID = _a.testID;
179
188
  var figureClasses = cx('m-0');
@@ -211,14 +220,14 @@ var Link = function (_a) {
211
220
  };
212
221
  Link.displayName = 'Link';
213
222
 
214
- var Variants;
223
+ exports.Variants = void 0;
215
224
  (function (Variants) {
216
225
  Variants["UNSTYLED"] = "unstyled";
217
226
  Variants["INLINE"] = "inline";
218
227
  Variants["SMALL"] = "small";
219
228
  Variants["LARGE"] = "large";
220
- })(Variants || (Variants = {}));
221
- var ListTag;
229
+ })(exports.Variants || (exports.Variants = {}));
230
+ exports.ListTag = void 0;
222
231
  (function (ListTag) {
223
232
  ListTag["OL"] = "ol";
224
233
  ListTag["UL"] = "ul";
@@ -227,10 +236,10 @@ var ListTag;
227
236
  ListTag["DT"] = "dt";
228
237
  ListTag["DD"] = "dd";
229
238
  ListTag["LI"] = "li";
230
- })(ListTag || (ListTag = {}));
239
+ })(exports.ListTag || (exports.ListTag = {}));
231
240
 
232
241
  var List = function (_a) {
233
- var variants = _a.variants, children = _a.children, _b = _a.as, as = _b === void 0 ? ListTag.UL : _b, id = _a.id, testID = _a.testID, className = _a.className;
242
+ var variants = _a.variants, children = _a.children, _b = _a.as, as = _b === void 0 ? exports.ListTag.UL : _b, id = _a.id, testID = _a.testID, className = _a.className;
234
243
  var modifiers = variants ? variants.map(function (el) { return "list--".concat(el); }) : null;
235
244
  var Tag = as;
236
245
  return (jsxRuntime.jsx(Tag, { "data-testid": testID || id || 'List', className: cx(modifiers, className), children: children }));
@@ -244,56 +253,49 @@ var ListItem = function (_a) {
244
253
  ListItem.displayName = 'ListItem';
245
254
 
246
255
  var Notice = function (_a) {
247
- var _b = _a.foo, foo = _b === void 0 ? 'bar' : _b, id = _a.id, testID = _a.testID;
248
- return (jsxRuntime.jsx("div", { "data-testid": testID || id || 'Notice', className: "foo-bar", children: foo }));
256
+ var _b = _a.custom, custom = _b === void 0 ? 'bar' : _b, id = _a.id, testID = _a.testID;
257
+ return (jsxRuntime.jsx("div", { "data-testid": testID || id || 'Notice', className: "foo-bar", children: custom }));
249
258
  };
250
259
  Notice.displayName = 'Notice';
251
260
 
252
- var Loader = function (_a) {
253
- var color = _a.color, _b = _a.size, size = _b === void 0 ? 8 : _b, _c = _a.thickness, thickness = _c === void 0 ? 4 : _c;
254
- var sizeClass = size ? "w-".concat(size, " h-").concat(size) : 'w-8 h-8';
255
- return (jsxRuntime.jsx("div", { "data-testid": "Loader", children: jsxRuntime.jsxs("div", { role: "status", children: [jsxRuntime.jsxs("svg", { className: "animate-spin -ml-1 mr-3 ".concat(sizeClass, " text-white"), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [jsxRuntime.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: color || 'currentColor', strokeWidth: thickness }), jsxRuntime.jsx("path", { className: "opacity-75", fill: color || 'currentColor', d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }), jsxRuntime.jsx("span", { className: "sr-only", children: "Loading..." })] }) }));
256
- };
257
- Loader.displayName = 'Loader';
258
-
259
261
  var Container = function (_a) {
260
- var children = _a.children, className = _a.className, spacing = _a.spacing, padded = _a.padded;
261
- var classes = cx('container', 'mx-auto', 'my-0', { 'px-4': padded }, { 'py-40': spacing === 'feature' }, { 'py-24': spacing === 'component' }, { 'py-16': spacing === 'module' }, { 'py-10': spacing === 'element' }, { 'py-4': spacing === 'atom' }, { 'py-0': spacing === 'none' }, className);
262
+ var children = _a.children, className = _a.className, spacing = _a.spacing, padded = _a.padded, isNarrow = _a.isNarrow, isCentered = _a.isCentered;
263
+ var classes = cx('container', 'mx-auto', 'my-0', { 'px-4': padded }, { 'py-40': spacing === 'feature' }, { 'py-24': spacing === 'component' }, { 'py-16': spacing === 'module' }, { 'py-10': spacing === 'element' }, { 'py-4': spacing === 'atom' }, { 'py-0': spacing === 'none' }, { 'max-w-3xl': isNarrow }, { 'flex items-center justify-center flex-col': isCentered }, className);
262
264
  return (jsxRuntime.jsx("div", { "data-testid": "Container", className: classes, children: children }));
263
265
  };
264
266
  Container.displayName = 'Container';
265
267
 
266
- var SPACING;
267
- (function (SPACING) {
268
- SPACING["NONE"] = "none";
269
- SPACING["ATOM"] = "atom";
270
- SPACING["DEFAULT"] = "default";
271
- SPACING["ELEMENT"] = "element";
272
- SPACING["COMPONENT"] = "component";
273
- SPACING["MODULE"] = "module";
274
- SPACING["FEATURE"] = "feature";
275
- })(SPACING || (SPACING = {}));
268
+ exports.CPL_SPACING = void 0;
269
+ (function (CPL_SPACING) {
270
+ CPL_SPACING["NONE"] = "none";
271
+ CPL_SPACING["ATOM"] = "atom";
272
+ CPL_SPACING["DEFAULT"] = "default";
273
+ CPL_SPACING["ELEMENT"] = "element";
274
+ CPL_SPACING["COMPONENT"] = "component";
275
+ CPL_SPACING["MODULE"] = "module";
276
+ CPL_SPACING["FEATURE"] = "feature";
277
+ })(exports.CPL_SPACING || (exports.CPL_SPACING = {}));
276
278
 
277
279
  var ContentPageLayout = function (_a) {
278
- var _b = _a.spacing, spacing = _b === void 0 ? SPACING.DEFAULT : _b, children = _a.children, narrow = _a.narrow, flush = _a.flush, className = _a.className;
280
+ var _b = _a.spacing, spacing = _b === void 0 ? exports.CPL_SPACING.DEFAULT : _b, children = _a.children, narrow = _a.narrow, flush = _a.flush, className = _a.className;
279
281
  var classes = cx('flex', 'flex-col', 'flex-1', 'relative', { 'py-40': spacing === 'feature' }, { 'py-24': spacing === 'component' }, { 'py-16': spacing === 'module' }, { 'py-10': spacing === 'element' }, { 'py-8': spacing === 'default' }, { 'py-4': spacing === 'atom' }, { 'py-0': spacing === 'none' }, { 'max-w-5xl': narrow }, { 'p-0': flush }, className);
280
282
  return (jsxRuntime.jsx("div", { "data-testid": "ContentPageLayout", className: classes, children: children }));
281
283
  };
282
284
  ContentPageLayout.displayName = 'ContentPageLayout';
283
285
 
284
- var SIZE;
285
- (function (SIZE) {
286
- SIZE["NONE"] = "none";
287
- SIZE["ATOM"] = "atom";
288
- SIZE["DEFAULT"] = "default";
289
- SIZE["ELEMENT"] = "element";
290
- SIZE["COMPONENT"] = "component";
291
- SIZE["MODULE"] = "module";
292
- SIZE["FEATURE"] = "feature";
293
- })(SIZE || (SIZE = {}));
286
+ exports.CRL_SIZE = void 0;
287
+ (function (CRL_SIZE) {
288
+ CRL_SIZE["NONE"] = "none";
289
+ CRL_SIZE["ATOM"] = "atom";
290
+ CRL_SIZE["DEFAULT"] = "default";
291
+ CRL_SIZE["ELEMENT"] = "element";
292
+ CRL_SIZE["COMPONENT"] = "component";
293
+ CRL_SIZE["MODULE"] = "module";
294
+ CRL_SIZE["FEATURE"] = "feature";
295
+ })(exports.CRL_SIZE || (exports.CRL_SIZE = {}));
294
296
 
295
297
  var ContentRowsLayout = function (_a) {
296
- var className = _a.className, children = _a.children, _b = _a.size, size = _b === void 0 ? SIZE.DEFAULT : _b;
298
+ var className = _a.className, children = _a.children, _b = _a.size, size = _b === void 0 ? exports.CRL_SIZE.DEFAULT : _b;
297
299
  var classes = cx('grid', 'auto-rows-min', 'grid-cols-1', 'gap-x-4', { 'gap-y-0 mb-0': size === 'none' }, { 'gap-y-2 mb-2': size === 'atom' }, { 'gap-y-4 mb-4': size === 'default' }, { 'gap-y-8 mb-8': size === 'element' }, { 'gap-y-16 mb-16': size === 'module' }, { 'gap-y-24 mb-24': size === 'component' }, { 'gap-y-40 mb-40': size === 'feature' }, className);
298
300
  return (jsxRuntime.jsx("div", { "data-testid": "ContentRowsLayout", className: classes, children: children }));
299
301
  };
@@ -345,9 +347,11 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
345
347
  };
346
348
 
347
349
  var Form = function (_a) {
348
- var children = _a.children, className = _a.className, submit = _a.submit, _b = _a.onSubmit, onSubmit = _b === void 0 ? function () { } : _b, onChange = _a.onChange, hideSubmit = _a.hideSubmit, ariaSubmitLabel = _a.ariaSubmitLabel, submitID = _a.submitID, _c = _a.submitVariant, submitVariant = _c === void 0 ? BTN_VARIANTS.PRIMARY : _c, _d = _a.initialValues, initialValues = _d === void 0 ? {} : _d;
350
+ var children = _a.children, className = _a.className, submit = _a.submit, _b = _a.onSubmit, onSubmit = _b === void 0 ? function () { } : _b, onChange = _a.onChange, hideSubmit = _a.hideSubmit, ariaSubmitLabel = _a.ariaSubmitLabel, submitID = _a.submitID, _c = _a.submitVariant, submitVariant = _c === void 0 ? exports.BTN_VARIANTS.PRIMARY : _c, _d = _a.initialValues, initialValues = _d === void 0 ? {} : _d, _e = _a.isBoxed, isBoxed = _e === void 0 ? false : _e;
349
351
  var methods = reactHookForm.useForm({
350
352
  defaultValues: initialValues,
353
+ mode: 'onBlur',
354
+ reValidateMode: 'onChange',
351
355
  });
352
356
  React.useEffect(function () {
353
357
  if (onChange && typeof onChange === 'function') {
@@ -356,28 +360,29 @@ var Form = function (_a) {
356
360
  }
357
361
  }, []);
358
362
  var submitClasses = cx({ 'sr-only': hideSubmit });
359
- return (jsxRuntime.jsx(reactHookForm.FormProvider, __assign({}, methods, { children: jsxRuntime.jsx("div", { "data-testid": "Form", className: "w-full max-w-s @form @containers", children: jsxRuntime.jsxs("form", { onSubmit: methods.handleSubmit(onSubmit), className: cx('form px-8 pt-6 pb-8 mb-4 w-2xs', className), children: [children, submit && (jsxRuntime.jsx("div", { className: "flex items-center justify-end py-2", children: jsxRuntime.jsx(Button, { id: submitID || submit, className: submitClasses, ariaLabel: ariaSubmitLabel || submit || 'Submit', type: BTN_TYPES.SUBMIT, variant: submitVariant, children: submit }) }))] }) }) })));
363
+ return (jsxRuntime.jsx(reactHookForm.FormProvider, __assign({}, methods, { children: jsxRuntime.jsx("div", { "data-testid": "Form", className: cx('w-full max-w-s @containers @form'), children: jsxRuntime.jsxs("form", { onSubmit: methods.handleSubmit(onSubmit), className: cx('mb-4 w-2xs relative', { 'form px-8 pt-6 pb-8 ': isBoxed }, { 'opacity-50': methods.formState.isSubmitting }, className), children: [children, submit && (jsxRuntime.jsx("div", { className: "flex items-center justify-end py-2", children: jsxRuntime.jsx(Button, { id: submitID || submit, className: submitClasses, ariaLabel: ariaSubmitLabel || submit || 'Submit', type: exports.BTN_TYPES.SUBMIT, outline: true, isLoading: methods.formState.isSubmitting, disabled: methods.formState.isSubmitting || !methods.formState.isValid, variant: submitVariant, children: submit }) }))] }) }) })));
360
364
  };
361
365
  Form.displayName = 'Form';
362
366
 
363
- var FieldTypes;
364
- (function (FieldTypes) {
365
- FieldTypes["TEXT"] = "text";
366
- FieldTypes["TEXTAREA"] = "textarea";
367
- FieldTypes["SELECT"] = "select";
368
- FieldTypes["CHECKBOX"] = "checkbox";
369
- FieldTypes["RADIO"] = "radio";
370
- FieldTypes["SWITCH"] = "switch";
371
- FieldTypes["DATE"] = "date";
372
- FieldTypes["TIME"] = "time";
373
- FieldTypes["DATETIME"] = "datetime";
374
- FieldTypes["FILE"] = "file";
375
- FieldTypes["PASSWORD"] = "password";
376
- FieldTypes["EMAIL"] = "email";
377
- FieldTypes["NUMBER"] = "number";
378
- FieldTypes["TEL"] = "tel";
379
- FieldTypes["URL"] = "url";
380
- FieldTypes["SEARCH"] = "search";
367
+ exports.FIELD_TYPES = void 0;
368
+ (function (FIELD_TYPES) {
369
+ FIELD_TYPES["TEXT"] = "text";
370
+ FIELD_TYPES["TEXTAREA"] = "textarea";
371
+ FIELD_TYPES["SELECT"] = "select";
372
+ FIELD_TYPES["CHECKBOX"] = "checkbox";
373
+ FIELD_TYPES["RADIO"] = "radio";
374
+ FIELD_TYPES["SWITCH"] = "switch";
375
+ FIELD_TYPES["DATE"] = "date";
376
+ FIELD_TYPES["TIME"] = "time";
377
+ FIELD_TYPES["DATETIME"] = "datetime";
378
+ FIELD_TYPES["FILE"] = "file";
379
+ FIELD_TYPES["PASSWORD"] = "password";
380
+ FIELD_TYPES["EMAIL"] = "email";
381
+ FIELD_TYPES["NUMBER"] = "number";
382
+ FIELD_TYPES["TEL"] = "tel";
383
+ FIELD_TYPES["URL"] = "url";
384
+ FIELD_TYPES["SEARCH"] = "search";
385
+ FIELD_TYPES["HIDDEN"] = "hidden";
381
386
  // MONTH = 'month',
382
387
  // WEEK = 'week',
383
388
  // HIDDEN = 'hidden',
@@ -385,7 +390,7 @@ var FieldTypes;
385
390
  // RANGE = 'range',
386
391
  // CURRENCY = 'currency',
387
392
  // PERCENT = 'percent',
388
- })(FieldTypes || (FieldTypes = {}));
393
+ })(exports.FIELD_TYPES || (exports.FIELD_TYPES = {}));
389
394
 
390
395
  var InputType;
391
396
  (function (InputType) {
@@ -403,6 +408,7 @@ var InputType;
403
408
  InputType["WEEK"] = "week";
404
409
  InputType["FILE"] = "file";
405
410
  InputType["TEXTAREA"] = "textarea";
411
+ InputType["HIDDEN"] = "hidden";
406
412
  })(InputType || (InputType = {}));
407
413
 
408
414
  var TextInput = React.forwardRef(function MyInput(_a, ref) {
@@ -425,13 +431,13 @@ TextInput.displayName = 'TextInput';
425
431
 
426
432
  var Checkbox = React.forwardRef(function MyInput(_a, ref) {
427
433
  var id = _a.id, label = _a.label, required = _a.required, className = _a.className, disabled = _a.disabled, rest = __rest(_a, ["id", "label", "required", "className", "disabled"]);
428
- return (jsxRuntime.jsxs("div", { "data-testid": "Checkbox", className: cx('flex items-center', className), children: [jsxRuntime.jsxs("div", { className: "relative bg-none w-5 h-5 flex justify-center items-center", "aria-label": label, children: [jsxRuntime.jsx("input", __assign({ id: id, ref: ref, disabled: disabled, type: "checkbox", className: "form-item checkbox m-0 appearance-none peer h-full w-full shrink-0 focus:ring-2", required: required }, rest)), jsxRuntime.jsx("span", { className: "absolute transition-opacity opacity-0 pointer-events-none peer-checked:opacity-100 w-full h-full flex items-center justify-center top-0 left-0", children: jsxRuntime.jsx(Icon, { name: "mdi:check-bold", size: 12 }) })] }), label && (jsxRuntime.jsx("label", { className: "label pl-2 leading-none", htmlFor: id, children: label }))] }));
434
+ return (jsxRuntime.jsxs("div", { "data-testid": "Checkbox", className: cx('flex items-center', className), children: [jsxRuntime.jsxs("div", { className: "relative bg-none w-5 h-5 flex justify-center items-center", children: [jsxRuntime.jsx("input", __assign({ id: id, ref: ref, disabled: disabled, type: "checkbox", className: "form-item checkbox m-0 appearance-none peer h-full w-full shrink-0 focus:ring-2", required: required }, rest)), jsxRuntime.jsx("span", { className: "absolute transition-opacity opacity-0 pointer-events-none peer-checked:opacity-100 w-full h-full flex items-center justify-center top-0 left-0", children: jsxRuntime.jsx(Icon, { name: "mdi:check-bold", size: 12 }) })] }), label && (jsxRuntime.jsx("label", { className: "label pl-2 leading-none text-sm", htmlFor: id, children: label }))] }));
429
435
  });
430
436
  Checkbox.displayName = 'Checkbox';
431
437
 
432
438
  var Label = function (_a) {
433
- var label = _a.label, id = _a.id;
434
- return (jsxRuntime.jsx("label", { "data-testid": "Label", className: "label mb-1", htmlFor: id, children: label }));
439
+ var children = _a.children, id = _a.id, transform = _a.transform, className = _a.className;
440
+ return (jsxRuntime.jsx("label", { "data-testid": "Label", className: cx('label mb-2', transform, className), htmlFor: id, children: children }));
435
441
  };
436
442
  Label.displayName = 'Label';
437
443
 
@@ -440,13 +446,17 @@ var FormSelect = React.forwardRef(function MyInput(_a, ref) {
440
446
  if (!options) {
441
447
  throw new Error('FormSelect requires options prop');
442
448
  }
443
- return (jsxRuntime.jsx("div", { id: id, className: cx('pb-2', className), children: jsxRuntime.jsxs("div", { className: "relative", children: [jsxRuntime.jsx("select", __assign({ ref: ref, id: id, name: name, disabled: disabled, required: required, className: "form-item text-input" }, rest, { children: options.map(function (option) { return (jsxRuntime.jsx("option", { value: option.value, disabled: option.disabled, children: option.label }, option.value)); }) })), jsxRuntime.jsx("div", { className: "form-icon absolute inset-0 z-10 pointer-events-none h-full w-12 items-center justify-center top-0 right-0 left-auto flex", children: jsxRuntime.jsx(Icon, { name: "mdi:chevron-down", size: 24, className: "pointer-events-none" }) })] }) }));
449
+ return (jsxRuntime.jsx("div", { id: id, className: cx('pb-2 min-w-20', className), children: jsxRuntime.jsxs("div", { className: "relative", children: [jsxRuntime.jsx("select", __assign({ ref: ref, id: id, name: name, disabled: disabled, required: required, className: "form-item text-input" }, rest, { children: options.map(function (option) {
450
+ var _a, _b;
451
+ return (jsxRuntime.jsx("option", { value: (_a = option === null || option === void 0 ? void 0 : option.value) === null || _a === void 0 ? void 0 : _a.toString(), disabled: option.disabled, children: option.label }, (_b = option === null || option === void 0 ? void 0 : option.value) === null || _b === void 0 ? void 0 : _b.toString()));
452
+ }) })), jsxRuntime.jsx("div", { className: "form-icon absolute inset-0 z-10 pointer-events-none h-full w-12 items-center justify-center top-0 right-0 left-auto flex", children: jsxRuntime.jsx(Icon, { name: "mdi:chevron-down", size: 24, className: "pointer-events-none" }) })] }) }));
444
453
  });
445
454
  FormSelect.displayName = 'FormSelect';
446
455
 
447
456
  var Radio = React.forwardRef(function MyInput(_a, ref) {
448
- var id = _a.id, name = _a.name, label = _a.label, required = _a.required, className = _a.className, options = _a.options, rest = __rest(_a, ["id", "name", "label", "required", "className", "options"]);
449
- return (jsxRuntime.jsx("div", { "data-testid": "Radio", className: cx('flex items-center', className), children: jsxRuntime.jsx("div", { className: cx('flex flex-col gap-2', className), "aria-label": label, id: id, children: options === null || options === void 0 ? void 0 : options.map(function (option) { return (jsxRuntime.jsxs("div", { className: "flex items-center relative", children: [jsxRuntime.jsxs("div", { className: "relative flex items-center", children: [jsxRuntime.jsx("input", __assign({ id: option.value, ref: ref, name: name, type: "radio", value: option.value, required: required, className: "form-item radio peer appearance-none m-0 p-0 w-4 h-4" }, rest)), jsxRuntime.jsx("div", { className: "form-icon opacity-0 peer-checked:opacity-100 absolute w-4 h-4 flex items-center justify-center top-0 left-0 pointer-events-none", children: jsxRuntime.jsx(Icon, { name: "mdi:circle", size: 12 }) })] }), jsxRuntime.jsx("label", { className: "label pl-2 leading-none", htmlFor: option.value, children: option.label })] }, option.value)); }) }) }));
457
+ var name = _a.name, required = _a.required, className = _a.className, options = _a.options, rest = __rest(_a, ["name", "required", "className", "options"]);
458
+ console.log('Radio', __assign({ name: name, required: required, className: className, options: options }, rest));
459
+ return (jsxRuntime.jsx("div", { "data-testid": "Radio", className: cx('flex items-center', className), children: jsxRuntime.jsx("div", { className: cx('flex flex-col gap-2', className), children: options === null || options === void 0 ? void 0 : options.map(function (option) { return (jsxRuntime.jsxs("div", { className: "flex items-center relative", children: [jsxRuntime.jsxs("div", { className: "relative flex items-center", children: [jsxRuntime.jsx("input", __assign({ ref: ref, name: name, type: "radio", value: option.value, required: required, className: "form-item radio peer appearance-none m-0 p-0 w-4 h-4" }, rest, { id: option.value })), jsxRuntime.jsx("div", { className: "form-icon opacity-0 peer-checked:opacity-100 absolute w-4 h-4 flex items-center justify-center top-0 left-0 pointer-events-none", children: jsxRuntime.jsx(Icon, { name: "mdi:circle", size: 12 }) })] }), jsxRuntime.jsx("label", { className: "label pl-2 leading-none", htmlFor: option.value, children: option.label })] }, option.value)); }) }) }));
450
460
  });
451
461
  Radio.displayName = 'Radio';
452
462
 
@@ -463,45 +473,48 @@ var FileUpload = React.forwardRef(function MyInput(_a, ref) {
463
473
  FileUpload.displayName = 'FileUpload';
464
474
 
465
475
  var FormField = function (_a) {
466
- var name = _a.name, type = _a.type, label = _a.label, required = _a.required, className = _a.className, icon = _a.icon, options = _a.options, disabled = _a.disabled, description = _a.description, showPasswordLabel = _a.showPasswordLabel, hidePasswordLabel = _a.hidePasswordLabel;
467
- var _b = React.useState(false), passwordShowStatus = _b[0], setPasswordShow = _b[1];
468
- var _c = reactHookForm.useFormContext(), control = _c.control, register = _c.register;
476
+ var _b;
477
+ var name = _a.name, type = _a.type, label = _a.label, required = _a.required, className = _a.className, icon = _a.icon, options = _a.options, disabled = _a.disabled, description = _a.description, showPasswordLabel = _a.showPasswordLabel, hidePasswordLabel = _a.hidePasswordLabel, _c = _a.validations, validations = _c === void 0 ? {} : _c;
478
+ var _d = React.useState(false), passwordShowStatus = _d[0], setPasswordShow = _d[1];
479
+ var _e = reactHookForm.useFormContext(), control = _e.control, register = _e.register, errors = _e.formState.errors;
469
480
  var renderType = function (type) {
470
481
  switch (type) {
471
- case FieldTypes.TEXT:
472
- return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.TEXT, required: required, icon: icon, className: className, disabled: disabled }, register(name))));
473
- case FieldTypes.PASSWORD: {
482
+ case exports.FIELD_TYPES.HIDDEN:
483
+ return jsxRuntime.jsx("input", __assign({ type: InputType.HIDDEN, disabled: disabled }, register(name)));
484
+ case exports.FIELD_TYPES.TEXT:
485
+ return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.TEXT, required: required, icon: icon, className: className, disabled: disabled }, register(name, validations))));
486
+ case exports.FIELD_TYPES.PASSWORD: {
474
487
  var toggleType = passwordShowStatus ? InputType.TEXT : InputType.PASSWORD;
475
488
  var btnClass = 'appearance-none border-none bg-transparent flex items-center';
476
- return (jsxRuntime.jsxs("div", { className: "relative", children: [jsxRuntime.jsx("span", { className: "absolute right-0 top-0 flex items-center justify-center h-full z-10 pr-2", onClick: function () { return setPasswordShow(function (pS) { return !pS; }); }, role: "button", tabIndex: 0, children: passwordShowStatus ? (jsxRuntime.jsx("button", { type: "button", "aria-label": hidePasswordLabel, className: cx(btnClass, 'form-icon'), children: jsxRuntime.jsx(Icon, { name: "mdi:eye-off", size: 24 }) })) : (jsxRuntime.jsx("button", { type: "button", "aria-label": showPasswordLabel, className: cx(btnClass, 'form-icon'), children: jsxRuntime.jsx(Icon, { name: "mdi:eye", size: 24 }) })) }), jsxRuntime.jsx(TextInput, __assign({ type: toggleType, required: required, icon: icon, className: className, disabled: disabled }, register(name)))] }));
489
+ return (jsxRuntime.jsxs("div", { className: "relative", children: [jsxRuntime.jsx("span", { className: "absolute right-0 top-0 flex items-center justify-center h-full z-10 pr-2", onClick: function () { return setPasswordShow(function (pS) { return !pS; }); }, role: "button", tabIndex: 0, children: passwordShowStatus ? (jsxRuntime.jsx("button", { type: "button", "aria-label": hidePasswordLabel, className: cx(btnClass, 'form-icon'), children: jsxRuntime.jsx(Icon, { name: "mdi:eye-off", size: 24 }) })) : (jsxRuntime.jsx("button", { type: "button", "aria-label": showPasswordLabel, className: cx(btnClass, 'form-icon'), children: jsxRuntime.jsx(Icon, { name: "mdi:eye", size: 24 }) })) }), jsxRuntime.jsx(TextInput, __assign({ type: toggleType, required: required, icon: icon, className: className, disabled: disabled }, register(name, validations)))] }));
477
490
  }
478
- case FieldTypes.TEXTAREA:
479
- return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.TEXTAREA, required: required, icon: icon, className: className, disabled: disabled }, register(name))));
480
- case FieldTypes.EMAIL:
481
- return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.EMAIL, required: required, icon: icon, className: className, disabled: disabled }, register(name))));
482
- case FieldTypes.DATE:
483
- return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.DATE, required: required, icon: icon, className: className, disabled: disabled }, register(name))));
484
- case FieldTypes.DATETIME:
485
- return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.DATETIME, required: required, icon: icon, className: className, disabled: disabled }, register(name))));
486
- case FieldTypes.NUMBER:
487
- return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.NUMBER, required: required, icon: icon, className: className, disabled: disabled }, register(name))));
488
- case FieldTypes.CHECKBOX:
489
- return (jsxRuntime.jsx(Checkbox, __assign({ required: required, id: name, className: className, label: label, disabled: disabled }, register(name))));
490
- case FieldTypes.RADIO:
491
- return (jsxRuntime.jsx(Radio, __assign({ required: required, id: name, className: className, label: label, options: options, disabled: disabled }, register(name))));
492
- case FieldTypes.SWITCH:
491
+ case exports.FIELD_TYPES.TEXTAREA:
492
+ return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.TEXTAREA, required: required, icon: icon, className: className, disabled: disabled }, register(name, validations))));
493
+ case exports.FIELD_TYPES.EMAIL:
494
+ return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.EMAIL, required: required, icon: icon, className: className, disabled: disabled }, register(name, validations))));
495
+ case exports.FIELD_TYPES.DATE:
496
+ return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.DATE, required: required, icon: icon, className: className, disabled: disabled }, register(name, validations))));
497
+ case exports.FIELD_TYPES.DATETIME:
498
+ return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.DATETIME, required: required, icon: icon, className: className, disabled: disabled }, register(name, validations))));
499
+ case exports.FIELD_TYPES.NUMBER:
500
+ return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.NUMBER, required: required, icon: icon, className: className, disabled: disabled }, register(name, validations))));
501
+ case exports.FIELD_TYPES.CHECKBOX:
502
+ return (jsxRuntime.jsx(Checkbox, __assign({ required: required, id: name, className: className, label: label, disabled: disabled }, register(name, validations))));
503
+ case exports.FIELD_TYPES.RADIO:
504
+ return (jsxRuntime.jsx(Radio, __assign({ required: required, id: name, className: className, label: label, options: options, disabled: disabled }, register(name, validations))));
505
+ case exports.FIELD_TYPES.SWITCH:
493
506
  return jsxRuntime.jsx(Switch, __assign({ id: name, required: required, className: className, disabled: disabled }, register(name)));
494
- case FieldTypes.SELECT:
495
- return (jsxRuntime.jsx(FormSelect, __assign({ required: required, id: name, className: className, disabled: disabled, label: label, options: options }, register(name))));
496
- case FieldTypes.FILE:
497
- return (jsxRuntime.jsx(FileUpload, __assign({ required: required, id: name, className: className, disabled: disabled }, register(name))));
507
+ case exports.FIELD_TYPES.SELECT:
508
+ return (jsxRuntime.jsx(FormSelect, __assign({ required: required, id: name, className: className, disabled: disabled, label: label, options: options }, register(name, validations))));
509
+ case exports.FIELD_TYPES.FILE:
510
+ return (jsxRuntime.jsx(FileUpload, __assign({ required: required, id: name, className: className, disabled: disabled }, register(name, validations))));
498
511
  default:
499
- return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.TEXT, required: required, disabled: disabled, icon: icon, className: className }, register(name))));
512
+ return (jsxRuntime.jsx(TextInput, __assign({ type: InputType.TEXT, required: required, disabled: disabled, icon: icon, className: className }, register(name, validations))));
500
513
  }
501
514
  };
502
515
  // TODO: HELPER CLASSES : data-[invalid=true]:bg-error data-[valid]:bg-success
503
- var showLabel = label && type !== FieldTypes.CHECKBOX;
504
- return (jsxRuntime.jsx("div", { className: "relative", children: jsxRuntime.jsxs("div", { "data-testid": "FormField", className: "mb-4", children: [showLabel && (jsxRuntime.jsx("div", { className: "flex items-baseline justify-between", children: jsxRuntime.jsx(Label, { label: label, id: name }) })), jsxRuntime.jsx(reactHookForm.Controller, { name: name, control: control, rules: { required: required }, render: function () { return renderType(type); } }), description && jsxRuntime.jsx(Copy, { size: SIZE$1.SMALL, children: description })] }) }));
516
+ var showLabel = label && type !== exports.FIELD_TYPES.CHECKBOX;
517
+ return (jsxRuntime.jsx("div", { className: "relative", children: jsxRuntime.jsxs("div", { "data-testid": "FormField", className: "mb-4", children: [showLabel && (jsxRuntime.jsx("div", { className: "flex items-baseline justify-between", children: jsxRuntime.jsx(Label, { label: label, id: name }) })), jsxRuntime.jsx("div", { className: "mb-1", children: jsxRuntime.jsx(reactHookForm.Controller, { name: name, control: control, render: function () { return renderType(type); } }) }), description && (jsxRuntime.jsx("div", { className: "formfield-description", children: jsxRuntime.jsx(Copy, { size: exports.COPY_SIZE.SMALL, children: description }) })), errors[name] && (jsxRuntime.jsx("div", { className: "formfield-error text-error italic", children: jsxRuntime.jsx(Copy, { size: exports.COPY_SIZE.SMALL, children: (_b = errors === null || errors === void 0 ? void 0 : errors[name]) === null || _b === void 0 ? void 0 : _b.message }) }))] }) }));
505
518
  };
506
519
  FormField.displayName = 'FormField';
507
520
 
@@ -1,6 +1,6 @@
1
1
  import { Props } from './Button.types';
2
2
  declare const Button: {
3
- ({ variant, size, type, wide, rounded, raised, uppercase, children, id, disabled, ariaLabel, onClick, icon, external, iconFirst, outline, testID, className, }: Props): React.ReactElement;
3
+ ({ variant, size, type, wide, rounded, raised, uppercase, children, id, disabled, ariaLabel, onClick, icon, external, iconFirst, outline, testID, className, isLoading, }: Props): React.ReactElement;
4
4
  displayName: string;
5
5
  };
6
6
  export default Button;
@@ -6,3 +6,4 @@ export declare const Default: Story;
6
6
  export default meta;
7
7
  export declare const WithIcon: Story;
8
8
  export declare const IconOnly: Story;
9
+ export declare const LoadingButton: Story;
@@ -33,4 +33,5 @@ export interface Props {
33
33
  id?: string;
34
34
  testID?: string;
35
35
  className?: string;
36
+ isLoading?: boolean;
36
37
  }
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Props } from './Card.types';
3
+ declare const Card: {
4
+ ({ variant, className, data, ...rest }: Props): React.ReactElement;
5
+ displayName: string;
6
+ };
7
+ export default Card;
8
+ export type { Props };
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import Card from '.';
3
+ declare const meta: Meta<typeof Card>;
4
+ type Story = StoryObj<typeof Card>;
5
+ export declare const Default: Story;
6
+ export default meta;
@@ -0,0 +1 @@
1
+ export {};