@marigold/components 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @marigold/components
2
2
 
3
+ ## 0.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1795](https://github.com/marigold-ui/marigold/pull/1795) [`a178eafe`](https://github.com/marigold-ui/marigold/commit/a178eafe8c8380ee23b4587d953ee52b231414ff) Thanks [@ti10le](https://github.com/ti10le)! - refa: use interface instead of type
8
+
9
+ * [#1798](https://github.com/marigold-ui/marigold/pull/1798) [`9939b743`](https://github.com/marigold-ui/marigold/commit/9939b743df4dfe40bfd5dd61a1a4b88641ef9559) Thanks [@sebald](https://github.com/sebald)! - fix(components): Use own `flattenChildren` helper to fix ESM build
10
+
11
+ * Updated dependencies [[`a178eafe`](https://github.com/marigold-ui/marigold/commit/a178eafe8c8380ee23b4587d953ee52b231414ff)]:
12
+ - @marigold/system@0.5.1
13
+ - @marigold/icons@0.4.2
14
+
3
15
  ## 0.5.0
4
16
 
5
17
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -82,12 +82,12 @@ interface CardProps extends ComponentProps<'div'> {
82
82
  }
83
83
  declare const Card: React.FC<CardProps>;
84
84
 
85
- declare type CheckboxIconProps = {
85
+ interface CheckboxIconProps {
86
86
  variant?: string;
87
87
  checked?: boolean;
88
88
  disabled?: boolean;
89
89
  error?: boolean;
90
- };
90
+ }
91
91
 
92
92
  interface CheckboxThemeExtension<Value> {
93
93
  checkbox?: {
@@ -146,9 +146,9 @@ declare type LabelBaseProps = {
146
146
  color?: ResponsiveStyleValue<string>;
147
147
  } & ComponentProps<'label'>;
148
148
  declare const LabelBase: React.FC<LabelProps>;
149
- declare type LabelProps = {
149
+ interface LabelProps extends LabelBaseProps {
150
150
  required?: boolean;
151
- } & LabelBaseProps;
151
+ }
152
152
  declare const Label: React.FC<LabelProps>;
153
153
 
154
154
  interface TextThemeExtension<Value> {
@@ -212,12 +212,12 @@ interface MessageProps extends ComponentProps<'div'> {
212
212
  }
213
213
  declare const Message: React.FC<MessageProps>;
214
214
 
215
- declare type RadioIconProps = {
215
+ interface RadioIconProps {
216
216
  variant?: string;
217
217
  checked?: boolean;
218
218
  disabled?: boolean;
219
219
  error?: boolean;
220
- };
220
+ }
221
221
 
222
222
  interface RadioThemeExtension<Value> {
223
223
  radio?: {
@@ -314,10 +314,10 @@ interface ColumnsProps {
314
314
  }
315
315
  declare const Columns: React.FC<ColumnsProps>;
316
316
 
317
- declare type ModalDialogProps = {
317
+ interface ModalDialogProps extends OverlayProps, AriaDialogProps {
318
318
  variant?: string;
319
319
  backdropVariant?: string;
320
- } & OverlayProps & AriaDialogProps;
320
+ }
321
321
 
322
322
  interface DialogProps extends ModalDialogProps, ComponentProps<'div'> {
323
323
  backdropVariant?: string;
package/dist/index.js CHANGED
@@ -98,11 +98,28 @@ __export(src_exports, {
98
98
  });
99
99
 
100
100
  // src/ActionGroup/ActionGroup.tsx
101
- var import_react3 = __toESM(require("react"));
101
+ var import_react4 = __toESM(require("react"));
102
102
 
103
103
  // src/Inline/Inline.tsx
104
- var import_react = __toESM(require("react"));
105
- var import_react_keyed_flatten_children = __toESM(require("react-keyed-flatten-children"));
104
+ var import_react2 = __toESM(require("react"));
105
+
106
+ // src/utils/flatten-children.ts
107
+ var import_react = require("react");
108
+ var import_react_is = require("react-is");
109
+ var flattenChildren = (children, depth = 0, keys = []) => import_react.Children.toArray(children).reduce((acc, node) => {
110
+ if ((0, import_react_is.isFragment)(node)) {
111
+ acc.push.apply(acc, flattenChildren(node.props.children, depth + 1, keys.concat(node.key)));
112
+ } else {
113
+ if ((0, import_react.isValidElement)(node)) {
114
+ acc.push((0, import_react.cloneElement)(node, {
115
+ key: keys.concat(String(node.key)).join(".")
116
+ }));
117
+ } else if (typeof node === "string" || typeof node === "number") {
118
+ acc.push(node);
119
+ }
120
+ }
121
+ return acc;
122
+ }, []);
106
123
 
107
124
  // src/Box.ts
108
125
  var import_system = require("@marigold/system");
@@ -123,16 +140,15 @@ var Inline = (_a) => {
123
140
  "align",
124
141
  "children"
125
142
  ]);
126
- return /* @__PURE__ */ import_react.default.createElement(import_system.Box, __spreadValues({
143
+ return /* @__PURE__ */ import_react2.default.createElement(import_system.Box, __spreadValues({
127
144
  display: "inline-flex",
128
145
  css: { "> * + *": { pl: space } },
129
146
  alignItems: ALIGNMENT[align]
130
- }, props), import_react.Children.map((0, import_react_keyed_flatten_children.default)(children), (child) => /* @__PURE__ */ import_react.default.createElement(import_system.Box, null, import_react.default.cloneElement(child, {}, child.props.children))));
147
+ }, props), import_react2.Children.map(flattenChildren(children), (child) => /* @__PURE__ */ import_react2.default.createElement(import_system.Box, null, import_react2.default.cloneElement(child, {}, child.props.children))));
131
148
  };
132
149
 
133
150
  // src/Stack/Stack.tsx
134
- var import_react2 = __toESM(require("react"));
135
- var import_react_keyed_flatten_children2 = __toESM(require("react-keyed-flatten-children"));
151
+ var import_react3 = __toESM(require("react"));
136
152
  var ALIGNMENT2 = {
137
153
  left: "flex-start",
138
154
  center: "center",
@@ -148,12 +164,12 @@ var Stack = (_a) => {
148
164
  "align",
149
165
  "children"
150
166
  ]);
151
- return /* @__PURE__ */ import_react2.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
167
+ return /* @__PURE__ */ import_react3.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
152
168
  display: "flex",
153
169
  flexDirection: "column",
154
170
  alignItems: ALIGNMENT2[align],
155
171
  css: { "> * + *": { pt: space } }
156
- }), import_react2.Children.map((0, import_react_keyed_flatten_children2.default)(children), (child) => /* @__PURE__ */ import_react2.default.createElement(import_system.Box, null, import_react2.default.cloneElement(child, {}, child.props.children))));
172
+ }), import_react3.Children.map(flattenChildren(children), (child) => /* @__PURE__ */ import_react3.default.createElement(import_system.Box, null, import_react3.default.cloneElement(child, {}, child.props.children))));
157
173
  };
158
174
 
159
175
  // src/ActionGroup/ActionGroup.tsx
@@ -167,15 +183,15 @@ var ActionGroup = (_a) => {
167
183
  "verticalAlignment",
168
184
  "children"
169
185
  ]);
170
- return verticalAlignment ? /* @__PURE__ */ import_react3.default.createElement(Stack, __spreadValues({
186
+ return verticalAlignment ? /* @__PURE__ */ import_react4.default.createElement(Stack, __spreadValues({
171
187
  space
172
- }, props), children) : /* @__PURE__ */ import_react3.default.createElement(Inline, __spreadValues({
188
+ }, props), children) : /* @__PURE__ */ import_react4.default.createElement(Inline, __spreadValues({
173
189
  space
174
190
  }, props), children);
175
191
  };
176
192
 
177
193
  // src/Alert/Alert.tsx
178
- var import_react4 = __toESM(require("react"));
194
+ var import_react5 = __toESM(require("react"));
179
195
  var import_icons = require("@marigold/icons");
180
196
  var ICON_MAP = {
181
197
  success: import_icons.Check,
@@ -191,28 +207,28 @@ var Alert = (_a) => {
191
207
  "children"
192
208
  ]);
193
209
  const Icon = ICON_MAP[variant];
194
- return /* @__PURE__ */ import_react4.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
210
+ return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
195
211
  display: "flex",
196
212
  variant: `alert.${variant}`
197
- }), /* @__PURE__ */ import_react4.default.createElement(import_system.Box, {
213
+ }), /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
198
214
  display: "inline-block",
