@marigold/components 0.0.2 → 0.3.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 (224) hide show
  1. package/CHANGELOG.md +294 -0
  2. package/dist/ActionGroup/ActionGroup.d.ts +8 -0
  3. package/dist/ActionGroup/ActionGroup.stories.d.ts +5 -0
  4. package/dist/ActionGroup/index.d.ts +1 -0
  5. package/dist/Alert/Alert.d.ts +16 -3
  6. package/dist/Alert/Alert.stories.d.ts +5 -0
  7. package/dist/Badge/Badge.d.ts +11 -5
  8. package/dist/Badge/Badge.stories.d.ts +5 -0
  9. package/dist/Box.d.ts +2 -0
  10. package/dist/Button/Button.d.ts +9 -5
  11. package/dist/Button/Button.stories.d.ts +5 -0
  12. package/dist/Card/Card.d.ts +14 -0
  13. package/dist/Card/Card.stories.d.ts +5 -0
  14. package/dist/Card/index.d.ts +1 -0
  15. package/dist/Checkbox/Checkbox.d.ts +17 -5
  16. package/dist/Checkbox/Checkbox.stories.d.ts +5 -0
  17. package/dist/Checkbox/CheckboxIcons.d.ts +9 -0
  18. package/dist/Column/Column.d.ts +6 -4
  19. package/dist/Column/Column.stories.d.ts +5 -0
  20. package/dist/Columns/Columns.d.ts +10 -0
  21. package/dist/Columns/Columns.stories.d.ts +5 -0
  22. package/dist/Columns/index.d.ts +1 -0
  23. package/dist/Container/Container.d.ts +5 -4
  24. package/dist/Container/Container.stories.d.ts +5 -0
  25. package/dist/Dialog/Dialog.d.ts +17 -0
  26. package/dist/Dialog/Dialog.stories.d.ts +5 -0
  27. package/dist/Dialog/ModalDialog.d.ts +8 -0
  28. package/dist/Dialog/index.d.ts +1 -0
  29. package/dist/Divider/Divider.d.ts +10 -3
  30. package/dist/Divider/Divider.stories.d.ts +5 -0
  31. package/dist/Field/Field.d.ts +10 -5
  32. package/dist/Field/Field.stories.d.ts +5 -0
  33. package/dist/Image/Image.d.ts +11 -5
  34. package/dist/Image/Image.stories.d.ts +5 -0
  35. package/dist/Inline/Inline.d.ts +7 -0
  36. package/dist/Inline/Inline.stories.d.ts +5 -0
  37. package/dist/Inline/index.d.ts +1 -0
  38. package/dist/Input/Input.d.ts +10 -4
  39. package/dist/Input/Input.stories.d.ts +5 -0
  40. package/dist/Label/Label.d.ts +18 -5
  41. package/dist/Label/Label.stories.d.ts +5 -0
  42. package/dist/Link/Link.d.ts +10 -5
  43. package/dist/Link/Link.stories.d.ts +5 -0
  44. package/dist/Menu/Menu.d.ts +11 -4
  45. package/dist/Menu/Menu.stories.d.ts +5 -0
  46. package/dist/MenuItem/MenuItem.d.ts +11 -4
  47. package/dist/MenuItem/MenuItem.stories.d.ts +5 -0
  48. package/dist/Message/Message.d.ts +10 -4
  49. package/dist/Message/Message.stories.d.ts +5 -0
  50. package/dist/Provider/MarigoldProvider.d.ts +11 -0
  51. package/dist/Provider/index.d.ts +3 -0
  52. package/dist/Radio/Radio.d.ts +17 -4
  53. package/dist/Radio/RadioIcons.d.ts +10 -0
  54. package/dist/Select/ListBox.d.ts +9 -0
  55. package/dist/Select/ListBoxSection.d.ts +9 -0
  56. package/dist/Select/Option.d.ts +9 -0
  57. package/dist/Select/Popover.d.ts +9 -0
  58. package/dist/Select/Select.d.ts +27 -3
  59. package/dist/Select/Select.stories.d.ts +5 -0
  60. package/dist/Slider/Slider.d.ts +10 -4
  61. package/dist/Slider/Slider.stories.d.ts +5 -0
  62. package/dist/Stack/Stack.d.ts +7 -0
  63. package/dist/Stack/Stack.stories.d.ts +5 -0
  64. package/dist/Stack/index.d.ts +1 -0
  65. package/dist/Text/Text.d.ts +17 -7
  66. package/dist/Text/Text.stories.d.ts +5 -0
  67. package/dist/Textarea/Textarea.d.ts +15 -4
  68. package/dist/Textarea/Textarea.stories.d.ts +5 -0
  69. package/dist/ValidationMessage/ValidationMessage.d.ts +10 -4
  70. package/dist/ValidationMessage/ValidationMessage.stories.d.ts +5 -0
  71. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -0
  72. package/dist/VisuallyHidden/VisuallyHidden.stories.d.ts +5 -0
  73. package/dist/VisuallyHidden/index.d.ts +1 -0
  74. package/dist/components.cjs.development.js +1276 -461
  75. package/dist/components.cjs.development.js.map +1 -1
  76. package/dist/components.cjs.production.min.js +1 -1
  77. package/dist/components.cjs.production.min.js.map +1 -1
  78. package/dist/components.esm.js +1229 -461
  79. package/dist/components.esm.js.map +1 -1
  80. package/dist/index.d.ts +10 -3
  81. package/dist/theme.d.ts +23 -28
  82. package/package.json +27 -4
  83. package/src/ActionGroup/ActionGroup.stories.tsx +47 -0
  84. package/src/ActionGroup/ActionGroup.test.tsx +83 -0
  85. package/src/ActionGroup/ActionGroup.tsx +32 -0
  86. package/src/ActionGroup/index.ts +1 -0
  87. package/src/Alert/Alert.stories.tsx +32 -0
  88. package/src/Alert/Alert.test.tsx +34 -23
  89. package/src/Alert/Alert.tsx +48 -24
  90. package/src/Badge/Badge.stories.tsx +38 -0
  91. package/src/Badge/Badge.test.tsx +14 -40
  92. package/src/Badge/Badge.tsx +31 -28
  93. package/src/Box.ts +2 -0
  94. package/src/Button/Button.stories.tsx +57 -0
  95. package/src/Button/Button.test.tsx +76 -13
  96. package/src/Button/Button.tsx +58 -23
  97. package/src/Card/Card.stories.tsx +41 -0
  98. package/src/Card/Card.test.tsx +71 -0
  99. package/src/Card/Card.tsx +48 -0
  100. package/src/Card/index.ts +1 -0
  101. package/src/Checkbox/Checkbox.stories.mdx +90 -112
  102. package/src/Checkbox/Checkbox.stories.tsx +78 -0
  103. package/src/Checkbox/Checkbox.test.tsx +139 -24
  104. package/src/Checkbox/Checkbox.tsx +95 -58
  105. package/src/Checkbox/CheckboxIcons.tsx +59 -0
  106. package/src/Column/Column.stories.tsx +33 -0
  107. package/src/Column/Column.test.tsx +15 -59
  108. package/src/Column/Column.tsx +21 -19
  109. package/src/Columns/Columns.stories.tsx +75 -0
  110. package/src/Columns/Columns.test.tsx +113 -0
  111. package/src/Columns/Columns.tsx +69 -0
  112. package/src/Columns/index.ts +1 -0
  113. package/src/Container/Container.stories.tsx +14 -0
  114. package/src/Container/Container.test.tsx +8 -49
  115. package/src/Container/Container.tsx +8 -19
  116. package/src/Dialog/Dialog.stories.tsx +88 -0
  117. package/src/Dialog/Dialog.test.tsx +158 -0
  118. package/src/Dialog/Dialog.tsx +130 -0
  119. package/src/Dialog/ModalDialog.tsx +76 -0
  120. package/src/Dialog/index.ts +1 -0
  121. package/src/Divider/Divider.stories.tsx +30 -0
  122. package/src/Divider/Divider.test.tsx +14 -6
  123. package/src/Divider/Divider.tsx +20 -13
  124. package/src/Field/Field.stories.tsx +110 -0
  125. package/src/Field/Field.test.tsx +75 -34
  126. package/src/Field/Field.tsx +50 -43
  127. package/src/Image/Image.stories.tsx +34 -0
  128. package/src/Image/Image.test.tsx +6 -3
  129. package/src/Image/Image.tsx +21 -15
  130. package/src/Inline/Inline.stories.tsx +39 -0
  131. package/src/Inline/Inline.test.tsx +99 -0
  132. package/src/Inline/Inline.tsx +38 -0
  133. package/src/Inline/index.ts +1 -0
  134. package/src/Input/Input.stories.tsx +54 -0
  135. package/src/Input/Input.test.tsx +9 -5
  136. package/src/Input/Input.tsx +21 -16
  137. package/src/Label/Label.stories.tsx +41 -0
  138. package/src/Label/Label.test.tsx +41 -6
  139. package/src/Label/Label.tsx +59 -18
  140. package/src/Link/Link.stories.tsx +35 -0
  141. package/src/Link/Link.test.tsx +52 -22
  142. package/src/Link/Link.tsx +40 -20
  143. package/src/Menu/Menu.stories.tsx +62 -0
  144. package/src/Menu/Menu.test.tsx +13 -7
  145. package/src/Menu/Menu.tsx +44 -38
  146. package/src/MenuItem/MenuItem.stories.tsx +30 -0
  147. package/src/MenuItem/MenuItem.test.tsx +23 -14
  148. package/src/MenuItem/MenuItem.tsx +29 -18
  149. package/src/Message/Message.stories.tsx +30 -0
  150. package/src/Message/Message.test.tsx +5 -2
  151. package/src/Message/Message.tsx +48 -40
  152. package/src/Provider/MarigoldProvider.test.tsx +136 -0
  153. package/src/Provider/MarigoldProvider.tsx +47 -0
  154. package/src/Provider/index.ts +4 -0
  155. package/src/Radio/Radio.stories.mdx +91 -94
  156. package/src/Radio/Radio.test.tsx +92 -16
  157. package/src/Radio/Radio.tsx +114 -50
  158. package/src/Radio/RadioIcons.tsx +39 -0
  159. package/src/Select/ListBox.tsx +40 -0
  160. package/src/Select/ListBoxSection.tsx +40 -0
  161. package/src/Select/Option.tsx +48 -0
  162. package/src/Select/Popover.tsx +50 -0
  163. package/src/Select/Select.stories.tsx +81 -0
  164. package/src/Select/Select.test.tsx +311 -43
  165. package/src/Select/Select.tsx +174 -28
  166. package/src/Slider/Slider.stories.tsx +24 -0
  167. package/src/Slider/Slider.test.tsx +11 -7
  168. package/src/Slider/Slider.tsx +30 -15
  169. package/src/Stack/Stack.stories.tsx +57 -0
  170. package/src/Stack/Stack.test.tsx +138 -0
  171. package/src/Stack/Stack.tsx +39 -0
  172. package/src/Stack/index.ts +1 -0
  173. package/src/Text/Text.stories.tsx +61 -0
  174. package/src/Text/Text.test.tsx +41 -36
  175. package/src/Text/Text.tsx +55 -29
  176. package/src/Textarea/Textarea.stories.tsx +64 -0
  177. package/src/Textarea/Textarea.test.tsx +41 -5
  178. package/src/Textarea/Textarea.tsx +57 -17
  179. package/src/ValidationMessage/ValidationMessage.stories.tsx +27 -0
  180. package/src/ValidationMessage/ValidationMessage.test.tsx +19 -14
  181. package/src/ValidationMessage/ValidationMessage.tsx +36 -21
  182. package/src/VisuallyHidden/VisuallyHidden.stories.tsx +19 -0
  183. package/src/VisuallyHidden/VisuallyHidden.test.tsx +10 -0
  184. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -0
  185. package/src/VisuallyHidden/index.ts +1 -0
  186. package/src/index.ts +11 -3
  187. package/src/theme.ts +49 -28
  188. package/dist/Heading/Heading.d.ts +0 -5
  189. package/dist/Heading/index.d.ts +0 -1
  190. package/dist/Hidden/Hidden.d.ts +0 -6
  191. package/dist/Hidden/index.d.ts +0 -1
  192. package/dist/Svg/Svg.d.ts +0 -6
  193. package/dist/Svg/index.d.ts +0 -1
  194. package/src/Alert/Alert.stories.mdx +0 -49
  195. package/src/Badge/Badge.stories.mdx +0 -41
  196. package/src/Button/Button.stories.mdx +0 -155
  197. package/src/Column/Column.stories.mdx +0 -76
  198. package/src/Container/Container.stories.mdx +0 -42
  199. package/src/Divider/Divider.stories.mdx +0 -42
  200. package/src/Field/Field.stories.mdx +0 -57
  201. package/src/Heading/Heading.stories.mdx +0 -79
  202. package/src/Heading/Heading.test.tsx +0 -63
  203. package/src/Heading/Heading.tsx +0 -22
  204. package/src/Heading/index.ts +0 -1
  205. package/src/Hidden/Hidden.stories.mdx +0 -64
  206. package/src/Hidden/Hidden.test.tsx +0 -87
  207. package/src/Hidden/Hidden.tsx +0 -25
  208. package/src/Hidden/index.ts +0 -1
  209. package/src/Image/Image.stories.mdx +0 -40
  210. package/src/Input/Input.stories.mdx +0 -44
  211. package/src/Label/Label.stories.mdx +0 -34
  212. package/src/Link/Link.stories.mdx +0 -37
  213. package/src/Menu/Menu.stories.mdx +0 -47
  214. package/src/MenuItem/MenuItem.stories.mdx +0 -32
  215. package/src/Message/Message.stories.mdx +0 -43
  216. package/src/Select/Select.stories.mdx +0 -43
  217. package/src/Slider/Slider.stories.mdx +0 -57
  218. package/src/Svg/Svg.stories.mdx +0 -47
  219. package/src/Svg/Svg.test.tsx +0 -76
  220. package/src/Svg/Svg.tsx +0 -31
  221. package/src/Svg/index.ts +0 -1
  222. package/src/Text/Text.stories.mdx +0 -60
  223. package/src/Textarea/Textarea.stories.mdx +0 -34
  224. package/src/ValidationMessage/ValidationMessage.stories.mdx +0 -36
