@marigold/components 0.9.0 → 1.0.0-beta.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 (4) hide show
  1. package/dist/index.d.ts +211 -177
  2. package/dist/index.js +1270 -965
  3. package/dist/index.mjs +1282 -959
  4. package/package.json +19 -9
package/dist/index.js CHANGED
@@ -73,18 +73,16 @@ __export(src_exports, {
73
73
  Image: () => Image,
74
74
  Inline: () => Inline,
75
75
  Input: () => Input,
76
- Item: () => import_collections2.Item,
77
- Label: () => Label2,
78
- LabelBase: () => LabelBase,
76
+ Label: () => Label,
79
77
  Link: () => Link,
80
78
  MarigoldProvider: () => MarigoldProvider,
81
79
  Menu: () => Menu,
82
80
  Message: () => Message,
81
+ NumberField: () => NumberField,
83
82
  Overlay: () => Overlay,
84
83
  Popover: () => Popover,
85
84
  Radio: () => Radio,
86
85
  SSRProvider: () => import_ssr.SSRProvider,
87
- Section: () => import_collections2.Section,
88
86
  Select: () => Select,
89
87
  Slider: () => Slider,
90
88
  Stack: () => Stack,
@@ -93,16 +91,15 @@ __export(src_exports, {
93
91
  Text: () => Text,
94
92
  TextArea: () => TextArea,
95
93
  TextField: () => TextField,
96
- ThemeProvider: () => import_system18.ThemeProvider,
94
+ ThemeProvider: () => import_system26.ThemeProvider,
97
95
  Tiles: () => Tiles,
98
96
  Tooltip: () => Tooltip,
99
97
  TooltipContext: () => TooltipContext,
100
98
  TooltipTrigger: () => TooltipTrigger,
101
- ValidationMessage: () => ValidationMessage,
99
+ Underlay: () => Underlay,
102
100
  VisuallyHidden: () => import_visually_hidden.VisuallyHidden,
103
101
  useCheckboxGroupContext: () => useCheckboxGroupContext,
104
- useDialogButtonProps: () => useDialogButtonProps,
105
- useTheme: () => import_system18.useTheme
102
+ useTheme: () => import_system26.useTheme
106
103
  });
107
104
  module.exports = __toCommonJS(src_exports);
108
105
 
@@ -171,13 +168,49 @@ var Badge = (_a) => {
171
168
  }), children);
172
169
  };
173
170
 
174
- // src/Button/Button.tsx
171
+ // src/Breakout/Breakout.tsx
175
172
  var import_react4 = __toESM(require("react"));
173
+ var useAlignment = (direction) => {
174
+ switch (direction) {
175
+ case "right":
176
+ return "flex-end";
177
+ case "bottom":
178
+ return "flex-end";
179
+ case "center":
180
+ return "center";
181
+ }
182
+ return "flex-start";
183
+ };
184
+ var Breakout = (_a) => {
185
+ var _b = _a, {
186
+ horizontalAlign,
187
+ verticalAlign,
188
+ children
189
+ } = _b, props = __objRest(_b, [
190
+ "horizontalAlign",
191
+ "verticalAlign",
192
+ "children"
193
+ ]);
194
+ const alignItems = useAlignment(horizontalAlign);
195
+ const justifyContent = useAlignment(verticalAlign);
196
+ return /* @__PURE__ */ import_react4.default.createElement(import_system.Box, __spreadValues({
197
+ alignItems,
198
+ justifyContent,
199
+ width: "100%",
200
+ display: verticalAlign || horizontalAlign ? "flex" : "block",
201
+ css: {
202
+ gridColumn: "1 / -1"
203
+ }
204
+ }, props), children);
205
+ };
206
+
207
+ // src/Button/Button.tsx
208
+ var import_react5 = __toESM(require("react"));
176
209
  var import_button = require("@react-aria/button");
177
210
  var import_focus = require("@react-aria/focus");
178
211
  var import_utils = require("@react-aria/utils");
179
212
  var import_system3 = require("@marigold/system");