199
215
  alignItems: "center",
200
216
  width: "32px",
201
217
  height: "32px",
202
218
  bg: variant
203
- }, /* @__PURE__ */ import_react4.default.createElement(import_system.Box, {
219
+ }, /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
204
220
  as: Icon,
205
221
  size: 12,
206
222
  color: "#fff",
207
223
  bg: variant,
208
224
  m: 10
209
- })), /* @__PURE__ */ import_react4.default.createElement(import_system.Box, {
225
+ })), /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
210
226
  mx: "16px"
211
227
  }, children));
212
228
  };
213
229
 
214
230
  // src/Badge/Badge.tsx
215
- var import_react5 = __toESM(require("react"));
231
+ var import_react6 = __toESM(require("react"));
216
232
  var Badge = (_a) => {
217
233
  var _b = _a, {
218
234
  variant = "",
@@ -225,16 +241,16 @@ var Badge = (_a) => {
225
241
  "borderColor",
226
242
  "children"
227
243
  ]);
228
- return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadValues({
244
+ return /* @__PURE__ */ import_react6.default.createElement(import_system.Box, __spreadValues({
229
245
  css: { bg: bgColor, borderColor },
230
246
  variant: `badge.${variant}`
231
247
  }, props), children);
232
248
  };
233
249
 
234
250
  // src/Button/Button.tsx
235
- var import_react6 = __toESM(require("react"));
251
+ var import_react7 = __toESM(require("react"));
236
252
  var import_button = require("@react-aria/button");
237
- var Button = (0, import_react6.forwardRef)((_a, ref) => {
253
+ var Button = (0, import_react7.forwardRef)((_a, ref) => {
238
254
  var _b = _a, {
239
255
  as = "button",
240
256
  variant = "primary",
@@ -256,7 +272,7 @@ var Button = (0, import_react6.forwardRef)((_a, ref) => {
256
272
  elementType: typeof as === "string" ? as : "span",
257
273
  isDisabled: disabled
258
274
  }), ref);
259
- return /* @__PURE__ */ import_react6.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({}, buttonProps), props), {
275
+ return /* @__PURE__ */ import_react7.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({}, buttonProps), props), {
260
276
  as,
261
277
  display: "inline-flex",
262
278
  alignItems: "center",
@@ -268,7 +284,7 @@ var Button = (0, import_react6.forwardRef)((_a, ref) => {
268
284
  });
269
285
 
270
286
  // src/Card/Card.tsx
271
- var import_react7 = __toESM(require("react"));
287
+ var import_react8 = __toESM(require("react"));
272
288
  var Card = (_a) => {
273
289
  var _b = _a, {
274
290
  variant = "",
@@ -283,11 +299,11 @@ var Card = (_a) => {
283
299
  "className",
284
300
  "children"
285
301
  ]);
286
- return /* @__PURE__ */ import_react7.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
302
+ return /* @__PURE__ */ import_react8.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
287
303
  variant: `card.${variant}`,
288
304
  maxWidth: width,
289
305
  className
290
- }), title && /* @__PURE__ */ import_react7.default.createElement(import_system.Box, {
306
+ }), title && /* @__PURE__ */ import_react8.default.createElement(import_system.Box, {
291
307
  as: "h2",
292
308
  variant: "text.h2",
293
309
  pb: "small"
@@ -295,24 +311,24 @@ var Card = (_a) => {
295
311
  };
296
312
 
297
313
  // src/Checkbox/Checkbox.tsx
298
- var import_react12 = __toESM(require("react"));
314
+ var import_react13 = __toESM(require("react"));
299
315
  var import_focus = require("@react-aria/focus");
300
316
  var import_visually_hidden = require("@react-aria/visually-hidden");
301
317
  var import_checkbox = require("@react-aria/checkbox");
302
318
 
303
319
  // ../../node_modules/@react-stately/utils/dist/module.js
304
- var import_react8 = require("react");
320
+ var import_react9 = require("react");
305
321
  function useControlledState(value, defaultValue, onChange) {
306
- let [stateValue, setStateValue] = (0, import_react8.useState)(value || defaultValue);
307
- let ref = (0, import_react8.useRef)(value !== void 0);
322
+ let [stateValue, setStateValue] = (0, import_react9.useState)(value || defaultValue);
323
+ let ref = (0, import_react9.useRef)(value !== void 0);
308
324
  let wasControlled = ref.current;
309
325
  let isControlled = value !== void 0;
310
- let stateRef = (0, import_react8.useRef)(stateValue);
326
+ let stateRef = (0, import_react9.useRef)(stateValue);
311
327
  if (wasControlled !== isControlled) {
312
328
  console.warn("WARN: A component changed from " + (wasControlled ? "controlled" : "uncontrolled") + " to " + (isControlled ? "controlled" : "uncontrolled") + ".");
313
329
  }
314
330
  ref.current = isControlled;
315
- let setValue = (0, import_react8.useCallback)(function(value2) {
331
+ let setValue = (0, import_react9.useCallback)(function(value2) {
316
332
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
317
333
  args[_key - 1] = arguments[_key];
318
334
  }
@@ -398,7 +414,7 @@ function useToggleState(props) {
398
414
  var import_icons3 = require("@marigold/icons");
399
415
 
400
416
  // src/Checkbox/CheckboxIcon.tsx
401
- var import_react9 = __toESM(require("react"));
417
+ var import_react10 = __toESM(require("react"));
402
418
  var import_system2 = require("@marigold/system");
403
419
  var CheckboxIcon = ({
404
420
  variant = "",
@@ -412,13 +428,13 @@ var CheckboxIcon = ({
412
428
  checked,
413
429
  error
414
430
  };
415
- return /* @__PURE__ */ import_react9.default.createElement(import_system2.SVG, {
431
+ return /* @__PURE__ */ import_react10.default.createElement(import_system2.SVG, {
416
432
  width: "16",
417
433
  height: "32",
418
434
  viewBox: "0 0 16 32",
419
435
  fill: "none",
420
436
  "aria-hidden": "true"
421
- }, /* @__PURE__ */ import_react9.default.createElement(import_system.Box, {
437
+ }, /* @__PURE__ */ import_react10.default.createElement(import_system.Box, {
422
438
  as: "rect",
423
439
  x: "0.5",
424
440
  y: "8.5",
@@ -426,7 +442,7 @@ var CheckboxIcon = ({
426
442
  height: "15px",
427
443
  rx: "1.5",
428
444
  variant: (0, import_system2.conditional)(`checkbox.${variant}`, conditionalStates)
429
- }), checked && /* @__PURE__ */ import_react9.default.createElement(import_system.Box, {
445
+ }), checked && /* @__PURE__ */ import_react10.default.createElement(import_system.Box, {
430
446
  __baseCSS: { fill: "gray00" },
431
447
  as: "path",
432
448
  fillRule: "evenodd",
@@ -436,7 +452,7 @@ var CheckboxIcon = ({
436
452
  };
437
453
 
438
454
  // src/Label/Label.tsx
439
- var import_react10 = __toESM(require("react"));
455
+ var import_react11 = __toESM(require("react"));
440
456
  var import_icons2 = require("@marigold/icons");
441
457
  var LabelBase = (_a) => {
442
458
  var _b = _a, {
@@ -450,7 +466,7 @@ var LabelBase = (_a) => {
450
466
  "color",
451
467
  "children"
452
468
  ]);
453
- return /* @__PURE__ */ import_react10.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
469
+ return /* @__PURE__ */ import_react11.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
454
470
  as: "label",
455
471
  __baseCSS: { color },
456
472
  variant: `label.${variant}`
@@ -464,19 +480,19 @@ var Label = (_a) => {
464
480
  "required",
465
481
  "children"
466
482
  ]);
467
- return required ? /* @__PURE__ */ import_react10.default.createElement(import_system.Box, {
483
+ return required ? /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
468
484
  as: "span",
469
485
  display: "inline-flex",
470
486
  alignItems: "center"
471
- }, /* @__PURE__ */ import_react10.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react10.default.createElement(import_system.Box, {
487
+ }, /* @__PURE__ */ import_react11.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
472
488
  as: import_icons2.Required,
473
489
  size: 16,
474
490
  css: { color: "error" }
475
- })) : /* @__PURE__ */ import_react10.default.createElement(LabelBase, __spreadValues({}, props), children);
491
+ })) : /* @__PURE__ */ import_react11.default.createElement(LabelBase, __spreadValues({}, props), children);
476
492
  };
477
493
 
478
494
  // src/ValidationMessage/ValidationMessage.tsx
479
- var import_react11 = __toESM(require("react"));
495
+ var import_react12 = __toESM(require("react"));
480
496
  var ValidationMessage = (_a) => {
481
497
  var _b = _a, {
482
498
  variant = "error",
@@ -487,7 +503,7 @@ var ValidationMessage = (_a) => {
487
503
  "children",
488
504
  "className"
489
505
  ]);
490
- return /* @__PURE__ */ import_react11.default.createElement(import_system.Box, __spreadValues({
506
+ return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, __spreadValues({
491
507
  as: "span",
492
508
  display: "flex",
493
509
  alignItems: "center",
@@ -500,15 +516,15 @@ var ValidationMessage = (_a) => {
500
516
  var CheckboxInput = (_a) => {
501
517
  var _b = _a, { error } = _b, props = __objRest(_b, ["error"]);
502
518
  const state = useToggleState(props);
503
- const ref = import_react12.default.useRef(null);
519
+ const ref = import_react13.default.useRef(null);
504
520
  const { inputProps } = (0, import_checkbox.useCheckbox)(props, state, ref);
505
521
  const { focusProps } = (0, import_focus.useFocusRing)();
506
522
  const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
507
- return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, {
523
+ return /* @__PURE__ */ import_react13.default.createElement(import_system.Box, {
508
524
  pr: "xsmall"
509
- }, /* @__PURE__ */ import_react12.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react12.default.createElement("input", __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
525
+ }, /* @__PURE__ */ import_react13.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react13.default.createElement("input", __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
510
526
  ref
511
- }), restProps))), /* @__PURE__ */ import_react12.default.createElement(CheckboxIcon, {
527
+ }), restProps))), /* @__PURE__ */ import_react13.default.createElement(CheckboxIcon, {
512
528
  checked: props.checked,
513
529
  variant: props.variant,
514
530
  disabled: props.disabled,
@@ -525,7 +541,7 @@ var Checkbox = (_a) => {
525
541
  "labelVariant",
526
542
  "errorMessage"
527
543
  ]);
528
- return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement(import_system.Box, {
544
+ return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement(import_system.Box, {
529
545
  as: Label,
530
546
  __baseCSS: {
531
547
  ":hover": { cursor: props.disabled ? "not-allowed" : "pointer" }
@@ -534,16 +550,16 @@ var Checkbox = (_a) => {
534
550
  required,
535
551
  variant: `label.${labelVariant}`,
536
552
  color: props.disabled ? "disabled" : "text"
537
- }, /* @__PURE__ */ import_react12.default.createElement(import_system.Box, __spreadValues({
553
+ }, /* @__PURE__ */ import_react13.default.createElement(import_system.Box, __spreadValues({
538
554
  as: CheckboxInput,
539
555
  error: props.error
540
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react12.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react12.default.createElement(import_icons3.Exclamation, {
556
+ }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react13.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react13.default.createElement(import_icons3.Exclamation, {
541
557
  size: 16
542
558
  }), errorMessage));
543
559
  };
544
560
 
545
561
  // src/Column/Column.tsx
546
- var import_react13 = __toESM(require("react"));
562
+ var import_react14 = __toESM(require("react"));
547
563
  var transform = (width) => {
548
564
  if (Array.isArray(width)) {
549
565
  return width.map((v) => `${v / 12 * 100}%`);
@@ -558,14 +574,13 @@ var Column = (_a) => {
558
574
  "width",
559
575
  "children"
560
576
  ]);
561
- return /* @__PURE__ */ import_react13.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
577
+ return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
562
578
  width: transform(width)
563
579
  }), children);
564
580
  };
565
581
 
566
582
  // src/Columns/Columns.tsx
567
- var import_react14 = __toESM(require("react"));
568
- var import_react_keyed_flatten_children3 = __toESM(require("react-keyed-flatten-children"));
583
+ var import_react15 = __toESM(require("react"));
569
584
  var import_system3 = require("@marigold/system");
570
585
  var useAlignment = (direction) => {
571
586
  switch (direction) {
@@ -597,34 +612,34 @@ var Columns = (_a) => {
597
612
  const { css } = (0, import_system3.useTheme)();
598
613
  const spaceObject = css({ space });
599
614
  const spaceValue = Object.values(spaceObject)[0];
600
- return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, {
615
+ return /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
601
616
  p: space,
602
617
  display: "flex",
603
618
  className
604
- }, /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadValues({
619
+ }, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadValues({
605
620
  width: `calc(100% + ${spaceValue}px)`,
606
621
  m: `${-spaceValue / 2}px`,
607
622
  display: "flex",
608
623
  flexWrap: "wrap",
609
624
  alignItems,
610
625
  justifyContent
611
- }, props), import_react14.Children.map((0, import_react_keyed_flatten_children3.default)(children), (child) => {
612
- return import_react14.default.cloneElement(child, {}, /* @__PURE__ */ import_react14.default.createElement(import_system.Box, {
626
+ }, props), import_react15.Children.map(flattenChildren(children), (child) => {
627
+ return import_react15.default.cloneElement(child, {}, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
613
628
  css: { p: `${spaceValue / 2}px` }
614
629
  }, child.props.children));
615
630
  })));
616
631
  };
617
632
 
618
633
  // src/Dialog/Dialog.tsx
619
- var import_react17 = __toESM(require("react"));
634
+ var import_react18 = __toESM(require("react"));
620
635
  var import_overlays2 = require("@react-stately/overlays");
621
636
  var import_overlays3 = require("@react-aria/overlays");
622
637
  var import_button2 = require("@react-aria/button");
623
638
  var import_icons4 = require("@marigold/icons");
624
639
 
625
640
  // src/Text/Text.tsx
626
- var import_react15 = __toESM(require("react"));
627
- var Text = (0, import_react15.forwardRef)((_a, ref) => {
641
+ var import_react16 = __toESM(require("react"));
642
+ var Text = (0, import_react16.forwardRef)((_a, ref) => {
628
643
  var _b = _a, {
629
644
  as = "span",
630
645
  variant = "body",
@@ -646,7 +661,7 @@ var Text = (0, import_react15.forwardRef)((_a, ref) => {
646
661
  "outline",
647
662
  "userSelect"
648
663
  ]);
649
- return /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
664
+ return /* @__PURE__ */ import_react16.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
650
665
  as,
651
666
  variant: `text.${variant}`,
652
667
  css: {
@@ -662,7 +677,7 @@ var Text = (0, import_react15.forwardRef)((_a, ref) => {
662
677
  });
663
678
 
664
679
  // src/Dialog/ModalDialog.tsx
665
- var import_react16 = __toESM(require("react"));
680
+ var import_react17 = __toESM(require("react"));
666
681
  var import_overlays = require("@react-aria/overlays");
667
682
  var import_dialog = require("@react-aria/dialog");
668
683
  var import_focus2 = require("@react-aria/focus");
@@ -677,12 +692,12 @@ var ModalDialog = (_a) => {
677
692
  "children"
678
693
  ]);
679
694
  const _a2 = props, { isDismissable, isOpen, onClose } = _a2, restProps = __objRest(_a2, ["isDismissable", "isOpen", "onClose"]);
680
- const ref = import_react16.default.useRef();
695
+ const ref = import_react17.default.useRef();
681
696
  const { overlayProps, underlayProps } = (0, import_overlays.useOverlay)({ isDismissable, isOpen, onClose }, ref);
682
697
  (0, import_overlays.usePreventScroll)();
683
698
  const { modalProps } = (0, import_overlays.useModal)();
684
699
  const { dialogProps } = (0, import_dialog.useDialog)(props, ref);
685
- return /* @__PURE__ */ import_react16.default.createElement(import_system.Box, __spreadValues({
700
+ return /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadValues({
686
701
  __baseCSS: {
687
702
  display: "grid",
688
703
  placeItems: "center",
@@ -694,11 +709,11 @@ var ModalDialog = (_a) => {
694
709
  right: 0
695
710
  },
696
711
  variant: `dialog.${backdropVariant}`
697
- }, underlayProps), /* @__PURE__ */ import_react16.default.createElement(import_focus2.FocusScope, {
712
+ }, underlayProps), /* @__PURE__ */ import_react17.default.createElement(import_focus2.FocusScope, {
698
713
  contain: true,
699
714
  restoreFocus: true,
700
715
  autoFocus: true
701
- }, /* @__PURE__ */ import_react16.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, overlayProps), dialogProps), modalProps), {
716
+ }, /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, overlayProps), dialogProps), modalProps), {
702
717
  ref,
703
718
  variant: variant ? `dialog.${variant}` : `dialog`
704
719
  }), restProps), children)));
@@ -723,17 +738,17 @@ var Dialog = (_a) => {
723
738
  "title",
724
739
  "variant"
725
740
  ]);
726
- const closeButtonRef = import_react17.default.useRef();
741
+ const closeButtonRef = import_react18.default.useRef();
727
742
  const { buttonProps: closeButtonProps } = (0, import_button2.useButton)({
728
743
  onPress: () => close()
729
744
  }, closeButtonRef);
730
- return /* @__PURE__ */ import_react17.default.createElement(import_overlays3.OverlayContainer, null, /* @__PURE__ */ import_react17.default.createElement(ModalDialog, __spreadValues({
745
+ return /* @__PURE__ */ import_react18.default.createElement(import_overlays3.OverlayContainer, null, /* @__PURE__ */ import_react18.default.createElement(ModalDialog, __spreadValues({
731
746
  variant,
732
747
  backdropVariant,
733
748
  isOpen,
734
749
  onClose: close,
735
750
  isDismissable: true
736
- }, props), /* @__PURE__ */ import_react17.default.createElement(import_system.Box, {
751
+ }, props), /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
737
752
  __baseCSS: {
738
753
  display: "flex",
739
754
  justifyContent: "space-between",
@@ -742,12 +757,12 @@ var Dialog = (_a) => {
742
757
  pb: "large"
743
758
  },
744
759
  className
745
- }, /* @__PURE__ */ import_react17.default.createElement(import_system.Box, {
760
+ }, /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
746
761
  pt: "medium"
747
- }, title && /* @__PURE__ */ import_react17.default.createElement(Text, {
762
+ }, title && /* @__PURE__ */ import_react18.default.createElement(Text, {
748
763
  as: "h4",
749
764
  variant: "headline4"
750
- }, title), children), /* @__PURE__ */ import_react17.default.createElement(import_system.Box, {
765
+ }, title), children), /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
751
766
  __baseCSS: {
752
767
  display: "flex",
753
768
  justifyContent: "flex-end",
@@ -755,7 +770,7 @@ var Dialog = (_a) => {
755
770
  paddingTop: "xsmall",
756
771
  paddingX: "xsmall"
757
772
  }
758
- }, /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadProps(__spreadValues({
773
+ }, /* @__PURE__ */ import_react18.default.createElement(import_system.Box, __spreadProps(__spreadValues({
759
774
  as: Button,
760
775
  __baseCSS: {
761
776
  color: "text",
@@ -773,13 +788,13 @@ var Dialog = (_a) => {
773
788
  }
774
789
  }, closeButtonProps), {
775
790
  ref: closeButtonRef
776
- }), /* @__PURE__ */ import_react17.default.createElement(import_icons4.Close, {
791
+ }), /* @__PURE__ */ import_react18.default.createElement(import_icons4.Close, {
777
792
  size: 16
778
793
  }))))));
779
794
  };
780
795
  var useDialogButtonProps = () => {
781
796
  const state = (0, import_overlays2.useOverlayTriggerState)({});
782
- const openButtonRef = import_react17.default.useRef();
797
+ const openButtonRef = import_react18.default.useRef();
783
798
  const { buttonProps: openButtonProps } = (0, import_button2.useButton)({
784
799
  onPress: () => state.open()
785
800
  }, openButtonRef);
@@ -791,19 +806,19 @@ var useDialogButtonProps = () => {
791
806
  };
792
807
 
793
808
  // src/Divider/Divider.tsx
794
- var import_react18 = __toESM(require("react"));
809
+ var import_react19 = __toESM(require("react"));
795
810
  var import_separator = require("@react-aria/separator");
796
811
  var Divider = (_a) => {
797
812
  var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
798
813
  const { separatorProps } = (0, import_separator.useSeparator)(props);
799
- return /* @__PURE__ */ import_react18.default.createElement(import_system.Box, __spreadValues(__spreadValues({
814
+ return /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadValues(__spreadValues({
800
815
  __baseCSS: { width: "100%", height: "1px", m: "none", bg: "text" },
801
816
  variant: `divider.${variant}`
802
817
  }, props), separatorProps));
803
818
  };
804
819
 
805
820
  // src/Field/Field.tsx
806
- var import_react19 = __toESM(require("react"));
821
+ var import_react20 = __toESM(require("react"));
807
822
  var import_textfield = require("@react-aria/textfield");
808
823
  var import_icons5 = require("@marigold/icons");
809
824
  var Field = (_a) => {
@@ -824,20 +839,20 @@ var Field = (_a) => {
824
839
  "error",
825
840
  "errorMessage"
826
841
  ]);
827
- const ref = (0, import_react19.useRef)(null);
842
+ const ref = (0, import_react20.useRef)(null);
828
843
  const { labelProps, inputProps, errorMessageProps } = (0, import_textfield.useTextField)(props, ref);
829
- return /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(Label, __spreadValues({
844
+ return /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(Label, __spreadValues({
830
845
  variant: labelVariant,
831
846
  htmlFor,
832
847
  required
833
- }, labelProps), props.label), /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
848
+ }, labelProps), props.label), /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
834
849
  as: "input",
835
850
  type,
836
851
  id: htmlFor,
837
852
  variant: `input.${variant}`
838
853
  }, inputProps), {
839
854
  ref
840
- }), props)), error && errorMessage && /* @__PURE__ */ import_react19.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react19.default.createElement(import_icons5.Exclamation, {
855
+ }), props)), error && errorMessage && /* @__PURE__ */ import_react20.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react20.default.createElement(import_icons5.Exclamation, {
841
856
  size: 16
842
857
  }), errorMessage));
843
858
  };
@@ -846,21 +861,21 @@ var Field = (_a) => {
846
861
  var import_visually_hidden2 = require("@react-aria/visually-hidden");
847
862
 
848
863
  // src/Image/Image.tsx
849
- var import_react20 = __toESM(require("react"));
864
+ var import_react21 = __toESM(require("react"));
850
865
  var Image = (_a) => {
851
866
  var _b = _a, {
852
867
  variant = "fullWidth"
853
868
  } = _b, props = __objRest(_b, [
854
869
  "variant"
855
870
  ]);
856
- return /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
871
+ return /* @__PURE__ */ import_react21.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
857
872
  as: "img",
858
873
  variant: `image.${variant}`
859
874
  }));
860
875
  };
861
876
 
862
877
  // src/Link/Link.tsx
863
- var import_react21 = __toESM(require("react"));
878
+ var import_react22 = __toESM(require("react"));
864
879
  var import_link = require("@react-aria/link");
865
880
  var Link = (_a) => {
866
881
  var _b = _a, {
@@ -874,12 +889,12 @@ var Link = (_a) => {
874
889
  "children",
875
890
  "disabled"
876
891
  ]);
877
- const ref = (0, import_react21.useRef)();
892
+ const ref = (0, import_react22.useRef)();
878
893
  const { linkProps } = (0, import_link.useLink)(__spreadProps(__spreadValues({}, props), {
879
894
  elementType: typeof as === "string" ? as : "span",
880
895
  isDisabled: disabled
881
896
  }), ref);
882
- return /* @__PURE__ */ import_react21.default.createElement(Text, __spreadProps(__spreadValues(__spreadValues({}, props), linkProps), {
897
+ return /* @__PURE__ */ import_react22.default.createElement(Text, __spreadProps(__spreadValues(__spreadValues({}, props), linkProps), {
883
898
  as,
884
899
  variant,
885
900
  ref
@@ -887,7 +902,7 @@ var Link = (_a) => {
887
902
  };
888
903
 
889
904
  // src/Menu/Menu.tsx
890
- var import_react22 = __toESM(require("react"));
905
+ var import_react23 = __toESM(require("react"));
891
906
  var Menu = (_a) => {
892
907
  var _b = _a, {
893
908
  variant = "default",
@@ -902,12 +917,12 @@ var Menu = (_a) => {
902
917
  "show",
903
918
  "children"
904
919
  ]);
905
- return /* @__PURE__ */ import_react22.default.createElement(import_system.Box, __spreadValues({
920
+ return /* @__PURE__ */ import_react23.default.createElement(import_system.Box, __spreadValues({
906
921
  variant: `menu.${variant}`
907
- }, props), /* @__PURE__ */ import_react22.default.createElement(Button, {
922
+ }, props), /* @__PURE__ */ import_react23.default.createElement(Button, {
908
923
  onClick,
909
924
  variant: "menu"
910
- }, label), show ? /* @__PURE__ */ import_react22.default.createElement(import_system.Box, {
925
+ }, label), show ? /* @__PURE__ */ import_react23.default.createElement(import_system.Box, {
911
926
  display: "block",
912
927
  position: "absolute",
913
928
  minWidth: "120px",
@@ -916,7 +931,7 @@ var Menu = (_a) => {
916
931
  };
917
932
 
918
933
  // src/MenuItem/MenuItem.tsx
919
- var import_react23 = __toESM(require("react"));
934
+ var import_react24 = __toESM(require("react"));
920
935
  var MenuItem = (_a) => {
921
936
  var _b = _a, {
922
937
  variant = "default",
@@ -925,15 +940,15 @@ var MenuItem = (_a) => {
925
940
  "variant",
926
941
  "children"
927
942
  ]);
928
- return /* @__PURE__ */ import_react23.default.createElement(import_system.Box, {
943
+ return /* @__PURE__ */ import_react24.default.createElement(import_system.Box, {
929
944
  variant: `menuItem.${variant}`
930
- }, /* @__PURE__ */ import_react23.default.createElement(Link, __spreadValues({
945
+ }, /* @__PURE__ */ import_react24.default.createElement(Link, __spreadValues({
931
946
  variant: "menuItemLink"
932
947
  }, props), children));
933
948
  };
934
949
 
935
950
  // src/Message/Message.tsx
936
- var import_react24 = __toESM(require("react"));
951
+ var import_react25 = __toESM(require("react"));
937
952
  var import_icons6 = require("@marigold/icons");
938
953
  var Message = (_a) => {
939
954
  var _b = _a, {
@@ -947,25 +962,25 @@ var Message = (_a) => {
947
962
  "className",
948
963
  "children"
949
964
  ]);
950
- var icon = /* @__PURE__ */ import_react24.default.createElement(import_icons6.Info, null);
965
+ var icon = /* @__PURE__ */ import_react25.default.createElement(import_icons6.Info, null);
951
966
  if (variant === "warning") {
952
- icon = /* @__PURE__ */ import_react24.default.createElement(import_icons6.Notification, null);
967
+ icon = /* @__PURE__ */ import_react25.default.createElement(import_icons6.Notification, null);
953
968
  }
954
969
  if (variant === "error") {
955
- icon = /* @__PURE__ */ import_react24.default.createElement(import_icons6.Exclamation, null);
970
+ icon = /* @__PURE__ */ import_react25.default.createElement(import_icons6.Exclamation, null);
956
971
  }
957
- return /* @__PURE__ */ import_react24.default.createElement(import_system.Box, __spreadValues({
972
+ return /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadValues({
958
973
  display: "inline-block",
959
974
  variant: `message.${variant}`,
960
975
  className
961
- }, props), /* @__PURE__ */ import_react24.default.createElement(import_system.Box, {
976
+ }, props), /* @__PURE__ */ import_react25.default.createElement(import_system.Box, {
962
977
  display: "flex",
963
978
  alignItems: "center",
964
979
  variant: "message.title"
965
- }, icon, /* @__PURE__ */ import_react24.default.createElement(Text, {
980
+ }, icon, /* @__PURE__ */ import_react25.default.createElement(Text, {
966
981
  as: "h4",
967
982
  variant: "headline4"
968
- }, messageTitle)), /* @__PURE__ */ import_react24.default.createElement(import_system.Box, {
983
+ }, messageTitle)), /* @__PURE__ */ import_react25.default.createElement(import_system.Box, {
969
984
  css: { color: "black" }
970
985
  }, children));
971
986
  };
@@ -975,7 +990,7 @@ var import_system5 = require("@marigold/system");
975
990
  var import_ssr = require("@react-aria/ssr");
976
991
 
977
992
  // src/Provider/MarigoldProvider.tsx
978
- var import_react25 = __toESM(require("react"));
993
+ var import_react26 = __toESM(require("react"));
979
994
  var import_overlays4 = require("@react-aria/overlays");
980
995
  var import_system4 = require("@marigold/system");
981
996
  function MarigoldProvider({
@@ -984,19 +999,19 @@ function MarigoldProvider({
984
999
  }) {
985
1000
  const outer = (0, import_system4.useTheme)();
986
1001
  const isTopLevel = outer.theme === import_system4.__defaultTheme;
987
- return /* @__PURE__ */ import_react25.default.createElement(import_system4.ThemeProvider, {
1002
+ return /* @__PURE__ */ import_react26.default.createElement(import_system4.ThemeProvider, {
988
1003
  theme
989
- }, isTopLevel ? /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(import_system4.Global, null), /* @__PURE__ */ import_react25.default.createElement(import_overlays4.OverlayProvider, null, children)) : children);
1004
+ }, isTopLevel ? /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(import_system4.Global, null), /* @__PURE__ */ import_react26.default.createElement(import_overlays4.OverlayProvider, null, children)) : children);
990
1005
  }
991
1006
 
992
1007
  // src/Radio/Radio.tsx
993
- var import_react27 = __toESM(require("react"));
1008
+ var import_react28 = __toESM(require("react"));
994
1009
  var import_icons7 = require("@marigold/icons");
995
1010
  var import_focus3 = require("@react-aria/focus");
996
1011
  var import_visually_hidden3 = require("@react-aria/visually-hidden");
997
1012
 
998
1013
  // src/Radio/RadioIcon.tsx
999
- var import_react26 = __toESM(require("react"));
1014
+ var import_react27 = __toESM(require("react"));
1000
1015
  var import_system6 = require("@marigold/system");
1001
1016
  var RadioIcon = ({
1002
1017
  variant = "",
@@ -1010,19 +1025,19 @@ var RadioIcon = ({
1010
1025
  checked,
1011
1026
  error
1012
1027
  };
1013
- return /* @__PURE__ */ import_react26.default.createElement(import_system6.SVG, {
1028
+ return /* @__PURE__ */ import_react27.default.createElement(import_system6.SVG, {
1014
1029
  width: "16",
1015
1030
  height: "32",
1016
1031
  viewBox: "0 0 16 32",
1017
1032
  fill: "none",
1018
1033
  "aria-hidden": "true"
1019
- }, /* @__PURE__ */ import_react26.default.createElement(import_system.Box, {
1034
+ }, /* @__PURE__ */ import_react27.default.createElement(import_system.Box, {
1020
1035
  variant: (0, import_system6.conditional)(`radio.${variant}`, conditionalStates),
1021
1036
  as: "circle",
1022
1037
  cx: "8",
1023
1038
  cy: "16",
1024
1039
  r: "7.5"
1025
- }), checked && /* @__PURE__ */ import_react26.default.createElement("circle", {
1040
+ }), checked && /* @__PURE__ */ import_react27.default.createElement("circle", {
1026
1041
  fill: "white",
1027
1042
  cx: "8",
1028
1043
  cy: "16",
@@ -1035,12 +1050,12 @@ var RadioInput = (_a) => {
1035
1050
  var _b = _a, { error } = _b, props = __objRest(_b, ["error"]);
1036
1051
  const { focusProps } = (0, import_focus3.useFocusRing)();
1037
1052
  const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
1038
- return /* @__PURE__ */ import_react27.default.createElement(import_system.Box, {
1053
+ return /* @__PURE__ */ import_react28.default.createElement(import_system.Box, {
1039
1054
  pr: "xsmall"
1040
- }, /* @__PURE__ */ import_react27.default.createElement(import_visually_hidden3.VisuallyHidden, null, /* @__PURE__ */ import_react27.default.createElement("input", __spreadValues(__spreadValues({
1055
+ }, /* @__PURE__ */ import_react28.default.createElement(import_visually_hidden3.VisuallyHidden, null, /* @__PURE__ */ import_react28.default.createElement("input", __spreadValues(__spreadValues({
1041
1056
  type: "radio",
1042
1057
  disabled: props.disabled
1043
- }, focusProps), restProps))), /* @__PURE__ */ import_react27.default.createElement(RadioIcon, {
1058
+ }, focusProps), restProps))), /* @__PURE__ */ import_react28.default.createElement(RadioIcon, {
1044
1059
  variant: props.variant,
1045
1060
  disabled: props.disabled,
1046
1061
  checked: props.checked,
@@ -1057,25 +1072,25 @@ var Radio = (_a) => {
1057
1072
  "labelVariant",
1058
1073
  "errorMessage"
1059
1074
  ]);
1060
- return /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, /* @__PURE__ */ import_react27.default.createElement(import_system.Box, {
1075
+ return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(import_system.Box, {
1061
1076
  as: Label,
1062
1077
  htmlFor: props.id,
1063
1078
  required,
1064
1079
  variant: `label.${labelVariant}`,
1065
1080
  css: props.disabled ? { color: "disabled", ":hover": { cursor: "not-allowed" } } : { color: "text", ":hover": { cursor: "pointer" } }
1066
- }, /* @__PURE__ */ import_react27.default.createElement(import_system.Box, __spreadValues({
1081
+ }, /* @__PURE__ */ import_react28.default.createElement(import_system.Box, __spreadValues({
1067
1082
  as: RadioInput,
1068
1083
  error: props.error
1069
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react27.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react27.default.createElement(import_icons7.Exclamation, {
1084
+ }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react28.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react28.default.createElement(import_icons7.Exclamation, {
1070
1085
  size: 16
1071
1086
  }), errorMessage));
1072
1087
  };
1073
1088
 
1074
1089
  // src/Slider/Slider.tsx
1075
- var import_react28 = __toESM(require("react"));
1090
+ var import_react29 = __toESM(require("react"));
1076
1091
  var Slider = (_a) => {
1077
1092
  var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
1078
- return /* @__PURE__ */ import_react28.default.createElement(import_system.Box, __spreadValues({
1093
+ return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadValues({
1079
1094
  as: "input",
1080
1095
  type: "range",
1081
1096
  css: { verticalAlign: "middle" },
@@ -1084,10 +1099,10 @@ var Slider = (_a) => {
1084
1099
  };
1085
1100
 
1086
1101
  // src/Select/Select.tsx
1087
- var import_react33 = __toESM(require("react"));
1102
+ var import_react34 = __toESM(require("react"));
1088
1103
  var import_select = require("@react-stately/select");
1089
1104
  var import_button3 = require("@react-aria/button");
1090
- var import_utils3 = require("@react-aria/utils");
1105
+ var import_utils6 = require("@react-aria/utils");
1091
1106
  var import_focus5 = require("@react-aria/focus");
1092
1107
  var import_select2 = require("@react-aria/select");
1093
1108
  var import_overlays6 = require("@react-stately/overlays");
@@ -1095,26 +1110,26 @@ var import_overlays7 = require("@react-aria/overlays");
1095
1110
  var import_icons8 = require("@marigold/icons");
1096
1111
 
1097
1112
  // src/Select/ListBox.tsx
1098
- var import_react31 = __toESM(require("react"));
1113
+ var import_react32 = __toESM(require("react"));
1099
1114
  var import_listbox3 = require("@react-aria/listbox");
1100
1115
 
1101
1116
  // src/Select/Option.tsx
1102
- var import_react29 = __toESM(require("react"));
1117
+ var import_react30 = __toESM(require("react"));
1103
1118
  var import_listbox = require("@react-aria/listbox");
1104
1119
  var Option = ({ item, state }) => {
1105
- const ref = (0, import_react29.useRef)(null);
1106
- const [disabled, setDisabled] = (0, import_react29.useState)(false);
1120
+ const ref = (0, import_react30.useRef)(null);
1121
+ const [disabled, setDisabled] = (0, import_react30.useState)(false);
1107
1122
  const { optionProps, isSelected } = (0, import_listbox.useOption)({
1108
1123
  key: item.key
1109
1124
  }, state, ref);
1110
- (0, import_react29.useEffect)(() => {
1125
+ (0, import_react30.useEffect)(() => {
1111
1126
  for (const key of state.disabledKeys.values()) {
1112
1127
  if (key === item.key) {
1113
1128
  setDisabled(true);
1114
1129
  }
1115
1130
  }
1116
1131
  }, [state.disabledKeys, item.key]);
1117
- return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1132
+ return /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1118
1133
  as: "li"
1119
1134
  }, optionProps), {
1120
1135
  ref,
@@ -1123,26 +1138,26 @@ var Option = ({ item, state }) => {
1123
1138
  };
1124
1139
 
1125
1140
  // src/Select/ListBoxSection.tsx
1126
- var import_react30 = __toESM(require("react"));
1141
+ var import_react31 = __toESM(require("react"));
1127
1142
  var import_listbox2 = require("@react-aria/listbox");
1128
1143
  var ListBoxSection = ({ section, state }) => {
1129
1144
  const { itemProps, headingProps, groupProps } = (0, import_listbox2.useListBoxSection)({
1130
1145
  heading: section.rendered,
1131
1146
  "aria-label": section["aria-label"]
1132
1147
  });
1133
- return /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1148
+ return /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1134
1149
  as: "li"
1135
1150
  }, itemProps), {
1136
1151
  css: {
1137
1152
  cursor: "not-allowed"
1138
1153
  }
1139
- }), section.rendered && /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1154
+ }), section.rendered && /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1140
1155
  as: "span"
1141
1156
  }, headingProps), {
1142
1157
  variant: "select.section"
1143
- }), section.rendered), /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadValues({
1158
+ }), section.rendered), /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadValues({
1144
1159
  as: "ul"
1145
- }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react30.default.createElement(Option, {
1160
+ }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react31.default.createElement(Option, {
1146
1161
  key: node.key,
1147
1162
  item: node,
1148
1163
  state
@@ -1151,10 +1166,10 @@ var ListBoxSection = ({ section, state }) => {
1151
1166
 
1152
1167
  // src/Select/ListBox.tsx
1153
1168
  var ListBox = (props) => {
1154
- const ref = (0, import_react31.useRef)(null);
1169
+ const ref = (0, import_react32.useRef)(null);
1155
1170
  const { state, error } = props;
1156
1171
  const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, ref);
1157
- return /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1172
+ return /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1158
1173
  as: "ul",
1159
1174
  p: "none",
1160
1175
  css: {
@@ -1163,11 +1178,11 @@ var ListBox = (props) => {
1163
1178
  }, listBoxProps), {
1164
1179
  variant: error ? "select.listbox.error" : "select.listbox",
1165
1180
  ref
1166
- }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react31.default.createElement(ListBoxSection, {
1181
+ }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react32.default.createElement(ListBoxSection, {
1167
1182
  key: item.key,
1168
1183
  section: item,
1169
1184
  state
1170
- }) : /* @__PURE__ */ import_react31.default.createElement(Option, {
1185
+ }) : /* @__PURE__ */ import_react32.default.createElement(Option, {
1171
1186
  key: item.key,
1172
1187
  item,
1173
1188
  state
@@ -1175,11 +1190,11 @@ var ListBox = (props) => {
1175
1190
  };
1176
1191
 
1177
1192
  // src/Select/Popover.tsx
1178
- var import_react32 = __toESM(require("react"));
1193
+ var import_react33 = __toESM(require("react"));
1179
1194
  var import_focus4 = require("@react-aria/focus");
1180
1195
  var import_overlays5 = require("@react-aria/overlays");
1181
- var import_utils2 = require("@react-aria/utils");
1182
- var Popover = (0, import_react32.forwardRef)((_a, ref) => {
1196
+ var import_utils5 = require("@react-aria/utils");
1197
+ var Popover = (0, import_react33.forwardRef)((_a, ref) => {
1183
1198
  var _b = _a, { children, className, isOpen, onClose } = _b, otherProps = __objRest(_b, ["children", "className", "isOpen", "onClose"]);
1184
1199
  const { overlayProps } = (0, import_overlays5.useOverlay)({
1185
1200
  isOpen,
@@ -1188,12 +1203,12 @@ var Popover = (0, import_react32.forwardRef)((_a, ref) => {
1188
1203
  isDismissable: true
1189
1204
  }, ref);
1190
1205
  const { modalProps } = (0, import_overlays5.useModal)();
1191
- return /* @__PURE__ */ import_react32.default.createElement(import_overlays5.OverlayContainer, null, /* @__PURE__ */ import_react32.default.createElement(import_focus4.FocusScope, {
1206
+ return /* @__PURE__ */ import_react33.default.createElement(import_overlays5.OverlayContainer, null, /* @__PURE__ */ import_react33.default.createElement(import_focus4.FocusScope, {
1192
1207
  restoreFocus: true
1193
- }, /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils2.mergeProps)(overlayProps, otherProps, modalProps)), {
1208
+ }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils5.mergeProps)(overlayProps, otherProps, modalProps)), {
1194
1209
  className,
1195
1210
  ref
1196
- }), children, /* @__PURE__ */ import_react32.default.createElement(import_overlays5.DismissButton, {
1211
+ }), children, /* @__PURE__ */ import_react33.default.createElement(import_overlays5.DismissButton, {
1197
1212
  onDismiss: onClose
1198
1213
  }))));
1199
1214
  });
@@ -1221,8 +1236,8 @@ var Select = (_a) => {
1221
1236
  ]);
1222
1237
  const state = (0, import_select.useSelectState)(props);
1223
1238
  const overlayTriggerState = (0, import_overlays6.useOverlayTriggerState)({});
1224
- const triggerRef = (0, import_react33.useRef)();
1225
- const overlayRef = (0, import_react33.useRef)();
1239
+ const triggerRef = (0, import_react34.useRef)();
1240
+ const overlayRef = (0, import_react34.useRef)();
1226
1241
  const { overlayProps } = (0, import_overlays7.useOverlayTrigger)({ type: "listbox" }, overlayTriggerState, triggerRef);
1227
1242
  const { overlayProps: positionProps } = (0, import_overlays7.useOverlayPosition)({
1228
1243
  targetRef: triggerRef,
@@ -1235,47 +1250,47 @@ var Select = (_a) => {
1235
1250
  const { labelProps, triggerProps, valueProps, menuProps } = (0, import_select2.useSelect)(props, state, triggerRef);
1236
1251
  const { buttonProps } = (0, import_button3.useButton)(triggerProps, triggerRef);
1237
1252
  const { focusProps } = (0, import_focus5.useFocusRing)();
1238
- return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1253
+ return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1239
1254
  position: "relative",
1240
1255
  display: "inline-block",
1241
1256
  width: width && width
1242
- }, props.label && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react33.default.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
1257
+ }, props.label && /* @__PURE__ */ import_react34.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react34.default.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
1243
1258
  htmlFor: labelProps.id,
1244
1259
  variant: labelVariant
1245
- }), required ? /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1260
+ }), required ? /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1246
1261
  as: "span",
1247
1262
  display: "inline-flex",
1248
1263
  alignItems: "center"
1249
- }, props.label, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1264
+ }, props.label, /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1250
1265
  as: import_icons8.Required,
1251
1266
  size: 16,
1252
1267
  css: { color: "error" }
1253
- })) : props.label)), /* @__PURE__ */ import_react33.default.createElement(import_select2.HiddenSelect, {
1268
+ })) : props.label)), /* @__PURE__ */ import_react34.default.createElement(import_select2.HiddenSelect, {
1254
1269
  state,
1255
1270
  triggerRef,
1256
1271
  label: props.label,
1257
1272
  name: props.name,
1258
1273
  isDisabled: disabled
1259
- }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1274
+ }), /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1260
1275
  as: "button"
1261
- }, (0, import_utils3.mergeProps)(buttonProps, focusProps)), {
1276
+ }, (0, import_utils6.mergeProps)(buttonProps, focusProps)), {
1262
1277
  ref: triggerRef,
1263
1278
  variant: error && state.isOpen && !disabled ? "button.select.errorOpened" : error ? "button.select.error" : state.isOpen && !disabled ? "button.select.open" : "button.select",
1264
1279
  disabled,
1265
1280
  className
1266
- }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1281
+ }), /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1267
1282
  as: "span"
1268
1283
  }, valueProps), {
1269
1284
  variant: disabled ? "select.disabled" : "select"
1270
- }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1285
+ }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1271
1286
  as: import_icons8.ArrowUp,
1272
1287
  size: 16,
1273
1288
  css: { fill: "text" }
1274
- }) : /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1289
+ }) : /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1275
1290
  as: import_icons8.ArrowDown,
1276
1291
  size: 16,
1277
1292
  css: { fill: disabled ? "disabled" : "text" }
1278
- })), state.isOpen && !disabled && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1293
+ })), state.isOpen && !disabled && /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1279
1294
  as: Popover
1280
1295
  }, overlayProps), positionProps), {
1281
1296
  css: {
@@ -1284,23 +1299,23 @@ var Select = (_a) => {
1284
1299
  ref: overlayRef,
1285
1300
  isOpen: state.isOpen,
1286
1301
  onClose: state.close
1287
- }), /* @__PURE__ */ import_react33.default.createElement(ListBox, __spreadProps(__spreadValues({
1302
+ }), /* @__PURE__ */ import_react34.default.createElement(ListBox, __spreadProps(__spreadValues({
1288
1303
  error
1289
1304
  }, menuProps), {
1290
1305
  state
1291
- }))), error && errorMessage && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1306
+ }))), error && errorMessage && /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1292
1307
  as: "span",
1293
1308
  display: "inline-flex",
1294
1309
  alignItems: "center"
1295
- }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1310
+ }, /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1296
1311
  as: import_icons8.Exclamation,
1297
1312
  size: 16,
1298
1313
  css: { color: "error" }
1299
- }), /* @__PURE__ */ import_react33.default.createElement(ValidationMessage, null, errorMessage)));
1314
+ }), /* @__PURE__ */ import_react34.default.createElement(ValidationMessage, null, errorMessage)));
1300
1315
  };
1301
1316
 
1302
1317
  // src/Textarea/Textarea.tsx
1303
- var import_react34 = __toESM(require("react"));
1318
+ var import_react35 = __toESM(require("react"));
1304
1319
  var import_textfield2 = require("@react-aria/textfield");
1305
1320
  var import_icons9 = require("@marigold/icons");
1306
1321
  var Textarea = (_a) => {
@@ -1319,14 +1334,14 @@ var Textarea = (_a) => {
1319
1334
  "required",
1320
1335
  "children"
1321
1336
  ]);
1322
- const ref = (0, import_react34.useRef)(null);
1337
+ const ref = (0, import_react35.useRef)(null);
1323
1338
  const { labelProps, inputProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadProps(__spreadValues({}, props), {
1324
1339
  inputElementType: "textarea"
1325
1340
  }), ref);
1326
- return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react34.default.createElement(Label, __spreadValues({
1341
+ return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react35.default.createElement(Label, __spreadValues({
1327
1342
  htmlFor,
1328
1343
  required
1329
- }, labelProps), props.label), /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
1344
+ }, labelProps), props.label), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
1330
1345
  as: "textarea",
1331
1346
  variant: `textarea.${variant}`,
1332
1347
  css: {
@@ -1334,13 +1349,13 @@ var Textarea = (_a) => {
1334
1349
  }
1335
1350
  }, inputProps), {
1336
1351
  ref
1337
- }), props)), error && errorMessage && /* @__PURE__ */ import_react34.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react34.default.createElement(import_icons9.Exclamation, {
1352
+ }), props)), error && errorMessage && /* @__PURE__ */ import_react35.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react35.default.createElement(import_icons9.Exclamation, {
1338
1353
  size: 16
1339
1354
  }), errorMessage));
1340
1355
  };
1341
1356
 
1342
1357
  // src/Input/Input.tsx
1343
- var import_react35 = __toESM(require("react"));
1358
+ var import_react36 = __toESM(require("react"));
1344
1359
  var Input = (_a) => {
1345
1360
  var _b = _a, {
1346
1361
  variant = "",
@@ -1349,7 +1364,7 @@ var Input = (_a) => {
1349
1364
  "variant",
1350
1365
  "type"
1351
1366
  ]);
1352
- return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1367
+ return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1353
1368
  as: "input",
1354
1369
  type,
1355
1370
  variant: `input.${variant}`
@@ -1357,10 +1372,10 @@ var Input = (_a) => {
1357
1372
  };
1358
1373
 
1359
1374
  // src/Container/Container.tsx
1360
- var import_react36 = __toESM(require("react"));
1375
+ var import_react37 = __toESM(require("react"));
1361
1376
  var Container = (_a) => {
1362
1377
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1363
- return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1378
+ return /* @__PURE__ */ import_react37.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1364
1379
  width: "100%"
1365
1380
  }), children);
1366
1381
  };
package/dist/index.mjs CHANGED
@@ -34,8 +34,29 @@ var __objRest = (source, exclude) => {
34
34
  import React3 from "react";
35
35
 
36
36
  // src/Inline/Inline.tsx
37
- import React, { Children } from "react";
38
- import flattenChildren from "react-keyed-flatten-children";
37
+ import React, { Children as Children2 } from "react";
38
+
39
+ // src/utils/flatten-children.ts
40
+ import {
41
+ Children,
42
+ isValidElement,
43
+ cloneElement
44
+ } from "react";
45
+ import { isFragment } from "react-is";
46
+ var flattenChildren = (children, depth = 0, keys = []) => Children.toArray(children).reduce((acc, node) => {
47
+ if (isFragment(node)) {
48
+ acc.push.apply(acc, flattenChildren(node.props.children, depth + 1, keys.concat(node.key)));
49
+ } else {
50
+ if (isValidElement(node)) {
51
+ acc.push(cloneElement(node, {
52
+ key: keys.concat(String(node.key)).join(".")
53
+ }));
54
+ } else if (typeof node === "string" || typeof node === "number") {
55
+ acc.push(node);
56
+ }
57
+ }
58
+ return acc;
59
+ }, []);
39
60
 
40
61
  // src/Box.ts
41
62
  import { Box } from "@marigold/system";
@@ -60,12 +81,11 @@ var Inline = (_a) => {
60
81
  display: "inline-flex",
61
82
  css: { "> * + *": { pl: space } },
62
83
  alignItems: ALIGNMENT[align]
63
- }, props), Children.map(flattenChildren(children), (child) => /* @__PURE__ */ React.createElement(Box, null, React.cloneElement(child, {}, child.props.children))));
84
+ }, props), Children2.map(flattenChildren(children), (child) => /* @__PURE__ */ React.createElement(Box, null, React.cloneElement(child, {}, child.props.children))));
64
85
  };
65
86
 
66
87
  // src/Stack/Stack.tsx
67
- import React2, { Children as Children2 } from "react";
68
- import flattenChildren2 from "react-keyed-flatten-children";
88
+ import React2, { Children as Children3 } from "react";
69
89
  var ALIGNMENT2 = {
70
90
  left: "flex-start",
71
91
  center: "center",
@@ -86,7 +106,7 @@ var Stack = (_a) => {
86
106
  flexDirection: "column",
87
107
  alignItems: ALIGNMENT2[align],
88
108
  css: { "> * + *": { pt: space } }
89
- }), Children2.map(flattenChildren2(children), (child) => /* @__PURE__ */ React2.createElement(Box, null, React2.cloneElement(child, {}, child.props.children))));
109
+ }), Children3.map(flattenChildren(children), (child) => /* @__PURE__ */ React2.createElement(Box, null, React2.cloneElement(child, {}, child.props.children))));
90
110
  };
91
111
 
92
112
  // src/ActionGroup/ActionGroup.tsx
@@ -497,8 +517,7 @@ var Column = (_a) => {
497
517
  };
498
518
 
499
519
  // src/Columns/Columns.tsx
500
- import React13, { Children as Children3 } from "react";
501
- import flattenChildren3 from "react-keyed-flatten-children";
520
+ import React13, { Children as Children4 } from "react";
502
521
  import { useTheme } from "@marigold/system";
503
522
  var useAlignment = (direction) => {
504
523
  switch (direction) {
@@ -541,7 +560,7 @@ var Columns = (_a) => {
541
560
  flexWrap: "wrap",
542
561
  alignItems,
543
562
  justifyContent
544
- }, props), Children3.map(flattenChildren3(children), (child) => {
563
+ }, props), Children4.map(flattenChildren(children), (child) => {
545
564
  return React13.cloneElement(child, {}, /* @__PURE__ */ React13.createElement(Box, {
546
565
  css: { p: `${spaceValue / 2}px` }
547
566
  }, child.props.children));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marigold/components",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Components for the Marigold Design System",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -23,8 +23,8 @@
23
23
  "directory": "packages/components"
24
24
  },
25
25
  "dependencies": {
26
- "@marigold/icons": "0.4.1",
27
- "@marigold/system": "0.5.0",
26
+ "@marigold/icons": "0.4.2",
27
+ "@marigold/system": "0.5.1",
28
28
  "@marigold/types": "0.4.0",
29
29
  "@react-aria/button": "^3.3.3",
30
30
  "@react-aria/checkbox": "^3.2.3",
@@ -45,7 +45,7 @@
45
45
  "@react-stately/select": "^3.1.3",
46
46
  "@react-types/dialog": "^3.3.1",
47
47
  "@react-types/shared": "^3.8.0",
48
- "react-keyed-flatten-children": "1.3.0"
48
+ "react-is": "^17.0.2"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "react": "^16.x || ^17.0.0",