@lumx/react 4.16.1-alpha.2 → 4.17.0-next.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/index.d.ts +131 -6
  2. package/index.js +1402 -567
  3. package/index.js.map +1 -1
  4. package/package.json +3 -3
package/index.js CHANGED
@@ -308,7 +308,7 @@ function modifier$1(baseName, modifiers) {
308
308
  * block('button', { active: true, disabled: false }); // 'button button--active'
309
309
  */
310
310
 
311
- function block$1a(baseName, modifiersOrAdditionalClasses, additionalClasses) {
311
+ function block$1c(baseName, modifiersOrAdditionalClasses, additionalClasses) {
312
312
  let modifiers;
313
313
  let classes;
314
314
  if (typeof modifiersOrAdditionalClasses === 'string' || Array.isArray(modifiersOrAdditionalClasses)) {
@@ -343,7 +343,7 @@ const ACTION_ELEMENT = `${PREFIX}__action`;
343
343
  const actionArea = Object.assign(/** Action area container class. Sets `position: relative`. */
344
344
  () => PREFIX, {
345
345
  /** Action element class. Adds a `::before` pseudo-element with `position: absolute; inset: 0` to expand the click area. */
346
- action: modifiers => block$1a(ACTION_ELEMENT, modifiers)
346
+ action: modifiers => block$1c(ACTION_ELEMENT, modifiers)
347
347
  });
348
348
 
349
349
  /** Resolve color & color variant from a `ColorWithVariants` and optionally a `ColorVariant`. */
@@ -465,8 +465,8 @@ const visuallyHidden = () => VISUALLY_HIDDEN;
465
465
  * element('my-button', 'icon', { active: true }); // 'my-button__icon my-button__icon--active'
466
466
  */
467
467
 
468
- function element$R(baseClass, elem, modifiersOrAdditionalClasses, additionalClasses) {
469
- return block$1a(`${baseClass}__${elem}`, modifiersOrAdditionalClasses, additionalClasses);
468
+ function element$T(baseClass, elem, modifiersOrAdditionalClasses, additionalClasses) {
469
+ return block$1c(`${baseClass}__${elem}`, modifiersOrAdditionalClasses, additionalClasses);
470
470
  }
471
471
 
472
472
  /**
@@ -474,10 +474,10 @@ function element$R(baseClass, elem, modifiersOrAdditionalClasses, additionalClas
474
474
  */
475
475
  function bem(baseName) {
476
476
  function blockFn(modifiersOrAdditionalClasses, additionalClasses) {
477
- return block$1a(baseName, modifiersOrAdditionalClasses, additionalClasses);
477
+ return block$1c(baseName, modifiersOrAdditionalClasses, additionalClasses);
478
478
  }
479
479
  function elementFn(elem, modifiersOrAdditionalClasses, additionalClasses) {
480
- return element$R(baseName, elem, modifiersOrAdditionalClasses, additionalClasses);
480
+ return element$T(baseName, elem, modifiersOrAdditionalClasses, additionalClasses);
481
481
  }
482
482
  return {
483
483
  block: blockFn,
@@ -557,15 +557,15 @@ const CONFIG$1 = {
557
557
  /**
558
558
  * Component display name.
559
559
  */
560
- const COMPONENT_NAME$1A = 'AlertDialog';
560
+ const COMPONENT_NAME$1F = 'AlertDialog';
561
561
 
562
562
  /**
563
563
  * Component default class name and class prefix.
564
564
  */
565
- const CLASSNAME$1y = 'lumx-alert-dialog';
565
+ const CLASSNAME$1C = 'lumx-alert-dialog';
566
566
  const {
567
- block: block$19
568
- } = bem(CLASSNAME$1y);
567
+ block: block$1b
568
+ } = bem(CLASSNAME$1C);
569
569
 
570
570
  /**
571
571
  * Component default props.
@@ -633,7 +633,7 @@ const AlertDialog$1 = props => {
633
633
  'aria-describedby': descriptionId,
634
634
  ...dialogProps
635
635
  },
636
- className: classnames(className, block$19({
636
+ className: classnames(className, block$1b({
637
637
  [`kind-${kind}`]: Boolean(kind)
638
638
  })),
639
639
  ...forwardedProps,
@@ -731,8 +731,8 @@ const AlertDialog = forwardRef((props, ref) => {
731
731
  ...forwardedProps
732
732
  });
733
733
  });
734
- AlertDialog.displayName = COMPONENT_NAME$1A;
735
- AlertDialog.className = CLASSNAME$1y;
734
+ AlertDialog.displayName = COMPONENT_NAME$1F;
735
+ AlertDialog.className = CLASSNAME$1C;
736
736
  AlertDialog.defaultProps = DEFAULT_PROPS$1h;
737
737
 
738
738
  /**
@@ -825,12 +825,12 @@ function useDisableStateProps(props) {
825
825
  /**
826
826
  * Component display name.
827
827
  */
828
- const COMPONENT_NAME$1z = 'Autocomplete';
828
+ const COMPONENT_NAME$1E = 'Autocomplete';
829
829
 
830
830
  /**
831
831
  * Component default class name and class prefix.
832
832
  */
833
- const CLASSNAME$1x = 'lumx-autocomplete';
833
+ const CLASSNAME$1B = 'lumx-autocomplete';
834
834
 
835
835
  /**
836
836
  * Component default props.
@@ -898,7 +898,7 @@ const Autocomplete = forwardRef((props, ref) => {
898
898
  return /*#__PURE__*/jsxs("div", {
899
899
  ref: ref,
900
900
  ...forwardedProps,
901
- className: classNames.join(className, CLASSNAME$1x),
901
+ className: classNames.join(className, CLASSNAME$1B),
902
902
  children: [/*#__PURE__*/jsx(TextField, {
903
903
  ...textFieldProps,
904
904
  chips: chips,
@@ -938,19 +938,19 @@ const Autocomplete = forwardRef((props, ref) => {
938
938
  })]
939
939
  });
940
940
  });
941
- Autocomplete.displayName = COMPONENT_NAME$1z;
942
- Autocomplete.className = CLASSNAME$1x;
941
+ Autocomplete.displayName = COMPONENT_NAME$1E;
942
+ Autocomplete.className = CLASSNAME$1B;
943
943
  Autocomplete.defaultProps = DEFAULT_PROPS$1g;
944
944
 
945
945
  /**
946
946
  * Component display name.
947
947
  */
948
- const COMPONENT_NAME$1y = 'AutocompleteMultiple';
948
+ const COMPONENT_NAME$1D = 'AutocompleteMultiple';
949
949
 
950
950
  /**
951
951
  * Component default class name and class prefix.
952
952
  */
953
- const CLASSNAME$1w = 'lumx-autocomplete-multiple';
953
+ const CLASSNAME$1A = 'lumx-autocomplete-multiple';
954
954
 
955
955
  /**
956
956
  * Component default props.
@@ -1031,7 +1031,7 @@ const AutocompleteMultiple = forwardRef((props, ref) => {
1031
1031
  ref: ref,
1032
1032
  ...forwardedProps,
1033
1033
  anchorToInput: anchorToInput,
1034
- className: classNames.join(className, CLASSNAME$1w),
1034
+ className: classNames.join(className, CLASSNAME$1A),
1035
1035
  name: name,
1036
1036
  value: value,
1037
1037
  onChange: onChange,
@@ -1064,23 +1064,23 @@ const AutocompleteMultiple = forwardRef((props, ref) => {
1064
1064
  children: children
1065
1065
  });
1066
1066
  });
1067
- AutocompleteMultiple.displayName = COMPONENT_NAME$1y;
1068
- AutocompleteMultiple.className = CLASSNAME$1w;
1067
+ AutocompleteMultiple.displayName = COMPONENT_NAME$1D;
1068
+ AutocompleteMultiple.className = CLASSNAME$1A;
1069
1069
  AutocompleteMultiple.defaultProps = DEFAULT_PROPS$1f;
1070
1070
 
1071
1071
  /**
1072
1072
  * Component display name.
1073
1073
  */
1074
- const COMPONENT_NAME$1x = 'Avatar';
1074
+ const COMPONENT_NAME$1C = 'Avatar';
1075
1075
 
1076
1076
  /**
1077
1077
  * Component default class name and class prefix.
1078
1078
  */
1079
- const CLASSNAME$1v = 'lumx-avatar';
1079
+ const CLASSNAME$1z = 'lumx-avatar';
1080
1080
  const {
1081
- block: block$18,
1082
- element: element$Q
1083
- } = bem(CLASSNAME$1v);
1081
+ block: block$1a,
1082
+ element: element$S
1083
+ } = bem(CLASSNAME$1z);
1084
1084
 
1085
1085
  /**
1086
1086
  * Component default props.
@@ -1110,15 +1110,15 @@ const Avatar$1 = props => {
1110
1110
  return /*#__PURE__*/jsxs("div", {
1111
1111
  ref: ref,
1112
1112
  ...forwardedProps,
1113
- className: classnames(className, block$18({
1113
+ className: classnames(className, block$1a({
1114
1114
  [`size-${size}`]: Boolean(size),
1115
1115
  [`theme-${theme}`]: Boolean(theme)
1116
1116
  })),
1117
1117
  children: [image, actions && /*#__PURE__*/jsx("div", {
1118
- className: element$Q('actions'),
1118
+ className: element$S('actions'),
1119
1119
  children: actions
1120
1120
  }), badge && /*#__PURE__*/jsx("div", {
1121
- className: element$Q('badge'),
1121
+ className: element$S('badge'),
1122
1122
  children: badge
1123
1123
  })]
1124
1124
  });
@@ -1159,7 +1159,7 @@ const Avatar = forwardRef((props, ref) => {
1159
1159
  image: /*#__PURE__*/jsx(Thumbnail, {
1160
1160
  linkProps: linkProps,
1161
1161
  linkAs: linkAs,
1162
- className: element$Q('thumbnail'),
1162
+ className: element$S('thumbnail'),
1163
1163
  onClick: onClick,
1164
1164
  onKeyPress: onKeyPress,
1165
1165
  ...thumbnailProps,
@@ -1171,22 +1171,22 @@ const Avatar = forwardRef((props, ref) => {
1171
1171
  })
1172
1172
  });
1173
1173
  });
1174
- Avatar.displayName = COMPONENT_NAME$1x;
1175
- Avatar.className = CLASSNAME$1v;
1174
+ Avatar.displayName = COMPONENT_NAME$1C;
1175
+ Avatar.className = CLASSNAME$1z;
1176
1176
  Avatar.defaultProps = DEFAULT_PROPS$1e;
1177
1177
 
1178
1178
  /**
1179
1179
  * Component display name.
1180
1180
  */
1181
- const COMPONENT_NAME$1w = 'Badge';
1181
+ const COMPONENT_NAME$1B = 'Badge';
1182
1182
 
1183
1183
  /**
1184
1184
  * Component default class name and class prefix.
1185
1185
  */
1186
- const CLASSNAME$1u = 'lumx-badge';
1186
+ const CLASSNAME$1y = 'lumx-badge';
1187
1187
  const {
1188
- block: block$17
1189
- } = bem(CLASSNAME$1u);
1188
+ block: block$19
1189
+ } = bem(CLASSNAME$1y);
1190
1190
 
1191
1191
  /**
1192
1192
  * Component default props.
@@ -1212,14 +1212,14 @@ const Badge$1 = props => {
1212
1212
  return /*#__PURE__*/jsx("div", {
1213
1213
  ref: ref,
1214
1214
  ...forwardedProps,
1215
- className: classnames(className, block$17({
1215
+ className: classnames(className, block$19({
1216
1216
  [`color-${color}`]: Boolean(color)
1217
1217
  })),
1218
1218
  children: children
1219
1219
  });
1220
1220
  };
1221
- Badge$1.displayName = COMPONENT_NAME$1w;
1222
- Badge$1.className = CLASSNAME$1u;
1221
+ Badge$1.displayName = COMPONENT_NAME$1B;
1222
+ Badge$1.className = CLASSNAME$1y;
1223
1223
  Badge$1.defaultProps = DEFAULT_PROPS$1d;
1224
1224
 
1225
1225
  /**
@@ -1243,12 +1243,12 @@ Badge.displayName = Badge$1.displayName;
1243
1243
  Badge.className = Badge$1.className;
1244
1244
  Badge.defaultProps = Badge$1.defaultProps;
1245
1245
 
1246
- const COMPONENT_NAME$1v = 'BadgeWrapper';
1247
- const CLASSNAME$1t = 'lumx-badge-wrapper';
1246
+ const COMPONENT_NAME$1A = 'BadgeWrapper';
1247
+ const CLASSNAME$1x = 'lumx-badge-wrapper';
1248
1248
  const {
1249
- block: block$16,
1250
- element: element$P
1251
- } = bem(CLASSNAME$1t);
1249
+ block: block$18,
1250
+ element: element$R
1251
+ } = bem(CLASSNAME$1x);
1252
1252
  const BadgeWrapper$1 = props => {
1253
1253
  const {
1254
1254
  badge,
@@ -1260,9 +1260,9 @@ const BadgeWrapper$1 = props => {
1260
1260
  return /*#__PURE__*/jsxs("div", {
1261
1261
  ref: ref,
1262
1262
  ...forwardedProps,
1263
- className: classnames(className, block$16()),
1263
+ className: classnames(className, block$18()),
1264
1264
  children: [children, badge && /*#__PURE__*/jsx("div", {
1265
- className: element$P('badge'),
1265
+ className: element$R('badge'),
1266
1266
  children: badge
1267
1267
  })]
1268
1268
  });
@@ -1274,8 +1274,8 @@ const BadgeWrapper = forwardRef((props, ref) => {
1274
1274
  ref
1275
1275
  });
1276
1276
  });
1277
- BadgeWrapper.displayName = COMPONENT_NAME$1v;
1278
- BadgeWrapper.className = CLASSNAME$1t;
1277
+ BadgeWrapper.displayName = COMPONENT_NAME$1A;
1278
+ BadgeWrapper.className = CLASSNAME$1x;
1279
1279
 
1280
1280
  /**
1281
1281
  * Render clickable element (link, button or custom element)
@@ -1325,7 +1325,7 @@ const RawClickable = props => {
1325
1325
  /**
1326
1326
  * Component display name.
1327
1327
  */
1328
- const COMPONENT_NAME$1u = 'ButtonRoot';
1328
+ const COMPONENT_NAME$1z = 'ButtonRoot';
1329
1329
  const BUTTON_WRAPPER_CLASSNAME = `lumx-button-wrapper`;
1330
1330
  const {
1331
1331
  block: buttonWrapperBlock
@@ -1423,7 +1423,7 @@ const ButtonRoot = props => {
1423
1423
  children
1424
1424
  });
1425
1425
  };
1426
- ButtonRoot.displayName = COMPONENT_NAME$1u;
1426
+ ButtonRoot.displayName = COMPONENT_NAME$1z;
1427
1427
  ButtonRoot.defaultProps = {};
1428
1428
 
1429
1429
  /**
@@ -1433,15 +1433,15 @@ ButtonRoot.defaultProps = {};
1433
1433
  /**
1434
1434
  * Component display name.
1435
1435
  */
1436
- const COMPONENT_NAME$1t = 'Button';
1436
+ const COMPONENT_NAME$1y = 'Button';
1437
1437
 
1438
1438
  /**
1439
1439
  * Component default class name and class prefix.
1440
1440
  */
1441
- const CLASSNAME$1s = 'lumx-button';
1441
+ const CLASSNAME$1w = 'lumx-button';
1442
1442
  const {
1443
1443
  modifier
1444
- } = bem(CLASSNAME$1s);
1444
+ } = bem(CLASSNAME$1w);
1445
1445
 
1446
1446
  /**
1447
1447
  * Component default props.
@@ -1478,8 +1478,8 @@ const Button$1 = props => {
1478
1478
  variant: 'button'
1479
1479
  });
1480
1480
  };
1481
- Button$1.displayName = COMPONENT_NAME$1t;
1482
- Button$1.className = CLASSNAME$1s;
1481
+ Button$1.displayName = COMPONENT_NAME$1y;
1482
+ Button$1.className = CLASSNAME$1w;
1483
1483
  Button$1.defaultProps = DEFAULT_PROPS$1c;
1484
1484
 
1485
1485
  /**
@@ -1553,21 +1553,21 @@ const Button = forwardRef((props, ref) => {
1553
1553
  })
1554
1554
  });
1555
1555
  });
1556
- Button.displayName = COMPONENT_NAME$1t;
1557
- Button.className = CLASSNAME$1s;
1556
+ Button.displayName = COMPONENT_NAME$1y;
1557
+ Button.className = CLASSNAME$1w;
1558
1558
  Button.defaultProps = DEFAULT_PROPS$1c;
1559
1559
 
1560
- const COMPONENT_NAME$1s = 'Icon';
1560
+ const COMPONENT_NAME$1x = 'Icon';
1561
1561
  const IconClassName = 'lumx-icon';
1562
1562
 
1563
1563
  /**
1564
1564
  * Defines the props of the component.
1565
1565
  */
1566
1566
 
1567
- const CLASSNAME$1r = IconClassName;
1567
+ const CLASSNAME$1v = IconClassName;
1568
1568
  const {
1569
- block: block$15
1570
- } = bem(CLASSNAME$1r);
1569
+ block: block$17
1570
+ } = bem(CLASSNAME$1v);
1571
1571
 
1572
1572
  /**
1573
1573
  * Component default props.
@@ -1621,7 +1621,7 @@ const Icon$1 = props => {
1621
1621
  return /*#__PURE__*/jsx("i", {
1622
1622
  ref: ref,
1623
1623
  ...forwardedProps,
1624
- className: classnames(className, block$15({
1624
+ className: classnames(className, block$17({
1625
1625
  [`color-${iconColor}`]: Boolean(iconColor),
1626
1626
  [`color-variant-${iconColorVariant}`]: Boolean(iconColorVariant),
1627
1627
  'has-shape': hasShape,
@@ -1650,19 +1650,19 @@ const Icon$1 = props => {
1650
1650
  })
1651
1651
  });
1652
1652
  };
1653
- Icon$1.displayName = COMPONENT_NAME$1s;
1654
- Icon$1.className = CLASSNAME$1r;
1653
+ Icon$1.displayName = COMPONENT_NAME$1x;
1654
+ Icon$1.className = CLASSNAME$1v;
1655
1655
  Icon$1.defaultProps = DEFAULT_PROPS$1b;
1656
1656
 
1657
1657
  /**
1658
1658
  * Component display name.
1659
1659
  */
1660
- const COMPONENT_NAME$1r = 'IconButton';
1660
+ const COMPONENT_NAME$1w = 'IconButton';
1661
1661
 
1662
1662
  /**
1663
1663
  * Component default class name and class prefix.
1664
1664
  */
1665
- const CLASSNAME$1q = 'lumx-icon-button';
1665
+ const CLASSNAME$1u = 'lumx-icon-button';
1666
1666
 
1667
1667
  /**
1668
1668
  * Component default props.
@@ -1703,8 +1703,8 @@ const IconButton$1 = props => {
1703
1703
  children: defaultChildren
1704
1704
  });
1705
1705
  };
1706
- IconButton$1.displayName = COMPONENT_NAME$1r;
1707
- IconButton$1.className = CLASSNAME$1q;
1706
+ IconButton$1.displayName = COMPONENT_NAME$1w;
1707
+ IconButton$1.className = CLASSNAME$1u;
1708
1708
  IconButton$1.defaultProps = DEFAULT_PROPS$1a;
1709
1709
 
1710
1710
  /**
@@ -1748,19 +1748,19 @@ const IconButton = forwardRef((props, ref) => {
1748
1748
  })
1749
1749
  });
1750
1750
  });
1751
- IconButton.displayName = COMPONENT_NAME$1r;
1752
- IconButton.className = CLASSNAME$1q;
1751
+ IconButton.displayName = COMPONENT_NAME$1w;
1752
+ IconButton.className = CLASSNAME$1u;
1753
1753
  IconButton.defaultProps = DEFAULT_PROPS$1a;
1754
1754
 
1755
1755
  /**
1756
1756
  * Component display name.
1757
1757
  */
1758
- const COMPONENT_NAME$1q = 'ButtonGroup';
1758
+ const COMPONENT_NAME$1v = 'ButtonGroup';
1759
1759
 
1760
1760
  /**
1761
1761
  * Component default class name and class prefix.
1762
1762
  */
1763
- const CLASSNAME$1p = 'lumx-button-group';
1763
+ const CLASSNAME$1t = 'lumx-button-group';
1764
1764
 
1765
1765
  /**
1766
1766
  * Component default props.
@@ -1781,12 +1781,12 @@ const ButtonGroup$1 = props => {
1781
1781
  } = props;
1782
1782
  return /*#__PURE__*/jsx("div", {
1783
1783
  ...forwardedProps,
1784
- className: classnames(className, CLASSNAME$1p),
1784
+ className: classnames(className, CLASSNAME$1t),
1785
1785
  children: children
1786
1786
  });
1787
1787
  };
1788
- ButtonGroup$1.displayName = COMPONENT_NAME$1q;
1789
- ButtonGroup$1.className = CLASSNAME$1p;
1788
+ ButtonGroup$1.displayName = COMPONENT_NAME$1v;
1789
+ ButtonGroup$1.className = CLASSNAME$1t;
1790
1790
  ButtonGroup$1.defaultProps = DEFAULT_PROPS$19;
1791
1791
 
1792
1792
  /**
@@ -1802,16 +1802,16 @@ const ButtonGroup = forwardRef((props, ref) => {
1802
1802
  ...props
1803
1803
  });
1804
1804
  });
1805
- ButtonGroup.displayName = COMPONENT_NAME$1q;
1806
- ButtonGroup.className = CLASSNAME$1p;
1805
+ ButtonGroup.displayName = COMPONENT_NAME$1v;
1806
+ ButtonGroup.className = CLASSNAME$1t;
1807
1807
  ButtonGroup.defaultProps = DEFAULT_PROPS$19;
1808
1808
 
1809
- const COMPONENT_NAME$1p = 'InputLabel';
1809
+ const COMPONENT_NAME$1u = 'InputLabel';
1810
1810
  const InputLabelClassName = 'lumx-input-label';
1811
- const CLASSNAME$1o = InputLabelClassName;
1811
+ const CLASSNAME$1s = InputLabelClassName;
1812
1812
  const {
1813
- block: block$14
1814
- } = bem(CLASSNAME$1o);
1813
+ block: block$16
1814
+ } = bem(CLASSNAME$1s);
1815
1815
  const DEFAULT_PROPS$18 = {};
1816
1816
 
1817
1817
  /**
@@ -1834,7 +1834,7 @@ function InputLabel$1(props) {
1834
1834
  ref: ref,
1835
1835
  ...forwardedProps,
1836
1836
  htmlFor: htmlFor,
1837
- className: classnames(className, block$14({
1837
+ className: classnames(className, block$16({
1838
1838
  'is-required': isRequired,
1839
1839
  [`theme-${theme}`]: Boolean(theme),
1840
1840
  'has-custom-typography': Boolean(typography$1)
@@ -1842,8 +1842,8 @@ function InputLabel$1(props) {
1842
1842
  children: children
1843
1843
  });
1844
1844
  }
1845
- InputLabel$1.displayName = COMPONENT_NAME$1p;
1846
- InputLabel$1.className = CLASSNAME$1o;
1845
+ InputLabel$1.displayName = COMPONENT_NAME$1u;
1846
+ InputLabel$1.className = CLASSNAME$1s;
1847
1847
  InputLabel$1.defaultProps = DEFAULT_PROPS$18;
1848
1848
 
1849
1849
  const INPUT_HELPER_CONFIGURATION = {
@@ -1858,17 +1858,17 @@ const INPUT_HELPER_CONFIGURATION = {
1858
1858
  }
1859
1859
  };
1860
1860
 
1861
- const COMPONENT_NAME$1o = 'InputHelper';
1861
+ const COMPONENT_NAME$1t = 'InputHelper';
1862
1862
  const InputHelperClassName = 'lumx-input-helper';
1863
1863
 
1864
1864
  /**
1865
1865
  * Defines the props of the component.
1866
1866
  */
1867
1867
 
1868
- const CLASSNAME$1n = InputHelperClassName;
1868
+ const CLASSNAME$1r = InputHelperClassName;
1869
1869
  const {
1870
- block: block$13
1871
- } = bem(CLASSNAME$1n);
1870
+ block: block$15
1871
+ } = bem(CLASSNAME$1r);
1872
1872
 
1873
1873
  /**
1874
1874
  * Component default props.
@@ -1895,15 +1895,15 @@ function InputHelper$1(props) {
1895
1895
  return /*#__PURE__*/jsx("p", {
1896
1896
  ref: ref,
1897
1897
  ...forwardedProps,
1898
- className: classnames(className, block$13({
1898
+ className: classnames(className, block$15({
1899
1899
  [`color-${color}`]: Boolean(color),
1900
1900
  [`theme-${theme}`]: Boolean(theme)
1901
1901
  })),
1902
1902
  children: children
1903
1903
  });
1904
1904
  }
1905
- InputHelper$1.displayName = COMPONENT_NAME$1o;
1906
- InputHelper$1.className = CLASSNAME$1n;
1905
+ InputHelper$1.displayName = COMPONENT_NAME$1t;
1906
+ InputHelper$1.className = CLASSNAME$1r;
1907
1907
  InputHelper$1.defaultProps = DEFAULT_PROPS$17;
1908
1908
 
1909
1909
  const INTERMEDIATE_STATE = 'intermediate';
@@ -1915,16 +1915,16 @@ const INTERMEDIATE_STATE = 'intermediate';
1915
1915
  /**
1916
1916
  * Component display name.
1917
1917
  */
1918
- const COMPONENT_NAME$1n = 'Checkbox';
1918
+ const COMPONENT_NAME$1s = 'Checkbox';
1919
1919
 
1920
1920
  /**
1921
1921
  * Component default class name and class prefix.
1922
1922
  */
1923
- const CLASSNAME$1m = 'lumx-checkbox';
1923
+ const CLASSNAME$1q = 'lumx-checkbox';
1924
1924
  const {
1925
- block: block$12,
1926
- element: element$O
1927
- } = bem(CLASSNAME$1m);
1925
+ block: block$14,
1926
+ element: element$Q
1927
+ } = bem(CLASSNAME$1q);
1928
1928
 
1929
1929
  /**
1930
1930
  * Checkbox component.
@@ -1960,7 +1960,7 @@ const Checkbox$1 = props => {
1960
1960
  return /*#__PURE__*/jsxs("div", {
1961
1961
  ref: ref,
1962
1962
  ...forwardedProps,
1963
- className: classnames(className, block$12({
1963
+ className: classnames(className, block$14({
1964
1964
  // Whether state is intermediate class name will "-checked"
1965
1965
  'is-checked': intermediateState ? true : isChecked,
1966
1966
  'is-disabled': isDisabled,
@@ -1968,12 +1968,12 @@ const Checkbox$1 = props => {
1968
1968
  [`theme-${theme}`]: Boolean(theme)
1969
1969
  })),
1970
1970
  children: [/*#__PURE__*/jsxs("div", {
1971
- className: element$O('input-wrapper'),
1971
+ className: element$Q('input-wrapper'),
1972
1972
  children: [/*#__PURE__*/jsx("input", {
1973
1973
  ref: inputRef,
1974
1974
  type: "checkbox",
1975
1975
  id: inputId,
1976
- className: element$O('input-native'),
1976
+ className: element$Q('input-native'),
1977
1977
  name: name,
1978
1978
  value: value,
1979
1979
  checked: isChecked,
@@ -1985,26 +1985,26 @@ const Checkbox$1 = props => {
1985
1985
  } : {}),
1986
1986
  ...inputProps
1987
1987
  }), /*#__PURE__*/jsxs("div", {
1988
- className: element$O('input-placeholder'),
1988
+ className: element$Q('input-placeholder'),
1989
1989
  children: [/*#__PURE__*/jsx("div", {
1990
- className: element$O('input-background')
1990
+ className: element$Q('input-background')
1991
1991
  }), /*#__PURE__*/jsx("div", {
1992
- className: element$O('input-indicator'),
1992
+ className: element$Q('input-indicator'),
1993
1993
  children: Icon$1({
1994
1994
  icon: intermediateState ? mdiMinus : mdiCheck
1995
1995
  })
1996
1996
  })]
1997
1997
  })]
1998
1998
  }), /*#__PURE__*/jsxs("div", {
1999
- className: element$O('content'),
1999
+ className: element$Q('content'),
2000
2000
  children: [label && InputLabel$1({
2001
2001
  htmlFor: inputId,
2002
- className: element$O('label'),
2002
+ className: element$Q('label'),
2003
2003
  theme,
2004
2004
  children: label
2005
2005
  }), helper && InputHelper$1({
2006
2006
  id: `${inputId}-helper`,
2007
- className: element$O('helper'),
2007
+ className: element$Q('helper'),
2008
2008
  theme,
2009
2009
  children: helper
2010
2010
  })]
@@ -2079,8 +2079,8 @@ const Checkbox = forwardRef((props, ref) => {
2079
2079
  inputId
2080
2080
  });
2081
2081
  });
2082
- Checkbox.displayName = COMPONENT_NAME$1n;
2083
- Checkbox.className = CLASSNAME$1m;
2082
+ Checkbox.displayName = COMPONENT_NAME$1s;
2083
+ Checkbox.className = CLASSNAME$1q;
2084
2084
  Checkbox.defaultProps = DEFAULT_PROPS$16;
2085
2085
 
2086
2086
  /**
@@ -2102,16 +2102,16 @@ function useStopPropagation(handler) {
2102
2102
  /**
2103
2103
  * Component display name.
2104
2104
  */
2105
- const COMPONENT_NAME$1m = 'Chip';
2105
+ const COMPONENT_NAME$1r = 'Chip';
2106
2106
 
2107
2107
  /**
2108
2108
  * Component default class name and class prefix.
2109
2109
  */
2110
- const CLASSNAME$1l = 'lumx-chip';
2110
+ const CLASSNAME$1p = 'lumx-chip';
2111
2111
  const {
2112
- block: block$11,
2113
- element: element$N
2114
- } = bem(CLASSNAME$1l);
2112
+ block: block$13,
2113
+ element: element$P
2114
+ } = bem(CLASSNAME$1p);
2115
2115
 
2116
2116
  /**
2117
2117
  * Component default props.
@@ -2178,7 +2178,7 @@ const Chip$1 = props => {
2178
2178
  ...forwardedProps,
2179
2179
  href: !disabledStateProps.disabled ? href : undefined,
2180
2180
  ref: ref,
2181
- className: classnames(className, block$11({
2181
+ className: classnames(className, block$13({
2182
2182
  'is-clickable': isClickable,
2183
2183
  [`color-${chipColor}`]: Boolean(chipColor),
2184
2184
  'is-disabled': isAnyDisabled,
@@ -2195,19 +2195,19 @@ const Chip$1 = props => {
2195
2195
  /*#__PURE__*/
2196
2196
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
2197
2197
  jsx("div", {
2198
- className: element$N('before', {
2198
+ className: element$P('before', {
2199
2199
  'is-clickable': hasBeforeClick
2200
2200
  }),
2201
2201
  onClick: handleBeforeClick,
2202
2202
  children: before
2203
2203
  }), /*#__PURE__*/jsx("div", {
2204
- className: element$N('label'),
2204
+ className: element$P('label'),
2205
2205
  children: children
2206
2206
  }), after &&
2207
2207
  /*#__PURE__*/
2208
2208
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
2209
2209
  jsx("div", {
2210
- className: element$N('after', {
2210
+ className: element$P('after', {
2211
2211
  'is-clickable': hasAfterClick
2212
2212
  }),
2213
2213
  onClick: handleAfterClick,
@@ -2263,19 +2263,19 @@ const Chip = forwardRef((props, ref) => {
2263
2263
  ...forwardedProps
2264
2264
  });
2265
2265
  });
2266
- Chip.displayName = COMPONENT_NAME$1m;
2267
- Chip.className = CLASSNAME$1l;
2266
+ Chip.displayName = COMPONENT_NAME$1r;
2267
+ Chip.className = CLASSNAME$1p;
2268
2268
  Chip.defaultProps = DEFAULT_PROPS$15;
2269
2269
 
2270
2270
  /**
2271
2271
  * Component display name.
2272
2272
  */
2273
- const COMPONENT_NAME$1l = 'ChipGroup';
2273
+ const COMPONENT_NAME$1q = 'ChipGroup';
2274
2274
 
2275
2275
  /**
2276
2276
  * Component default class name and class prefix.
2277
2277
  */
2278
- const CLASSNAME$1k = 'lumx-chip-group';
2278
+ const CLASSNAME$1o = 'lumx-chip-group';
2279
2279
 
2280
2280
  /**
2281
2281
  * Component default props.
@@ -2298,7 +2298,7 @@ const ChipGroup$1 = props => {
2298
2298
  return /*#__PURE__*/jsx("div", {
2299
2299
  ref: ref,
2300
2300
  ...forwardedProps,
2301
- className: classnames(className, CLASSNAME$1k),
2301
+ className: classnames(className, CLASSNAME$1o),
2302
2302
  children: children
2303
2303
  });
2304
2304
  };
@@ -2376,8 +2376,8 @@ const InternalChipGroup = forwardRef((props, ref) => {
2376
2376
  ...forwardedProps
2377
2377
  });
2378
2378
  });
2379
- InternalChipGroup.displayName = COMPONENT_NAME$1l;
2380
- InternalChipGroup.className = CLASSNAME$1k;
2379
+ InternalChipGroup.displayName = COMPONENT_NAME$1q;
2380
+ InternalChipGroup.className = CLASSNAME$1o;
2381
2381
  InternalChipGroup.defaultProps = DEFAULT_PROPS$14;
2382
2382
  const ChipGroup = Object.assign(InternalChipGroup, {
2383
2383
  useChipGroupNavigation
@@ -2386,16 +2386,16 @@ const ChipGroup = Object.assign(InternalChipGroup, {
2386
2386
  /**
2387
2387
  * Component display name.
2388
2388
  */
2389
- const COMPONENT_NAME$1k = 'SelectionChipGroup';
2389
+ const COMPONENT_NAME$1p = 'SelectionChipGroup';
2390
2390
 
2391
2391
  /**
2392
2392
  * Component default class name and class prefix.
2393
2393
  */
2394
- const CLASSNAME$1j = 'lumx-selection-chip-group';
2394
+ const CLASSNAME$1n = 'lumx-selection-chip-group';
2395
2395
  const {
2396
- block: block$10,
2397
- element: element$M
2398
- } = bem(CLASSNAME$1j);
2396
+ block: block$12,
2397
+ element: element$O
2398
+ } = bem(CLASSNAME$1n);
2399
2399
 
2400
2400
  /**
2401
2401
  * SelectionChipGroup component.
@@ -2433,7 +2433,7 @@ const SelectionChipGroup$1 = (props, {
2433
2433
  "aria-label": label,
2434
2434
  "aria-multiselectable": "true",
2435
2435
  "aria-orientation": "horizontal",
2436
- className: block$10([className]),
2436
+ className: block$12([className]),
2437
2437
  children: value.map(v => {
2438
2438
  const name = getOptionName && getWithSelector(getOptionName, v) || getWithSelector(getOptionId, v);
2439
2439
  const id = getWithSelector(getOptionId, v);
@@ -2452,7 +2452,7 @@ const SelectionChipGroup$1 = (props, {
2452
2452
  after: /*#__PURE__*/jsx(Icon, {
2453
2453
  icon: mdiClose
2454
2454
  }),
2455
- className: element$M('chip', [customProps.className]),
2455
+ className: element$O('chip', [customProps.className]),
2456
2456
  "data-option-id": id,
2457
2457
  isClickable: true,
2458
2458
  role: "option",
@@ -2491,10 +2491,10 @@ function createSelectorTreeWalker(container, selector) {
2491
2491
  }
2492
2492
 
2493
2493
  /** CSS selector for enabled chips (not aria-disabled). */
2494
- const ENABLED_CHIP_SELECTOR = `.${CLASSNAME$1l}:not([aria-disabled="true"])`;
2494
+ const ENABLED_CHIP_SELECTOR = `.${CLASSNAME$1p}:not([aria-disabled="true"])`;
2495
2495
 
2496
2496
  /** Find the closest chip element from an event target. */
2497
- const getChip = target => target?.closest?.(`.${CLASSNAME$1l}`) || null;
2497
+ const getChip = target => target?.closest?.(`.${CLASSNAME$1p}`) || null;
2498
2498
 
2499
2499
  /** Whether the chip is marked as disabled via aria-disabled. */
2500
2500
  const isChipDisabled = chip => chip?.getAttribute('aria-disabled') === 'true';
@@ -2708,15 +2708,15 @@ function wrapChildrenIconWithSpaces(children) {
2708
2708
  /**
2709
2709
  * Component display name.
2710
2710
  */
2711
- const COMPONENT_NAME$1j = 'Text';
2711
+ const COMPONENT_NAME$1o = 'Text';
2712
2712
 
2713
2713
  /**
2714
2714
  * Component default class name and class prefix.
2715
2715
  */
2716
- const CLASSNAME$1i = 'lumx-text';
2716
+ const CLASSNAME$1m = 'lumx-text';
2717
2717
  const {
2718
- block: block$$
2719
- } = bem(CLASSNAME$1i);
2718
+ block: block$11
2719
+ } = bem(CLASSNAME$1m);
2720
2720
 
2721
2721
  /**
2722
2722
  * Component default props.
@@ -2757,7 +2757,7 @@ const getTextProps = props => {
2757
2757
  '--lumx-text-white-space': whiteSpace
2758
2758
  };
2759
2759
  return {
2760
- className: classnames(className, block$$({
2760
+ className: classnames(className, block$11({
2761
2761
  'is-truncated': isTruncated && !isTruncatedMultiline,
2762
2762
  'is-truncated-multiline': isTruncatedMultiline,
2763
2763
  'no-wrap': noWrap
@@ -2806,8 +2806,8 @@ const Text = forwardRef((props, ref) => {
2806
2806
  children: wrapChildrenIconWithSpaces(children)
2807
2807
  });
2808
2808
  });
2809
- Text.displayName = COMPONENT_NAME$1j;
2810
- Text.className = CLASSNAME$1i;
2809
+ Text.displayName = COMPONENT_NAME$1o;
2810
+ Text.className = CLASSNAME$1m;
2811
2811
  Text.defaultProps = DEFAULT_PROPS$13;
2812
2812
 
2813
2813
  /**
@@ -4900,16 +4900,16 @@ const DEFAULT_PROPS$12 = {
4900
4900
  /**
4901
4901
  * Component display name.
4902
4902
  */
4903
- const COMPONENT_NAME$1i = 'Tooltip';
4903
+ const COMPONENT_NAME$1n = 'Tooltip';
4904
4904
 
4905
4905
  /**
4906
4906
  * Component default class name and class prefix.
4907
4907
  */
4908
- const CLASSNAME$1h = 'lumx-tooltip';
4908
+ const CLASSNAME$1l = 'lumx-tooltip';
4909
4909
  const {
4910
- block: block$_,
4911
- element: element$L
4912
- } = bem(CLASSNAME$1h);
4910
+ block: block$10,
4911
+ element: element$N
4912
+ } = bem(CLASSNAME$1l);
4913
4913
 
4914
4914
  /**
4915
4915
  * Props for the TooltipPopup rendering component.
@@ -4940,7 +4940,7 @@ const TooltipPopup = props => {
4940
4940
  ...forwardedProps,
4941
4941
  id: id,
4942
4942
  role: "tooltip",
4943
- className: classnames(className, block$_({
4943
+ className: classnames(className, block$10({
4944
4944
  [`position-${position}`]: Boolean(position)
4945
4945
  }), isHidden && visuallyHidden()),
4946
4946
  style: {
@@ -4949,17 +4949,17 @@ const TooltipPopup = props => {
4949
4949
  },
4950
4950
  "data-popper-placement": position,
4951
4951
  children: [/*#__PURE__*/jsx("div", {
4952
- className: element$L('arrow')
4952
+ className: element$N('arrow')
4953
4953
  }), /*#__PURE__*/jsx("div", {
4954
- className: element$L('inner'),
4954
+ className: element$N('inner'),
4955
4955
  children: labelLines.map((line, index) => /*#__PURE__*/jsx("p", {
4956
4956
  children: line
4957
4957
  }, index))
4958
4958
  })]
4959
4959
  });
4960
4960
  };
4961
- TooltipPopup.displayName = COMPONENT_NAME$1i;
4962
- TooltipPopup.className = CLASSNAME$1h;
4961
+ TooltipPopup.displayName = COMPONENT_NAME$1n;
4962
+ TooltipPopup.className = CLASSNAME$1l;
4963
4963
 
4964
4964
  /**
4965
4965
  * Add ref and ARIA attribute(s) in tooltip children or wrapped children.
@@ -5321,8 +5321,8 @@ const Tooltip = forwardRef((props, ref) => {
5321
5321
  })]
5322
5322
  });
5323
5323
  });
5324
- Tooltip.displayName = COMPONENT_NAME$1i;
5325
- Tooltip.className = CLASSNAME$1h;
5324
+ Tooltip.displayName = COMPONENT_NAME$1n;
5325
+ Tooltip.className = CLASSNAME$1l;
5326
5326
  Tooltip.defaultProps = DEFAULT_PROPS$12;
5327
5327
 
5328
5328
  /** Create a pending navigation store; discards intent on abort. */
@@ -6192,8 +6192,8 @@ const SelectionChipGroup = ({
6192
6192
  }, [container, inputRef, getOptionId]);
6193
6193
  useRovingTabIndexContainer({
6194
6194
  containerRef: container,
6195
- itemSelector: `.${CLASSNAME$1l}`,
6196
- itemDisabledSelector: `.${CLASSNAME$1l}[aria-disabled="true"]`
6195
+ itemSelector: `.${CLASSNAME$1p}`,
6196
+ itemDisabledSelector: `.${CLASSNAME$1p}[aria-disabled="true"]`
6197
6197
  });
6198
6198
 
6199
6199
  // Merge getChipProps and renderChip: getChipProps provides base props, renderChip overrides them,
@@ -6233,8 +6233,8 @@ const SelectionChipGroup = ({
6233
6233
  Tooltip
6234
6234
  });
6235
6235
  };
6236
- SelectionChipGroup.displayName = COMPONENT_NAME$1k;
6237
- SelectionChipGroup.className = CLASSNAME$1j;
6236
+ SelectionChipGroup.displayName = COMPONENT_NAME$1p;
6237
+ SelectionChipGroup.className = CLASSNAME$1n;
6238
6238
 
6239
6239
  /**
6240
6240
  * Get the value for a combobox option element.
@@ -6377,7 +6377,7 @@ function setupListbox(handle, signal, notify, options) {
6377
6377
  wrap: options?.wrapNavigation,
6378
6378
  getActiveItem: () => {
6379
6379
  const id = trigger.getAttribute('aria-activedescendant');
6380
- return id ? document.getElementById(id) : null;
6380
+ return id && listbox.querySelector(`#${CSS.escape(id)}`) || null;
6381
6381
  }
6382
6382
  }, focusCallbacks, signal);
6383
6383
  }
@@ -6399,11 +6399,6 @@ function setupListbox(handle, signal, notify, options) {
6399
6399
  }
6400
6400
  handle.select(cell);
6401
6401
  trigger.focus();
6402
-
6403
- // In multi-select mode, keep visual focus on the selected option
6404
- if (!handle.isMultiSelect) {
6405
- handle.setIsOpen(false);
6406
- }
6407
6402
  }, {
6408
6403
  signal
6409
6404
  });
@@ -6593,10 +6588,6 @@ function setupCombobox(callbacks, options, onTriggerAttach) {
6593
6588
  if (!isOptionDisabled(activeItem)) {
6594
6589
  activeItem.click();
6595
6590
  }
6596
- // Only close when not in multi select and not in action cell
6597
- if (!handle.isMultiSelect && !isActionCell(activeItem)) {
6598
- handle.setIsOpen(false);
6599
- }
6600
6591
  flag = true;
6601
6592
  } else if (handle.isOpen && !handle.isMultiSelect) {
6602
6593
  // Open with no active item (single select) => close the popup,
@@ -6751,6 +6742,15 @@ function setupCombobox(callbacks, options, onTriggerAttach) {
6751
6742
  callbacks.onSelect?.({
6752
6743
  value: option ? getOptionValue(option) : ''
6753
6744
  });
6745
+
6746
+ // Close on selection (when not multiselectable)
6747
+ if (option && !handle.isMultiSelect) {
6748
+ handle.focusNav?.clear();
6749
+ // Defer the close to the next frame (to make sure all other click handler resolve).
6750
+ requestAnimationFrame(() => {
6751
+ handle.setIsOpen(false);
6752
+ });
6753
+ }
6754
6754
  },
6755
6755
  flushPendingNavigation() {
6756
6756
  // Do navigations actions we could not do because the combobox items were not mounted yet
@@ -7020,7 +7020,12 @@ function createTypeahead(getWalker, getItemValue, signal) {
7020
7020
  };
7021
7021
  }
7022
7022
 
7023
- /** Is the key a single printable character (not Space, no modifier keys)? */
7023
+ /**
7024
+ * Is the key a single printable character (not Space, no modifier keys)?
7025
+ *
7026
+ * Used by typeahead-style keyboard handlers (menu, combobox) to detect when a
7027
+ * keypress should start/continue a type-to-search rather than trigger navigation.
7028
+ */
7024
7029
  function isPrintableKey({
7025
7030
  key,
7026
7031
  altKey,
@@ -7135,12 +7140,12 @@ function setupComboboxButton(button, callbacks) {
7135
7140
  /**
7136
7141
  * Component display name.
7137
7142
  */
7138
- const COMPONENT_NAME$1h = 'ComboboxButton';
7143
+ const COMPONENT_NAME$1m = 'ComboboxButton';
7139
7144
 
7140
7145
  /**
7141
7146
  * Component default class name and class prefix.
7142
7147
  */
7143
- const CLASSNAME$1g = 'lumx-combobox-button';
7148
+ const CLASSNAME$1k = 'lumx-combobox-button';
7144
7149
 
7145
7150
  /**
7146
7151
  * ComboboxButton core template.
@@ -7180,7 +7185,7 @@ const ComboboxButton$1 = (props, {
7180
7185
  const componentProps = {
7181
7186
  ref,
7182
7187
  ...forwardedProps,
7183
- className: classnames(className, CLASSNAME$1g),
7188
+ className: classnames(className, CLASSNAME$1k),
7184
7189
  role: 'combobox',
7185
7190
  'aria-controls': listboxId,
7186
7191
  'aria-haspopup': 'listbox',
@@ -7320,8 +7325,8 @@ const ComboboxButton = Object.assign(forwardRefPolymorphic((props, ref) => {
7320
7325
  Tooltip
7321
7326
  });
7322
7327
  }), {
7323
- displayName: COMPONENT_NAME$1h,
7324
- className: CLASSNAME$1g
7328
+ displayName: COMPONENT_NAME$1m,
7329
+ className: CLASSNAME$1k
7325
7330
  });
7326
7331
 
7327
7332
  /** Options for configuring the input-mode combobox controller. */
@@ -7344,7 +7349,8 @@ function setupComboboxInput(input, options) {
7344
7349
  let handle;
7345
7350
  const {
7346
7351
  filter = 'auto',
7347
- onSelect: optionOnSelect
7352
+ onSelect: optionOnSelect,
7353
+ onInput: onInputCallback
7348
7354
  } = options;
7349
7355
  const openOnFocus = options.openOnFocus ?? filter === 'off';
7350
7356
  const autoFilter = filter === 'auto';
@@ -7361,18 +7367,11 @@ function setupComboboxInput(input, options) {
7361
7367
 
7362
7368
  /**
7363
7369
  * Wraps the consumer's onSelect to perform input-mode side effects after selection:
7364
- * clears the active descendant, resets the filter, and re-opens the popup.
7370
+ * resets the filter and typing state.
7365
7371
  */
7366
7372
  const onSelect = option => {
7367
7373
  optionOnSelect?.(option);
7368
-
7369
- // Clear the active item. In multi-select, keep visual focus so the
7370
- // user can continue navigating after selection.
7371
- if (!handle.isMultiSelect) {
7372
- handle.focusNav?.clear();
7373
- }
7374
7374
  userHasTyped = false;
7375
- handle.setIsOpen(true);
7376
7375
  if (autoFilter) {
7377
7376
  handle.setFilter('');
7378
7377
  }
@@ -7392,6 +7391,9 @@ function setupComboboxInput(input, options) {
7392
7391
  if (isDisabled()) return;
7393
7392
  combobox.focusNav?.clear();
7394
7393
  userHasTyped = true;
7394
+
7395
+ // Notify the framework wrapper of the new input value synchronously.
7396
+ onInputCallback?.(input.value);
7395
7397
  combobox.setIsOpen(true);
7396
7398
  if (autoFilter) {
7397
7399
  combobox.setFilter(input.value);
@@ -7481,12 +7483,12 @@ function getDisabledState(context, props) {
7481
7483
  /**
7482
7484
  * Component display name.
7483
7485
  */
7484
- const COMPONENT_NAME$1g = 'ComboboxInput';
7486
+ const COMPONENT_NAME$1l = 'ComboboxInput';
7485
7487
 
7486
7488
  /**
7487
7489
  * Component default class name and class prefix.
7488
7490
  */
7489
- const CLASSNAME$1f = 'lumx-combobox-input';
7491
+ const CLASSNAME$1j = 'lumx-combobox-input';
7490
7492
 
7491
7493
  /**
7492
7494
  * ComboboxInput core template.
@@ -7549,22 +7551,22 @@ const ComboboxInput$1 = (props, {
7549
7551
  /**
7550
7552
  * Component display name.
7551
7553
  */
7552
- const COMPONENT_NAME$1f = 'TextField';
7554
+ const COMPONENT_NAME$1k = 'TextField';
7553
7555
 
7554
7556
  /**
7555
7557
  * Component default class name and class prefix.
7556
7558
  */
7557
- const CLASSNAME$1e = 'lumx-text-field';
7559
+ const CLASSNAME$1i = 'lumx-text-field';
7558
7560
 
7559
7561
  /**
7560
7562
  * Input native element class name.
7561
7563
  */
7562
- const INPUT_NATIVE_CLASSNAME = `${CLASSNAME$1e}__input-native`;
7564
+ const INPUT_NATIVE_CLASSNAME = `${CLASSNAME$1i}__input-native`;
7563
7565
 
7564
7566
  const {
7565
- block: block$Z,
7566
- element: element$K
7567
- } = bem(CLASSNAME$1e);
7567
+ block: block$$,
7568
+ element: element$M
7569
+ } = bem(CLASSNAME$1i);
7568
7570
 
7569
7571
  /**
7570
7572
  * Defines the props of the component.
@@ -7636,7 +7638,7 @@ const TextField$1 = props => {
7636
7638
  const isNotEmpty = valueLength > 0;
7637
7639
  return /*#__PURE__*/jsxs("div", {
7638
7640
  ref: ref,
7639
- className: classnames(className, block$Z({
7641
+ className: classnames(className, block$$({
7640
7642
  'has-chips': Boolean(chips),
7641
7643
  'has-error': !isValid && hasError,
7642
7644
  'has-icon': Boolean(icon),
@@ -7652,17 +7654,17 @@ const TextField$1 = props => {
7652
7654
  [`theme-${theme}`]: Boolean(theme)
7653
7655
  })),
7654
7656
  children: [(label || maxLength) && /*#__PURE__*/jsxs("div", {
7655
- className: element$K('header'),
7657
+ className: element$M('header'),
7656
7658
  children: [label && InputLabel$1({
7657
7659
  ...labelProps,
7658
7660
  id: labelId,
7659
7661
  htmlFor: textFieldId,
7660
- className: element$K('label'),
7662
+ className: element$M('label'),
7661
7663
  isRequired,
7662
7664
  theme,
7663
7665
  children: label
7664
7666
  }), maxLength && /*#__PURE__*/jsxs("div", {
7665
- className: element$K('char-counter'),
7667
+ className: element$M('char-counter'),
7666
7668
  children: [/*#__PURE__*/jsx("span", {
7667
7669
  children: maxLength - valueLength
7668
7670
  }), maxLength - valueLength === 0 && Icon$1({
@@ -7671,45 +7673,45 @@ const TextField$1 = props => {
7671
7673
  })]
7672
7674
  })]
7673
7675
  }), /*#__PURE__*/jsxs("div", {
7674
- className: element$K('wrapper'),
7676
+ className: element$M('wrapper'),
7675
7677
  ref: textFieldRef,
7676
7678
  children: [icon && Icon$1({
7677
- className: element$K('input-icon'),
7679
+ className: element$M('input-icon'),
7678
7680
  color: theme === Theme.dark ? 'light' : undefined,
7679
7681
  icon,
7680
7682
  size: Size.xs
7681
7683
  }), chips ? /*#__PURE__*/jsxs("div", {
7682
- className: element$K('chips'),
7684
+ className: element$M('chips'),
7683
7685
  children: [chips, input]
7684
7686
  }) : /*#__PURE__*/jsx("div", {
7685
- className: element$K('input-wrapper'),
7687
+ className: element$M('input-wrapper'),
7686
7688
  children: input
7687
7689
  }), (isValid || hasError) && Icon$1({
7688
- className: element$K('input-validity'),
7690
+ className: element$M('input-validity'),
7689
7691
  color: theme === Theme.dark ? 'light' : undefined,
7690
7692
  icon: isValid ? mdiCheckCircle : mdiAlertCircle,
7691
7693
  size: Size.xxs
7692
7694
  }), clearButtonProps && isNotEmpty && !isAnyDisabled && /*#__PURE__*/jsx(IconButton, {
7693
7695
  "aria-describedby": labelId,
7694
7696
  ...clearButtonProps,
7695
- className: element$K('input-clear'),
7697
+ className: element$M('input-clear'),
7696
7698
  icon: mdiCloseCircle,
7697
7699
  emphasis: Emphasis.low,
7698
7700
  size: Size.s,
7699
7701
  theme: theme,
7700
7702
  type: "button"
7701
7703
  }), afterElement && /*#__PURE__*/jsx("div", {
7702
- className: element$K('after-element'),
7704
+ className: element$M('after-element'),
7703
7705
  children: afterElement
7704
7706
  })]
7705
7707
  }), hasError && error && InputHelper$1({
7706
7708
  children: error,
7707
- className: element$K('helper'),
7709
+ className: element$M('helper'),
7708
7710
  kind: Kind.error,
7709
7711
  theme,
7710
7712
  id: errorId
7711
7713
  }), helper && InputHelper$1({
7712
- className: element$K('helper'),
7714
+ className: element$M('helper'),
7713
7715
  theme,
7714
7716
  id: helperId,
7715
7717
  children: helper
@@ -7718,7 +7720,7 @@ const TextField$1 = props => {
7718
7720
  };
7719
7721
 
7720
7722
  const {
7721
- block: block$Y
7723
+ block: block$_
7722
7724
  } = bem(INPUT_NATIVE_CLASSNAME);
7723
7725
 
7724
7726
  /**
@@ -7761,7 +7763,7 @@ const RawInputText$1 = props => {
7761
7763
  name: name,
7762
7764
  type: type,
7763
7765
  ref: ref,
7764
- className: classnames(className, block$Y({
7766
+ className: classnames(className, block$_({
7765
7767
  [`theme-${theme}`]: Boolean(theme),
7766
7768
  text: true
7767
7769
  })),
@@ -7797,7 +7799,7 @@ const RawInputText = forwardRef((props, ref) => {
7797
7799
  });
7798
7800
 
7799
7801
  const {
7800
- block: block$X
7802
+ block: block$Z
7801
7803
  } = bem(INPUT_NATIVE_CLASSNAME);
7802
7804
 
7803
7805
  /**
@@ -7839,7 +7841,7 @@ const RawInputTextarea$1 = props => {
7839
7841
  ...forwardedProps,
7840
7842
  name: name,
7841
7843
  ref: ref,
7842
- className: classnames(className, block$X({
7844
+ className: classnames(className, block$Z({
7843
7845
  [`theme-${theme}`]: Boolean(theme),
7844
7846
  textarea: true
7845
7847
  })),
@@ -8085,8 +8087,8 @@ const TextField = forwardRef((props, ref) => {
8085
8087
  } : undefined
8086
8088
  });
8087
8089
  });
8088
- TextField.displayName = COMPONENT_NAME$1f;
8089
- TextField.className = CLASSNAME$1e;
8090
+ TextField.displayName = COMPONENT_NAME$1k;
8091
+ TextField.className = CLASSNAME$1i;
8090
8092
  TextField.defaultProps = DEFAULT_PROPS$_;
8091
8093
 
8092
8094
  /**
@@ -8136,6 +8138,10 @@ const ComboboxInput = forwardRef((props, ref) => {
8136
8138
  onChangeRef.current?.(option.value);
8137
8139
  onSelectRef.current?.(option);
8138
8140
  },
8141
+ onInput(value) {
8142
+ // Keep controlled value in sync.
8143
+ onChangeRef.current?.(value);
8144
+ },
8139
8145
  filter,
8140
8146
  openOnFocus
8141
8147
  });
@@ -8164,21 +8170,21 @@ const ComboboxInput = forwardRef((props, ref) => {
8164
8170
  IconButton
8165
8171
  });
8166
8172
  });
8167
- ComboboxInput.displayName = COMPONENT_NAME$1g;
8168
- ComboboxInput.className = CLASSNAME$1f;
8173
+ ComboboxInput.displayName = COMPONENT_NAME$1l;
8174
+ ComboboxInput.className = CLASSNAME$1j;
8169
8175
 
8170
8176
  /**
8171
8177
  * Component display name.
8172
8178
  */
8173
- const COMPONENT_NAME$1e = 'List';
8179
+ const COMPONENT_NAME$1j = 'List';
8174
8180
 
8175
8181
  /**
8176
8182
  * Component default class name and class prefix.
8177
8183
  */
8178
- const CLASSNAME$1d = 'lumx-list';
8184
+ const CLASSNAME$1h = 'lumx-list';
8179
8185
  const {
8180
- block: block$W
8181
- } = bem(CLASSNAME$1d);
8186
+ block: block$Y
8187
+ } = bem(CLASSNAME$1h);
8182
8188
 
8183
8189
  /**
8184
8190
  * Component default props.
@@ -8201,15 +8207,15 @@ const List$1 = props => {
8201
8207
  } = props;
8202
8208
  return /*#__PURE__*/jsx("ul", {
8203
8209
  ...forwardedProps,
8204
- className: classnames(className, block$W({
8210
+ className: classnames(className, block$Y({
8205
8211
  [`item-padding-${itemPadding}`]: Boolean(itemPadding)
8206
8212
  })),
8207
8213
  ref: ref,
8208
8214
  children: children
8209
8215
  });
8210
8216
  };
8211
- List$1.displayName = COMPONENT_NAME$1e;
8212
- List$1.className = CLASSNAME$1d;
8217
+ List$1.displayName = COMPONENT_NAME$1j;
8218
+ List$1.className = CLASSNAME$1h;
8213
8219
  List$1.defaultProps = DEFAULT_PROPS$Z;
8214
8220
 
8215
8221
  /**
@@ -8225,12 +8231,12 @@ List$1.defaultProps = DEFAULT_PROPS$Z;
8225
8231
  /**
8226
8232
  * Component display name.
8227
8233
  */
8228
- const COMPONENT_NAME$1d = 'ComboboxList';
8234
+ const COMPONENT_NAME$1i = 'ComboboxList';
8229
8235
 
8230
8236
  /**
8231
8237
  * Component default class name and class prefix.
8232
8238
  */
8233
- const CLASSNAME$1c = 'lumx-combobox-list';
8239
+ const CLASSNAME$1g = 'lumx-combobox-list';
8234
8240
 
8235
8241
  /**
8236
8242
  * ComboboxList core template.
@@ -8252,7 +8258,7 @@ const ComboboxList$1 = props => {
8252
8258
  } = props;
8253
8259
  return List$1({
8254
8260
  ...forwardedProps,
8255
- className: classnames(className, CLASSNAME$1c),
8261
+ className: classnames(className, CLASSNAME$1g),
8256
8262
  ref,
8257
8263
  itemPadding: 'big',
8258
8264
  id,
@@ -8342,22 +8348,22 @@ const ComboboxList = forwardRef((props, ref) => {
8342
8348
  })
8343
8349
  });
8344
8350
  });
8345
- ComboboxList.displayName = COMPONENT_NAME$1d;
8346
- ComboboxList.className = CLASSNAME$1c;
8351
+ ComboboxList.displayName = COMPONENT_NAME$1i;
8352
+ ComboboxList.className = CLASSNAME$1g;
8347
8353
 
8348
8354
  /**
8349
8355
  * Component display name.
8350
8356
  */
8351
- const COMPONENT_NAME$1c = 'ListItem';
8357
+ const COMPONENT_NAME$1h = 'ListItem';
8352
8358
 
8353
8359
  /**
8354
8360
  * Component default class name and class prefix.
8355
8361
  */
8356
- const CLASSNAME$1b = 'lumx-list-item';
8362
+ const CLASSNAME$1f = 'lumx-list-item';
8357
8363
  const {
8358
- block: block$V,
8359
- element: element$J
8360
- } = bem(CLASSNAME$1b);
8364
+ block: block$X,
8365
+ element: element$L
8366
+ } = bem(CLASSNAME$1f);
8361
8367
 
8362
8368
  /**
8363
8369
  * Component default props.
@@ -8394,7 +8400,7 @@ const ListItem$1 = props => {
8394
8400
  return /*#__PURE__*/jsx("li", {
8395
8401
  ref: ref,
8396
8402
  ...forwardedProps,
8397
- className: classnames(className, block$V({
8403
+ className: classnames(className, block$X({
8398
8404
  [`size-${size}`]: Boolean(size)
8399
8405
  })),
8400
8406
  children: RawClickable({
@@ -8402,7 +8408,7 @@ const ListItem$1 = props => {
8402
8408
  isDisabled,
8403
8409
  'aria-disabled': ariaDisabled,
8404
8410
  ...linkProps,
8405
- className: element$J(clickable ? 'link' : 'wrapper', {
8411
+ className: element$L(clickable ? 'link' : 'wrapper', {
8406
8412
  'is-highlighted': isHighlighted,
8407
8413
  'is-selected': isSelected,
8408
8414
  'is-disabled': isDisabled || ariaDisabled === 'true'
@@ -8411,21 +8417,21 @@ const ListItem$1 = props => {
8411
8417
  ref: linkRef,
8412
8418
  children: /*#__PURE__*/jsxs(Fragment, {
8413
8419
  children: [before && /*#__PURE__*/jsx("div", {
8414
- className: element$J('before'),
8420
+ className: element$L('before'),
8415
8421
  children: before
8416
8422
  }), /*#__PURE__*/jsx("div", {
8417
- className: element$J('content'),
8423
+ className: element$L('content'),
8418
8424
  children: children
8419
8425
  }), after && /*#__PURE__*/jsx("div", {
8420
- className: element$J('after'),
8426
+ className: element$L('after'),
8421
8427
  children: after
8422
8428
  })]
8423
8429
  })
8424
8430
  })
8425
8431
  });
8426
8432
  };
8427
- ListItem$1.displayName = COMPONENT_NAME$1c;
8428
- ListItem$1.className = CLASSNAME$1b;
8433
+ ListItem$1.displayName = COMPONENT_NAME$1h;
8434
+ ListItem$1.className = CLASSNAME$1f;
8429
8435
  ListItem$1.defaultProps = DEFAULT_PROPS$Y;
8430
8436
 
8431
8437
  /**
@@ -8435,12 +8441,12 @@ ListItem$1.defaultProps = DEFAULT_PROPS$Y;
8435
8441
  /**
8436
8442
  * Component display name.
8437
8443
  */
8438
- const COMPONENT_NAME$1b = 'ListItemAction';
8444
+ const COMPONENT_NAME$1g = 'ListItemAction';
8439
8445
 
8440
8446
  /**
8441
8447
  * Component classname (used by action area CSS pattern).
8442
8448
  */
8443
- const CLASSNAME$1a = 'lumx-action-area__action';
8449
+ const CLASSNAME$1e = 'lumx-action-area__action';
8444
8450
  const DEFAULT_PROPS$X = {};
8445
8451
 
8446
8452
  /**
@@ -8474,16 +8480,16 @@ const ListItemAction$1 = props => {
8474
8480
  /**
8475
8481
  * Component display name.
8476
8482
  */
8477
- const COMPONENT_NAME$1a = 'ComboboxOption';
8483
+ const COMPONENT_NAME$1f = 'ComboboxOption';
8478
8484
 
8479
8485
  /**
8480
8486
  * Component default class name and class prefix.
8481
8487
  */
8482
- const CLASSNAME$19 = 'lumx-combobox-option';
8488
+ const CLASSNAME$1d = 'lumx-combobox-option';
8483
8489
  const {
8484
- block: block$U,
8485
- element: element$I
8486
- } = bem(CLASSNAME$19);
8490
+ block: block$W,
8491
+ element: element$K
8492
+ } = bem(CLASSNAME$1d);
8487
8493
 
8488
8494
  /**
8489
8495
  * ComboboxOption core template.
@@ -8527,7 +8533,7 @@ const ComboboxOption$1 = (props, {
8527
8533
  as: 'button',
8528
8534
  ...actionProps,
8529
8535
  id,
8530
- className: element$I('action'),
8536
+ className: element$K('action'),
8531
8537
  handleClick,
8532
8538
  'aria-selected': isSelected ? 'true' : 'false',
8533
8539
  'data-value': value,
@@ -8545,7 +8551,7 @@ const ComboboxOption$1 = (props, {
8545
8551
  size: 'tiny',
8546
8552
  ...forwardedProps,
8547
8553
  hidden,
8548
- className: !hidden ? classnames(className, block$U()) : undefined,
8554
+ className: !hidden ? classnames(className, block$W()) : undefined,
8549
8555
  before,
8550
8556
  after,
8551
8557
  role: itemRole,
@@ -8553,7 +8559,7 @@ const ComboboxOption$1 = (props, {
8553
8559
  children: [wrappedAction, description && /*#__PURE__*/jsx("p", {
8554
8560
  id: descriptionId,
8555
8561
  ...getTextProps({
8556
- className: element$I('description'),
8562
+ className: element$K('description'),
8557
8563
  typography: 'caption',
8558
8564
  color: 'dark-L2'
8559
8565
  }),
@@ -8667,8 +8673,8 @@ const ComboboxOption = forwardRef((props, ref) => {
8667
8673
  Tooltip
8668
8674
  });
8669
8675
  });
8670
- ComboboxOption.displayName = COMPONENT_NAME$1a;
8671
- ComboboxOption.className = CLASSNAME$19;
8676
+ ComboboxOption.displayName = COMPONENT_NAME$1f;
8677
+ ComboboxOption.className = CLASSNAME$1d;
8672
8678
 
8673
8679
  /**
8674
8680
  * Defines the props for the core ComboboxOptionAction template.
@@ -8677,12 +8683,12 @@ ComboboxOption.className = CLASSNAME$19;
8677
8683
  /**
8678
8684
  * Component display name.
8679
8685
  */
8680
- const COMPONENT_NAME$19 = 'ComboboxOptionAction';
8686
+ const COMPONENT_NAME$1e = 'ComboboxOptionAction';
8681
8687
 
8682
8688
  /**
8683
8689
  * Component default class name and class prefix.
8684
8690
  */
8685
- const CLASSNAME$18 = 'lumx-combobox-option-action';
8691
+ const CLASSNAME$1c = 'lumx-combobox-option-action';
8686
8692
 
8687
8693
  /**
8688
8694
  * ComboboxOptionAction core template.
@@ -8705,7 +8711,7 @@ const ComboboxOptionAction$1 = props => {
8705
8711
  as: Element,
8706
8712
  ...forwardedProps,
8707
8713
  role: 'gridcell',
8708
- className: classnames(className, CLASSNAME$18),
8714
+ className: classnames(className, CLASSNAME$1c),
8709
8715
  handleClick,
8710
8716
  children
8711
8717
  });
@@ -8755,23 +8761,23 @@ const ComboboxOptionAction = Object.assign(forwardRefPolymorphic((props, ref) =>
8755
8761
  children
8756
8762
  });
8757
8763
  }), {
8758
- displayName: COMPONENT_NAME$19,
8759
- className: CLASSNAME$18
8764
+ displayName: COMPONENT_NAME$1e,
8765
+ className: CLASSNAME$1c
8760
8766
  });
8761
8767
 
8762
8768
  /**
8763
8769
  * Component display name.
8764
8770
  */
8765
- const COMPONENT_NAME$18 = 'ComboboxOptionMoreInfo';
8771
+ const COMPONENT_NAME$1d = 'ComboboxOptionMoreInfo';
8766
8772
 
8767
8773
  /**
8768
8774
  * Component default class name and class prefix.
8769
8775
  */
8770
- const CLASSNAME$17 = 'lumx-combobox-option-more-info';
8776
+ const CLASSNAME$1b = 'lumx-combobox-option-more-info';
8771
8777
  const {
8772
- block: block$T,
8773
- element: element$H
8774
- } = bem(CLASSNAME$17);
8778
+ block: block$V,
8779
+ element: element$J
8780
+ } = bem(CLASSNAME$1b);
8775
8781
 
8776
8782
  /**
8777
8783
  * ComboboxOptionMoreInfo core template.
@@ -8805,7 +8811,7 @@ const ComboboxOptionMoreInfo$1 = (props, {
8805
8811
  icon: mdiInformationOutline,
8806
8812
  size: "s",
8807
8813
  ...buttonProps,
8808
- className: block$T([className, buttonProps?.className]),
8814
+ className: block$V([className, buttonProps?.className]),
8809
8815
  emphasis: "low",
8810
8816
  onMouseEnter: onMouseEnter,
8811
8817
  onMouseLeave: onMouseLeave
@@ -8816,7 +8822,7 @@ const ComboboxOptionMoreInfo$1 = (props, {
8816
8822
  label: ""
8817
8823
  }), /*#__PURE__*/jsx(Popover, {
8818
8824
  id: popoverId,
8819
- className: element$H('popover'),
8825
+ className: element$J('popover'),
8820
8826
  anchorRef: ref,
8821
8827
  isOpen: isOpen,
8822
8828
  closeMode: "unmount",
@@ -9088,16 +9094,16 @@ const POPOVER_ZINDEX = 9999;
9088
9094
  /**
9089
9095
  * Component display name.
9090
9096
  */
9091
- const COMPONENT_NAME$17 = 'Popover';
9097
+ const COMPONENT_NAME$1c = 'Popover';
9092
9098
 
9093
9099
  /**
9094
9100
  * Component default class name and class prefix.
9095
9101
  */
9096
- const CLASSNAME$16 = 'lumx-popover';
9102
+ const CLASSNAME$1a = 'lumx-popover';
9097
9103
  const {
9098
- block: block$S,
9099
- element: element$G
9100
- } = bem(CLASSNAME$16);
9104
+ block: block$U,
9105
+ element: element$I
9106
+ } = bem(CLASSNAME$1a);
9101
9107
 
9102
9108
  /**
9103
9109
  * Component default props (used by framework wrappers).
@@ -9159,7 +9165,7 @@ const Popover$1 = (props, {
9159
9165
  children: /*#__PURE__*/jsxs(Component, {
9160
9166
  ...forwardedProps,
9161
9167
  ref: ref,
9162
- className: classnames(className, block$S({
9168
+ className: classnames(className, block$U({
9163
9169
  [`theme-${theme}`]: Boolean(theme),
9164
9170
  [`elevation-${adjustedElevation}`]: Boolean(adjustedElevation),
9165
9171
  [`position-${position}`]: Boolean(position),
@@ -9173,7 +9179,7 @@ const Popover$1 = (props, {
9173
9179
  childrenRefs: clickAwayRefs,
9174
9180
  children: [hasArrow && /*#__PURE__*/jsx("div", {
9175
9181
  ref: arrowRef,
9176
- className: element$G('arrow'),
9182
+ className: element$I('arrow'),
9177
9183
  style: isHidden ? undefined : arrowStyle,
9178
9184
  children: /*#__PURE__*/jsx("svg", {
9179
9185
  viewBox: "0 0 14 14",
@@ -9224,11 +9230,17 @@ function useRestoreFocusOnClose({
9224
9230
  const prevIsOpenRef = React__default.useRef(isOpen);
9225
9231
  const tryRestoreFocus = React__default.useCallback(() => {
9226
9232
  if (!popoverElement || !focusAnchorOnClose) return;
9227
- const isFocusWithin = popoverElement.contains(document.activeElement);
9233
+ const focusedAtClose = document.activeElement;
9234
+ const isFocusWithin = popoverElement.contains(focusedAtClose);
9228
9235
  if (!isFocusWithin) return;
9229
9236
 
9230
- // On next render
9237
+ // Defer restore: browser may still move focus after close (e.g. click-away on mousedown).
9231
9238
  setTimeout(() => {
9239
+ // Skip if focus moved to a real element (user intent). Restore if focus stayed
9240
+ // (closeMode="hide") or fell back to body (element removed on unmount).
9241
+ const active = document.activeElement;
9242
+ const focusMovedAway = active && active !== focusedAtClose && active !== document.body && active !== document.documentElement;
9243
+ if (focusMovedAway) return;
9232
9244
  const anchor = anchorRef.current;
9233
9245
  const elementToFocus =
9234
9246
  // Provided parent element
@@ -9550,7 +9562,7 @@ const _InnerPopover = forwardRef((props, ref) => {
9550
9562
  ThemeProvider
9551
9563
  });
9552
9564
  });
9553
- _InnerPopover.displayName = COMPONENT_NAME$17;
9565
+ _InnerPopover.displayName = COMPONENT_NAME$1c;
9554
9566
 
9555
9567
  /**
9556
9568
  * Popover component.
@@ -9562,8 +9574,8 @@ _InnerPopover.displayName = COMPONENT_NAME$17;
9562
9574
  const Popover = skipRender(
9563
9575
  // Skip render in SSR
9564
9576
  () => Boolean(DOCUMENT), _InnerPopover);
9565
- Popover.displayName = COMPONENT_NAME$17;
9566
- Popover.className = CLASSNAME$16;
9577
+ Popover.displayName = COMPONENT_NAME$1c;
9578
+ Popover.className = CLASSNAME$1a;
9567
9579
  Popover.defaultProps = DEFAULT_PROPS$W;
9568
9580
 
9569
9581
  /**
@@ -9626,22 +9638,22 @@ const ComboboxOptionMoreInfo = props => {
9626
9638
  Popover
9627
9639
  });
9628
9640
  };
9629
- ComboboxOptionMoreInfo.displayName = COMPONENT_NAME$18;
9630
- ComboboxOptionMoreInfo.className = CLASSNAME$17;
9641
+ ComboboxOptionMoreInfo.displayName = COMPONENT_NAME$1d;
9642
+ ComboboxOptionMoreInfo.className = CLASSNAME$1b;
9631
9643
 
9632
9644
  /**
9633
9645
  * Component display name.
9634
9646
  */
9635
- const COMPONENT_NAME$16 = 'SkeletonTypography';
9647
+ const COMPONENT_NAME$1b = 'SkeletonTypography';
9636
9648
 
9637
9649
  /**
9638
9650
  * Component default class name and class prefix.
9639
9651
  */
9640
- const CLASSNAME$15 = 'lumx-skeleton-typography';
9652
+ const CLASSNAME$19 = 'lumx-skeleton-typography';
9641
9653
  const {
9642
- block: block$R,
9643
- element: element$F
9644
- } = bem(CLASSNAME$15);
9654
+ block: block$T,
9655
+ element: element$H
9656
+ } = bem(CLASSNAME$19);
9645
9657
 
9646
9658
  /**
9647
9659
  * SkeletonTypography component.
@@ -9662,7 +9674,7 @@ const SkeletonTypography$1 = props => {
9662
9674
  return /*#__PURE__*/jsx("div", {
9663
9675
  ref: ref,
9664
9676
  ...forwardedProps,
9665
- className: classnames(className, block$R({
9677
+ className: classnames(className, block$T({
9666
9678
  [`theme-${theme}`]: Boolean(theme),
9667
9679
  [`typography-${typography}`]: Boolean(typography),
9668
9680
  [`color-${color}`]: Boolean(color)
@@ -9672,7 +9684,7 @@ const SkeletonTypography$1 = props => {
9672
9684
  width
9673
9685
  },
9674
9686
  children: /*#__PURE__*/jsx("div", {
9675
- className: element$F('inner')
9687
+ className: element$H('inner')
9676
9688
  })
9677
9689
  });
9678
9690
  };
@@ -9680,12 +9692,12 @@ const SkeletonTypography$1 = props => {
9680
9692
  /**
9681
9693
  * Component display name.
9682
9694
  */
9683
- const COMPONENT_NAME$15 = 'ComboboxOptionSkeleton';
9695
+ const COMPONENT_NAME$1a = 'ComboboxOptionSkeleton';
9684
9696
 
9685
9697
  /**
9686
9698
  * Component default class name and class prefix.
9687
9699
  */
9688
- const CLASSNAME$14 = 'lumx-combobox-option-skeleton';
9700
+ const CLASSNAME$18 = 'lumx-combobox-option-skeleton';
9689
9701
 
9690
9702
  /**
9691
9703
  * ComboboxOptionSkeleton core template.
@@ -9712,7 +9724,7 @@ const ComboboxOptionSkeleton$1 = props => {
9712
9724
  size: 'tiny',
9713
9725
  role: 'none',
9714
9726
  ...forwardedProps,
9715
- className: classnames(className, CLASSNAME$14),
9727
+ className: classnames(className, CLASSNAME$18),
9716
9728
  children: children || /*#__PURE__*/jsxs(Fragment, {
9717
9729
  children: [/*#__PURE__*/jsx(SkeletonTypography$1, {
9718
9730
  typography: "body1",
@@ -9765,19 +9777,19 @@ const ComboboxOptionSkeleton = props => {
9765
9777
  ...props
9766
9778
  });
9767
9779
  };
9768
- ComboboxOptionSkeleton.displayName = COMPONENT_NAME$15;
9769
- ComboboxOptionSkeleton.className = CLASSNAME$14;
9780
+ ComboboxOptionSkeleton.displayName = COMPONENT_NAME$1a;
9781
+ ComboboxOptionSkeleton.className = CLASSNAME$18;
9770
9782
 
9771
- const COMPONENT_NAME$14 = 'ComboboxPopover';
9783
+ const COMPONENT_NAME$19 = 'ComboboxPopover';
9772
9784
 
9773
9785
  /**
9774
9786
  * Component default class name.
9775
9787
  */
9776
- const CLASSNAME$13 = 'lumx-combobox-popover';
9788
+ const CLASSNAME$17 = 'lumx-combobox-popover';
9777
9789
  const {
9778
- block: block$Q,
9779
- element: element$E
9780
- } = bem(CLASSNAME$13);
9790
+ block: block$S,
9791
+ element: element$G
9792
+ } = bem(CLASSNAME$17);
9781
9793
 
9782
9794
  /**
9783
9795
  * Defines the props for the core ComboboxPopover template.
@@ -9818,7 +9830,7 @@ const ComboboxPopover$1 = (props, {
9818
9830
  ...forwardedProps,
9819
9831
  placement: placement,
9820
9832
  fitToAnchorWidth: fitToAnchorWidth,
9821
- className: block$Q([className]),
9833
+ className: block$S([className]),
9822
9834
  anchorRef: anchorRef,
9823
9835
  isOpen: isOpen,
9824
9836
  onClose: handleClose,
@@ -9827,7 +9839,7 @@ const ComboboxPopover$1 = (props, {
9827
9839
  closeMode: "hide",
9828
9840
  children: /*#__PURE__*/jsx(FlexBox, {
9829
9841
  orientation: "vertical",
9830
- className: element$E('scroll'),
9842
+ className: element$G('scroll'),
9831
9843
  children: children
9832
9844
  })
9833
9845
  });
@@ -9840,15 +9852,15 @@ const ComboboxPopover$1 = (props, {
9840
9852
  /**
9841
9853
  * Component display name.
9842
9854
  */
9843
- const COMPONENT_NAME$13 = 'FlexBox';
9855
+ const COMPONENT_NAME$18 = 'FlexBox';
9844
9856
 
9845
9857
  /**
9846
9858
  * Component default class name and class prefix.
9847
9859
  */
9848
- const CLASSNAME$12 = 'lumx-flex-box';
9860
+ const CLASSNAME$16 = 'lumx-flex-box';
9849
9861
  const {
9850
- block: block$P
9851
- } = bem(CLASSNAME$12);
9862
+ block: block$R
9863
+ } = bem(CLASSNAME$16);
9852
9864
 
9853
9865
  /**
9854
9866
  * Get FlexBox component props (className computation).
@@ -9872,7 +9884,7 @@ function getFlexBoxProps(props) {
9872
9884
  const adjustedOrientation = orientation ?? (wrap || hAlign || vAlign ? Orientation.horizontal : null);
9873
9885
  return {
9874
9886
  ...forwardedProps,
9875
- className: classnames(className, block$P({
9887
+ className: classnames(className, block$R({
9876
9888
  [`orientation-${adjustedOrientation}`]: Boolean(adjustedOrientation),
9877
9889
  [`v-align-${vAlign}`]: Boolean(vAlign),
9878
9890
  [`h-align-${hAlign}`]: Boolean(hAlign),
@@ -9904,8 +9916,8 @@ const FlexBox = forwardRef((props, ref) => {
9904
9916
  children: children
9905
9917
  });
9906
9918
  });
9907
- FlexBox.displayName = COMPONENT_NAME$13;
9908
- FlexBox.className = CLASSNAME$12;
9919
+ FlexBox.displayName = COMPONENT_NAME$18;
9920
+ FlexBox.className = CLASSNAME$16;
9909
9921
 
9910
9922
  /**
9911
9923
  * Props for Popover that can be passed to Combobox.Popover.
@@ -9943,8 +9955,8 @@ const ComboboxPopover = props => {
9943
9955
  FlexBox
9944
9956
  });
9945
9957
  };
9946
- ComboboxPopover.displayName = COMPONENT_NAME$14;
9947
- ComboboxPopover.className = CLASSNAME$13;
9958
+ ComboboxPopover.displayName = COMPONENT_NAME$19;
9959
+ ComboboxPopover.className = CLASSNAME$17;
9948
9960
 
9949
9961
  /**
9950
9962
  * Combobox.Provider component.
@@ -9989,12 +10001,12 @@ ComboboxProvider.displayName = 'Combobox.Provider';
9989
10001
  /**
9990
10002
  * Component display name.
9991
10003
  */
9992
- const COMPONENT_NAME$12 = 'ComboboxSection';
10004
+ const COMPONENT_NAME$17 = 'ComboboxSection';
9993
10005
 
9994
10006
  /**
9995
10007
  * Component default class name and class prefix.
9996
10008
  */
9997
- const CLASSNAME$11 = 'lumx-combobox-section';
10009
+ const CLASSNAME$15 = 'lumx-combobox-section';
9998
10010
 
9999
10011
  /**
10000
10012
  * ComboboxSection core template.
@@ -10021,7 +10033,7 @@ const ComboboxSection$1 = (props, {
10021
10033
  ...forwardedProps,
10022
10034
  hidden: hidden,
10023
10035
  "aria-hidden": ariaHidden || undefined,
10024
- className: !hidden ? classnames(className, CLASSNAME$11) : undefined,
10036
+ className: !hidden ? classnames(className, CLASSNAME$15) : undefined,
10025
10037
  role: !ariaHidden ? 'none' : undefined,
10026
10038
  itemsWrapperProps: {
10027
10039
  role: 'group'
@@ -10033,16 +10045,16 @@ const ComboboxSection$1 = (props, {
10033
10045
  /**
10034
10046
  * Component display name.
10035
10047
  */
10036
- const COMPONENT_NAME$11 = 'ListSection';
10048
+ const COMPONENT_NAME$16 = 'ListSection';
10037
10049
 
10038
10050
  /**
10039
10051
  * Component default class name and class prefix.
10040
10052
  */
10041
- const CLASSNAME$10 = 'lumx-list-section';
10053
+ const CLASSNAME$14 = 'lumx-list-section';
10042
10054
  const {
10043
- block: block$O,
10044
- element: element$D
10045
- } = bem(CLASSNAME$10);
10055
+ block: block$Q,
10056
+ element: element$F
10057
+ } = bem(CLASSNAME$14);
10046
10058
 
10047
10059
  /**
10048
10060
  * Component default props.
@@ -10072,25 +10084,25 @@ const ListSection$1 = props => {
10072
10084
  return /*#__PURE__*/jsxs("li", {
10073
10085
  ref: ref,
10074
10086
  ...forwardedProps,
10075
- className: classnames(className, block$O()),
10087
+ className: classnames(className, block$Q()),
10076
10088
  children: [hasHeader && /*#__PURE__*/jsxs(Text, {
10077
10089
  as: "p",
10078
10090
  typography: "overline",
10079
- className: element$D('title'),
10091
+ className: element$F('title'),
10080
10092
  id: labelId,
10081
10093
  children: [icon && Icon$1({
10082
10094
  icon
10083
10095
  }), label]
10084
10096
  }), /*#__PURE__*/jsx("ul", {
10085
10097
  ...itemsWrapperProps,
10086
- className: element$D('items'),
10098
+ className: element$F('items'),
10087
10099
  "aria-labelledby": hasHeader ? labelId : undefined,
10088
10100
  children: children
10089
10101
  })]
10090
10102
  });
10091
10103
  };
10092
- ListSection$1.displayName = COMPONENT_NAME$11;
10093
- ListSection$1.className = CLASSNAME$10;
10104
+ ListSection$1.displayName = COMPONENT_NAME$16;
10105
+ ListSection$1.className = CLASSNAME$14;
10094
10106
  ListSection$1.defaultProps = DEFAULT_PROPS$V;
10095
10107
 
10096
10108
  /**
@@ -10113,8 +10125,8 @@ const ListSection = forwardRef((props, ref) => {
10113
10125
  Text
10114
10126
  });
10115
10127
  });
10116
- ListSection.displayName = COMPONENT_NAME$11;
10117
- ListSection.className = CLASSNAME$10;
10128
+ ListSection.displayName = COMPONENT_NAME$16;
10129
+ ListSection.className = CLASSNAME$14;
10118
10130
  ListSection.defaultProps = DEFAULT_PROPS$V;
10119
10131
 
10120
10132
  /**
@@ -10163,21 +10175,21 @@ const ComboboxSection = forwardRef((props, ref) => {
10163
10175
  ListSection
10164
10176
  });
10165
10177
  });
10166
- ComboboxSection.displayName = COMPONENT_NAME$12;
10167
- ComboboxSection.className = CLASSNAME$11;
10178
+ ComboboxSection.displayName = COMPONENT_NAME$17;
10179
+ ComboboxSection.className = CLASSNAME$15;
10168
10180
 
10169
10181
  /**
10170
10182
  * Component display name.
10171
10183
  */
10172
- const COMPONENT_NAME$10 = 'ComboboxState';
10184
+ const COMPONENT_NAME$15 = 'ComboboxState';
10173
10185
 
10174
10186
  /**
10175
10187
  * Component default class name and class prefix.
10176
10188
  */
10177
- const CLASSNAME$$ = 'lumx-combobox-state';
10189
+ const CLASSNAME$13 = 'lumx-combobox-state';
10178
10190
  const {
10179
- block: block$N
10180
- } = bem(CLASSNAME$$);
10191
+ block: block$P
10192
+ } = bem(CLASSNAME$13);
10181
10193
 
10182
10194
  /**
10183
10195
  * Defines the props for the core ComboboxState template.
@@ -10238,7 +10250,7 @@ const ComboboxState$1 = (props, {
10238
10250
  // the popover's closeMode="hide") and revealing it doesn't trigger announcements.
10239
10251
  const renderContent = isOpen;
10240
10252
  return /*#__PURE__*/jsxs(GenericBlock, {
10241
- className: classnames(!show && visuallyHidden(), block$N(), padding('regular')),
10253
+ className: classnames(!show && visuallyHidden(), block$P(), padding('regular')),
10242
10254
  orientation: "vertical",
10243
10255
  ...alignProps,
10244
10256
  role: "status",
@@ -10350,16 +10362,16 @@ function partitionMulti(elements, predicates) {
10350
10362
  /**
10351
10363
  * Component display name.
10352
10364
  */
10353
- const COMPONENT_NAME$$ = 'GenericBlock';
10365
+ const COMPONENT_NAME$14 = 'GenericBlock';
10354
10366
 
10355
10367
  /**
10356
10368
  * Component default class name and class prefix.
10357
10369
  */
10358
- const CLASSNAME$_ = 'lumx-generic-block';
10370
+ const CLASSNAME$12 = 'lumx-generic-block';
10359
10371
  const {
10360
- block: block$M,
10361
- element: element$C
10362
- } = bem(CLASSNAME$_);
10372
+ block: block$O,
10373
+ element: element$E
10374
+ } = bem(CLASSNAME$12);
10363
10375
 
10364
10376
  /**
10365
10377
  * Component default props.
@@ -10398,23 +10410,23 @@ const GenericBlock$1 = props => {
10398
10410
  } = props;
10399
10411
  return /*#__PURE__*/jsxs(FlexBox, {
10400
10412
  ref: ref,
10401
- className: classnames(className, block$M()),
10413
+ className: classnames(className, block$O()),
10402
10414
  gap: gap,
10403
10415
  orientation: orientation,
10404
10416
  ...forwardedProps,
10405
10417
  children: [figure && /*#__PURE__*/jsx(FlexBox, {
10406
10418
  ...figureProps,
10407
- className: classnames(figureProps?.className, element$C('figure')),
10419
+ className: classnames(figureProps?.className, element$E('figure')),
10408
10420
  children: figure
10409
10421
  }), content && /*#__PURE__*/jsx(FlexBox, {
10410
10422
  orientation: Orientation.vertical,
10411
10423
  fillSpace: true,
10412
10424
  ...contentProps,
10413
- className: classnames(contentProps?.className, element$C('content')),
10425
+ className: classnames(contentProps?.className, element$E('content')),
10414
10426
  children: content
10415
10427
  }), actions && /*#__PURE__*/jsx(FlexBox, {
10416
10428
  ...actionsProps,
10417
- className: classnames(actionsProps?.className, element$C('actions')),
10429
+ className: classnames(actionsProps?.className, element$E('actions')),
10418
10430
  children: actions
10419
10431
  })]
10420
10432
  });
@@ -10501,8 +10513,8 @@ const BaseGenericBlock = forwardRef((props, ref) => {
10501
10513
  }) : undefined
10502
10514
  });
10503
10515
  });
10504
- BaseGenericBlock.displayName = COMPONENT_NAME$$;
10505
- BaseGenericBlock.className = CLASSNAME$_;
10516
+ BaseGenericBlock.displayName = COMPONENT_NAME$14;
10517
+ BaseGenericBlock.className = CLASSNAME$12;
10506
10518
  BaseGenericBlock.defaultProps = DEFAULT_PROPS$U;
10507
10519
  const GenericBlock = Object.assign(BaseGenericBlock, {
10508
10520
  Figure,
@@ -10581,18 +10593,18 @@ const ComboboxState = props => {
10581
10593
  Text
10582
10594
  });
10583
10595
  };
10584
- ComboboxState.displayName = COMPONENT_NAME$10;
10585
- ComboboxState.className = CLASSNAME$$;
10596
+ ComboboxState.displayName = COMPONENT_NAME$15;
10597
+ ComboboxState.className = CLASSNAME$13;
10586
10598
 
10587
10599
  /**
10588
10600
  * Component display name.
10589
10601
  */
10590
- const COMPONENT_NAME$_ = 'ListDivider';
10602
+ const COMPONENT_NAME$13 = 'ListDivider';
10591
10603
 
10592
10604
  /**
10593
10605
  * Component default class name and class prefix.
10594
10606
  */
10595
- const CLASSNAME$Z = 'lumx-list-divider';
10607
+ const CLASSNAME$11 = 'lumx-list-divider';
10596
10608
 
10597
10609
  /**
10598
10610
  * Component default props.
@@ -10616,11 +10628,11 @@ const ListDivider$1 = props => {
10616
10628
  ref: ref,
10617
10629
  role: "none",
10618
10630
  ...forwardedProps,
10619
- className: classnames(className, CLASSNAME$Z)
10631
+ className: classnames(className, CLASSNAME$11)
10620
10632
  });
10621
10633
  };
10622
- ListDivider$1.displayName = COMPONENT_NAME$_;
10623
- ListDivider$1.className = CLASSNAME$Z;
10634
+ ListDivider$1.displayName = COMPONENT_NAME$13;
10635
+ ListDivider$1.className = CLASSNAME$11;
10624
10636
  ListDivider$1.defaultProps = DEFAULT_PROPS$T;
10625
10637
 
10626
10638
  /**
@@ -10641,8 +10653,8 @@ const ListDivider = forwardRef((props, ref) => {
10641
10653
  ref
10642
10654
  });
10643
10655
  });
10644
- ListDivider.displayName = COMPONENT_NAME$_;
10645
- ListDivider.className = CLASSNAME$Z;
10656
+ ListDivider.displayName = COMPONENT_NAME$13;
10657
+ ListDivider.className = CLASSNAME$11;
10646
10658
  ListDivider.defaultProps = DEFAULT_PROPS$T;
10647
10659
 
10648
10660
  /**
@@ -10692,16 +10704,16 @@ const CommentBlockVariant = {
10692
10704
  /**
10693
10705
  * Component display name.
10694
10706
  */
10695
- const COMPONENT_NAME$Z = 'CommentBlock';
10707
+ const COMPONENT_NAME$12 = 'CommentBlock';
10696
10708
 
10697
10709
  /**
10698
10710
  * Component default class name and class prefix.
10699
10711
  */
10700
- const CLASSNAME$Y = 'lumx-comment-block';
10712
+ const CLASSNAME$10 = 'lumx-comment-block';
10701
10713
  const {
10702
- block: block$L,
10703
- element: element$B
10704
- } = classNames.bem(CLASSNAME$Y);
10714
+ block: block$N,
10715
+ element: element$D
10716
+ } = classNames.bem(CLASSNAME$10);
10705
10717
 
10706
10718
  /**
10707
10719
  * Component default props.
@@ -10742,7 +10754,7 @@ const CommentBlock = forwardRef((props, ref) => {
10742
10754
  const hasChildren = Children.count(children) > 0;
10743
10755
  return /*#__PURE__*/jsxs("div", {
10744
10756
  ref: ref,
10745
- className: classNames.join(className, block$L({
10757
+ className: classNames.join(className, block$N({
10746
10758
  'has-children': hasChildren && isOpen,
10747
10759
  'has-indented-children': hasChildren && variant === CommentBlockVariant.indented,
10748
10760
  'has-linear-children': hasChildren && variant === CommentBlockVariant.linear,
@@ -10751,60 +10763,60 @@ const CommentBlock = forwardRef((props, ref) => {
10751
10763
  })),
10752
10764
  ...forwardedProps,
10753
10765
  children: [/*#__PURE__*/jsxs("div", {
10754
- className: element$B('wrapper'),
10766
+ className: element$D('wrapper'),
10755
10767
  children: [/*#__PURE__*/jsx("div", {
10756
- className: element$B('avatar'),
10768
+ className: element$D('avatar'),
10757
10769
  children: /*#__PURE__*/jsx(Avatar, {
10758
10770
  ...avatarProps,
10759
10771
  size: Size$1.m,
10760
10772
  onClick: onClick
10761
10773
  })
10762
10774
  }), /*#__PURE__*/jsxs("div", {
10763
- className: element$B('container'),
10775
+ className: element$D('container'),
10764
10776
  children: [/*#__PURE__*/jsxs("div", {
10765
- className: element$B('content'),
10777
+ className: element$D('content'),
10766
10778
  children: [/*#__PURE__*/jsxs("div", {
10767
- className: element$B('meta'),
10779
+ className: element$D('meta'),
10768
10780
  children: [name &&
10769
10781
  /*#__PURE__*/
10770
10782
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
10771
10783
  jsx("span", {
10772
- className: element$B('name'),
10784
+ className: element$D('name'),
10773
10785
  onClick: onClick,
10774
10786
  onMouseEnter: onMouseEnter,
10775
10787
  onMouseLeave: onMouseLeave,
10776
10788
  children: name
10777
10789
  }), headerActions && /*#__PURE__*/jsx("span", {
10778
- className: element$B('header-actions'),
10790
+ className: element$D('header-actions'),
10779
10791
  children: headerActions
10780
10792
  })]
10781
10793
  }), /*#__PURE__*/jsx("div", {
10782
- className: element$B('text'),
10794
+ className: element$D('text'),
10783
10795
  children: text
10784
10796
  }), date && (fullDate ? /*#__PURE__*/jsx(Tooltip, {
10785
10797
  label: fullDate,
10786
10798
  placement: "top",
10787
10799
  children: /*#__PURE__*/jsx("span", {
10788
- className: element$B('date'),
10800
+ className: element$D('date'),
10789
10801
  children: date
10790
10802
  })
10791
10803
  }) : /*#__PURE__*/jsx("span", {
10792
- className: element$B('date'),
10804
+ className: element$D('date'),
10793
10805
  children: date
10794
10806
  }))]
10795
10807
  }), hasActions && /*#__PURE__*/jsx("div", {
10796
- className: element$B('actions'),
10808
+ className: element$D('actions'),
10797
10809
  children: actions
10798
10810
  })]
10799
10811
  })]
10800
10812
  }), hasChildren && isOpen && /*#__PURE__*/jsx("div", {
10801
- className: element$B('children'),
10813
+ className: element$D('children'),
10802
10814
  children: children
10803
10815
  })]
10804
10816
  });
10805
10817
  });
10806
- CommentBlock.displayName = COMPONENT_NAME$Z;
10807
- CommentBlock.className = CLASSNAME$Y;
10818
+ CommentBlock.displayName = COMPONENT_NAME$12;
10819
+ CommentBlock.className = CLASSNAME$10;
10808
10820
  CommentBlock.defaultProps = DEFAULT_PROPS$S;
10809
10821
 
10810
10822
  /**
@@ -10825,12 +10837,12 @@ const isDateValid = date => date instanceof Date && !Number.isNaN(date.getTime()
10825
10837
  /**
10826
10838
  * Component display name.
10827
10839
  */
10828
- const COMPONENT_NAME$Y = 'DatePicker';
10840
+ const COMPONENT_NAME$11 = 'DatePicker';
10829
10841
 
10830
10842
  /**
10831
10843
  * Component default class name and class prefix.
10832
10844
  */
10833
- const CLASSNAME$X = 'lumx-date-picker';
10845
+ const CLASSNAME$$ = 'lumx-date-picker';
10834
10846
 
10835
10847
  /** Get first day of week for locale from the browser API */
10836
10848
  const getFromBrowser = locale => {
@@ -11052,8 +11064,8 @@ function formatDayNumber(locale, date) {
11052
11064
  }
11053
11065
 
11054
11066
  const {
11055
- element: element$A
11056
- } = classNames.bem(CLASSNAME$X);
11067
+ element: element$C
11068
+ } = classNames.bem(CLASSNAME$$);
11057
11069
 
11058
11070
  /**
11059
11071
  * Defines the props of the component.
@@ -11062,7 +11074,7 @@ const {
11062
11074
  /**
11063
11075
  * Component display name.
11064
11076
  */
11065
- const COMPONENT_NAME$X = 'DatePickerControlled';
11077
+ const COMPONENT_NAME$10 = 'DatePickerControlled';
11066
11078
 
11067
11079
  /**
11068
11080
  * DatePickerControlled component.
@@ -11147,10 +11159,10 @@ const DatePickerControlled = forwardRef((props, ref) => {
11147
11159
  const yearLabel = getYearDisplayName(locale);
11148
11160
  return /*#__PURE__*/jsxs("div", {
11149
11161
  ref: ref,
11150
- className: `${CLASSNAME$X}`,
11162
+ className: `${CLASSNAME$$}`,
11151
11163
  style: style,
11152
11164
  children: [/*#__PURE__*/jsx(Toolbar, {
11153
- className: element$A('toolbar'),
11165
+ className: element$C('toolbar'),
11154
11166
  after: /*#__PURE__*/jsx(IconButton, {
11155
11167
  ...nextButtonProps,
11156
11168
  emphasis: Emphasis$1.low,
@@ -11170,7 +11182,7 @@ const DatePickerControlled = forwardRef((props, ref) => {
11170
11182
  dir: "auto",
11171
11183
  children: monthYear
11172
11184
  }), onMonthChange && /*#__PURE__*/jsx(FlexBox, {
11173
- className: element$A('month'),
11185
+ className: element$C('month'),
11174
11186
  orientation: "horizontal",
11175
11187
  hAlign: "center",
11176
11188
  gap: "regular",
@@ -11185,7 +11197,7 @@ const DatePickerControlled = forwardRef((props, ref) => {
11185
11197
  min: 0,
11186
11198
  onBlur: updateYear,
11187
11199
  onKeyPress: updateYearOnEnterPressed,
11188
- className: element$A('year')
11200
+ className: element$C('year')
11189
11201
  }, "year") : /*#__PURE__*/jsx(Text, {
11190
11202
  as: "p",
11191
11203
  children: part
@@ -11193,17 +11205,17 @@ const DatePickerControlled = forwardRef((props, ref) => {
11193
11205
  })]
11194
11206
  })
11195
11207
  }), /*#__PURE__*/jsxs("div", {
11196
- className: element$A('calendar'),
11208
+ className: element$C('calendar'),
11197
11209
  children: [/*#__PURE__*/jsx("div", {
11198
- className: classNames.join(element$A('week-days'), element$A('days-wrapper')),
11210
+ className: classNames.join(element$C('week-days'), element$C('days-wrapper')),
11199
11211
  children: weekDays.map(({
11200
11212
  letter,
11201
11213
  number,
11202
11214
  long
11203
11215
  }) => /*#__PURE__*/jsxs("div", {
11204
- className: element$A('day-wrapper'),
11216
+ className: element$C('day-wrapper'),
11205
11217
  children: [/*#__PURE__*/jsx("span", {
11206
- className: element$A('week-day'),
11218
+ className: element$C('week-day'),
11207
11219
  "aria-hidden": true,
11208
11220
  children: letter.toLocaleUpperCase()
11209
11221
  }), /*#__PURE__*/jsx("span", {
@@ -11212,7 +11224,7 @@ const DatePickerControlled = forwardRef((props, ref) => {
11212
11224
  })]
11213
11225
  }, number))
11214
11226
  }), /*#__PURE__*/jsx("div", {
11215
- className: classNames.join(element$A('month-days'), element$A('days-wrapper')),
11227
+ className: classNames.join(element$C('month-days'), element$C('days-wrapper')),
11216
11228
  children: weeks.flatMap((week, weekIndex) => {
11217
11229
  return weekDays.map((weekDay, dayIndex) => {
11218
11230
  const {
@@ -11223,10 +11235,10 @@ const DatePickerControlled = forwardRef((props, ref) => {
11223
11235
  const isToday = !isOutOfRange && date && isSameDay(date, new Date());
11224
11236
  const isSelected = date && value && isSameDay(value, date);
11225
11237
  return /*#__PURE__*/jsx("div", {
11226
- className: element$A('day-wrapper'),
11238
+ className: element$C('day-wrapper'),
11227
11239
  children: date && /*#__PURE__*/jsxs(Button, {
11228
11240
  ref: isSelected || !value && isToday ? todayOrSelectedDateRef : null,
11229
- className: element$A('month-day', {
11241
+ className: element$C('month-day', {
11230
11242
  'is-today': isToday
11231
11243
  }),
11232
11244
  disabled: isOutOfRange,
@@ -11252,8 +11264,8 @@ const DatePickerControlled = forwardRef((props, ref) => {
11252
11264
  })]
11253
11265
  });
11254
11266
  });
11255
- DatePickerControlled.displayName = COMPONENT_NAME$X;
11256
- DatePickerControlled.className = CLASSNAME$X;
11267
+ DatePickerControlled.displayName = COMPONENT_NAME$10;
11268
+ DatePickerControlled.className = CLASSNAME$$;
11257
11269
 
11258
11270
  /**
11259
11271
  * DatePicker component.
@@ -11295,8 +11307,8 @@ const DatePicker = forwardRef((props, ref) => {
11295
11307
  onMonthChange: setSelectedMonth
11296
11308
  });
11297
11309
  });
11298
- DatePicker.displayName = COMPONENT_NAME$Y;
11299
- DatePicker.className = CLASSNAME$X;
11310
+ DatePicker.displayName = COMPONENT_NAME$11;
11311
+ DatePicker.className = CLASSNAME$$;
11300
11312
 
11301
11313
  const useBooleanState = defaultValue => {
11302
11314
  const [booleanValue, setBoolean] = useState(defaultValue);
@@ -11309,7 +11321,7 @@ const useBooleanState = defaultValue => {
11309
11321
  /**
11310
11322
  * Component display name.
11311
11323
  */
11312
- const COMPONENT_NAME$W = 'DatePickerField';
11324
+ const COMPONENT_NAME$$ = 'DatePickerField';
11313
11325
 
11314
11326
  /**
11315
11327
  * DatePickerField component.
@@ -11398,7 +11410,7 @@ const DatePickerField = forwardRef((props, ref) => {
11398
11410
  }) : null]
11399
11411
  });
11400
11412
  });
11401
- DatePickerField.displayName = COMPONENT_NAME$W;
11413
+ DatePickerField.displayName = COMPONENT_NAME$$;
11402
11414
 
11403
11415
  /**
11404
11416
  * Convenient hook to create interaction observers.
@@ -11694,16 +11706,16 @@ const useTransitionVisibility = (ref, isComponentVisible, timeout, onVisibilityC
11694
11706
  /**
11695
11707
  * Component display name.
11696
11708
  */
11697
- const COMPONENT_NAME$V = 'Dialog';
11709
+ const COMPONENT_NAME$_ = 'Dialog';
11698
11710
 
11699
11711
  /**
11700
11712
  * Component default class name and class prefix.
11701
11713
  */
11702
- const CLASSNAME$W = 'lumx-dialog';
11714
+ const CLASSNAME$_ = 'lumx-dialog';
11703
11715
  const {
11704
- block: block$K,
11705
- element: element$z
11706
- } = bem(CLASSNAME$W);
11716
+ block: block$M,
11717
+ element: element$B
11718
+ } = bem(CLASSNAME$_);
11707
11719
 
11708
11720
  /**
11709
11721
  * Component default props.
@@ -11759,7 +11771,7 @@ const Dialog$1 = props => {
11759
11771
  children: /*#__PURE__*/jsxs("div", {
11760
11772
  ref: ref,
11761
11773
  ...forwardedProps,
11762
- className: classnames(className, block$K({
11774
+ className: classnames(className, block$M({
11763
11775
  'is-hidden': !isOpen,
11764
11776
  'is-loading': isLoading,
11765
11777
  'is-shown': isOpen || isVisible,
@@ -11769,13 +11781,13 @@ const Dialog$1 = props => {
11769
11781
  zIndex
11770
11782
  },
11771
11783
  children: [/*#__PURE__*/jsx("div", {
11772
- className: element$z('overlay')
11784
+ className: element$B('overlay')
11773
11785
  }), /*#__PURE__*/jsx(HeadingLevelProvider, {
11774
11786
  level: 2,
11775
11787
  children: /*#__PURE__*/jsx(ThemeProvider, {
11776
11788
  value: undefined,
11777
11789
  children: /*#__PURE__*/jsx("div", {
11778
- className: element$z('container'),
11790
+ className: element$B('container'),
11779
11791
  role: "dialog",
11780
11792
  "aria-modal": "true",
11781
11793
  ...dialogProps,
@@ -11784,36 +11796,36 @@ const Dialog$1 = props => {
11784
11796
  childrenRefs: clickAwayRefs,
11785
11797
  parentRef: rootRef,
11786
11798
  children: /*#__PURE__*/jsxs("section", {
11787
- className: element$z('wrapper'),
11799
+ className: element$B('wrapper'),
11788
11800
  ref: wrapperRef,
11789
11801
  children: [(header || headerChildContent) && /*#__PURE__*/jsxs("header", {
11790
11802
  ...headerChildProps,
11791
- className: classnames(element$z('header', {
11803
+ className: classnames(element$B('header', {
11792
11804
  'has-divider': Boolean(forceHeaderDivider || hasTopIntersection)
11793
11805
  }), headerChildProps?.className),
11794
11806
  children: [header, headerChildContent]
11795
11807
  }), /*#__PURE__*/jsxs("div", {
11796
11808
  ref: contentRef,
11797
- className: element$z('content'),
11809
+ className: element$B('content'),
11798
11810
  children: [/*#__PURE__*/jsx("div", {
11799
- className: element$z('sentinel', {
11811
+ className: element$B('sentinel', {
11800
11812
  top: true
11801
11813
  }),
11802
11814
  ref: setSentinelTop
11803
11815
  }), content, /*#__PURE__*/jsx("div", {
11804
- className: element$z('sentinel', {
11816
+ className: element$B('sentinel', {
11805
11817
  bottom: true
11806
11818
  }),
11807
11819
  ref: setSentinelBottom
11808
11820
  })]
11809
11821
  }), (footer || footerChildContent) && /*#__PURE__*/jsxs("footer", {
11810
11822
  ...footerChildProps,
11811
- className: classnames(element$z('footer', {
11823
+ className: classnames(element$B('footer', {
11812
11824
  'has-divider': Boolean(forceFooterDivider || hasBottomIntersection)
11813
11825
  }), footerChildProps?.className),
11814
11826
  children: [footer, footerChildContent]
11815
11827
  }), isLoading && /*#__PURE__*/jsx("div", {
11816
- className: element$z('progress-overlay'),
11828
+ className: element$B('progress-overlay'),
11817
11829
  children: /*#__PURE__*/jsx(ProgressCircular, {})
11818
11830
  })]
11819
11831
  })
@@ -11976,22 +11988,22 @@ const Dialog = forwardRef((props, ref) => {
11976
11988
  ...forwardedProps
11977
11989
  }) : null;
11978
11990
  });
11979
- Dialog.displayName = COMPONENT_NAME$V;
11980
- Dialog.className = CLASSNAME$W;
11991
+ Dialog.displayName = COMPONENT_NAME$_;
11992
+ Dialog.className = CLASSNAME$_;
11981
11993
  Dialog.defaultProps = DEFAULT_PROPS$Q;
11982
11994
 
11983
11995
  /**
11984
11996
  * Component display name.
11985
11997
  */
11986
- const COMPONENT_NAME$U = 'Divider';
11998
+ const COMPONENT_NAME$Z = 'Divider';
11987
11999
 
11988
12000
  /**
11989
12001
  * Component default class name and class prefix.
11990
12002
  */
11991
- const CLASSNAME$V = 'lumx-divider';
12003
+ const CLASSNAME$Z = 'lumx-divider';
11992
12004
  const {
11993
- block: block$J
11994
- } = bem(CLASSNAME$V);
12005
+ block: block$L
12006
+ } = bem(CLASSNAME$Z);
11995
12007
 
11996
12008
  /**
11997
12009
  * Divider component.
@@ -12009,7 +12021,7 @@ const Divider$1 = props => {
12009
12021
  return /*#__PURE__*/jsx("hr", {
12010
12022
  ref: ref,
12011
12023
  ...forwardedProps,
12012
- className: classnames(className, block$J({
12024
+ className: classnames(className, block$L({
12013
12025
  [`theme-${theme}`]: Boolean(theme)
12014
12026
  }))
12015
12027
  });
@@ -12043,22 +12055,22 @@ const Divider = forwardRef((props, ref) => {
12043
12055
  ...otherProps
12044
12056
  });
12045
12057
  });
12046
- Divider.displayName = COMPONENT_NAME$U;
12047
- Divider.className = CLASSNAME$V;
12058
+ Divider.displayName = COMPONENT_NAME$Z;
12059
+ Divider.className = CLASSNAME$Z;
12048
12060
  Divider.defaultProps = DEFAULT_PROPS$P;
12049
12061
 
12050
12062
  /**
12051
12063
  * Component display name.
12052
12064
  */
12053
- const COMPONENT_NAME$T = 'DragHandle';
12065
+ const COMPONENT_NAME$Y = 'DragHandle';
12054
12066
 
12055
12067
  /**
12056
12068
  * Component default class name and class prefix.
12057
12069
  */
12058
- const CLASSNAME$U = 'lumx-drag-handle';
12070
+ const CLASSNAME$Y = 'lumx-drag-handle';
12059
12071
  const {
12060
- block: block$I
12061
- } = bem(CLASSNAME$U);
12072
+ block: block$K
12073
+ } = bem(CLASSNAME$Y);
12062
12074
 
12063
12075
  /**
12064
12076
  * DragHandle component.
@@ -12076,7 +12088,7 @@ const DragHandle$1 = props => {
12076
12088
  return /*#__PURE__*/jsx("div", {
12077
12089
  ref: ref,
12078
12090
  ...forwardedProps,
12079
- className: classnames(className, block$I({
12091
+ className: classnames(className, block$K({
12080
12092
  [`theme-${theme}`]: Boolean(theme)
12081
12093
  })),
12082
12094
  children: Icon$1({
@@ -12115,8 +12127,8 @@ const DragHandle = forwardRef((props, ref) => {
12115
12127
  ...otherProps
12116
12128
  });
12117
12129
  });
12118
- DragHandle.displayName = COMPONENT_NAME$T;
12119
- DragHandle.className = CLASSNAME$U;
12130
+ DragHandle.displayName = COMPONENT_NAME$Y;
12131
+ DragHandle.className = CLASSNAME$Y;
12120
12132
  DragHandle.defaultProps = DEFAULT_PROPS$O;
12121
12133
 
12122
12134
  const INITIAL_INDEX = -1;
@@ -12311,8 +12323,8 @@ const InternalList = forwardRef((props, ref) => {
12311
12323
  itemPadding: adjustedItemPadding
12312
12324
  });
12313
12325
  });
12314
- InternalList.displayName = COMPONENT_NAME$1e;
12315
- InternalList.className = CLASSNAME$1d;
12326
+ InternalList.displayName = COMPONENT_NAME$1j;
12327
+ InternalList.className = CLASSNAME$1h;
12316
12328
  InternalList.defaultProps = DEFAULT_PROPS$Z;
12317
12329
  const List = Object.assign(InternalList, {
12318
12330
  useKeyboardListNavigation
@@ -12362,16 +12374,16 @@ const useInfiniteScroll = (ref, callback, callbackOnMount = false, scrollTrigger
12362
12374
  /**
12363
12375
  * Component display name.
12364
12376
  */
12365
- const COMPONENT_NAME$S = 'Dropdown';
12377
+ const COMPONENT_NAME$X = 'Dropdown';
12366
12378
 
12367
12379
  /**
12368
12380
  * Component default class name and class prefix.
12369
12381
  */
12370
- const CLASSNAME$T = 'lumx-dropdown';
12382
+ const CLASSNAME$X = 'lumx-dropdown';
12371
12383
  const {
12372
- block: block$H,
12373
- element: element$y
12374
- } = classNames.bem(CLASSNAME$T);
12384
+ block: block$J,
12385
+ element: element$A
12386
+ } = classNames.bem(CLASSNAME$X);
12375
12387
 
12376
12388
  /**
12377
12389
  * Component default props.
@@ -12435,7 +12447,7 @@ const Dropdown = forwardRef((props, ref) => {
12435
12447
  ...forwardedProps,
12436
12448
  focusAnchorOnClose: focusAnchorOnClose,
12437
12449
  anchorRef: anchorRef,
12438
- className: classNames.join(className, block$H()),
12450
+ className: classNames.join(className, block$J()),
12439
12451
  elevation: 0,
12440
12452
  closeOnClickAway: closeOnClickAway,
12441
12453
  closeOnEscape: closeOnEscape,
@@ -12448,29 +12460,29 @@ const Dropdown = forwardRef((props, ref) => {
12448
12460
  placement: placement,
12449
12461
  zIndex: zIndex,
12450
12462
  children: /*#__PURE__*/jsx("div", {
12451
- className: element$y('menu'),
12463
+ className: element$A('menu'),
12452
12464
  ref: innerRef,
12453
12465
  children: popperElement
12454
12466
  })
12455
12467
  }) : null;
12456
12468
  });
12457
- Dropdown.displayName = COMPONENT_NAME$S;
12458
- Dropdown.className = CLASSNAME$T;
12469
+ Dropdown.displayName = COMPONENT_NAME$X;
12470
+ Dropdown.className = CLASSNAME$X;
12459
12471
  Dropdown.defaultProps = DEFAULT_PROPS$N;
12460
12472
 
12461
12473
  /**
12462
12474
  * Component display name.
12463
12475
  */
12464
- const COMPONENT_NAME$R = 'ExpansionPanel';
12476
+ const COMPONENT_NAME$W = 'ExpansionPanel';
12465
12477
 
12466
12478
  /**
12467
12479
  * Component default class name and class prefix.
12468
12480
  */
12469
- const CLASSNAME$S = 'lumx-expansion-panel';
12481
+ const CLASSNAME$W = 'lumx-expansion-panel';
12470
12482
  const {
12471
- block: block$G,
12472
- element: element$x
12473
- } = bem(CLASSNAME$S);
12483
+ block: block$I,
12484
+ element: element$z
12485
+ } = bem(CLASSNAME$W);
12474
12486
 
12475
12487
  /**
12476
12488
  * Component default props.
@@ -12524,7 +12536,7 @@ const ExpansionPanel$1 = props => {
12524
12536
  }
12525
12537
  };
12526
12538
  const color = theme === Theme.dark ? ColorPalette.light : ColorPalette.dark;
12527
- const rootClassName = classnames(className, block$G({
12539
+ const rootClassName = classnames(className, block$I({
12528
12540
  'has-background': hasBackground,
12529
12541
  'has-header': Boolean(!isEmpty(headerProps.children)),
12530
12542
  'has-header-divider': hasHeaderDivider,
@@ -12538,17 +12550,17 @@ const ExpansionPanel$1 = props => {
12538
12550
  ...forwardedProps,
12539
12551
  className: rootClassName,
12540
12552
  children: [/*#__PURE__*/jsxs("header", {
12541
- className: element$x('header'),
12553
+ className: element$z('header'),
12542
12554
  onClick: toggleOpen,
12543
12555
  children: [dragHandle && /*#__PURE__*/jsx("div", {
12544
- className: element$x('header-drag'),
12556
+ className: element$z('header-drag'),
12545
12557
  children: dragHandle
12546
12558
  }), /*#__PURE__*/jsx("div", {
12547
12559
  ...headerProps,
12548
- className: element$x('header-content'),
12560
+ className: element$z('header-content'),
12549
12561
  children: headerContent
12550
12562
  }), /*#__PURE__*/jsx("div", {
12551
- className: element$x('header-toggle'),
12563
+ className: element$z('header-toggle'),
12552
12564
  children: /*#__PURE__*/jsx(IconButton, {
12553
12565
  ...toggleButtonProps,
12554
12566
  color: color,
@@ -12558,15 +12570,15 @@ const ExpansionPanel$1 = props => {
12558
12570
  })
12559
12571
  })]
12560
12572
  }), /*#__PURE__*/jsx("div", {
12561
- className: element$x('wrapper'),
12573
+ className: element$z('wrapper'),
12562
12574
  ref: wrapperRef,
12563
12575
  children: (isOpen || isChildrenVisible) && /*#__PURE__*/jsxs("div", {
12564
- className: element$x('container'),
12576
+ className: element$z('container'),
12565
12577
  children: [/*#__PURE__*/jsx("div", {
12566
- className: element$x('content'),
12578
+ className: element$z('content'),
12567
12579
  children: content
12568
12580
  }), footer && /*#__PURE__*/jsx("div", {
12569
- className: element$x('footer'),
12581
+ className: element$z('footer'),
12570
12582
  children: footer
12571
12583
  })]
12572
12584
  })
@@ -12606,7 +12618,7 @@ const ExpansionPanel = forwardRef((props, ref) => {
12606
12618
  // Either take the header in children or create one with the label.
12607
12619
  const headerProps = /*#__PURE__*/React__default.isValidElement(header) ? header.props : {};
12608
12620
  const headerContent = !isEmpty(headerProps.children) ? headerProps.children : /*#__PURE__*/jsx("span", {
12609
- className: element$x('label'),
12621
+ className: element$z('label'),
12610
12622
  children: label
12611
12623
  });
12612
12624
  const wrapperRef = useRef(null);
@@ -12659,17 +12671,17 @@ const ExpansionPanel = forwardRef((props, ref) => {
12659
12671
  ...forwardedProps
12660
12672
  });
12661
12673
  });
12662
- ExpansionPanel.displayName = COMPONENT_NAME$R;
12663
- ExpansionPanel.className = CLASSNAME$S;
12674
+ ExpansionPanel.displayName = COMPONENT_NAME$W;
12675
+ ExpansionPanel.className = CLASSNAME$W;
12664
12676
  ExpansionPanel.defaultProps = DEFAULT_PROPS$M;
12665
12677
 
12666
- const COMPONENT_NAME$Q = 'Flag';
12667
- const CLASSNAME$R = 'lumx-flag';
12678
+ const COMPONENT_NAME$V = 'Flag';
12679
+ const CLASSNAME$V = 'lumx-flag';
12668
12680
  const DEFAULT_PROPS$L = {};
12669
12681
  const {
12670
- block: block$F,
12671
- element: element$w
12672
- } = bem(CLASSNAME$R);
12682
+ block: block$H,
12683
+ element: element$y
12684
+ } = bem(CLASSNAME$V);
12673
12685
 
12674
12686
  /**
12675
12687
  * Flag component.
@@ -12692,19 +12704,19 @@ const Flag$1 = props => {
12692
12704
  const isTruncated = !!truncate;
12693
12705
  return /*#__PURE__*/jsxs("div", {
12694
12706
  ...forwardedProps,
12695
- className: classnames(className, block$F({
12707
+ className: classnames(className, block$H({
12696
12708
  [`color-${flagColor}`]: Boolean(flagColor),
12697
12709
  'is-truncated': isTruncated
12698
12710
  })),
12699
12711
  children: [icon && Icon$1({
12700
12712
  icon,
12701
12713
  size: Size.xxs,
12702
- className: element$w('icon')
12714
+ className: element$y('icon')
12703
12715
  }), /*#__PURE__*/jsx(Text, {
12704
12716
  as: "span",
12705
12717
  truncate: !!truncate,
12706
12718
  typography: "overline",
12707
- className: element$w('label'),
12719
+ className: element$y('label'),
12708
12720
  children: children
12709
12721
  })]
12710
12722
  });
@@ -12727,8 +12739,8 @@ const Flag = forwardRef((props, ref) => {
12727
12739
  Text
12728
12740
  });
12729
12741
  });
12730
- Flag.displayName = COMPONENT_NAME$Q;
12731
- Flag.className = CLASSNAME$R;
12742
+ Flag.displayName = COMPONENT_NAME$V;
12743
+ Flag.className = CLASSNAME$V;
12732
12744
  Flag.defaultProps = DEFAULT_PROPS$L;
12733
12745
 
12734
12746
  /** The maximum authorized heading level. */
@@ -12757,12 +12769,12 @@ const defaultContext = {
12757
12769
  /**
12758
12770
  * Component display name.
12759
12771
  */
12760
- const COMPONENT_NAME$P = 'Heading';
12772
+ const COMPONENT_NAME$U = 'Heading';
12761
12773
 
12762
12774
  /**
12763
12775
  * Component default class name and class prefix.
12764
12776
  */
12765
- const CLASSNAME$Q = 'lumx-heading';
12777
+ const CLASSNAME$U = 'lumx-heading';
12766
12778
 
12767
12779
  /**
12768
12780
  * Component default props.
@@ -12787,7 +12799,7 @@ const getHeadingProps = (props, contextHeadingElement) => {
12787
12799
  return {
12788
12800
  ...otherProps,
12789
12801
  as: computedHeadingElement,
12790
- className: classnames(className, CLASSNAME$Q),
12802
+ className: classnames(className, CLASSNAME$U),
12791
12803
  typography: typography || DEFAULT_TYPOGRAPHY_BY_LEVEL[computedHeadingElement]
12792
12804
  };
12793
12805
  };
@@ -12825,8 +12837,8 @@ const Heading = forwardRef((props, ref) => {
12825
12837
  children: children
12826
12838
  });
12827
12839
  });
12828
- Heading.displayName = COMPONENT_NAME$P;
12829
- Heading.className = CLASSNAME$Q;
12840
+ Heading.displayName = COMPONENT_NAME$U;
12841
+ Heading.className = CLASSNAME$U;
12830
12842
  Heading.defaultProps = DEFAULT_PROPS$K;
12831
12843
 
12832
12844
  /**
@@ -12865,15 +12877,15 @@ const HeadingLevelProvider = ({
12865
12877
  /**
12866
12878
  * Component display name.
12867
12879
  */
12868
- const COMPONENT_NAME$O = 'Grid';
12880
+ const COMPONENT_NAME$T = 'Grid';
12869
12881
 
12870
12882
  /**
12871
12883
  * Component default class name and class prefix.
12872
12884
  */
12873
- const CLASSNAME$P = 'lumx-grid';
12885
+ const CLASSNAME$T = 'lumx-grid';
12874
12886
  const {
12875
- block: block$E
12876
- } = classNames.bem(CLASSNAME$P);
12887
+ block: block$G
12888
+ } = classNames.bem(CLASSNAME$T);
12877
12889
 
12878
12890
  /**
12879
12891
  * Component default props.
@@ -12904,7 +12916,7 @@ const Grid = forwardRef((props, ref) => {
12904
12916
  return /*#__PURE__*/jsx("div", {
12905
12917
  ref: ref,
12906
12918
  ...forwardedProps,
12907
- className: classNames.join(className, classNames.bem(`${CLASSNAME$P}-container`).block(), block$E({
12919
+ className: classNames.join(className, classNames.bem(`${CLASSNAME$T}-container`).block(), block$G({
12908
12920
  [`h-align-${hAlign}`]: Boolean(hAlign),
12909
12921
  [`v-align-${vAlign}`]: Boolean(vAlign),
12910
12922
  [`orientation-${orientation}`]: Boolean(orientation),
@@ -12914,22 +12926,22 @@ const Grid = forwardRef((props, ref) => {
12914
12926
  children: children
12915
12927
  });
12916
12928
  });
12917
- Grid.displayName = COMPONENT_NAME$O;
12918
- Grid.className = CLASSNAME$P;
12929
+ Grid.displayName = COMPONENT_NAME$T;
12930
+ Grid.className = CLASSNAME$T;
12919
12931
  Grid.defaultProps = DEFAULT_PROPS$J;
12920
12932
 
12921
12933
  /**
12922
12934
  * Component display name.
12923
12935
  */
12924
- const COMPONENT_NAME$N = 'GridItem';
12936
+ const COMPONENT_NAME$S = 'GridItem';
12925
12937
 
12926
12938
  /**
12927
12939
  * Component default class name and class prefix.
12928
12940
  */
12929
- const CLASSNAME$O = 'lumx-grid-item';
12941
+ const CLASSNAME$S = 'lumx-grid-item';
12930
12942
  const {
12931
- block: block$D
12932
- } = classNames.bem(CLASSNAME$O);
12943
+ block: block$F
12944
+ } = classNames.bem(CLASSNAME$S);
12933
12945
 
12934
12946
  /**
12935
12947
  * GridItem component.
@@ -12950,7 +12962,7 @@ const GridItem = forwardRef((props, ref) => {
12950
12962
  return /*#__PURE__*/jsx("div", {
12951
12963
  ref: ref,
12952
12964
  ...forwardedProps,
12953
- className: classNames.join(className, block$D({
12965
+ className: classNames.join(className, block$F({
12954
12966
  [`width-${width}`]: Boolean(width),
12955
12967
  [`order-${order}`]: Boolean(order),
12956
12968
  [`align-${align}`]: Boolean(align)
@@ -12958,18 +12970,18 @@ const GridItem = forwardRef((props, ref) => {
12958
12970
  children: children
12959
12971
  });
12960
12972
  });
12961
- GridItem.displayName = COMPONENT_NAME$N;
12962
- GridItem.className = CLASSNAME$O;
12973
+ GridItem.displayName = COMPONENT_NAME$S;
12974
+ GridItem.className = CLASSNAME$S;
12963
12975
 
12964
12976
  /**
12965
12977
  * Component display name.
12966
12978
  */
12967
- const COMPONENT_NAME$M = 'GridColumn';
12979
+ const COMPONENT_NAME$R = 'GridColumn';
12968
12980
 
12969
12981
  /**
12970
12982
  * Component default class name and class prefix.
12971
12983
  */
12972
- const CLASSNAME$N = 'lumx-grid-column';
12984
+ const CLASSNAME$R = 'lumx-grid-column';
12973
12985
 
12974
12986
  /**
12975
12987
  * Component default props.
@@ -12999,7 +13011,7 @@ const GridColumn$1 = props => {
12999
13011
  return /*#__PURE__*/jsx(Component, {
13000
13012
  ...forwardedProps,
13001
13013
  ref: ref,
13002
- className: classnames(className, CLASSNAME$N),
13014
+ className: classnames(className, CLASSNAME$R),
13003
13015
  style: {
13004
13016
  ...style,
13005
13017
  ['--lumx-grid-column-item-min-width']: isInteger(itemMinWidth) && `${itemMinWidth}px`,
@@ -13009,8 +13021,8 @@ const GridColumn$1 = props => {
13009
13021
  children: children
13010
13022
  });
13011
13023
  };
13012
- GridColumn$1.displayName = COMPONENT_NAME$M;
13013
- GridColumn$1.className = CLASSNAME$N;
13024
+ GridColumn$1.displayName = COMPONENT_NAME$R;
13025
+ GridColumn$1.className = CLASSNAME$R;
13014
13026
  GridColumn$1.defaultProps = DEFAULT_PROPS$I;
13015
13027
 
13016
13028
  /**
@@ -13039,8 +13051,8 @@ const GridColumn = forwardRef((props, ref) => {
13039
13051
  ...props
13040
13052
  });
13041
13053
  });
13042
- GridColumn.displayName = COMPONENT_NAME$M;
13043
- GridColumn.className = CLASSNAME$N;
13054
+ GridColumn.displayName = COMPONENT_NAME$R;
13055
+ GridColumn.className = CLASSNAME$R;
13044
13056
  GridColumn.defaultProps = DEFAULT_PROPS$H;
13045
13057
 
13046
13058
  /**
@@ -13062,16 +13074,16 @@ const ImageBlockCaptionPosition = {
13062
13074
  /**
13063
13075
  * Component display name.
13064
13076
  */
13065
- const COMPONENT_NAME$L = 'ImageBlock';
13077
+ const COMPONENT_NAME$Q = 'ImageBlock';
13066
13078
 
13067
13079
  /**
13068
13080
  * Component default class name and class prefix.
13069
13081
  */
13070
- const CLASSNAME$M = 'lumx-image-block';
13082
+ const CLASSNAME$Q = 'lumx-image-block';
13071
13083
  const {
13072
- block: block$C,
13073
- element: element$v
13074
- } = bem(CLASSNAME$M);
13084
+ block: block$E,
13085
+ element: element$x
13086
+ } = bem(CLASSNAME$Q);
13075
13087
 
13076
13088
  /**
13077
13089
  * Component default props.
@@ -13114,7 +13126,7 @@ const ImageBlock$1 = props => {
13114
13126
  return /*#__PURE__*/jsxs("figure", {
13115
13127
  ref: ref,
13116
13128
  ...forwardedProps,
13117
- className: classnames(className, block$C({
13129
+ className: classnames(className, block$E({
13118
13130
  [`caption-position-${captionPosition}`]: Boolean(captionPosition),
13119
13131
  [`align-${align}`]: Boolean(align),
13120
13132
  [`size-${size}`]: Boolean(size),
@@ -13123,7 +13135,7 @@ const ImageBlock$1 = props => {
13123
13135
  })),
13124
13136
  children: [/*#__PURE__*/jsx(Thumbnail, {
13125
13137
  ...thumbnailProps,
13126
- className: classnames(element$v('image'), thumbnailProps?.className),
13138
+ className: classnames(element$x('image'), thumbnailProps?.className),
13127
13139
  fillHeight: fillHeight,
13128
13140
  align: align,
13129
13141
  image: image,
@@ -13132,7 +13144,7 @@ const ImageBlock$1 = props => {
13132
13144
  alt: alt || title
13133
13145
  }), /*#__PURE__*/jsx(ImageCaption, {
13134
13146
  as: "figcaption",
13135
- baseClassName: CLASSNAME$M,
13147
+ baseClassName: CLASSNAME$Q,
13136
13148
  theme: theme,
13137
13149
  title: title,
13138
13150
  titleProps: titleProps,
@@ -13143,7 +13155,7 @@ const ImageBlock$1 = props => {
13143
13155
  align: align,
13144
13156
  truncate: captionPosition === 'over'
13145
13157
  }), actions && /*#__PURE__*/jsx("div", {
13146
- className: element$v('actions'),
13158
+ className: element$x('actions'),
13147
13159
  children: actions
13148
13160
  })]
13149
13161
  });
@@ -13263,19 +13275,19 @@ const ImageBlock = forwardRef((props, ref) => {
13263
13275
  ImageCaption
13264
13276
  });
13265
13277
  });
13266
- ImageBlock.displayName = COMPONENT_NAME$L;
13267
- ImageBlock.className = CLASSNAME$M;
13278
+ ImageBlock.displayName = COMPONENT_NAME$Q;
13279
+ ImageBlock.className = CLASSNAME$Q;
13268
13280
  ImageBlock.defaultProps = DEFAULT_PROPS$G;
13269
13281
 
13270
13282
  /**
13271
13283
  * Component display name.
13272
13284
  */
13273
- const COMPONENT_NAME$K = 'ImageLightbox';
13285
+ const COMPONENT_NAME$P = 'ImageLightbox';
13274
13286
 
13275
13287
  /**
13276
13288
  * Component default class name and class prefix.
13277
13289
  */
13278
- const CLASSNAME$L = 'lumx-image-lightbox';
13290
+ const CLASSNAME$P = 'lumx-image-lightbox';
13279
13291
 
13280
13292
  /**
13281
13293
  * Observe element size (only works if it's size depends on the window size).
@@ -13520,8 +13532,8 @@ function useAnimateScroll(scrollAreaRef) {
13520
13532
  }
13521
13533
 
13522
13534
  const {
13523
- element: element$u
13524
- } = classNames.bem(CLASSNAME$L);
13535
+ element: element$w
13536
+ } = classNames.bem(CLASSNAME$P);
13525
13537
  /** Internal image slide component for ImageLightbox */
13526
13538
  const ImageSlide = /*#__PURE__*/React__default.memo(props => {
13527
13539
  const {
@@ -13588,12 +13600,12 @@ const ImageSlide = /*#__PURE__*/React__default.memo(props => {
13588
13600
  // Make it accessible to keyboard nav when the zone is scrollable
13589
13601
  ,
13590
13602
  tabIndex: isScrollable ? 0 : undefined,
13591
- className: element$u('image-slide'),
13603
+ className: element$w('image-slide'),
13592
13604
  children: /*#__PURE__*/jsx(Thumbnail, {
13593
13605
  imgRef: useMergeRefs(imgRef, propImgRef),
13594
13606
  image: image,
13595
13607
  alt: alt,
13596
- className: element$u('thumbnail'),
13608
+ className: element$w('thumbnail'),
13597
13609
  imgProps: {
13598
13610
  ...imgProps,
13599
13611
  style: {
@@ -13612,8 +13624,8 @@ const ImageSlide = /*#__PURE__*/React__default.memo(props => {
13612
13624
  }, isEqual);
13613
13625
 
13614
13626
  const {
13615
- element: element$t
13616
- } = classNames.bem(CLASSNAME$L);
13627
+ element: element$v
13628
+ } = classNames.bem(CLASSNAME$P);
13617
13629
  /** Internal image slideshow component for ImageLightbox */
13618
13630
  const ImageSlideshow = ({
13619
13631
  activeImageIndex,
@@ -13734,12 +13746,12 @@ const ImageSlideshow = ({
13734
13746
  })
13735
13747
  }), (metadata || slideShowControls || zoomControls) && /*#__PURE__*/jsxs(FlexBox, {
13736
13748
  ref: footerRef,
13737
- className: element$t('footer'),
13749
+ className: element$v('footer'),
13738
13750
  orientation: "vertical",
13739
13751
  vAlign: "center",
13740
13752
  gap: "big",
13741
13753
  children: [metadata, /*#__PURE__*/jsxs(FlexBox, {
13742
- className: element$t('footer-actions'),
13754
+ className: element$v('footer-actions'),
13743
13755
  orientation: "horizontal",
13744
13756
  gap: "regular",
13745
13757
  children: [slideShowControls, zoomControls]
@@ -13853,7 +13865,7 @@ function useImageLightbox(props) {
13853
13865
  viewTransitionName: {
13854
13866
  source: currentImageRef,
13855
13867
  target: triggerImageRefs[currentIndex],
13856
- name: CLASSNAME$L
13868
+ name: CLASSNAME$P
13857
13869
  }
13858
13870
  });
13859
13871
  }
@@ -13905,7 +13917,7 @@ function useImageLightbox(props) {
13905
13917
  viewTransitionName: {
13906
13918
  source: triggerImage,
13907
13919
  target: currentImageRef,
13908
- name: CLASSNAME$L
13920
+ name: CLASSNAME$P
13909
13921
  }
13910
13922
  });
13911
13923
  }
@@ -13959,7 +13971,7 @@ const Inner = forwardRef((props, ref) => {
13959
13971
  }, [onClose]);
13960
13972
  return /*#__PURE__*/jsx(Lightbox, {
13961
13973
  ref: ref,
13962
- className: classNames.join(className, CLASSNAME$L),
13974
+ className: classNames.join(className, CLASSNAME$P),
13963
13975
  parentElement: parentElement,
13964
13976
  isOpen: isOpen,
13965
13977
  onClose: onClose,
@@ -13988,8 +14000,8 @@ const Inner = forwardRef((props, ref) => {
13988
14000
  })
13989
14001
  });
13990
14002
  });
13991
- Inner.displayName = COMPONENT_NAME$K;
13992
- Inner.className = CLASSNAME$L;
14003
+ Inner.displayName = COMPONENT_NAME$P;
14004
+ Inner.className = CLASSNAME$P;
13993
14005
 
13994
14006
  /**
13995
14007
  * ImageLightbox component.
@@ -14005,16 +14017,16 @@ const ImageLightbox = Object.assign(Inner, {
14005
14017
  /**
14006
14018
  * Component display name.
14007
14019
  */
14008
- const COMPONENT_NAME$J = 'InlineList';
14020
+ const COMPONENT_NAME$O = 'InlineList';
14009
14021
 
14010
14022
  /**
14011
14023
  * Component default class name and class prefix.
14012
14024
  */
14013
- const CLASSNAME$K = 'lumx-inline-list';
14025
+ const CLASSNAME$O = 'lumx-inline-list';
14014
14026
  const {
14015
- block: block$B,
14016
- element: element$s
14017
- } = bem(CLASSNAME$K);
14027
+ block: block$D,
14028
+ element: element$u
14029
+ } = bem(CLASSNAME$O);
14018
14030
 
14019
14031
  /**
14020
14032
  * Component default props.
@@ -14044,7 +14056,7 @@ const InlineList$1 = props => {
14044
14056
  jsx("ul", {
14045
14057
  ...forwardedProps,
14046
14058
  ref: ref,
14047
- className: classnames(className, block$B({
14059
+ className: classnames(className, block$D({
14048
14060
  wrap: Boolean(wrap)
14049
14061
  }), color && font(color, colorVariant), typography$1 && typography(typography$1))
14050
14062
  // Lists with removed bullet style can lose their a11y list role on some browsers
@@ -14056,9 +14068,9 @@ const InlineList$1 = props => {
14056
14068
  // eslint-disable-next-line jsx-a11y/no-redundant-roles
14057
14069
  jsxs("li", {
14058
14070
  role: "listitem",
14059
- className: element$s('item'),
14071
+ className: element$u('item'),
14060
14072
  children: [index !== 0 && /*#__PURE__*/jsx("span", {
14061
- className: element$s('item-separator'),
14073
+ className: element$u('item-separator'),
14062
14074
  "aria-hidden": "true",
14063
14075
  children: '\u00A0•\u00A0'
14064
14076
  }), item]
@@ -14066,8 +14078,8 @@ const InlineList$1 = props => {
14066
14078
  })
14067
14079
  );
14068
14080
  };
14069
- InlineList$1.displayName = COMPONENT_NAME$J;
14070
- InlineList$1.className = CLASSNAME$K;
14081
+ InlineList$1.displayName = COMPONENT_NAME$O;
14082
+ InlineList$1.className = CLASSNAME$O;
14071
14083
  InlineList$1.defaultProps = DEFAULT_PROPS$F;
14072
14084
 
14073
14085
  /**
@@ -14092,8 +14104,8 @@ const InlineList = forwardRef((props, ref) => {
14092
14104
  items: Children.toArray(children)
14093
14105
  });
14094
14106
  });
14095
- InlineList.displayName = COMPONENT_NAME$J;
14096
- InlineList.className = CLASSNAME$K;
14107
+ InlineList.displayName = COMPONENT_NAME$O;
14108
+ InlineList.className = CLASSNAME$O;
14097
14109
  InlineList.defaultProps = DEFAULT_PROPS$F;
14098
14110
 
14099
14111
  /**
@@ -14137,16 +14149,16 @@ InputLabel.defaultProps = InputLabel$1.defaultProps;
14137
14149
  /**
14138
14150
  * Component display name.
14139
14151
  */
14140
- const COMPONENT_NAME$I = 'Lightbox';
14152
+ const COMPONENT_NAME$N = 'Lightbox';
14141
14153
 
14142
14154
  /**
14143
14155
  * Component default class name and class prefix.
14144
14156
  */
14145
- const CLASSNAME$J = 'lumx-lightbox';
14157
+ const CLASSNAME$N = 'lumx-lightbox';
14146
14158
  const {
14147
- block: block$A,
14148
- element: element$r
14149
- } = bem(CLASSNAME$J);
14159
+ block: block$C,
14160
+ element: element$t
14161
+ } = bem(CLASSNAME$N);
14150
14162
 
14151
14163
  /**
14152
14164
  * Lightbox component.
@@ -14193,7 +14205,7 @@ const Lightbox$1 = props => {
14193
14205
  "aria-modal": "true",
14194
14206
  role: "dialog",
14195
14207
  tabIndex: -1,
14196
- className: classnames(className, block$A({
14208
+ className: classnames(className, block$C({
14197
14209
  'is-hidden': !isOpen,
14198
14210
  'is-shown': isOpen || isVisible,
14199
14211
  [`theme-${theme}`]: Boolean(theme)
@@ -14202,7 +14214,7 @@ const Lightbox$1 = props => {
14202
14214
  zIndex
14203
14215
  },
14204
14216
  children: [closeButtonProps && /*#__PURE__*/jsx("div", {
14205
- className: element$r('close'),
14217
+ className: element$t('close'),
14206
14218
  children: /*#__PURE__*/jsx(IconButton, {
14207
14219
  ...closeButtonProps,
14208
14220
  ref: closeButtonRef,
@@ -14222,7 +14234,7 @@ const Lightbox$1 = props => {
14222
14234
  childrenRefs: clickAwayRefs,
14223
14235
  children: /*#__PURE__*/jsx("div", {
14224
14236
  ref: childrenRef,
14225
- className: element$r('wrapper'),
14237
+ className: element$t('wrapper'),
14226
14238
  role: "presentation",
14227
14239
  children: children
14228
14240
  })
@@ -14330,8 +14342,8 @@ const Lightbox = forwardRef((props, ref) => {
14330
14342
  ...forwardedProps
14331
14343
  });
14332
14344
  });
14333
- Lightbox.displayName = COMPONENT_NAME$I;
14334
- Lightbox.className = CLASSNAME$J;
14345
+ Lightbox.displayName = COMPONENT_NAME$N;
14346
+ Lightbox.className = CLASSNAME$N;
14335
14347
 
14336
14348
  /**
14337
14349
  * Defines the props of the component.
@@ -14340,15 +14352,15 @@ Lightbox.className = CLASSNAME$J;
14340
14352
  /**
14341
14353
  * Component display name.
14342
14354
  */
14343
- const COMPONENT_NAME$H = 'Link';
14355
+ const COMPONENT_NAME$M = 'Link';
14344
14356
 
14345
14357
  /**
14346
14358
  * Component default class name and class prefix.
14347
14359
  */
14348
- const CLASSNAME$I = 'lumx-link';
14360
+ const CLASSNAME$M = 'lumx-link';
14349
14361
  const {
14350
- block: block$z
14351
- } = bem(CLASSNAME$I);
14362
+ block: block$B
14363
+ } = bem(CLASSNAME$M);
14352
14364
 
14353
14365
  /**
14354
14366
  * Link component.
@@ -14377,7 +14389,7 @@ const Link$1 = props => {
14377
14389
  ...forwardedProps,
14378
14390
  handleClick,
14379
14391
  children,
14380
- className: classnames(className, block$z({
14392
+ className: classnames(className, block$B({
14381
14393
  [`color-${color}`]: Boolean(color),
14382
14394
  [`color-variant-${colorVariant}`]: Boolean(colorVariant),
14383
14395
  'has-typography': !!typography$1
@@ -14386,8 +14398,8 @@ const Link$1 = props => {
14386
14398
  };
14387
14399
 
14388
14400
  const {
14389
- element: element$q
14390
- } = classNames.bem(CLASSNAME$I);
14401
+ element: element$s
14402
+ } = classNames.bem(CLASSNAME$M);
14391
14403
 
14392
14404
  /**
14393
14405
  * Defines the props of the component.
@@ -14422,33 +14434,33 @@ const Link = forwardRef((props, ref) => {
14422
14434
  children: wrapChildrenIconWithSpaces(/*#__PURE__*/jsxs(Fragment, {
14423
14435
  children: [leftIcon && /*#__PURE__*/jsx(Icon, {
14424
14436
  icon: leftIcon,
14425
- className: element$q('left-icon')
14437
+ className: element$s('left-icon')
14426
14438
  }), children && /*#__PURE__*/jsx("span", {
14427
- className: element$q('content'),
14439
+ className: element$s('content'),
14428
14440
  children: children
14429
14441
  }), rightIcon && /*#__PURE__*/jsx(Icon, {
14430
14442
  icon: rightIcon,
14431
- className: element$q('right-icon')
14443
+ className: element$s('right-icon')
14432
14444
  })]
14433
14445
  }))
14434
14446
  });
14435
14447
  });
14436
- Link.displayName = COMPONENT_NAME$H;
14437
- Link.className = CLASSNAME$I;
14448
+ Link.displayName = COMPONENT_NAME$M;
14449
+ Link.className = CLASSNAME$M;
14438
14450
 
14439
14451
  /**
14440
14452
  * Component display name.
14441
14453
  */
14442
- const COMPONENT_NAME$G = 'LinkPreview';
14454
+ const COMPONENT_NAME$L = 'LinkPreview';
14443
14455
 
14444
14456
  /**
14445
14457
  * Component default class name and class prefix.
14446
14458
  */
14447
- const CLASSNAME$H = 'lumx-link-preview';
14459
+ const CLASSNAME$L = 'lumx-link-preview';
14448
14460
  const {
14449
- block: block$y,
14450
- element: element$p
14451
- } = bem(CLASSNAME$H);
14461
+ block: block$A,
14462
+ element: element$r
14463
+ } = bem(CLASSNAME$L);
14452
14464
 
14453
14465
  /**
14454
14466
  * Component default props.
@@ -14487,14 +14499,14 @@ const LinkPreview$1 = props => {
14487
14499
  return /*#__PURE__*/jsx("article", {
14488
14500
  ref: ref,
14489
14501
  ...forwardedProps,
14490
- className: classnames(className, block$y({
14502
+ className: classnames(className, block$A({
14491
14503
  [`size-${adjustedSize}`]: Boolean(adjustedSize),
14492
14504
  [`theme-${theme}`]: Boolean(theme)
14493
14505
  })),
14494
14506
  children: /*#__PURE__*/jsxs("div", {
14495
- className: element$p('wrapper'),
14507
+ className: element$r('wrapper'),
14496
14508
  children: [thumbnailProps && /*#__PURE__*/jsx("div", {
14497
- className: element$p('thumbnail'),
14509
+ className: element$r('thumbnail'),
14498
14510
  children: /*#__PURE__*/jsx(Thumbnail, {
14499
14511
  ...thumbnailProps,
14500
14512
  linkAs: linkAs,
@@ -14509,9 +14521,9 @@ const LinkPreview$1 = props => {
14509
14521
  fillHeight: true
14510
14522
  })
14511
14523
  }), /*#__PURE__*/jsxs("div", {
14512
- className: element$p('container'),
14524
+ className: element$r('container'),
14513
14525
  children: [title && /*#__PURE__*/jsx(TitleHeading, {
14514
- className: element$p('title'),
14526
+ className: element$r('title'),
14515
14527
  children: /*#__PURE__*/jsx(Link, {
14516
14528
  ...linkProps,
14517
14529
  linkAs: linkAs,
@@ -14522,14 +14534,14 @@ const LinkPreview$1 = props => {
14522
14534
  children: title
14523
14535
  })
14524
14536
  }), description && /*#__PURE__*/jsx("p", {
14525
- className: element$p('description'),
14537
+ className: element$r('description'),
14526
14538
  children: description
14527
14539
  }), /*#__PURE__*/jsx("div", {
14528
- className: element$p('link'),
14540
+ className: element$r('link'),
14529
14541
  children: /*#__PURE__*/jsx(Link, {
14530
14542
  ...linkProps,
14531
14543
  linkAs: linkAs,
14532
- className: classnames(element$p('link'), linkProps?.className),
14544
+ className: classnames(element$r('link'), linkProps?.className),
14533
14545
  target: "_blank",
14534
14546
  href: link,
14535
14547
  color: theme === Theme.light ? ColorPalette.primary : ColorPalette.light,
@@ -14574,8 +14586,8 @@ const LinkPreview = forwardRef((props, ref) => {
14574
14586
  ...forwardedProps
14575
14587
  });
14576
14588
  });
14577
- LinkPreview.displayName = COMPONENT_NAME$G;
14578
- LinkPreview.className = CLASSNAME$H;
14589
+ LinkPreview.displayName = COMPONENT_NAME$L;
14590
+ LinkPreview.className = CLASSNAME$L;
14579
14591
  LinkPreview.defaultProps = DEFAULT_PROPS$E;
14580
14592
 
14581
14593
  /**
@@ -14607,8 +14619,8 @@ const ListItemAction = Object.assign(forwardRefPolymorphic((props, ref) => {
14607
14619
  children
14608
14620
  });
14609
14621
  }), {
14610
- displayName: COMPONENT_NAME$1b,
14611
- className: CLASSNAME$1a,
14622
+ displayName: COMPONENT_NAME$1g,
14623
+ className: CLASSNAME$1e,
14612
14624
  defaultProps: DEFAULT_PROPS$X
14613
14625
  });
14614
14626
 
@@ -14647,8 +14659,8 @@ const _ListItem = forwardRef((props, ref) => {
14647
14659
  handleClick: onItemSelected || props.onClick ? handleClick : undefined
14648
14660
  });
14649
14661
  });
14650
- _ListItem.displayName = COMPONENT_NAME$1c;
14651
- _ListItem.className = CLASSNAME$1b;
14662
+ _ListItem.displayName = COMPONENT_NAME$1h;
14663
+ _ListItem.className = CLASSNAME$1f;
14652
14664
  _ListItem.defaultProps = DEFAULT_PROPS$Y;
14653
14665
 
14654
14666
  /**
@@ -14662,12 +14674,12 @@ const ListItem = Object.assign(_ListItem, {
14662
14674
  /**
14663
14675
  * Component display name.
14664
14676
  */
14665
- const COMPONENT_NAME$F = 'ListSubheader';
14677
+ const COMPONENT_NAME$K = 'ListSubheader';
14666
14678
 
14667
14679
  /**
14668
14680
  * Component default class name and class prefix.
14669
14681
  */
14670
- const CLASSNAME$G = 'lumx-list-subheader';
14682
+ const CLASSNAME$K = 'lumx-list-subheader';
14671
14683
 
14672
14684
  /**
14673
14685
  * ListSubheader component.
@@ -14686,12 +14698,835 @@ const ListSubheader = forwardRef((props, ref) => {
14686
14698
  return /*#__PURE__*/jsx("li", {
14687
14699
  ref: ref,
14688
14700
  ...forwardedProps,
14689
- className: classNames.join(className, CLASSNAME$G),
14701
+ className: classNames.join(className, CLASSNAME$K),
14690
14702
  children: children
14691
14703
  });
14692
14704
  });
14693
- ListSubheader.displayName = COMPONENT_NAME$F;
14694
- ListSubheader.className = CLASSNAME$G;
14705
+ ListSubheader.displayName = COMPONENT_NAME$K;
14706
+ ListSubheader.className = CLASSNAME$K;
14707
+
14708
+ const COMPONENT_NAME$J = 'MenuButton';
14709
+
14710
+ /** Menu button core template (composition of menu provider, trigger, popover and list) */
14711
+ const MenuButton$1 = (props, {
14712
+ Menu
14713
+ }) => {
14714
+ const {
14715
+ label,
14716
+ children,
14717
+ triggerProps,
14718
+ popoverProps,
14719
+ onOpen
14720
+ } = props;
14721
+ return /*#__PURE__*/jsxs(Menu.Provider, {
14722
+ onOpen: onOpen,
14723
+ children: [/*#__PURE__*/jsx(Menu.Trigger, {
14724
+ ...triggerProps,
14725
+ children: label
14726
+ }), /*#__PURE__*/jsx(Menu.Popover, {
14727
+ ...popoverProps,
14728
+ children: /*#__PURE__*/jsx(Menu.List, {
14729
+ children: children
14730
+ })
14731
+ })]
14732
+ });
14733
+ };
14734
+
14735
+ /**
14736
+ * CSS selector for menu items (inner focusable element). Includes disabled items: per
14737
+ * WAI-ARIA APG they stay focusable so AT announces them; click is no-op'd via `aria-disabled`.
14738
+ */
14739
+ const MENU_ITEM_SELECTOR = '[data-menu-item]';
14740
+
14741
+ /** Get an item's text label (trimmed `textContent`) for typeahead matching. */
14742
+ function getItemText(item) {
14743
+ return item.textContent?.trim() ?? '';
14744
+ }
14745
+
14746
+ /** Get all item elements within a menu container, in DOM order (includes disabled). */
14747
+ function getItems(menu) {
14748
+ return Array.from(menu.querySelectorAll(MENU_ITEM_SELECTOR));
14749
+ }
14750
+
14751
+ /**
14752
+ * Find and focus the next sequential focusable element after the given trigger
14753
+ * in document tab order. Used by Tab-at-last-item to move focus forward past
14754
+ * the (now-closed) menu.
14755
+ */
14756
+ function moveFocusAfterTrigger(trigger) {
14757
+ const allFocusable = Array.from(document.querySelectorAll(TABBABLE_ELEMENTS_SELECTOR)).filter(el => !el.matches(DISABLED_SELECTOR) && el.tabIndex >= 0);
14758
+ const triggerIdx = allFocusable.indexOf(trigger);
14759
+ if (triggerIdx === -1) return;
14760
+ const next = allFocusable[triggerIdx + 1];
14761
+ next?.focus();
14762
+ }
14763
+
14764
+ /**
14765
+ * Set up a disclosure-pattern menu handle.
14766
+ *
14767
+ * The trigger is registered separately via {@link MenuHandle.registerTrigger}
14768
+ * once the trigger mounts. The menu container is registered separately via
14769
+ * {@link MenuHandle.registerMenu} once on mount — the popover uses
14770
+ * `closeMode="hide"` so the `<ul>` stays in the DOM at all times.
14771
+ *
14772
+ * IMPORTANT: this is the **disclosure widget** pattern, NOT WAI-ARIA's
14773
+ * `role="menu"`. Items are native `<button>` / `<a>` elements with `tabindex="0"`,
14774
+ * so screen readers announce them naturally and Tab navigates between them in
14775
+ * DOM order. There is no focus trap.
14776
+ *
14777
+ * @param options Options (menuId for `aria-controls`).
14778
+ * @returns A {@link MenuHandle} for interacting with the menu.
14779
+ */
14780
+ function setupMenu(options = {}) {
14781
+ const {
14782
+ menuId
14783
+ } = options;
14784
+ let trigger = null;
14785
+ let menu = null;
14786
+ let isOpenState = false;
14787
+
14788
+ /** Handle-lifetime abort controller (typeahead, etc.). */
14789
+ const handleAbort = new AbortController();
14790
+ /** Per-registration controller for trigger listeners. */
14791
+ let triggerAbort = null;
14792
+ /** Per-registration controller for menu list listeners. */
14793
+ let menuAbort = null;
14794
+ /** List focus nav controller */
14795
+ let focusNav = null;
14796
+ /** Menu handle */
14797
+ let handle;
14798
+
14799
+ /**
14800
+ * Shared typeahead controller (handle lifetime). Shared between the trigger and the
14801
+ * menu list so a character typed on the closed trigger lands in the same buffer that
14802
+ * in-menu typing reads.
14803
+ */
14804
+ const typeahead = createTypeahead(() => menu ? createSelectorTreeWalker(menu, MENU_ITEM_SELECTOR) : null, getItemText, handleAbort.signal);
14805
+ const subscribers = {
14806
+ open: new Set()
14807
+ };
14808
+ function notify(event, value) {
14809
+ subscribers[event].forEach(cb => cb(value));
14810
+ }
14811
+
14812
+ /** Open the menu (if not already open), then navigate */
14813
+ function openAndGoTo(resolve) {
14814
+ if (!isOpenState) handle.setOpen(true);
14815
+ focusNav?.goTo(resolve);
14816
+ }
14817
+
14818
+ /**
14819
+ * Accumulate a printable key into the shared typeahead buffer, then navigate to the
14820
+ * matching item using `goToItem` (immediate, for use inside the open menu).
14821
+ * Returns the matched item, or `null` when nothing matches.
14822
+ */
14823
+ function handleTypeaheadInMenu(key, currentItem) {
14824
+ const match = typeahead.handle(key, currentItem);
14825
+ if (match) focusNav?.goTo(() => match);
14826
+ return match;
14827
+ }
14828
+ handle = {
14829
+ get trigger() {
14830
+ return trigger;
14831
+ },
14832
+ setOpen(open) {
14833
+ if (isOpenState === open) return;
14834
+ isOpenState = open;
14835
+ if (trigger) trigger.setAttribute('aria-expanded', String(open));
14836
+ notify('open', open);
14837
+ },
14838
+ registerTrigger(el) {
14839
+ if (trigger && trigger !== el) {
14840
+ triggerAbort?.abort();
14841
+ triggerAbort = null;
14842
+ }
14843
+ trigger = el;
14844
+ triggerAbort = new AbortController();
14845
+ const {
14846
+ signal
14847
+ } = triggerAbort;
14848
+
14849
+ // Set ARIA attributes.
14850
+ trigger.setAttribute('aria-haspopup', 'true');
14851
+ trigger.setAttribute('aria-expanded', String(isOpenState));
14852
+ if (menuId) trigger.setAttribute('aria-controls', menuId);
14853
+
14854
+ // Click toggles the menu. When opening via click, focus the first item.
14855
+ trigger.addEventListener('click', () => {
14856
+ if (!isOpenState) {
14857
+ openAndGoTo(n => n.getFirst());
14858
+ } else {
14859
+ handle.setOpen(false);
14860
+ }
14861
+ }, {
14862
+ signal
14863
+ });
14864
+
14865
+ // Native `<button>` fires `click` on Enter/Space; other elements (Chip, role="button",
14866
+ // href-less `<a>`, …) don't, so we fire it manually.
14867
+ const needsManualActivation = trigger.tagName !== 'BUTTON';
14868
+ trigger.addEventListener('keydown', event => {
14869
+ switch (event.key) {
14870
+ case 'ArrowDown':
14871
+ event.preventDefault();
14872
+ event.stopPropagation();
14873
+ openAndGoTo(n => n.getFirst());
14874
+ break;
14875
+ case 'ArrowUp':
14876
+ event.preventDefault();
14877
+ event.stopPropagation();
14878
+ openAndGoTo(n => n.getLast());
14879
+ break;
14880
+ case 'Enter':
14881
+ case ' ':
14882
+ // Native <button> already fires `click` on Enter/Space → skip to avoid double-toggle.
14883
+ if (!needsManualActivation) break;
14884
+ event.preventDefault();
14885
+ event.stopPropagation();
14886
+ el.click();
14887
+ break;
14888
+ default:
14889
+ // Printable char on closed trigger → open menu, focus matching item.
14890
+ // When open, the list-side handler owns typeahead (skip here to avoid
14891
+ // double-buffering the char).
14892
+ if (!isOpenState && isPrintableKey(event)) {
14893
+ event.preventDefault();
14894
+ event.stopPropagation();
14895
+ // Buffer the char; items don't exist yet, matches on flushPendingNavigation
14896
+ typeahead.handle(event.key, null);
14897
+ focusNav?.goTo(n => typeahead.rematch(n.activeItem) ?? n.getFirst());
14898
+ handle.setOpen(true);
14899
+ }
14900
+ break;
14901
+ }
14902
+ }, {
14903
+ signal
14904
+ });
14905
+ return () => {
14906
+ if (trigger === el) {
14907
+ triggerAbort?.abort();
14908
+ triggerAbort = null;
14909
+ trigger = null;
14910
+ }
14911
+ };
14912
+ },
14913
+ registerMenu(el) {
14914
+ if (menu && menu !== el) {
14915
+ menuAbort?.abort();
14916
+ menuAbort = null;
14917
+ }
14918
+ menu = el;
14919
+ menuAbort = new AbortController();
14920
+ const {
14921
+ signal
14922
+ } = menuAbort;
14923
+
14924
+ // ── Focus navigation ──────────────────────────────────
14925
+ focusNav = createListFocusNavigation({
14926
+ container: menu,
14927
+ itemSelector: MENU_ITEM_SELECTOR,
14928
+ wrap: true,
14929
+ getActiveItem: () => {
14930
+ const active = document.activeElement;
14931
+ if (!active || !el.contains(active)) return null;
14932
+ return active;
14933
+ }
14934
+ }, {
14935
+ onActivate: item => {
14936
+ item.focus({
14937
+ preventScroll: false
14938
+ });
14939
+ },
14940
+ onDeactivate: () => {
14941
+ // No-op — focus moves naturally via item.focus().
14942
+ },
14943
+ onClear: () => {
14944
+ // No-op.
14945
+ }
14946
+ }, signal);
14947
+
14948
+ // ── Keyboard handlers ─────────────────────────────────
14949
+ menu.addEventListener('keydown', event => {
14950
+ // Modifier+key combos other than Shift+Tab should pass through.
14951
+ if (event.altKey || event.ctrlKey || event.metaKey) return;
14952
+ switch (event.key) {
14953
+ case 'ArrowDown':
14954
+ event.preventDefault();
14955
+ event.stopPropagation();
14956
+ focusNav?.goDown();
14957
+ break;
14958
+ case 'ArrowUp':
14959
+ event.preventDefault();
14960
+ event.stopPropagation();
14961
+ focusNav?.goUp();
14962
+ break;
14963
+ case 'Home':
14964
+ event.preventDefault();
14965
+ event.stopPropagation();
14966
+ focusNav?.goTo(s => s.getFirst());
14967
+ break;
14968
+ case 'End':
14969
+ event.preventDefault();
14970
+ event.stopPropagation();
14971
+ focusNav?.goTo(s => s.getLast());
14972
+ break;
14973
+ case 'Escape':
14974
+ event.preventDefault();
14975
+ event.stopPropagation();
14976
+ // Focus trigger before closing: with closeMode="hide" items unmount,
14977
+ // which would otherwise leave focus on body.
14978
+ trigger?.focus();
14979
+ handle.setOpen(false);
14980
+ break;
14981
+ case 'Tab':
14982
+ {
14983
+ // Tab-at-edge: close menu and move focus manually. The popover stays
14984
+ // mounted (closeMode="hide") but items unmount on close, so the focused
14985
+ // item disappears before the browser resolves the next tab stop. Blur the
14986
+ // active item (so Popover skips focus-restore), close, then move focus
14987
+ // forward (Tab) or to the trigger (Shift+Tab).
14988
+ const items = getItems(el);
14989
+ if (items.length === 0) return;
14990
+ const idx = items.indexOf(document.activeElement);
14991
+ if (idx === -1) return;
14992
+ if (event.shiftKey && idx === 0) {
14993
+ event.preventDefault();
14994
+ // Focus trigger explicitly for deterministic timing.
14995
+ trigger?.focus();
14996
+ handle.setOpen(false);
14997
+ } else if (!event.shiftKey && idx === items.length - 1) {
14998
+ event.preventDefault();
14999
+ // Blur active item so focusAnchorOnClose won't kick in.
15000
+ document.activeElement?.blur();
15001
+ handle.setOpen(false);
15002
+ // After unmount, focus the next element after the trigger.
15003
+ setTimeout(() => {
15004
+ if (trigger) moveFocusAfterTrigger(trigger);
15005
+ }, 0);
15006
+ }
15007
+ break;
15008
+ }
15009
+ default:
15010
+ // Printable characters → typeahead among visible items, navigate immediately.
15011
+ if (isPrintableKey(event)) {
15012
+ const active = document.activeElement;
15013
+ const currentItem = active && el.contains(active) ? active : null;
15014
+ const match = handleTypeaheadInMenu(event.key, currentItem);
15015
+ if (match) {
15016
+ event.preventDefault();
15017
+ event.stopPropagation();
15018
+ }
15019
+ }
15020
+ break;
15021
+ }
15022
+ }, {
15023
+ signal
15024
+ });
15025
+ return () => {
15026
+ if (menu === el) {
15027
+ menuAbort?.abort();
15028
+ menuAbort = null;
15029
+ menu = null;
15030
+ }
15031
+ };
15032
+ },
15033
+ flushPendingNavigation() {
15034
+ focusNav?.flushPendingNavigation();
15035
+ },
15036
+ subscribe(event, listener) {
15037
+ subscribers[event].add(listener);
15038
+ return () => {
15039
+ subscribers[event].delete(listener);
15040
+ };
15041
+ },
15042
+ destroy() {
15043
+ handleAbort.abort();
15044
+ triggerAbort?.abort();
15045
+ menuAbort?.abort();
15046
+ triggerAbort = null;
15047
+ menuAbort = null;
15048
+ trigger = null;
15049
+ menu = null;
15050
+ isOpenState = false;
15051
+ for (const set of Object.values(subscribers)) {
15052
+ set.clear();
15053
+ }
15054
+ }
15055
+ };
15056
+ return handle;
15057
+ }
15058
+
15059
+ /** Context value shared between Menu sub-components. */
15060
+
15061
+ const MenuContext = /*#__PURE__*/createContext(undefined);
15062
+
15063
+ /** Use Menu context. @throws if used outside `Menu.Provider`. */
15064
+ function useMenuContext() {
15065
+ const context = useContext(MenuContext);
15066
+ if (!context) {
15067
+ throw new Error('Menu sub-components must be used within a Menu.Provider');
15068
+ }
15069
+ return context;
15070
+ }
15071
+
15072
+ /**
15073
+ * MenuProvider component.
15074
+ *
15075
+ * @param props Component props.
15076
+ * @return React element.
15077
+ */
15078
+ function MenuProvider(props) {
15079
+ const {
15080
+ children,
15081
+ onOpen
15082
+ } = props;
15083
+ const menuId = useId();
15084
+ const triggerId = useId();
15085
+ const anchorRef = useRef(null);
15086
+ const handle = useMemo(() => setupMenu({
15087
+ menuId
15088
+ }), [menuId]);
15089
+
15090
+ // Forward 'open' events to the consumer callback via a ref to avoid stale closures.
15091
+ const onOpenRef = useRef(onOpen);
15092
+ onOpenRef.current = onOpen;
15093
+ useEffect(() => {
15094
+ const unsubscribe = handle.subscribe('open', isOpen => onOpenRef.current?.(isOpen));
15095
+ // Cleanup
15096
+ return () => {
15097
+ unsubscribe();
15098
+ handle.destroy();
15099
+ };
15100
+ }, [handle]);
15101
+ const contextValue = useMemo(() => ({
15102
+ handle,
15103
+ menuId,
15104
+ triggerId,
15105
+ anchorRef
15106
+ }), [handle, menuId, triggerId]);
15107
+ return /*#__PURE__*/jsx(MenuContext.Provider, {
15108
+ value: contextValue,
15109
+ children: children
15110
+ });
15111
+ }
15112
+ MenuProvider.displayName = 'Menu.Provider';
15113
+
15114
+ const COMPONENT_NAME$I = 'MenuTrigger';
15115
+ const CLASSNAME$J = 'lumx-menu-trigger';
15116
+
15117
+ /** MenuTrigger core template. Renders `Trigger` with disclosure ARIA attributes. */
15118
+ const MenuTrigger$1 = (props, {
15119
+ Trigger
15120
+ }) => {
15121
+ const {
15122
+ children,
15123
+ className,
15124
+ menuId,
15125
+ isOpen,
15126
+ ref,
15127
+ ...forwardedProps
15128
+ } = props;
15129
+ return /*#__PURE__*/jsx(Trigger, {
15130
+ ref: ref,
15131
+ ...forwardedProps,
15132
+ className: classnames(className, CLASSNAME$J),
15133
+ "aria-haspopup": "true",
15134
+ "aria-controls": menuId,
15135
+ "aria-expanded": isOpen ? 'true' : 'false',
15136
+ children: children
15137
+ });
15138
+ };
15139
+
15140
+ /**
15141
+ * Subscribe to a menu event via the handle's subscriber system.
15142
+ * Re-subscribes when the handle changes (e.g. trigger mount/unmount).
15143
+ *
15144
+ * @param event Event name to subscribe to.
15145
+ * @param initialValue Initial value used until the first event fires.
15146
+ * @returns The latest event payload (or `initialValue`).
15147
+ */
15148
+ function useMenuEvent(event, initialValue) {
15149
+ const {
15150
+ handle
15151
+ } = useMenuContext();
15152
+ const [value, setValue] = useState(initialValue);
15153
+ useEffect(() => {
15154
+ return handle.subscribe(event, setValue);
15155
+ }, [handle, event]);
15156
+ return value;
15157
+ }
15158
+
15159
+ /**
15160
+ * Subscribe to the menu open state.
15161
+ *
15162
+ * @returns `[isOpen, setIsOpen]` — open state and a setter that proxies to `handle.setOpen`.
15163
+ */
15164
+ function useMenuOpen() {
15165
+ const {
15166
+ handle
15167
+ } = useMenuContext();
15168
+ const isOpen = useMenuEvent('open', false);
15169
+ const setIsOpen = useCallback(open => handle.setOpen(open), [handle]);
15170
+ return [isOpen, setIsOpen];
15171
+ }
15172
+
15173
+ /** MenuTrigger props. Polymorphic */
15174
+
15175
+ /**
15176
+ * MenuTrigger component.
15177
+ *
15178
+ * @param props Component props.
15179
+ * @return React element.
15180
+ */
15181
+ const MenuTrigger = Object.assign(forwardRefPolymorphic((props, ref) => {
15182
+ const {
15183
+ menuId,
15184
+ triggerId,
15185
+ anchorRef,
15186
+ handle
15187
+ } = useMenuContext();
15188
+ const [isOpen] = useMenuOpen();
15189
+ const {
15190
+ as,
15191
+ children,
15192
+ ...triggerProps
15193
+ } = props;
15194
+ const TriggerComp = as ?? Button;
15195
+ const internalRef = useRef(null);
15196
+ const mergedRef = useMergeRefs(ref, internalRef, anchorRef);
15197
+
15198
+ // Register trigger with the handle on mount; clean up on unmount.
15199
+ useEffect(() => {
15200
+ const triggerEl = internalRef.current;
15201
+ if (!triggerEl) return undefined;
15202
+ return handle.registerTrigger(triggerEl);
15203
+ }, [handle]);
15204
+ return MenuTrigger$1({
15205
+ ...triggerProps,
15206
+ id: triggerProps.id ?? triggerId,
15207
+ menuId,
15208
+ isOpen,
15209
+ ref: mergedRef,
15210
+ children
15211
+ }, {
15212
+ Trigger: TriggerComp
15213
+ });
15214
+ }), {
15215
+ displayName: COMPONENT_NAME$I,
15216
+ className: CLASSNAME$J
15217
+ });
15218
+
15219
+ const COMPONENT_NAME$H = 'MenuPopover';
15220
+ const CLASSNAME$I = 'lumx-menu-popover';
15221
+ const {
15222
+ block: block$z,
15223
+ element: element$q
15224
+ } = bem(CLASSNAME$I);
15225
+
15226
+ /** MenuPopover core template. Renders a `Popover` with menu-friendly defaults. */
15227
+ const MenuPopover$1 = (props, {
15228
+ Popover,
15229
+ FlexBox
15230
+ }) => {
15231
+ const {
15232
+ children,
15233
+ className,
15234
+ isOpen,
15235
+ placement = 'bottom-start',
15236
+ anchorRef,
15237
+ handleClose,
15238
+ closeOnClickAway = true,
15239
+ closeOnEscape = true,
15240
+ usePortal = false,
15241
+ focusAnchorOnClose = true,
15242
+ ...forwardedProps
15243
+ } = props;
15244
+ return /*#__PURE__*/jsx(Popover, {
15245
+ ...forwardedProps,
15246
+ placement: placement,
15247
+ anchorRef: anchorRef,
15248
+ isOpen: isOpen,
15249
+ onClose: handleClose,
15250
+ closeOnClickAway: closeOnClickAway,
15251
+ closeOnEscape: closeOnEscape,
15252
+ usePortal: usePortal,
15253
+ focusAnchorOnClose: focusAnchorOnClose,
15254
+ withFocusTrap: false,
15255
+ closeMode: "hide",
15256
+ fitToAnchorWidth: false,
15257
+ className: block$z([className]),
15258
+ children: /*#__PURE__*/jsx(FlexBox, {
15259
+ orientation: "vertical",
15260
+ className: element$q('scroll'),
15261
+ children: children
15262
+ })
15263
+ });
15264
+ };
15265
+
15266
+ /** Popover props forwarded to the inner Popover (minus managed props). */
15267
+
15268
+ /** MenusPopover props. */
15269
+
15270
+ /**
15271
+ * MenuPopover component.
15272
+ *
15273
+ * @param props Component props.
15274
+ * @return React element.
15275
+ */
15276
+ const MenuPopover = props => {
15277
+ const {
15278
+ anchorRef
15279
+ } = useMenuContext();
15280
+ const [isOpen, setIsOpen] = useMenuOpen();
15281
+ const {
15282
+ children,
15283
+ ...popoverProps
15284
+ } = props;
15285
+ return MenuPopover$1({
15286
+ ...popoverProps,
15287
+ children,
15288
+ isOpen,
15289
+ anchorRef,
15290
+ handleClose: () => setIsOpen(false)
15291
+ }, {
15292
+ Popover,
15293
+ FlexBox
15294
+ });
15295
+ };
15296
+ MenuPopover.displayName = COMPONENT_NAME$H;
15297
+ MenuPopover.className = CLASSNAME$I;
15298
+
15299
+ /** Menu list props. */
15300
+
15301
+ const COMPONENT_NAME$G = 'Menu';
15302
+ const CLASSNAME$H = 'lumx-menu';
15303
+
15304
+ /** MenuList core template. Wraps `List` with menu-specific class and ARIA labelling. */
15305
+ const MenuList$1 = props => {
15306
+ const {
15307
+ 'aria-labelledby': ariaLabelledby,
15308
+ children,
15309
+ className,
15310
+ id,
15311
+ ref,
15312
+ ...rest
15313
+ } = props;
15314
+ return List$1({
15315
+ ...rest,
15316
+ ref,
15317
+ id,
15318
+ className: classnames(className, CLASSNAME$H),
15319
+ itemPadding: 'big',
15320
+ 'aria-labelledby': ariaLabelledby,
15321
+ children
15322
+ });
15323
+ };
15324
+
15325
+ /**
15326
+ * MenuList component.
15327
+ *
15328
+ * @param props Component props.
15329
+ * @return React element.
15330
+ */
15331
+ const MenuList = forwardRef((props, ref) => {
15332
+ const {
15333
+ menuId,
15334
+ triggerId,
15335
+ handle
15336
+ } = useMenuContext();
15337
+ const internalRef = useRef(null);
15338
+ const mergedRef = useMergeRefs(ref, internalRef);
15339
+ const {
15340
+ children,
15341
+ ...forwardedProps
15342
+ } = props;
15343
+ const [isOpen] = useMenuOpen();
15344
+
15345
+ // Register menu in context
15346
+ useLayoutEffect(() => {
15347
+ const menu = internalRef.current;
15348
+ if (!menu) return undefined;
15349
+ return handle.registerMenu(menu);
15350
+ }, [handle]);
15351
+
15352
+ // Flush pending navigation (that could not be done when the menu was closed)
15353
+ useLayoutEffect(() => {
15354
+ if (isOpen) handle.flushPendingNavigation();
15355
+ }, [handle, isOpen]);
15356
+ return MenuList$1({
15357
+ ...forwardedProps,
15358
+ id: menuId,
15359
+ 'aria-labelledby': triggerId,
15360
+ ref: mergedRef,
15361
+ children: isOpen ? children : null
15362
+ });
15363
+ });
15364
+ MenuList.displayName = COMPONENT_NAME$G;
15365
+ MenuList.className = CLASSNAME$H;
15366
+
15367
+ const Menu = {
15368
+ Provider: MenuProvider,
15369
+ Trigger: MenuTrigger,
15370
+ Popover: MenuPopover,
15371
+ List: MenuList
15372
+ };
15373
+
15374
+ /** Keys managed by MenuButton — omitted from the polymorphic trigger props. */
15375
+
15376
+ /** Polymorphic trigger props with index signature stripped and managed keys removed. */
15377
+
15378
+ /** Menu button props */
15379
+
15380
+ /**
15381
+ * MenuButton component.
15382
+ *
15383
+ * @param props Component props.
15384
+ * @return React element.
15385
+ */
15386
+ const MenuButton = Object.assign(forwardRefPolymorphic((props, ref) => {
15387
+ const {
15388
+ label,
15389
+ children,
15390
+ popoverProps,
15391
+ onOpen,
15392
+ as,
15393
+ ...triggerProps
15394
+ } = props;
15395
+ const isIconButton = as === IconButton;
15396
+ const triggerLabel = isIconButton ? undefined : label;
15397
+ const extraTriggerProps = isIconButton ? {
15398
+ label
15399
+ } : {};
15400
+ return MenuButton$1({
15401
+ label: triggerLabel,
15402
+ children,
15403
+ popoverProps,
15404
+ onOpen,
15405
+ triggerProps: {
15406
+ ...triggerProps,
15407
+ ...extraTriggerProps,
15408
+ as,
15409
+ ref
15410
+ }
15411
+ }, {
15412
+ Menu
15413
+ });
15414
+ }), {
15415
+ displayName: COMPONENT_NAME$J
15416
+ });
15417
+
15418
+ /** MenuItem props. */
15419
+
15420
+ /** Props overridden by framework wrappers. */
15421
+
15422
+ const COMPONENT_NAME$F = 'MenuItem';
15423
+ const CLASSNAME$G = 'lumx-menu-item';
15424
+ const {
15425
+ block: block$y,
15426
+ element: element$p
15427
+ } = bem(CLASSNAME$G);
15428
+
15429
+ /** MenuItem core template. Renders a `ListItem` with a `ListItemAction`. */
15430
+ const MenuItem$1 = props => {
15431
+ const {
15432
+ children,
15433
+ className,
15434
+ before,
15435
+ after,
15436
+ isDisabled,
15437
+ handleClick,
15438
+ actionProps,
15439
+ actionRef,
15440
+ ref,
15441
+ ...rest
15442
+ } = props;
15443
+ const actionElement = ListItemAction$1({
15444
+ as: 'button',
15445
+ type: 'button',
15446
+ ...actionProps,
15447
+ ref: actionRef,
15448
+ className: element$p('action'),
15449
+ handleClick,
15450
+ 'data-menu-item': '',
15451
+ 'aria-disabled': isDisabled ? 'true' : undefined,
15452
+ children
15453
+ });
15454
+ return ListItem$1({
15455
+ ref,
15456
+ size: 'tiny',
15457
+ ...rest,
15458
+ className: classnames(className, block$y()),
15459
+ before,
15460
+ after,
15461
+ children: actionElement
15462
+ });
15463
+ };
15464
+
15465
+ /**
15466
+ * MenuItem component.
15467
+ *
15468
+ * @param props Component props.
15469
+ * @return React element.
15470
+ */
15471
+ const MenuItem = forwardRef((props, ref) => {
15472
+ const {
15473
+ handle
15474
+ } = useMenuContext();
15475
+ const {
15476
+ children,
15477
+ icon,
15478
+ color,
15479
+ before,
15480
+ after,
15481
+ isDisabled,
15482
+ onClick,
15483
+ actionProps,
15484
+ ...rest
15485
+ } = props;
15486
+ const internalRef = useRef(null);
15487
+ const actionRef = useRef(null);
15488
+ const mergedRef = useMergeRefs(ref, internalRef);
15489
+ const handleClick = event => {
15490
+ if (isDisabled) {
15491
+ event.preventDefault();
15492
+ return;
15493
+ }
15494
+ onClick?.(event);
15495
+ if (!event.defaultPrevented) {
15496
+ // Focus the trigger before closing so focus restoration works with
15497
+ // closeMode="hide" (items unmount on close, leaving focus on body).
15498
+ handle.trigger?.focus();
15499
+ handle.setOpen(false);
15500
+ }
15501
+ };
15502
+
15503
+ // Prepend the optional `icon` to the `before` slot — consumer-supplied `before`
15504
+ // (if any) is rendered after the icon to preserve composability.
15505
+ const mergedBefore = icon ? /*#__PURE__*/jsxs(Fragment, {
15506
+ children: [/*#__PURE__*/jsx(Icon, {
15507
+ icon: icon,
15508
+ size: "xs",
15509
+ color: color
15510
+ }), before]
15511
+ }) : before;
15512
+ return MenuItem$1({
15513
+ ...rest,
15514
+ ref: mergedRef,
15515
+ actionRef,
15516
+ before: mergedBefore,
15517
+ after,
15518
+ children: /*#__PURE__*/jsx(Text, {
15519
+ as: "span",
15520
+ color: color,
15521
+ children: children
15522
+ }),
15523
+ isDisabled,
15524
+ actionProps,
15525
+ handleClick
15526
+ });
15527
+ });
15528
+ MenuItem.displayName = COMPONENT_NAME$F;
15529
+ MenuItem.className = CLASSNAME$G;
14695
15530
 
14696
15531
  /**
14697
15532
  * Component display name.
@@ -17937,9 +18772,9 @@ const SkeletonTypography = forwardRef((props, ref) => {
17937
18772
  ...forwardedProps
17938
18773
  });
17939
18774
  });
17940
- SkeletonTypography.displayName = COMPONENT_NAME$16;
18775
+ SkeletonTypography.displayName = COMPONENT_NAME$1b;
17941
18776
  SkeletonTypography.defaultProps = DEFAULT_PROPS$j;
17942
- SkeletonTypography.className = CLASSNAME$15;
18777
+ SkeletonTypography.className = CLASSNAME$19;
17943
18778
 
17944
18779
  /**
17945
18780
  * Clamp value in range.
@@ -21479,5 +22314,5 @@ UserBlock.displayName = COMPONENT_NAME;
21479
22314
  UserBlock.className = CLASSNAME;
21480
22315
  UserBlock.defaultProps = DEFAULT_PROPS;
21481
22316
 
21482
- export { AlertDialog, Autocomplete, AutocompleteMultiple, Avatar, Badge, BadgeWrapper, Button, ButtonGroup, CLASSNAME$1s as CLASSNAME, COMPONENT_NAME$1t as COMPONENT_NAME, Checkbox, Chip, ChipGroup, Combobox, CommentBlock, CommentBlockVariant, DEFAULT_PROPS$1c as DEFAULT_PROPS, DatePicker, DatePickerControlled, DatePickerField, Dialog, Divider, DragHandle, Dropdown, ExpansionPanel, Flag, FlexBox, GenericBlock, GenericBlockGapSize, Grid, GridColumn, GridItem, Heading, HeadingLevelProvider, Icon, IconButton, ImageBlock, ImageBlockCaptionPosition, ImageLightbox, InlineList, InputHelper, InputLabel, Lightbox, Link, LinkPreview, List, ListDivider, ListItem, ListSection, ListSubheader, Message, Mosaic, Navigation, Notification, Placement, Popover, PopoverDialog, PostBlock, Progress, ProgressCircular, ProgressLinear, ProgressTracker, ProgressTrackerProvider, ProgressTrackerStep, ProgressTrackerStepPanel, ProgressVariant, RadioButton, RadioGroup, RawInputText, RawInputTextarea, Select, SelectButton, SelectMultiple, SelectMultipleField, SelectTextField, SelectVariant, SelectionChipGroup, SideNavigation, SideNavigationItem, SkeletonCircle, SkeletonRectangle, SkeletonRectangleVariant, SkeletonTypography, Slider, Slides, Slideshow, SlideshowControls, SlideshowItem, Switch, CLASSNAME$3 as TIME_PICKER_FIELD_CLASSNAME, COMPONENT_NAME$2 as TIME_PICKER_FIELD_COMPONENT_NAME, Tab, TabList, TabListLayout, TabPanel, TabProvider, Table, TableBody, TableCell, TableCellVariant, TableHeader, TableRow, Text, TextField, ThOrder, ThemeProvider, Thumbnail, ThumbnailAspectRatio, ThumbnailObjectFit, ThumbnailVariant, TimePickerField, Toolbar, Tooltip, Uploader, UploaderVariant, UserBlock, clamp, useFocusPointStyle, useHeadingLevel, useTheme };
22317
+ export { AlertDialog, Autocomplete, AutocompleteMultiple, Avatar, Badge, BadgeWrapper, Button, ButtonGroup, CLASSNAME$1w as CLASSNAME, COMPONENT_NAME$1y as COMPONENT_NAME, Checkbox, Chip, ChipGroup, Combobox, CommentBlock, CommentBlockVariant, DEFAULT_PROPS$1c as DEFAULT_PROPS, DatePicker, DatePickerControlled, DatePickerField, Dialog, Divider, DragHandle, Dropdown, ExpansionPanel, Flag, FlexBox, GenericBlock, GenericBlockGapSize, Grid, GridColumn, GridItem, Heading, HeadingLevelProvider, Icon, IconButton, ImageBlock, ImageBlockCaptionPosition, ImageLightbox, InlineList, InputHelper, InputLabel, Lightbox, Link, LinkPreview, List, ListDivider, ListItem, ListSection, ListSubheader, MenuButton, ListDivider as MenuDivider, MenuItem, Message, Mosaic, Navigation, Notification, Placement, Popover, PopoverDialog, PostBlock, Progress, ProgressCircular, ProgressLinear, ProgressTracker, ProgressTrackerProvider, ProgressTrackerStep, ProgressTrackerStepPanel, ProgressVariant, RadioButton, RadioGroup, RawInputText, RawInputTextarea, Select, SelectButton, SelectMultiple, SelectMultipleField, SelectTextField, SelectVariant, SelectionChipGroup, SideNavigation, SideNavigationItem, SkeletonCircle, SkeletonRectangle, SkeletonRectangleVariant, SkeletonTypography, Slider, Slides, Slideshow, SlideshowControls, SlideshowItem, Switch, CLASSNAME$3 as TIME_PICKER_FIELD_CLASSNAME, COMPONENT_NAME$2 as TIME_PICKER_FIELD_COMPONENT_NAME, Tab, TabList, TabListLayout, TabPanel, TabProvider, Table, TableBody, TableCell, TableCellVariant, TableHeader, TableRow, Text, TextField, ThOrder, ThemeProvider, Thumbnail, ThumbnailAspectRatio, ThumbnailObjectFit, ThumbnailVariant, TimePickerField, Toolbar, Tooltip, Uploader, UploaderVariant, UserBlock, clamp, useFocusPointStyle, useHeadingLevel, useTheme };
21483
22318
  //# sourceMappingURL=index.js.map