180
- var Button = (0, import_react4.forwardRef)((_a, ref) => {
213
+ var Button = (0, import_react5.forwardRef)((_a, ref) => {
181
214
  var _b = _a, {
182
215
  as = "button",
183
216
  children,
@@ -191,8 +224,8 @@ var Button = (0, import_react4.forwardRef)((_a, ref) => {
191
224
  "size",
192
225
  "disabled"
193
226
  ]);
194
- const buttonRef = (0, import_react4.useRef)(null);
195
- (0, import_react4.useImperativeHandle)(ref, () => buttonRef.current);
227
+ const buttonRef = (0, import_react5.useRef)(null);
228
+ (0, import_react5.useImperativeHandle)(ref, () => buttonRef.current);
196
229
  const { buttonProps, isPressed } = (0, import_button.useButton)(__spreadProps(__spreadValues({}, props), {
197
230
  elementType: typeof as === "string" ? as : "span",
198
231
  isDisabled: disabled
@@ -203,7 +236,7 @@ var Button = (0, import_react4.forwardRef)((_a, ref) => {
203
236
  active: isPressed,
204
237
  focus: isFocusVisible
205
238
  });
206
- return /* @__PURE__ */ import_react4.default.createElement(import_system3.Box, __spreadProps(__spreadValues(__spreadValues({}, (0, import_utils.mergeProps)(buttonProps, focusProps)), stateProps), {
239
+ return /* @__PURE__ */ import_react5.default.createElement(import_system3.Box, __spreadProps(__spreadValues(__spreadValues({}, (0, import_utils.mergeProps)(buttonProps, focusProps)), stateProps), {
207
240
  as,
208
241
  ref: buttonRef,
209
242
  __baseCSS: {
@@ -216,42 +249,6 @@ var Button = (0, import_react4.forwardRef)((_a, ref) => {
216
249
  }), children);
217
250
  });
218
251
 
219
- // src/Breakout/Breakout.tsx
220
- var import_react5 = __toESM(require("react"));
221
- var useAlignment = (direction) => {
222
- switch (direction) {
223
- case "right":
224
- return "flex-end";
225
- case "bottom":
226
- return "flex-end";
227
- case "center":
228
- return "center";
229
- }
230
- return "flex-start";
231
- };
232
- var Breakout = (_a) => {
233
- var _b = _a, {
234
- horizontalAlign,
235
- verticalAlign,
236
- children
237
- } = _b, props = __objRest(_b, [
238
- "horizontalAlign",
239
- "verticalAlign",
240
- "children"
241
- ]);
242
- const alignItems = useAlignment(horizontalAlign);
243
- const justifyContent = useAlignment(verticalAlign);
244
- return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadValues({
245
- alignItems,
246
- justifyContent,
247
- width: "100%",
248
- display: verticalAlign || horizontalAlign ? "flex" : "block",
249
- css: {
250
- gridColumn: "1 / -1"
251
- }
252
- }, props), children);
253
- };
254
-
255
252
  // src/Card/Card.tsx
256
253
  var import_react6 = __toESM(require("react"));
257
254
  var import_system4 = require("@marigold/system");
@@ -303,7 +300,7 @@ var import_checkbox = require("@react-aria/checkbox");
303
300
  var import_checkbox2 = require("@react-stately/checkbox");
304
301
  var import_system6 = require("@marigold/system");
305
302
 
306
- // src/Field/Label.tsx
303
+ // src/Label/Label.tsx
307
304
  var import_react8 = __toESM(require("react"));
308
305
  var import_icons = require("@marigold/icons");
309
306
  var import_system5 = require("@marigold/system");
@@ -373,7 +370,7 @@ var CheckboxGroup = (_a) => {
373
370
  __baseCSS: {
374
371
  display: "flex",
375
372
  flexDirection: "column",
376
- alignItems: "left"
373
+ alignItems: "start"
377
374
  },
378
375
  css: styles.group
379
376
  }, /* @__PURE__ */ import_react9.default.createElement(CheckboxGroupContext.Provider, {
@@ -412,7 +409,7 @@ var Icon = (_a) => {
412
409
  display: "flex",
413
410
  alignItems: "center",
414
411
  justifyContent: "center",
415
- p: "1px"
412
+ p: 1
416
413
  },
417
414
  css
418
415
  }, props), checked ? icon : null);
@@ -471,7 +468,6 @@ var Checkbox = (_a) => {
471
468
  });
472
469
  return /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues(__spreadValues({
473
470
  as: "label",
474
- variant: "checkbox",
475
471
  __baseCSS: {
476
472
  display: "flex",
477
473
  alignItems: "center",
@@ -481,7 +477,6 @@ var Checkbox = (_a) => {
481
477
  css: styles.container
482
478
  }, hoverProps), stateProps), /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues(__spreadValues({
483
479
  as: "input",
484
- type: "checkbox",
485
480
  ref,
486
481
  css: {
487
482
  position: "absolute",
@@ -538,8 +533,53 @@ var Columns = (_a) => {
538
533
  }, props), children);
539
534
  };
540
535
 
541
- // src/Content/Content.tsx
536
+ // src/Container/Container.tsx
542
537
  var import_react12 = __toESM(require("react"));
538
+ var import_tokens2 = require("@marigold/tokens");
539
+ var ALIGNMENT = {
540
+ left: "flex-start",
541
+ center: "center",
542
+ right: "flex-end"
543
+ };
544
+ var Container = (_a) => {
545
+ var _b = _a, {
546
+ contentType = "content",
547
+ size = "medium",
548
+ align = "left",
549
+ alignContainer = "left",
550
+ children
551
+ } = _b, props = __objRest(_b, [
552
+ "contentType",
553
+ "size",
554
+ "align",
555
+ "alignContainer",
556
+ "children"
557
+ ]);
558
+ const maxWidth = import_tokens2.size[contentType][size];
559
+ let gridTemplateColumns = `${maxWidth} 1fr 1fr`;
560
+ let gridColumn = 1;
561
+ if (alignContainer === "center") {
562
+ gridTemplateColumns = `1fr ${maxWidth} 1fr`;
563
+ gridColumn = 2;
564
+ }
565
+ if (alignContainer === "right") {
566
+ gridTemplateColumns = `1fr 1fr ${maxWidth}`;
567
+ gridColumn = 3;
568
+ }
569
+ return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, __spreadValues({
570
+ display: "grid",
571
+ css: {
572
+ gridTemplateColumns,
573
+ placeItems: ALIGNMENT[align],
574
+ "> *": {
575
+ gridColumn
576
+ }
577
+ }
578
+ }, props), children);
579
+ };
580
+
581
+ // src/Content/Content.tsx
582
+ var import_react13 = __toESM(require("react"));
543
583
  var import_system8 = require("@marigold/system");
544
584
  var Content = (_a) => {
545
585
  var _b = _a, {
@@ -552,7 +592,7 @@ var Content = (_a) => {
552
592
  "size"
553
593
  ]);
554
594
  const styles = (0, import_system8.useComponentStyles)("Content", { variant, size });
555
- return /* @__PURE__ */ import_react12.default.createElement(import_system8.Box, __spreadProps(__spreadValues({
595
+ return /* @__PURE__ */ import_react13.default.createElement(import_system8.Box, __spreadProps(__spreadValues({
556
596
  as: "section"
557
597
  }, props), {
558
598
  css: styles
@@ -560,15 +600,27 @@ var Content = (_a) => {
560
600
  };
561
601
 
562
602
  // src/Dialog/Dialog.tsx
563
- var import_react15 = __toESM(require("react"));
564
- var import_overlays2 = require("@react-stately/overlays");
565
- var import_overlays3 = require("@react-aria/overlays");
603
+ var import_react22 = __toESM(require("react"));
566
604
  var import_button2 = require("@react-aria/button");
567
- var import_icons2 = require("@marigold/icons");
605
+ var import_dialog = require("@react-aria/dialog");
606
+ var import_system12 = require("@marigold/system");
568
607
 
569
- // src/Headline/Headline.tsx
570
- var import_react13 = __toESM(require("react"));
608
+ // src/Header/Header.tsx
609
+ var import_react14 = __toESM(require("react"));
571
610
  var import_system9 = require("@marigold/system");
611
+ var Header = (_a) => {
612
+ var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
613
+ const styles = (0, import_system9.useComponentStyles)("Header", { variant, size });
614
+ return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadProps(__spreadValues({
615
+ as: "header"
616
+ }, props), {
617
+ css: styles
618
+ }), children);
619
+ };
620
+
621
+ // src/Headline/Headline.tsx
622
+ var import_react15 = __toESM(require("react"));
623
+ var import_system10 = require("@marigold/system");
572
624
  var Headline = (_a) => {
573
625
  var _b = _a, {
574
626
  children,
@@ -581,202 +633,274 @@ var Headline = (_a) => {
581
633
  "size",
582
634
  "level"
583
635
  ]);
584
- const styles = (0, import_system9.useComponentStyles)("Headline", {
636
+ const styles = (0, import_system10.useComponentStyles)("Headline", {
585
637
  variant,
586
638
  size: size != null ? size : `level-${level}`
587
639
  });
588
- return /* @__PURE__ */ import_react13.default.createElement(import_system9.Box, __spreadProps(__spreadValues({
640
+ return /* @__PURE__ */ import_react15.default.createElement(import_system10.Box, __spreadProps(__spreadValues({
589
641
  as: `h${level}`
590
642
  }, props), {
591
643
  css: styles
592
644
  }), children);
593
645
  };
594
646
 
595
- // src/Dialog/ModalDialog.tsx
596
- var import_react14 = __toESM(require("react"));
597
- var import_overlays = require("@react-aria/overlays");
598
- var import_dialog = require("@react-aria/dialog");
647
+ // src/Dialog/Context.ts
648
+ var import_react16 = require("react");
649
+ var DialogContext = (0, import_react16.createContext)({});
650
+ var useDialogContext = () => (0, import_react16.useContext)(DialogContext);
651
+
652
+ // src/Dialog/DialogTrigger.tsx
653
+ var import_react21 = __toESM(require("react"));
654
+ var import_interactions2 = require("@react-aria/interactions");
655
+ var import_overlays4 = require("@react-stately/overlays");
656
+
657
+ // src/Overlay/Modal.tsx
658
+ var import_react18 = __toESM(require("react"));
599
659
  var import_focus3 = require("@react-aria/focus");
600
- var ModalDialog = (_a) => {
601
- var _b = _a, {
602
- variant,
603
- backdropVariant = "backdrop",
604
- children
605
- } = _b, props = __objRest(_b, [
606
- "variant",
607
- "backdropVariant",
608
- "children"
609
- ]);
610
- const _a2 = props, { isDismissable, isOpen, onClose } = _a2, restProps = __objRest(_a2, ["isDismissable", "isOpen", "onClose"]);
611
- const ref = import_react14.default.useRef();
612
- const { overlayProps, underlayProps } = (0, import_overlays.useOverlay)({ isDismissable, isOpen, onClose }, ref);
613
- (0, import_overlays.usePreventScroll)();
614
- const { modalProps } = (0, import_overlays.useModal)();
615
- const { dialogProps } = (0, import_dialog.useDialog)(props, ref);
616
- return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadValues({
660
+ var import_overlays = require("@react-aria/overlays");
661
+ var import_utils2 = require("@react-aria/utils");
662
+
663
+ // src/Overlay/Underlay.tsx
664
+ var import_react17 = __toESM(require("react"));
665
+ var import_system11 = require("@marigold/system");
666
+ var Underlay = (_a) => {
667
+ var _b = _a, { size, variant } = _b, props = __objRest(_b, ["size", "variant"]);
668
+ const styles = (0, import_system11.useComponentStyles)("Underlay", { size, variant });
669
+ return /* @__PURE__ */ import_react17.default.createElement(import_system11.Box, __spreadValues({
617
670
  __baseCSS: {
618
- display: "grid",
619
- placeItems: "center",
620
671
  position: "fixed",
621
- zIndex: 100,
622
- top: 0,
623
- left: 0,
624
- bottom: 0,
625
- right: 0
672
+ inset: 0,
673
+ zIndex: 1
626
674
  },
627
- variant: `dialog.${backdropVariant}`
628
- }, underlayProps), /* @__PURE__ */ import_react14.default.createElement(import_focus3.FocusScope, {
675
+ css: styles
676
+ }, props));
677
+ };
678
+
679
+ // src/Overlay/Modal.tsx
680
+ var Modal = (0, import_react18.forwardRef)((_a, ref) => {
681
+ var _b = _a, { children, open, dismissable, keyboardDismissable, onClose } = _b, props = __objRest(_b, ["children", "open", "dismissable", "keyboardDismissable", "onClose"]);
682
+ const modalRef = (0, import_utils2.useObjectRef)(ref);
683
+ const { overlayProps, underlayProps } = (0, import_overlays.useOverlay)({
684
+ isOpen: open,
685
+ onClose,
686
+ isDismissable: dismissable,
687
+ isKeyboardDismissDisabled: !keyboardDismissable
688
+ }, modalRef);
689
+ (0, import_overlays.usePreventScroll)();
690
+ const { modalProps } = (0, import_overlays.useModal)({});
691
+ return /* @__PURE__ */ import_react18.default.createElement(import_focus3.FocusScope, {
629
692
  contain: true,
630
693
  restoreFocus: true,
631
694
  autoFocus: true
632
- }, /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, overlayProps), dialogProps), modalProps), {
633
- ref,
634
- variant: variant ? `dialog.${variant}` : `dialog`
635
- }), restProps), children)));
636
- };
695
+ }, /* @__PURE__ */ import_react18.default.createElement(Underlay, __spreadValues({}, underlayProps)), /* @__PURE__ */ import_react18.default.createElement("div", __spreadValues({
696
+ style: {
697
+ display: "flex",
698
+ alignItems: "center",
699
+ justifyContent: "center",
700
+ position: "fixed",
701
+ inset: 0,
702
+ zIndex: 2,
703
+ pointerEvents: "none"
704
+ },
705
+ ref: modalRef
706
+ }, (0, import_utils2.mergeProps)(props, overlayProps, modalProps)), /* @__PURE__ */ import_react18.default.createElement("div", {
707
+ style: { pointerEvents: "auto" }
708
+ }, children)));
709
+ });
637
710
 
638
- // src/Dialog/Dialog.tsx
639
- var Dialog = (_a) => {
711
+ // src/Overlay/Overlay.tsx
712
+ var import_react19 = __toESM(require("react"));
713
+ var import_overlays2 = require("@react-aria/overlays");
714
+ var Overlay = (_a) => {
640
715
  var _b = _a, {
641
- backdropVariant,
642
716
  children,
643
- className,
644
- close,
645
- isOpen,
646
- title,
647
- variant
717
+ open = false,
718
+ container = document.body
648
719
  } = _b, props = __objRest(_b, [
649
- "backdropVariant",
650
720
  "children",
651
- "className",
652
- "close",
653
- "isOpen",
654
- "title",
655
- "variant"
721
+ "open",
722
+ "container"
656
723
  ]);
657
- const closeButtonRef = import_react15.default.useRef();
658
- const { buttonProps: closeButtonProps } = (0, import_button2.useButton)({
659
- onPress: () => close()
660
- }, closeButtonRef);
661
- return /* @__PURE__ */ import_react15.default.createElement(import_overlays3.OverlayContainer, null, /* @__PURE__ */ import_react15.default.createElement(ModalDialog, __spreadValues({
662
- variant,
663
- backdropVariant,
664
- isOpen,
665
- onClose: close,
666
- isDismissable: true
667
- }, props), /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
668
- __baseCSS: {
669
- display: "flex",
670
- justifyContent: "space-between",
671
- borderRadius: "small",
672
- pl: "large",
673
- pb: "large"
674
- },
675
- className
676
- }, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
677
- pt: "medium"
678
- }, title && /* @__PURE__ */ import_react15.default.createElement(Headline, {
679
- level: "4"
680
- }, title), children), /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
681
- __baseCSS: {
682
- display: "flex",
683
- justifyContent: "flex-end",
684
- alignItems: "start",
685
- paddingTop: "xsmall",
686
- paddingX: "xsmall"
687
- }
688
- }, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadProps(__spreadValues({
689
- as: Button,
690
- __baseCSS: {
691
- color: "text",
692
- bg: "transparent",
693
- lineHeight: "xsmall",
694
- px: "xxsmall",
695
- ":hover": {
696
- color: "text",
697
- bg: "transparent",
698
- cursor: "pointer"
699
- },
700
- ":focus": {
701
- outline: 0
702
- }
703
- }
704
- }, closeButtonProps), {
705
- ref: closeButtonRef
706
- }), /* @__PURE__ */ import_react15.default.createElement(import_icons2.Close, {
707
- size: 16
708
- }))))));
709
- };
710
- var useDialogButtonProps = () => {
711
- const state = (0, import_overlays2.useOverlayTriggerState)({});
712
- const openButtonRef = import_react15.default.useRef();
713
- const { buttonProps: openButtonProps } = (0, import_button2.useButton)({
714
- onPress: () => state.open()
715
- }, openButtonRef);
716
- return {
717
- state,
718
- openButtonProps,
719
- openButtonRef
720
- };
724
+ if (!open) {
725
+ return null;
726
+ }
727
+ return /* @__PURE__ */ import_react19.default.createElement(import_overlays2.OverlayContainer, {
728
+ portalContainer: container
729
+ }, /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadValues({}, props), children));
721
730
  };
722
731
 
723
- // src/Divider/Divider.tsx
724
- var import_react16 = __toESM(require("react"));
725
- var import_separator = require("@react-aria/separator");
726
- var import_system10 = require("@marigold/system");
727
- var Divider = (_a) => {
728
- var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
729
- const { separatorProps } = (0, import_separator.useSeparator)(props);
730
- const styles = (0, import_system10.useComponentStyles)("Divider", { variant });
731
- return /* @__PURE__ */ import_react16.default.createElement(import_system.Box, __spreadValues(__spreadValues({
732
- css: styles
733
- }, props), separatorProps));
734
- };
732
+ // src/Overlay/Popover.tsx
733
+ var import_react20 = __toESM(require("react"));
734
+ var import_overlays3 = require("@react-aria/overlays");
735
+ var import_utils3 = require("@react-aria/utils");
736
+ var Popover = (0, import_react20.forwardRef)((_a, ref) => {
737
+ var _b = _a, {
738
+ children,
739
+ open,
740
+ dismissable,
741
+ keyboardDismissDisabled,
742
+ shouldCloseOnBlur,
743
+ minWidth = 0
744
+ } = _b, props = __objRest(_b, [
745
+ "children",
746
+ "open",
747
+ "dismissable",
748
+ "keyboardDismissDisabled",
749
+ "shouldCloseOnBlur",
750
+ "minWidth"
751
+ ]);
752
+ const fallbackRef = (0, import_react20.useRef)(null);
753
+ const popoverRef = ref || fallbackRef;
754
+ const { overlayProps } = (0, import_overlays3.useOverlay)(__spreadValues({
755
+ isOpen: open,
756
+ isDismissable: dismissable,
757
+ isKeyboardDismissDisabled: keyboardDismissDisabled,
758
+ shouldCloseOnBlur
759
+ }, props), popoverRef);
760
+ const { modalProps } = (0, import_overlays3.useModal)({});
761
+ const style = { minWidth };
762
+ return /* @__PURE__ */ import_react20.default.createElement(Overlay, {
763
+ open
764
+ }, /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadValues({
765
+ ref: popoverRef,
766
+ role: "presentation"
767
+ }, (0, import_utils3.mergeProps)(props, overlayProps, modalProps, style)), children));
768
+ });
735
769
 
736
- // src/Footer/Footer.tsx
737
- var import_react17 = __toESM(require("react"));
738
- var import_system11 = require("@marigold/system");
739
- var Footer = (_a) => {
740
- var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
741
- const styles = (0, import_system11.useComponentStyles)("Footer", { variant, size });
742
- return /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadProps(__spreadValues({
743
- as: "footer"
744
- }, props), {
745
- css: styles
746
- }), children);
770
+ // src/Dialog/DialogTrigger.tsx
771
+ var DialogTrigger = ({
772
+ children,
773
+ dismissable = true,
774
+ keyboardDismissable = true
775
+ }) => {
776
+ const [dialogTrigger, dialog] = import_react21.default.Children.toArray(children);
777
+ const dialogTriggerRef = (0, import_react21.useRef)(null);
778
+ const state = (0, import_overlays4.useOverlayTriggerState)({});
779
+ const ctx = { open: state.isOpen, close: state.close };
780
+ return /* @__PURE__ */ import_react21.default.createElement(DialogContext.Provider, {
781
+ value: ctx
782
+ }, /* @__PURE__ */ import_react21.default.createElement(import_interactions2.PressResponder, {
783
+ ref: dialogTriggerRef,
784
+ isPressed: state.isOpen,
785
+ onPress: state.toggle
786
+ }, dialogTrigger), /* @__PURE__ */ import_react21.default.createElement(Overlay, {
787
+ open: state.isOpen
788
+ }, /* @__PURE__ */ import_react21.default.createElement(Modal, {
789
+ open: state.isOpen,
790
+ onClose: state.close,
791
+ dismissable,
792
+ keyboardDismissable
793
+ }, dialog)));
747
794
  };
748
795
 
749
- // src/VisuallyHidden/VisuallyHidden.tsx
750
- var import_visually_hidden = require("@react-aria/visually-hidden");
796
+ // src/Dialog/Dialog.tsx
797
+ var CloseButton = ({ css }) => {
798
+ const ref = (0, import_react22.useRef)(null);
799
+ const { close } = useDialogContext();
800
+ const { buttonProps } = (0, import_button2.useButton)({
801
+ onPress: () => close == null ? void 0 : close()
802
+ }, ref);
803
+ return /* @__PURE__ */ import_react22.default.createElement(import_system12.Box, {
804
+ css: { display: "flex", justifyContent: "flex-end" }
805
+ }, /* @__PURE__ */ import_react22.default.createElement(import_system12.Box, __spreadValues({
806
+ as: "button",
807
+ __baseCSS: {
808
+ outline: "none",
809
+ border: "none",
810
+ cursor: "pointer",
811
+ height: 16,
812
+ width: 16,
813
+ lineHeight: 1,
814
+ p: 0
815
+ },
816
+ css,
817
+ ref
818
+ }, buttonProps), /* @__PURE__ */ import_react22.default.createElement("svg", {
819
+ viewBox: "0 0 20 20",
820
+ fill: "currentColor"
821
+ }, /* @__PURE__ */ import_react22.default.createElement("path", {
822
+ fillRule: "evenodd",
823
+ clipRule: "evenodd",
824
+ d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
825
+ }))));
826
+ };
827
+ var addTitleProps = (children, titleProps) => {
828
+ const childs = import_react22.default.Children.toArray(children);
829
+ const titleIndex = childs.findIndex((child) => import_react22.default.isValidElement(child) && (child.type === Header || child.type === Headline));
830
+ if (titleIndex < 0) {
831
+ console.warn("No child in <Dialog> found that can act as title for accessibility. Please add a <Header> or <Headline> as direct child.");
832
+ return children;
833
+ }
834
+ const titleChild = import_react22.default.cloneElement(childs[titleIndex], titleProps);
835
+ childs.splice(titleIndex, 1, titleChild);
836
+ return childs;
837
+ };
838
+ var Dialog = (_a) => {
839
+ var _b = _a, {
840
+ children,
841
+ variant,
842
+ size,
843
+ closeButton
844
+ } = _b, props = __objRest(_b, [
845
+ "children",
846
+ "variant",
847
+ "size",
848
+ "closeButton"
849
+ ]);
850
+ const ref = (0, import_react22.useRef)(null);
851
+ const { close } = useDialogContext();
852
+ const { dialogProps, titleProps } = (0, import_dialog.useDialog)(props, ref);
853
+ const styles = (0, import_system12.useComponentStyles)("Dialog", { variant, size }, { parts: ["container", "closeButton"] });
854
+ return /* @__PURE__ */ import_react22.default.createElement(import_system12.Box, __spreadValues({
855
+ __baseCSS: { bg: "#fff" },
856
+ css: styles.container
857
+ }, dialogProps), closeButton && /* @__PURE__ */ import_react22.default.createElement(CloseButton, {
858
+ css: styles.closeButton
859
+ }), typeof children === "function" ? children({ close, titleProps }) : props["aria-labelledby"] ? children : addTitleProps(children, titleProps));
860
+ };
861
+ Dialog.Trigger = DialogTrigger;
751
862
 
752
- // src/Header/Header.tsx
753
- var import_react18 = __toESM(require("react"));
754
- var import_system12 = require("@marigold/system");
755
- var Header = (_a) => {
863
+ // src/Divider/Divider.tsx
864
+ var import_react23 = __toESM(require("react"));
865
+ var import_separator = require("@react-aria/separator");
866
+ var import_system13 = require("@marigold/system");
867
+ var Divider = (_a) => {
868
+ var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
869
+ const { separatorProps } = (0, import_separator.useSeparator)(props);
870
+ const styles = (0, import_system13.useComponentStyles)("Divider", { variant });
871
+ return /* @__PURE__ */ import_react23.default.createElement(import_system.Box, __spreadValues(__spreadValues({
872
+ css: styles
873
+ }, props), separatorProps));
874
+ };
875
+
876
+ // src/Footer/Footer.tsx
877
+ var import_react24 = __toESM(require("react"));
878
+ var import_system14 = require("@marigold/system");
879
+ var Footer = (_a) => {
756
880
  var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
757
- const styles = (0, import_system12.useComponentStyles)("Header", { variant, size });
758
- return /* @__PURE__ */ import_react18.default.createElement(import_system.Box, __spreadProps(__spreadValues({
759
- as: "header"
881
+ const styles = (0, import_system14.useComponentStyles)("Footer", { variant, size });
882
+ return /* @__PURE__ */ import_react24.default.createElement(import_system.Box, __spreadProps(__spreadValues({
883
+ as: "footer"
760
884
  }, props), {
761
885
  css: styles
762
886
  }), children);
763
887
  };
764
888
 
765
889
  // src/Image/Image.tsx
766
- var import_react19 = __toESM(require("react"));
767
- var import_system13 = require("@marigold/system");
890
+ var import_react25 = __toESM(require("react"));
891
+ var import_system15 = require("@marigold/system");
768
892
  var Image = (_a) => {
769
893
  var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
770
- const styles = (0, import_system13.useComponentStyles)("Image", { variant });
771
- return /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
894
+ const styles = (0, import_system15.useComponentStyles)("Image", { variant });
895
+ return /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
772
896
  as: "img",
773
897
  css: styles
774
898
  }));
775
899
  };
776
900
 
777
901
  // src/Inline/Inline.tsx
778
- var import_react20 = __toESM(require("react"));
779
- var ALIGNMENT = {
902
+ var import_react26 = __toESM(require("react"));
903
+ var ALIGNMENT2 = {
780
904
  top: "flex-start",
781
905
  center: "center",
782
906
  bottom: "flex-end"
@@ -791,56 +915,31 @@ var Inline = (_a) => {
791
915
  "align",
792
916
  "children"
793
917
  ]);
794
- return /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadValues({
918
+ return /* @__PURE__ */ import_react26.default.createElement(import_system.Box, __spreadValues({
795
919
  __baseCSS: { gap: space, flexWrap: "wrap" },
796
920
  display: "inline-flex",
797
- alignItems: ALIGNMENT[align]
921
+ alignItems: ALIGNMENT2[align]
798
922
  }, props), children);
799
923
  };
800
924
 
801
- // src/Label/Label.tsx
802
- var import_react21 = __toESM(require("react"));
803
- var import_icons3 = require("@marigold/icons");
804
- var LabelBase = (_a) => {
805
- var _b = _a, {
806
- variant = "above",
807
- required,
808
- color = "text",
809
- children
810
- } = _b, props = __objRest(_b, [
811
- "variant",
812
- "required",
813
- "color",
814
- "children"
815
- ]);
816
- return /* @__PURE__ */ import_react21.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
817
- as: "label",
818
- __baseCSS: { color },
819
- variant: `label.${variant}`
820
- }), children);
821
- };
822
- var Label2 = (_a) => {
823
- var _b = _a, {
824
- required,
825
- children
826
- } = _b, props = __objRest(_b, [
827
- "required",
828
- "children"
829
- ]);
830
- return required ? /* @__PURE__ */ import_react21.default.createElement(import_system.Box, {
831
- as: "span",
832
- display: "inline-flex",
833
- alignItems: "center"
834
- }, /* @__PURE__ */ import_react21.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react21.default.createElement(import_icons3.Required, {
835
- size: 16,
836
- fill: "error"
837
- })) : /* @__PURE__ */ import_react21.default.createElement(LabelBase, __spreadValues({}, props), children);
838
- };
925
+ // src/Input/Input.tsx
926
+ var import_react27 = __toESM(require("react"));
927
+ var import_system16 = require("@marigold/system");
928
+ var Input = (0, import_react27.forwardRef)((_a, ref) => {
929
+ var _b = _a, { variant, size, type = "text" } = _b, props = __objRest(_b, ["variant", "size", "type"]);
930
+ const styles = (0, import_system16.useComponentStyles)("Input", { variant, size });
931
+ return /* @__PURE__ */ import_react27.default.createElement(import_system16.Box, __spreadProps(__spreadValues({}, props), {
932
+ ref,
933
+ as: "input",
934
+ type,
935
+ css: styles
936
+ }));
937
+ });
839
938
 
840
939
  // src/Link/Link.tsx
841
- var import_react22 = __toESM(require("react"));
940
+ var import_react28 = __toESM(require("react"));
842
941
  var import_link = require("@react-aria/link");
843
- var import_system14 = require("@marigold/system");
942
+ var import_system17 = require("@marigold/system");
844
943
  var Link = (_a) => {
845
944
  var _b = _a, {
846
945
  as = "a",
@@ -855,13 +954,13 @@ var Link = (_a) => {
855
954
  "children",
856
955
  "disabled"
857
956
  ]);
858
- const ref = (0, import_react22.useRef)(null);
957
+ const ref = (0, import_react28.useRef)(null);
859
958
  const { linkProps } = (0, import_link.useLink)(__spreadProps(__spreadValues({}, props), {
860
959
  elementType: typeof as === "string" ? as : "span",
861
960
  isDisabled: disabled
862
961
  }), ref);
863
- const styles = (0, import_system14.useComponentStyles)("Link", { variant, size });
864
- return /* @__PURE__ */ import_react22.default.createElement(import_system.Box, __spreadValues(__spreadValues({
962
+ const styles = (0, import_system17.useComponentStyles)("Link", { variant, size });
963
+ return /* @__PURE__ */ import_react28.default.createElement(import_system.Box, __spreadValues(__spreadValues({
865
964
  as,
866
965
  css: styles,
867
966
  ref
@@ -869,84 +968,29 @@ var Link = (_a) => {
869
968
  };
870
969
 
871
970
  // src/Menu/Menu.tsx
872
- var import_react28 = __toESM(require("react"));
971
+ var import_react32 = __toESM(require("react"));
873
972
  var import_focus5 = require("@react-aria/focus");
874
973
  var import_menu4 = require("@react-aria/menu");
875
974
  var import_overlays6 = require("@react-aria/overlays");
876
975
  var import_collections = require("@react-stately/collections");
877
976
  var import_tree = require("@react-stately/tree");
878
- var import_system16 = require("@marigold/system");
977
+ var import_system19 = require("@marigold/system");
879
978
 
880
979
  // src/Menu/Context.ts
881
- var import_react23 = require("react");
882
- var MenuContext = (0, import_react23.createContext)({});
883
- var useMenuContext = () => (0, import_react23.useContext)(MenuContext);
980
+ var import_react29 = require("react");
981
+ var MenuContext = (0, import_react29.createContext)({});
982
+ var useMenuContext = () => (0, import_react29.useContext)(MenuContext);
884
983
 
885
984
  // src/Menu/MenuTrigger.tsx
886
- var import_react26 = __toESM(require("react"));
985
+ var import_react30 = __toESM(require("react"));
887
986
  var import_menu = require("@react-stately/menu");
888
987
  var import_menu2 = require("@react-aria/menu");
889
-
890
- // src/Overlay/Overlay.tsx
891
- var import_react24 = __toESM(require("react"));
892
- var import_react_dom = __toESM(require("react-dom"));
893
- var Overlay = (_a) => {
894
- var _b = _a, {
895
- children,
896
- open = false,
897
- container = document.body
898
- } = _b, props = __objRest(_b, [
899
- "children",
900
- "open",
901
- "container"
902
- ]);
903
- if (!open) {
904
- return null;
905
- }
906
- const component = /* @__PURE__ */ import_react24.default.createElement(import_system.Box, __spreadValues({}, props), children);
907
- return import_react_dom.default.createPortal(component, container);
908
- };
909
-
910
- // src/Overlay/Popover.tsx
911
- var import_react25 = __toESM(require("react"));
912
- var import_overlays4 = require("@react-aria/overlays");
913
- var import_utils2 = require("@react-aria/utils");
914
- var Popover = (0, import_react25.forwardRef)((_a, ref) => {
915
- var _b = _a, {
916
- children,
917
- open,
918
- dismissable,
919
- keyboardDismissDisabled,
920
- shouldCloseOnBlur
921
- } = _b, props = __objRest(_b, [
922
- "children",
923
- "open",
924
- "dismissable",
925
- "keyboardDismissDisabled",
926
- "shouldCloseOnBlur"
927
- ]);
928
- const { overlayProps } = (0, import_overlays4.useOverlay)(__spreadValues({
929
- isOpen: open,
930
- isDismissable: dismissable,
931
- isKeyboardDismissDisabled: keyboardDismissDisabled,
932
- shouldCloseOnBlur
933
- }, props), ref);
934
- const { modalProps } = (0, import_overlays4.useModal)({});
935
- return /* @__PURE__ */ import_react25.default.createElement(Overlay, {
936
- open
937
- }, /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadValues({
938
- ref,
939
- role: "presentation"
940
- }, (0, import_utils2.mergeProps)(props, overlayProps, modalProps)), children));
941
- });
942
-
943
- // src/Menu/MenuTrigger.tsx
944
988
  var import_overlays5 = require("@react-aria/overlays");
945
- var import_interactions2 = require("@react-aria/interactions");
989
+ var import_interactions3 = require("@react-aria/interactions");
946
990
  var MenuTrigger = ({ disabled, children }) => {
947
- const [menuTrigger, menu] = import_react26.default.Children.toArray(children);
948
- const menuTriggerRef = (0, import_react26.useRef)(null);
949
- const overlayRef = (0, import_react26.useRef)(null);
991
+ const [menuTrigger, menu] = import_react30.default.Children.toArray(children);
992
+ const menuTriggerRef = (0, import_react30.useRef)(null);
993
+ const overlayRef = (0, import_react30.useRef)(null);
950
994
  const state = (0, import_menu.useMenuTriggerState)({});
951
995
  const { menuTriggerProps, menuProps } = (0, import_menu2.useMenuTrigger)({ trigger: "press", isDisabled: disabled }, state, menuTriggerRef);
952
996
  const { overlayProps: positionProps } = (0, import_overlays5.useOverlayPosition)({
@@ -960,12 +1004,12 @@ var MenuTrigger = ({ disabled, children }) => {
960
1004
  autoFocus: state.focusStrategy,
961
1005
  triggerWidth: menuTriggerRef.current ? menuTriggerRef.current.offsetWidth : void 0
962
1006
  });
963
- return /* @__PURE__ */ import_react26.default.createElement(MenuContext.Provider, {
1007
+ return /* @__PURE__ */ import_react30.default.createElement(MenuContext.Provider, {
964
1008
  value: menuContext
965
- }, /* @__PURE__ */ import_react26.default.createElement(import_interactions2.PressResponder, __spreadProps(__spreadValues({}, menuTriggerProps), {
1009
+ }, /* @__PURE__ */ import_react30.default.createElement(import_interactions3.PressResponder, __spreadProps(__spreadValues({}, menuTriggerProps), {
966
1010
  ref: menuTriggerRef,
967
1011
  isPressed: state.isOpen
968
- }), menuTrigger), /* @__PURE__ */ import_react26.default.createElement(Popover, __spreadValues({
1012
+ }), menuTrigger), /* @__PURE__ */ import_react30.default.createElement(Popover, __spreadValues({
969
1013
  open: state.isOpen,
970
1014
  onClose: state.close,
971
1015
  dismissable: true,
@@ -975,13 +1019,13 @@ var MenuTrigger = ({ disabled, children }) => {
975
1019
  };
976
1020
 
977
1021
  // src/Menu/MenuItem.tsx
978
- var import_react27 = __toESM(require("react"));
1022
+ var import_react31 = __toESM(require("react"));
979
1023
  var import_focus4 = require("@react-aria/focus");
980
1024
  var import_menu3 = require("@react-aria/menu");
981
- var import_utils3 = require("@react-aria/utils");
982
- var import_system15 = require("@marigold/system");
1025
+ var import_utils4 = require("@react-aria/utils");
1026
+ var import_system18 = require("@marigold/system");
983
1027
  var MenuItem = ({ item, state, onAction, css }) => {
984
- const ref = (0, import_react27.useRef)(null);
1028
+ const ref = (0, import_react31.useRef)(null);
985
1029
  const { onClose } = useMenuContext();
986
1030
  const { menuItemProps } = (0, import_menu3.useMenuItem)({
987
1031
  key: item.key,
@@ -989,10 +1033,10 @@ var MenuItem = ({ item, state, onAction, css }) => {
989
1033
  onClose
990
1034
  }, state, ref);
991
1035
  const { isFocusVisible, focusProps } = (0, import_focus4.useFocusRing)();
992
- const stateProps = (0, import_system15.useStateProps)({
1036
+ const stateProps = (0, import_system18.useStateProps)({
993
1037
  focus: isFocusVisible
994
1038
  });
995
- return /* @__PURE__ */ import_react27.default.createElement(import_system15.Box, __spreadValues(__spreadValues({
1039
+ return /* @__PURE__ */ import_react31.default.createElement(import_system18.Box, __spreadValues(__spreadValues({
996
1040
  as: "li",
997
1041
  ref,
998
1042
  __baseCSS: {
@@ -1001,7 +1045,7 @@ var MenuItem = ({ item, state, onAction, css }) => {
1001
1045
  }
1002
1046
  },
1003
1047
  css
1004
- }, (0, import_utils3.mergeProps)(menuItemProps, focusProps)), stateProps), item.rendered);
1048
+ }, (0, import_utils4.mergeProps)(menuItemProps, focusProps)), stateProps), item.rendered);
1005
1049
  };
1006
1050
 
1007
1051
  // src/Menu/Menu.tsx
@@ -1009,15 +1053,15 @@ var Menu = (_a) => {
1009
1053
  var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
1010
1054
  const _a2 = useMenuContext(), { triggerWidth } = _a2, menuContext = __objRest(_a2, ["triggerWidth"]);
1011
1055
  const ownProps = __spreadValues(__spreadValues({}, props), menuContext);
1012
- const ref = (0, import_react28.useRef)(null);
1056
+ const ref = (0, import_react32.useRef)(null);
1013
1057
  const state = (0, import_tree.useTreeState)(__spreadProps(__spreadValues({}, ownProps), { selectionMode: "none" }));
1014
1058
  const { menuProps } = (0, import_menu4.useMenu)(ownProps, state, ref);
1015
- const styles = (0, import_system16.useComponentStyles)("Menu", { variant, size }, { parts: ["container", "item"] });
1016
- return /* @__PURE__ */ import_react28.default.createElement(import_focus5.FocusScope, {
1059
+ const styles = (0, import_system19.useComponentStyles)("Menu", { variant, size }, { parts: ["container", "item"] });
1060
+ return /* @__PURE__ */ import_react32.default.createElement(import_focus5.FocusScope, {
1017
1061
  restoreFocus: true
1018
- }, /* @__PURE__ */ import_react28.default.createElement("div", null, /* @__PURE__ */ import_react28.default.createElement(import_overlays6.DismissButton, {
1062
+ }, /* @__PURE__ */ import_react32.default.createElement("div", null, /* @__PURE__ */ import_react32.default.createElement(import_overlays6.DismissButton, {
1019
1063
  onDismiss: ownProps.onClose
1020
- }), /* @__PURE__ */ import_react28.default.createElement(import_system16.Box, __spreadValues({
1064
+ }), /* @__PURE__ */ import_react32.default.createElement(import_system19.Box, __spreadValues({
1021
1065
  as: "ul",
1022
1066
  ref,
1023
1067
  style: { width: triggerWidth },
@@ -1027,13 +1071,13 @@ var Menu = (_a) => {
1027
1071
  overflowWrap: "break-word"
1028
1072
  },
1029
1073
  css: styles.container
1030
- }, menuProps), [...state.collection].map((item) => /* @__PURE__ */ import_react28.default.createElement(MenuItem, {
1074
+ }, menuProps), [...state.collection].map((item) => /* @__PURE__ */ import_react32.default.createElement(MenuItem, {
1031
1075
  key: item.key,
1032
1076
  item,
1033
1077
  state,
1034
1078
  onAction: props.onSelect,
1035
1079
  css: styles.item
1036
- }))), /* @__PURE__ */ import_react28.default.createElement(import_overlays6.DismissButton, {
1080
+ }))), /* @__PURE__ */ import_react32.default.createElement(import_overlays6.DismissButton, {
1037
1081
  onDismiss: ownProps.onClose
1038
1082
  })));
1039
1083
  };
@@ -1041,529 +1085,924 @@ Menu.Trigger = MenuTrigger;
1041
1085
  Menu.Item = import_collections.Item;
1042
1086
 
1043
1087
  // src/Message/Message.tsx
1044
- var import_react29 = __toESM(require("react"));
1045
- var import_icons4 = require("@marigold/icons");
1088
+ var import_react33 = __toESM(require("react"));
1089
+ var import_icons2 = require("@marigold/icons");
1090
+ var import_system20 = require("@marigold/system");
1046
1091
  var Message = (_a) => {
1047
1092
  var _b = _a, {
1048
1093
  messageTitle,
1049
1094
  variant = "info",
1050
- className,
1095
+ size,
1051
1096
  children
1052
1097
  } = _b, props = __objRest(_b, [
1053
1098
  "messageTitle",
1054
1099
  "variant",
1055
- "className",
1100
+ "size",
1056
1101
  "children"
1057
1102
  ]);
1058
- var icon = /* @__PURE__ */ import_react29.default.createElement(import_icons4.Info, null);
1103
+ const styles = (0, import_system20.useComponentStyles)("Message", {
1104
+ variant,
1105
+ size
1106
+ }, { parts: ["container", "icon", "title", "content"] });
1107
+ var icon = /* @__PURE__ */ import_react33.default.createElement(import_icons2.Info, null);
1059
1108
  if (variant === "warning") {
1060
- icon = /* @__PURE__ */ import_react29.default.createElement(import_icons4.Notification, null);
1109
+ icon = /* @__PURE__ */ import_react33.default.createElement(import_icons2.Notification, null);
1061
1110
  }
1062
1111
  if (variant === "error") {
1063
- icon = /* @__PURE__ */ import_react29.default.createElement(import_icons4.Exclamation, null);
1112
+ icon = /* @__PURE__ */ import_react33.default.createElement(import_icons2.Exclamation, null);
1064
1113
  }
1065
- return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadValues({
1066
- display: "inline-block",
1067
- variant: `message.${variant}`,
1068
- className
1069
- }, props), /* @__PURE__ */ import_react29.default.createElement(import_system.Box, {
1070
- display: "flex",
1071
- alignItems: "center",
1072
- variant: "message.title"
1073
- }, icon, /* @__PURE__ */ import_react29.default.createElement(Headline, {
1074
- level: "4"
1075
- }, messageTitle)), /* @__PURE__ */ import_react29.default.createElement(import_system.Box, {
1076
- css: { color: "black" }
1114
+ return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadValues({
1115
+ css: styles.container
1116
+ }, props), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1117
+ __baseCSS: { display: "flex", alignItems: "center", gap: 4 }
1118
+ }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1119
+ role: "presentation",
1120
+ css: styles.icon
1121
+ }, icon), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1122
+ css: styles.title
1123
+ }, messageTitle)), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1124
+ css: styles.content
1077
1125
  }, children));
1078
1126
  };
1079
1127
 
1080
- // src/Provider/index.ts
1081
- var import_system18 = require("@marigold/system");
1082
- var import_ssr = require("@react-aria/ssr");
1083
-
1084
- // src/Provider/MarigoldProvider.tsx
1085
- var import_react30 = __toESM(require("react"));
1086
- var import_overlays7 = require("@react-aria/overlays");
1087
- var import_system17 = require("@marigold/system");
1088
- function MarigoldProvider({
1089
- theme,
1090
- children
1091
- }) {
1092
- const outer = (0, import_system17.useTheme)();
1093
- const isTopLevel = outer.theme === import_system17.__defaultTheme;
1094
- return /* @__PURE__ */ import_react30.default.createElement(import_system17.ThemeProvider, {
1095
- theme
1096
- }, isTopLevel ? /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(import_system17.Global, null), /* @__PURE__ */ import_react30.default.createElement(import_overlays7.OverlayProvider, null, children)) : children);
1097
- }
1098
-
1099
- // src/Radio/Radio.tsx
1100
- var import_react33 = __toESM(require("react"));
1101
- var import_icons5 = require("@marigold/icons");
1128
+ // src/NumberField/NumberField.tsx
1129
+ var import_react37 = __toESM(require("react"));
1102
1130
  var import_focus6 = require("@react-aria/focus");
1103
- var import_visually_hidden2 = require("@react-aria/visually-hidden");
1131
+ var import_interactions5 = require("@react-aria/interactions");
1132
+ var import_i18n = require("@react-aria/i18n");
1133
+ var import_numberfield = require("@react-aria/numberfield");
1134
+ var import_utils6 = require("@react-aria/utils");
1135
+ var import_numberfield2 = require("@react-stately/numberfield");
1136
+ var import_system24 = require("@marigold/system");
1104
1137
 
1105
- // src/Radio/RadioIcon.tsx
1106
- var import_react31 = __toESM(require("react"));
1107
- var import_system19 = require("@marigold/system");
1108
- var RadioIcon = ({
1109
- variant = "",
1110
- checked = false,
1111
- disabled = false,
1112
- error = false
1113
- }) => {
1114
- const conditionalStates = disabled ? {
1115
- disabled
1116
- } : {
1117
- checked,
1118
- error
1119
- };
1120
- return /* @__PURE__ */ import_react31.default.createElement(import_system19.SVG, {
1121
- width: "16",
1122
- height: "32",
1123
- viewBox: "0 0 16 32",
1124
- fill: "none",
1125
- "aria-hidden": "true"
1126
- }, /* @__PURE__ */ import_react31.default.createElement(import_system.Box, {
1127
- variant: (0, import_system19.conditional)(`radio.${variant}`, conditionalStates),
1128
- as: "circle",
1129
- cx: "8",
1130
- cy: "16",
1131
- r: "7.5"
1132
- }), checked && /* @__PURE__ */ import_react31.default.createElement("circle", {
1133
- fill: "white",
1134
- cx: "8",
1135
- cy: "16",
1136
- r: "3"
1137
- }));
1138
- };
1138
+ // src/FieldBase/FieldBase.tsx
1139
+ var import_react35 = __toESM(require("react"));
1140
+ var import_system22 = require("@marigold/system");
1139
1141
 
1140
- // src/ValidationMessage/ValidationMessage.tsx
1141
- var import_react32 = __toESM(require("react"));
1142
- var ValidationMessage = (_a) => {
1142
+ // src/HelpText/HelpText.tsx
1143
+ var import_react34 = __toESM(require("react"));
1144
+ var import_icons3 = require("@marigold/icons");
1145
+ var import_system21 = require("@marigold/system");
1146
+ var HelpText = (_a) => {
1143
1147
  var _b = _a, {
1144
- variant = "error",
1145
- children,
1146
- className
1148
+ variant,
1149
+ size,
1150
+ disabled,
1151
+ description,
1152
+ descriptionProps,
1153
+ error,
1154
+ errorMessage,
1155
+ errorMessageProps
1147
1156
  } = _b, props = __objRest(_b, [
1148
1157
  "variant",
1149
- "children",
1150
- "className"
1158
+ "size",
1159
+ "disabled",
1160
+ "description",
1161
+ "descriptionProps",
1162
+ "error",
1163
+ "errorMessage",
1164
+ "errorMessageProps"
1151
1165
  ]);
1152
- return /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadValues({
1153
- as: "span",
1154
- display: "flex",
1155
- alignItems: "center",
1156
- variant: `validation.${variant}`,
1157
- className
1158
- }, props), children);
1166
+ var _a2;
1167
+ const hasErrorMessage = errorMessage && error;
1168
+ const styles = (0, import_system21.useComponentStyles)("HelpText", { variant, size }, { parts: ["container", "icon"] });
1169
+ return /* @__PURE__ */ import_react34.default.createElement(import_system21.Box, __spreadProps(__spreadValues(__spreadValues({}, hasErrorMessage ? errorMessageProps : descriptionProps), props), {
1170
+ __baseCSS: { display: "flex", alignItems: "center", gap: 4 },
1171
+ css: styles.container
1172
+ }), hasErrorMessage ? /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(import_icons3.Exclamation, {
1173
+ role: "presentation",
1174
+ size: ((_a2 = styles == null ? void 0 : styles.icon) == null ? void 0 : _a2.size) || 16
1175
+ }), errorMessage) : /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, description));
1159
1176
  };
1160
1177
 
1161
- // src/Radio/Radio.tsx
1162
- var RadioInput = (_a) => {
1163
- var _b = _a, { error } = _b, props = __objRest(_b, ["error"]);
1164
- const { focusProps } = (0, import_focus6.useFocusRing)();
1165
- const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
1166
- return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1167
- pr: "xsmall"
1168
- }, /* @__PURE__ */ import_react33.default.createElement(import_visually_hidden2.VisuallyHidden, null, /* @__PURE__ */ import_react33.default.createElement("input", __spreadValues(__spreadValues({
1169
- type: "radio",
1170
- disabled: props.disabled
1171
- }, focusProps), restProps))), /* @__PURE__ */ import_react33.default.createElement(RadioIcon, {
1172
- variant: props.variant,
1173
- disabled: props.disabled,
1174
- checked: props.checked,
1175
- error
1176
- }));
1177
- };
1178
- var Radio = (_a) => {
1179
- var _b = _a, {
1180
- required,
1181
- labelVariant = "inline",
1182
- errorMessage
1183
- } = _b, props = __objRest(_b, [
1184
- "required",
1185
- "labelVariant",
1186
- "errorMessage"
1187
- ]);
1188
- return /* @__PURE__ */ import_react33.default.createElement(import_react33.default.Fragment, null, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1189
- as: Label2,
1190
- htmlFor: props.id,
1178
+ // src/FieldBase/FieldBase.tsx
1179
+ var FieldBase = ({
1180
+ variant,
1181
+ size,
1182
+ children,
1183
+ disabled,
1184
+ required,
1185
+ label,
1186
+ labelProps,
1187
+ description,
1188
+ descriptionProps,
1189
+ error,
1190
+ errorMessage,
1191
+ errorMessageProps,
1192
+ stateProps
1193
+ }) => {
1194
+ const hasHelpText = !!description || errorMessage && error;
1195
+ return /* @__PURE__ */ import_react35.default.createElement(import_system22.Box, {
1196
+ css: { display: "flex", flexDirection: "column", width: "100%" }
1197
+ }, label && /* @__PURE__ */ import_react35.default.createElement(Label, __spreadValues(__spreadValues({
1191
1198
  required,
1192
- variant: `label.${labelVariant}`,
1193
- css: props.disabled ? { color: "disabled", ":hover": { cursor: "not-allowed" } } : { color: "text", ":hover": { cursor: "pointer" } }
1194
- }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadValues({
1195
- as: RadioInput,
1196
- error: props.error
1197
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react33.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react33.default.createElement(import_icons5.Exclamation, {
1198
- size: 16
1199
- }), errorMessage));
1200
- };
1201
-
1202
- // src/Select/Select.tsx
1203
- var import_react38 = __toESM(require("react"));
1204
- var import_select = require("@react-stately/select");
1199
+ variant,
1200
+ size
1201
+ }, labelProps), stateProps), label), children, hasHelpText && /* @__PURE__ */ import_react35.default.createElement(HelpText, __spreadProps(__spreadValues({}, stateProps), {
1202
+ variant,
1203
+ size,
1204
+ disabled,
1205
+ description,
1206
+ descriptionProps,
1207
+ error,
1208
+ errorMessage,
1209
+ errorMessageProps
1210
+ })));
1211
+ };
1212
+
1213
+ // src/NumberField/StepButton.tsx
1214
+ var import_react36 = __toESM(require("react"));
1205
1215
  var import_button3 = require("@react-aria/button");
1216
+ var import_interactions4 = require("@react-aria/interactions");
1206
1217
  var import_utils5 = require("@react-aria/utils");
1218
+ var import_system23 = require("@marigold/system");
1219
+ var Plus = () => /* @__PURE__ */ import_react36.default.createElement(import_system23.Box, {
1220
+ as: "svg",
1221
+ __baseCSS: { width: 16, height: 16 },
1222
+ viewBox: "0 0 20 20",
1223
+ fill: "currentColor"
1224
+ }, /* @__PURE__ */ import_react36.default.createElement("path", {
1225
+ fillRule: "evenodd",
1226
+ clipRule: "evenodd",
1227
+ d: "M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z"
1228
+ }));
1229
+ var Minus = () => /* @__PURE__ */ import_react36.default.createElement(import_system23.Box, {
1230
+ as: "svg",
1231
+ __baseCSS: { width: 16, height: 16 },
1232
+ viewBox: "0 0 20 20",
1233
+ fill: "currentColor"
1234
+ }, /* @__PURE__ */ import_react36.default.createElement("path", {
1235
+ fillRule: "evenodd",
1236
+ clipRule: "evenodd",
1237
+ d: "M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
1238
+ }));
1239
+ var StepButton = (_a) => {
1240
+ var _b = _a, { direction, css } = _b, props = __objRest(_b, ["direction", "css"]);
1241
+ const ref = (0, import_react36.useRef)(null);
1242
+ const { buttonProps, isPressed } = (0, import_button3.useButton)(__spreadProps(__spreadValues({}, props), { elementType: "div" }), ref);
1243
+ const { hoverProps, isHovered } = (0, import_interactions4.useHover)(props);
1244
+ const stateProps = (0, import_system23.useStateProps)({
1245
+ active: isPressed,
1246
+ hover: isHovered,
1247
+ disabled: props.isDisabled
1248
+ });
1249
+ const Icon3 = direction === "up" ? Plus : Minus;
1250
+ return /* @__PURE__ */ import_react36.default.createElement(import_system23.Box, __spreadValues(__spreadValues({
1251
+ __baseCSS: {
1252
+ display: "flex",
1253
+ alignItems: "center",
1254
+ justifyContent: "center",
1255
+ cursor: props.isDisabled ? "not-allowed" : "pointer"
1256
+ },
1257
+ css
1258
+ }, (0, import_utils5.mergeProps)(buttonProps, hoverProps)), stateProps), /* @__PURE__ */ import_react36.default.createElement(Icon3, null));
1259
+ };
1260
+
1261
+ // src/NumberField/NumberField.tsx
1262
+ var NumberField = (0, import_react37.forwardRef)((_a, ref) => {
1263
+ var _b = _a, {
1264
+ disabled,
1265
+ required,
1266
+ readOnly,
1267
+ error,
1268
+ variant,
1269
+ size,
1270
+ hideStepper
1271
+ } = _b, rest = __objRest(_b, [
1272
+ "disabled",
1273
+ "required",
1274
+ "readOnly",
1275
+ "error",
1276
+ "variant",
1277
+ "size",
1278
+ "hideStepper"
1279
+ ]);
1280
+ const props = __spreadValues({
1281
+ isDisabled: disabled,
1282
+ isRequired: required,
1283
+ isReadOnly: readOnly,
1284
+ validationState: error ? "invalid" : "valid"
1285
+ }, rest);
1286
+ const showStepper = !hideStepper;
1287
+ const { locale } = (0, import_i18n.useLocale)();
1288
+ const inputRef = (0, import_utils6.useObjectRef)(ref);
1289
+ const state = (0, import_numberfield2.useNumberFieldState)(__spreadProps(__spreadValues({}, props), { locale }));
1290
+ const {
1291
+ labelProps,
1292
+ groupProps,
1293
+ inputProps,
1294
+ descriptionProps,
1295
+ errorMessageProps,
1296
+ incrementButtonProps,
1297
+ decrementButtonProps
1298
+ } = (0, import_numberfield.useNumberField)(props, state, inputRef);
1299
+ const { hoverProps, isHovered } = (0, import_interactions5.useHover)({ isDisabled: disabled });
1300
+ const { focusProps, isFocused } = (0, import_focus6.useFocusRing)({
1301
+ within: true,
1302
+ isTextInput: true,
1303
+ autoFocus: props.autoFocus
1304
+ });
1305
+ const styles = (0, import_system24.useComponentStyles)("NumberField", { variant, size }, { parts: ["group", "stepper"] });
1306
+ const stateProps = (0, import_system24.useStateProps)({
1307
+ hover: isHovered,
1308
+ focus: isFocused,
1309
+ disabled,
1310
+ readOnly,
1311
+ error
1312
+ });
1313
+ return /* @__PURE__ */ import_react37.default.createElement(FieldBase, {
1314
+ label: props.label,
1315
+ labelProps,
1316
+ required,
1317
+ description: props.description,
1318
+ descriptionProps,
1319
+ error,
1320
+ errorMessage: props.errorMessage,
1321
+ errorMessageProps,
1322
+ stateProps,
1323
+ variant,
1324
+ size
1325
+ }, /* @__PURE__ */ import_react37.default.createElement(import_system24.Box, __spreadValues(__spreadValues({
1326
+ "data-group": true,
1327
+ __baseCSS: {
1328
+ display: "flex",
1329
+ alignItems: "stretch",
1330
+ "> input": {
1331
+ flexGrow: 1
1332
+ }
1333
+ },
1334
+ css: styles.group
1335
+ }, (0, import_utils6.mergeProps)(groupProps, focusProps, hoverProps)), stateProps), showStepper && /* @__PURE__ */ import_react37.default.createElement(StepButton, __spreadValues({
1336
+ direction: "down",
1337
+ css: styles.stepper
1338
+ }, decrementButtonProps)), /* @__PURE__ */ import_react37.default.createElement(Input, __spreadValues(__spreadValues({
1339
+ ref: inputRef,
1340
+ variant,
1341
+ size
1342
+ }, inputProps), stateProps)), showStepper && /* @__PURE__ */ import_react37.default.createElement(StepButton, __spreadValues({
1343
+ direction: "up",
1344
+ css: styles.stepper
1345
+ }, incrementButtonProps))));
1346
+ });
1347
+
1348
+ // src/Provider/index.ts
1349
+ var import_system26 = require("@marigold/system");
1350
+ var import_ssr = require("@react-aria/ssr");
1351
+
1352
+ // src/Provider/MarigoldProvider.tsx
1353
+ var import_react38 = __toESM(require("react"));
1354
+ var import_overlays7 = require("@react-aria/overlays");
1355
+ var import_system25 = require("@marigold/system");
1356
+ function MarigoldProvider({
1357
+ theme,
1358
+ children
1359
+ }) {
1360
+ const outer = (0, import_system25.useTheme)();
1361
+ const isTopLevel = outer.theme === import_system25.__defaultTheme;
1362
+ return /* @__PURE__ */ import_react38.default.createElement(import_system25.ThemeProvider, {
1363
+ theme
1364
+ }, isTopLevel ? /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, /* @__PURE__ */ import_react38.default.createElement(import_system25.Global, null), /* @__PURE__ */ import_react38.default.createElement(import_overlays7.OverlayProvider, null, children)) : children);
1365
+ }
1366
+
1367
+ // src/Radio/Radio.tsx
1368
+ var import_react40 = __toESM(require("react"));
1369
+ var import_radio3 = require("@react-aria/radio");
1370
+ var import_system28 = require("@marigold/system");
1371
+
1372
+ // src/Radio/RadioGroup.tsx
1373
+ var import_react39 = __toESM(require("react"));
1374
+ var import_radio = require("@react-aria/radio");
1375
+ var import_radio2 = require("@react-stately/radio");
1376
+ var import_system27 = require("@marigold/system");
1377
+ var RadioGroupContext = import_react39.default.createContext(null);
1378
+ var useRadioGroupContext = () => (0, import_react39.useContext)(RadioGroupContext);
1379
+ var RadioGroup = (_a) => {
1380
+ var _b = _a, {
1381
+ children,
1382
+ orientation = "vertical",
1383
+ size,
1384
+ variant,
1385
+ required,
1386
+ disabled,
1387
+ readOnly,
1388
+ error
1389
+ } = _b, rest = __objRest(_b, [
1390
+ "children",
1391
+ "orientation",
1392
+ "size",
1393
+ "variant",
1394
+ "required",
1395
+ "disabled",
1396
+ "readOnly",
1397
+ "error"
1398
+ ]);
1399
+ const props = __spreadValues({
1400
+ isRequired: required,
1401
+ isDisabled: disabled,
1402
+ isReadOnly: readOnly,
1403
+ validationState: error ? "invalid" : "valid"
1404
+ }, rest);
1405
+ const state = (0, import_radio2.useRadioGroupState)(props);
1406
+ const { radioGroupProps, labelProps } = (0, import_radio.useRadioGroup)(props, state);
1407
+ const styles = (0, import_system27.useComponentStyles)("RadioGroup", { variant, size }, { parts: ["container", "group"] });
1408
+ return /* @__PURE__ */ import_react39.default.createElement(import_system27.Box, __spreadProps(__spreadValues({}, radioGroupProps), {
1409
+ css: styles.container
1410
+ }), props.label && /* @__PURE__ */ import_react39.default.createElement(Label, __spreadValues({
1411
+ as: "span",
1412
+ required
1413
+ }, labelProps), props.label), /* @__PURE__ */ import_react39.default.createElement(import_system27.Box, {
1414
+ role: "presentation",
1415
+ "data-orientation": orientation,
1416
+ __baseCSS: {
1417
+ display: "flex",
1418
+ flexDirection: orientation === "vertical" ? "column" : "row",
1419
+ alignItems: "start",
1420
+ gap: orientation === "vertical" ? "0.5ch" : "1.5ch"
1421
+ },
1422
+ css: styles.group
1423
+ }, /* @__PURE__ */ import_react39.default.createElement(RadioGroupContext.Provider, {
1424
+ value: __spreadValues({ variant, size, error }, state)
1425
+ }, children)));
1426
+ };
1427
+
1428
+ // src/Radio/Radio.tsx
1429
+ var import_interactions6 = require("@react-aria/interactions");
1430
+ var import_focus7 = require("@react-aria/focus");
1431
+ var Dot = () => /* @__PURE__ */ import_react40.default.createElement("svg", {
1432
+ viewBox: "0 0 6 6"
1433
+ }, /* @__PURE__ */ import_react40.default.createElement("circle", {
1434
+ fill: "currentColor",
1435
+ cx: "3",
1436
+ cy: "3",
1437
+ r: "3"
1438
+ }));
1439
+ var Icon2 = (_a) => {
1440
+ var _b = _a, { checked, css } = _b, props = __objRest(_b, ["checked", "css"]);
1441
+ return /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues({
1442
+ "aria-hidden": "true",
1443
+ __baseCSS: {
1444
+ width: 16,
1445
+ height: 16,
1446
+ bg: "#fff",
1447
+ border: "1px solid #000",
1448
+ borderRadius: "50%",
1449
+ display: "flex",
1450
+ alignItems: "center",
1451
+ justifyContent: "center",
1452
+ p: 4
1453
+ },
1454
+ css
1455
+ }, props), checked ? /* @__PURE__ */ import_react40.default.createElement(Dot, null) : null);
1456
+ };
1457
+ var Radio = (_a) => {
1458
+ var _b = _a, { disabled } = _b, props = __objRest(_b, ["disabled"]);
1459
+ const _a2 = useRadioGroupContext(), { variant, size, error } = _a2, state = __objRest(_a2, ["variant", "size", "error"]);
1460
+ const ref = (0, import_react40.useRef)(null);
1461
+ const { inputProps } = (0, import_radio3.useRadio)(__spreadValues({ isDisabled: disabled }, props), state, ref);
1462
+ const styles = (0, import_system28.useComponentStyles)("Radio", { variant: variant || props.variant, size: size || props.size }, { parts: ["container", "label", "radio"] });
1463
+ const { hoverProps, isHovered } = (0, import_interactions6.useHover)({});
1464
+ const { isFocusVisible, focusProps } = (0, import_focus7.useFocusRing)();
1465
+ const stateProps = (0, import_system28.useStateProps)({
1466
+ hover: isHovered,
1467
+ focus: isFocusVisible,
1468
+ checked: inputProps.checked,
1469
+ disabled: inputProps.disabled,
1470
+ readOnly: props.readOnly,
1471
+ error
1472
+ });
1473
+ return /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1474
+ as: "label",
1475
+ __baseCSS: {
1476
+ display: "flex",
1477
+ alignItems: "center",
1478
+ gap: "1ch",
1479
+ position: "relative"
1480
+ },
1481
+ css: styles.container
1482
+ }, hoverProps), stateProps), /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1483
+ as: "input",
1484
+ ref,
1485
+ css: {
1486
+ position: "absolute",
1487
+ width: "100%",
1488
+ height: "100%",
1489
+ top: 0,
1490
+ left: 0,
1491
+ zIndex: 1,
1492
+ opacity: 1e-4,
1493
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
1494
+ }
1495
+ }, inputProps), focusProps)), /* @__PURE__ */ import_react40.default.createElement(Icon2, __spreadValues({
1496
+ checked: inputProps.checked,
1497
+ css: styles.radio
1498
+ }, stateProps)), /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues({
1499
+ css: styles.label
1500
+ }, stateProps), props.children));
1501
+ };
1502
+ Radio.Group = RadioGroup;
1503
+
1504
+ // src/Select/Select.tsx
1505
+ var import_react45 = __toESM(require("react"));
1506
+ var import_button4 = require("@react-aria/button");
1207
1507
  var import_focus8 = require("@react-aria/focus");
1208
- var import_select2 = require("@react-aria/select");
1209
- var import_overlays9 = require("@react-stately/overlays");
1210
- var import_overlays10 = require("@react-aria/overlays");
1211
- var import_icons6 = require("@marigold/icons");
1508
+ var import_i18n2 = require("@react-aria/i18n");
1509
+ var import_overlays8 = require("@react-aria/overlays");
1510
+ var import_select = require("@react-aria/select");
1511
+ var import_select2 = require("@react-stately/select");
1512
+ var import_collections2 = require("@react-stately/collections");
1513
+ var import_utils8 = require("@react-aria/utils");
1514
+ var import_system32 = require("@marigold/system");
1212
1515
 
1213
- // src/Select/ListBox.tsx
1214
- var import_react36 = __toESM(require("react"));
1516
+ // src/ListBox/ListBox.tsx
1517
+ var import_react44 = __toESM(require("react"));
1518
+ var import_utils7 = require("@react-aria/utils");
1519
+ var import_system31 = require("@marigold/system");
1215
1520
  var import_listbox3 = require("@react-aria/listbox");
1216
1521
 
1217
- // src/Select/Option.tsx
1218
- var import_react34 = __toESM(require("react"));
1522
+ // src/ListBox/Context.ts
1523
+ var import_react41 = require("react");
1524
+ var ListBoxContext = (0, import_react41.createContext)({});
1525
+ var useListBoxContext = () => (0, import_react41.useContext)(ListBoxContext);
1526
+
1527
+ // src/ListBox/ListBoxSection.tsx
1528
+ var import_react43 = __toESM(require("react"));
1529
+ var import_listbox2 = require("@react-aria/listbox");
1530
+ var import_system30 = require("@marigold/system");
1531
+
1532
+ // src/ListBox/ListBoxOption.tsx
1533
+ var import_react42 = __toESM(require("react"));
1219
1534
  var import_listbox = require("@react-aria/listbox");
1220
- var Option = ({ item, state }) => {
1221
- const ref = (0, import_react34.useRef)(null);
1222
- const [disabled, setDisabled] = (0, import_react34.useState)(false);
1223
- const { optionProps, isSelected } = (0, import_listbox.useOption)({
1535
+ var import_system29 = require("@marigold/system");
1536
+ var ListBoxOption = ({ item, state }) => {
1537
+ const ref = (0, import_react42.useRef)(null);
1538
+ const { optionProps, isSelected, isDisabled, isFocused } = (0, import_listbox.useOption)({
1224
1539
  key: item.key
1225
1540
  }, state, ref);
1226
- (0, import_react34.useEffect)(() => {
1227
- for (const key of state.disabledKeys.values()) {
1228
- if (key === item.key) {
1229
- setDisabled(true);
1230
- }
1231
- }
1232
- }, [state.disabledKeys, item.key]);
1233
- return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1234
- as: "li"
1235
- }, optionProps), {
1541
+ const { styles } = useListBoxContext();
1542
+ const stateProps = (0, import_system29.useStateProps)({
1543
+ selected: isSelected,
1544
+ disabled: isDisabled,
1545
+ focusVisible: isFocused
1546
+ });
1547
+ return /* @__PURE__ */ import_react42.default.createElement(import_system29.Box, __spreadValues(__spreadValues({
1548
+ as: "li",
1236
1549
  ref,
1237
- variant: isSelected ? "select.option.selected" : disabled ? "select.option.disabled" : "select.option"
1238
- }), item.rendered);
1550
+ css: styles.option
1551
+ }, optionProps), stateProps), item.rendered);
1239
1552
  };
1240
1553
 
1241
- // src/Select/ListBoxSection.tsx
1242
- var import_react35 = __toESM(require("react"));
1243
- var import_listbox2 = require("@react-aria/listbox");
1554
+ // src/ListBox/ListBoxSection.tsx
1244
1555
  var ListBoxSection = ({ section, state }) => {
1245
1556
  const { itemProps, headingProps, groupProps } = (0, import_listbox2.useListBoxSection)({
1246
1557
  heading: section.rendered,
1247
1558
  "aria-label": section["aria-label"]
1248
1559
  });
1249
- return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1250
- as: "li"
1251
- }, itemProps), {
1252
- css: {
1253
- cursor: "not-allowed"
1254
- }
1255
- }), section.rendered && /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1256
- as: "span"
1257
- }, headingProps), {
1258
- variant: "select.section"
1259
- }), section.rendered), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadValues({
1260
- as: "ul"
1261
- }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react35.default.createElement(Option, {
1560
+ const { styles } = useListBoxContext();
1561
+ return /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1562
+ as: "li",
1563
+ css: styles.section
1564
+ }, itemProps), section.rendered && /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1565
+ css: styles.sectionTitle
1566
+ }, headingProps), section.rendered), /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1567
+ as: "ul",
1568
+ __baseCSS: { listStyle: "none", p: 0 },
1569
+ css: styles.list
1570
+ }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react43.default.createElement(ListBoxOption, {
1262
1571
  key: node.key,
1263
1572
  item: node,
1264
1573
  state
1265
1574
  }))));
