@marigold/components 0.9.0 → 1.0.1

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