@xqmsg/ui-core 0.8.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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +181 -0
  3. package/dist/components/banner/Banner.stories.d.ts +5 -0
  4. package/dist/components/banner/index.d.ts +12 -0
  5. package/dist/components/breadcrumbs/Breadcrumbs.stories.d.ts +5 -0
  6. package/dist/components/breadcrumbs/components/icon/index.d.ts +9 -0
  7. package/dist/components/breadcrumbs/components/label/index.d.ts +8 -0
  8. package/dist/components/breadcrumbs/index.d.ts +14 -0
  9. package/dist/components/button/Button.stories.d.ts +5 -0
  10. package/dist/components/button/google/GoogleButton.stories.d.ts +5 -0
  11. package/dist/components/button/google/index.d.ts +8 -0
  12. package/dist/components/button/index.d.ts +20 -0
  13. package/dist/components/button/spinner/SpinnerButton.stories.d.ts +5 -0
  14. package/dist/components/button/spinner/index.d.ts +9 -0
  15. package/dist/components/form/Form.stories.d.ts +8 -0
  16. package/dist/components/form/FormTypes.d.ts +16 -0
  17. package/dist/components/form/hooks/useFormHandler.d.ts +10 -0
  18. package/dist/components/form/index.d.ts +12 -0
  19. package/dist/components/form/section/FormSection.stories.d.ts +9 -0
  20. package/dist/components/form/section/index.d.ts +28 -0
  21. package/dist/components/form/utils/formErrors.d.ts +6 -0
  22. package/dist/components/input/Input.stories.d.ts +8 -0
  23. package/dist/components/input/InputTypes.d.ts +27 -0
  24. package/dist/components/input/StackedCheckbox/StackedCheckboxGroup.d.ts +10 -0
  25. package/dist/components/input/StackedInput/StackedInput.d.ts +13 -0
  26. package/dist/components/input/StackedMultiSelect/components/MultiValue/index.d.ts +10 -0
  27. package/dist/components/input/StackedMultiSelect/index.d.ts +13 -0
  28. package/dist/components/input/StackedPilledInput/index.d.ts +12 -0
  29. package/dist/components/input/StackedRadio/StackedRadioGroup.d.ts +11 -0
  30. package/dist/components/input/StackedSelect/StackedSelect.d.ts +10 -0
  31. package/dist/components/input/StackedSwitch/index.d.ts +9 -0
  32. package/dist/components/input/StackedTextarea/StackedTextarea.d.ts +9 -0
  33. package/dist/components/input/components/InputTag/index.d.ts +7 -0
  34. package/dist/components/input/index.d.ts +26 -0
  35. package/dist/components/layout/BorderedBox/index.d.ts +9 -0
  36. package/dist/components/layout/Layout.stories.d.ts +5 -0
  37. package/dist/components/layout/index.d.ts +11 -0
  38. package/dist/components/loading/LoadingIndicator.stories.d.ts +5 -0
  39. package/dist/components/loading/index.d.ts +12 -0
  40. package/dist/components/table/Table.stories.d.ts +6 -0
  41. package/dist/components/table/TableTypes.d.ts +11 -0
  42. package/dist/components/table/index.d.ts +17 -0
  43. package/dist/components/table/loading/index.d.ts +10 -0
  44. package/dist/components/table/utils/generateTableColumns.d.ts +6 -0
  45. package/dist/components/tabs/TabsWrapper.stories.d.ts +6 -0
  46. package/dist/components/tabs/index.d.ts +10 -0
  47. package/dist/components/text/Text.stories.d.ts +5 -0
  48. package/dist/components/text/index.d.ts +19 -0
  49. package/dist/hooks/useDeepEffect.d.ts +5 -0
  50. package/dist/hooks/useDidMountEffect.d.ts +2 -0
  51. package/dist/index.d.ts +15 -0
  52. package/dist/index.js +8 -0
  53. package/dist/theme/components/alert.d.ts +46 -0
  54. package/dist/theme/components/badge.d.ts +32 -0
  55. package/dist/theme/components/button.d.ts +231 -0
  56. package/dist/theme/components/code.d.ts +27 -0
  57. package/dist/theme/components/form-error.d.ts +16 -0
  58. package/dist/theme/components/form-label.d.ts +15 -0
  59. package/dist/theme/components/form.d.ts +16 -0
  60. package/dist/theme/components/input.d.ts +182 -0
  61. package/dist/theme/components/link.d.ts +97 -0
  62. package/dist/theme/components/menu.d.ts +48 -0
  63. package/dist/theme/components/modal.d.ts +242 -0
  64. package/dist/theme/components/select.d.ts +191 -0
  65. package/dist/theme/components/switch.d.ts +76 -0
  66. package/dist/theme/components/tabs.d.ts +219 -0
  67. package/dist/theme/components/text.d.ts +1373 -0
  68. package/dist/theme/components/textarea.d.ts +137 -0
  69. package/dist/theme/customXQChakraTheme.d.ts +3 -0
  70. package/dist/theme/foundations/breakpoints.d.ts +3 -0
  71. package/dist/theme/foundations/colors.d.ts +126 -0
  72. package/dist/theme/foundations/shadows.d.ts +17 -0
  73. package/dist/theme/foundations/typography.d.ts +56 -0
  74. package/dist/theme/provider/index.d.ts +6 -0
  75. package/dist/theme/styles.d.ts +20 -0
  76. package/dist/ui-core.cjs.development.js +3034 -0
  77. package/dist/ui-core.cjs.development.js.map +1 -0
  78. package/dist/ui-core.cjs.production.min.js +2 -0
  79. package/dist/ui-core.cjs.production.min.js.map +1 -0
  80. package/dist/ui-core.esm.js +3013 -0
  81. package/dist/ui-core.esm.js.map +1 -0
  82. package/package.json +113 -0
  83. package/src/components/banner/Banner.stories.tsx +68 -0
  84. package/src/components/banner/assets/svg/error.svg +3 -0
  85. package/src/components/banner/assets/svg/neutral.svg +3 -0
  86. package/src/components/banner/assets/svg/positive.svg +3 -0
  87. package/src/components/banner/assets/svg/warning.svg +3 -0
  88. package/src/components/banner/index.tsx +63 -0
  89. package/src/components/breadcrumbs/Breadcrumbs.stories.tsx +66 -0
  90. package/src/components/breadcrumbs/components/icon/index.tsx +40 -0
  91. package/src/components/breadcrumbs/components/label/index.tsx +20 -0
  92. package/src/components/breadcrumbs/index.tsx +47 -0
  93. package/src/components/button/Button.stories.tsx +46 -0
  94. package/src/components/button/google/GoogleButton.stories.tsx +23 -0
  95. package/src/components/button/google/assets/GoogleLogo.svg +13 -0
  96. package/src/components/button/google/index.tsx +32 -0
  97. package/src/components/button/index.tsx +54 -0
  98. package/src/components/button/spinner/SpinnerButton.stories.tsx +60 -0
  99. package/src/components/button/spinner/index.tsx +42 -0
  100. package/src/components/form/Form.stories.tsx +62 -0
  101. package/src/components/form/FormTypes.ts +18 -0
  102. package/src/components/form/hooks/useFormHandler.tsx +74 -0
  103. package/src/components/form/index.tsx +25 -0
  104. package/src/components/form/section/FormSection.stories.tsx +109 -0
  105. package/src/components/form/section/index.tsx +81 -0
  106. package/src/components/form/utils/formErrors.ts +34 -0
  107. package/src/components/input/Input.stories.tsx +171 -0
  108. package/src/components/input/InputTypes.ts +71 -0
  109. package/src/components/input/StackedCheckbox/StackedCheckboxGroup.tsx +29 -0
  110. package/src/components/input/StackedInput/StackedInput.tsx +30 -0
  111. package/src/components/input/StackedMultiSelect/components/MultiValue/index.tsx +21 -0
  112. package/src/components/input/StackedMultiSelect/index.tsx +145 -0
  113. package/src/components/input/StackedPilledInput/index.tsx +169 -0
  114. package/src/components/input/StackedRadio/StackedRadioGroup.tsx +38 -0
  115. package/src/components/input/StackedSelect/StackedSelect.tsx +33 -0
  116. package/src/components/input/StackedSwitch/index.tsx +28 -0
  117. package/src/components/input/StackedTextarea/StackedTextarea.tsx +17 -0
  118. package/src/components/input/components/InputTag/index.tsx +24 -0
  119. package/src/components/input/index.tsx +271 -0
  120. package/src/components/layout/BorderedBox/index.tsx +30 -0
  121. package/src/components/layout/Layout.stories.tsx +40 -0
  122. package/src/components/layout/index.tsx +100 -0
  123. package/src/components/loading/LoadingIndicator.stories.tsx +45 -0
  124. package/src/components/loading/index.tsx +45 -0
  125. package/src/components/table/Table.stories.tsx +73 -0
  126. package/src/components/table/TableTypes.ts +35 -0
  127. package/src/components/table/index.tsx +88 -0
  128. package/src/components/table/loading/index.tsx +42 -0
  129. package/src/components/table/utils/generateTableColumns.ts +9 -0
  130. package/src/components/tabs/TabsWrapper.stories.tsx +85 -0
  131. package/src/components/tabs/index.tsx +39 -0
  132. package/src/components/text/Text.stories.tsx +59 -0
  133. package/src/components/text/index.tsx +45 -0
  134. package/src/hooks/useDeepEffect.tsx +22 -0
  135. package/src/hooks/useDidMountEffect.tsx +13 -0
  136. package/src/index.tsx +48 -0
  137. package/src/theme/components/alert.ts +60 -0
  138. package/src/theme/components/badge.ts +59 -0
  139. package/src/theme/components/button.ts +211 -0
  140. package/src/theme/components/code.ts +16 -0
  141. package/src/theme/components/form-error.ts +32 -0
  142. package/src/theme/components/form-label.ts +16 -0
  143. package/src/theme/components/form.ts +32 -0
  144. package/src/theme/components/input.ts +213 -0
  145. package/src/theme/components/link.ts +117 -0
  146. package/src/theme/components/menu.ts +70 -0
  147. package/src/theme/components/modal.ts +216 -0
  148. package/src/theme/components/select.ts +41 -0
  149. package/src/theme/components/switch.ts +89 -0
  150. package/src/theme/components/tabs.ts +255 -0
  151. package/src/theme/components/text.ts +46 -0
  152. package/src/theme/components/textarea.ts +54 -0
  153. package/src/theme/customXQChakraTheme.ts +52 -0
  154. package/src/theme/foundations/breakpoints.ts +18 -0
  155. package/src/theme/foundations/colors.ts +136 -0
  156. package/src/theme/foundations/shadows.ts +23 -0
  157. package/src/theme/foundations/typography.ts +62 -0
  158. package/src/theme/provider/index.tsx +16 -0
  159. package/src/theme/styles.ts +19 -0