1266
1575
  };
1267
1576
 
1268
- // src/Select/ListBox.tsx
1269
- var ListBox = (props) => {
1270
- const ref = (0, import_react36.useRef)(null);
1271
- const { state, error } = props;
1272
- const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, ref);
1273
- return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1577
+ // src/ListBox/ListBox.tsx
1578
+ var ListBox = (0, import_react44.forwardRef)((_a, ref) => {
1579
+ var _b = _a, { state, variant, size } = _b, props = __objRest(_b, ["state", "variant", "size"]);
1580
+ const innerRef = (0, import_utils7.useObjectRef)(ref);
1581
+ const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, innerRef);
1582
+ const styles = (0, import_system31.useComponentStyles)("ListBox", { variant, size }, { parts: ["container", "list", "option", "section", "sectionTitle"] });
1583
+ return /* @__PURE__ */ import_react44.default.createElement(ListBoxContext.Provider, {
1584
+ value: { styles }
1585
+ }, /* @__PURE__ */ import_react44.default.createElement(import_system31.Box, {
1586
+ css: styles.container
1587
+ }, /* @__PURE__ */ import_react44.default.createElement(import_system31.Box, __spreadValues({
1274
1588
  as: "ul",
1275
- p: "none",
1276
- css: {
1277
- listStyle: "none"
1278
- }
1279
- }, listBoxProps), {
1280
- variant: error ? "select.listbox.error" : "select.listbox",
1281
- ref
1282
- }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react36.default.createElement(ListBoxSection, {
1589
+ ref: innerRef,
1590
+ __baseCSS: { listStyle: "none", p: 0 },
1591
+ css: styles.list
1592
+ }, listBoxProps), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react44.default.createElement(ListBoxSection, {
1283
1593
  key: item.key,
1284
1594
  section: item,
1285
1595
  state
1286
- }) : /* @__PURE__ */ import_react36.default.createElement(Option, {
1596
+ }) : /* @__PURE__ */ import_react44.default.createElement(ListBoxOption, {
1287
1597
  key: item.key,
1288
1598
  item,
1289
1599
  state
1290
- })));
1291
- };
1292
-
1293
- // src/Select/Popover.tsx
1294
- var import_react37 = __toESM(require("react"));
1295
- var import_focus7 = require("@react-aria/focus");
1296
- var import_overlays8 = require("@react-aria/overlays");
1297
- var import_utils4 = require("@react-aria/utils");
1298
- var Popover2 = (0, import_react37.forwardRef)((_a, ref) => {
1299
- var _b = _a, { children, className, isOpen, onClose } = _b, otherProps = __objRest(_b, ["children", "className", "isOpen", "onClose"]);
1300
- const { overlayProps } = (0, import_overlays8.useOverlay)({
1301
- isOpen,
1302
- onClose,
1303
- shouldCloseOnBlur: true,
1304
- isDismissable: true
1305
- }, ref);
1306
- const { modalProps } = (0, import_overlays8.useModal)();
1307
- return /* @__PURE__ */ import_react37.default.createElement(import_overlays8.OverlayContainer, null, /* @__PURE__ */ import_react37.default.createElement(import_focus7.FocusScope, {
1308
- restoreFocus: true
1309
- }, /* @__PURE__ */ import_react37.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils4.mergeProps)(overlayProps, otherProps, modalProps)), {
1310
- className,
1311
- ref
1312
- }), children, /* @__PURE__ */ import_react37.default.createElement(import_overlays8.DismissButton, {
1313
- onDismiss: onClose
1314
- }))));
1600
+ })))));
1315
1601
  });
