@marigold/components 1.0.0-beta.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -85,6 +85,7 @@ __export(src_exports, {
85
85
  SSRProvider: () => import_ssr.SSRProvider,
86
86
  Select: () => Select,
87
87
  Slider: () => Slider,
88
+ Split: () => Split,
88
89
  Stack: () => Stack,
89
90
  Switch: () => Switch,
90
91
  Table: () => Table,
@@ -94,8 +95,6 @@ __export(src_exports, {
94
95
  ThemeProvider: () => import_system26.ThemeProvider,
95
96
  Tiles: () => Tiles,
96
97
  Tooltip: () => Tooltip,
97
- TooltipContext: () => TooltipContext,
98
- TooltipTrigger: () => TooltipTrigger,
99
98
  Underlay: () => Underlay,
100
99
  VisuallyHidden: () => import_visually_hidden.VisuallyHidden,
101
100
  useCheckboxGroupContext: () => useCheckboxGroupContext,
@@ -397,7 +396,6 @@ var IndeterminateMark = () => /* @__PURE__ */ import_react10.default.createEleme
397
396
  }));
398
397
  var Icon = (_a) => {
399
398
  var _b = _a, { css, checked, indeterminate } = _b, props = __objRest(_b, ["css", "checked", "indeterminate"]);
400
- const icon = indeterminate ? /* @__PURE__ */ import_react10.default.createElement(IndeterminateMark, null) : /* @__PURE__ */ import_react10.default.createElement(CheckMark, null);
401
399
  return /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues({
402
400
  "aria-hidden": "true",
403
401
  __baseCSS: {
@@ -412,7 +410,7 @@ var Icon = (_a) => {
412
410
  p: 1
413
411
  },
414
412
  css
415
- }, props), checked ? icon : null);
413
+ }, props), indeterminate ? /* @__PURE__ */ import_react10.default.createElement(IndeterminateMark, null) : checked ? /* @__PURE__ */ import_react10.default.createElement(CheckMark, null) : null);
416
414
  };
417
415
  var Checkbox = (_a) => {
418
416
  var _b = _a, {
@@ -492,7 +490,7 @@ var Checkbox = (_a) => {
492
490
  checked: inputProps.checked,
493
491
  indeterminate,
494
492
  css: styles.checkbox
495
- }, stateProps)), /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues({
493
+ }, stateProps)), props.children && /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues({
496
494
  css: styles.label
497
495
  }, stateProps), props.children));
498
496
  };