@@ -0,0 +1,3034 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
+
7
+ var React = require('react');
8
+ var React__default = _interopDefault(React);
9
+ var react = require('@chakra-ui/react');
10
+ var reactHookForm = require('react-hook-form');
11
+ var ReactSelect = _interopDefault(require('react-select'));
12
+ var icons = require('@chakra-ui/icons');
13
+ var hi = require('react-icons/hi');
14
+ var themeTools = require('@chakra-ui/theme-tools');
15
+
16
+ var ErrorIcon = "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 5.5L8.5 8.5M8.5 5.5L5.5 8.5M13 7C13 10.3137 10.3137 13 7 13C3.68629 13 1 10.3137 1 7C1 3.68629 3.68629 1 7 1C10.3137 1 13 3.68629 13 7Z\" stroke=\"#F96057\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>";
17
+
18
+ var PositiveIcon = "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 7.5L6.5 9L9 5.5M13 7C13 10.3137 10.3137 13 7 13C3.68629 13 1 10.3137 1 7C1 3.68629 3.68629 1 7 1C10.3137 1 13 3.68629 13 7Z\" stroke=\"#34C759\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>";
19
+
20
+ var NeutralIcon = "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 4.5V4C6.72386 4 6.5 4.22386 6.5 4.5H7ZM7.005 4.5H7.505C7.505 4.22386 7.28114 4 7.005 4V4.5ZM7.005 4.505V5.005C7.28114 5.005 7.505 4.78114 7.505 4.505H7.005ZM7 4.505H6.5C6.5 4.78114 6.72386 5.005 7 5.005V4.505ZM6.27639 6.05279C6.0294 6.17628 5.92929 6.47662 6.05279 6.72361C6.17628 6.9706 6.47662 7.07071 6.72361 6.94721L6.27639 6.05279ZM6.52766 6.48617L6.30405 6.03896L6.52766 6.48617ZM7.23634 7.05465L7.72141 7.17592L7.23634 7.05465ZM6.76366 8.94535L6.27859 8.82408L6.76366 8.94535ZM7.47234 9.51383L7.69595 9.96104L7.69595 9.96104L7.47234 9.51383ZM7.72361 9.94721C7.9706 9.82371 8.07071 9.52337 7.94721 9.27639C7.82371 9.0294 7.52337 8.92929 7.27639 9.05279L7.72361 9.94721ZM12.5 7C12.5 10.0376 10.0376 12.5 7 12.5V13.5C10.5899 13.5 13.5 10.5899 13.5 7H12.5ZM7 12.5C3.96243 12.5 1.5 10.0376 1.5 7H0.5C0.5 10.5899 3.41015 13.5 7 13.5V12.5ZM1.5 7C1.5 3.96243 3.96243 1.5 7 1.5V0.5C3.41015 0.5 0.5 3.41015 0.5 7H1.5ZM7 1.5C10.0376 1.5 12.5 3.96243 12.5 7H13.5C13.5 3.41015 10.5899 0.5 7 0.5V1.5ZM7 5H7.005V4H7V5ZM6.505 4.5V4.505H7.505V4.5H6.505ZM7.005 4.005H7V5.005H7.005V4.005ZM7.5 4.505V4.5H6.5V4.505H7.5ZM6.72361 6.94721L6.75127 6.93338L6.30405 6.03896L6.27639 6.05279L6.72361 6.94721ZM6.75127 6.93338L6.27859 8.82408L7.24873 9.06662L7.72141 7.17592L6.75127 6.93338ZM7.69595 9.96104L7.72361 9.94721L7.27639 9.05279L7.24873 9.06662L7.69595 9.96104ZM6.27859 8.82408C6.07138 9.65293 6.93179 10.3431 7.69595 9.96104L7.24873 9.06662L6.27859 8.82408ZM6.75127 6.93338L7.72141 7.17592C7.92862 6.34708 7.06821 5.65688 6.30405 6.03896L6.75127 6.93338Z\" fill=\"#3C3C43\" fill-opacity=\"0.6\"/>\n</svg>";
21
+
22
+ var WarningIcon = "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 5V7.5M13 7C13 10.3137 10.3137 13 7 13C3.68629 13 1 10.3137 1 7C1 3.68629 3.68629 1 7 1C10.3137 1 13 3.68629 13 7ZM7 9.5H7.005V9.505H7V9.5Z\" stroke=\"#F8CE52\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>";
23
+
24
+ /**
25
+ * A functional React component utilized to render the `Banner` component
26
+ */
27
+
28
+ var Banner = function Banner(_ref) {
29
+ var variant = _ref.variant,
30
+ message = _ref.message,
31
+ buttonText = _ref.buttonText,
32
+ onClick = _ref.onClick;
33
+ var Icon = React.useMemo(function () {
34
+ switch (variant) {
35
+ case 'error':
36
+ return /*#__PURE__*/React__default.createElement(react.Image, {
37
+ src: ErrorIcon,
38
+ alt: "error",
39
+ boxSize: "16px"
40
+ });
41
+
42
+ case 'neutral':
43
+ return /*#__PURE__*/React__default.createElement(react.Image, {
44
+ src: NeutralIcon,
45
+ alt: "neutral",
46
+ boxSize: "16px"
47
+ });
48
+
49
+ case 'positive':
50
+ return /*#__PURE__*/React__default.createElement(react.Image, {
51
+ src: PositiveIcon,
52
+ alt: "positive",
53
+ boxSize: "16px"
54
+ });
55
+
56
+ case 'warning':
57
+ return /*#__PURE__*/React__default.createElement(react.Image, {
58
+ src: WarningIcon,
59
+ alt: "warning",
60
+ boxSize: "16px"
61
+ });
62
+
63
+ default:
64
+ return null;
65
+ }
66
+ }, [variant]);
67
+ return /*#__PURE__*/React__default.createElement(react.Alert, {
68
+ variant: variant
69
+ }, /*#__PURE__*/React__default.createElement(react.AlertDescription, null, /*#__PURE__*/React__default.createElement(react.Box, {
70
+ pb: "8px"
71
+ }, Icon), message, onClick && buttonText && /*#__PURE__*/React__default.createElement(react.Flex, {
72
+ pt: "8px",
73
+ justifyContent: "flex-end"
74
+ }, /*#__PURE__*/React__default.createElement(react.Button, {
75
+ size: "sm",
76
+ bg: "white",
77
+ color: "blue.500",
78
+ onClick: onClick
79
+ }, buttonText))));
80
+ };
81
+
82
+ function _extends() {
83
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
84
+ for (var i = 1; i < arguments.length; i++) {
85
+ var source = arguments[i];
86
+
87
+ for (var key in source) {
88
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
89
+ target[key] = source[key];
90
+ }
91
+ }
92
+ }
93
+
94
+ return target;
95
+ };
96
+ return _extends.apply(this, arguments);
97
+ }
98
+
99
+ function _objectWithoutPropertiesLoose(source, excluded) {
100
+ if (source == null) return {};
101
+ var target = {};
102
+ var sourceKeys = Object.keys(source);
103
+ var key, i;
104
+
105
+ for (i = 0; i < sourceKeys.length; i++) {
106
+ key = sourceKeys[i];
107
+ if (excluded.indexOf(key) >= 0) continue;
108
+ target[key] = source[key];
109
+ }
110
+
111
+ return target;
112
+ }
113
+
114
+ var blue = {
115
+ 50: 'hsl(209, 100%, 95%)',
116
+ 100: 'hsl(209, 100%, 90%)',
117
+ 200: 'hsl(209, 100%, 80%)',
118
+ 300: 'hsl(209, 100%, 70%)',
119
+ 400: 'hsl(209, 100%, 60%)',
120
+ 500: 'hsl(209, 100%, 50%)',
121
+ 600: 'hsl(209, 100%, 40%)',
122
+ 700: 'hsl(209, 100%, 30%)',
123
+ 800: 'hsl(209, 100%, 20%)',
124
+ 900: 'hsl(209, 100%, 10%)'
125
+ };
126
+ var red = {
127
+ 50: 'hsl(0, 100%, 98%)',
128
+ 100: 'hsl(0, 95%, 92%)',
129
+ 200: 'hsl(0, 97%, 85%)',
130
+ 300: 'hsl(0, 95%, 75%)',
131
+ 400: 'hsl(0, 88%, 68%)',
132
+ 500: 'hsl(0, 76%, 57%)',
133
+ 600: 'hsl(0, 61%, 48%)',
134
+ 700: 'hsl(0, 56%, 39%)',
135
+ 800: 'hsl(0, 54%, 33%)',
136
+ 900: 'hsl(357, 62%, 24%)'
137
+ };
138
+ var orange = {
139
+ 50: 'hsl(40, 100%, 97%)',
140
+ 100: 'hsl(39, 96%, 89%)',
141
+ 200: 'hsl(38, 93%, 77%)',
142
+ 300: 'hsl(33, 90%, 65%)',
143
+ 400: 'hsl(27, 84%, 57%)',
144
+ 500: 'hsl(24, 75%, 50%)',
145
+ 600: 'hsl(20, 71%, 44%)',
146
+ 700: 'hsl(16, 65%, 37%)',
147
+ 800: 'hsl(14, 61%, 30%)',
148
+ 900: 'hsl(14, 60%, 25%)'
149
+ };
150
+ var green = {
151
+ 50: 'hsl(140, 60%, 96%)',
152
+ 100: 'hsl(141, 65%, 92%)',
153
+ 200: 'hsl(141, 63%, 88%)',
154
+ 300: 'hsl(141, 64%, 80%)',
155
+ 400: 'hsl(140, 64%, 73%)',
156
+ 500: 'hsl(140, 64%, 61%)',
157
+ 600: 'hsl(140, 42%, 48%)',
158
+ 700: 'hsl(140, 42%, 36%)',
159
+ 800: 'hsl(141, 42%, 24%)',
160
+ 900: 'hsl(138, 42%, 6%)'
161
+ };
162
+ var aliases = {
163
+ primary: blue,
164
+ success: green,
165
+ warning: orange,
166
+ danger: red
167
+ };
168
+ var label = {
169
+ primary: {
170
+ light: '#000000',
171
+ dark: '#FFFFFF'
172
+ }
173
+ };
174
+
175
+ var colors = /*#__PURE__*/_extends({
176
+ transparent: 'transparent',
177
+ current: 'currentColor',
178
+ black: '#000000',
179
+ white: '#FFFFFF',
180
+ lightBlue: '#29abe2',
181
+ coolGray: '#F6F7FB',
182
+ darkBlue: '#292f4c',
183
+ backdrop: '#fbfcff'
184
+ }, aliases, {
185
+ label: label,
186
+ whiteAlpha: {
187
+ 50: 'rgba(255, 255, 255, 0.04)',
188
+ 100: 'rgba(255, 255, 255, 0.06)',
189
+ 200: 'rgba(255, 255, 255, 0.08)',
190
+ 300: 'rgba(255, 255, 255, 0.16)',
191
+ 400: 'rgba(255, 255, 255, 0.24)',
192
+ 500: 'rgba(255, 255, 255, 0.36)',
193
+ 600: 'rgba(255, 255, 255, 0.48)',
194
+ 700: 'rgba(255, 255, 255, 0.64)',
195
+ 800: 'rgba(255, 255, 255, 0.80)',
196
+ 900: 'rgba(255, 255, 255, 0.92)'
197
+ },
198
+ blackAlpha: {
199
+ 50: 'rgba(0, 0, 0, 0.04)',
200
+ 100: 'rgba(0, 0, 0, 0.06)',
201
+ 200: 'rgba(0, 0, 0, 0.08)',
202
+ 300: 'rgba(0, 0, 0, 0.16)',
203
+ 400: 'rgba(0, 0, 0, 0.24)',
204
+ 500: 'rgba(0, 0, 0, 0.36)',
205
+ 600: 'rgba(0, 0, 0, 0.48)',
206
+ 700: 'rgba(0, 0, 0, 0.64)',
207
+ 800: 'rgba(0, 0, 0, 0.80)',
208
+ 900: 'rgba(0, 0, 0, 0.92)'
209
+ },
210
+ gray: {
211
+ 50: 'hsl(240, 3%, 94%)',
212
+ 100: 'hsl(210, 3%, 87%)',
213
+ 200: 'hsl(220, 4%, 69%)',
214
+ 300: 'hsl(225, 4%, 56%)',
215
+ 400: 'hsl(222, 4%, 44%)',
216
+ 500: 'hsl(224, 6%, 38%)',
217
+ 600: 'hsl(227, 6%, 30%)',
218
+ 700: 'hsl(230, 5%, 23%)',
219
+ 800: 'hsl(216, 6%, 15%)',
220
+ 900: 'hsl(240, 5%, 4%)'
221
+ },
222
+ red: red,
223
+ orange: orange,
224
+ green: green,
225
+ blue: blue
226
+ });
227
+
228
+ /**
229
+ * A functional React component utilized to render the `Icon` for the `Breadcrumbs` component.
230
+ */
231
+
232
+ var Icon = function Icon(_ref) {
233
+ var step = _ref.step,
234
+ status = _ref.status;
235
+ var getColors = React.useMemo(function () {
236
+ switch (status) {
237
+ case 'active':
238
+ return {
239
+ bg: '#0082FF',
240
+ color: colors.label.primary.dark
241
+ };
242
+
243
+ case 'complete':
244
+ return {
245
+ bg: '#0082FF',
246
+ color: colors.label.primary.dark
247
+ };
248
+
249
+ case 'inactive':
250
+ return {
251
+ bg: '#7474800D',
252
+ color: colors.label.primary.light
253
+ };
254
+ }
255
+ }, [status]);
256
+ var bg = getColors.bg,
257
+ color = getColors.color;
258
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
259
+ boxSize: "20px",
260
+ bg: bg,
261
+ borderRadius: "100%",
262
+ alignItems: "center",
263
+ justifyContent: "center"
264
+ }, /*#__PURE__*/React__default.createElement(react.Text, {
265
+ fontSize: "12px",
266
+ color: color
267
+ }, step));
268
+ };
269
+
270
+ /**
271
+ * A functional React component utilized to render the `Label` for the `Breadcrumbs` component.
272
+ */
273
+
274
+ var Label = function Label(_ref) {
275
+ var label = _ref.label;
276
+ return /*#__PURE__*/React__default.createElement(react.Box, {
277
+ pl: "8px"
278
+ }, /*#__PURE__*/React__default.createElement(react.Text, {
279
+ color: colors.label.primary.light,
280
+ fontSize: "13px"
281
+ }, label));
282
+ };
283
+
284
+ /**
285
+ * A functional React component utilized to render the `Breadcrumbs` component.
286
+ *
287
+ * The component will render a list of steps, based on the `steps` array, displaying the completed,
288
+ * active, and incomplete steps. The orientation of the component may be either `horizontal` or
289
+ * `vertical`.
290
+ */
291
+
292
+ var Breadcrumbs = function Breadcrumbs(_ref) {
293
+ var steps = _ref.steps,
294
+ activeStepIndex = _ref.activeStepIndex,
295
+ orientation = _ref.orientation;
296
+ var getStatus = React.useCallback(function (stepIndex) {
297
+ if (activeStepIndex > stepIndex) return 'complete';
298
+ if (activeStepIndex < stepIndex) return 'inactive';
299
+ return 'active';
300
+ }, [activeStepIndex]);
301
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
302
+ flexDir: orientation === 'horizontal' ? 'row' : 'column'
303
+ }, steps.map(function (step, idx) {
304
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
305
+ alignItems: "center",
306
+ pr: orientation === 'horizontal' ? '16px' : 0,
307
+ py: "4px"
308
+ }, /*#__PURE__*/React__default.createElement(Icon, {
309
+ step: idx + 1,
310
+ status: getStatus(idx)
311
+ }), /*#__PURE__*/React__default.createElement(Label, {
312
+ label: step
313
+ }));
314
+ }));
315
+ };
316
+
317
+ var _excluded = ["onClick", "text", "type", "ariaLabel", "variant", "colorScheme", "style", "size", "disabled", "className"];
318
+ /**
319
+ * A functional React component utilized to render the `Button` component
320
+ */
321
+
322
+ var Button = function Button(_ref) {
323
+ var onClick = _ref.onClick,
324
+ text = _ref.text,
325
+ type = _ref.type,
326
+ ariaLabel = _ref.ariaLabel,
327
+ _ref$variant = _ref.variant,
328
+ variant = _ref$variant === void 0 ? 'solid' : _ref$variant,
329
+ _ref$colorScheme = _ref.colorScheme,
330
+ colorScheme = _ref$colorScheme === void 0 ? 'primary' : _ref$colorScheme,
331
+ style = _ref.style,
332
+ _ref$size = _ref.size,
333
+ size = _ref$size === void 0 ? 'md' : _ref$size,
334
+ disabled = _ref.disabled,
335
+ className = _ref.className,
336
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
337
+
338
+ return /*#__PURE__*/React__default.createElement(react.Button, Object.assign({
339
+ onClick: onClick,
340
+ type: type,
341
+ variant: variant,
342
+ colorScheme: colorScheme,
343
+ size: size,
344
+ disabled: disabled,
345
+ "aria-label": ariaLabel,
346
+ style: style,
347
+ className: className
348
+ }, props), text);
349
+ };
350
+
351
+ var GoogleLogo = "<svg viewBox=\"0 0 533.5 544.3\" xmlns=\"http://www.w3.org/2000/svg\"><path\n d=\"M533.5 278.4c0-18.5-1.5-37.1-4.7-55.3H272.1v104.8h147c-6.1 33.8-25.7 63.7-54.4 82.7v68h87.7c51.5-47.4 81.1-117.4 81.1-200.2z\"\n fill=\"#4285f4\"\n /><path\n d=\"M272.1 544.3c73.4 0 135.3-24.1 180.4-65.7l-87.7-68c-24.4 16.6-55.9 26-92.6 26-71 0-131.2-47.9-152.8-112.3H28.9v70.1c46.2 91.9 140.3 149.9 243.2 149.9z\"\n fill=\"#34a853\"\n /><path\n d=\"M119.3 324.3c-11.4-33.8-11.4-70.4 0-104.2V150H28.9c-38.6 76.9-38.6 167.5 0 244.4l90.4-70.1z\"\n fill=\"#fbbc04\"\n /><path\n d=\"M272.1 107.7c38.8-.6 76.3 14 104.4 40.8l77.7-77.7C405 24.6 339.7-.8 272.1 0 169.2 0 75.1 58 28.9 150l90.4 70.1c21.5-64.5 81.8-112.4 152.8-112.4z\"\n fill=\"#ea4335\"\n /></svg>";
352
+
353
+ /**
354
+ * A functional React component utilized to render the `GoogleButton` component
355
+ */
356
+
357
+ var GoogleButton = function GoogleButton(_ref) {
358
+ var onClick = _ref.onClick;
359
+ return /*#__PURE__*/React__default.createElement(react.Button, {
360
+ onClick: onClick,
361
+ variant: "plain",
362
+ size: "lg",
363
+ borderRadius: "2px",
364
+ "aria-label": "google-login-button",
365
+ className: "google-button",
366
+ px: 4,
367
+ leftIcon: /*#__PURE__*/React__default.createElement(react.Icon, {
368
+ as: GoogleLogo,
369
+ width: 18,
370
+ height: 18,
371
+ mr: 3
372
+ }),
373
+ fontFamily: "Roboto, sans-serif",
374
+ fontWeight: "500",
375
+ fontSize: 14,
376
+ backgroundColor: "white",
377
+ boxShadow: "rgba(0, 0, 0, 0.24) 0px 0px 1px 0px, rgba(0, 0, 0, 0.24) 0px 2px 2px 0px"
378
+ }, /*#__PURE__*/React__default.createElement(react.Text, {
379
+ color: "rgba(0, 0, 0, 0.54)"
380
+ }, 'Sign in with Google'));
381
+ };
382
+
383
+ /**
384
+ * A functional React component utilized to render the `SpinnerButton` component
385
+ */
386
+
387
+ var SpinnerButton = function SpinnerButton(_ref) {
388
+ var isLoading = _ref.isLoading,
389
+ text = _ref.text,
390
+ onClick = _ref.onClick,
391
+ type = _ref.type,
392
+ ariaLabel = _ref.ariaLabel,
393
+ style = _ref.style,
394
+ _ref$variant = _ref.variant,
395
+ variant = _ref$variant === void 0 ? 'solid' : _ref$variant,
396
+ _ref$colorScheme = _ref.colorScheme,
397
+ colorScheme = _ref$colorScheme === void 0 ? 'primary' : _ref$colorScheme,
398
+ _ref$size = _ref.size,
399
+ size = _ref$size === void 0 ? 'md' : _ref$size,
400
+ disabled = _ref.disabled,
401
+ className = _ref.className;
402
+ return /*#__PURE__*/React__default.createElement(react.Button, {
403
+ spinner: /*#__PURE__*/React__default.createElement(react.Spinner, {
404
+ size: size
405
+ }),
406
+ isLoading: isLoading,
407
+ onClick: onClick,
408
+ type: type,
409
+ variant: variant,
410
+ colorScheme: colorScheme,
411
+ size: size,
412
+ disabled: disabled,
413
+ "aria-label": ariaLabel,
414
+ style: style,
415
+ className: className
416
+ }, text);
417
+ };
418
+
419
+ /**
420
+ * A functional React component utilized to render the `Form` component, a form wrapper for
421
+ * `react-hook-form`. The `Form` component is provided a `formHandler` and is used to wrap a container
422
+ * that contains a `FormSection` component.
423
+ */
424
+
425
+ function Form(_ref) {
426
+ var formHandler = _ref.formHandler,
427
+ children = _ref.children;
428
+ var form = formHandler.form,
429
+ onSubmit = formHandler.onSubmit;
430
+ return /*#__PURE__*/React__default.createElement(reactHookForm.FormProvider, Object.assign({}, form), /*#__PURE__*/React__default.createElement("form", {
431
+ onSubmit: onSubmit
432
+ }, children));
433
+ }
434
+
435
+ /**
436
+ * A functional React component utilized to render the `StackedCheckbox` component.
437
+ */
438
+
439
+ var StackedCheckboxGroup = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
440
+ var options = _ref2.options;
441
+ return /*#__PURE__*/React__default.createElement(react.InputGroup, null, options.map(function (option) {
442
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
443
+ mr: "30px",
444
+ alignItems: "center",
445
+ key: option.value
446
+ }, /*#__PURE__*/React__default.createElement(react.Checkbox, {
447
+ ref: _ref,
448
+ value: option.value
449
+ }, option.label));
450
+ }));
451
+ });
452
+
453
+ var _excluded$1 = ["type", "isRequired", "leftElement", "rightElement"];
454
+ /**
455
+ * A functional React component utilized to render the `StackedInput` component.
456
+ */
457
+
458
+ var StackedInput = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
459
+ var _ref2$type = _ref2.type,
460
+ type = _ref2$type === void 0 ? 'text' : _ref2$type,
461
+ isRequired = _ref2.isRequired,
462
+ leftElement = _ref2.leftElement,
463
+ rightElement = _ref2.rightElement,
464
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$1);
465
+
466
+ return /*#__PURE__*/React__default.createElement(react.InputGroup, null, leftElement && leftElement, /*#__PURE__*/React__default.createElement(react.Input, Object.assign({
467
+ ref: _ref,
468
+ type: type,
469
+ isRequired: isRequired
470
+ }, props)), rightElement && rightElement);
471
+ });
472
+
473
+ /**
474
+ * A functional React component utilized to render the `StackedRadio` component.
475
+ */
476
+
477
+ var StackedRadioGroup = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
478
+ var id = _ref2.id,
479
+ _ref2$flexDirection = _ref2.flexDirection,
480
+ flexDirection = _ref2$flexDirection === void 0 ? 'row' : _ref2$flexDirection,
481
+ options = _ref2.options;
482
+ return /*#__PURE__*/React__default.createElement(react.InputGroup, null, /*#__PURE__*/React__default.createElement(react.RadioGroup, {
483
+ name: id
484
+ }, options.map(function (option) {
485
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
486
+ mr: "30px",
487
+ alignItems: "center",
488
+ key: option.value,
489
+ flexDirection: flexDirection
490
+ }, /*#__PURE__*/React__default.createElement(react.Radio, {
491
+ ref: _ref,
492
+ value: option.value
493
+ }, option.label));
494
+ })));
495
+ });
496
+
497
+ var _excluded$2 = ["isRequired", "options", "onChange"];
498
+ /**
499
+ * A functional React component utilized to render the `StackedSelect` component.
500
+ */
501
+
502
+ var StackedSelect = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
503
+ var isRequired = _ref2.isRequired,
504
+ options = _ref2.options,
505
+ onChange = _ref2.onChange,
506
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$2);
507
+
508
+ return /*#__PURE__*/React__default.createElement(react.InputGroup, null, /*#__PURE__*/React__default.createElement(react.Select, Object.assign({
509
+ ref: _ref,
510
+ isRequired: isRequired,
511
+ onChange: onChange
512
+ }, props), options.map(function (option) {
513
+ return /*#__PURE__*/React__default.createElement("option", {
514
+ value: option.value,
515
+ key: option.value
516
+ }, option.label);
517
+ })));
518
+ });
519
+
520
+ /**
521
+ * A functional React component utilized to render the `StackedTextarea` component.
522
+ */
523
+
524
+ var StackedTextarea = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
525
+ var props = _extends({}, _ref2);
526
+
527
+ return /*#__PURE__*/React__default.createElement(react.Textarea, Object.assign({
528
+ ref: _ref
529
+ }, props));
530
+ });
531
+
532
+ var InputTag = function InputTag(_ref) {
533
+ var value = _ref.value,
534
+ onDelete = _ref.onDelete;
535
+ return /*#__PURE__*/React__default.createElement(react.Tag, {
536
+ size: 'md',
537
+ key: value,
538
+ borderRadius: "full",
539
+ variant: "solid",
540
+ backgroundColor: "#eeeeee"
541
+ }, /*#__PURE__*/React__default.createElement(react.TagLabel, {
542
+ color: 'gray.700'
543
+ }, value), onDelete && /*#__PURE__*/React__default.createElement(react.TagCloseButton, {
544
+ color: 'gray.700',
545
+ onClick: onDelete
546
+ }));
547
+ };
548
+
549
+ /**
550
+ * A functional React Component utilized to render the custom `MultiValue` component for
551
+ * the `StackedMultiSelect` custom component.
552
+ */
553
+
554
+ var MultiValue = function MultiValue(_ref) {
555
+ var children = _ref.children,
556
+ clearValue = _ref.clearValue;
557
+ return /*#__PURE__*/React__default.createElement(react.Box, {
558
+ marginRight: "5px"
559
+ }, /*#__PURE__*/React__default.createElement(InputTag, {
560
+ value: children,
561
+ onDelete: clearValue
562
+ }));
563
+ };
564
+
565
+ /**
566
+ * A functional React component utilized to render the `StackedMultiSelect` component.
567
+ */
568
+
569
+ var StackedMultiSelect = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
570
+ var options = _ref2.options,
571
+ setValue = _ref2.setValue,
572
+ control = _ref2.control,
573
+ name = _ref2.name;
574
+ var watchedValue = reactHookForm.useWatch({
575
+ control: control,
576
+ name: name
577
+ });
578
+
579
+ var _useState = React.useState(''),
580
+ inputValue = _useState[0],
581
+ setInputValue = _useState[1];
582
+
583
+ var _useState2 = React.useState([]),
584
+ localValue = _useState2[0],
585
+ setLocalValue = _useState2[1]; // gets latest watched form value (common delimited) from RHF state and creates a list
586
+
587
+
588
+ React.useEffect(function () {
589
+ if (watchedValue !== undefined && !watchedValue.length) {
590
+ setLocalValue([]);
591
+ }
592
+
593
+ if (watchedValue !== undefined && watchedValue != null && watchedValue.length) {
594
+ setLocalValue(watchedValue.split(',').filter(Boolean).map(function (value) {
595
+ return options.find(function (option) {
596
+ return option.value === value;
597
+ });
598
+ }));
599
+ }
600
+ }, [options, watchedValue]);
601
+ var component = {
602
+ DropdownIndicator: null,
603
+ MultiValue: function MultiValue$1(props) {
604
+ return /*#__PURE__*/React__default.createElement(MultiValue, {
605
+ clearValue: function clearValue() {
606
+ var arrayValue = watchedValue.split(',').filter(function (_, index) {
607
+ return index !== props.index;
608
+ });
609
+ setLocalValue(arrayValue.map(function (value) {
610
+ return options.find(function (option) {
611
+ return option.value === value;
612
+ });
613
+ }));
614
+ setValue(name, arrayValue.join(','), {
615
+ shouldValidate: true,
616
+ shouldDirty: true
617
+ });
618
+ }
619
+ }, props.children);
620
+ }
621
+ };
622
+
623
+ var handleChange = function handleChange(values) {
624
+ setValue(name, values.map(function (_ref3) {
625
+ var value = _ref3.value;
626
+ return value;
627
+ }).join(','), {
628
+ shouldValidate: true,
629
+ shouldDirty: true
630
+ });
631
+ };
632
+
633
+ var handleInputChange = function handleInputChange(value, action) {
634
+ if (action.action === 'input-change' && action !== 'set-value') {
635
+ return setInputValue(value);
636
+ } // reset on select of an option
637
+
638
+
639
+ return setInputValue('');
640
+ };
641
+
642
+ var formatGroupLabel = function formatGroupLabel(data) {
643
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
644
+ alignItems: "center",
645
+ justifyContent: "space-between"
646
+ }, /*#__PURE__*/React__default.createElement("span", null, data.label));
647
+ };
648
+
649
+ var customStyles = {
650
+ control: function control() {
651
+ return {
652
+ borderRadius: '6px',
653
+ fontSize: '16px',
654
+ color: '#202020',
655
+ backgroundColor: '#FFFFFF',
656
+ border: '1px solid',
657
+ borderColor: colors.gray[200],
658
+ minHeight: '48px',
659
+ display: 'flex',
660
+ padding: '2px 6px'
661
+ };
662
+ },
663
+ menu: function menu() {
664
+ return {
665
+ boxShadow: '0 5px 5px 0 rgba(16, 27, 79, 0.15)',
666
+ borderRadius: '6px',
667
+ backgroundColor: 'white'
668
+ };
669
+ },
670
+ indicatorsContainer: function indicatorsContainer() {
671
+ return {
672
+ display: 'none'
673
+ };
674
+ },
675
+ placeholder: function placeholder() {
676
+ return {
677
+ color: '#CBCDCF',
678
+ fontSize: '16px'
679
+ };
680
+ }
681
+ };
682
+ return /*#__PURE__*/React__default.createElement(ReactSelect, {
683
+ components: component,
684
+ inputValue: inputValue,
685
+ value: localValue,
686
+ isClearable: true,
687
+ isSearchable: true,
688
+ isMulti: true,
689
+ menuPortalTarget: document.body,
690
+ menuPosition: 'fixed',
691
+ onChange: handleChange,
692
+ onInputChange: handleInputChange,
693
+ styles: customStyles,
694
+ options: options,
695
+ placeholder: false,
696
+ formatGroupLabel: formatGroupLabel
697
+ });
698
+ });
699
+
700
+ /**
701
+ * A functional React component utilized to render the `StackedPilledInput` component.
702
+ */
703
+
704
+ var StackedPilledInput = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
705
+ var name = _ref2.name,
706
+ setValue = _ref2.setValue,
707
+ control = _ref2.control;
708
+ var watchedValue = reactHookForm.useWatch({
709
+ control: control,
710
+ name: name
711
+ });
712
+
713
+ var _useState = React.useState([]),
714
+ lastestFormValueToArray = _useState[0],
715
+ setLatestFormValueToArray = _useState[1];
716
+
717
+ var inputRef = React.useRef(null);
718
+
719
+ var _useState2 = React.useState(false),
720
+ isInputFocused = _useState2[0],
721
+ setInputFocused = _useState2[1];
722
+
723
+ var _useState3 = React.useState(''),
724
+ localValue = _useState3[0],
725
+ setLocalValue = _useState3[1]; // gets latest watched form value (common delimited) from RHF state and creates a list
726
+
727
+
728
+ React.useEffect(function () {
729
+ if (watchedValue !== undefined && !watchedValue.length) {
730
+ setLatestFormValueToArray([]);
731
+ }
732
+
733
+ if (watchedValue !== undefined && watchedValue != null && watchedValue.length) {
734
+ setLatestFormValueToArray(watchedValue.split(',').filter(Boolean));
735
+ }
736
+ }, [watchedValue]); // ensures after value addition that the input field is wiped
737
+
738
+ React.useEffect(function () {
739
+ if (localValue === ' ' || localValue.trim() === ',') {
740
+ setLocalValue('');
741
+ }
742
+ }, [localValue]);
743
+
744
+ var onHandleKeyDown = function onHandleKeyDown(e) {
745
+ if (e.key === ' ' || e.key === 'Enter' || e.key === ',') {
746
+ if (!localValue.trim() || localValue.trim() === ',') return setLocalValue('');
747
+ var filteredUniqueValues = Array.from(new Set([].concat(lastestFormValueToArray, localValue.trim().split(','))));
748
+ setLocalValue('');
749
+ return setValue(name, filteredUniqueValues.toString().replace(/\s/g, ''), {
750
+ shouldValidate: true,
751
+ shouldDirty: true
752
+ });
753
+ }
754
+ };
755
+
756
+ var onRemoveTag = function onRemoveTag(index) {
757
+ var filteredUniqueValues = lastestFormValueToArray.filter(function (_, i) {
758
+ return i !== index;
759
+ });
760
+ setLatestFormValueToArray(filteredUniqueValues);
761
+ setValue(name, filteredUniqueValues.toString().replace(/\s/g, ''), {
762
+ shouldValidate: true,
763
+ shouldDirty: true
764
+ });
765
+ };
766
+
767
+ var onBlur = function onBlur() {
768
+ if (localValue.trim()) {
769
+ var filteredUniqueValues = Array.from(new Set([].concat(lastestFormValueToArray, localValue.trim().split(','))));
770
+ setValue(name, filteredUniqueValues.toString().replace(/\s/g, ''), {
771
+ shouldValidate: true,
772
+ shouldDirty: true
773
+ });
774
+ setLocalValue('');
775
+ }
776
+
777
+ setInputFocused(false);
778
+ };
779
+
780
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
781
+ position: "relative",
782
+ width: "100%"
783
+ }, /*#__PURE__*/React__default.createElement(react.Box, {
784
+ outline: isInputFocused ? '2px solid rgba(0, 122, 255, 255)' : '',
785
+ borderRadius: isInputFocused ? 'md' : '',
786
+ width: "100%"
787
+ }, /*#__PURE__*/React__default.createElement(react.Flex, {
788
+ background: "rgba(255, 255, 255, 0.8)",
789
+ border: "1px solid",
790
+ borderColor: colors.gray[200],
791
+ borderRadius: "6px",
792
+ fontWeight: "400",
793
+ fontSize: "12px",
794
+ lineHeight: "12px",
795
+ minHeight: "48px",
796
+ letterSpacing: "0.02em",
797
+ padding: "0 12px",
798
+ pt: lastestFormValueToArray.length ? '12px' : '0px',
799
+ alignItems: "center",
800
+ flexWrap: "wrap",
801
+ gap: "0.5em",
802
+ width: "100%",
803
+ onClick: function onClick() {
804
+ var _inputRef$current;
805
+
806
+ return (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
807
+ }
808
+ }, lastestFormValueToArray.map(function (tag, index) {
809
+ return /*#__PURE__*/React__default.createElement(InputTag, {
810
+ value: tag,
811
+ key: tag,
812
+ onDelete: function onDelete(e) {
813
+ e.stopPropagation();
814
+ e.preventDefault();
815
+ onRemoveTag(index);
816
+ }
817
+ });
818
+ }), /*#__PURE__*/React__default.createElement(react.Input, {
819
+ onKeyDown: onHandleKeyDown,
820
+ type: "text",
821
+ padding: isInputFocused ? '0.5em 0' : '0px',
822
+ height: isInputFocused ? '46px' : '0px',
823
+ width: "100%",
824
+ border: "none",
825
+ _focus: {
826
+ boxShadow: 'none !important'
827
+ },
828
+ value: localValue,
829
+ onBlur: onBlur,
830
+ onChange: function onChange(e) {
831
+ return setLocalValue(e.target.value);
832
+ },
833
+ ref: inputRef,
834
+ onFocus: function onFocus() {
835
+ return setInputFocused(true);
836
+ }
837
+ }))));
838
+ });
839
+
840
+ /**
841
+ * A functional React component utilized to render the `StackedSwitch` component.
842
+ */
843
+
844
+ var StackedSwitch = /*#__PURE__*/React__default.forwardRef(function (_ref2, _ref) {
845
+ var isRequired = _ref2.isRequired,
846
+ _onChange = _ref2.onChange,
847
+ value = _ref2.value;
848
+ if (value === undefined) return null;
849
+ return /*#__PURE__*/React__default.createElement(react.Switch, {
850
+ size: "lg",
851
+ ref: _ref,
852
+ isRequired: isRequired,
853
+ value: String(value),
854
+ defaultChecked: Boolean(value),
855
+ onChange: function onChange(e) {
856
+ if (_onChange) return _onChange(e.target.checked);
857
+ }
858
+ });
859
+ });
860
+
861
+ /**
862
+ * A functional React component utilized to render the `Input` component. Utilizes a switch statement
863
+ * to render the correct input based on the `inputType`.
864
+ */
865
+
866
+ function Input(_ref) {
867
+ var inputType = _ref.inputType,
868
+ label = _ref.label,
869
+ ariaLabel = _ref.ariaLabel,
870
+ className = _ref.className,
871
+ placeholder = _ref.placeholder,
872
+ name = _ref.name,
873
+ helperText = _ref.helperText,
874
+ leftElement = _ref.leftElement,
875
+ rightElement = _ref.rightElement,
876
+ options = _ref.options,
877
+ isInvalid = _ref.isInvalid,
878
+ errorText = _ref.errorText,
879
+ isRequired = _ref.isRequired,
880
+ maxLength = _ref.maxLength,
881
+ defaultValue = _ref.defaultValue,
882
+ control = _ref.control,
883
+ disabled = _ref.disabled,
884
+ onChange = _ref.onChange,
885
+ setValue = _ref.setValue;
886
+ var selectedInputField = React.useCallback(function (onChange, onBlur, ref, value) {
887
+ switch (inputType) {
888
+ case 'text':
889
+ return /*#__PURE__*/React__default.createElement(StackedInput, {
890
+ className: "input-" + inputType + " " + (className != null ? className : ''),
891
+ "aria-label": ariaLabel,
892
+ name: name,
893
+ id: name,
894
+ placeholder: placeholder,
895
+ maxLength: maxLength,
896
+ isRequired: isRequired,
897
+ leftElement: leftElement,
898
+ rightElement: rightElement,
899
+ isInvalid: isInvalid,
900
+ onChange: onChange,
901
+ onBlur: onBlur,
902
+ ref: ref,
903
+ disabled: disabled,
904
+ value: value
905
+ });
906
+
907
+ case 'radio':
908
+ return /*#__PURE__*/React__default.createElement(StackedRadioGroup, {
909
+ className: "input-" + inputType + " " + (className != null ? className : ''),
910
+ name: name,
911
+ id: name,
912
+ isRequired: isRequired,
913
+ isInvalid: isInvalid,
914
+ options: options,
915
+ onChange: onChange,
916
+ onBlur: onBlur,
917
+ ref: ref,
918
+ disabled: disabled,
919
+ value: value
920
+ });
921
+
922
+ case 'select':
923
+ return /*#__PURE__*/React__default.createElement(StackedSelect, {
924
+ className: "input-" + inputType + " " + (className != null ? className : ''),
925
+ name: name,
926
+ id: name,
927
+ isRequired: isRequired,
928
+ isInvalid: isInvalid,
929
+ options: options,
930
+ onChange: onChange,
931
+ onBlur: onBlur,
932
+ ref: ref,
933
+ disabled: disabled,
934
+ value: value
935
+ });
936
+
937
+ case 'textarea':
938
+ return /*#__PURE__*/React__default.createElement(StackedTextarea, {
939
+ className: "input-" + inputType + " " + (className != null ? className : ''),
940
+ name: name,
941
+ id: name,
942
+ maxLength: maxLength,
943
+ isRequired: isRequired,
944
+ isInvalid: isInvalid,
945
+ onChange: onChange,
946
+ onBlur: onBlur,
947
+ ref: ref,
948
+ disabled: disabled,
949
+ value: value
950
+ });
951
+
952
+ case 'checkbox':
953
+ return /*#__PURE__*/React__default.createElement(StackedCheckboxGroup, {
954
+ className: "input-" + inputType + " " + (className != null ? className : ''),
955
+ name: name,
956
+ id: name,
957
+ isRequired: isRequired,
958
+ isInvalid: isInvalid,
959
+ options: options,
960
+ onChange: onChange,
961
+ onBlur: onBlur,
962
+ ref: ref,
963
+ disabled: disabled,
964
+ value: value
965
+ });
966
+
967
+ case 'multi-select':
968
+ return /*#__PURE__*/React__default.createElement(StackedMultiSelect, {
969
+ className: "input-" + inputType + " " + (className != null ? className : ''),
970
+ name: name,
971
+ id: name,
972
+ isInvalid: isInvalid,
973
+ options: options,
974
+ onChange: onChange,
975
+ onBlur: onBlur,
976
+ ref: ref,
977
+ disabled: disabled,
978
+ value: value,
979
+ setValue: setValue,
980
+ control: control
981
+ });
982
+
983
+ case 'pilled-text':
984
+ return /*#__PURE__*/React__default.createElement(StackedPilledInput, {
985
+ className: "input-" + inputType + " " + (className != null ? className : ''),
986
+ "aria-label": ariaLabel,
987
+ name: name,
988
+ id: name,
989
+ isInvalid: isInvalid,
990
+ onChange: onChange,
991
+ onBlur: onBlur,
992
+ ref: ref,
993
+ disabled: disabled,
994
+ value: value,
995
+ setValue: setValue,
996
+ control: control
997
+ });
998
+
999
+ case 'switch':
1000
+ return /*#__PURE__*/React__default.createElement(StackedSwitch, {
1001
+ className: "input-" + inputType + " " + (className != null ? className : ''),
1002
+ name: name,
1003
+ id: name,
1004
+ isInvalid: isInvalid,
1005
+ onChange: onChange,
1006
+ onBlur: onBlur,
1007
+ ref: ref,
1008
+ value: value
1009
+ });
1010
+
1011
+ default:
1012
+ return null;
1013
+ }
1014
+ }, [ariaLabel, className, control, disabled, inputType, isInvalid, isRequired, leftElement, maxLength, name, options, placeholder, rightElement, setValue]);
1015
+ return /*#__PURE__*/React__default.createElement(reactHookForm.Controller, {
1016
+ control: control,
1017
+ name: name,
1018
+ defaultValue: defaultValue,
1019
+ rules: {
1020
+ required: isRequired
1021
+ },
1022
+ render: function render(_ref2) {
1023
+ var _ref2$field = _ref2.field,
1024
+ onBlur = _ref2$field.onBlur,
1025
+ fieldOnChange = _ref2$field.onChange,
1026
+ ref = _ref2$field.ref,
1027
+ value = _ref2$field.value;
1028
+ return /*#__PURE__*/React__default.createElement(react.FormControl, {
1029
+ id: name,
1030
+ isInvalid: isInvalid,
1031
+ position: "relative",
1032
+ py: label ? 6 : 0
1033
+ }, label && /*#__PURE__*/React__default.createElement(react.FormLabel, {
1034
+ position: "absolute",
1035
+ top: 0,
1036
+ display: "flex"
1037
+ }, label, isRequired && /*#__PURE__*/React__default.createElement(react.Box, {
1038
+ ml: 1,
1039
+ color: "red.500"
1040
+ }, "*")), selectedInputField(onChange ? onChange : fieldOnChange, onBlur, ref, value), isInvalid ? /*#__PURE__*/React__default.createElement(react.FormErrorMessage, null, errorText) : helperText && /*#__PURE__*/React__default.createElement(react.FormHelperText, null, helperText));
1041
+ }
1042
+ });
1043
+ }
1044
+
1045
+ /**
1046
+ *
1047
+ * @param props - of type `FormSectionProps<T, U>` where `T` represents the key in `FormSteps`,
1048
+ * can be generic key but is represented by value in `FormSteps` and `U` is the form value types for the
1049
+ * `useFormHandler` hook.
1050
+ *
1051
+ * @returns a list of input's for a specific form section.
1052
+ */
1053
+
1054
+ function FormSection(_ref) {
1055
+ var formStructure = _ref.formStructure,
1056
+ section = _ref.section,
1057
+ form = _ref.form,
1058
+ className = _ref.className,
1059
+ _ref$columns = _ref.columns,
1060
+ columns = _ref$columns === void 0 ? 1 : _ref$columns,
1061
+ _ref$spacing = _ref.spacing,
1062
+ spacing = _ref$spacing === void 0 ? 0 : _ref$spacing;
1063
+ return /*#__PURE__*/React__default.createElement(react.SimpleGrid, {
1064
+ columns: columns,
1065
+ spacing: spacing,
1066
+ className: "form-section " + (className != null ? className : '')
1067
+ }, formStructure[section].map(function (_ref2) {
1068
+ var label = _ref2.label,
1069
+ inputType = _ref2.inputType,
1070
+ name = _ref2.name,
1071
+ options = _ref2.options,
1072
+ isRequired = _ref2.isRequired,
1073
+ maxLength = _ref2.maxLength,
1074
+ ariaLabel = _ref2.ariaLabel,
1075
+ disabled = _ref2.disabled,
1076
+ defaultValue = _ref2.defaultValue;
1077
+ return /*#__PURE__*/React__default.createElement(Input, {
1078
+ control: form.control,
1079
+ label: label,
1080
+ inputType: inputType,
1081
+ name: name,
1082
+ ariaLabel: ariaLabel,
1083
+ disabled: disabled,
1084
+ options: options,
1085
+ isRequired: isRequired,
1086
+ maxLength: maxLength,
1087
+ isInvalid: !!form.formState.errors[name],
1088
+ defaultValue: defaultValue
1089
+ });
1090
+ }));
1091
+ }
1092
+
1093
+ /**
1094
+ * A functional React component utilized to render the `BorderedBox` component
1095
+ */
1096
+
1097
+ var BorderedBox = function BorderedBox(_ref) {
1098
+ var children = _ref.children,
1099
+ boxShadow = _ref.boxShadow,
1100
+ _ref$borderRadius = _ref.borderRadius,
1101
+ borderRadius = _ref$borderRadius === void 0 ? 'none' : _ref$borderRadius;
1102
+ return /*#__PURE__*/React__default.createElement(react.Box, {
1103
+ boxShadow: boxShadow,
1104
+ borderRadius: borderRadius,
1105
+ bg: "white",
1106
+ mx: "auto",
1107
+ width: "100%",
1108
+ height: "100%",
1109
+ display: "flex"
1110
+ }, children);
1111
+ };
1112
+
1113
+ /**
1114
+ * A functional React component utilized to render the `Layout` component
1115
+ */
1116
+
1117
+ var Layout = function Layout(_ref) {
1118
+ var Navigation = _ref.Navigation,
1119
+ Header = _ref.Header,
1120
+ MainContent = _ref.MainContent,
1121
+ _ref$navbarWidth = _ref.navbarWidth,
1122
+ navbarWidth = _ref$navbarWidth === void 0 ? '250px' : _ref$navbarWidth;
1123
+
1124
+ var _useMediaQuery = react.useMediaQuery('(min-width: 1200px)'),
1125
+ isLargerThan1200 = _useMediaQuery[0];
1126
+
1127
+ var _useState = React.useState(false),
1128
+ show = _useState[0],
1129
+ setShow = _useState[1];
1130
+
1131
+ return /*#__PURE__*/React__default.createElement(react.Grid, {
1132
+ templateAreas: isLargerThan1200 ? "\"nav header\" \"nav main\"" : "\"header\" \"main\"",
1133
+ gridTemplateRows: "auto 1fr",
1134
+ gridTemplateColumns: isLargerThan1200 ? navbarWidth + " 1fr" : '100% 1fr',
1135
+ h: "100%",
1136
+ width: "100%",
1137
+ gap: "4",
1138
+ bg: "#f5f5f5"
1139
+ }, /*#__PURE__*/React__default.createElement(react.GridItem, {
1140
+ area: "header",
1141
+ p: "20px 20px 10px 10px",
1142
+ minHeight: "100px"
1143
+ }, /*#__PURE__*/React__default.createElement(BorderedBox, {
1144
+ borderRadius: "md",
1145
+ boxShadow: "rgba(235,237,238,.75) 8px 0 30px 10px"
1146
+ }, /*#__PURE__*/React__default.createElement(react.Flex, {
1147
+ flexDirection: "column",
1148
+ justifyContent: "center",
1149
+ width: "100%",
1150
+ pl: '32px',
1151
+ py: 5
1152
+ }, /*#__PURE__*/React__default.createElement(react.Flex, {
1153
+ justifyContent: "space-between",
1154
+ alignItems: "center"
1155
+ }, Header, !isLargerThan1200 && /*#__PURE__*/React__default.createElement(react.IconButton, {
1156
+ size: "md",
1157
+ variant: "unstyled",
1158
+ alignSelf: "flex-start",
1159
+ "aria-label": "menu",
1160
+ type: "button",
1161
+ onClick: function onClick() {
1162
+ return setShow(!show);
1163
+ },
1164
+ icon: show ? /*#__PURE__*/React__default.createElement(icons.CloseIcon, null) : /*#__PURE__*/React__default.createElement(icons.HamburgerIcon, null),
1165
+ _focus: {
1166
+ boxShadow: 'none'
1167
+ }
1168
+ })), !isLargerThan1200 && /*#__PURE__*/React__default.createElement(react.Collapse, {
1169
+ "in": show
1170
+ }, /*#__PURE__*/React__default.createElement(react.Box, {
1171
+ marginTop: 5
1172
+ }, Navigation))))), isLargerThan1200 && /*#__PURE__*/React__default.createElement(react.GridItem, {
1173
+ area: "nav",
1174
+ width: navbarWidth
1175
+ }, /*#__PURE__*/React__default.createElement(BorderedBox, {
1176
+ boxShadow: "rgba(0, 0, 0, 0.035) 0px 2px 10px"
1177
+ }, Navigation)), /*#__PURE__*/React__default.createElement(react.GridItem, {
1178
+ area: "main",
1179
+ p: "0 20px 20px 10px"
1180
+ }, /*#__PURE__*/React__default.createElement(BorderedBox, {
1181
+ borderRadius: "md",
1182
+ boxShadow: "rgba(0, 0, 0, 0.035) 0px 2px 10px"
1183
+ }, MainContent)));
1184
+ };
1185
+
1186
+ /**
1187
+ * A functional React component utilized to render the `LoadingIndicator` component
1188
+ */
1189
+
1190
+ var LoadingIndicator = function LoadingIndicator(_ref) {
1191
+ var _ref$size = _ref.size,
1192
+ size = _ref$size === void 0 ? 'xl' : _ref$size,
1193
+ _ref$text = _ref.text,
1194
+ text = _ref$text === void 0 ? 'Loading' : _ref$text,
1195
+ _ref$thickness = _ref.thickness,
1196
+ thickness = _ref$thickness === void 0 ? '3px' : _ref$thickness,
1197
+ _ref$speed = _ref.speed,
1198
+ speed = _ref$speed === void 0 ? '0.5s' : _ref$speed,
1199
+ className = _ref.className;
1200
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
1201
+ flexDirection: "column",
1202
+ alignItems: "center",
1203
+ "aria-label": "loading-indicator",
1204
+ className: "loading-indicator " + (className != null ? className : '')
1205
+ }, /*#__PURE__*/React__default.createElement(react.Spinner, {
1206
+ size: size,
1207
+ color: colors.blue[500],
1208
+ flex: "none",
1209
+ thickness: thickness,
1210
+ speed: speed,
1211
+ mb: 2
1212
+ }), text && /*#__PURE__*/React__default.createElement(react.Text, {
1213
+ fontSize: size,
1214
+ lineHeight: "shorter",
1215
+ fontWeight: "semibold"
1216
+ }, text));
1217
+ };
1218
+
1219
+ /**
1220
+ * This function is responsible for returning an array as a const, so the generic type `TableBody`
1221
+ * may accept it as an argument and use the elements of the array as keys.
1222
+ */
1223
+ function generateTableColumnsAsConst(arr) {
1224
+ return [].concat(arr);
1225
+ }
1226
+
1227
+ var typography = {
1228
+ letterSpacings: {
1229
+ tighter: '-0.05em',
1230
+ tight: '-0.025em',
1231
+ normal: '0',
1232
+ wide: '0.025em',
1233
+ wider: '0.05em',
1234
+ widest: '0.1em'
1235
+ },
1236
+ lineHeights: {
1237
+ normal: 'normal',
1238
+ none: 1,
1239
+ shorter: 1.25,
1240
+ "short": 1.375,
1241
+ base: 1.5,
1242
+ tall: 1.625,
1243
+ taller: '2',
1244
+ '3': '.75rem',
1245
+ '4': '1rem',
1246
+ '5': '1.25rem',
1247
+ '6': '1.5rem',
1248
+ '7': '1.75rem',
1249
+ '8': '2rem',
1250
+ '9': '2.25rem',
1251
+ '10': '2.5rem'
1252
+ },
1253
+ fontWeights: {
1254
+ hairline: 100,
1255
+ thin: 200,
1256
+ light: 300,
1257
+ normal: 400,
1258
+ medium: 500,
1259
+ semibold: 600,
1260
+ bold: 700,
1261
+ extrabold: 800,
1262
+ black: 900
1263
+ },
1264
+ fonts: {
1265
+ base: "proxima-nova, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"",
1266
+ mono: "SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace"
1267
+ },
1268
+ fontSizes: {
1269
+ xs: '0.75rem',
1270
+ sm: '0.875rem',
1271
+ md: '1rem',
1272
+ lg: '1.125rem',
1273
+ xl: '1.25rem',
1274
+ '2xl': '1.5rem',
1275
+ '3xl': '1.875rem',
1276
+ '4xl': '2.25rem',
1277
+ '5xl': '3rem',
1278
+ '6xl': '4rem'
1279
+ }
1280
+ };
1281
+
1282
+ /**
1283
+ * A loading spinner rendered after the table to indicate more rows are being loaded.
1284
+ */
1285
+
1286
+ var TableLoadingRows = function TableLoadingRows(_ref) {
1287
+ var isLoading = _ref.isLoading,
1288
+ onLoadMore = _ref.onLoadMore;
1289
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
1290
+ width: "full",
1291
+ direction: "column",
1292
+ justifyContent: "center",
1293
+ alignItems: "center",
1294
+ height: 20,
1295
+ borderTopColor: colors.gray[100]
1296
+ }, isLoading ? /*#__PURE__*/React__default.createElement(react.Spinner, {
1297
+ size: "lg",
1298
+ color: colors.blue[500]
1299
+ }) : /*#__PURE__*/React__default.createElement(react.IconButton, {
1300
+ "aria-label": "Fetch more rows",
1301
+ icon: /*#__PURE__*/React__default.createElement(hi.HiOutlineRefresh, null),
1302
+ fontSize: typography.fontSizes['3xl'],
1303
+ type: "button",
1304
+ variant: "link",
1305
+ onClick: onLoadMore
1306
+ }));
1307
+ };
1308
+
1309
+ /**
1310
+ * A React component utilized to render the `Table` component
1311
+ */
1312
+
1313
+ function Table(_ref) {
1314
+ var columns = _ref.columns,
1315
+ headers = _ref.headers,
1316
+ body = _ref.body,
1317
+ _ref$placeholder = _ref.placeholder,
1318
+ placeholder = _ref$placeholder === void 0 ? 'There is currently no available data' : _ref$placeholder,
1319
+ loading = _ref.loading,
1320
+ _ref$variant = _ref.variant,
1321
+ variant = _ref$variant === void 0 ? 'simple' : _ref$variant,
1322
+ colorScheme = _ref.colorScheme,
1323
+ _ref$borderTopRadius = _ref.borderTopRadius,
1324
+ borderTopRadius = _ref$borderTopRadius === void 0 ? true : _ref$borderTopRadius,
1325
+ loadMore = _ref.loadMore;
1326
+ var columnsAsConst = generateTableColumnsAsConst(columns);
1327
+ return /*#__PURE__*/React__default.createElement(react.TableContainer, {
1328
+ border: "1px",
1329
+ borderColor: colors.gray[100],
1330
+ overflowX: "auto",
1331
+ bg: "white",
1332
+ borderRadius: "md",
1333
+ borderTopLeftRadius: borderTopRadius ? 'md' : 0,
1334
+ borderTopRightRadius: borderTopRadius ? 'md' : 0
1335
+ }, /*#__PURE__*/React__default.createElement(react.Table, {
1336
+ variant: variant,
1337
+ colorScheme: colorScheme
1338
+ }, /*#__PURE__*/React__default.createElement(react.Thead, null, /*#__PURE__*/React__default.createElement(react.Tr, null, columnsAsConst.map(function (column) {
1339
+ return (
1340
+ /*#__PURE__*/
1341
+ // @ts-ignore
1342
+ React__default.createElement(react.Th, null, headers[column])
1343
+ );
1344
+ }))), /*#__PURE__*/React__default.createElement(react.Tbody, null, body.map(function (row) {
1345
+ return /*#__PURE__*/React__default.createElement(react.Tr, null, columnsAsConst.map(function (column) {
1346
+ return (
1347
+ /*#__PURE__*/
1348
+ // @ts-ignore
1349
+ React__default.createElement(react.Td, null, row[column])
1350
+ );
1351
+ }));
1352
+ })), !body.length && /*#__PURE__*/React__default.createElement(react.TableCaption, {
1353
+ py: 10
1354
+ }, placeholder), ' '), loadMore && loading !== undefined && /*#__PURE__*/React__default.createElement(TableLoadingRows, {
1355
+ isLoading: loading,
1356
+ onLoadMore: loadMore
1357
+ }));
1358
+ }
1359
+
1360
+ /**
1361
+ * A functional React component utilized to render the `TableNavWrapper` component
1362
+ */
1363
+
1364
+ var TabsWrapper = function TabsWrapper(_ref) {
1365
+ var children = _ref.children,
1366
+ navItems = _ref.navItems,
1367
+ navIndex = _ref.navIndex,
1368
+ setNavIndex = _ref.setNavIndex;
1369
+ return /*#__PURE__*/React__default.createElement(react.Tabs, {
1370
+ size: "lg",
1371
+ variant: "simple",
1372
+ index: navIndex,
1373
+ onChange: setNavIndex
1374
+ }, /*#__PURE__*/React__default.createElement(react.TabList, {
1375
+ flexDirection: {
1376
+ base: 'column',
1377
+ sm: 'row'
1378
+ },
1379
+ border: "1px",
1380
+ borderColor: colors.gray[100],
1381
+ bg: "white",
1382
+ borderRadius: "md",
1383
+ borderBottom: 0,
1384
+ borderBottomLeftRadius: 0,
1385
+ borderBottomRightRadius: 0
1386
+ }, navItems.map(function (navItem) {
1387
+ return /*#__PURE__*/React__default.createElement(react.Tab, null, navItem);
1388
+ })), children);
1389
+ };
1390
+
1391
+ /**
1392
+ * A functional React component utilized to render the `Text` component. The component is mainly
1393
+ * controlled by by the `variant` prop which determines `fontSize`, `fontWeight`, etc.
1394
+ * Also extends `TypographyProps`.
1395
+ */
1396
+
1397
+ var Text = function Text(_ref) {
1398
+ var children = _ref.children,
1399
+ fontSize = _ref.fontSize,
1400
+ lineHeight = _ref.lineHeight,
1401
+ letterSpacing = _ref.letterSpacing,
1402
+ fontWeight = _ref.fontWeight,
1403
+ variant = _ref.variant,
1404
+ _ref$color = _ref.color,
1405
+ color = _ref$color === void 0 ? colors.black : _ref$color,
1406
+ className = _ref.className;
1407
+ return /*#__PURE__*/React__default.createElement(react.Text, {
1408
+ fontSize: fontSize,
1409
+ lineHeight: lineHeight,
1410
+ letterSpacing: letterSpacing,
1411
+ fontWeight: fontWeight,
1412
+ color: color,
1413
+ variant: variant,
1414
+ className: variant + " " + (className || '')
1415
+ }, children);
1416
+ };
1417
+
1418
+ /**
1419
+ * Breakpoints for responsive design
1420
+ */
1421
+
1422
+ var breakpointValues = {
1423
+ sm: '30em',
1424
+ md: '48em',
1425
+ lg: '62em',
1426
+ xl: '80em'
1427
+ };
1428
+ var breakpoints = /*#__PURE__*/themeTools.createBreakpoints(breakpointValues);
1429
+
1430
+ var shadows = {
1431
+ xs: '0 0 0 1px rgba(0, 0, 0, 0.05)',
1432
+ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
1433
+ base: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
1434
+ md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
1435
+ lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
1436
+ xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
1437
+ '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
1438
+ insetOutline: "inset 0 0 0 2px " + colors.blue[200],
1439
+ outline: "0 0 0 2px " + colors.blue[200],
1440
+ outlineDanger600: "0 0 0 2px " + colors.red[600],
1441
+ inner: 'inset 0 2px 4px 0 rgba(0,0,0,0.06)',
1442
+ none: 'none',
1443
+ 'dark-lg': 'rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px'
1444
+ };
1445
+
1446
+ var parts = ['container', 'description', 'icon'];
1447
+ var baseStyle = {
1448
+ container: {
1449
+ px: '8px',
1450
+ py: '8px'
1451
+ },
1452
+ description: {
1453
+ width: '100%',
1454
+ fontSize: '13px',
1455
+ textAlign: 'left',
1456
+ color: colors.label.primary.light,
1457
+ lineHeight: '16px'
1458
+ }
1459
+ };
1460
+
1461
+ function variantPositive() {
1462
+ return {
1463
+ container: {
1464
+ bg: '#d8f1b8'
1465
+ }
1466
+ };
1467
+ }
1468
+
1469
+ function variantWarning() {
1470
+ return {
1471
+ container: {
1472
+ bg: '#ffefb4'
1473
+ }
1474
+ };
1475
+ }
1476
+
1477
+ function variantError() {
1478
+ return {
1479
+ container: {
1480
+ bg: '#ffbdb9'
1481
+ }
1482
+ };
1483
+ }
1484
+
1485
+ function variantNeutral() {
1486
+ return {
1487
+ container: {
1488
+ bg: '#7474800D'
1489
+ }
1490
+ };
1491
+ }
1492
+
1493
+ var variants = {
1494
+ positive: variantPositive,
1495
+ warning: variantWarning,
1496
+ error: variantError,
1497
+ neutral: variantNeutral
1498
+ };
1499
+ var defaultProps = {
1500
+ variant: 'positive'
1501
+ };
1502
+ var Alert = {
1503
+ parts: parts,
1504
+ baseStyle: baseStyle,
1505
+ variants: variants,
1506
+ defaultProps: defaultProps
1507
+ };
1508
+
1509
+ var baseStyle$1 = {
1510
+ px: 1,
1511
+ textTransform: 'uppercase',
1512
+ fontSize: 'xs',
1513
+ borderRadius: 'sm',
1514
+ fontWeight: 'bold'
1515
+ };
1516
+
1517
+ function variantSolid(props) {
1518
+ var c = props.colorScheme,
1519
+ theme = props.theme;
1520
+ var dark = themeTools.transparentize(c + ".500", 0.6)(theme);
1521
+ return {
1522
+ bg: themeTools.mode(c + ".500", dark)(props),
1523
+ color: themeTools.mode("white", "whiteAlpha.800")(props)
1524
+ };
1525
+ }
1526
+
1527
+ function variantSubtle(props) {
1528
+ var c = props.colorScheme,
1529
+ theme = props.theme;
1530
+ var darkBg = themeTools.transparentize(c + ".200", 0.16)(theme);
1531
+ return {
1532
+ bg: themeTools.mode(c + ".100", darkBg)(props),
1533
+ color: themeTools.mode(c + ".800", c + ".200")(props)
1534
+ };
1535
+ }
1536
+
1537
+ function variantOutline(props) {
1538
+ var c = props.colorScheme,
1539
+ theme = props.theme;
1540
+ var darkColor = themeTools.transparentize(c + ".200", 0.8)(theme);
1541
+ var lightColor = themeTools.getColor(theme, c + ".500");
1542
+ var color = themeTools.mode(lightColor, darkColor)(props);
1543
+ return {
1544
+ color: color,
1545
+ boxShadow: "inset 0 0 0px 1px " + color
1546
+ };
1547
+ }
1548
+
1549
+ var variants$1 = {
1550
+ solid: variantSolid,
1551
+ subtle: variantSubtle,
1552
+ outline: variantOutline
1553
+ };
1554
+ var defaultProps$1 = {
1555
+ variant: 'subtle',
1556
+ colorScheme: 'gray'
1557
+ };
1558
+ var Badge = {
1559
+ baseStyle: baseStyle$1,
1560
+ variants: variants$1,
1561
+ defaultProps: defaultProps$1
1562
+ };
1563
+
1564
+ var baseStyle$2 = {
1565
+ lineHeight: 1,
1566
+ borderRadius: 'md',
1567
+ fontWeight: 'bold',
1568
+ _focus: {
1569
+ boxShadow: 'outline'
1570
+ },
1571
+ _disabled: {
1572
+ opacity: 0.4,
1573
+ cursor: 'not-allowed',
1574
+ boxShadow: 'none'
1575
+ }
1576
+ };
1577
+
1578
+ var focusShadow = function focusShadow(color) {
1579
+ return "0 0 0 3px " + color;
1580
+ };
1581
+
1582
+ function variantGhost(props) {
1583
+ var c = props.colorScheme,
1584
+ theme = props.theme;
1585
+
1586
+ if (c === 'gray') {
1587
+ var _focusColor = themeTools.getColor(theme, 'gray.100');
1588
+
1589
+ return {
1590
+ color: themeTools.mode("gray.500", "whiteAlpha.900")(props),
1591
+ _hover: {
1592
+ bg: themeTools.mode("gray.50", "whiteAlpha.200")(props)
1593
+ },
1594
+ _active: {
1595
+ bg: themeTools.mode("gray.200", "whiteAlpha.300")(props)
1596
+ },
1597
+ _focus: {
1598
+ boxShadow: focusShadow(_focusColor)
1599
+ }
1600
+ };
1601
+ }
1602
+
1603
+ var darkHoverBg = themeTools.transparentize(c + ".200", 0.12)(theme);
1604
+ var darkActiveBg = themeTools.transparentize(c + ".200", 0.24)(theme);
1605
+ var focusColor = themeTools.getColor(theme, c + ".200");
1606
+ return {
1607
+ color: themeTools.mode(c + ".500", c + ".200")(props),
1608
+ bg: 'transparent',
1609
+ _hover: {
1610
+ bg: themeTools.mode(c + ".50", darkHoverBg)(props)
1611
+ },
1612
+ _active: {
1613
+ bg: themeTools.mode(c + ".100", darkActiveBg)(props)
1614
+ },
1615
+ _focus: {
1616
+ boxShadow: focusShadow(focusColor)
1617
+ }
1618
+ };
1619
+ }
1620
+
1621
+ function variantOutline$1(props) {
1622
+ var c = props.colorScheme;
1623
+ var borderColor = themeTools.mode("gray.200", "whiteAlpha.300")(props);
1624
+ return _extends({
1625
+ border: '1px solid',
1626
+ borderColor: c === 'gray' ? borderColor : 'currentColor'
1627
+ }, variantGhost(props));
1628
+ }
1629
+ /** Accessible color overrides for less accessible colors. */
1630
+
1631
+
1632
+ var accessibleColorMap = {
1633
+ yellow: {
1634
+ bg: 'yellow.400',
1635
+ color: 'black',
1636
+ hoverBg: 'yellow.500',
1637
+ activeBg: 'yellow.600'
1638
+ },
1639
+ cyan: {
1640
+ bg: 'cyan.400',
1641
+ color: 'black',
1642
+ hoverBg: 'cyan.500',
1643
+ activeBg: 'cyan.600'
1644
+ }
1645
+ };
1646
+
1647
+ function variantSolid$1(props) {
1648
+ var c = props.colorScheme,
1649
+ theme = props.theme;
1650
+ if (c === 'gray') return {
1651
+ color: 'gray.500',
1652
+ bg: themeTools.mode("gray.50", "whiteAlpha.200")(props),
1653
+ _hover: {
1654
+ bg: themeTools.mode("gray.100", "whiteAlpha.300")(props)
1655
+ },
1656
+ _active: {
1657
+ bg: themeTools.mode("gray.200", "whiteAlpha.400")(props)
1658
+ }
1659
+ };
1660
+ if (c === 'darkgray') return {
1661
+ color: 'white',
1662
+ bg: 'gray.400',
1663
+ _hover: {
1664
+ bg: 'gray.600'
1665
+ },
1666
+ _active: {
1667
+ bg: 'gray.700'
1668
+ }
1669
+ };
1670
+
1671
+ var _ref = accessibleColorMap[c] || {},
1672
+ _ref$bg = _ref.bg,
1673
+ bg = _ref$bg === void 0 ? c + ".500" : _ref$bg,
1674
+ _ref$color = _ref.color,
1675
+ color = _ref$color === void 0 ? 'white' : _ref$color,
1676
+ _ref$hoverBg = _ref.hoverBg,
1677
+ hoverBg = _ref$hoverBg === void 0 ? c + ".600" : _ref$hoverBg,
1678
+ _ref$activeBg = _ref.activeBg,
1679
+ activeBg = _ref$activeBg === void 0 ? c + ".700" : _ref$activeBg;
1680
+
1681
+ var focusColor = themeTools.getColor(theme, c + ".200");
1682
+ return {
1683
+ bg: themeTools.mode(bg, c + ".200")(props),
1684
+ color: themeTools.mode(color, "gray.800")(props),
1685
+ _hover: {
1686
+ bg: themeTools.mode(hoverBg, c + ".300")(props)
1687
+ },
1688
+ _active: {
1689
+ bg: themeTools.mode(activeBg, c + ".400")(props)
1690
+ },
1691
+ _focus: {
1692
+ boxShadow: focusShadow(focusColor)
1693
+ }
1694
+ };
1695
+ }
1696
+ /**
1697
+ * A variant that displays a solid variant when an active CSS class is
1698
+ * detected, otherwise display a ghost variant. This is useful for pill nav filters.
1699
+ */
1700
+
1701
+
1702
+ function variantActiveSolid(props) {
1703
+ return _extends({}, variantGhost(_extends({}, props, {
1704
+ colorScheme: 'gray'
1705
+ })), {
1706
+ '&.active': _extends({}, variantSolid$1(props))
1707
+ });
1708
+ }
1709
+
1710
+ function variantLink(props) {
1711
+ var c = props.colorScheme;
1712
+ return {
1713
+ padding: 0,
1714
+ height: 'auto',
1715
+ lineHeight: 'normal',
1716
+ color: themeTools.mode(c + ".500", c + ".200")(props),
1717
+ _hover: {
1718
+ textDecoration: 'underline'
1719
+ },
1720
+ _active: {
1721
+ color: themeTools.mode(c + ".700", c + ".500")(props)
1722
+ }
1723
+ };
1724
+ }
1725
+
1726
+ var variantUnstyled = {
1727
+ bg: 'none',
1728
+ color: 'inherit',
1729
+ display: 'inline',
1730
+ lineHeight: 'inherit',
1731
+ m: 0,
1732
+ p: 0
1733
+ };
1734
+ var variants$2 = {
1735
+ ghost: variantGhost,
1736
+ outline: variantOutline$1,
1737
+ solid: variantSolid$1,
1738
+ activeSolid: variantActiveSolid,
1739
+ link: variantLink,
1740
+ unstyled: variantUnstyled
1741
+ };
1742
+ var sizes = {
1743
+ lg: {
1744
+ borderRadius: 'full',
1745
+ h: 12,
1746
+ minW: 20,
1747
+ fontSize: 'lg',
1748
+ px: 6
1749
+ },
1750
+ md: {
1751
+ borderRadius: 'full',
1752
+ h: 10,
1753
+ minW: 20,
1754
+ fontSize: 'md',
1755
+ px: 4
1756
+ },
1757
+ sm: {
1758
+ borderRadius: 'full',
1759
+ h: 8,
1760
+ minW: 8,
1761
+ fontSize: 'sm',
1762
+ px: 3
1763
+ },
1764
+ xs: {
1765
+ borderRadius: 'full',
1766
+ h: 6,
1767
+ minW: 6,
1768
+ fontSize: 'xs',
1769
+ px: 2
1770
+ }
1771
+ };
1772
+ var defaultProps$2 = {
1773
+ variant: 'solid',
1774
+ size: 'md',
1775
+ colorScheme: 'primary'
1776
+ };
1777
+ var Button$1 = {
1778
+ baseStyle: baseStyle$2,
1779
+ variants: variants$2,
1780
+ sizes: sizes,
1781
+ defaultProps: defaultProps$2
1782
+ };
1783
+
1784
+ var variants$3 = Badge.variants,
1785
+ defaultProps$3 = Badge.defaultProps;
1786
+ var baseStyle$3 = {
1787
+ fontFamily: 'mono',
1788
+ fontSize: 'sm',
1789
+ px: '0.2em',
1790
+ borderRadius: 'sm'
1791
+ };
1792
+ var Code = {
1793
+ baseStyle: baseStyle$3,
1794
+ variants: variants$3,
1795
+ defaultProps: defaultProps$3
1796
+ };
1797
+
1798
+ var parts$1 = ['requiredIndicator', 'helperText'];
1799
+
1800
+ function baseStyleRequiredIndicator(props) {
1801
+ return {
1802
+ ml: 1,
1803
+ color: themeTools.mode('red.500', 'red.300')(props)
1804
+ };
1805
+ }
1806
+
1807
+ function baseStyleHelperText(props) {
1808
+ return {
1809
+ mt: 1,
1810
+ color: themeTools.mode('gray.400', 'whiteAlpha.600')(props),
1811
+ lineHeight: 'normal',
1812
+ fontSize: 'sm'
1813
+ };
1814
+ }
1815
+
1816
+ var baseStyle$4 = function baseStyle(props) {
1817
+ return {
1818
+ requiredIndicator: baseStyleRequiredIndicator(props),
1819
+ helperText: baseStyleHelperText(props)
1820
+ };
1821
+ };
1822
+
1823
+ var Form$1 = {
1824
+ parts: parts$1,
1825
+ baseStyle: baseStyle$4
1826
+ };
1827
+
1828
+ var parts$2 = ['text', 'icon'];
1829
+
1830
+ function baseStyleText(props) {
1831
+ return {
1832
+ color: themeTools.mode('red.500', 'red.300')(props),
1833
+ mt: 1,
1834
+ lineHeight: 'normal',
1835
+ fontSize: 'sm'
1836
+ };
1837
+ }
1838
+
1839
+ function baseStyleIcon(props) {
1840
+ return {
1841
+ mr: '0.5em',
1842
+ color: themeTools.mode('red.500', 'red.300')(props)
1843
+ };
1844
+ }
1845
+
1846
+ var baseStyle$5 = function baseStyle(props) {
1847
+ return {
1848
+ text: baseStyleText(props),
1849
+ icon: baseStyleIcon(props)
1850
+ };
1851
+ };
1852
+
1853
+ var FormError = {
1854
+ parts: parts$2,
1855
+ baseStyle: baseStyle$5
1856
+ };
1857
+
1858
+ var baseStyle$6 = {
1859
+ fontSize: 'md',
1860
+ mr: 3,
1861
+ mb: 1,
1862
+ fontWeight: 'bold',
1863
+ color: 'gray.700',
1864
+ transition: 'all 0.2s',
1865
+ opacity: 1,
1866
+ _disabled: {
1867
+ opacity: 0.4
1868
+ }
1869
+ };
1870
+ var FormLabel = {
1871
+ baseStyle: baseStyle$6
1872
+ };
1873
+
1874
+ var parts$3 = ['field', 'addon'];
1875
+ var baseStyle$7 = {
1876
+ field: {
1877
+ width: '100%',
1878
+ outline: 0,
1879
+ position: 'relative',
1880
+ appearance: 'none',
1881
+ transition: 'all 0.2s',
1882
+ '::placeholder': {
1883
+ color: 'gray.300'
1884
+ }
1885
+ }
1886
+ };
1887
+ var size = {
1888
+ lg: {
1889
+ fontSize: 'md',
1890
+ pl: 3,
1891
+ pr: 3,
1892
+ h: 12,
1893
+ borderRadius: 'md'
1894
+ },
1895
+ md: {
1896
+ fontSize: 'md',
1897
+ pl: 3,
1898
+ pr: 3,
1899
+ h: 10,
1900
+ borderRadius: 'md'
1901
+ },
1902
+ sm: {
1903
+ fontSize: 'sm',
1904
+ pl: 3,
1905
+ pr: 3,
1906
+ h: 8,
1907
+ borderRadius: 'sm'
1908
+ }
1909
+ };
1910
+ var sizes$1 = {
1911
+ lg: {
1912
+ field: size.lg,
1913
+ addon: size.lg
1914
+ },
1915
+ md: {
1916
+ field: size.md,
1917
+ addon: size.md
1918
+ },
1919
+ sm: {
1920
+ field: size.sm,
1921
+ addon: size.sm
1922
+ }
1923
+ };
1924
+
1925
+ function getDefaults(props) {
1926
+ var fc = props.focusBorderColor,
1927
+ ec = props.errorBorderColor;
1928
+ return {
1929
+ focusBorderColor: fc || themeTools.mode('blue.500', 'blue.300')(props),
1930
+ errorBorderColor: ec || themeTools.mode('red.500', 'red.300')(props)
1931
+ };
1932
+ }
1933
+
1934
+ function variantOutline$2(props) {
1935
+ var theme = props.theme;
1936
+
1937
+ var _getDefaults = getDefaults(props),
1938
+ fc = _getDefaults.focusBorderColor,
1939
+ ec = _getDefaults.errorBorderColor;
1940
+
1941
+ return {
1942
+ field: {
1943
+ border: '1px solid',
1944
+ borderColor: 'inherit',
1945
+ bg: 'white',
1946
+ _hover: {
1947
+ borderColor: themeTools.mode('gray.300', 'whiteAlpha.400')(props)
1948
+ },
1949
+ _readOnly: {
1950
+ boxShadow: 'none !important',
1951
+ userSelect: 'all'
1952
+ },
1953
+ _disabled: {
1954
+ opacity: 0.4,
1955
+ cursor: 'not-allowed'
1956
+ },
1957
+ _focus: {
1958
+ zIndex: 1,
1959
+ borderColor: themeTools.getColor(theme, fc),
1960
+ boxShadow: "0 0 0 2px " + themeTools.transparentize(fc, 0.3)(theme)
1961
+ },
1962
+ _invalid: {
1963
+ borderColor: themeTools.getColor(theme, ec),
1964
+ boxShadow: 'none',
1965
+ _focus: {
1966
+ boxShadow: "0 0 0 2px " + themeTools.transparentize(ec, 0.3)(theme)
1967
+ }
1968
+ }
1969
+ },
1970
+ addon: {
1971
+ border: '1px solid',
1972
+ borderColor: themeTools.mode('inherit', 'whiteAlpha.50')(props),
1973
+ bg: themeTools.mode('gray.100', 'whiteAlpha.300')(props)
1974
+ }
1975
+ };
1976
+ }
1977
+
1978
+ function variantFilled(props) {
1979
+ var theme = props.theme;
1980
+
1981
+ var _getDefaults2 = getDefaults(props),
1982
+ fc = _getDefaults2.focusBorderColor,
1983
+ ec = _getDefaults2.errorBorderColor;
1984
+
1985
+ return {
1986
+ field: {
1987
+ border: '2px solid',
1988
+ borderColor: 'transparent',
1989
+ bg: themeTools.mode('gray.50', 'whiteAlpha.50')(props),
1990
+ _hover: {
1991
+ bg: themeTools.mode('gray.100', 'whiteAlpha.100')(props)
1992
+ },
1993
+ _readOnly: {
1994
+ boxShadow: 'none !important',
1995
+ userSelect: 'all'
1996
+ },
1997
+ _disabled: {
1998
+ opacity: 0.4,
1999
+ cursor: 'not-allowed'
2000
+ },
2001
+ _focus: {
2002
+ bg: 'transparent',
2003
+ borderColor: themeTools.getColor(theme, fc)
2004
+ },
2005
+ _invalid: {
2006
+ borderColor: themeTools.getColor(theme, ec)
2007
+ }
2008
+ },
2009
+ addon: {
2010
+ border: '2px solid',
2011
+ borderColor: 'transparent',
2012
+ bg: themeTools.mode('gray.100', 'whiteAlpha.50')(props)
2013
+ }
2014
+ };
2015
+ }
2016
+
2017
+ function variantFlushed(props) {
2018
+ var theme = props.theme;
2019
+
2020
+ var _getDefaults3 = getDefaults(props),
2021
+ fc = _getDefaults3.focusBorderColor,
2022
+ ec = _getDefaults3.errorBorderColor;
2023
+
2024
+ return {
2025
+ field: {
2026
+ borderBottom: '1px solid inherit',
2027
+ borderRadius: 0,
2028
+ pl: 0,
2029
+ pr: 0,
2030
+ bg: 'transparent',
2031
+ _readOnly: {
2032
+ boxShadow: 'none !important',
2033
+ userSelect: 'all'
2034
+ },
2035
+ _focus: {
2036
+ borderColor: themeTools.getColor(theme, fc),
2037
+ boxShadow: "0px 1px 0px 0px " + themeTools.getColor(theme, fc)
2038
+ },
2039
+ _invalid: {
2040
+ borderColor: themeTools.getColor(theme, ec)
2041
+ }
2042
+ },
2043
+ addon: {
2044
+ borderBottom: '2px solid',
2045
+ borderColor: 'inherit',
2046
+ borderRadius: 0,
2047
+ paddingX: 0,
2048
+ bg: 'transparent'
2049
+ }
2050
+ };
2051
+ }
2052
+
2053
+ var variantUnstyled$1 = {
2054
+ field: {
2055
+ bg: 'transparent',
2056
+ pl: 0,
2057
+ pr: 0,
2058
+ height: 'auto'
2059
+ },
2060
+ addon: {
2061
+ bg: 'transparent',
2062
+ pl: 0,
2063
+ pr: 0,
2064
+ height: 'auto'
2065
+ }
2066
+ };
2067
+ var variants$4 = {
2068
+ outline: variantOutline$2,
2069
+ filled: variantFilled,
2070
+ flushed: variantFlushed,
2071
+ unstyled: variantUnstyled$1
2072
+ };
2073
+ var defaultProps$4 = {
2074
+ size: 'lg',
2075
+ variant: 'outline'
2076
+ };
2077
+ var Input$1 = {
2078
+ parts: parts$3,
2079
+ baseStyle: baseStyle$7,
2080
+ sizes: sizes$1,
2081
+ variants: variants$4,
2082
+ defaultProps: defaultProps$4
2083
+ };
2084
+
2085
+ var baseStyle$8 = {
2086
+ color: 'blue.500',
2087
+ textDecoration: 'underline',
2088
+ transition: 'none',
2089
+ _hover: {
2090
+ color: 'orange.500'
2091
+ }
2092
+ };
2093
+
2094
+ function variantSidebar() {
2095
+ return {
2096
+ display: 'flex',
2097
+ alignItems: 'center',
2098
+ // height: '56px',
2099
+ pl: 4,
2100
+ pr: 4,
2101
+ py: 2,
2102
+ color: 'gray.500',
2103
+ lineHeight: 1.5,
2104
+ outline: 'none',
2105
+ transition: 'none',
2106
+ textDecoration: 'none',
2107
+ _focus: {
2108
+ boxShadow: 'none'
2109
+ },
2110
+ _hover: {
2111
+ color: 'primary.500',
2112
+ textDecoration: 'none'
2113
+ },
2114
+ '&.active': {
2115
+ color: 'primary.500',
2116
+ fontWeight: 'semibold'
2117
+ }
2118
+ };
2119
+ } // This variant represent the same as the sidebar one above but when the route matches exactly
2120
+ // and not only for a child sub route match. I did it as a separate variant instead of a
2121
+ // prop to get around React complaining that the dom element was not recognized.
2122
+
2123
+
2124
+ function variantSidebarExact() {
2125
+ // props: Dict
2126
+ var base = variantSidebar(); // const { theme } = props;
2127
+ // const primaryColor = getColor(theme, 'primary.500');
2128
+
2129
+ return _extends({}, base, {
2130
+ '&.active': {// ...base['&.active'],
2131
+ // boxShadow: `inset 3px 0 0 0 ${primaryColor}`,
2132
+ }
2133
+ });
2134
+ }
2135
+
2136
+ function variantSubNavigation(props) {
2137
+ var theme = props.theme;
2138
+ var primaryColor = themeTools.getColor(theme, 'primary.500');
2139
+ return {
2140
+ display: 'block',
2141
+ pl: 10,
2142
+ mb: 3,
2143
+ color: 'gray.900',
2144
+ lineHeight: 'shorter',
2145
+ fontSize: 'sm',
2146
+ outline: 'none',
2147
+ transition: 'none',
2148
+ textDecoration: 'none',
2149
+ _focus: {
2150
+ boxShadow: 'none'
2151
+ },
2152
+ _hover: {
2153
+ color: 'primary.500',
2154
+ textDecoration: 'none'
2155
+ },
2156
+ '&.active': {
2157
+ color: 'primary.500',
2158
+ boxShadow: "inset 3px 0 0 0 " + primaryColor,
2159
+ fontWeight: 'semibold'
2160
+ }
2161
+ };
2162
+ }
2163
+
2164
+ function variantNavlink(props) {
2165
+ var c = props.colorScheme,
2166
+ size = props.size;
2167
+ return {
2168
+ color: 'gray.500',
2169
+ fontWeight: 'normal',
2170
+ textDecoration: 'none',
2171
+ fontSize: size || 'md',
2172
+ _hover: {
2173
+ color: c + ".500",
2174
+ textDecoration: 'none'
2175
+ },
2176
+ '&.active': {
2177
+ color: c + ".500"
2178
+ }
2179
+ };
2180
+ }
2181
+
2182
+ var variants$5 = {
2183
+ sidebar: variantSidebar,
2184
+ sidebarExact: variantSidebarExact,
2185
+ subNavigation: variantSubNavigation,
2186
+ navlink: variantNavlink
2187
+ };
2188
+ var Link = {
2189
+ baseStyle: baseStyle$8,
2190
+ variants: variants$5
2191
+ };
2192
+
2193
+ var parts$4 = ['item', 'command', 'list', 'button', 'groupTitle'];
2194
+
2195
+ function baseStyleList(props) {
2196
+ return {
2197
+ bg: themeTools.mode("#fff", "gray.700")(props),
2198
+ boxShadow: themeTools.mode("2xl", "dark-lg")(props),
2199
+ color: 'inherit',
2200
+ minW: '3xs',
2201
+ py: 2,
2202
+ zIndex: 'docked',
2203
+ borderRadius: 'md',
2204
+ borderWidth: 0,
2205
+ overflow: 'hidden'
2206
+ };
2207
+ }
2208
+
2209
+ function baseStyleItem(props) {
2210
+ return {
2211
+ fontSize: 'sm',
2212
+ py: 2,
2213
+ px: 4,
2214
+ transition: 'background 50ms ease-in 0s',
2215
+ _focus: {
2216
+ bg: themeTools.mode("blue.50", "whiteAlpha.200")(props)
2217
+ },
2218
+ _hover: {
2219
+ bg: themeTools.mode("blue.50", "whiteAlpha.200")(props)
2220
+ },
2221
+ _active: {
2222
+ bg: themeTools.mode("gray.200", "whiteAlpha.200")(props)
2223
+ },
2224
+ _expanded: {
2225
+ bg: themeTools.mode("gray.100", "whiteAlpha.100")(props)
2226
+ },
2227
+ _disabled: {
2228
+ opacity: 0.4,
2229
+ cursor: 'not-allowed'
2230
+ }
2231
+ };
2232
+ }
2233
+
2234
+ var baseStyleGroupTitle = {
2235
+ mx: 4,
2236
+ my: 2,
2237
+ fontWeight: 'semibold',
2238
+ fontSize: 'sm'
2239
+ };
2240
+ var baseStyleCommand = {
2241
+ opacity: 0.6
2242
+ };
2243
+
2244
+ var baseStyle$9 = function baseStyle(props) {
2245
+ return {
2246
+ list: baseStyleList(props),
2247
+ item: baseStyleItem(props),
2248
+ groupTitle: baseStyleGroupTitle,
2249
+ command: baseStyleCommand
2250
+ };
2251
+ };
2252
+
2253
+ var Menu = {
2254
+ parts: parts$4,
2255
+ baseStyle: baseStyle$9
2256
+ };
2257
+
2258
+ var parts$5 = ['overlay', 'dialogContainer', 'dialog', 'header', 'closeButton', 'body', 'footer'];
2259
+ var baseStyleOverlay = {
2260
+ bg: 'blackAlpha.600',
2261
+ zIndex: 'modal'
2262
+ };
2263
+
2264
+ function baseStyleDialogContainer(props) {
2265
+ var scrollBehavior = props.scrollBehavior;
2266
+ return {
2267
+ display: 'flex',
2268
+ zIndex: 'modal',
2269
+ justifyContent: 'center',
2270
+ alignItems: 'flex-start',
2271
+ overflow: scrollBehavior === 'inside' ? 'hidden' : 'auto',
2272
+ WebkitOverflowScrolling: 'touch'
2273
+ };
2274
+ }
2275
+
2276
+ function baseStyleDialog(props) {
2277
+ var isCentered = props.isCentered,
2278
+ scrollBehavior = props.scrollBehavior;
2279
+ return {
2280
+ borderRadius: 'lg',
2281
+ bg: themeTools.mode('white', 'gray.700')(props),
2282
+ color: 'inherit',
2283
+ mt: isCentered ? {
2284
+ base: 8,
2285
+ md: 'auto'
2286
+ } : '3.75rem',
2287
+ mb: isCentered ? {
2288
+ base: 20,
2289
+ md: 'auto'
2290
+ } : '3.75rem',
2291
+ mx: 4,
2292
+ zIndex: 'modal',
2293
+ maxH: scrollBehavior === 'inside' ? 'calc(100vh - 7.5rem)' : undefined,
2294
+ boxShadow: themeTools.mode('xl', 'dark-lg')(props)
2295
+ };
2296
+ }
2297
+
2298
+ var baseStyleHeader = {
2299
+ px: 6,
2300
+ py: 4,
2301
+ minHeight: 20,
2302
+ fontSize: 'xl',
2303
+ display: 'flex',
2304
+ alignItems: 'center',
2305
+ fontWeight: 'bold',
2306
+ bg: 'primary.900',
2307
+ color: 'white',
2308
+ userSelect: 'none'
2309
+ };
2310
+ var baseStyleCloseButton = {
2311
+ position: 'absolute',
2312
+ top: 2,
2313
+ right: 3
2314
+ };
2315
+
2316
+ function baseStyleBody(props) {
2317
+ var scrollBehavior = props.scrollBehavior;
2318
+ return {
2319
+ px: [6, null, 20],
2320
+ py: 10,
2321
+ flex: 1,
2322
+ overflow: scrollBehavior === 'inside' ? 'auto' : undefined
2323
+ };
2324
+ }
2325
+
2326
+ var baseStyleFooter = {
2327
+ px: [6, null, 20],
2328
+ pt: 5,
2329
+ pb: 16
2330
+ };
2331
+
2332
+ var baseStyle$a = function baseStyle(props) {
2333
+ return {
2334
+ overlay: baseStyleOverlay,
2335
+ dialogContainer: baseStyleDialogContainer(props),
2336
+ dialog: baseStyleDialog(props),
2337
+ header: baseStyleHeader,
2338
+ closeButton: baseStyleCloseButton,
2339
+ body: baseStyleBody(props),
2340
+ footer: baseStyleFooter
2341
+ };
2342
+ };
2343
+ /**
2344
+ * Since the `maxWidth` prop references theme.sizes internally,
2345
+ * we can leverage that to size our modals.
2346
+ */
2347
+
2348
+
2349
+ function getSize(value) {
2350
+ var commonBodyFooterStyles = {
2351
+ xs: {
2352
+ px: 8,
2353
+ pb: 8
2354
+ },
2355
+ sm: {
2356
+ px: 8,
2357
+ pb: 8
2358
+ },
2359
+ md: {
2360
+ px: 8,
2361
+ pb: 8
2362
+ },
2363
+ lg: {
2364
+ px: 10,
2365
+ pb: 10
2366
+ },
2367
+ xl: {
2368
+ px: 12,
2369
+ pb: 10
2370
+ }
2371
+ };
2372
+ var bodyStyles = {
2373
+ xs: {
2374
+ py: 6
2375
+ },
2376
+ sm: {
2377
+ py: 6
2378
+ },
2379
+ md: {
2380
+ py: 6
2381
+ },
2382
+ lg: {
2383
+ py: 8
2384
+ },
2385
+ xl: {
2386
+ py: 8
2387
+ }
2388
+ };
2389
+ var footerStyles = {
2390
+ xs: {
2391
+ pb: 8
2392
+ },
2393
+ sm: {
2394
+ pb: 8
2395
+ },
2396
+ md: {
2397
+ pb: 8
2398
+ },
2399
+ lg: {
2400
+ pb: 10
2401
+ },
2402
+ xl: {
2403
+ pb: 10
2404
+ }
2405
+ };
2406
+
2407
+ if (value === 'full') {
2408
+ return {
2409
+ content: {
2410
+ maxW: '100vw',
2411
+ h: '100vh'
2412
+ }
2413
+ };
2414
+ }
2415
+
2416
+ return {
2417
+ content: {
2418
+ maxW: value
2419
+ },
2420
+ body: _extends({}, commonBodyFooterStyles[value], bodyStyles[value]),
2421
+ footer: _extends({}, commonBodyFooterStyles[value], footerStyles[value])
2422
+ };
2423
+ }
2424
+
2425
+ var sizes$2 = {
2426
+ xs: /*#__PURE__*/getSize('xs'),
2427
+ sm: /*#__PURE__*/getSize('sm'),
2428
+ md: /*#__PURE__*/getSize('md'),
2429
+ lg: /*#__PURE__*/getSize('lg'),
2430
+ xl: /*#__PURE__*/getSize('xl'),
2431
+ '2xl': /*#__PURE__*/getSize('2xl'),
2432
+ '3xl': /*#__PURE__*/getSize('3xl'),
2433
+ '4xl': /*#__PURE__*/getSize('4xl'),
2434
+ '5xl': /*#__PURE__*/getSize('5xl'),
2435
+ '6xl': /*#__PURE__*/getSize('6xl'),
2436
+ full: /*#__PURE__*/getSize('full')
2437
+ };
2438
+
2439
+ var warningVariant = function warningVariant() {
2440
+ return {
2441
+ header: {
2442
+ bg: 'warning.300',
2443
+ color: 'black'
2444
+ }
2445
+ };
2446
+ };
2447
+
2448
+ var variants$6 = {
2449
+ warning: warningVariant
2450
+ };
2451
+ var defaultProps$5 = {
2452
+ size: 'lg',
2453
+ isCentered: true
2454
+ };
2455
+ var Modal = {
2456
+ parts: parts$5,
2457
+ baseStyle: baseStyle$a,
2458
+ sizes: sizes$2,
2459
+ variants: variants$6,
2460
+ defaultProps: defaultProps$5
2461
+ };
2462
+
2463
+ var sizes$3 = Input$1.sizes,
2464
+ defaultProps$6 = Input$1.defaultProps,
2465
+ variants$7 = Input$1.variants;
2466
+ var parts$6 = ['field', 'icon'];
2467
+
2468
+ function baseStyleField(props) {
2469
+ return _extends({}, Input$1.baseStyle.field, {
2470
+ appearance: 'none',
2471
+ paddingBottom: '1px',
2472
+ lineHeight: 'normal',
2473
+ bg: 'white',
2474
+ '> option': {
2475
+ bg: themeTools.mode('white', 'gray.700')(props)
2476
+ }
2477
+ });
2478
+ }
2479
+
2480
+ var baseStyleInput = {
2481
+ color: 'currentColor',
2482
+ fontSize: '1.25rem',
2483
+ _disabled: {
2484
+ opacity: 0.5
2485
+ }
2486
+ };
2487
+
2488
+ var baseStyle$b = function baseStyle(props) {
2489
+ return {
2490
+ field: baseStyleField(props),
2491
+ icon: baseStyleInput
2492
+ };
2493
+ };
2494
+
2495
+ var Select = {
2496
+ parts: parts$6,
2497
+ baseStyle: baseStyle$b,
2498
+ sizes: sizes$3,
2499
+ variants: variants$7,
2500
+ defaultProps: defaultProps$6
2501
+ };
2502
+
2503
+ var parts$7 = ['track', 'thumb'];
2504
+
2505
+ function baseStyleTrack(props) {
2506
+ var c = props.colorScheme,
2507
+ theme = props.theme;
2508
+ return {
2509
+ borderRadius: 'full',
2510
+ p: '2px',
2511
+ transition: 'all 120ms',
2512
+ bg: themeTools.mode('gray.300', 'whiteAlpha.400')(props),
2513
+ _focus: {
2514
+ boxShadow: "0 0 0 3px " + themeTools.getColor(theme, 'gray.100')
2515
+ },
2516
+ _disabled: {
2517
+ opacity: 0.4,
2518
+ cursor: 'not-allowed'
2519
+ },
2520
+ _checked: {
2521
+ bg: themeTools.mode(c + ".500", c + ".200")(props),
2522
+ _focus: {
2523
+ boxShadow: "0 0 0 3px " + themeTools.getColor(theme, c + ".200")
2524
+ }
2525
+ }
2526
+ };
2527
+ }
2528
+
2529
+ var baseStyleThumb = {
2530
+ bg: 'white',
2531
+ transition: 'transform 250ms',
2532
+ borderRadius: 'full',
2533
+ transform: 'translateX(0)'
2534
+ };
2535
+
2536
+ var baseStyle$c = function baseStyle(props) {
2537
+ return {
2538
+ track: baseStyleTrack(props),
2539
+ thumb: baseStyleThumb
2540
+ };
2541
+ };
2542
+
2543
+ var sizes$4 = {
2544
+ sm: {
2545
+ track: {
2546
+ w: '1.375rem',
2547
+ h: '0.75rem'
2548
+ },
2549
+ thumb: {
2550
+ w: '0.75rem',
2551
+ h: '0.75rem',
2552
+ _checked: {
2553
+ transform: 'translateX(0.625rem)'
2554
+ }
2555
+ }
2556
+ },
2557
+ md: {
2558
+ track: {
2559
+ w: '1.875rem',
2560
+ h: '1rem'
2561
+ },
2562
+ thumb: {
2563
+ w: '1rem',
2564
+ h: '1rem',
2565
+ _checked: {
2566
+ transform: 'translateX(0.875rem)'
2567
+ }
2568
+ }
2569
+ },
2570
+ lg: {
2571
+ track: {
2572
+ w: '2.875rem',
2573
+ h: '1.5rem'
2574
+ },
2575
+ thumb: {
2576
+ w: '1.5rem',
2577
+ h: '1.5rem',
2578
+ _checked: {
2579
+ transform: 'translateX(1.375rem)'
2580
+ }
2581
+ }
2582
+ }
2583
+ };
2584
+ var defaultProps$7 = {
2585
+ size: 'md',
2586
+ colorScheme: 'blue'
2587
+ };
2588
+ var Switch = {
2589
+ parts: parts$7,
2590
+ baseStyle: baseStyle$c,
2591
+ sizes: sizes$4,
2592
+ defaultProps: defaultProps$7
2593
+ };
2594
+
2595
+ var parts$8 = ['root', 'tablist', 'tab', 'tabpanel', 'indicator'];
2596
+
2597
+ function baseStyleRoot(props) {
2598
+ var orientation = props.orientation;
2599
+ return {
2600
+ display: orientation === 'vertical' ? 'flex' : 'block'
2601
+ };
2602
+ }
2603
+
2604
+ function baseStyleTab(props) {
2605
+ var isFitted = props.isFitted;
2606
+ return {
2607
+ flex: isFitted ? 1 : undefined,
2608
+ transition: 'all 0.2s',
2609
+ _focus: {
2610
+ zIndex: 1,
2611
+ boxShadow: 'outline'
2612
+ }
2613
+ };
2614
+ }
2615
+
2616
+ function baseStyleTablist(props) {
2617
+ var _props$align = props.align,
2618
+ align = _props$align === void 0 ? 'start' : _props$align,
2619
+ orientation = props.orientation;
2620
+ var alignments = {
2621
+ end: 'flex-end',
2622
+ center: 'center',
2623
+ start: 'flex-start'
2624
+ };
2625
+ return {
2626
+ justifyContent: alignments[align],
2627
+ flexDirection: orientation === 'vertical' ? 'column' : 'row'
2628
+ };
2629
+ }
2630
+
2631
+ var baseStyleTabpanel = {
2632
+ p: 4
2633
+ };
2634
+
2635
+ var baseStyle$d = function baseStyle(props) {
2636
+ return {
2637
+ root: baseStyleRoot(props),
2638
+ tab: baseStyleTab(props),
2639
+ tablist: baseStyleTablist(props),
2640
+ tabpanel: baseStyleTabpanel
2641
+ };
2642
+ };
2643
+
2644
+ var sizes$5 = {
2645
+ sm: {
2646
+ tab: {
2647
+ py: '0.25rem',
2648
+ px: 6,
2649
+ fontSize: '0.85rem'
2650
+ }
2651
+ },
2652
+ md: {
2653
+ tab: {
2654
+ fontSize: '1rem',
2655
+ py: '0.75rem',
2656
+ px: 6
2657
+ }
2658
+ },
2659
+ lg: {
2660
+ tab: {
2661
+ fontSize: {
2662
+ base: '1rem',
2663
+ sm: '1.15rem'
2664
+ },
2665
+ py: '0.75rem',
2666
+ px: 6
2667
+ }
2668
+ }
2669
+ };
2670
+
2671
+ function variantLine(props) {
2672
+ var _tablist, _tab;
2673
+
2674
+ var c = props.colorScheme,
2675
+ orientation = props.orientation;
2676
+ var isVertical = orientation === 'vertical';
2677
+ var borderProp = isVertical ? 'borderLeft' : 'borderBottom';
2678
+ var marginProp = isVertical ? 'ml' : 'mb';
2679
+ var _selected = {
2680
+ color: themeTools.mode(c + ".600", c + ".300")(props),
2681
+ _after: {
2682
+ content: '""',
2683
+ display: 'block',
2684
+ position: 'absolute',
2685
+ bottom: '-1px',
2686
+ left: 0,
2687
+ right: 0,
2688
+ height: '3px',
2689
+ bg: 'currentColor'
2690
+ }
2691
+ };
2692
+ return {
2693
+ tablist: (_tablist = {}, _tablist[borderProp] = '1px solid', _tablist.borderColor = 'gray.100', _tablist),
2694
+ tab: (_tab = {
2695
+ position: 'relative'
2696
+ }, _tab[borderProp] = 0, _tab.borderColor = 'transparent', _tab[marginProp] = 0, _tab['&.active'] = _selected, _tab._selected = _selected, _tab._active = {
2697
+ bg: themeTools.mode(c + ".50", 'whiteAlpha.300')(props)
2698
+ }, _tab._disabled = {
2699
+ opacity: 0.4,
2700
+ cursor: 'not-allowed'
2701
+ }, _tab)
2702
+ };
2703
+ }
2704
+
2705
+ function variantEnclosed(props) {
2706
+ var c = props.colorScheme;
2707
+ return {
2708
+ tab: {
2709
+ borderTopRadius: 'md',
2710
+ border: '1px solid',
2711
+ borderColor: 'transparent',
2712
+ mb: '-1px',
2713
+ _selected: {
2714
+ color: themeTools.mode(c + ".600", c + ".300")(props),
2715
+ borderColor: 'inherit',
2716
+ borderBottomColor: themeTools.mode("white", "gray.800")(props)
2717
+ }
2718
+ },
2719
+ tablist: {
2720
+ mb: '-1px',
2721
+ borderBottom: '1px solid',
2722
+ borderColor: 'gray.100'
2723
+ }
2724
+ };
2725
+ }
2726
+
2727
+ function variantEnclosedColored(props) {
2728
+ var c = props.colorScheme;
2729
+ return {
2730
+ tab: {
2731
+ border: '1px solid',
2732
+ borderColor: 'inherit',
2733
+ bg: themeTools.mode("gray.50", "whiteAlpha.50")(props),
2734
+ mb: '-1px',
2735
+ _notLast: {
2736
+ mr: '-1px'
2737
+ },
2738
+ _selected: {
2739
+ bg: themeTools.mode("#fff", 'gray.800')(props),
2740
+ color: themeTools.mode(c + ".600", c + ".300")(props),
2741
+ borderColor: 'inherit',
2742
+ borderTopColor: 'currentColor',
2743
+ borderBottomColor: 'transparent'
2744
+ }
2745
+ },
2746
+ tablist: {
2747
+ mb: '-1px',
2748
+ borderBottom: '1px solid',
2749
+ borderColor: 'gray.100'
2750
+ }
2751
+ };
2752
+ }
2753
+
2754
+ function variantSoftRounded(props) {
2755
+ var c = props.colorScheme,
2756
+ theme = props.theme;
2757
+ return {
2758
+ tab: {
2759
+ borderRadius: 'full',
2760
+ fontWeight: 'semibold',
2761
+ color: 'gray.600',
2762
+ _selected: {
2763
+ color: themeTools.getColor(theme, c + ".700"),
2764
+ bg: themeTools.getColor(theme, c + ".100")
2765
+ }
2766
+ }
2767
+ };
2768
+ }
2769
+
2770
+ function variantSolidRounded(props) {
2771
+ var c = props.colorScheme;
2772
+ return {
2773
+ tab: {
2774
+ borderRadius: 'full',
2775
+ fontWeight: 'semibold',
2776
+ color: themeTools.mode('gray.600', 'inherit')(props),
2777
+ _selected: {
2778
+ color: themeTools.mode("#fff", 'gray.800')(props),
2779
+ bg: themeTools.mode(c + ".600", c + ".300")(props)
2780
+ }
2781
+ }
2782
+ };
2783
+ }
2784
+
2785
+ var variantUnstyled$2 = {};
2786
+ var variantSimple = {
2787
+ tab: {
2788
+ position: 'relative',
2789
+ borderColor: 'transparent',
2790
+ '&.active': {
2791
+ color: colors.blue[500],
2792
+ bg: 'transparent',
2793
+ borderBottom: '1px solid blue.500'
2794
+ },
2795
+ _selected: {
2796
+ color: colors.blue[500],
2797
+ bg: 'transparent',
2798
+ _after: {
2799
+ content: '""',
2800
+ display: 'block',
2801
+ position: 'absolute',
2802
+ bottom: '-1px',
2803
+ left: 0,
2804
+ right: 0,
2805
+ height: '3px',
2806
+ bg: 'currentColor'
2807
+ }
2808
+ },
2809
+ _active: {
2810
+ bg: 'transparent'
2811
+ }
2812
+ }
2813
+ };
2814
+ var variants$8 = {
2815
+ line: variantLine,
2816
+ enclosed: variantEnclosed,
2817
+ 'enclosed-colored': variantEnclosedColored,
2818
+ 'soft-rounded': variantSoftRounded,
2819
+ 'solid-rounded': variantSolidRounded,
2820
+ unstyled: variantUnstyled$2,
2821
+ simple: variantSimple
2822
+ };
2823
+ var defaultProps$8 = {
2824
+ size: 'md',
2825
+ variant: 'line',
2826
+ colorScheme: 'blue'
2827
+ };
2828
+ var Tabs = {
2829
+ parts: parts$8,
2830
+ baseStyle: baseStyle$d,
2831
+ sizes: sizes$5,
2832
+ variants: variants$8,
2833
+ defaultProps: defaultProps$8
2834
+ };
2835
+
2836
+ var baseStyle$e = /*#__PURE__*/_extends({}, Input$1.baseStyle.field, {
2837
+ display: 'block',
2838
+ paddingY: '8px',
2839
+ minHeight: '80px',
2840
+ lineHeight: 'short'
2841
+ });
2842
+
2843
+ var codeVariant = function codeVariant(props) {
2844
+ var _focus = Input$1.variants.outline(props).field._focus;
2845
+
2846
+ return {
2847
+ bg: 'blue.900',
2848
+ color: 'white',
2849
+ fontFamily: 'mono',
2850
+ fontSize: 'sm',
2851
+ border: '1px',
2852
+ borderColor: 'blue.900',
2853
+ borderRadius: 'lg',
2854
+ p: 6,
2855
+ wordBreak: 'break-all',
2856
+ _focus: _focus
2857
+ };
2858
+ };
2859
+
2860
+ var variants$9 = {
2861
+ outline: function outline(props) {
2862
+ return Input$1.variants.outline(props).field;
2863
+ },
2864
+ flushed: function flushed(props) {
2865
+ return Input$1.variants.flushed(props).field;
2866
+ },
2867
+ filled: function filled(props) {
2868
+ return Input$1.variants.filled(props).field;
2869
+ },
2870
+ code: function code(props) {
2871
+ return codeVariant(props);
2872
+ },
2873
+ unstyled: Input$1.variants.unstyled.field
2874
+ };
2875
+ var sizes$6 = {
2876
+ sm: Input$1.sizes.sm.field,
2877
+ md: Input$1.sizes.md.field,
2878
+ lg: Input$1.sizes.lg.field
2879
+ };
2880
+ var defaultProps$9 = {
2881
+ size: 'lg',
2882
+ variant: 'outline'
2883
+ };
2884
+ var Textarea = {
2885
+ baseStyle: baseStyle$e,
2886
+ sizes: sizes$6,
2887
+ variants: variants$9,
2888
+ defaultProps: defaultProps$9
2889
+ };
2890
+
2891
+ var defaultProps$a = react.Text.defaultProps;
2892
+ var baseStyle$f = {
2893
+ fontWeight: typography.fontWeights.normal,
2894
+ fontFamily: typography.fonts.base,
2895
+ fontSize: typography.fontSizes.sm,
2896
+ lineHeight: typography.lineHeights.base,
2897
+ letterSpacing: typography.letterSpacings.wide
2898
+ };
2899
+
2900
+ function variantHeader() {
2901
+ return _extends({}, baseStyle$f, {
2902
+ fontWeight: typography.fontWeights.bold,
2903
+ fontSize: typography.fontSizes['3xl'],
2904
+ lineHeight: typography.lineHeights[8],
2905
+ letterSpacing: typography.letterSpacings.wider
2906
+ });
2907
+ }
2908
+
2909
+ function variantSubheader() {
2910
+ return _extends({}, baseStyle$f, {
2911
+ fontWeight: typography.fontWeights.semibold,
2912
+ fontSize: typography.fontSizes['lg'],
2913
+ lineHeight: typography.lineHeights[5],
2914
+ letterSpacing: typography.letterSpacings.wide
2915
+ });
2916
+ }
2917
+
2918
+ function variantParagraph() {
2919
+ return baseStyle$f;
2920
+ }
2921
+
2922
+ var variants$a = {
2923
+ header: variantHeader,
2924
+ subheader: variantSubheader,
2925
+ paragraph: variantParagraph
2926
+ };
2927
+ var Text$1 = {
2928
+ baseStyle: baseStyle$f,
2929
+ variants: variants$a,
2930
+ defaultProps: /*#__PURE__*/_extends({}, defaultProps$a, {
2931
+ variant: variants$a.paragraph
2932
+ })
2933
+ };
2934
+
2935
+ var styles = {
2936
+ global: {
2937
+ 'html, body, #root': {},
2938
+ body: {
2939
+ fontFamily: 'body',
2940
+ color: 'black',
2941
+ overflow: {
2942
+ base: 'visible',
2943
+ lg: 'hidden'
2944
+ }
2945
+ },
2946
+ '*, *::before, *::after': {
2947
+ borderColor: 'gray.200'
2948
+ },
2949
+ '*::placeholder': {
2950
+ color: 'primary'
2951
+ }
2952
+ }
2953
+ };
2954
+
2955
+ var customXQChakraTheme = /*#__PURE__*/react.extendTheme( /*#__PURE__*/_extends({
2956
+ breakpoints: breakpoints,
2957
+ colors: colors,
2958
+ shadows: shadows
2959
+ }, typography, {
2960
+ components: {
2961
+ Alert: Alert,
2962
+ Badge: Badge,
2963
+ Button: Button$1,
2964
+ Code: Code,
2965
+ Form: Form$1,
2966
+ FormError: FormError,
2967
+ FormLabel: FormLabel,
2968
+ Input: Input$1,
2969
+ Link: Link,
2970
+ Menu: Menu,
2971
+ Modal: Modal,
2972
+ Select: Select,
2973
+ Switch: Switch,
2974
+ Tabs: Tabs,
2975
+ Textarea: Textarea,
2976
+ Text: Text$1
2977
+ },
2978
+ styles: styles
2979
+ }));
2980
+
2981
+ /**
2982
+ * A functional React wrapper component utilized to consume the custom XQ theme via `ChakraProvider`
2983
+ */
2984
+
2985
+ var XQThemeProvider = function XQThemeProvider(_ref) {
2986
+ var children = _ref.children;
2987
+ return /*#__PURE__*/React__default.createElement(react.ChakraProvider, {
2988
+ theme: customXQChakraTheme,
2989
+ resetCSS: true
2990
+ }, children);
2991
+ };
2992
+
2993
+ function formatErrorResponse(error) {
2994
+ var _error$response, _error$response$data;
2995
+
2996
+ // This is an error returned from the backend
2997
+ if ((_error$response = error.response) != null && (_error$response$data = _error$response.data) != null && _error$response$data.status) {
2998
+ var _error$response2, _error$response2$data;
2999
+
3000
+ return {
3001
+ message: (_error$response2 = error.response) == null ? void 0 : (_error$response2$data = _error$response2.data) == null ? void 0 : _error$response2$data.status
3002
+ };
3003
+ } // This is any generic error
3004
+
3005
+
3006
+ if (error instanceof Error) {
3007
+ return {
3008
+ message: error.message
3009
+ };
3010
+ } // This would happen if a developer threw an error that isn't actually an error class. Don't do that...
3011
+
3012
+
3013
+ console.error('Caught an error that is not an instance of an error! Replacing with a proper error but please fix this.', error);
3014
+ return {
3015
+ message: 'An unknown error has occurred'
3016
+ };
3017
+ }
3018
+
3019
+ exports.Banner = Banner;
3020
+ exports.Breadcrumbs = Breadcrumbs;
3021
+ exports.Button = Button;
3022
+ exports.Form = Form;
3023
+ exports.FormSection = FormSection;
3024
+ exports.GoogleButton = GoogleButton;
3025
+ exports.Input = Input;
3026
+ exports.Layout = Layout;
3027
+ exports.LoadingIndicator = LoadingIndicator;
3028
+ exports.SpinnerButton = SpinnerButton;
3029
+ exports.Table = Table;
3030
+ exports.TabsWrapper = TabsWrapper;
3031
+ exports.Text = Text;
3032
+ exports.XQThemeProvider = XQThemeProvider;
3033
+ exports.formatErrorResponse = formatErrorResponse;
3034
+ //# sourceMappingURL=ui-core.cjs.development.js.map