1316
1602
 
1603
+ // src/Select/intl.ts
1604
+ var messages = {
1605
+ "en-US": {
1606
+ placeholder: "Select an option\u2026"
1607
+ },
1608
+ "de-DE": {
1609
+ placeholder: "Option ausw\xE4hlen\u2026"
1610
+ }
1611
+ };
1612
+
1317
1613
  // src/Select/Select.tsx
1614
+ var Chevron = ({ css }) => /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, {
1615
+ as: "svg",
1616
+ __baseCSS: { width: 16, height: 16 },
1617
+ css,
1618
+ fill: "none",
1619
+ viewBox: "0 0 24 24",
1620
+ stroke: "currentColor",
1621
+ strokeWidth: 2
1622
+ }, /* @__PURE__ */ import_react45.default.createElement("path", {
1623
+ strokeLinecap: "round",
1624
+ strokeLinejoin: "round",
1625
+ d: "M19 9l-7 7-7-7"
1626
+ }));
1318
1627
  var Select = (_a) => {
1319
1628
  var _b = _a, {
1320
- labelVariant = "above",
1321
- placeholder = "Select an option",
1629
+ open,
1322
1630
  disabled,
1323
1631
  required,
1324
1632
  error,
1325
- errorMessage,
1326
- width,
1327
- className
1328
- } = _b, props = __objRest(_b, [
1329
- "labelVariant",
1330
- "placeholder",
1633
+ variant,
1634
+ size,
1635
+ css
1636
+ } = _b, rest = __objRest(_b, [
1637
+ "open",
1331
1638
  "disabled",
1332
1639
  "required",
1333
1640
  "error",
1334
- "errorMessage",
1335
- "width",
1336
- "className"
1641
+ "variant",
1642
+ "size",
1643
+ "css"
1337
1644
  ]);
1338
- const state = (0, import_select.useSelectState)(props);
1339
- const overlayTriggerState = (0, import_overlays9.useOverlayTriggerState)({});
1340
- const triggerRef = (0, import_react38.useRef)();
1341
- const overlayRef = (0, import_react38.useRef)();
1342
- const { overlayProps } = (0, import_overlays10.useOverlayTrigger)({ type: "listbox" }, overlayTriggerState, triggerRef);
1343
- const { overlayProps: positionProps } = (0, import_overlays10.useOverlayPosition)({
1344
- targetRef: triggerRef,
1645
+ const formatMessage = (0, import_i18n2.useMessageFormatter)(messages);
1646
+ const props = __spreadValues({
1647
+ isOpen: open,
1648
+ isDisabled: disabled,
1649
+ isRequired: required,
1650
+ validationState: error ? "invalid" : "valid",
1651
+ placeholder: rest.placeholder || formatMessage("placeholder")
1652
+ }, rest);
1653
+ const state = (0, import_select2.useSelectState)(props);
1654
+ const buttonRef = (0, import_react45.useRef)(null);
1655
+ const {
1656
+ labelProps,
1657
+ triggerProps,
1658
+ valueProps,
1659
+ menuProps,
1660
+ descriptionProps,
1661
+ errorMessageProps
1662
+ } = (0, import_select.useSelect)(props, state, buttonRef);
1663
+ const { buttonProps } = (0, import_button4.useButton)(__spreadValues({ isDisabled: disabled }, triggerProps), buttonRef);
1664
+ const { focusProps, isFocusVisible } = (0, import_focus8.useFocusRing)();
1665
+ const overlayRef = (0, import_react45.useRef)(null);
1666
+ const { overlayProps: positionProps } = (0, import_overlays8.useOverlayPosition)({
1667
+ targetRef: buttonRef,
1345
1668
  overlayRef,
1346
- placement: "bottom",
1347
- shouldFlip: false,
1348
1669
  isOpen: state.isOpen,
1349
- onClose: state.close
1670
+ placement: "bottom left"
1350
1671
  });
1351
- const { labelProps, triggerProps, valueProps, menuProps } = (0, import_select2.useSelect)(props, state, triggerRef);
1352
- const { buttonProps } = (0, import_button3.useButton)(triggerProps, triggerRef);
1353
- const { focusProps } = (0, import_focus8.useFocusRing)();
1354
- return /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1355
- position: "relative",
1356
- display: "inline-block",
1357
- width: width && width
1358
- }, props.label && /* @__PURE__ */ import_react38.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react38.default.createElement(Label2, __spreadProps(__spreadValues({}, labelProps), {
1359
- htmlFor: labelProps.id,
1360
- variant: labelVariant
1361
- }), required ? /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1362
- as: "span",
1363
- display: "inline-flex",
1364
- alignItems: "center"
1365
- }, props.label, /* @__PURE__ */ import_react38.default.createElement(import_icons6.Required, {
1366
- size: 16,
1367
- fill: "error"
1368
- })) : props.label)), /* @__PURE__ */ import_react38.default.createElement(import_select2.HiddenSelect, {
1672
+ const styles = (0, import_system32.useComponentStyles)("Select", { variant, size }, { parts: ["container", "button", "icon"] });
1673
+ const stateProps = (0, import_system32.useStateProps)({
1674
+ disabled,
1675
+ error,
1676
+ focusVisible: isFocusVisible,
1677
+ expanded: state.isOpen
1678
+ });
1679
+ return /* @__PURE__ */ import_react45.default.createElement(FieldBase, {
1680
+ variant,
1681
+ size,
1682
+ label: props.label,
1683
+ labelProps: __spreadValues({ as: "span" }, labelProps),
1684
+ description: props.description,
1685
+ descriptionProps,
1686
+ error,
1687
+ errorMessage: props.errorMessage,
1688
+ errorMessageProps,
1689
+ stateProps,
1690
+ disabled,
1691
+ required
1692
+ }, /* @__PURE__ */ import_react45.default.createElement(import_select.HiddenSelect, {
1369
1693
  state,
1370
- triggerRef,
1694
+ triggerRef: buttonRef,
1371
1695
  label: props.label,
1372
1696
  name: props.name,
1373
1697
  isDisabled: disabled
1374
- }), /* @__PURE__ */ import_react38.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1375
- as: "button"
1376
- }, (0, import_utils5.mergeProps)(buttonProps, focusProps)), {
1377
- ref: triggerRef,
1378
- variant: error && state.isOpen && !disabled ? "button.select.errorOpened" : error ? "button.select.error" : state.isOpen && !disabled ? "button.select.open" : "button.select",
1379
- disabled,
1380
- className
1381
- }), /* @__PURE__ */ import_react38.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1382
- as: "span"
1383
- }, valueProps), {
1384
- variant: disabled ? "select.disabled" : "select"
1385
- }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react38.default.createElement(import_icons6.ArrowUp, {
1386
- size: 16,
1387
- fill: "text"
1388
- }) : /* @__PURE__ */ import_react38.default.createElement(import_icons6.ArrowDown, {
1389
- size: 16,
1390
- fill: disabled ? "disabled" : "text"
1391
- })), state.isOpen && !disabled && /* @__PURE__ */ import_react38.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1392
- as: Popover2
1393
- }, overlayProps), positionProps), {
1394
- css: {
1395
- width: triggerRef.current && triggerRef.current.offsetWidth + "px"
1698
+ }), /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, __spreadValues(__spreadValues({
1699
+ as: "button",
1700
+ __baseCSS: {
1701
+ display: "flex",
1702
+ position: "relative",
1703
+ alignItems: "center",
1704
+ justifyContent: "space-between",
1705
+ width: "100%"
1396
1706
  },
1397
- ref: overlayRef,
1398
- isOpen: state.isOpen,
1399
- onClose: state.close
1400
- }), /* @__PURE__ */ import_react38.default.createElement(ListBox, __spreadProps(__spreadValues({
1401
- error
1402
- }, menuProps), {
1403
- state
1404
- }))), error && errorMessage && /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1405
- as: "span",
1406
- display: "inline-flex",
1407
- alignItems: "center"
1408
- }, /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1409
- as: import_icons6.Exclamation,
1410
- size: 16,
1411
- css: { color: "error" }
1412
- }), /* @__PURE__ */ import_react38.default.createElement(ValidationMessage, null, errorMessage)));
1707
+ css: styles.button,
1708
+ ref: buttonRef
1709
+ }, (0, import_utils8.mergeProps)(buttonProps, focusProps)), stateProps), /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, __spreadValues({
1710
+ css: {
1711
+ overflow: "hidden",
1712
+ whiteSpace: "nowrap"
1713
+ }
1714
+ }, valueProps), state.selectedItem ? state.selectedItem.rendered : props.placeholder), /* @__PURE__ */ import_react45.default.createElement(Chevron, {
1715
+ css: styles.icon
1716
+ })), /* @__PURE__ */ import_react45.default.createElement(Popover, __spreadValues({
1717
+ open: state.isOpen,
1718
+ onClose: state.close,
1719
+ dismissable: true,
1720
+ shouldCloseOnBlur: true,
1721
+ minWidth: buttonRef.current ? buttonRef.current.offsetWidth : void 0,
1722
+ ref: overlayRef
1723
+ }, positionProps), /* @__PURE__ */ import_react45.default.createElement(import_focus8.FocusScope, {
1724
+ restoreFocus: true
1725
+ }, /* @__PURE__ */ import_react45.default.createElement(import_overlays8.DismissButton, {
1726
+ onDismiss: state.close
1727
+ }), /* @__PURE__ */ import_react45.default.createElement(ListBox, __spreadValues({
1728
+ state,
1729
+ variant,
1730
+ size
1731
+ }, menuProps)), /* @__PURE__ */ import_react45.default.createElement(import_overlays8.DismissButton, {
1732
+ onDismiss: state.close
1733
+ }))));
1413
1734
  };