@@ -1,8 +1,42 @@
1
- import React from 'react';
2
- import { system, useStyles } from '@marigold/system';
3
- import { SquareChecked, SquareUnchecked, Required, Exclamation, Info, Notification, CircleChecked, CircleUnchecked, ArrowDown } from '@marigold/icons';
4
- import { Label as Label$1, Input as Input$1, ValidationMessage as ValidationMessage$1, Button as Button$1, Link as Link$1, Heading as Heading$1 } from '@marigold/components';
5
- import b2bTheme from '@marigold/theme-b2b';
1
+ import React, { Children, forwardRef, useRef, useState, useEffect } from 'react';
2
+ import flattenChildren from 'react-keyed-flatten-children';
3
+ import { Box, SVG, conditional, useTheme, ThemeProvider, Global, __defaultTheme } from '@marigold/system';
4
+ export { Box, ThemeProvider, useTheme } from '@marigold/system';
5
+ import { Check, Notification, Exclamation, Required, Close, Info, ArrowUp, ArrowDown } from '@marigold/icons';
6
+ import { useButton } from '@react-aria/button';
7
+ import { useFocusRing, FocusScope } from '@react-aria/focus';
8
+ import { VisuallyHidden } from '@react-aria/visually-hidden';
9
+ export { VisuallyHidden } from '@react-aria/visually-hidden';
10
+ import { useCheckbox } from '@react-aria/checkbox';
11
+ import { useToggleState } from '@react-stately/toggle';
12
+ import { useOverlayTriggerState } from '@react-stately/overlays';
13
+ import { useOverlay, usePreventScroll, useModal, OverlayContainer, OverlayProvider, DismissButton, useOverlayTrigger, useOverlayPosition } from '@react-aria/overlays';
14
+ import { useDialog } from '@react-aria/dialog';
15
+ import { useLink } from '@react-aria/link';
16
+ export { SSRProvider } from '@react-aria/ssr';
17
+ import { useSelectState } from '@react-stately/select';
18
+ import { mergeProps } from '@react-aria/utils';
19
+ import { useSelect, HiddenSelect } from '@react-aria/select';
20
+ import { useOption, useListBoxSection, useListBox } from '@react-aria/listbox';
21
+ export { Item, Section } from '@react-stately/collections';
22
+
23
+ function _extends() {
24
+ _extends = Object.assign || function (target) {
25
+ for (var i = 1; i < arguments.length; i++) {
26
+ var source = arguments[i];
27
+
28
+ for (var key in source) {
29
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
30
+ target[key] = source[key];
31
+ }
32
+ }
33
+ }
34
+
35
+ return target;
36
+ };
37
+
38
+ return _extends.apply(this, arguments);
39
+ }
6
40
 
7
41
  function _objectWithoutPropertiesLoose(source, excluded) {
8
42
  if (source == null) return {};
@@ -19,562 +53,1296 @@ function _objectWithoutPropertiesLoose(source, excluded) {
19
53
  return target;
20
54
  }
21
55
 
22
- var Alert = /*#__PURE__*/system(function (_ref) {
23
- var _ref$variant = _ref.variant,
24
- variant = _ref$variant === void 0 ? 'info' : _ref$variant,
25
- className = _ref.className,
56
+ function _unsupportedIterableToArray(o, minLen) {
57
+ if (!o) return;
58
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
59
+ var n = Object.prototype.toString.call(o).slice(8, -1);
60
+ if (n === "Object" && o.constructor) n = o.constructor.name;
61
+ if (n === "Map" || n === "Set") return Array.from(o);
62
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
63
+ }
64
+
65
+ function _arrayLikeToArray(arr, len) {
66
+ if (len == null || len > arr.length) len = arr.length;
67
+
68
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
69
+
70
+ return arr2;
71
+ }
72
+
73
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
74
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
75
+ if (it) return (it = it.call(o)).next.bind(it);
76
+
77
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
78
+ if (it) o = it;
79
+ var i = 0;
80
+ return function () {
81
+ if (i >= o.length) return {
82
+ done: true
83
+ };
84
+ return {
85
+ done: false,
86
+ value: o[i++]
87
+ };
88
+ };
89
+ }
90
+
91
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
92
+ }
93
+
94
+ var _excluded = ["space", "align", "children"];
95
+ var ALIGNMENT = {
96
+ top: 'flex-start',
97
+ center: 'center',
98
+ bottom: 'flex-end'
99
+ };
100
+ var Inline = function Inline(_ref) {
101
+ var _ref$space = _ref.space,
102
+ space = _ref$space === void 0 ? 'none' : _ref$space,
103
+ _ref$align = _ref.align,
104
+ align = _ref$align === void 0 ? 'center' : _ref$align,
26
105
  children = _ref.children,
27
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "className", "children"]);
28
-
29
- var classNames = useStyles({
30
- variant: "alerts." + variant,
31
- display: 'flex',
32
- alignItems: 'center',
33
- px: 3,
34
- py: 2,
35
- borderRadius: 4
36
- }, className);
37
- return React.createElement("div", Object.assign({
38
- className: classNames
106
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
107
+
108
+ return React.createElement(Box, Object.assign({
109
+ display: "inline-flex",
110
+ css: {
111
+ '> * + *': {
112
+ pl: space
113
+ }
114
+ },
115
+ alignItems: ALIGNMENT[align]
116
+ }, props), Children.map(flattenChildren(children), function (child) {
117
+ return React.createElement(Box, null, React.cloneElement(child, {}, child.props.children));
118
+ }));
119
+ };
120
+
121
+ var _excluded$1 = ["space", "align", "children"];
122
+ var ALIGNMENT$1 = {
123
+ left: 'flex-start',
124
+ center: 'center',
125
+ right: 'flex-end'
126
+ };
127
+ var Stack = function Stack(_ref) {
128
+ var _ref$space = _ref.space,
129
+ space = _ref$space === void 0 ? 'none' : _ref$space,
130
+ _ref$align = _ref.align,
131
+ align = _ref$align === void 0 ? 'left' : _ref$align,
132
+ children = _ref.children,
133
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
134
+
135
+ return React.createElement(Box, Object.assign({}, props, {
136
+ display: "flex",
137
+ flexDirection: "column",
138
+ alignItems: ALIGNMENT$1[align],
139
+ css: {
140
+ '> * + *': {
141
+ pt: space
142
+ }
143
+ }
144
+ }), Children.map(flattenChildren(children), function (child) {
145
+ return React.createElement(Box, null, React.cloneElement(child, {}, child.props.children));
146
+ }));
147
+ };
148
+
149
+ var _excluded$2 = ["space", "verticalAlignment", "children"];
150
+ // ---------------
151
+
152
+ var ActionGroup = function ActionGroup(_ref) {
153
+ var _ref$space = _ref.space,
154
+ space = _ref$space === void 0 ? 'none' : _ref$space,
155
+ _ref$verticalAlignmen = _ref.verticalAlignment,
156
+ verticalAlignment = _ref$verticalAlignmen === void 0 ? false : _ref$verticalAlignmen,
157
+ children = _ref.children,
158
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
159
+
160
+ return verticalAlignment ? React.createElement(Stack, Object.assign({
161
+ space: space
162
+ }, props), children) : React.createElement(Inline, Object.assign({
163
+ space: space
39
164
  }, props), children);
40
- });
165
+ };
41
166
 