@@ -868,7 +866,7 @@ var Divider = (_a) => {
868
866
  var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
869
867
  const { separatorProps } = (0, import_separator.useSeparator)(props);
870
868
  const styles = (0, import_system13.useComponentStyles)("Divider", { variant });
871
- return /* @__PURE__ */ import_react23.default.createElement(import_system.Box, __spreadValues(__spreadValues({
869
+ return /* @__PURE__ */ import_react23.default.createElement(import_system13.Box, __spreadValues(__spreadValues({
872
870
  css: styles
873
871
  }, props), separatorProps));
874
872
  };
@@ -900,7 +898,12 @@ var Image = (_a) => {
900
898
 
901
899
  // src/Inline/Inline.tsx
902
900
  var import_react26 = __toESM(require("react"));
903
- var ALIGNMENT2 = {
901
+ var ALIGNMENT_X = {
902
+ left: "flex-start",
903
+ center: "center",
904
+ right: "flex-end"
905
+ };
906
+ var ALIGNMENT_Y = {
904
907
  top: "flex-start",
905
908
  center: "center",
906
909
  bottom: "flex-end"
@@ -908,17 +911,23 @@ var ALIGNMENT2 = {
908
911
  var Inline = (_a) => {
909
912
  var _b = _a, {
910
913
  space = "none",
911
- align = "center",
914
+ alignX = "left",
915
+ alignY = "center",
912
916
  children
913
917
  } = _b, props = __objRest(_b, [
914
918
  "space",
915
- "align",
919
+ "alignX",
920
+ "alignY",
916
921
  "children"
917
922
  ]);
918
923
  return /* @__PURE__ */ import_react26.default.createElement(import_system.Box, __spreadValues({
919
- __baseCSS: { gap: space, flexWrap: "wrap" },
920
- display: "inline-flex",
921
- alignItems: ALIGNMENT2[align]
924
+ css: {
925
+ display: "flex",
926
+ flexWrap: "wrap",
927
+ gap: space,
928
+ alignItems: ALIGNMENT_Y[alignY],
929
+ justifyContent: ALIGNMENT_X[alignX]
930
+ }
922
931
  }, props), children);
923
932
  };
924
933
 
@@ -1177,9 +1186,10 @@ var HelpText = (_a) => {
1177
1186
 
1178
1187
  // src/FieldBase/FieldBase.tsx
1179
1188
  var FieldBase = ({
1189
+ children,
1180
1190
  variant,
1181
1191
  size,
1182
- children,
1192
+ width = "100%",
1183
1193
  disabled,
1184
1194
  required,
1185
1195
  label,
@@ -1193,7 +1203,7 @@ var FieldBase = ({
1193
1203
  }) => {
1194
1204
  const hasHelpText = !!description || errorMessage && error;
1195
1205
  return /* @__PURE__ */ import_react35.default.createElement(import_system22.Box, {
1196
- css: { display: "flex", flexDirection: "column", width: "100%" }
1206
+ css: { display: "flex", flexDirection: "column", width }
1197
1207
  }, label && /* @__PURE__ */ import_react35.default.createElement(Label, __spreadValues(__spreadValues({
1198
1208
  required,
1199
1209
  variant,
@@ -1261,20 +1271,22 @@ var StepButton = (_a) => {
1261
1271
  // src/NumberField/NumberField.tsx
1262
1272
  var NumberField = (0, import_react37.forwardRef)((_a, ref) => {
1263
1273
  var _b = _a, {
1274
+ variant,
1275
+ size,
1276
+ width,
1264
1277
  disabled,
1265
1278
  required,
1266
1279
  readOnly,
1267
1280
  error,
1268
- variant,
1269
- size,
1270
1281
  hideStepper
1271
1282
  } = _b, rest = __objRest(_b, [
1283
+ "variant",
1284
+ "size",
1285
+ "width",
1272
1286
  "disabled",
1273
1287
  "required",
1274
1288
  "readOnly",
1275
1289
  "error",
1276
- "variant",
1277
- "size",
1278
1290
  "hideStepper"
1279
1291
  ]);
1280
1292
  const props = __spreadValues({
@@ -1321,7 +1333,8 @@ var NumberField = (0, import_react37.forwardRef)((_a, ref) => {
1321
1333
  errorMessageProps,
1322
1334
  stateProps,
1323
1335
  variant,
1324
- size
1336
+ size,
1337
+ width
1325
1338
  }, /* @__PURE__ */ import_react37.default.createElement(import_system24.Box, __spreadValues(__spreadValues({
1326
1339
  "data-group": true,
1327
1340
  __baseCSS: {
@@ -1365,23 +1378,29 @@ function MarigoldProvider({
1365
1378
  }
1366
1379
 
1367
1380
  // src/Radio/Radio.tsx
1368
- var import_react40 = __toESM(require("react"));
1381
+ var import_react41 = __toESM(require("react"));
1382
+ var import_interactions6 = require("@react-aria/interactions");
1383
+ var import_focus7 = require("@react-aria/focus");
1369
1384
  var import_radio3 = require("@react-aria/radio");
1370
1385
  var import_system28 = require("@marigold/system");
1371
1386
 
1387
+ // src/Radio/Context.ts
1388
+ var import_react39 = require("react");
1389
+ var RadioGroupContext = (0, import_react39.createContext)(null);
1390
+ var useRadioGroupContext = () => (0, import_react39.useContext)(RadioGroupContext);
1391
+
1372
1392
  // src/Radio/RadioGroup.tsx
1373
- var import_react39 = __toESM(require("react"));
1393
+ var import_react40 = __toESM(require("react"));
1374
1394
  var import_radio = require("@react-aria/radio");
1375
1395
  var import_radio2 = require("@react-stately/radio");
1376
1396
  var import_system27 = require("@marigold/system");
1377
- var RadioGroupContext = import_react39.default.createContext(null);
1378
- var useRadioGroupContext = () => (0, import_react39.useContext)(RadioGroupContext);
1379
1397
  var RadioGroup = (_a) => {
1380
1398
  var _b = _a, {
1381
1399
  children,
1382
1400
  orientation = "vertical",
1383
1401
  size,
1384
1402
  variant,
1403
+ width,
1385
1404
  required,
1386
1405
  disabled,
1387
1406
  readOnly,
@@ -1391,6 +1410,7 @@ var RadioGroup = (_a) => {
1391
1410
  "orientation",
1392
1411
  "size",
1393
1412
  "variant",
1413
+ "width",
1394
1414
  "required",
1395
1415
  "disabled",
1396
1416
  "readOnly",
@@ -1405,12 +1425,12 @@ var RadioGroup = (_a) => {
1405
1425
  const state = (0, import_radio2.useRadioGroupState)(props);
1406
1426
  const { radioGroupProps, labelProps } = (0, import_radio.useRadioGroup)(props, state);
1407
1427
  const styles = (0, import_system27.useComponentStyles)("RadioGroup", { variant, size }, { parts: ["container", "group"] });
1408
- return /* @__PURE__ */ import_react39.default.createElement(import_system27.Box, __spreadProps(__spreadValues({}, radioGroupProps), {
1428
+ return /* @__PURE__ */ import_react40.default.createElement(import_system27.Box, __spreadProps(__spreadValues({}, radioGroupProps), {
1409
1429
  css: styles.container
1410
- }), props.label && /* @__PURE__ */ import_react39.default.createElement(Label, __spreadValues({
1430
+ }), props.label && /* @__PURE__ */ import_react40.default.createElement(Label, __spreadValues({
1411
1431
  as: "span",
1412
1432
  required
1413
- }, labelProps), props.label), /* @__PURE__ */ import_react39.default.createElement(import_system27.Box, {
1433
+ }, labelProps), props.label), /* @__PURE__ */ import_react40.default.createElement(import_system27.Box, {
1414
1434
  role: "presentation",
1415
1435
  "data-orientation": orientation,
1416
1436
  __baseCSS: {
@@ -1420,17 +1440,15 @@ var RadioGroup = (_a) => {
1420
1440
  gap: orientation === "vertical" ? "0.5ch" : "1.5ch"
1421
1441
  },
1422
1442
  css: styles.group
1423
- }, /* @__PURE__ */ import_react39.default.createElement(RadioGroupContext.Provider, {
1424
- value: __spreadValues({ variant, size, error }, state)
1443
+ }, /* @__PURE__ */ import_react40.default.createElement(RadioGroupContext.Provider, {
1444
+ value: __spreadValues({ variant, size, width, error }, state)
1425
1445
  }, children)));
1426
1446
  };
1427
1447
 
1428
1448
  // src/Radio/Radio.tsx
1429
- var import_interactions6 = require("@react-aria/interactions");
1430
- var import_focus7 = require("@react-aria/focus");
1431
- var Dot = () => /* @__PURE__ */ import_react40.default.createElement("svg", {
1449
+ var Dot = () => /* @__PURE__ */ import_react41.default.createElement("svg", {
1432
1450
  viewBox: "0 0 6 6"
1433
- }, /* @__PURE__ */ import_react40.default.createElement("circle", {
1451
+ }, /* @__PURE__ */ import_react41.default.createElement("circle", {
1434
1452
  fill: "currentColor",
1435
1453
  cx: "3",
1436
1454
  cy: "3",
@@ -1438,7 +1456,7 @@ var Dot = () => /* @__PURE__ */ import_react40.default.createElement("svg", {
1438
1456
  }));
1439
1457
  var Icon2 = (_a) => {
1440
1458
  var _b = _a, { checked, css } = _b, props = __objRest(_b, ["checked", "css"]);
1441
- return /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues({
1459
+ return /* @__PURE__ */ import_react41.default.createElement(import_system28.Box, __spreadValues({
1442
1460
  "aria-hidden": "true",
1443
1461
  __baseCSS: {
1444
1462
  width: 16,
@@ -1452,12 +1470,22 @@ var Icon2 = (_a) => {
1452
1470
  p: 4
1453
1471
  },
1454
1472
  css
1455
- }, props), checked ? /* @__PURE__ */ import_react40.default.createElement(Dot, null) : null);
1473
+ }, props), checked ? /* @__PURE__ */ import_react41.default.createElement(Dot, null) : null);
1456
1474
  };
1457
1475
  var Radio = (_a) => {
1458
- var _b = _a, { disabled } = _b, props = __objRest(_b, ["disabled"]);
1459
- const _a2 = useRadioGroupContext(), { variant, size, error } = _a2, state = __objRest(_a2, ["variant", "size", "error"]);
1460
- const ref = (0, import_react40.useRef)(null);
1476
+ var _b = _a, { width, disabled } = _b, props = __objRest(_b, ["width", "disabled"]);
1477
+ const _a2 = useRadioGroupContext(), {
1478
+ variant,
1479
+ size,
1480
+ error,
1481
+ width: groupWidth
1482
+ } = _a2, state = __objRest(_a2, [
1483
+ "variant",
1484
+ "size",
1485
+ "error",
1486
+ "width"
1487
+ ]);
1488
+ const ref = (0, import_react41.useRef)(null);
1461
1489
  const { inputProps } = (0, import_radio3.useRadio)(__spreadValues({ isDisabled: disabled }, props), state, ref);
1462
1490
  const styles = (0, import_system28.useComponentStyles)("Radio", { variant: variant || props.variant, size: size || props.size }, { parts: ["container", "label", "radio"] });
1463
1491
  const { hoverProps, isHovered } = (0, import_interactions6.useHover)({});
@@ -1470,16 +1498,17 @@ var Radio = (_a) => {
1470
1498
  readOnly: props.readOnly,
1471
1499
  error
1472
1500
  });
1473
- return /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1501
+ return /* @__PURE__ */ import_react41.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1474
1502
  as: "label",
1475
1503
  __baseCSS: {
1476
1504
  display: "flex",
1477
1505
  alignItems: "center",
1478
1506
  gap: "1ch",
1479
- position: "relative"
1507
+ position: "relative",
1508
+ width: width || groupWidth || "100%"
1480
1509
  },
1481
1510
  css: styles.container
1482
- }, hoverProps), stateProps), /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1511
+ }, hoverProps), stateProps), /* @__PURE__ */ import_react41.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1483
1512
  as: "input",
1484
1513
  ref,
1485
1514
  css: {
@@ -1492,17 +1521,17 @@ var Radio = (_a) => {
1492
1521
  opacity: 1e-4,
1493
1522
  cursor: inputProps.disabled ? "not-allowed" : "pointer"
1494
1523
  }
1495
- }, inputProps), focusProps)), /* @__PURE__ */ import_react40.default.createElement(Icon2, __spreadValues({
1524
+ }, inputProps), focusProps)), /* @__PURE__ */ import_react41.default.createElement(Icon2, __spreadValues({
1496
1525
  checked: inputProps.checked,
1497
1526
  css: styles.radio
1498
- }, stateProps)), /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues({
1527
+ }, stateProps)), /* @__PURE__ */ import_react41.default.createElement(import_system28.Box, __spreadValues({
1499
1528
  css: styles.label
1500
1529
  }, stateProps), props.children));
1501
1530
  };
1502
1531
  Radio.Group = RadioGroup;
1503
1532
 
1504
1533
  // src/Select/Select.tsx
1505
- var import_react45 = __toESM(require("react"));
1534
+ var import_react46 = __toESM(require("react"));
1506
1535
  var import_button4 = require("@react-aria/button");
1507
1536
  var import_focus8 = require("@react-aria/focus");
1508
1537
  var import_i18n2 = require("@react-aria/i18n");
@@ -1514,27 +1543,27 @@ var import_utils8 = require("@react-aria/utils");
1514
1543
  var import_system32 = require("@marigold/system");
1515
1544
 
1516
1545
  // src/ListBox/ListBox.tsx
1517
- var import_react44 = __toESM(require("react"));
1546
+ var import_react45 = __toESM(require("react"));
1518
1547
  var import_utils7 = require("@react-aria/utils");
1519
1548
  var import_system31 = require("@marigold/system");
1520
1549
  var import_listbox3 = require("@react-aria/listbox");
1521
1550
 
1522
1551
  // src/ListBox/Context.ts
1523
- var import_react41 = require("react");
1524
- var ListBoxContext = (0, import_react41.createContext)({});
1525
- var useListBoxContext = () => (0, import_react41.useContext)(ListBoxContext);
1552
+ var import_react42 = require("react");
1553
+ var ListBoxContext = (0, import_react42.createContext)({});
1554
+ var useListBoxContext = () => (0, import_react42.useContext)(ListBoxContext);
1526
1555
 
1527
1556
  // src/ListBox/ListBoxSection.tsx
1528
- var import_react43 = __toESM(require("react"));
1557
+ var import_react44 = __toESM(require("react"));
1529
1558
  var import_listbox2 = require("@react-aria/listbox");
1530
1559
  var import_system30 = require("@marigold/system");
1531
1560
 
1532
1561
  // src/ListBox/ListBoxOption.tsx
1533
- var import_react42 = __toESM(require("react"));
1562
+ var import_react43 = __toESM(require("react"));
1534
1563
  var import_listbox = require("@react-aria/listbox");
1535
1564
  var import_system29 = require("@marigold/system");
1536
1565
  var ListBoxOption = ({ item, state }) => {
1537
- const ref = (0, import_react42.useRef)(null);
1566
+ const ref = (0, import_react43.useRef)(null);
1538
1567
  const { optionProps, isSelected, isDisabled, isFocused } = (0, import_listbox.useOption)({
1539
1568
  key: item.key
1540
1569
  }, state, ref);
@@ -1544,7 +1573,7 @@ var ListBoxOption = ({ item, state }) => {
1544
1573
  disabled: isDisabled,
1545
1574
  focusVisible: isFocused
1546
1575
  });
1547
- return /* @__PURE__ */ import_react42.default.createElement(import_system29.Box, __spreadValues(__spreadValues({
1576
+ return /* @__PURE__ */ import_react43.default.createElement(import_system29.Box, __spreadValues(__spreadValues({
1548
1577
  as: "li",
1549
1578
  ref,
1550
1579
  css: styles.option
@@ -1558,16 +1587,16 @@ var ListBoxSection = ({ section, state }) => {
1558
1587
  "aria-label": section["aria-label"]
1559
1588
  });
1560
1589
  const { styles } = useListBoxContext();
1561
- return /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1590
+ return /* @__PURE__ */ import_react44.default.createElement(import_system30.Box, __spreadValues({
1562
1591
  as: "li",
1563
1592
  css: styles.section
1564
- }, itemProps), section.rendered && /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1593
+ }, itemProps), section.rendered && /* @__PURE__ */ import_react44.default.createElement(import_system30.Box, __spreadValues({
1565
1594
  css: styles.sectionTitle
1566
- }, headingProps), section.rendered), /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1595
+ }, headingProps), section.rendered), /* @__PURE__ */ import_react44.default.createElement(import_system30.Box, __spreadValues({
1567
1596
  as: "ul",
1568
1597
  __baseCSS: { listStyle: "none", p: 0 },
1569
1598
  css: styles.list
1570
- }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react43.default.createElement(ListBoxOption, {
1599
+ }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react44.default.createElement(ListBoxOption, {
1571
1600
  key: node.key,
1572
1601
  item: node,
1573
1602
  state
@@ -1575,25 +1604,25 @@ var ListBoxSection = ({ section, state }) => {
1575
1604
  };
1576
1605
 
1577
1606
  // src/ListBox/ListBox.tsx
1578
- var ListBox = (0, import_react44.forwardRef)((_a, ref) => {
1607
+ var ListBox = (0, import_react45.forwardRef)((_a, ref) => {
1579
1608
  var _b = _a, { state, variant, size } = _b, props = __objRest(_b, ["state", "variant", "size"]);
1580
1609
  const innerRef = (0, import_utils7.useObjectRef)(ref);
1581
1610
  const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, innerRef);
1582
1611
  const styles = (0, import_system31.useComponentStyles)("ListBox", { variant, size }, { parts: ["container", "list", "option", "section", "sectionTitle"] });
1583
- return /* @__PURE__ */ import_react44.default.createElement(ListBoxContext.Provider, {
1612
+ return /* @__PURE__ */ import_react45.default.createElement(ListBoxContext.Provider, {
1584
1613
  value: { styles }
1585
- }, /* @__PURE__ */ import_react44.default.createElement(import_system31.Box, {
1614
+ }, /* @__PURE__ */ import_react45.default.createElement(import_system31.Box, {
1586
1615
  css: styles.container
1587
- }, /* @__PURE__ */ import_react44.default.createElement(import_system31.Box, __spreadValues({
1616
+ }, /* @__PURE__ */ import_react45.default.createElement(import_system31.Box, __spreadValues({
1588
1617
  as: "ul",
1589
1618
  ref: innerRef,
1590
1619
  __baseCSS: { listStyle: "none", p: 0 },
1591
1620
  css: styles.list
1592
- }, listBoxProps), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react44.default.createElement(ListBoxSection, {
1621
+ }, listBoxProps), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react45.default.createElement(ListBoxSection, {
1593
1622
  key: item.key,
1594
1623
  section: item,
1595
1624
  state
1596
- }) : /* @__PURE__ */ import_react44.default.createElement(ListBoxOption, {
1625
+ }) : /* @__PURE__ */ import_react45.default.createElement(ListBoxOption, {
1597
1626
  key: item.key,
1598
1627
  item,
1599
1628
  state
@@ -1611,7 +1640,7 @@ var messages = {
1611
1640
  };
1612
1641
 
1613
1642
  // src/Select/Select.tsx
1614
- var Chevron = ({ css }) => /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, {
1643
+ var Chevron = ({ css }) => /* @__PURE__ */ import_react46.default.createElement(import_system32.Box, {
1615
1644
  as: "svg",
1616
1645
  __baseCSS: { width: 16, height: 16 },
1617
1646
  css,
@@ -1619,28 +1648,28 @@ var Chevron = ({ css }) => /* @__PURE__ */ import_react45.default.createElement(
1619
1648
  viewBox: "0 0 24 24",
1620
1649
  stroke: "currentColor",
1621
1650
  strokeWidth: 2
1622
- }, /* @__PURE__ */ import_react45.default.createElement("path", {
1651
+ }, /* @__PURE__ */ import_react46.default.createElement("path", {
1623
1652
  strokeLinecap: "round",
1624
1653
  strokeLinejoin: "round",
1625
1654
  d: "M19 9l-7 7-7-7"
1626
1655
  }));
1627
1656
  var Select = (_a) => {
1628
1657
  var _b = _a, {
1658
+ variant,
1659
+ size,
1660
+ width,
1629
1661
  open,
1630
1662
  disabled,
1631
1663
  required,
1632
- error,
1633
- variant,
1634
- size,
1635
- css
1664
+ error
1636
1665
  } = _b, rest = __objRest(_b, [
1666
+ "variant",
1667
+ "size",
1668
+ "width",
1637
1669
  "open",
1638
1670
  "disabled",
1639
1671
  "required",
1640
- "error",
1641
- "variant",
1642
- "size",
1643
- "css"
1672
+ "error"
1644
1673
  ]);
1645
1674
  const formatMessage = (0, import_i18n2.useMessageFormatter)(messages);
1646
1675
  const props = __spreadValues({
@@ -1651,7 +1680,7 @@ var Select = (_a) => {
1651
1680
  placeholder: rest.placeholder || formatMessage("placeholder")
1652
1681
  }, rest);
1653
1682
  const state = (0, import_select2.useSelectState)(props);
1654
- const buttonRef = (0, import_react45.useRef)(null);
1683
+ const buttonRef = (0, import_react46.useRef)(null);
1655
1684
  const {
1656
1685
  labelProps,
1657
1686
  triggerProps,
@@ -1662,7 +1691,7 @@ var Select = (_a) => {
1662
1691
  } = (0, import_select.useSelect)(props, state, buttonRef);
1663
1692
  const { buttonProps } = (0, import_button4.useButton)(__spreadValues({ isDisabled: disabled }, triggerProps), buttonRef);
1664
1693
  const { focusProps, isFocusVisible } = (0, import_focus8.useFocusRing)();
1665
- const overlayRef = (0, import_react45.useRef)(null);
1694
+ const overlayRef = (0, import_react46.useRef)(null);
1666
1695
  const { overlayProps: positionProps } = (0, import_overlays8.useOverlayPosition)({
1667
1696
  targetRef: buttonRef,
1668
1697
  overlayRef,
@@ -1676,9 +1705,10 @@ var Select = (_a) => {
1676
1705
  focusVisible: isFocusVisible,
1677
1706
  expanded: state.isOpen
1678
1707
  });
1679
- return /* @__PURE__ */ import_react45.default.createElement(FieldBase, {
1708
+ return /* @__PURE__ */ import_react46.default.createElement(FieldBase, {
1680
1709
  variant,
1681
1710
  size,
1711
+ width,
1682
1712
  label: props.label,
1683
1713
  labelProps: __spreadValues({ as: "span" }, labelProps),
1684
1714
  description: props.description,
@@ -1689,13 +1719,13 @@ var Select = (_a) => {
1689
1719
  stateProps,
1690
1720
  disabled,
1691
1721
  required
1692
- }, /* @__PURE__ */ import_react45.default.createElement(import_select.HiddenSelect, {
1722
+ }, /* @__PURE__ */ import_react46.default.createElement(import_select.HiddenSelect, {
1693
1723
  state,
1694
1724
  triggerRef: buttonRef,
1695
1725
  label: props.label,
1696
1726
  name: props.name,
1697
1727
  isDisabled: disabled
1698
- }), /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, __spreadValues(__spreadValues({
1728
+ }), /* @__PURE__ */ import_react46.default.createElement(import_system32.Box, __spreadValues(__spreadValues({
1699
1729
  as: "button",
1700
1730
  __baseCSS: {
1701
1731
  display: "flex",
@@ -1706,29 +1736,29 @@ var Select = (_a) => {
1706
1736
  },
1707
1737
  css: styles.button,
1708
1738
  ref: buttonRef
1709
- }, (0, import_utils8.mergeProps)(buttonProps, focusProps)), stateProps), /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, __spreadValues({
1739
+ }, (0, import_utils8.mergeProps)(buttonProps, focusProps)), stateProps), /* @__PURE__ */ import_react46.default.createElement(import_system32.Box, __spreadValues({
1710
1740
  css: {
1711
1741
  overflow: "hidden",
1712
1742
  whiteSpace: "nowrap"
1713
1743
  }
1714
- }, valueProps), state.selectedItem ? state.selectedItem.rendered : props.placeholder), /* @__PURE__ */ import_react45.default.createElement(Chevron, {
1744
+ }, valueProps), state.selectedItem ? state.selectedItem.rendered : props.placeholder), /* @__PURE__ */ import_react46.default.createElement(Chevron, {
1715
1745
  css: styles.icon
1716
- })), /* @__PURE__ */ import_react45.default.createElement(Popover, __spreadValues({
1746
+ })), /* @__PURE__ */ import_react46.default.createElement(Popover, __spreadValues({
1717
1747
  open: state.isOpen,
1718
1748
  onClose: state.close,
1719
1749
  dismissable: true,
1720
1750
  shouldCloseOnBlur: true,
1721
1751
  minWidth: buttonRef.current ? buttonRef.current.offsetWidth : void 0,
1722
1752
  ref: overlayRef
1723
- }, positionProps), /* @__PURE__ */ import_react45.default.createElement(import_focus8.FocusScope, {
1753
+ }, positionProps), /* @__PURE__ */ import_react46.default.createElement(import_focus8.FocusScope, {
1724
1754
  restoreFocus: true
1725
- }, /* @__PURE__ */ import_react45.default.createElement(import_overlays8.DismissButton, {
1755
+ }, /* @__PURE__ */ import_react46.default.createElement(import_overlays8.DismissButton, {
1726
1756
  onDismiss: state.close
1727
- }), /* @__PURE__ */ import_react45.default.createElement(ListBox, __spreadValues({
1757
+ }), /* @__PURE__ */ import_react46.default.createElement(ListBox, __spreadValues({
1728
1758
  state,
1729
1759
  variant,
1730
1760
  size
1731
- }, menuProps)), /* @__PURE__ */ import_react45.default.createElement(import_overlays8.DismissButton, {
1761
+ }, menuProps)), /* @__PURE__ */ import_react46.default.createElement(import_overlays8.DismissButton, {
1732
1762
  onDismiss: state.close
1733
1763
  }))));
1734
1764
  };
@@ -1736,14 +1766,14 @@ Select.Option = import_collections2.Item;
1736
1766
  Select.Section = import_collections2.Section;
1737
1767
 
1738
1768
  // src/Slider/Slider.tsx
1739
- var import_react47 = __toESM(require("react"));
1769
+ var import_react48 = __toESM(require("react"));
1740
1770
  var import_slider2 = require("@react-aria/slider");
1741
1771
  var import_slider3 = require("@react-stately/slider");
1742
1772
  var import_i18n3 = require("@react-aria/i18n");
1743
1773
  var import_system34 = require("@marigold/system");
1744
1774
 
1745
1775
  // src/Slider/Thumb.tsx
1746
- var import_react46 = __toESM(require("react"));
1776
+ var import_react47 = __toESM(require("react"));
1747
1777
  var import_slider = require("@react-aria/slider");
1748
1778
  var import_utils9 = require("@react-aria/utils");
1749
1779
  var import_system33 = require("@marigold/system");
@@ -1756,7 +1786,7 @@ var import_focus9 = require("@react-aria/focus");
1756
1786
  var Thumb = (_a) => {
1757
1787
  var _b = _a, { state, trackRef, styles } = _b, props = __objRest(_b, ["state", "trackRef", "styles"]);
1758
1788
  const { disabled } = props;
1759
- const inputRef = import_react46.default.useRef(null);
1789
+ const inputRef = import_react47.default.useRef(null);
1760
1790
  const { isFocusVisible, focusProps, isFocused } = (0, import_focus9.useFocusRing)();
1761
1791
  const focused = isFocused || isFocusVisible || state.isThumbDragging(0);
1762
1792
  const stateProps = (0, import_system33.useStateProps)({
@@ -1769,19 +1799,19 @@ var Thumb = (_a) => {
1769
1799
  inputRef,
1770
1800
  isDisabled: disabled
1771
1801
  }, state);
1772
- (0, import_react46.useEffect)(() => {
1802
+ (0, import_react47.useEffect)(() => {
1773
1803
  state.setThumbEditable(0, !disabled);
1774
1804
  }, [disabled, state]);
1775
- return /* @__PURE__ */ import_react46.default.createElement(import_system.Box, {
1805
+ return /* @__PURE__ */ import_react47.default.createElement(import_system.Box, {
1776
1806
  __baseCSS: {
1777
1807
  position: "absolute",
1778
1808
  top: 16,
1779
1809
  transform: "translateX(-50%)",
1780
1810
  left: `${state.getThumbPercent(0) * 100}%`
1781
1811
  }
1782
- }, /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({}, thumbProps), {
1812
+ }, /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({}, thumbProps), {
1783
1813
  __baseCSS: styles
1784
- }), stateProps), /* @__PURE__ */ import_react46.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues({
1814
+ }), stateProps), /* @__PURE__ */ import_react47.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues({
1785
1815
  as: "input",
1786
1816
  type: "range",
1787
1817
  ref: inputRef
@@ -1790,32 +1820,41 @@ var Thumb = (_a) => {
1790
1820
 
1791
1821
  // src/Slider/Slider.tsx
1792
1822
  var Slider = (_a) => {
1793
- var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
1823
+ var _b = _a, {
1824
+ variant,
1825
+ size,
1826
+ width = "100%"
1827
+ } = _b, props = __objRest(_b, [
1828
+ "variant",
1829
+ "size",
1830
+ "width"
1831
+ ]);
1794
1832
  const { formatOptions } = props;
1795
- const trackRef = (0, import_react47.useRef)(null);
1833
+ const trackRef = (0, import_react48.useRef)(null);
1796
1834
  const numberFormatter = (0, import_i18n3.useNumberFormatter)(formatOptions);
1797
1835
  const state = (0, import_slider3.useSliderState)(__spreadProps(__spreadValues({}, props), { numberFormatter }));
1798
1836
  const { groupProps, trackProps, labelProps, outputProps } = (0, import_slider2.useSlider)(__spreadValues({
1799
1837
  label: props.children
1800
1838
  }, props), state, trackRef);
1801
1839
  const styles = (0, import_system34.useComponentStyles)("Slider", { variant, size }, { parts: ["track", "thumb", "label", "output"] });
1802
- return /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues({
1840
+ return /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadValues({
1803
1841
  __baseCSS: {
1804
1842
  display: "flex",
1805
1843
  flexDirection: "column",
1806
- touchAction: "none"
1844
+ touchAction: "none",
1845
+ width
1807
1846
  }
1808
- }, groupProps), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, {
1847
+ }, groupProps), /* @__PURE__ */ import_react48.default.createElement(import_system.Box, {
1809
1848
  __baseCSS: { display: "flex", alignSelf: "stretch" }
1810
- }, props.children && /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues({
1849
+ }, props.children && /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadValues({
1811
1850
  as: "label",
1812
1851
  __baseCSS: styles.label
1813
- }, labelProps), props.children), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1852
+ }, labelProps), props.children), /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1814
1853
  as: "output"
1815
1854
  }, outputProps), {
1816
1855
  __baseCSS: { flex: "1 0 auto", textAlign: "end" },
1817
1856
  css: styles.output
1818
- }), state.getThumbValueLabel(0))), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, trackProps), {
1857
+ }), state.getThumbValueLabel(0))), /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, trackProps), {
1819
1858
  ref: trackRef,
1820
1859
  __baseCSS: {
1821
1860
  position: "relative",
@@ -1823,9 +1862,9 @@ var Slider = (_a) => {
1823
1862
  width: "100%",
1824
1863
  cursor: props.disabled ? "not-allowed" : "pointer"
1825
1864
  }
1826
- }), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, {
1865
+ }), /* @__PURE__ */ import_react48.default.createElement(import_system.Box, {
1827
1866
  __baseCSS: styles.track
1828
- }), /* @__PURE__ */ import_react47.default.createElement(Thumb, {
1867
+ }), /* @__PURE__ */ import_react48.default.createElement(Thumb, {
1829
1868
  state,
1830
1869
  trackRef,
1831
1870
  disabled: props.disabled,
@@ -1833,42 +1872,64 @@ var Slider = (_a) => {
1833
1872
  })));
1834
1873
  };
1835
1874
 
1875
+ // src/Split/Split.tsx
1876
+ var import_react49 = __toESM(require("react"));
1877
+ var import_system35 = require("@marigold/system");
1878
+ var Split = (props) => /* @__PURE__ */ import_react49.default.createElement(import_system35.Box, __spreadProps(__spreadValues({}, props), {
1879
+ role: "separator",
1880
+ css: { flexGrow: 1 }
1881
+ }));
1882
+
1836
1883
  // src/Stack/Stack.tsx
1837
- var import_react48 = __toESM(require("react"));
1838
- var ALIGNMENT3 = {
1884
+ var import_react50 = __toESM(require("react"));
1885
+ var ALIGNMENT_X2 = {
1839
1886
  left: "flex-start",
1840
1887
  center: "center",
1841
1888
  right: "flex-end"
1842
1889
  };
1890
+ var ALIGNMENT_Y2 = {
1891
+ top: "flex-start",
1892
+ center: "center",
1893
+ bottom: "flex-end"
1894
+ };
1843
1895
  var Stack = (_a) => {
1844
1896
  var _b = _a, {
1897
+ children,
1845
1898
  space = "none",
1846
- align = "left",
1847
- children
1899
+ alignX = "left",
1900
+ alignY = "top",
1901
+ stretch = false
1848
1902
  } = _b, props = __objRest(_b, [
1903
+ "children",
1849
1904
  "space",
1850
- "align",
1851
- "children"
1905
+ "alignX",
1906
+ "alignY",
1907
+ "stretch"
1852
1908
  ]);
1853
- return /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1854
- display: "flex",
1855
- flexDirection: "column",
1856
- alignItems: ALIGNMENT3[align],
1857
- p: "0",
1858
- css: { gap: space }
1859
- }), children);
1909
+ return /* @__PURE__ */ import_react50.default.createElement(import_system.Box, __spreadValues({
1910
+ css: {
1911
+ display: "flex",
1912
+ flexDirection: "column",
1913
+ p: 0,
1914
+ gap: space,
1915
+ alignItems: ALIGNMENT_X2[alignX],
1916
+ justifyContent: ALIGNMENT_Y2[alignY],
1917
+ blockSize: stretch ? "100%" : "auto"
1918
+ }
1919
+ }, props), children);
1860
1920
  };
1861
1921
 
1862
1922
  // src/Switch/Switch.tsx
1863
- var import_react49 = __toESM(require("react"));
1923
+ var import_react51 = __toESM(require("react"));
1864
1924
  var import_focus10 = require("@react-aria/focus");
1865
1925
  var import_switch = require("@react-aria/switch");
1866
1926
  var import_toggle2 = require("@react-stately/toggle");
1867
- var import_system35 = require("@marigold/system");
1927
+ var import_system36 = require("@marigold/system");
1868
1928
  var Switch = (_a) => {
1869
1929
  var _b = _a, {
1870
1930
  variant,
1871
1931
  size,
1932
+ width = "100%",
1872
1933
  checked,
1873
1934
  disabled,
1874
1935
  readOnly,
@@ -1876,12 +1937,13 @@ var Switch = (_a) => {
1876
1937
  } = _b, rest = __objRest(_b, [
1877
1938
  "variant",
1878
1939
  "size",
1940
+ "width",
1879
1941
  "checked",
1880
1942
  "disabled",
1881
1943
  "readOnly",
1882
1944
  "defaultChecked"
1883
1945
  ]);
1884
- const ref = (0, import_react49.useRef)(null);
1946
+ const ref = (0, import_react51.useRef)(null);
1885
1947
  const props = __spreadValues({
1886
1948
  isSelected: checked,
1887
1949
  isDisabled: disabled,
@@ -1891,24 +1953,25 @@ var Switch = (_a) => {
1891
1953
  const state = (0, import_toggle2.useToggleState)(props);
1892
1954
  const { inputProps } = (0, import_switch.useSwitch)(props, state, ref);
1893
1955
  const { isFocusVisible, focusProps } = (0, import_focus10.useFocusRing)();
1894
- const stateProps = (0, import_system35.useStateProps)({
1956
+ const stateProps = (0, import_system36.useStateProps)({
1895
1957
  checked: state.isSelected,
1896
1958
  disabled,
1897
1959
  readOnly,
1898
1960
  focus: isFocusVisible
1899
1961
  });
1900
- const styles = (0, import_system35.useComponentStyles)("Switch", { variant, size }, { parts: ["container", "label", "track", "thumb"] });
1901
- return /* @__PURE__ */ import_react49.default.createElement(import_system.Box, {
1962
+ const styles = (0, import_system36.useComponentStyles)("Switch", { variant, size }, { parts: ["container", "label", "track", "thumb"] });
1963
+ return /* @__PURE__ */ import_react51.default.createElement(import_system.Box, {
1902
1964
  as: "label",
1903
1965
  __baseCSS: {
1904
1966
  display: "flex",
1905
1967
  alignItems: "center",
1906
1968
  justifyContent: "space-between",
1907
1969
  gap: "1ch",
1908
- position: "relative"
1970
+ position: "relative",
1971
+ width
1909
1972
  },
1910
1973
  css: styles.container
1911
- }, /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1974
+ }, /* @__PURE__ */ import_react51.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1912
1975
  as: "input",
1913
1976
  ref,
1914
1977
  css: {
@@ -1921,9 +1984,9 @@ var Switch = (_a) => {
1921
1984
  opacity: 1e-4,
1922
1985
  cursor: inputProps.disabled ? "not-allowed" : "pointer"
1923
1986
  }
1924
- }, inputProps), focusProps)), props.children && /* @__PURE__ */ import_react49.default.createElement(import_system.Box, {
1987
+ }, inputProps), focusProps)), props.children && /* @__PURE__ */ import_react51.default.createElement(import_system.Box, {
1925
1988
  css: styles.label
1926
- }, props.children), /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues({
1989
+ }, props.children), /* @__PURE__ */ import_react51.default.createElement(import_system.Box, __spreadValues({
1927
1990
  __baseCSS: {
1928
1991
  position: "relative",
1929
1992
  width: 48,
@@ -1932,7 +1995,7 @@ var Switch = (_a) => {
1932
1995
  borderRadius: 20
1933
1996
  },
1934
1997
  css: styles.track
1935
- }, stateProps), /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues({
1998
+ }, stateProps), /* @__PURE__ */ import_react51.default.createElement(import_system.Box, __spreadValues({
1936
1999
  __baseCSS: {
1937
2000
  display: "block",
1938
2001
  position: "absolute",
@@ -1954,233 +2017,350 @@ var Switch = (_a) => {
1954
2017
  };
1955
2018
 
1956
2019
  // src/Table/Table.tsx
1957
- var import_react56 = __toESM(require("react"));
1958
- var import_table6 = require("@react-aria/table");
1959
- var import_table7 = require("@react-stately/table");
1960
- var import_system41 = require("@marigold/system");
2020
+ var import_react61 = __toESM(require("react"));
2021
+ var import_table9 = require("@react-aria/table");
2022
+ var import_table10 = require("@react-stately/table");
2023
+ var import_system42 = require("@marigold/system");
2024
+
2025
+ // src/Table/Context.tsx
2026
+ var import_react52 = require("react");
2027
+ var TableContext = (0, import_react52.createContext)({});
2028
+ var useTableContext = () => (0, import_react52.useContext)(TableContext);
2029
+
2030
+ // src/Table/TableBody.tsx
2031
+ var import_react53 = __toESM(require("react"));
2032
+ var import_table = require("@react-aria/table");
2033
+ var TableBody = ({ children }) => {
2034
+ const { rowGroupProps } = (0, import_table.useTableRowGroup)();
2035
+ return /* @__PURE__ */ import_react53.default.createElement("tbody", __spreadValues({}, rowGroupProps), children);
2036
+ };
1961
2037
 
1962
2038
  // src/Table/TableCell.tsx
1963
- var import_react50 = __toESM(require("react"));
1964
- var import_checkbox4 = require("@react-aria/checkbox");
2039
+ var import_react54 = __toESM(require("react"));
2040
+ var import_table2 = require("@react-aria/table");
1965
2041
  var import_focus11 = require("@react-aria/focus");
1966
- var import_table = require("@react-aria/table");
1967
2042
  var import_utils10 = require("@react-aria/utils");
1968
- var import_toggle3 = require("@react-stately/toggle");
1969
- var import_system36 = require("@marigold/system");
1970
- var TableCell = ({
1971
- item: cell,
1972
- state,
1973
- isSelectionCell,
1974
- css
1975
- }) => {
1976
- const cellRef = (0, import_react50.useRef)(null);
1977
- const { gridCellProps } = (0, import_table.useTableCell)({ node: cell }, state, cellRef);
1978
- const { checkboxProps } = (0, import_table.useTableSelectionCheckbox)({ key: cell.parentKey }, state);
1979
- const inputRef = (0, import_react50.useRef)(null);
1980
- const { inputProps } = (0, import_checkbox4.useCheckbox)(checkboxProps, (0, import_toggle3.useToggleState)(checkboxProps), inputRef);
2043
+ var import_system37 = require("@marigold/system");
2044
+ var TableCell = ({ cell }) => {
2045
+ const ref = (0, import_react54.useRef)(null);
2046
+ const { state, styles } = useTableContext();
2047
+ const disabled = state.disabledKeys.has(cell.parentKey);
2048
+ const { gridCellProps } = (0, import_table2.useTableCell)({
2049
+ node: cell
2050
+ }, state, ref);
1981
2051
  const { focusProps, isFocusVisible } = (0, import_focus11.useFocusRing)();
1982
- const stateProps = (0, import_system36.useStateProps)({ focus: isFocusVisible });
1983
- return /* @__PURE__ */ import_react50.default.createElement(import_system.Box, __spreadValues(__spreadValues({
2052
+ const stateProps = (0, import_system37.useStateProps)({ disabled, focusVisible: isFocusVisible });
2053
+ return /* @__PURE__ */ import_react54.default.createElement(import_system37.Box, __spreadValues(__spreadValues({
1984
2054
  as: "td",
1985
- ref: cellRef,
1986
- __baseCSS: {
1987
- textAlign: isSelectionCell ? "center" : "left"
1988
- },
1989
- css
1990
- }, (0, import_utils10.mergeProps)(gridCellProps, focusProps)), stateProps), isSelectionCell ? /* @__PURE__ */ import_react50.default.createElement("input", __spreadValues({}, inputProps)) : /* @__PURE__ */ import_react50.default.createElement(import_react50.default.Fragment, null, cell.rendered));
2055
+ ref,
2056
+ css: styles.cell
2057
+ }, (0, import_utils10.mergeProps)(gridCellProps, focusProps)), stateProps), cell.rendered);
1991
2058
  };
1992
2059
 
1993
- // src/Table/TableColumnHeader.tsx
1994
- var import_react52 = __toESM(require("react"));
1995
- var import_checkbox5 = require("@react-aria/checkbox");
2060
+ // src/Table/TableCheckboxCell.tsx
2061
+ var import_react55 = __toESM(require("react"));
2062
+ var import_table3 = require("@react-aria/table");
1996
2063
  var import_focus12 = require("@react-aria/focus");
1997
- var import_table2 = require("@react-aria/table");
1998
2064
  var import_utils11 = require("@react-aria/utils");
1999
- var import_toggle4 = require("@react-stately/toggle");
2000
- var import_system39 = require("@marigold/system");
2001
-
2002
- // src/Text/Text.tsx
2003
- var import_react51 = __toESM(require("react"));
2004
- var import_system37 = require("@marigold/system");
2005
2065
  var import_system38 = require("@marigold/system");
2006
- var Text = (_a) => {
2007
- var _b = _a, {
2008
- variant,
2009
- size,
2010
- align,
2011
- color,
2012
- fontSize,
2013
- cursor,
2014
- outline,
2015
- children
2016
- } = _b, props = __objRest(_b, [
2017
- "variant",
2018
- "size",
2019
- "align",
2020
- "color",
2021
- "fontSize",
2022
- "cursor",
2023
- "outline",
2024
- "children"
2066
+
2067
+ // src/Table/utils.ts
2068
+ var mapCheckboxProps = (_a) => {
2069
+ var {
2070
+ checkboxProps: _b
2071
+ } = _a, _c = _b, {
2072
+ isIndeterminate,
2073
+ isSelected,
2074
+ isDisabled,
2075
+ defaultSelected
2076
+ } = _c, rest = __objRest(_c, [
2077
+ "isIndeterminate",
2078
+ "isSelected",
2079
+ "isDisabled",
2080
+ "defaultSelected"
2025
2081
  ]);
2026
- const styles = (0, import_system37.useComponentStyles)("Text", {
2027
- variant,
2028
- size
2029
- });
2030
- return /* @__PURE__ */ import_react51.default.createElement(import_system38.Box, __spreadProps(__spreadValues({
2031
- as: "p"
2032
- }, props), {
2033
- css: __spreadValues({ color, cursor, outline, fontSize, textAlign: align }, styles)
2034
- }), children);
2082
+ const checkboxProps = __spreadValues({
2083
+ disabled: isDisabled,
2084
+ checked: isSelected,
2085
+ defaultChecked: defaultSelected,
2086
+ indeterminate: isIndeterminate
2087
+ }, rest);
2088
+ return { checkboxProps };
2035
2089
  };
2036
2090
 
2037
- // src/Table/TableColumnHeader.tsx
2038
- var TableColumnHeader = ({
2039
- item: column,
2040
- state,
2041
- isSelectionColumn,
2042
- css
2043
- }) => {
2044
- const ref = (0, import_react52.useRef)(null);
2045
- const { columnHeaderProps } = (0, import_table2.useTableColumnHeader)({ node: column }, state, ref);
2046
- const { checkboxProps } = (0, import_table2.useTableSelectAllCheckbox)(state);
2047
- const inputRef = (0, import_react52.useRef)(null);
2048
- const { inputProps } = (0, import_checkbox5.useCheckbox)(checkboxProps, (0, import_toggle4.useToggleState)(checkboxProps), inputRef);
2091
+ // src/Table/TableCheckboxCell.tsx
2092
+ var TableCheckboxCell = ({ cell }) => {
2093
+ const ref = (0, import_react55.useRef)(null);
2094
+ const { state, styles } = useTableContext();
2095
+ const disabled = state.disabledKeys.has(cell.parentKey);
2096
+ const { gridCellProps } = (0, import_table3.useTableCell)({
2097
+ node: cell
2098
+ }, state, ref);
2099
+ const { checkboxProps } = mapCheckboxProps((0, import_table3.useTableSelectionCheckbox)({ key: cell.parentKey }, state));
2049
2100
  const { focusProps, isFocusVisible } = (0, import_focus12.useFocusRing)();
2050
- const stateProps = (0, import_system39.useStateProps)({ focus: isFocusVisible });
2051
- return /* @__PURE__ */ import_react52.default.createElement(import_system.Box, __spreadValues(__spreadValues({
2101
+ const stateProps = (0, import_system38.useStateProps)({ disabled, focusVisible: isFocusVisible });
2102
+ return /* @__PURE__ */ import_react55.default.createElement(import_system38.Box, __spreadValues(__spreadValues({
2103
+ as: "td",
2104
+ ref,
2105
+ __baseCSS: {
2106
+ textAlign: "center",
2107
+ verticalAlign: "middle",
2108
+ lineHeight: 1
2109
+ },
2110
+ css: styles.cell
2111
+ }, (0, import_utils11.mergeProps)(gridCellProps, focusProps)), stateProps), /* @__PURE__ */ import_react55.default.createElement(Checkbox, __spreadValues({}, checkboxProps)));
2112
+ };
2113
+
2114
+ // src/Table/TableColumnHeader.tsx
2115
+ var import_react56 = __toESM(require("react"));
2116
+ var import_focus13 = require("@react-aria/focus");
2117
+ var import_interactions7 = require("@react-aria/interactions");
2118
+ var import_table4 = require("@react-aria/table");
2119
+ var import_utils13 = require("@react-aria/utils");
2120
+ var import_system39 = require("@marigold/system");
2121
+ var SortIndicator = ({
2122
+ direction = "ascending",
2123
+ visible
2124
+ }) => /* @__PURE__ */ import_react56.default.createElement(import_system39.Box, {
2125
+ as: "span",
2126
+ role: "presentation",
2127
+ "aria-hidden": "true",
2128
+ css: {
2129
+ color: "currentColor",
2130
+ paddingInlineStart: "0.5ch",
2131
+ visibility: visible ? "visible" : "hidden"
2132
+ }
2133
+ }, direction === "ascending" ? "\u25B2" : "\u25BC");
2134
+ var TableColumnHeader = ({ column }) => {
2135
+ var _a, _b;
2136
+ const ref = (0, import_react56.useRef)(null);
2137
+ const { state, styles } = useTableContext();
2138
+ const { columnHeaderProps } = (0, import_table4.useTableColumnHeader)({
2139
+ node: column
2140
+ }, state, ref);
2141
+ const { hoverProps, isHovered } = (0, import_interactions7.useHover)({});
2142
+ const { focusProps, isFocusVisible } = (0, import_focus13.useFocusRing)();
2143
+ const stateProps = (0, import_system39.useStateProps)({
2144
+ hover: isHovered,
2145
+ focusVisible: isFocusVisible
2146
+ });
2147
+ return /* @__PURE__ */ import_react56.default.createElement(import_system39.Box, __spreadValues(__spreadValues({
2052
2148
  as: "th",
2149
+ colSpan: column.colspan,
2053
2150
  ref,
2054
- __baseCSS: { textAlign: isSelectionColumn ? "center" : "left" },
2055
- css
2056
- }, (0, import_utils11.mergeProps)(columnHeaderProps, focusProps)), stateProps), isSelectionColumn ? /* @__PURE__ */ import_react52.default.createElement("input", __spreadProps(__spreadValues({}, inputProps), {
2057
- ref: inputRef
2058
- })) : /* @__PURE__ */ import_react52.default.createElement(Text, {
2059
- size: "xxsmall"
2060
- }, column.rendered));
2151
+ css: styles.header
2152
+ }, (0, import_utils13.mergeProps)(columnHeaderProps, hoverProps, focusProps)), stateProps), column.rendered, column.props.allowsSorting && /* @__PURE__ */ import_react56.default.createElement(SortIndicator, {
2153
+ direction: (_a = state.sortDescriptor) == null ? void 0 : _a.direction,
2154
+ visible: ((_b = state.sortDescriptor) == null ? void 0 : _b.column) === column.key
2155
+ }));
2156
+ };
2157
+
2158
+ // src/Table/TableHeader.tsx
2159
+ var import_react57 = __toESM(require("react"));
2160
+ var import_table5 = require("@react-aria/table");
2161
+ var TableHeader = ({ children }) => {
2162
+ const { rowGroupProps } = (0, import_table5.useTableRowGroup)();
2163
+ return /* @__PURE__ */ import_react57.default.createElement("thead", __spreadValues({}, rowGroupProps), children);
2061
2164
  };
2062
2165
 
2063
2166
  // src/Table/TableHeaderRow.tsx
2064
- var import_react53 = __toESM(require("react"));
2065
- var import_table3 = require("@react-aria/table");
2066
- var TableHeaderRow = ({
2067
- item,
2068
- state,
2069
- children
2070
- }) => {
2071
- const ref = (0, import_react53.useRef)(null);
2072
- const { rowProps } = (0, import_table3.useTableHeaderRow)({ node: item }, state, ref);
2073
- return /* @__PURE__ */ import_react53.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), {
2167
+ var import_react58 = __toESM(require("react"));
2168
+ var import_table6 = require("@react-aria/table");
2169
+ var TableHeaderRow = ({ item, children }) => {
2170
+ const { state } = useTableContext();
2171
+ const ref = (0, import_react58.useRef)(null);
2172
+ const { rowProps } = (0, import_table6.useTableHeaderRow)({ node: item }, state, ref);
2173
+ return /* @__PURE__ */ import_react58.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), {
2074
2174
  ref
2075
2175
  }), children);
2076
2176
  };
2077
2177
 
2078
2178
  // src/Table/TableRow.tsx
2079
- var import_react54 = __toESM(require("react"));
2080
- var import_focus13 = require("@react-aria/focus");
2081
- var import_table4 = require("@react-aria/table");
2082
- var import_utils12 = require("@react-aria/utils");
2179
+ var import_react59 = __toESM(require("react"));
2180
+ var import_focus14 = require("@react-aria/focus");
2181
+ var import_interactions8 = require("@react-aria/interactions");
2182
+ var import_table7 = require("@react-aria/table");
2183
+ var import_utils14 = require("@react-aria/utils");
2083
2184
  var import_system40 = require("@marigold/system");
2084
- var TableRow = ({ item, state, children, css }) => {
2085
- const ref = (0, import_react54.useRef)(null);
2086
- const isSelected = state.selectionManager.isSelected(item.key);
2087
- const { rowProps } = (0, import_table4.useTableRow)({
2088
- node: item
2185
+ var TableRow = ({ children, row }) => {
2186
+ const ref = (0, import_react59.useRef)(null);
2187
+ const { state, styles } = useTableContext();
2188
+ const { rowProps, isPressed } = (0, import_table7.useTableRow)({
2189
+ node: row
2089
2190
  }, state, ref);
2090
- const { focusProps, isFocusVisible } = (0, import_focus13.useFocusRing)();
2191
+ const disabled = state.disabledKeys.has(row.key);
2192
+ const selected = state.selectionManager.isSelected(row.key);
2193
+ const { focusProps, isFocusVisible } = (0, import_focus14.useFocusRing)({ within: true });
2194
+ const { hoverProps, isHovered } = (0, import_interactions8.useHover)({ isDisabled: disabled });
2091
2195
  const stateProps = (0, import_system40.useStateProps)({
2092
- focus: isFocusVisible,
2093
- checked: isSelected
2196
+ disabled,
2197
+ selected,
2198
+ hover: isHovered,
2199
+ focusVisible: isFocusVisible,
2200
+ active: isPressed
2094
2201
  });
2095
- return /* @__PURE__ */ import_react54.default.createElement(import_system.Box, __spreadValues(__spreadValues({
2202
+ return /* @__PURE__ */ import_react59.default.createElement(import_system40.Box, __spreadValues(__spreadValues({
2096
2203
  as: "tr",
2097
2204
  ref,
2098
- css
2099
- }, (0, import_utils12.mergeProps)(rowProps, focusProps)), stateProps), children);
2205
+ css: styles.row
2206
+ }, (0, import_utils14.mergeProps)(rowProps, focusProps, hoverProps)), stateProps), children);
2100
2207
  };
2101
2208
 
2102
- // src/Table/TableRowGroup.tsx
2103
- var import_react55 = __toESM(require("react"));
2104
- var import_table5 = require("@react-aria/table");
2105
- var TableRowGroup = ({
2106
- as: Element,
2107
- children
2108
- }) => {
2109
- const { rowGroupProps } = (0, import_table5.useTableRowGroup)();
2110
- return /* @__PURE__ */ import_react55.default.createElement(Element, __spreadValues({}, rowGroupProps), children);
2209
+ // src/Table/TableSelectAllCell.tsx
2210
+ var import_react60 = __toESM(require("react"));
2211
+ var import_focus15 = require("@react-aria/focus");
2212
+ var import_interactions9 = require("@react-aria/interactions");
2213
+ var import_table8 = require("@react-aria/table");
2214
+ var import_utils15 = require("@react-aria/utils");
2215
+ var import_system41 = require("@marigold/system");
2216
+ var TableSelectAllCell = ({ column }) => {
2217
+ const ref = (0, import_react60.useRef)(null);
2218
+ const { state, styles } = useTableContext();
2219
+ const { columnHeaderProps } = (0, import_table8.useTableColumnHeader)({
2220
+ node: column
2221
+ }, state, ref);
2222
+ const { checkboxProps } = mapCheckboxProps((0, import_table8.useTableSelectAllCheckbox)(state));
2223
+ const { hoverProps, isHovered } = (0, import_interactions9.useHover)({});
2224
+ const { focusProps, isFocusVisible } = (0, import_focus15.useFocusRing)();
2225
+ const stateProps = (0, import_system41.useStateProps)({
2226
+ hover: isHovered,
2227
+ focusVisible: isFocusVisible
2228
+ });
2229
+ return /* @__PURE__ */ import_react60.default.createElement(import_system41.Box, __spreadValues(__spreadValues({
2230
+ as: "th",
2231
+ ref,
2232
+ __baseCSS: {
2233
+ textAlign: "center",
2234
+ verticalAlign: "middle",
2235
+ lineHeight: 1
2236
+ },
2237
+ css: styles.header
2238
+ }, (0, import_utils15.mergeProps)(columnHeaderProps, hoverProps, focusProps)), stateProps), /* @__PURE__ */ import_react60.default.createElement(Checkbox, __spreadValues({}, checkboxProps)));
2111
2239
  };
2112
2240
 
2113
2241
  // src/Table/Table.tsx
2114
2242
  var Table = (_a) => {
2115
- var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
2116
- const showSelectionCheckboxes = props.selectionMode === "multiple" && props.selectionBehavior !== "replace";
2117
- const state = (0, import_table7.useTableState)(__spreadProps(__spreadValues({}, props), {
2118
- showSelectionCheckboxes
2243
+ var _b = _a, {
2244
+ variant,
2245
+ size,
2246
+ stretch
2247
+ } = _b, props = __objRest(_b, [
2248
+ "variant",
2249
+ "size",
2250
+ "stretch"
2251
+ ]);
2252
+ const tableRef = (0, import_react61.useRef)(null);
2253
+ const state = (0, import_table10.useTableState)(__spreadProps(__spreadValues({}, props), {
2254
+ showSelectionCheckboxes: props.selectionMode === "multiple" && props.selectionBehavior !== "replace"
2119
2255
  }));
2120
- const ref = (0, import_react56.useRef)(null);
2121
- const { gridProps } = (0, import_table6.useTable)(props, state, ref);
2122
- const styles = (0, import_system41.useComponentStyles)("Table", { variant, size }, { parts: ["table", "header", "row", "cell"] });
2123
- return /* @__PURE__ */ import_react56.default.createElement(import_system.Box, __spreadValues({
2256
+ const { gridProps } = (0, import_table9.useTable)(props, state, tableRef);
2257
+ const styles = (0, import_system42.useComponentStyles)("Table", { variant, size }, { parts: ["table", "header", "row", "cell"] });
2258
+ const { collection } = state;
2259
+ return /* @__PURE__ */ import_react61.default.createElement(TableContext.Provider, {
2260
+ value: { state, styles }
2261
+ }, /* @__PURE__ */ import_react61.default.createElement(import_system42.Box, __spreadValues({
2124
2262
  as: "table",
2125
- ref,
2126
- __baseCSS: styles.table
2127
- }, gridProps), /* @__PURE__ */ import_react56.default.createElement(TableRowGroup, {
2128
- as: "thead"
2129
- }, state.collection.headerRows.map((headerRow) => /* @__PURE__ */ import_react56.default.createElement(TableHeaderRow, {
2263
+ ref: tableRef,
2264
+ __baseCSS: {
2265
+ borderCollapse: "collapse",
2266
+ width: stretch ? "100%" : void 0
2267
+ },
2268
+ css: styles.table
2269
+ }, gridProps), /* @__PURE__ */ import_react61.default.createElement(TableHeader, null, collection.headerRows.map((headerRow) => /* @__PURE__ */ import_react61.default.createElement(TableHeaderRow, {
2130
2270
  key: headerRow.key,
2131
- item: headerRow,
2132
- state
2133
- }, [...headerRow.childNodes].map((column) => /* @__PURE__ */ import_react56.default.createElement(TableColumnHeader, {
2134
- key: column.key,
2135
- item: column,
2136
- state,
2137
- isSelectionColumn: column.props.isSelectionCell,
2138
- css: styles.header
2139
- }))))), /* @__PURE__ */ import_react56.default.createElement(TableRowGroup, {
2140
- as: "tbody"
2141
- }, [...state.collection.body.childNodes].map((row) => /* @__PURE__ */ import_react56.default.createElement(TableRow, {
2142
- css: styles.row,
2271
+ item: headerRow
2272
+ }, [...headerRow.childNodes].map((column) => {
2273
+ var _a2;
2274
+ return ((_a2 = column.props) == null ? void 0 : _a2.isSelectionCell) ? /* @__PURE__ */ import_react61.default.createElement(TableSelectAllCell, {
2275
+ key: column.key,
2276
+ column
2277
+ }) : /* @__PURE__ */ import_react61.default.createElement(TableColumnHeader, {
2278
+ key: column.key,
2279
+ column
2280
+ });
2281
+ })))), /* @__PURE__ */ import_react61.default.createElement(TableBody, null, [...collection.body.childNodes].map((row) => /* @__PURE__ */ import_react61.default.createElement(TableRow, {
2143
2282
  key: row.key,
2144
- item: row,
2145
- state
2146
- }, [...row.childNodes].map((cell) => /* @__PURE__ */ import_react56.default.createElement(TableCell, {
2147
- key: cell.key,
2148
- item: cell,
2149
- state,
2150
- isSelectionCell: cell.props.isSelectionCell,
2151
- css: styles.cell
2283
+ row
2284
+ }, [...row.childNodes].map((cell) => {
2285
+ var _a2;
2286
+ return ((_a2 = cell.props) == null ? void 0 : _a2.isSelectionCell) ? /* @__PURE__ */ import_react61.default.createElement(TableCheckboxCell, {
2287
+ key: cell.key,
2288
+ cell
2289
+ }) : /* @__PURE__ */ import_react61.default.createElement(TableCell, {
2290
+ key: cell.key,
2291
+ cell
2292
+ });
2152
2293
  }))))));
2153
2294
  };
2154
- Table.Body = import_table7.TableBody;
2155
- Table.Cell = import_table7.Cell;
2156
- Table.Column = import_table7.Column;
2157
- Table.Header = import_table7.TableHeader;
2158
- Table.Row = import_table7.Row;
2295
+ Table.Body = import_table10.TableBody;
2296
+ Table.Cell = import_table10.Cell;
2297
+ Table.Column = import_table10.Column;
2298
+ Table.Header = import_table10.TableHeader;
2299
+ Table.Row = import_table10.Row;
2300
+
2301
+ // src/Text/Text.tsx
2302
+ var import_react62 = __toESM(require("react"));
2303
+ var import_system43 = require("@marigold/system");
2304
+ var import_system44 = require("@marigold/system");
2305
+ var Text = (_a) => {
2306
+ var _b = _a, {
2307
+ variant,
2308
+ size,
2309
+ align,
2310
+ color,
2311
+ fontSize,
2312
+ cursor,
2313
+ outline,
2314
+ children
2315
+ } = _b, props = __objRest(_b, [
2316
+ "variant",
2317
+ "size",
2318
+ "align",
2319
+ "color",
2320
+ "fontSize",
2321
+ "cursor",
2322
+ "outline",
2323
+ "children"
2324
+ ]);
2325
+ const styles = (0, import_system43.useComponentStyles)("Text", {
2326
+ variant,
2327
+ size
2328
+ });
2329
+ return /* @__PURE__ */ import_react62.default.createElement(import_system44.Box, __spreadProps(__spreadValues({
2330
+ as: "p"
2331
+ }, props), {
2332
+ css: __spreadValues({ color, cursor, outline, fontSize, textAlign: align }, styles)
2333
+ }), children);
2334
+ };
2159
2335
 
2160
2336
  // src/TextArea/TextArea.tsx
2161
- var import_react57 = __toESM(require("react"));
2337
+ var import_react63 = __toESM(require("react"));
2162
2338
  var import_textfield = require("@react-aria/textfield");
2163
- var import_system42 = require("@marigold/system");
2164
- var import_interactions7 = require("@react-aria/interactions");
2165
- var import_focus14 = require("@react-aria/focus");
2339
+ var import_system45 = require("@marigold/system");
2340
+ var import_interactions10 = require("@react-aria/interactions");
2341
+ var import_focus16 = require("@react-aria/focus");
2166
2342
  var TextArea = (_a) => {
2167
2343
  var _b = _a, {
2344
+ variant,
2345
+ size,
2346
+ width,
2168
2347
  disabled,
2169
2348
  required,
2170
2349
  readOnly,
2171
2350
  error,
2172
- variant,
2173
- size
2351
+ rows
2174
2352
  } = _b, props = __objRest(_b, [
2353
+ "variant",
2354
+ "size",
2355
+ "width",
2175
2356
  "disabled",
2176
2357
  "required",
2177
2358
  "readOnly",
2178
2359
  "error",
2179
- "variant",
2180
- "size"
2360
+ "rows"
2181
2361
  ]);
2182
2362
  const { label, description, errorMessage } = props;
2183
- const ref = (0, import_react57.useRef)(null);
2363
+ const ref = (0, import_react63.useRef)(null);
2184
2364
  const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(__spreadValues({
2185
2365
  inputElementType: "textarea",
2186
2366
  isDisabled: disabled,
@@ -2188,17 +2368,17 @@ var TextArea = (_a) => {
2188
2368
  isReadOnly: readOnly,
2189
2369
  validationState: error ? "invalid" : "valid"
2190
2370
  }, props), ref);
2191
- const { hoverProps, isHovered } = (0, import_interactions7.useHover)({});
2192
- const { focusProps, isFocusVisible } = (0, import_focus14.useFocusRing)();
2193
- const stateProps = (0, import_system42.useStateProps)({
2371
+ const { hoverProps, isHovered } = (0, import_interactions10.useHover)({});
2372
+ const { focusProps, isFocusVisible } = (0, import_focus16.useFocusRing)();
2373
+ const stateProps = (0, import_system45.useStateProps)({
2194
2374
  hover: isHovered,
2195
2375
  focus: isFocusVisible,
2196
2376
  disabled,
2197
2377
  readOnly,
2198
2378
  error
2199
2379
  });
2200
- const styles = (0, import_system42.useComponentStyles)("TextArea", { variant, size });
2201
- return /* @__PURE__ */ import_react57.default.createElement(FieldBase, {
2380
+ const styles = (0, import_system45.useComponentStyles)("TextArea", { variant, size });
2381
+ return /* @__PURE__ */ import_react63.default.createElement(FieldBase, {
2202
2382
  label,
2203
2383
  labelProps,
2204
2384
  required,
@@ -2209,57 +2389,61 @@ var TextArea = (_a) => {
2209
2389
  errorMessageProps,
2210
2390
  stateProps,
2211
2391
  variant,
2212
- size
2213
- }, /* @__PURE__ */ import_react57.default.createElement(import_system42.Box, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2392
+ size,
2393
+ width
2394
+ }, /* @__PURE__ */ import_react63.default.createElement(import_system45.Box, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2214
2395
  as: "textarea",
2215
2396
  css: styles,
2216
- ref
2397
+ ref,
2398
+ rows
2217
2399
  }, inputProps), focusProps), hoverProps), stateProps)));
2218
2400
  };
2219
2401
 
2220
2402
  // src/TextField/TextField.tsx
2221
- var import_react58 = __toESM(require("react"));
2222
- var import_interactions8 = require("@react-aria/interactions");
2223
- var import_focus15 = require("@react-aria/focus");
2403
+ var import_react64 = __toESM(require("react"));
2404
+ var import_interactions11 = require("@react-aria/interactions");
2405
+ var import_focus17 = require("@react-aria/focus");
2224
2406
  var import_textfield2 = require("@react-aria/textfield");
2225
- var import_system43 = require("@marigold/system");
2407
+ var import_system46 = require("@marigold/system");
2226
2408
  var TextField = (_a) => {
2227
2409
  var _b = _a, {
2410
+ variant,
2411
+ size,
2412
+ width,
2228
2413
  disabled,
2229
2414
  required,
2230
2415
  readOnly,
2231
- error,
2232
- variant,
2233
- size
2416
+ error
2234
2417
  } = _b, props = __objRest(_b, [
2418
+ "variant",
2419
+ "size",
2420
+ "width",
2235
2421
  "disabled",
2236
2422
  "required",
2237
2423
  "readOnly",
2238
- "error",
2239
- "variant",
2240
- "size"
2424
+ "error"
2241
2425
  ]);
2242
2426
  const { label, description, errorMessage, autoFocus } = props;
2243
- const ref = (0, import_react58.useRef)(null);
2427
+ const ref = (0, import_react64.useRef)(null);
2244
2428
  const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadValues({
2245
2429
  isDisabled: disabled,
2246
2430
  isRequired: required,
2247
2431
  isReadOnly: readOnly,
2248
2432
  validationState: error ? "invalid" : "valid"
2249
2433
  }, props), ref);
2250
- const { hoverProps, isHovered } = (0, import_interactions8.useHover)({});
2251
- const { focusProps, isFocusVisible } = (0, import_focus15.useFocusRing)({
2434
+ const { hoverProps, isHovered } = (0, import_interactions11.useHover)({});
2435
+ const { focusProps, isFocusVisible } = (0, import_focus17.useFocusRing)({
2252
2436
  isTextInput: true,
2253
2437
  autoFocus
2254
2438
  });
2255
- const stateProps = (0, import_system43.useStateProps)({
2439
+ const stateProps = (0, import_system46.useStateProps)({
2256
2440
  hover: isHovered,
2257
2441
  focus: isFocusVisible,
2258
2442
  disabled,
2259
2443
  readOnly,
2260
2444
  error
2261
2445
  });
2262
- return /* @__PURE__ */ import_react58.default.createElement(FieldBase, {
2446
+ return /* @__PURE__ */ import_react64.default.createElement(FieldBase, {
2263
2447
  label,
2264
2448
  labelProps,
2265
2449
  required,
@@ -2270,8 +2454,9 @@ var TextField = (_a) => {
2270
2454
  errorMessageProps,
2271
2455
  stateProps,
2272
2456
  variant,
2273
- size
2274
- }, /* @__PURE__ */ import_react58.default.createElement(Input, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2457
+ size,
2458
+ width
2459
+ }, /* @__PURE__ */ import_react64.default.createElement(Input, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2275
2460
  ref,
2276
2461
  variant,
2277
2462
  size
@@ -2279,10 +2464,10 @@ var TextField = (_a) => {
2279
2464
  };
2280
2465
 
2281
2466
  // src/Tiles/Tiles.tsx
2282
- var import_react59 = __toESM(require("react"));
2283
- var Tiles = import_react59.default.forwardRef(function Tiles2(_a, ref) {
2467
+ var import_react65 = __toESM(require("react"));
2468
+ var Tiles = import_react65.default.forwardRef((_a, ref) => {
2284
2469
  var _b = _a, { space = "none", itemMinWidth = "250px", children } = _b, props = __objRest(_b, ["space", "itemMinWidth", "children"]);
2285
- return /* @__PURE__ */ import_react59.default.createElement(import_system.Box, __spreadValues({
2470
+ return /* @__PURE__ */ import_react65.default.createElement(import_system.Box, __spreadValues({
2286
2471
  ref,
2287
2472
  display: "grid",
2288
2473
  __baseCSS: {
@@ -2293,50 +2478,95 @@ var Tiles = import_react59.default.forwardRef(function Tiles2(_a, ref) {
2293
2478
  });
2294
2479
 
2295
2480
  // src/Tooltip/Tooltip.tsx
2296
- var import_react61 = __toESM(require("react"));
2481
+ var import_react68 = __toESM(require("react"));
2297
2482
  var import_tooltip3 = require("@react-aria/tooltip");
2298
- var import_utils13 = require("@react-aria/utils");
2483
+ var import_system47 = require("@marigold/system");
2484
+
2485
+ // src/Tooltip/Context.ts
2486
+ var import_react66 = require("react");
2487
+ var TooltipContext = (0, import_react66.createContext)({});
2488
+ var useTooltipContext = () => (0, import_react66.useContext)(TooltipContext);
2299
2489
 
2300
2490
  // src/Tooltip/TooltipTrigger.tsx
2301
- var import_react60 = __toESM(require("react"));
2302
- var import_focus16 = require("@react-aria/focus");
2491
+ var import_react67 = __toESM(require("react"));
2492
+ var import_focus18 = require("@react-aria/focus");
2493
+ var import_overlays9 = require("@react-aria/overlays");
2303
2494
  var import_tooltip = require("@react-aria/tooltip");
2304
2495
  var import_tooltip2 = require("@react-stately/tooltip");
2305
- var TooltipContext = import_react60.default.createContext({});
2306
2496
  var TooltipTrigger = (_a) => {
2307
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
2308
- const [trigger, tooltip] = import_react60.default.Children.toArray(children);
2497
+ var _b = _a, {
2498
+ disabled,
2499
+ open,
2500
+ delay = 1e3,
2501
+ placement = "top",
2502
+ children
2503
+ } = _b, rest = __objRest(_b, [
2504
+ "disabled",
2505
+ "open",
2506
+ "delay",
2507
+ "placement",
2508
+ "children"
2509
+ ]);
2510
+ const [tooltipTrigger, tooltip] = import_react67.default.Children.toArray(children);
2511
+ const props = __spreadProps(__spreadValues({}, rest), {
2512
+ isDisabled: disabled,
2513
+ isOpen: open,
2514
+ delay,
2515
+ placement
2516
+ });
2517
+ const tooltipTriggerRef = (0, import_react67.useRef)(null);
2518
+ const overlayRef = (0, import_react67.useRef)(null);
2309
2519
  const state = (0, import_tooltip2.useTooltipTriggerState)(props);
2310
- const tooltipTriggerRef = (0, import_react60.useRef)();
2311
- const { triggerProps, tooltipProps } = (0, import_tooltip.useTooltipTrigger)({}, state, tooltipTriggerRef);
2312
- return /* @__PURE__ */ import_react60.default.createElement(import_focus16.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
2520
+ const { triggerProps, tooltipProps } = (0, import_tooltip.useTooltipTrigger)(props, state, tooltipTriggerRef);
2521
+ const {
2522
+ overlayProps: positionProps,
2523
+ placement: overlayPlacement,
2524
+ arrowProps
2525
+ } = (0, import_overlays9.useOverlayPosition)({
2526
+ placement: props.placement,
2527
+ targetRef: tooltipTriggerRef,
2528
+ offset: props.offset,
2529
+ crossOffset: props.crossOffset,
2530
+ isOpen: state.isOpen,
2531
+ overlayRef
2532
+ });
2533
+ return /* @__PURE__ */ import_react67.default.createElement(import_focus18.FocusableProvider, __spreadValues({
2313
2534
  ref: tooltipTriggerRef
2314
- }), trigger, state.isOpen && /* @__PURE__ */ import_react60.default.createElement(TooltipContext.Provider, {
2315
- value: __spreadValues({
2316
- state
2317
- }, tooltipProps)
2318
- }, tooltip));
2535
+ }, triggerProps), tooltipTrigger, /* @__PURE__ */ import_react67.default.createElement(TooltipContext.Provider, {
2536
+ value: __spreadValues(__spreadValues({
2537
+ state,
2538
+ overlayRef,
2539
+ arrowProps,
2540
+ placement: overlayPlacement
2541
+ }, tooltipProps), positionProps)
2542
+ }, /* @__PURE__ */ import_react67.default.createElement(Overlay, {
2543
+ open: state.isOpen
2544
+ }, tooltip)));
2319
2545
  };
2320
2546
 
2321
2547
  // src/Tooltip/Tooltip.tsx
2322
- var Tooltip = (_a) => {
2323
- var _b = _a, {
2324
- variant = "",
2325
- children
2326
- } = _b, props = __objRest(_b, [
2327
- "variant",
2328
- "children"
2329
- ]);
2330
- const _a2 = (0, import_react61.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
2331
- const mergedProps = (0, import_utils13.mergeProps)(props, tooltipProviderProps);
2332
- const { tooltipProps } = (0, import_tooltip3.useTooltip)(mergedProps, state);
2333
- return /* @__PURE__ */ import_react61.default.createElement(import_system.Box, __spreadValues({
2334
- position: "relative"
2335
- }, tooltipProps), /* @__PURE__ */ import_react61.default.createElement(import_system.Box, __spreadValues({
2336
- position: "absolute",
2337
- variant: `tooltip.${variant}`
2338
- }, mergedProps), children));
2548
+ var Tooltip = ({ children, variant, size }) => {
2549
+ const _a = useTooltipContext(), { arrowProps, state, overlayRef, placement } = _a, rest = __objRest(_a, ["arrowProps", "state", "overlayRef", "placement"]);
2550
+ const { tooltipProps } = (0, import_tooltip3.useTooltip)({}, state);
2551
+ const styles = (0, import_system47.useComponentStyles)("Tooltip", { variant, size }, { parts: ["container", "arrow"] });
2552
+ return /* @__PURE__ */ import_react68.default.createElement(import_system47.Box, __spreadProps(__spreadValues(__spreadValues({}, tooltipProps), rest), {
2553
+ ref: overlayRef,
2554
+ css: styles.container,
2555
+ "data-placement": placement
2556
+ }), /* @__PURE__ */ import_react68.default.createElement("div", null, children), /* @__PURE__ */ import_react68.default.createElement(import_system47.Box, __spreadProps(__spreadValues({}, arrowProps), {
2557
+ __baseCSS: {
2558
+ position: "absolute",
2559
+ height: 0,
2560
+ width: 0,
2561
+ borderStyle: "solid",
2562
+ borderLeftColor: "transparent",
2563
+ borderRightColor: "transparent",
2564
+ borderBottomColor: "transparent"
2565
+ },
2566
+ css: styles.arrow
2567
+ })));
2339
2568
  };
2569
+ Tooltip.Trigger = TooltipTrigger;
2340
2570
  // Annotate the CommonJS export names for ESM import in node:
2341
2571
  0 && (module.exports = {
2342
2572
  Aside,
@@ -2373,6 +2603,7 @@ var Tooltip = (_a) => {
2373
2603
  SSRProvider,
2374
2604
  Select,
2375
2605
  Slider,
2606
+ Split,
2376
2607
  Stack,
2377
2608
  Switch,
2378
2609
  Table,
@@ -2382,8 +2613,6 @@ var Tooltip = (_a) => {
2382
2613
  ThemeProvider,
2383
2614
  Tiles,
2384
2615
  Tooltip,
2385
- TooltipContext,
2386
- TooltipTrigger,
2387
2616
  Underlay,
2388
2617
  VisuallyHidden,
2389
2618
  useCheckboxGroupContext,