1735
+ Select.Option = import_collections2.Item;
1736
+ Select.Section = import_collections2.Section;
1414
1737
 
1415
1738
  // src/Slider/Slider.tsx
1416
- var import_react39 = __toESM(require("react"));
1417
- var Slider = (_a) => {
1418
- var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
1419
- return /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
1739
+ var import_react47 = __toESM(require("react"));
1740
+ var import_slider2 = require("@react-aria/slider");
1741
+ var import_slider3 = require("@react-stately/slider");
1742
+ var import_i18n3 = require("@react-aria/i18n");
1743
+ var import_system34 = require("@marigold/system");
1744
+
1745
+ // src/Slider/Thumb.tsx
1746
+ var import_react46 = __toESM(require("react"));
1747
+ var import_slider = require("@react-aria/slider");
1748
+ var import_utils9 = require("@react-aria/utils");
1749
+ var import_system33 = require("@marigold/system");
1750
+
1751
+ // src/VisuallyHidden/VisuallyHidden.tsx
1752
+ var import_visually_hidden = require("@react-aria/visually-hidden");
1753
+
1754
+ // src/Slider/Thumb.tsx
1755
+ var import_focus9 = require("@react-aria/focus");
1756
+ var Thumb = (_a) => {
1757
+ var _b = _a, { state, trackRef, styles } = _b, props = __objRest(_b, ["state", "trackRef", "styles"]);
1758
+ const { disabled } = props;
1759
+ const inputRef = import_react46.default.useRef(null);
1760
+ const { isFocusVisible, focusProps, isFocused } = (0, import_focus9.useFocusRing)();
1761
+ const focused = isFocused || isFocusVisible || state.isThumbDragging(0);
1762
+ const stateProps = (0, import_system33.useStateProps)({
1763
+ focus: focused,
1764
+ disabled
1765
+ });
1766
+ const { thumbProps, inputProps } = (0, import_slider.useSliderThumb)({
1767
+ index: 0,
1768
+ trackRef,
1769
+ inputRef,
1770
+ isDisabled: disabled
1771
+ }, state);
1772
+ (0, import_react46.useEffect)(() => {
1773
+ state.setThumbEditable(0, !disabled);
1774
+ }, [disabled, state]);
1775
+ return /* @__PURE__ */ import_react46.default.createElement(import_system.Box, {
1776
+ __baseCSS: {
1777
+ position: "absolute",
1778
+ top: 16,
1779
+ transform: "translateX(-50%)",
1780
+ left: `${state.getThumbPercent(0) * 100}%`
1781
+ }
1782
+ }, /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({}, thumbProps), {
1783
+ __baseCSS: styles
1784
+ }), stateProps), /* @__PURE__ */ import_react46.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues({
1420
1785
  as: "input",
1421
1786
  type: "range",
1422
- css: { verticalAlign: "middle" },
1423
- variant: `slider.${variant}`
1424
- }, props));
1787
+ ref: inputRef
1788
+ }, (0, import_utils9.mergeProps)(inputProps, focusProps))))));
1789
+ };
1790
+
1791
+ // src/Slider/Slider.tsx
1792
+ var Slider = (_a) => {
1793
+ var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
1794
+ const { formatOptions } = props;
1795
+ const trackRef = (0, import_react47.useRef)(null);
1796
+ const numberFormatter = (0, import_i18n3.useNumberFormatter)(formatOptions);
1797
+ const state = (0, import_slider3.useSliderState)(__spreadProps(__spreadValues({}, props), { numberFormatter }));
1798
+ const { groupProps, trackProps, labelProps, outputProps } = (0, import_slider2.useSlider)(__spreadValues({
1799
+ label: props.children
1800
+ }, props), state, trackRef);
1801
+ const styles = (0, import_system34.useComponentStyles)("Slider", { variant, size }, { parts: ["track", "thumb", "label", "output"] });
1802
+ return /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues({
1803
+ __baseCSS: {
1804
+ display: "flex",
1805
+ flexDirection: "column",
1806
+ touchAction: "none"
1807
+ }
1808
+ }, groupProps), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, {
1809
+ __baseCSS: { display: "flex", alignSelf: "stretch" }
1810
+ }, props.children && /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues({
1811
+ as: "label",
1812
+ __baseCSS: styles.label
1813
+ }, labelProps), props.children), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1814
+ as: "output"
1815
+ }, outputProps), {
1816
+ __baseCSS: { flex: "1 0 auto", textAlign: "end" },
1817
+ css: styles.output
1818
+ }), state.getThumbValueLabel(0))), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, trackProps), {
1819
+ ref: trackRef,
1820
+ __baseCSS: {
1821
+ position: "relative",
1822
+ height: 32,
1823
+ width: "100%",
1824
+ cursor: props.disabled ? "not-allowed" : "pointer"
1825
+ }
1826
+ }), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, {
1827
+ __baseCSS: styles.track
1828
+ }), /* @__PURE__ */ import_react47.default.createElement(Thumb, {
1829
+ state,
1830
+ trackRef,
1831
+ disabled: props.disabled,
1832
+ styles: styles.thumb
1833
+ })));
1834
+ };
1835
+
1836
+ // src/Stack/Stack.tsx
1837
+ var import_react48 = __toESM(require("react"));
1838
+ var ALIGNMENT3 = {
1839
+ left: "flex-start",
1840
+ center: "center",
1841
+ right: "flex-end"
1842
+ };
1843
+ var Stack = (_a) => {
1844
+ var _b = _a, {
1845
+ space = "none",
1846
+ align = "left",
1847
+ children
1848
+ } = _b, props = __objRest(_b, [
1849
+ "space",
1850
+ "align",
1851
+ "children"
1852
+ ]);
1853
+ return /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1854
+ display: "flex",
1855
+ flexDirection: "column",
1856
+ alignItems: ALIGNMENT3[align],
1857
+ p: "0",
1858
+ css: { gap: space }
1859
+ }), children);
1425
1860
  };