42
- var Badge = /*#__PURE__*/system(function (_ref) {
167
+ var _excluded$3 = ["variant", "children"];
168
+ var ICON_MAP = {
169
+ success: Check,
170
+ warning: Notification,
171
+ error: Exclamation
172
+ }; // Component
173
+ // ---------------
174
+
175
+ var Alert = function Alert(_ref) {
176
+ var _ref$variant = _ref.variant,
177
+ variant = _ref$variant === void 0 ? 'success' : _ref$variant,
178
+ children = _ref.children,
179
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$3);
180
+
181
+ var Icon = ICON_MAP[variant];
182
+ return React.createElement(Box, Object.assign({}, props, {
183
+ display: "flex",
184
+ variant: "alert." + variant
185
+ }), React.createElement(Box, {
186
+ display: "inline-block",
187
+ alignItems: "center",
188
+ width: "32px",
189
+ height: "32px",
190
+ bg: variant
191
+ }, React.createElement(Box, {
192
+ as: Icon,
193
+ size: 12,
194
+ color: "#fff",
195
+ bg: variant,
196
+ m: 10
197
+ })), React.createElement(Box, {
198
+ mx: "16px"
199
+ }, children));
200
+ };
201
+
202
+ var _excluded$4 = ["variant", "bgColor", "borderColor", "children"];
203
+ // ---------------
204
+
205
+ var Badge = function Badge(_ref) {
43
206
  var _ref$variant = _ref.variant,
44
- variant = _ref$variant === void 0 ? 'badge' : _ref$variant,
207
+ variant = _ref$variant === void 0 ? '' : _ref$variant,
208
+ _ref$bgColor = _ref.bgColor,
209
+ bgColor = _ref$bgColor === void 0 ? 'transparent' : _ref$bgColor,
45
210
  _ref$borderColor = _ref.borderColor,
46
- borderColor = _ref$borderColor === void 0 ? 'inherit' : _ref$borderColor,
47
- _ref$backgroundColor = _ref.backgroundColor,
48
- backgroundColor = _ref$backgroundColor === void 0 ? 'inherit' : _ref$backgroundColor,
49
- className = _ref.className,
211
+ borderColor = _ref$borderColor === void 0 ? 'transparent' : _ref$borderColor,
50
212
  children = _ref.children,
51
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "borderColor", "backgroundColor", "className", "children"]);
52
-
53
- var classNames = useStyles({
54
- variant: "content." + variant,
55
- border: '1px solid ' + borderColor,
56
- bg: backgroundColor
57
- }, className);
58
- return React.createElement("div", Object.assign({
59
- className: classNames
213
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$4);
214
+
215
+ return React.createElement(Box, Object.assign({
216
+ css: {
217
+ bg: bgColor,
218
+ borderColor: borderColor
219
+ },
220
+ variant: "badge." + variant
60
221
  }, props), children);
222
+ };
223
+
224
+ var _excluded$5 = ["as", "variant", "size", "space", "disabled", "children", "className"];
225
+ // ---------------
226
+
227
+ var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
228
+ var _ref$as = _ref.as,
229
+ as = _ref$as === void 0 ? 'button' : _ref$as,
230
+ _ref$variant = _ref.variant,
231
+ variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
232
+ _ref$size = _ref.size,
233
+ size = _ref$size === void 0 ? 'large' : _ref$size,
234
+ _ref$space = _ref.space,
235
+ space = _ref$space === void 0 ? 'none' : _ref$space,
236
+ disabled = _ref.disabled,
237
+ children = _ref.children,
238
+ className = _ref.className,
239
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$5);
240
+
241
+ var _useButton = useButton(_extends({}, props, {
242
+ elementType: typeof as === 'string' ? as : 'span',
243
+ isDisabled: disabled
244
+ }), ref),
245
+ buttonProps = _useButton.buttonProps;
246
+
247
+ return React.createElement(Box, Object.assign({}, buttonProps, props, {
248
+ as: as,
249
+ display: "inline-flex",
250
+ alignItems: "center",
251
+ variant: ["button." + variant, "button." + size],
252
+ className: className,
253
+ ref: ref,
254
+ css: {
255
+ columnGap: space
256
+ }
257
+ }), children);
61
258
  });
62
259
 
63
- var Button = /*#__PURE__*/system(function (_ref) {
260
+ var _excluded$6 = ["variant", "title", "width", "className", "children"];
261
+ // ---------------
262
+
263
+ var Card = function Card(_ref) {
64
264
  var _ref$variant = _ref.variant,
65
- variant = _ref$variant === void 0 ? 'primary.large' : _ref$variant,
265
+ variant = _ref$variant === void 0 ? '' : _ref$variant,
266
+ title = _ref.title,
267
+ width = _ref.width,
66
268
  className = _ref.className,
67
269
  children = _ref.children,
68
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "className", "children"]);
69
-
70
- var classNames = useStyles({
71
- variant: "button." + variant
72
- }, className);
73
- return React.createElement("button", Object.assign({
74
- className: classNames
75
- }, props), React.createElement("span", {
76
- className: useStyles({
77
- display: 'inline-flex',
78
- alignItems: 'center'
79
- })
80
- }, children));
81
- });
270
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$6);
82
271
 