1426
1861
 
1427
1862
  // src/Switch/Switch.tsx
1428
- var import_react40 = __toESM(require("react"));
1429
- var import_focus9 = require("@react-aria/focus");
1863
+ var import_react49 = __toESM(require("react"));
1864
+ var import_focus10 = require("@react-aria/focus");
1430
1865
  var import_switch = require("@react-aria/switch");
1431
- var import_visually_hidden3 = require("@react-aria/visually-hidden");
1432
1866
  var import_toggle2 = require("@react-stately/toggle");
1433
- var import_system20 = require("@marigold/system");
1867
+ var import_system35 = require("@marigold/system");
1434
1868
  var Switch = (_a) => {
1435
1869
  var _b = _a, {
1436
- variant = "",
1437
- labelVariant = "above",
1438
- disabled
1439
- } = _b, props = __objRest(_b, [
1870
+ variant,
1871
+ size,
1872
+ checked,
1873
+ disabled,
1874
+ readOnly,
1875
+ defaultChecked
1876
+ } = _b, rest = __objRest(_b, [
1440
1877
  "variant",
1441
- "labelVariant",
1442
- "disabled"
1878
+ "size",
1879
+ "checked",
1880
+ "disabled",
1881
+ "readOnly",
1882
+ "defaultChecked"
1443
1883
  ]);
1884
+ const ref = (0, import_react49.useRef)(null);
1885
+ const props = __spreadValues({
1886
+ isSelected: checked,
1887
+ isDisabled: disabled,
1888
+ isReadOnly: readOnly,
1889
+ defaultSelected: defaultChecked
1890
+ }, rest);
1444
1891
  const state = (0, import_toggle2.useToggleState)(props);
1445
- const ref = (0, import_react40.useRef)();
1446
1892
  const { inputProps } = (0, import_switch.useSwitch)(props, state, ref);
1447
- const { focusProps } = (0, import_focus9.useFocusRing)();
1448
- return /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1449
- as: Label2,
1450
- __baseCSS: {
1451
- userSelect: "none"
1452
- },
1453
- variant: labelVariant
1454
- }, props.children, /* @__PURE__ */ import_react40.default.createElement(import_visually_hidden3.VisuallyHidden, null, /* @__PURE__ */ import_react40.default.createElement("input", __spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
1893
+ const { isFocusVisible, focusProps } = (0, import_focus10.useFocusRing)();
1894
+ const stateProps = (0, import_system35.useStateProps)({
1895
+ checked: state.isSelected,
1455
1896
  disabled,
1456
- ref
1457
- }))), /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1458
- as: "svg",
1897
+ readOnly,
1898
+ focus: isFocusVisible
1899
+ });
1900
+ const styles = (0, import_system35.useComponentStyles)("Switch", { variant, size }, { parts: ["container", "label", "track", "thumb"] });
1901
+ return /* @__PURE__ */ import_react49.default.createElement(import_system.Box, {
1902
+ as: "label",
1459
1903
  __baseCSS: {
1460
- cursor: disabled ? "not-allowed" : "pointer",
1461
- width: 56,
1462
- height: 32
1904
+ display: "flex",
1905
+ alignItems: "center",
1906
+ justifyContent: "space-between",
1907
+ gap: "1ch",
1908
+ position: "relative"
1463
1909
  },
1464
- "aria-hidden": "true"
1465
- }, /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1466
- as: "rect",
1910
+ css: styles.container
1911
+ }, /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1912
+ as: "input",
1913
+ ref,
1914
+ css: {
1915
+ position: "absolute",
1916
+ width: "100%",
1917
+ height: "100%",
1918
+ top: 0,
1919
+ left: 0,
1920
+ zIndex: 1,
1921
+ opacity: 1e-4,
1922
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
1923
+ }
1924
+ }, inputProps), focusProps)), props.children && /* @__PURE__ */ import_react49.default.createElement(import_system.Box, {
1925
+ css: styles.label
1926
+ }, props.children), /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues({
1467
1927
  __baseCSS: {
1468
- x: 4,
1469
- y: 4,
1470
- rx: 12,
1928
+ position: "relative",
1471
1929
  width: 48,
1472
- height: 24
1930
+ height: 24,
1931
+ bg: "#dee2e6",
1932
+ borderRadius: 20
1473
1933
  },
1474
- variant: (0, import_system20.conditional)(`switch.${variant}`, {
1475
- checked: state.isSelected,
1476
- disabled
1477
- })
1478
- }), /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1479
- as: "circle",
1934
+ css: styles.track
1935
+ }, stateProps), /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues({
1480
1936
  __baseCSS: {
1481
- boxShadow: "1px 1px 4px rgba(0, 0, 0, 0.25)",
1482
- cx: state.isSelected ? 40 : 16,
1483
- cy: 16,
1484
- r: 11,
1485
- fill: disabled ? "gray20" : "gray00"
1486
- }
1487
- })));
1488
- };
1489
-
1490
- // src/Stack/Stack.tsx
1491
- var import_react41 = __toESM(require("react"));
1492
- var ALIGNMENT2 = {
1493
- left: "flex-start",
1494
- center: "center",
1495
- right: "flex-end"
1496
- };
1497
- var Stack = (_a) => {
1498
- var _b = _a, {
1499
- space = "none",
1500
- align = "left",
1501
- children
1502
- } = _b, props = __objRest(_b, [
1503
- "space",
1504
- "align",
1505
- "children"
1506
- ]);
1507
- return /* @__PURE__ */ import_react41.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1508
- display: "flex",
1509
- flexDirection: "column",
1510
- alignItems: ALIGNMENT2[align],
1511
- p: "0",
1512
- css: { gap: space }
1513
- }), children);
1937
+ display: "block",
1938
+ position: "absolute",
1939
+ top: 1,
1940
+ left: 0,
1941
+ willChange: "transform",
1942
+ transform: "translateX(1px)",
1943
+ transition: "all 0.1s cubic-bezier(.7, 0, .3, 1)",
1944
+ height: 22,
1945
+ width: 22,
1946
+ borderRadius: 9999,
1947
+ bg: "#fff",
1948
+ "&:checked": {
1949
+ transform: "translateX(calc(47px - 100%))"
1950
+ }
1951
+ },
1952
+ css: styles.thumb
1953
+ }, stateProps))));
1514
1954
  };