83
- var Checkbox = /*#__PURE__*/system(function (_ref) {
84
- var id = _ref.id,
85
- _ref$variant = _ref.variant,
86
- variant = _ref$variant === void 0 ? 'checkbox' : _ref$variant,
87
- label = _ref.label,
88
- required = _ref.required,
89
- className = _ref.className,
90
- props = _objectWithoutPropertiesLoose(_ref, ["id", "variant", "label", "required", "className"]);
91
-
92
- var checkboxStyles = useStyles({
93
- position: 'absolute',
94
- opacity: 0,
95
- zIndex: -1,
96
- width: 1,
97
- height: 1,
98
- overflow: 'hidden'
99
- });
100
- var checkboxIconStyles = useStyles({
101
- variant: "form." + variant,
102
- ariaHidden: 'true',
103
- mr: 2,
104
- verticalAlign: 'middle',
105
- ':hover': {
106
- cursor: 'pointer'
272
+ return React.createElement(Box, Object.assign({}, props, {
273
+ variant: "card." + variant,
274
+ maxWidth: width,
275
+ className: className
276
+ }), title && React.createElement(Box, {
277
+ as: "h2",
278
+ variant: "text.h2",
279
+ pb: "small"
280
+ }, title), children);
281
+ };
282
+
283
+ var CheckboxIcon = function CheckboxIcon(_ref) {
284
+ var _ref$variant = _ref.variant,
285
+ variant = _ref$variant === void 0 ? '' : _ref$variant,
286
+ _ref$checked = _ref.checked,
287
+ checked = _ref$checked === void 0 ? false : _ref$checked,
288
+ _ref$disabled = _ref.disabled,
289
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
290
+ _ref$error = _ref.error,
291
+ error = _ref$error === void 0 ? false : _ref$error;
292
+ var conditionalStates = disabled ? {
293
+ disabled: disabled
294
+ } : {
295
+ checked: checked,
296
+ error: error
297
+ };
298
+ return React.createElement(SVG, {
299
+ width: "16",
300
+ height: "32",
301
+ viewBox: "0 0 16 32",
302
+ fill: "none",
303
+ "aria-hidden": "true"
304
+ }, React.createElement(Box, {
305
+ as: "rect",
306
+ x: "0.5",
307
+ y: "8.5",
308
+ width: "15px",
309
+ height: "15px",
310
+ rx: "1.5",
311
+ variant: conditional("checkbox." + variant, conditionalStates)
312
+ }), checked && React.createElement(Box, {
313
+ __baseCSS: {
314
+ fill: 'gray00'
107
315
  },
108
- 'input:disabled ~ &': {
109
- color: 'muted',
110
- cursor: 'not-allowed'
316
+ as: "path",
317
+ fillRule: "evenodd",
318
+ clipRule: "evenodd",
319
+ d: "M13.9571 12.8338L12.4085 11.2852L6.08699 17.6007L3.59887 15.1126L2.04163 16.6588L6.08682 20.704L13.9571 12.8338Z"
320
+ }));
321
+ };
322
+
323
+ var _excluded$7 = ["variant", "required", "color", "children"],
324
+ _excluded2 = ["required", "children"];
325
+ var LabelBase = function LabelBase(_ref) {
326
+ var _ref$variant = _ref.variant,
327
+ variant = _ref$variant === void 0 ? 'above' : _ref$variant,
328
+ _ref$color = _ref.color,
329
+ color = _ref$color === void 0 ? 'text' : _ref$color,
330
+ children = _ref.children,
331
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
332
+
333
+ return React.createElement(Box, Object.assign({}, props, {
334
+ as: "label",
335
+ __baseCSS: {
336
+ color: color
337
+ },
338
+ variant: "label." + variant
339
+ }), children);
340
+ };
341
+ var Label = function Label(_ref2) {
342
+ var required = _ref2.required,
343
+ children = _ref2.children,
344
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
345
+
346
+ return required ? React.createElement(Box, {
347
+ as: "span",
348
+ display: "inline-flex",
349
+ alignItems: "center"
350
+ }, React.createElement(LabelBase, Object.assign({}, props), children), required && React.createElement(Box, {
351
+ as: Required,
352
+ size: 16,
353
+ css: {
354
+ color: 'error'
111
355
  }
112
- }, className);
113
- var checkbox = React.createElement("div", {
114
- className: useStyles({
115
- display: 'inline-block'
116
- })
117
- }, React.createElement("input", Object.assign({
356
+ })) : React.createElement(LabelBase, Object.assign({}, props), children);
357
+ };
358
+
359
+ var _excluded$8 = ["variant", "children", "className"];
360
+ // ---------------
361
+
362
+ var ValidationMessage = function ValidationMessage(_ref) {
363
+ var _ref$variant = _ref.variant,
364
+ variant = _ref$variant === void 0 ? 'error' : _ref$variant,
365
+ children = _ref.children,
366
+ className = _ref.className,
367
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$8);
368
+
369
+ return React.createElement(Box, Object.assign({
370
+ as: "span",
371
+ display: "flex",
372
+ alignItems: "center",
373
+ variant: "validation." + variant,
374
+ className: className
375
+ }, props), children);
376
+ };
377
+
378
+ var _excluded$9 = ["error"],
379
+ _excluded2$1 = ["label", "required", "labelVariant", "error", "errorMessage"];
380
+
381
+ var CheckboxInput = function CheckboxInput(_ref) {
382
+ var error = _ref.error,
383
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$9);
384
+
385
+ var state = useToggleState(props);
386
+ var ref = React.useRef(null);
387
+
388
+ var _useCheckbox = useCheckbox(props, state, ref),
389
+ inputProps = _useCheckbox.inputProps;
390
+
391
+ var _useFocusRing = useFocusRing(),
392
+ focusProps = _useFocusRing.focusProps;
393
+
394
+ return React.createElement(Box, {
395
+ pr: "xsmall"
396
+ }, React.createElement(VisuallyHidden, null, React.createElement(Box, Object.assign({
397
+ as: "input",
118
398
  type: "checkbox",
119
- id: id,
120
- className: checkboxStyles
121
- }, props)), props.checked ? React.createElement(SquareChecked, {
122
- className: checkboxIconStyles
123
- }) : React.createElement(SquareUnchecked, {
124
- className: checkboxIconStyles
399
+ disabled: props.disabled
400
+ }, inputProps, focusProps, {
401
+ ref: ref
402
+ }, props))), React.createElement(CheckboxIcon, {
403
+ checked: props.checked,
404
+ variant: props.variant,
405
+ disabled: props.disabled,
406
+ error: error
125
407
  }));
126
- return React.createElement(React.Fragment, null, label ? React.createElement(Label$1, {
127
- htmlFor: id
128
- }, checkbox, label, required ? React.createElement(Required, {
408
+ };
409
+
410
+ var Checkbox = function Checkbox(_ref2) {
411
+ var label = _ref2.label,
412
+ required = _ref2.required,
413
+ _ref2$labelVariant = _ref2.labelVariant,
414
+ labelVariant = _ref2$labelVariant === void 0 ? 'inline' : _ref2$labelVariant,
415
+ error = _ref2.error,
416
+ errorMessage = _ref2.errorMessage,
417
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
418
+
419
+ return React.createElement(React.Fragment, null, React.createElement(Box, {
420
+ as: Label,
421
+ __baseCSS: {
422
+ ':hover': {
423
+ cursor: props.disabled ? 'not-allowed' : 'pointer'
424
+ }
425
+ },
426
+ htmlFor: props.id,
427
+ required: required,
428
+ variant: "label." + labelVariant,
429
+ color: props.disabled ? 'disabled' : 'text'
430
+ }, React.createElement(Box, Object.assign({
431
+ as: CheckboxInput,
432
+ error: error
433
+ }, props)), label), error && errorMessage && React.createElement(ValidationMessage, null, React.createElement(Exclamation, {
129
434
  size: 16
130
- }) : '') : React.createElement(React.Fragment, null, checkbox));
131
- });
435
+ }), errorMessage));
436
+ };
132
437
 
133
- var Column = /*#__PURE__*/system(function (_ref) {
134
- var _ref$variant = _ref.variant,
135
- variant = _ref$variant === void 0 ? 'column' : _ref$variant,
136
- _ref$width = _ref.width,
438
+ var _excluded$a = ["width", "children"];
439
+
440
+ var transform = function transform(width) {
441
+ if (Array.isArray(width)) {
442
+ return width.map(function (v) {
443
+ return v / 12 * 100 + "%";
444
+ });
445
+ }
446
+
447
+ return width / 12 * 100 + "%";
448
+ };
449
+
450
+ var Column = function Column(_ref) {
451
+ var _ref$width = _ref.width,
137
452
  width = _ref$width === void 0 ? 12 : _ref$width,
453
+ children = _ref.children,
454
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$a);
455
+
456
+ return React.createElement(Box, Object.assign({}, props, {
457
+ width: transform(width)
458
+ }), children);
459
+ };
460
+
461
+ var _excluded$b = ["space", "horizontalAlign", "verticalAlign", "className", "children"];
462
+
463
+ var useAlignment = function useAlignment(direction) {
464
+ switch (direction) {
465
+ case 'right':
466
+ return 'flex-end';
467
+
468
+ case 'bottom':
469
+ return 'flex-end';
470
+
471
+ case 'center':
472
+ return 'center';
473
+ }
474
+
475
+ return 'flex-start';
476
+ };
477
+
478
+ var Columns = function Columns(_ref) {
479
+ var _ref$space = _ref.space,
480
+ space = _ref$space === void 0 ? 'none' : _ref$space,
481
+ _ref$horizontalAlign = _ref.horizontalAlign,
482
+ horizontalAlign = _ref$horizontalAlign === void 0 ? 'left' : _ref$horizontalAlign,
483
+ _ref$verticalAlign = _ref.verticalAlign,
484
+ verticalAlign = _ref$verticalAlign === void 0 ? 'top' : _ref$verticalAlign,
138
485
  className = _ref.className,
139
486
  children = _ref.children,
140
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "width", "className", "children"]);
141
-
142
- var classNames = useStyles({
143
- variant: "layout." + variant,
144
- width: width / 12 * 100 + "%"
145
- }, className);
146
- return React.createElement("div", Object.assign({
147
- className: classNames
148
- }, props), children);
487
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$b);
488
+
489
+ var justifyContent = useAlignment(horizontalAlign);
490
+ var alignItems = useAlignment(verticalAlign);
491
+ /**
492
+ * transform space string to space value from theme
493
+ */
494
+
495
+ var _useTheme = useTheme(),
496
+ css = _useTheme.css;
497
+
498
+ var spaceObject = css({
499
+ space: space
500
+ });
501
+ var spaceValue = Object.values(spaceObject)[0];
502
+ return React.createElement(Box, {
503
+ p: space,
504
+ display: "flex",
505
+ className: className
506
+ }, React.createElement(Box, Object.assign({
507
+ width: "calc(100% + " + spaceValue + "px)",
508
+ m: -spaceValue / 2 + "px",
509
+ display: "flex",
510
+ flexWrap: "wrap",
511
+ alignItems: alignItems,
512
+ justifyContent: justifyContent
513
+ }, props), Children.map(flattenChildren(children), function (child) {
514
+ return React.cloneElement(child, {}, React.createElement(Box, {
515
+ css: {
516
+ p: spaceValue / 2 + "px"
517
+ }
518
+ }, child.props.children));
519
+ })));
520
+ };
521
+
522
+ var _excluded$c = ["as", "variant", "children", "className", "align", "color", "cursor", "outline", "userSelect"];
523
+ // ---------------
524
+
525
+ var Text = /*#__PURE__*/forwardRef(function (_ref, ref) {
526
+ var _ref$as = _ref.as,
527
+ as = _ref$as === void 0 ? 'span' : _ref$as,
528
+ _ref$variant = _ref.variant,
529
+ variant = _ref$variant === void 0 ? 'body' : _ref$variant,
530
+ children = _ref.children,
531
+ className = _ref.className,
532
+ align = _ref.align,
533
+ color = _ref.color,
534
+ cursor = _ref.cursor,
535
+ outline = _ref.outline,
536
+ userSelect = _ref.userSelect,
537
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$c);
538
+
539
+ return React.createElement(Box, Object.assign({}, props, {
540
+ as: as,
541
+ variant: "text." + variant,
542
+ css: {
543
+ textAlign: align,
544
+ color: color,
545
+ cursor: cursor,
546
+ outline: outline,
547
+ userSelect: userSelect
548
+ },
549
+ className: className,
550
+ ref: ref
551
+ }), children);
149
552
  });
150
553
 
151
- var Divider = /*#__PURE__*/system(function (_ref) {
554
+ var _excluded$d = ["variant", "backdropVariant", "children"],
555
+ _excluded2$2 = ["isDismissable", "isOpen", "onClose"];
556
+ // ---------------
557
+
558
+ var ModalDialog = function ModalDialog(_ref) {
559
+ var variant = _ref.variant,
560
+ _ref$backdropVariant = _ref.backdropVariant,
561
+ backdropVariant = _ref$backdropVariant === void 0 ? 'backdrop' : _ref$backdropVariant,
562
+ children = _ref.children,
563
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$d);
564
+
565
+ var isDismissable = props.isDismissable,
566
+ isOpen = props.isOpen,
567
+ onClose = props.onClose,
568
+ restProps = _objectWithoutPropertiesLoose(props, _excluded2$2); // Handle interacting outside the dialog and pressing
569
+ // the Escape key to close the modal.
570
+
571
+
572
+ var ref = React.useRef();
573
+
574
+ var _useOverlay = useOverlay({
575
+ isDismissable: isDismissable,
576
+ isOpen: isOpen,
577
+ onClose: onClose
578
+ }, ref),
579
+ overlayProps = _useOverlay.overlayProps,
580
+ underlayProps = _useOverlay.underlayProps; // Prevent scrolling while the modal is open, and hide content
581
+ // outside the modal from screen readers.
582
+
583
+
584
+ usePreventScroll();
585
+
586
+ var _useModal = useModal(),
587
+ modalProps = _useModal.modalProps;
588
+
589
+ var _useDialog = useDialog(props, ref),
590
+ dialogProps = _useDialog.dialogProps;
591
+
592
+ return React.createElement(Box, Object.assign({
593
+ __baseCSS: {
594
+ display: 'grid',
595
+ placeItems: 'center',
596
+ position: 'fixed',
597
+ zIndex: 100,
598
+ top: 0,
599
+ left: 0,
600
+ bottom: 0,
601
+ right: 0
602
+ },
603
+ variant: "dialog." + backdropVariant
604
+ }, underlayProps), React.createElement(FocusScope, {
605
+ contain: true,
606
+ restoreFocus: true,
607
+ autoFocus: true
608
+ }, React.createElement(Box, Object.assign({}, overlayProps, dialogProps, modalProps, {
609
+ ref: ref,
610
+ variant: variant ? "dialog." + variant : "dialog"
611
+ }, restProps), children)));
612
+ };
613
+
614
+ var _excluded$e = ["backdropVariant", "children", "className", "close", "isOpen", "title", "variant"];
615
+ // ---------------
616
+
617
+ var Dialog = function Dialog(_ref) {
618
+ var backdropVariant = _ref.backdropVariant,
619
+ children = _ref.children,
620
+ className = _ref.className,
621
+ close = _ref.close,
622
+ isOpen = _ref.isOpen,
623
+ title = _ref.title,
624
+ variant = _ref.variant,
625
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$e);
626
+
627
+ var closeButtonRef = React.useRef(); // useButton ensures that focus management is handled correctly,
628
+ // across all browsers. Focus is restored to the button once the
629
+ // dialog closes.
630
+
631
+ var _useButton = useButton({
632
+ onPress: function onPress() {
633
+ return close();
634
+ }
635
+ }, closeButtonRef),
636
+ closeButtonProps = _useButton.buttonProps;
637
+
638
+ return React.createElement(OverlayContainer, null, React.createElement(ModalDialog, Object.assign({
639
+ variant: variant,
640
+ backdropVariant: backdropVariant,
641
+ isOpen: isOpen,
642
+ onClose: close,
643
+ isDismissable: true
644
+ }, props), React.createElement(Box, {
645
+ __baseCSS: {
646
+ display: 'flex',
647
+ justifyContent: 'space-between',
648
+ borderRadius: 'small',
649
+ pl: 'large',
650
+ pb: 'large'
651
+ },
652
+ className: className
653
+ }, React.createElement(Box, {
654
+ pt: "medium"
655
+ }, title && React.createElement(Text, {
656
+ as: "h4",
657
+ variant: "headline4"
658
+ }, title), children), React.createElement(Box, {
659
+ __baseCSS: {
660
+ display: 'flex',
661
+ justifyContent: 'flex-end',
662
+ alignItems: 'start',
663
+ paddingTop: 'xsmall',
664
+ paddingX: 'xsmall'
665
+ }
666
+ }, React.createElement(Box, Object.assign({
667
+ as: Button,
668
+ __baseCSS: {
669
+ color: 'text',
670
+ bg: 'transparent',
671
+ lineHeight: 'xsmall',
672
+ px: 'xxsmall',
673
+ ':hover': {
674
+ color: 'text',
675
+ bg: 'transparent',
676
+ cursor: 'pointer'
677
+ },
678
+ ':focus': {
679
+ outline: 0
680
+ }
681
+ }
682
+ }, closeButtonProps, {
683
+ ref: closeButtonRef
684
+ }), React.createElement(Close, {
685
+ size: 16
686
+ }))))));
687
+ }; // get the overlayTriggerState and openButton props for using the dialog component
688
+
689
+ var useDialogButtonProps = function useDialogButtonProps() {
690
+ var state = useOverlayTriggerState({});
691
+ var openButtonRef = React.useRef();
692
+
693
+ var _useButton2 = useButton({
694
+ onPress: function onPress() {
695
+ return state.open();
696
+ }
697
+ }, openButtonRef),
698
+ openButtonProps = _useButton2.buttonProps;
699
+
700
+ return {
701
+ state: state,
702
+ openButtonProps: openButtonProps,
703
+ openButtonRef: openButtonRef
704
+ };
705
+ };
706
+
707
+ var _excluded$f = ["variant"];
708
+ // ---------------
709
+
710
+ var Divider = function Divider(_ref) {
152
711
  var _ref$variant = _ref.variant,
153
712
  variant = _ref$variant === void 0 ? 'regular' : _ref$variant,
154
- className = _ref.className,
155
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "className"]);
713
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$f);
156
714
 
157
- var classNames = useStyles({
715
+ return React.createElement(Box, Object.assign({}, props, {
716
+ as: "hr",
158
717
  variant: "divider." + variant
159
- }, className);
160
- return React.createElement("hr", Object.assign({
161
- className: classNames
162
- }, props));
163
- });
718
+ }));
719
+ };
164
720
 
165
- var Field = /*#__PURE__*/system(function (_ref) {
721
+ var _excluded$g = ["variant", "type"];
722
+ // ---------------
723
+
724
+ var Input = function Input(_ref) {
166
725
  var _ref$variant = _ref.variant,
167
- variant = _ref$variant === void 0 ? 'field' : _ref$variant,
726
+ variant = _ref$variant === void 0 ? '' : _ref$variant,
168
727
  _ref$type = _ref.type,
169
728
  type = _ref$type === void 0 ? 'text' : _ref$type,
729
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$g);
730
+
731
+ return React.createElement(Box, Object.assign({}, props, {
732
+ as: "input",
733
+ type: type,
734
+ variant: "input." + variant
735
+ }));
736
+ };
737
+
738
+ var _excluded$h = ["type", "variant", "labelVariant", "htmlFor", "label", "required", "error", "errorMessage", "disabled"];
739
+ // ---------------
740
+
741
+ var Field = function Field(_ref) {
742
+ var _ref$type = _ref.type,
743
+ type = _ref$type === void 0 ? 'text' : _ref$type,
744
+ _ref$variant = _ref.variant,
745
+ variant = _ref$variant === void 0 ? '' : _ref$variant,
746
+ _ref$labelVariant = _ref.labelVariant,
747
+ labelVariant = _ref$labelVariant === void 0 ? 'above' : _ref$labelVariant,
170
748
  htmlFor = _ref.htmlFor,
171
749
  label = _ref.label,
750
+ required = _ref.required,
172
751
  error = _ref.error,
173
- _ref$className = _ref.className,
174
- className = _ref$className === void 0 ? '' : _ref$className,
175
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "type", "htmlFor", "label", "error", "className"]);
752
+ errorMessage = _ref.errorMessage,
753
+ disabled = _ref.disabled,
754
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$h);
176
755
 
177
- var classNames = useStyles({
178
- variant: "form." + variant
179
- }, className);
180
- return React.createElement("div", null, React.createElement(Label$1, Object.assign({
756
+ return React.createElement(React.Fragment, null, React.createElement(Label, {
757
+ variant: labelVariant,
181
758
  htmlFor: htmlFor,
182
- className: classNames
183
- }, props), label, error ? React.createElement(Required, {
184
- size: 16,
185
- fill: b2bTheme.colors.red60
186
- }) : ''), React.createElement(Input$1, {
759
+ required: required
760
+ }, label), React.createElement(Input, Object.assign({}, props, {
187
761
  type: type,
188
- id: htmlFor
189
- }), error ? React.createElement(ValidationMessage$1, null, React.createElement(Exclamation, {
762
+ id: htmlFor,
763
+ disabled: disabled,
764
+ variant: variant
765
+ })), error && errorMessage && React.createElement(ValidationMessage, null, React.createElement(Exclamation, {
190
766
  size: 16
191
- }), error) : '');
192
- });
767
+ }), errorMessage));
768
+ };
193
769
 
194
- var Heading = /*#__PURE__*/system(function (_ref) {
195
- var _ref$variant = _ref.variant,
196
- variant = _ref$variant === void 0 ? 'h2' : _ref$variant,
197
- children = _ref.children,
198
- className = _ref.className,
199
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "children", "className"]);
200
-
201
- var classNames = useStyles({
202
- variant: "text." + variant
203
- }, className);
204
- return React.createElement("h2", Object.assign({
205
- className: classNames
206
- }, props), children);
207
- });
770
+ var _excluded$i = ["variant"];
771
+ // ---------------
208
772
 
209
- var Hidden = /*#__PURE__*/system(function (_ref) {
773
+ var Image = function Image(_ref) {
210
774
  var _ref$variant = _ref.variant,
211
- variant = _ref$variant === void 0 ? 'hidden' : _ref$variant,
212
- _ref$show = _ref.show,
213
- show = _ref$show === void 0 ? false : _ref$show,
214
- className = _ref.className,
215
- children = _ref.children,
216
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "show", "className", "children"]);
217
-
218
- var classNames = useStyles({
219
- variant: "layout." + variant,
220
- display: show ? 'display' : 'none'
221
- }, className);
222
- return React.createElement("span", Object.assign({
223
- className: classNames
224
- }, props), children);
225
- });
775
+ variant = _ref$variant === void 0 ? 'fullWidth' : _ref$variant,
776
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$i);
226
777
 
227
- var Image = /*#__PURE__*/system(function (_ref) {
228
- var _ref$variant = _ref.variant,
229
- variant = _ref$variant === void 0 ? 'images' : _ref$variant,
230
- _ref$alt = _ref.alt,
231
- alt = _ref$alt === void 0 ? '' : _ref$alt,
232
- className = _ref.className,
233
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "alt", "className"]);
234
-
235
- var classNames = useStyles({
236
- variant: "content." + variant
237
- }, className);
238
- return React.createElement("img", Object.assign({
239
- className: classNames,
240
- alt: alt
241
- }, props));
242
- });
778
+ return React.createElement(Box, Object.assign({}, props, {
779
+ as: "img",
780
+ variant: "image." + variant
781
+ }));
782
+ };
243
783
 
244
- var Label = /*#__PURE__*/system(function (_ref) {
245
- var _ref$variant = _ref.variant,
246
- variant = _ref$variant === void 0 ? 'label' : _ref$variant,
247
- htmlFor = _ref.htmlFor,
784
+ var _excluded$j = ["as", "variant", "children", "disabled"];
785
+ // ---------------
786
+
787
+ var Link = function Link(_ref) {
788
+ var _ref$as = _ref.as,
789
+ as = _ref$as === void 0 ? 'a' : _ref$as,
790
+ _ref$variant = _ref.variant,
791
+ variant = _ref$variant === void 0 ? 'link' : _ref$variant,
248
792
  children = _ref.children,
249
- className = _ref.className,
250
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "htmlFor", "children", "className"]);
793
+ disabled = _ref.disabled,
794
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$j);
251
795
 
252
- var classNames = useStyles({
253
- variant: "form." + variant
254
- }, className);
255
- return React.createElement("label", Object.assign({
256
- htmlFor: htmlFor,
257
- className: classNames
258
- }, props), children);
259
- });
796
+ var ref = useRef();
260
797
 
261
- var Link = /*#__PURE__*/system(function (_ref) {
262
- var _ref$variant = _ref.variant,
263
- variant = _ref$variant === void 0 ? 'normal' : _ref$variant,
264
- children = _ref.children,
265
- className = _ref.className,
266
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "children", "className"]);
798
+ var _useLink = useLink(_extends({}, props, {
799
+ elementType: typeof as === 'string' ? as : 'span',
800
+ isDisabled: disabled
801
+ }), ref),
802
+ linkProps = _useLink.linkProps;
267
803
 