1515
1955
 
1516
1956
  // src/Table/Table.tsx
1517
- var import_react48 = __toESM(require("react"));
1957
+ var import_react56 = __toESM(require("react"));
1518
1958
  var import_table6 = require("@react-aria/table");
1519
1959
  var import_table7 = require("@react-stately/table");
1520
- var import_system26 = require("@marigold/system");
1960
+ var import_system41 = require("@marigold/system");
1521
1961
 
1522
1962
  // src/Table/TableCell.tsx
1523
- var import_react42 = __toESM(require("react"));
1963
+ var import_react50 = __toESM(require("react"));
1524
1964
  var import_checkbox4 = require("@react-aria/checkbox");
1525
- var import_focus10 = require("@react-aria/focus");
1965
+ var import_focus11 = require("@react-aria/focus");
1526
1966
  var import_table = require("@react-aria/table");
1527
- var import_utils6 = require("@react-aria/utils");
1967
+ var import_utils10 = require("@react-aria/utils");
1528
1968
  var import_toggle3 = require("@react-stately/toggle");
1529
- var import_system21 = require("@marigold/system");
1969
+ var import_system36 = require("@marigold/system");
1530
1970
  var TableCell = ({
1531
1971
  item: cell,
1532
1972
  state,
1533
1973
  isSelectionCell,
1534
- align = "left",
1535
1974
  css
1536
1975
  }) => {
1537
- const cellRef = (0, import_react42.useRef)(null);
1976
+ const cellRef = (0, import_react50.useRef)(null);
1538
1977
  const { gridCellProps } = (0, import_table.useTableCell)({ node: cell }, state, cellRef);
1539
1978
  const { checkboxProps } = (0, import_table.useTableSelectionCheckbox)({ key: cell.parentKey }, state);
1540
- const inputRef = (0, import_react42.useRef)(null);
1979
+ const inputRef = (0, import_react50.useRef)(null);
1541
1980
  const { inputProps } = (0, import_checkbox4.useCheckbox)(checkboxProps, (0, import_toggle3.useToggleState)(checkboxProps), inputRef);
1542
- const { focusProps, isFocusVisible } = (0, import_focus10.useFocusRing)();
1543
- const stateProps = (0, import_system21.useStateProps)({ focus: isFocusVisible });
1544
- return /* @__PURE__ */ import_react42.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1981
+ const { focusProps, isFocusVisible } = (0, import_focus11.useFocusRing)();
1982
+ const stateProps = (0, import_system36.useStateProps)({ focus: isFocusVisible });
1983
+ return /* @__PURE__ */ import_react50.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1545
1984
  as: "td",
1546
1985
  ref: cellRef,
1547
1986
  __baseCSS: {
1548
- textAlign: isSelectionCell ? "center" : align
1987
+ textAlign: isSelectionCell ? "center" : "left"
1549
1988
  },
1550
1989
  css
1551
- }, (0, import_utils6.mergeProps)(gridCellProps, focusProps)), stateProps), isSelectionCell ? /* @__PURE__ */ import_react42.default.createElement("input", __spreadValues({}, inputProps)) : /* @__PURE__ */ import_react42.default.createElement(import_react42.default.Fragment, null, cell.rendered));
1990
+ }, (0, import_utils10.mergeProps)(gridCellProps, focusProps)), stateProps), isSelectionCell ? /* @__PURE__ */ import_react50.default.createElement("input", __spreadValues({}, inputProps)) : /* @__PURE__ */ import_react50.default.createElement(import_react50.default.Fragment, null, cell.rendered));
1552
1991
  };
1553
1992
 
1554
1993
  // src/Table/TableColumnHeader.tsx
1555
- var import_react44 = __toESM(require("react"));
1994
+ var import_react52 = __toESM(require("react"));
1556
1995
  var import_checkbox5 = require("@react-aria/checkbox");
1557
- var import_focus11 = require("@react-aria/focus");
1996
+ var import_focus12 = require("@react-aria/focus");
1558
1997
  var import_table2 = require("@react-aria/table");
1559
- var import_utils7 = require("@react-aria/utils");
1998
+ var import_utils11 = require("@react-aria/utils");
1560
1999
  var import_toggle4 = require("@react-stately/toggle");
1561
- var import_system24 = require("@marigold/system");
2000
+ var import_system39 = require("@marigold/system");
1562
2001
 
1563
2002
  // src/Text/Text.tsx
1564
- var import_react43 = __toESM(require("react"));
1565
- var import_system22 = require("@marigold/system");
1566
- var import_system23 = require("@marigold/system");
2003
+ var import_react51 = __toESM(require("react"));
2004
+ var import_system37 = require("@marigold/system");
2005
+ var import_system38 = require("@marigold/system");
1567
2006
  var Text = (_a) => {
1568
2007
  var _b = _a, {
1569
2008
  variant,
@@ -1584,11 +2023,11 @@ var Text = (_a) => {
1584
2023
  "outline",
1585
2024
  "children"
1586
2025
  ]);
1587
- const styles = (0, import_system22.useComponentStyles)("Text", {
2026
+ const styles = (0, import_system37.useComponentStyles)("Text", {
1588
2027
  variant,
1589
2028
  size
1590
2029
  });
1591
- return /* @__PURE__ */ import_react43.default.createElement(import_system23.Box, __spreadProps(__spreadValues({
2030
+ return /* @__PURE__ */ import_react51.default.createElement(import_system38.Box, __spreadProps(__spreadValues({
1592
2031
  as: "p"
1593
2032
  }, props), {
1594
2033
  css: __spreadValues({ color, cursor, outline, fontSize, textAlign: align }, styles)
@@ -1600,128 +2039,115 @@ var TableColumnHeader = ({
1600
2039
  item: column,
1601
2040
  state,
1602
2041
  isSelectionColumn,
1603
- align = "left",
1604
2042
  css
1605
2043
  }) => {
1606
- const ref = (0, import_react44.useRef)(null);
2044
+ const ref = (0, import_react52.useRef)(null);
1607
2045
  const { columnHeaderProps } = (0, import_table2.useTableColumnHeader)({ node: column }, state, ref);
1608
2046
  const { checkboxProps } = (0, import_table2.useTableSelectAllCheckbox)(state);
1609
- const inputRef = (0, import_react44.useRef)(null);
2047
+ const inputRef = (0, import_react52.useRef)(null);
1610
2048
  const { inputProps } = (0, import_checkbox5.useCheckbox)(checkboxProps, (0, import_toggle4.useToggleState)(checkboxProps), inputRef);
1611
- const { focusProps, isFocusVisible } = (0, import_focus11.useFocusRing)();
1612
- const stateProps = (0, import_system24.useStateProps)({ focus: isFocusVisible });
1613
- return /* @__PURE__ */ import_react44.default.createElement(import_system.Box, __spreadValues(__spreadValues({
2049
+ const { focusProps, isFocusVisible } = (0, import_focus12.useFocusRing)();
2050
+ const stateProps = (0, import_system39.useStateProps)({ focus: isFocusVisible });
2051
+ return /* @__PURE__ */ import_react52.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1614
2052
  as: "th",
1615
2053
  ref,
1616
- __baseCSS: { textAlign: isSelectionColumn ? "center" : align },
2054
+ __baseCSS: { textAlign: isSelectionColumn ? "center" : "left" },
1617
2055
  css
1618
- }, (0, import_utils7.mergeProps)(columnHeaderProps, focusProps)), stateProps), isSelectionColumn ? /* @__PURE__ */ import_react44.default.createElement("input", __spreadProps(__spreadValues({}, inputProps), {
2056
+ }, (0, import_utils11.mergeProps)(columnHeaderProps, focusProps)), stateProps), isSelectionColumn ? /* @__PURE__ */ import_react52.default.createElement("input", __spreadProps(__spreadValues({}, inputProps), {
1619
2057
  ref: inputRef
1620
- })) : /* @__PURE__ */ import_react44.default.createElement(Text, {
2058
+ })) : /* @__PURE__ */ import_react52.default.createElement(Text, {
1621
2059
  size: "xxsmall"
1622
2060
  }, column.rendered));
1623
2061
  };
1624
2062
 
1625
2063
  // src/Table/TableHeaderRow.tsx
1626
- var import_react45 = __toESM(require("react"));
2064
+ var import_react53 = __toESM(require("react"));
1627
2065
  var import_table3 = require("@react-aria/table");
1628
2066
  var TableHeaderRow = ({
1629
2067
  item,
1630
2068
  state,
1631
2069
  children
1632
2070
  }) => {
1633
- const ref = (0, import_react45.useRef)(null);
2071
+ const ref = (0, import_react53.useRef)(null);
1634
2072
  const { rowProps } = (0, import_table3.useTableHeaderRow)({ node: item }, state, ref);
1635
- return /* @__PURE__ */ import_react45.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), {
2073
+ return /* @__PURE__ */ import_react53.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), {
1636
2074
  ref
1637
2075
  }), children);
1638
2076
  };
1639
2077
 
1640
2078
  // src/Table/TableRow.tsx
1641
- var import_react46 = __toESM(require("react"));
1642
- var import_focus12 = require("@react-aria/focus");
2079
+ var import_react54 = __toESM(require("react"));
2080
+ var import_focus13 = require("@react-aria/focus");
1643
2081
  var import_table4 = require("@react-aria/table");
1644
- var import_utils8 = require("@react-aria/utils");
1645
- var import_system25 = require("@marigold/system");
2082
+ var import_utils12 = require("@react-aria/utils");
2083
+ var import_system40 = require("@marigold/system");
1646
2084
  var TableRow = ({ item, state, children, css }) => {
1647
- const ref = (0, import_react46.useRef)(null);
2085
+ const ref = (0, import_react54.useRef)(null);
1648
2086
  const isSelected = state.selectionManager.isSelected(item.key);
1649
2087
  const { rowProps } = (0, import_table4.useTableRow)({
1650
2088
  node: item
1651
2089
  }, state, ref);
1652
- const { focusProps, isFocusVisible } = (0, import_focus12.useFocusRing)();
1653
- const stateProps = (0, import_system25.useStateProps)({
2090
+ const { focusProps, isFocusVisible } = (0, import_focus13.useFocusRing)();
2091
+ const stateProps = (0, import_system40.useStateProps)({
1654
2092
  focus: isFocusVisible,
1655
2093
  checked: isSelected
1656
2094
  });
1657
- return /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues(__spreadValues({
2095
+ return /* @__PURE__ */ import_react54.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1658
2096
  as: "tr",
1659
2097
  ref,
1660
2098
  css
1661
- }, (0, import_utils8.mergeProps)(rowProps, focusProps)), stateProps), children);
2099
+ }, (0, import_utils12.mergeProps)(rowProps, focusProps)), stateProps), children);
1662
2100
  };
1663
2101
 
1664
2102
  // src/Table/TableRowGroup.tsx
1665
- var import_react47 = __toESM(require("react"));
2103
+ var import_react55 = __toESM(require("react"));
1666
2104
  var import_table5 = require("@react-aria/table");
1667
2105
  var TableRowGroup = ({
1668
2106
  as: Element,
1669
2107
  children
1670
2108
  }) => {
1671
2109
  const { rowGroupProps } = (0, import_table5.useTableRowGroup)();
1672
- return /* @__PURE__ */ import_react47.default.createElement(Element, __spreadValues({}, rowGroupProps), children);
2110
+ return /* @__PURE__ */ import_react55.default.createElement(Element, __spreadValues({}, rowGroupProps), children);
1673
2111
  };
1674
2112
 
1675
2113
  // src/Table/Table.tsx
1676
2114
  var Table = (_a) => {
1677
- var _b = _a, {
1678
- align,
1679
- alignHeader,
1680
- variant,
1681
- size
1682
- } = _b, props = __objRest(_b, [
1683
- "align",
1684
- "alignHeader",
1685
- "variant",
1686
- "size"
1687
- ]);
2115
+ var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
1688
2116
  const showSelectionCheckboxes = props.selectionMode === "multiple" && props.selectionBehavior !== "replace";
1689
2117
  const state = (0, import_table7.useTableState)(__spreadProps(__spreadValues({}, props), {
1690
2118
  showSelectionCheckboxes
1691
2119
  }));
1692
- const ref = (0, import_react48.useRef)(null);
2120
+ const ref = (0, import_react56.useRef)(null);
1693
2121
  const { gridProps } = (0, import_table6.useTable)(props, state, ref);
1694
- const styles = (0, import_system26.useComponentStyles)("Table", { variant, size }, { parts: ["table", "header", "row", "cell"] });
1695
- return /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadValues({
2122
+ const styles = (0, import_system41.useComponentStyles)("Table", { variant, size }, { parts: ["table", "header", "row", "cell"] });
2123
+ return /* @__PURE__ */ import_react56.default.createElement(import_system.Box, __spreadValues({
1696
2124
  as: "table",
1697
2125
  ref,
1698
2126
  __baseCSS: styles.table
1699
- }, gridProps), /* @__PURE__ */ import_react48.default.createElement(TableRowGroup, {
2127
+ }, gridProps), /* @__PURE__ */ import_react56.default.createElement(TableRowGroup, {
1700
2128
  as: "thead"
1701
- }, state.collection.headerRows.map((headerRow) => /* @__PURE__ */ import_react48.default.createElement(TableHeaderRow, {
2129
+ }, state.collection.headerRows.map((headerRow) => /* @__PURE__ */ import_react56.default.createElement(TableHeaderRow, {
1702
2130
  key: headerRow.key,
1703
2131
  item: headerRow,
1704
2132
  state
1705
- }, [...headerRow.childNodes].map((column) => /* @__PURE__ */ import_react48.default.createElement(TableColumnHeader, {
2133
+ }, [...headerRow.childNodes].map((column) => /* @__PURE__ */ import_react56.default.createElement(TableColumnHeader, {
1706
2134
  key: column.key,
1707
2135
  item: column,
1708
2136
  state,
1709
2137
  isSelectionColumn: column.props.isSelectionCell,
1710
- align: alignHeader,
1711
2138
  css: styles.header
1712
- }))))), /* @__PURE__ */ import_react48.default.createElement(TableRowGroup, {
2139
+ }))))), /* @__PURE__ */ import_react56.default.createElement(TableRowGroup, {
1713
2140
  as: "tbody"
1714
- }, [...state.collection.body.childNodes].map((row) => /* @__PURE__ */ import_react48.default.createElement(TableRow, {
2141
+ }, [...state.collection.body.childNodes].map((row) => /* @__PURE__ */ import_react56.default.createElement(TableRow, {
1715
2142
  css: styles.row,
1716
2143
  key: row.key,
1717
2144
  item: row,
1718
2145
  state
1719
- }, [...row.childNodes].map((cell) => /* @__PURE__ */ import_react48.default.createElement(TableCell, {
2146
+ }, [...row.childNodes].map((cell) => /* @__PURE__ */ import_react56.default.createElement(TableCell, {
1720
2147
  key: cell.key,
1721
2148
  item: cell,
1722
2149
  state,
1723
2150
  isSelectionCell: cell.props.isSelectionCell,
1724
- align,
1725
2151
  css: styles.cell
1726
2152
  }))))));
1727
2153
  };
@@ -1732,95 +2158,29 @@ Table.Header = import_table7.TableHeader;
1732
2158
  Table.Row = import_table7.Row;
1733
2159
 
1734
2160
  // src/TextArea/TextArea.tsx
1735
- var import_react51 = __toESM(require("react"));
2161
+ var import_react57 = __toESM(require("react"));
1736
2162
  var import_textfield = require("@react-aria/textfield");
1737
- var import_system28 = require("@marigold/system");
1738
-
1739
- // src/Field/FieldBase.tsx
1740
- var import_react50 = __toESM(require("react"));
1741
-
1742
- // src/Field/HelpText.tsx
1743
- var import_react49 = __toESM(require("react"));
1744
- var import_icons7 = require("@marigold/icons");
1745
- var import_system27 = require("@marigold/system");
1746
- var HelpText = (_a) => {
1747
- var _b = _a, {
1748
- variant,
1749
- size,
1750
- disabled,
1751
- description,
1752
- descriptionProps,
1753
- error,
1754
- errorMessage,
1755
- errorMessageProps
1756
- } = _b, props = __objRest(_b, [
1757
- "variant",
1758
- "size",
1759
- "disabled",
1760
- "description",
1761
- "descriptionProps",
1762
- "error",
1763
- "errorMessage",
1764
- "errorMessageProps"
1765
- ]);
1766
- var _a2;
1767
- const hasErrorMessage = errorMessage && error;
1768
- const styles = (0, import_system27.useComponentStyles)("HelpText", { variant, size }, { parts: ["container", "icon"] });
1769
- return /* @__PURE__ */ import_react49.default.createElement(import_system27.Box, __spreadProps(__spreadValues({}, props), {
1770
- __baseCSS: { display: "flex", alignItems: "center", gap: 4 },
1771
- css: styles.container
1772
- }), hasErrorMessage ? /* @__PURE__ */ import_react49.default.createElement(import_react49.default.Fragment, null, /* @__PURE__ */ import_react49.default.createElement(import_icons7.Exclamation, {
1773
- role: "presentation",
1774
- size: ((_a2 = styles == null ? void 0 : styles.icon) == null ? void 0 : _a2.size) || 16
1775
- }), /* @__PURE__ */ import_react49.default.createElement(import_system27.Box, __spreadValues({}, errorMessageProps), errorMessage)) : /* @__PURE__ */ import_react49.default.createElement(import_system27.Box, __spreadValues({}, descriptionProps), description));
1776
- };
1777
-
1778
- // src/Field/FieldBase.tsx
1779
- var FieldBase = ({
1780
- variant,
1781
- size,
1782
- children,
1783
- disabled,
1784
- required,
1785
- label,
1786
- labelProps,
1787
- description,
1788
- descriptionProps,
1789
- error,
1790
- errorMessage,
1791
- errorMessageProps,
1792
- stateProps
1793
- }) => {
1794
- const hasHelpText = !!description || errorMessage && error;
1795
- return /* @__PURE__ */ import_react50.default.createElement(Stack, null, label && /* @__PURE__ */ import_react50.default.createElement(Label, __spreadProps(__spreadValues(__spreadValues({}, labelProps), stateProps), {
1796
- required
1797
- }), label), children, hasHelpText && /* @__PURE__ */ import_react50.default.createElement(HelpText, __spreadProps(__spreadValues({}, stateProps), {
1798
- disabled,
1799
- description,
1800
- descriptionProps,
1801
- error,
1802
- errorMessage,
1803
- errorMessageProps
1804
- })));
1805
- };
1806
-
1807
- // src/TextArea/TextArea.tsx
1808
- var import_interactions3 = require("@react-aria/interactions");
1809
- var import_focus13 = require("@react-aria/focus");
2163
+ var import_system42 = require("@marigold/system");
2164
+ var import_interactions7 = require("@react-aria/interactions");
2165
+ var import_focus14 = require("@react-aria/focus");
1810
2166
  var TextArea = (_a) => {
1811
2167
  var _b = _a, {
1812
2168
  disabled,
1813
2169
  required,
1814
2170
  readOnly,
1815
- error
2171
+ error,
2172
+ variant,
2173
+ size
1816
2174
  } = _b, props = __objRest(_b, [
1817
2175
  "disabled",
1818
2176
  "required",
1819
2177
  "readOnly",
1820
- "error"
2178
+ "error",
2179
+ "variant",
2180
+ "size"
1821
2181
  ]);
1822
2182
  const { label, description, errorMessage } = props;
1823
- const ref = (0, import_react51.useRef)(null);
2183
+ const ref = (0, import_react57.useRef)(null);
1824
2184
  const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(__spreadValues({
1825
2185
  inputElementType: "textarea",
1826
2186
  isDisabled: disabled,
@@ -1828,17 +2188,17 @@ var TextArea = (_a) => {
1828
2188
  isReadOnly: readOnly,
1829
2189
  validationState: error ? "invalid" : "valid"
1830
2190
  }, props), ref);
1831
- const { hoverProps, isHovered } = (0, import_interactions3.useHover)({});
1832
- const { focusProps, isFocusVisible } = (0, import_focus13.useFocusRing)();
1833
- const stateProps = (0, import_system28.useStateProps)({
2191
+ const { hoverProps, isHovered } = (0, import_interactions7.useHover)({});
2192
+ const { focusProps, isFocusVisible } = (0, import_focus14.useFocusRing)();
2193
+ const stateProps = (0, import_system42.useStateProps)({
1834
2194
  hover: isHovered,
1835
2195
  focus: isFocusVisible,
1836
2196
  disabled,
1837
2197
  readOnly,
1838
2198
  error
1839
2199
  });
1840
- const styles = (0, import_system28.useComponentStyles)("TextArea", {});
1841
- return /* @__PURE__ */ import_react51.default.createElement(FieldBase, {
2200
+ const styles = (0, import_system42.useComponentStyles)("TextArea", { variant, size });
2201
+ return /* @__PURE__ */ import_react57.default.createElement(FieldBase, {
1842
2202
  label,
1843
2203
  labelProps,
1844
2204
  required,
@@ -1847,67 +2207,59 @@ var TextArea = (_a) => {
1847
2207
  error,
1848
2208
  errorMessage,
1849
2209
  errorMessageProps,
1850
- stateProps
1851
- }, /* @__PURE__ */ import_react51.default.createElement(import_system28.Box, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2210
+ stateProps,
2211
+ variant,
2212
+ size
2213
+ }, /* @__PURE__ */ import_react57.default.createElement(import_system42.Box, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
1852
2214
  as: "textarea",
1853
- variant: "textArea",
1854
2215
  css: styles,
1855
2216
  ref
1856
2217
  }, inputProps), focusProps), hoverProps), stateProps)));
1857
2218
  };
1858
2219
 
1859
2220
  // src/TextField/TextField.tsx
1860
- var import_react53 = __toESM(require("react"));
1861
- var import_interactions4 = require("@react-aria/interactions");
1862
- var import_focus14 = require("@react-aria/focus");
2221
+ var import_react58 = __toESM(require("react"));
2222
+ var import_interactions8 = require("@react-aria/interactions");
2223
+ var import_focus15 = require("@react-aria/focus");
1863
2224
  var import_textfield2 = require("@react-aria/textfield");
1864
- var import_system30 = require("@marigold/system");
1865
-
1866
- // src/Input/Input.tsx
1867
- var import_react52 = __toESM(require("react"));
1868
- var import_system29 = require("@marigold/system");
1869
- var Input = (0, import_react52.forwardRef)((_a, ref) => {
1870
- var _b = _a, { variant, size, type = "text" } = _b, props = __objRest(_b, ["variant", "size", "type"]);
1871
- const styles = (0, import_system29.useComponentStyles)("Input", { variant, size });
1872
- return /* @__PURE__ */ import_react52.default.createElement(import_system29.Box, __spreadProps(__spreadValues({}, props), {
1873
- ref,
1874
- as: "input",
1875
- type,
1876
- css: styles
1877
- }));
1878
- });
1879
-
1880
- // src/TextField/TextField.tsx
2225
+ var import_system43 = require("@marigold/system");
1881
2226
  var TextField = (_a) => {
1882
2227
  var _b = _a, {
1883
2228
  disabled,
1884
2229
  required,
1885
2230
  readOnly,
1886
- error
2231
+ error,
2232
+ variant,
2233
+ size
1887
2234
  } = _b, props = __objRest(_b, [
1888
2235
  "disabled",
1889
2236
  "required",
1890
2237
  "readOnly",
1891
- "error"
2238
+ "error",
2239
+ "variant",
2240
+ "size"
1892
2241
  ]);
1893
- const { label, description, errorMessage } = props;
1894
- const ref = (0, import_react53.useRef)(null);
2242
+ const { label, description, errorMessage, autoFocus } = props;
2243
+ const ref = (0, import_react58.useRef)(null);
1895
2244
  const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadValues({
1896
2245
  isDisabled: disabled,
1897
2246
  isRequired: required,
1898
2247
  isReadOnly: readOnly,
1899
2248
  validationState: error ? "invalid" : "valid"
1900
2249
  }, props), ref);
1901
- const { hoverProps, isHovered } = (0, import_interactions4.useHover)({});
1902
- const { focusProps, isFocusVisible } = (0, import_focus14.useFocusRing)();
1903
- const stateProps = (0, import_system30.useStateProps)({
2250
+ const { hoverProps, isHovered } = (0, import_interactions8.useHover)({});
2251
+ const { focusProps, isFocusVisible } = (0, import_focus15.useFocusRing)({
2252
+ isTextInput: true,
2253
+ autoFocus
2254
+ });
2255
+ const stateProps = (0, import_system43.useStateProps)({
1904
2256
  hover: isHovered,
1905
2257
  focus: isFocusVisible,
1906
2258
  disabled,
1907
2259
  readOnly,
1908
2260
  error
1909
2261
  });
1910
- return /* @__PURE__ */ import_react53.default.createElement(FieldBase, {
2262
+ return /* @__PURE__ */ import_react58.default.createElement(FieldBase, {
1911
2263
  label,
1912
2264
  labelProps,
1913
2265
  required,
@@ -1916,17 +2268,21 @@ var TextField = (_a) => {
1916
2268
  error,
1917
2269
  errorMessage,
1918
2270
  errorMessageProps,
1919
- stateProps
1920
- }, /* @__PURE__ */ import_react53.default.createElement(Input, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
1921
- ref
2271
+ stateProps,
2272
+ variant,
2273
+ size
2274
+ }, /* @__PURE__ */ import_react58.default.createElement(Input, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2275
+ ref,
2276
+ variant,
2277
+ size
1922
2278
  }, inputProps), focusProps), hoverProps), stateProps)));
1923
2279
  };
1924
2280
 
1925
2281
  // src/Tiles/Tiles.tsx
1926
- var import_react54 = __toESM(require("react"));
1927
- var Tiles = import_react54.default.forwardRef(function Tiles2(_a, ref) {
2282
+ var import_react59 = __toESM(require("react"));
2283
+ var Tiles = import_react59.default.forwardRef(function Tiles2(_a, ref) {
1928
2284
  var _b = _a, { space = "none", itemMinWidth = "250px", children } = _b, props = __objRest(_b, ["space", "itemMinWidth", "children"]);
1929
- return /* @__PURE__ */ import_react54.default.createElement(import_system.Box, __spreadValues({
2285
+ return /* @__PURE__ */ import_react59.default.createElement(import_system.Box, __spreadValues({
1930
2286
  ref,
1931
2287
  display: "grid",
1932
2288
  __baseCSS: {
@@ -1937,25 +2293,25 @@ var Tiles = import_react54.default.forwardRef(function Tiles2(_a, ref) {
1937
2293
  });
1938
2294
 
1939
2295
  // src/Tooltip/Tooltip.tsx
1940
- var import_react56 = __toESM(require("react"));
2296
+ var import_react61 = __toESM(require("react"));
1941
2297
  var import_tooltip3 = require("@react-aria/tooltip");
1942
- var import_utils9 = require("@react-aria/utils");
2298
+ var import_utils13 = require("@react-aria/utils");
1943
2299
 
1944
2300
  // src/Tooltip/TooltipTrigger.tsx
1945
- var import_react55 = __toESM(require("react"));
1946
- var import_focus15 = require("@react-aria/focus");
2301
+ var import_react60 = __toESM(require("react"));
2302
+ var import_focus16 = require("@react-aria/focus");
1947
2303
  var import_tooltip = require("@react-aria/tooltip");
1948
2304
  var import_tooltip2 = require("@react-stately/tooltip");
1949
- var TooltipContext = import_react55.default.createContext({});
2305
+ var TooltipContext = import_react60.default.createContext({});
1950
2306
  var TooltipTrigger = (_a) => {
1951
2307
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1952
- const [trigger, tooltip] = import_react55.default.Children.toArray(children);
2308
+ const [trigger, tooltip] = import_react60.default.Children.toArray(children);
1953
2309
  const state = (0, import_tooltip2.useTooltipTriggerState)(props);
1954
- const tooltipTriggerRef = (0, import_react55.useRef)();
2310
+ const tooltipTriggerRef = (0, import_react60.useRef)();
1955
2311
  const { triggerProps, tooltipProps } = (0, import_tooltip.useTooltipTrigger)({}, state, tooltipTriggerRef);
1956
- return /* @__PURE__ */ import_react55.default.createElement(import_focus15.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
2312
+ return /* @__PURE__ */ import_react60.default.createElement(import_focus16.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
1957
2313
  ref: tooltipTriggerRef
1958
- }), trigger, state.isOpen && /* @__PURE__ */ import_react55.default.createElement(TooltipContext.Provider, {
2314
+ }), trigger, state.isOpen && /* @__PURE__ */ import_react60.default.createElement(TooltipContext.Provider, {
1959
2315
  value: __spreadValues({
1960
2316
  state
1961
2317
  }, tooltipProps)
@@ -1971,64 +2327,16 @@ var Tooltip = (_a) => {
1971
2327
  "variant",
1972
2328
  "children"
1973
2329
  ]);
1974
- const _a2 = (0, import_react56.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
1975
- const mergedProps = (0, import_utils9.mergeProps)(props, tooltipProviderProps);
2330
+ const _a2 = (0, import_react61.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
2331
+ const mergedProps = (0, import_utils13.mergeProps)(props, tooltipProviderProps);
1976
2332
  const { tooltipProps } = (0, import_tooltip3.useTooltip)(mergedProps, state);
1977
- return /* @__PURE__ */ import_react56.default.createElement(import_system.Box, __spreadValues({
2333
+ return /* @__PURE__ */ import_react61.default.createElement(import_system.Box, __spreadValues({
1978
2334
  position: "relative"
1979
- }, tooltipProps), /* @__PURE__ */ import_react56.default.createElement(import_system.Box, __spreadValues({
2335
+ }, tooltipProps), /* @__PURE__ */ import_react61.default.createElement(import_system.Box, __spreadValues({
1980
2336
  position: "absolute",
1981
2337
  variant: `tooltip.${variant}`
1982
2338
  }, mergedProps), children));
1983
2339
  };
1984
-
1985
- // src/Container/Container.tsx
1986
- var import_react57 = __toESM(require("react"));
1987
- var import_tokens2 = require("@marigold/tokens");
1988
- var ALIGNMENT3 = {
1989
- left: "flex-start",
1990
- center: "center",
1991
- right: "flex-end"
1992
- };
1993
- var Container = (_a) => {
1994
- var _b = _a, {
1995
- contentType = "content",
1996
- size = "medium",
1997
- align = "left",
1998
- alignContainer = "left",
1999
- children
2000
- } = _b, props = __objRest(_b, [
2001
- "contentType",
2002
- "size",
2003
- "align",
2004
- "alignContainer",
2005
- "children"
2006
- ]);
2007
- const maxWidth = import_tokens2.size[contentType][size];
2008
- let gridTemplateColumns = `${maxWidth} 1fr 1fr`;
2009
- let gridColumn = 1;
2010
- if (alignContainer === "center") {
2011
- gridTemplateColumns = `1fr ${maxWidth} 1fr`;
2012
- gridColumn = 2;
2013
- }
2014
- if (alignContainer === "right") {
2015
- gridTemplateColumns = `1fr 1fr ${maxWidth}`;
2016
- gridColumn = 3;
2017
- }
2018
- return /* @__PURE__ */ import_react57.default.createElement(import_system.Box, __spreadValues({
2019
- display: "grid",
2020
- css: {
2021
- gridTemplateColumns,
2022
- placeItems: ALIGNMENT3[align],
2023
- "> *": {
2024
- gridColumn
2025
- }
2026
- }
2027
- }, props), children);
2028
- };
2029
-
2030
- // src/index.ts
2031
- var import_collections2 = require("@react-stately/collections");
2032
2340
  // Annotate the CommonJS export names for ESM import in node:
2033
2341
  0 && (module.exports = {
2034
2342
  Aside,
@@ -2053,18 +2361,16 @@ var import_collections2 = require("@react-stately/collections");
2053
2361
  Image,
2054
2362
  Inline,
2055
2363
  Input,
2056
- Item,
2057
2364
  Label,
2058
- LabelBase,
2059
2365
  Link,
2060
2366
  MarigoldProvider,
2061
2367
  Menu,
2062
2368
  Message,
2369
+ NumberField,
2063
2370
  Overlay,
2064
2371
  Popover,
2065
2372
  Radio,
2066
2373
  SSRProvider,
2067
- Section,
2068
2374
  Select,
2069
2375
  Slider,
2070
2376
  Stack,
@@ -2078,9 +2384,8 @@ var import_collections2 = require("@react-stately/collections");
2078
2384
  Tooltip,
2079
2385
  TooltipContext,
2080
2386
  TooltipTrigger,
2081
- ValidationMessage,
2387
+ Underlay,
2082
2388
  VisuallyHidden,
2083
2389
  useCheckboxGroupContext,
2084
- useDialogButtonProps,
2085
2390
  useTheme
2086
2391
  });