268
- var classNames = useStyles({
269
- variant: "link." + variant
270
- }, className);
271
- return React.createElement("a", Object.assign({
272
- className: classNames
273
- }, props), children);
274
- });
804
+ return React.createElement(Text, Object.assign({}, props, linkProps, {
805
+ as: as,
806
+ variant: variant,
807
+ ref: ref
808
+ }), children);
809
+ };
810
+
811
+ var _excluded$k = ["variant", "label", "onClick", "show", "children"];
812
+ // ---------------
275
813
 
276
- var Menu = /*#__PURE__*/system(function (_ref) {
814
+ var Menu = function Menu(_ref) {
277
815
  var _ref$variant = _ref.variant,
278
- variant = _ref$variant === void 0 ? 'menu' : _ref$variant,
816
+ variant = _ref$variant === void 0 ? 'default' : _ref$variant,
279
817
  _ref$label = _ref.label,
280
818
  label = _ref$label === void 0 ? 'Menu' : _ref$label,
281
819
  onClick = _ref.onClick,
282
820
  _ref$show = _ref.show,
283
821
  show = _ref$show === void 0 ? false : _ref$show,
284
- className = _ref.className,
285
822
  children = _ref.children,
286
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "label", "onClick", "show", "className", "children"]);
287
-
288
- var classNames = useStyles({
289
- variant: "content." + variant
290
- }, className);
291
- var itemStyles = useStyles({
292
- position: 'absolute',
293
- minWidth: '120px',
294
- display: 'block',
295
- textAlign: 'left',
296
- borderRadius: '2px'
297
- });
298
- return React.createElement("div", Object.assign({
299
- className: classNames
300
- }, props), React.createElement(Button$1, {
823
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$k);
824
+
825
+ return React.createElement(Box, Object.assign({
826
+ variant: "menu." + variant
827
+ }, props), React.createElement(Button, {
301
828
  onClick: onClick,
302
829
  variant: "menu"
303
- }, label), show ? React.createElement("div", {
304
- className: itemStyles
830
+ }, label), show ? React.createElement(Box, {
831
+ display: "block",
832
+ position: "absolute",
833
+ minWidth: "120px",
834
+ borderRadius: "2px"
305
835
  }, children) : null);
306
- });
836
+ };
837
+
838
+ var _excluded$l = ["variant", "className", "children"];
839
+ // ---------------
307
840
 
308
- var MenuItem = /*#__PURE__*/system(function (_ref) {
841
+ var MenuItem = function MenuItem(_ref) {
309
842
  var _ref$variant = _ref.variant,
310
- variant = _ref$variant === void 0 ? 'menuItem' : _ref$variant,
843
+ variant = _ref$variant === void 0 ? 'default' : _ref$variant,
311
844
  className = _ref.className,
312
845
  children = _ref.children,
313
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "className", "children"]);
314
-
315
- var classNames = useStyles({
316
- variant: "content." + variant
317
- }, className);
318
- return React.createElement(Link$1, Object.assign({
319
- variant: "menu",
320
- className: classNames
321
- }, props), children);
322
- });
846
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$l);
323
847
 
324
- var Message = /*#__PURE__*/system(function (_ref) {
848
+ return React.createElement(Box, {
849
+ variant: "menuItem." + variant,
850
+ className: className
851
+ }, React.createElement(Link, Object.assign({
852
+ variant: "menuItemLink"
853
+ }, props), children));
854
+ };
855
+
856
+ var _excluded$m = ["messageTitle", "variant", "className", "children"];
857
+ // ---------------
858
+
859
+ var Message = function Message(_ref) {
325
860
  var messageTitle = _ref.messageTitle,
326
861
  _ref$variant = _ref.variant,
327
862
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
328
863
  className = _ref.className,
329
864
  children = _ref.children,
330
- props = _objectWithoutPropertiesLoose(_ref, ["messageTitle", "variant", "className", "children"]);
331
-
332
- var classNames = useStyles({
333
- element: ['p'],
334
- variant: "messages." + variant,
335
- display: 'inline-block'
336
- }, className);
337
- var icon = React.createElement(Info, {
338
- className: useStyles({
339
- verticalAlign: '-5px'
340
- })
341
- });
865
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$m);
866
+
867
+ var icon = React.createElement(Info, null);
342
868
 
343
869
  if (variant === 'warning') {
344
- icon = React.createElement(Notification, {
345
- className: useStyles({
346
- verticalAlign: '-5px '
347
- })
348
- });
349
- } else if (variant === 'error') {
350
- icon = React.createElement(Exclamation, {
351
- className: useStyles({
352
- verticalAlign: '-5px '
353
- })
354
- });
870
+ icon = React.createElement(Notification, null);
871
+ }
872
+
873
+ if (variant === 'error') {
874
+ icon = React.createElement(Exclamation, null);
355
875
  }
356
876
 
357
- return React.createElement("div", Object.assign({
358
- className: classNames
359
- }, props), React.createElement("div", {
360
- className: useStyles({
361
- marginBottom: '8px',
362
- marginRight: '4px'
363
- })
364
- }, icon, React.createElement(Heading$1, {
365
- variant: "h4",
366
- className: useStyles({
367
- display: 'inline'
368
- })
369
- }, messageTitle)), React.createElement("div", {
370
- className: useStyles({
877
+ return React.createElement(Box, Object.assign({
878
+ display: "inline-block",
879
+ variant: "message." + variant,
880
+ className: className
881
+ }, props), React.createElement(Box, {
882
+ display: "flex",
883
+ alignItems: "center",
884
+ variant: "message.title"
885
+ }, icon, React.createElement(Text, {
886
+ as: "h4",
887
+ variant: "headline4"
888
+ }, messageTitle)), React.createElement(Box, {
889
+ css: {
371
890
  color: 'black'
372
- })
891
+ }
373
892
  }, children));
374
- });
893
+ };
375
894
 
376
- var Radio = /*#__PURE__*/system(function (_ref) {
377
- var id = _ref.id,
378
- _ref$variant = _ref.variant,
379
- variant = _ref$variant === void 0 ? 'radio' : _ref$variant,
380
- label = _ref.label,
381
- required = _ref.required,
382
- className = _ref.className,
383
- props = _objectWithoutPropertiesLoose(_ref, ["id", "variant", "label", "required", "className"]);
384
-
385
- var radioStyle = useStyles({
386
- position: 'absolute',
387
- opacity: 0,
388
- zIndex: -1,
389
- width: 1,
390
- height: 1,
391
- overflow: 'hidden'
895
+ // ---------------
896
+
897
+ function MarigoldProvider(_ref) {
898
+ var theme = _ref.theme,
899
+ children = _ref.children;
900
+ var outer = useTheme();
901
+ var isTopLevel = outer.theme === __defaultTheme;
902
+ return React.createElement(ThemeProvider, {
903
+ theme: theme
904
+ }, isTopLevel ? React.createElement(React.Fragment, null, React.createElement(Global, null), React.createElement(OverlayProvider, null, children)) : children);
905
+ }
906
+
907
+ var _excluded$n = ["disabled"],
908
+ _excluded2$3 = ["disabled", "error"];
909
+ var RadioChecked = function RadioChecked(_ref) {
910
+ var _ref$disabled = _ref.disabled,
911
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
912
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$n);
913
+
914
+ return React.createElement(SVG, Object.assign({
915
+ width: "16",
916
+ height: "32",
917
+ viewBox: "0 0 16 32",
918
+ fill: "none"
919
+ }, props), React.createElement(Box, {
920
+ as: "circle",
921
+ cx: "8",
922
+ cy: "16",
923
+ r: "7.5",
924
+ variant: disabled ? 'radio.checked.disabled' : 'radio.checked'
925
+ }), React.createElement(Box, {
926
+ as: "circle",
927
+ cx: "8",
928
+ cy: "16",
929
+ r: "3",
930
+ variant: "radio.checked.circle"
931
+ }));
932
+ };
933
+ var RadioUnchecked = function RadioUnchecked(_ref2) {
934
+ var _ref2$disabled = _ref2.disabled,
935
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
936
+ _ref2$error = _ref2.error,
937
+ error = _ref2$error === void 0 ? false : _ref2$error,
938
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded2$3);
939
+
940
+ return React.createElement(SVG, Object.assign({
941
+ width: "16",
942
+ height: "32",
943
+ viewBox: "0 0 16 32",
944
+ fill: "none"
945
+ }, props), React.createElement(Box, {
946
+ as: "circle",
947
+ cx: "8",
948
+ cy: "16",
949
+ r: "7.5",
950
+ variant: disabled ? 'radio.unchecked.disabled' : error ? 'radio.unchecked.error' : 'radio.unchecked'
951
+ }));
952
+ };
953
+
954
+ var _excluded$o = ["className", "variant", "error"],
955
+ _excluded2$4 = ["label", "required", "labelVariant", "error", "errorMessage"];
956
+
957
+ var RadioIcon = function RadioIcon(_ref) {
958
+ var variant = _ref.variant,
959
+ checked = _ref.checked,
960
+ disabled = _ref.disabled,
961
+ error = _ref.error;
962
+
963
+ if (checked) {
964
+ return React.createElement(Box, {
965
+ as: RadioChecked,
966
+ variant: "radio." + variant,
967
+ disabled: disabled
968
+ });
969
+ }
970
+
971
+ return React.createElement(Box, {
972
+ as: RadioUnchecked,
973
+ variant: "radio." + variant,
974
+ disabled: disabled,
975
+ error: error
392
976
  });
393
- var radioIconStyle = useStyles({
394
- variant: "form." + variant,
395
- ariaHidden: 'true',
396
- mr: 2,
397
- verticalAlign: 'middle',
398
- ':hover': {
399
- cursor: 'pointer'
400
- },
401
- 'input:disabled ~ &': {
402
- color: 'muted',
403
- cursor: 'not-allowed'
404
- }
405
- }, className);
406
- var radio = React.createElement("div", {
407
- className: useStyles({
408
- display: 'inline-block'
409
- })
410
- }, React.createElement("input", Object.assign({
977
+ };
978
+
979
+ var RadioInput = function RadioInput(_ref2) {
980
+ var className = _ref2.className,
981
+ _ref2$variant = _ref2.variant,
982
+ variant = _ref2$variant === void 0 ? '' : _ref2$variant,
983
+ error = _ref2.error,
984
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$o);
985
+
986
+ return React.createElement(Box, {
987
+ display: "inline-block",
988
+ className: className
989
+ }, React.createElement(Box, Object.assign({
990
+ as: "input",
411
991
  type: "radio",
412
- id: id,
413
- className: radioStyle
414
- }, props)), props.checked ? React.createElement(CircleChecked, {
415
- className: radioIconStyle
416
- }) : React.createElement(CircleUnchecked, {
417
- className: radioIconStyle
992
+ css: {
993
+ position: 'absolute',
994
+ opacity: 0,
995
+ zIndex: -1,
996
+ width: 1,
997
+ height: 1,
998
+ overflow: 'hidden'
999
+ }
1000
+ }, props)), React.createElement(RadioIcon, {
1001
+ checked: props.checked,
1002
+ variant: variant,
1003
+ disabled: props.disabled,
1004
+ error: error
418
1005
  }));
419
- return React.createElement(React.Fragment, null, label ? React.createElement(Label$1, {
420
- htmlFor: id
421
- }, radio, label, required ? React.createElement(Required, {
422
- size: 16
423
- }) : '') : React.createElement(React.Fragment, null, radio));
424
- });
1006
+ };
1007
+
1008
+ var Radio = function Radio(_ref3) {
1009
+ var label = _ref3.label,
1010
+ required = _ref3.required,
1011
+ _ref3$labelVariant = _ref3.labelVariant,
1012
+ labelVariant = _ref3$labelVariant === void 0 ? 'inline' : _ref3$labelVariant,
1013
+ error = _ref3.error,
1014
+ errorMessage = _ref3.errorMessage,
1015
+ props = _objectWithoutPropertiesLoose(_ref3, _excluded2$4);
1016
+
1017
+ if (label) {
1018
+ return React.createElement(React.Fragment, null, React.createElement(Label, {
1019
+ htmlFor: props.id,
1020
+ required: required,
1021
+ variant: labelVariant,
1022
+ color: props.disabled ? 'disabled' : 'text'
1023
+ }, React.createElement(Box, Object.assign({
1024
+ as: RadioInput,
1025
+ pr: "8px",
1026
+ error: error
1027
+ }, props)), label), error && errorMessage && React.createElement(ValidationMessage, null, React.createElement(Exclamation, {
1028
+ size: 16
1029
+ }), errorMessage));
1030
+ }
425
1031
 
426
- var Slider = /*#__PURE__*/system(function (_ref) {
1032
+ return React.createElement(RadioInput, Object.assign({}, props));
1033
+ };
1034
+
1035
+ var _excluded$p = ["variant", "className"];
1036
+ // ---------------
1037
+
1038
+ var Slider = function Slider(_ref) {
427
1039
  var _ref$variant = _ref.variant,
428
- variant = _ref$variant === void 0 ? 'slider' : _ref$variant,
1040
+ variant = _ref$variant === void 0 ? '' : _ref$variant,
429
1041
  className = _ref.className,
430
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "className"]);
1042
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$p);
431
1043
 
432
- var classNames = useStyles({
433
- variant: "form." + variant,
434
- verticalAlign: 'middle'
435
- }, className);
436
- return React.createElement("input", Object.assign({
1044
+ return React.createElement(Box, Object.assign({
1045
+ as: "input",
437
1046
  type: "range",
438
- className: classNames
1047
+ css: {
1048
+ verticalAlign: 'middle'
1049
+ },
1050
+ variant: "slider." + variant,
1051
+ className: className
439
1052
  }, props));
440
- });
1053
+ };
441
1054
 
442
- var Select = /*#__PURE__*/system(function (_ref) {
443
- var _ref$variant = _ref.variant,
444
- variant = _ref$variant === void 0 ? 'select' : _ref$variant,
445
- className = _ref.className,
446
- ref = _ref.ref,
447
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "className", "ref"]);
448
-
449
- var selectStyles = useStyles({
450
- variant: "form." + variant
451
- }, className);
452
- var iconStyles = useStyles({
453
- alignSelf: 'center',
454
- pointerEvents: 'none',
455
- ml: '-28px'
456
- });
457
- return React.createElement("div", {
458
- className: useStyles({
459
- display: 'flex'
460
- })
461
- }, React.createElement("select", Object.assign({
1055
+ var Option = function Option(_ref) {
1056
+ var item = _ref.item,
1057
+ state = _ref.state;
1058
+ var ref = useRef(null);
1059
+
1060
+ var _useState = useState(false),
1061
+ disabled = _useState[0],
1062
+ setDisabled = _useState[1];
1063
+
1064
+ var _useOption = useOption({
1065
+ key: item.key
1066
+ }, state, ref),
1067
+ optionProps = _useOption.optionProps,
1068
+ isSelected = _useOption.isSelected;
1069
+
1070
+ useEffect(function () {
1071
+ for (var _iterator = _createForOfIteratorHelperLoose(state.disabledKeys.values()), _step; !(_step = _iterator()).done;) {
1072
+ var key = _step.value;
1073
+
1074
+ if (key === item.key) {
1075
+ setDisabled(true);
1076
+ }
1077
+ }
1078
+ }, [state.disabledKeys, item.key]);
1079
+ return React.createElement(Box, Object.assign({
1080
+ as: "li"
1081
+ }, optionProps, {
1082
+ ref: ref,
1083
+ variant: isSelected ? 'select.option.selected' : disabled ? 'select.option.disabled' : 'select.option'
1084
+ }), item.rendered);
1085
+ };
1086
+
1087
+ var ListBoxSection = function ListBoxSection(_ref) {
1088
+ var section = _ref.section,
1089
+ state = _ref.state;
1090
+
1091
+ var _useListBoxSection = useListBoxSection({
1092
+ heading: section.rendered,
1093
+ 'aria-label': section['aria-label']
1094
+ }),
1095
+ itemProps = _useListBoxSection.itemProps,
1096
+ headingProps = _useListBoxSection.headingProps,
1097
+ groupProps = _useListBoxSection.groupProps;
1098
+
1099
+ return React.createElement(Box, Object.assign({
1100
+ as: "li"
1101
+ }, itemProps, {
1102
+ css: {
1103
+ cursor: 'not-allowed'
1104
+ }
1105
+ }), section.rendered && React.createElement(Box, Object.assign({
1106
+ as: "span"
1107
+ }, headingProps, {
1108
+ variant: 'select.section'
1109
+ }), section.rendered), React.createElement(Box, Object.assign({
1110
+ as: "ul"
1111
+ }, groupProps), [].concat(section.childNodes).map(function (node) {
1112
+ return React.createElement(Option, {
1113
+ key: node.key,
1114
+ item: node,
1115
+ state: state
1116
+ });
1117
+ })));
1118
+ };
1119
+
1120
+ var ListBox = function ListBox(props) {
1121
+ var ref = useRef(null);
1122
+ var state = props.state,
1123
+ error = props.error;
1124
+
1125
+ var _useListBox = useListBox(props, state, ref),
1126
+ listBoxProps = _useListBox.listBoxProps;
1127
+
1128
+ return React.createElement(Box, Object.assign({
1129
+ as: "ul",
1130
+ p: "none",
1131
+ css: {
1132
+ listStyle: 'none'
1133
+ }
1134
+ }, listBoxProps, {
1135
+ variant: error ? 'select.listbox.error' : 'select.listbox',
462
1136
  ref: ref
463
- }, props, {
464
- className: selectStyles
465
- })), React.createElement(ArrowDown, {
466
- className: iconStyles
1137
+ }), [].concat(state.collection).map(function (item) {
1138
+ return item.type === 'section' ? React.createElement(ListBoxSection, {
1139
+ key: item.key,
1140
+ section: item,
1141
+ state: state
1142
+ }) : React.createElement(Option, {
1143
+ key: item.key,
1144
+ item: item,
1145
+ state: state
1146
+ });
467
1147
  }));
468
- });
1148
+ };
469
1149
 
470
- var Svg = /*#__PURE__*/system(function (_ref) {
471
- var _ref$variant = _ref.variant,
472
- variant = _ref$variant === void 0 ? 'icon' : _ref$variant,
473
- _ref$size = _ref.size,
474
- size = _ref$size === void 0 ? 24 : _ref$size,
475
- _ref$className = _ref.className,
476
- className = _ref$className === void 0 ? '' : _ref$className,
477
- children = _ref.children,
478
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "size", "className", "children"]);
479
-
480
- var classNames = useStyles({
481
- variant: "icon." + variant
482
- }, className);
483
- return React.createElement("svg", Object.assign({
484
- className: classNames,
485
- width: size,
486
- height: size,
487
- viewBox: "0 0 24 24",
488
- fill: "currentcolor"
489
- }, props), children);
490
- });
491
-
492
- var Text = /*#__PURE__*/system(function (_ref) {
493
- var _ref$as = _ref.as,
494
- as = _ref$as === void 0 ? 'span' : _ref$as,
495
- _ref$variant = _ref.variant,
496
- variant = _ref$variant === void 0 ? 'body' : _ref$variant,
497
- _ref$textColor = _ref.textColor,
498
- textColor = _ref$textColor === void 0 ? 'inherit' : _ref$textColor,
1150
+ var _excluded$q = ["children", "className", "isOpen", "onClose"];
1151
+ var Popover = /*#__PURE__*/forwardRef(function (_ref, ref) {
1152
+ var children = _ref.children,
499
1153
  className = _ref.className,
500
- children = _ref.children,
501
- props = _objectWithoutPropertiesLoose(_ref, ["as", "variant", "textColor", "className", "children"]);
1154
+ isOpen = _ref.isOpen,
1155
+ onClose = _ref.onClose,
1156
+ otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$q);
502
1157
 
503
- var classNames = useStyles({
504
- variant: "text." + variant,
505
- color: textColor
506
- }, className);
507
- var Cmp = as;
508
- return React.createElement(Cmp, Object.assign({
509
- className: classNames
510
- }, props), children);
511
- });
1158
+ // Handle events that should cause the popup to close,
1159
+ var _useOverlay = useOverlay({
1160
+ isOpen: isOpen,
1161
+ onClose: onClose,
1162
+ shouldCloseOnBlur: true,
1163
+ isDismissable: true
1164
+ }, ref),
1165
+ overlayProps = _useOverlay.overlayProps; // Hide content outside the modal from screen readers.
512
1166
 
513
- var Textarea = /*#__PURE__*/system(function (_ref) {
514
- var _ref$variant = _ref.variant,
515
- variant = _ref$variant === void 0 ? 'textarea' : _ref$variant,
516
- children = _ref.children,
517
- className = _ref.className,
518
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "children", "className"]);
519
1167
 
520
- var classNames = useStyles({
521
- variant: "form." + variant
522
- }, className);
523
- return React.createElement("textarea", Object.assign({
524
- className: classNames
525
- }, props), children);
1168
+ var _useModal = useModal(),
1169
+ modalProps = _useModal.modalProps;
1170
+
1171
+ return React.createElement(OverlayContainer, null, React.createElement(FocusScope, {
1172
+ restoreFocus: true
1173
+ }, React.createElement(Box, Object.assign({}, mergeProps(overlayProps, otherProps, modalProps), {
1174
+ className: className,
1175
+ ref: ref
1176
+ }), children, React.createElement(DismissButton, {
1177
+ onDismiss: onClose
1178
+ }))));
526
1179
  });
527
1180
 
528
- var Input = /*#__PURE__*/system(function (_ref) {
529
- var _ref$variant = _ref.variant,
530
- variant = _ref$variant === void 0 ? 'input' : _ref$variant,
531
- _ref$type = _ref.type,
532
- type = _ref$type === void 0 ? 'text' : _ref$type,
1181
+ var _excluded$r = ["labelVariant", "placeholder", "disabled", "required", "error", "errorMessage", "width", "className"];
1182
+ // ---------------
1183
+
1184
+ var Select = function Select(_ref) {
1185
+ var _ref$labelVariant = _ref.labelVariant,
1186
+ labelVariant = _ref$labelVariant === void 0 ? 'above' : _ref$labelVariant,
1187
+ _ref$placeholder = _ref.placeholder,
1188
+ placeholder = _ref$placeholder === void 0 ? 'Select an option' : _ref$placeholder,
1189
+ disabled = _ref.disabled,
1190
+ required = _ref.required,
1191
+ error = _ref.error,
1192
+ errorMessage = _ref.errorMessage,
1193
+ width = _ref.width,
533
1194
  className = _ref.className,
534
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "type", "className"]);
1195
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$r);
535
1196
 
536
- var classNames = useStyles({
537
- variant: "form." + variant,
538
- border: 0
539
- }, className);
540
- return React.createElement("input", Object.assign({
541
- type: type,
542
- className: classNames
543
- }, props));
544
- });
1197
+ var state = useSelectState(props);
1198
+ var overlayTriggerState = useOverlayTriggerState({});
1199
+ var triggerRef = useRef();
1200
+ var overlayRef = useRef(); // Get props for the overlay
545
1201
 
546
- var Container = /*#__PURE__*/system(function (_ref) {
547
- var _ref$variant = _ref.variant,
548
- variant = _ref$variant === void 0 ? 'container' : _ref$variant,
549
- className = _ref.className,
550
- children = _ref.children,
551
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "className", "children"]);
552
-
553
- var classNames = useStyles({
554
- variant: "layout." + variant,
555
- width: '100%'
556
- }, className);
557
- return React.createElement("div", Object.assign({
558
- className: classNames
559
- }, props), children);
560
- });
1202
+ var _useOverlayTrigger = useOverlayTrigger({
1203
+ type: 'listbox'
1204
+ }, overlayTriggerState, triggerRef),
1205
+ overlayProps = _useOverlayTrigger.overlayProps; // Get popover positioning props relative to the trigger
1206
+
1207
+
1208
+ var _useOverlayPosition = useOverlayPosition({
1209
+ targetRef: triggerRef,
1210
+ overlayRef: overlayRef,
1211
+ placement: 'bottom',
1212
+ shouldFlip: false,
1213
+ isOpen: state.isOpen,
1214
+ onClose: state.close
1215
+ }),
1216
+ positionProps = _useOverlayPosition.overlayProps; // Get props for child elements from useSelect
1217
+
1218
+
1219
+ var _useSelect = useSelect(props, state, triggerRef),
1220
+ labelProps = _useSelect.labelProps,
1221
+ triggerProps = _useSelect.triggerProps,
1222
+ valueProps = _useSelect.valueProps,
1223
+ menuProps = _useSelect.menuProps; // Get props for the button based on the trigger props from useSelect
1224
+
1225
+
1226
+ var _useButton = useButton(triggerProps, triggerRef),
1227
+ buttonProps = _useButton.buttonProps;
1228
+
1229
+ var _useFocusRing = useFocusRing(),
1230
+ focusProps = _useFocusRing.focusProps;
1231
+
1232
+ return React.createElement(Box, {
1233
+ position: "relative",
1234
+ display: "inline-block",
1235
+ width: width && width
1236
+ }, props.label && React.createElement(Box, null, React.createElement(Label, Object.assign({}, labelProps, {
1237
+ htmlFor: labelProps.id,
1238
+ variant: labelVariant
1239
+ }), required ? React.createElement(Box, {
1240
+ as: "span",
1241
+ display: "inline-flex",
1242
+ alignItems: "center"
1243
+ }, props.label, React.createElement(Box, {
1244
+ as: Required,
1245
+ size: 16,
1246
+ css: {
1247
+ color: 'error'
1248
+ }
1249
+ })) : props.label)), React.createElement(HiddenSelect, {
1250
+ state: state,
1251
+ triggerRef: triggerRef,
1252
+ label: props.label,
1253
+ name: props.name,
1254
+ isDisabled: disabled
1255
+ }), React.createElement(Box, Object.assign({
1256
+ as: "button"
1257
+ }, mergeProps(buttonProps, focusProps), {
1258
+ ref: triggerRef,
1259
+ variant: error && state.isOpen && !disabled ? 'button.select.errorOpened' : error ? 'button.select.error' : state.isOpen && !disabled ? 'button.select.open' : 'button.select',
1260
+ disabled: disabled,
1261
+ className: className
1262
+ }), React.createElement(Box, Object.assign({
1263
+ as: "span"
1264
+ }, valueProps, {
1265
+ variant: disabled ? 'select.disabled' : 'select'
1266
+ }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? React.createElement(Box, {
1267
+ as: ArrowUp,
1268
+ size: 16,
1269
+ css: {
1270
+ fill: 'text'
1271
+ }
1272
+ }) : React.createElement(Box, {
1273
+ as: ArrowDown,
1274
+ size: 16,
1275
+ css: {
1276
+ fill: disabled ? 'disabled' : 'text'
1277
+ }
1278
+ })), state.isOpen && !disabled && React.createElement(Box, Object.assign({
1279
+ as: Popover
1280
+ }, overlayProps, positionProps, {
1281
+ css: {
1282
+ width: triggerRef.current && triggerRef.current.offsetWidth + 'px'
1283
+ },
1284
+ ref: overlayRef,
1285
+ isOpen: state.isOpen,
1286
+ onClose: state.close
1287
+ }), React.createElement(ListBox, Object.assign({
1288
+ error: error
1289
+ }, menuProps, {
1290
+ state: state
1291
+ }))), error && errorMessage && React.createElement(Box, {
1292
+ as: "span",
1293
+ display: "inline-flex",
1294
+ alignItems: "center"
1295
+ }, React.createElement(Box, {
1296
+ as: Exclamation,
1297
+ size: 16,
1298
+ css: {
1299
+ color: 'error'
1300
+ }
1301
+ }), React.createElement(ValidationMessage, null, errorMessage)));
1302
+ };
1303
+
1304
+ var _excluded$s = ["variant", "htmlFor", "label", "error", "errorMessage", "required", "className", "children"];
1305
+ // ---------------
561
1306
 
562
- var ValidationMessage = /*#__PURE__*/system(function (_ref) {
1307
+ var Textarea = function Textarea(_ref) {
563
1308
  var _ref$variant = _ref.variant,
564
- variant = _ref$variant === void 0 ? 'negative' : _ref$variant,
565
- children = _ref.children,
566
- className = _ref.className,
567
- props = _objectWithoutPropertiesLoose(_ref, ["variant", "children", "className"]);
1309
+ variant = _ref$variant === void 0 ? '' : _ref$variant,
1310
+ _ref$htmlFor = _ref.htmlFor,
1311
+ htmlFor = _ref$htmlFor === void 0 ? 'textarea' : _ref$htmlFor,
1312
+ label = _ref.label,
1313
+ error = _ref.error,
1314
+ errorMessage = _ref.errorMessage,
1315
+ required = _ref.required,
1316
+ _ref$className = _ref.className,
1317
+ className = _ref$className === void 0 ? '' : _ref$className,
1318
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$s);
568
1319
 
569
- var classNames = useStyles({
570
- variant: "validation." + variant,
571
- display: 'flex',
572
- alignItems: 'center'
573
- }, className);
574
- return React.createElement("span", Object.assign({
575
- className: classNames
576
- }, props), children);
577
- });
1320
+ return React.createElement(Box, null, label && React.createElement(Label, {
1321
+ htmlFor: htmlFor,
1322
+ required: required
1323
+ }, label), React.createElement(Box, Object.assign({
1324
+ as: "textarea"
1325
+ }, props, {
1326
+ display: "block",
1327
+ variant: "textarea." + variant,
1328
+ css: {
1329
+ outlineColor: error && 'error'
1330
+ },
1331
+ className: className
1332
+ })), error && errorMessage && React.createElement(ValidationMessage, null, React.createElement(Exclamation, {
1333
+ size: 16
1334
+ }), errorMessage));
1335
+ };
1336
+
1337
+ var _excluded$t = ["children"];
1338
+ var Container = function Container(_ref) {
1339
+ var children = _ref.children,
1340
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$t);
1341
+
1342
+ return React.createElement(Box, Object.assign({}, props, {
1343
+ width: "100%"
1344
+ }), children);
1345
+ };
578
1346
 
579
- export { Alert, Badge, Button, Checkbox, Column, Container, Divider, Field, Heading, Hidden, Image, Input, Label, Link, Menu, MenuItem, Message, Radio, Select, Slider, Svg, Text, Textarea, ValidationMessage };
1347
+ export { ActionGroup, Alert, Badge, Button, Card, Checkbox, Column, Columns, Container, Dialog, Divider, Field, Image, Inline, Input, Label, LabelBase, Link, MarigoldProvider, Menu, MenuItem, Message, Radio, Select, Slider, Stack, Text, Textarea, ValidationMessage, useDialogButtonProps };
580
1348
  //# sourceMappingURL=components.esm.js.map