@helpwave/hightide 0.1.37 → 0.1.39

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 (144) hide show
  1. package/dist/components/date/DatePicker.js.map +1 -1
  2. package/dist/components/date/DatePicker.mjs.map +1 -1
  3. package/dist/components/date/DayPicker.js.map +1 -1
  4. package/dist/components/date/DayPicker.mjs.map +1 -1
  5. package/dist/components/date/TimeDisplay.js.map +1 -1
  6. package/dist/components/date/TimeDisplay.mjs.map +1 -1
  7. package/dist/components/date/YearMonthPicker.js.map +1 -1
  8. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  9. package/dist/components/date/index.js.map +1 -1
  10. package/dist/components/date/index.mjs.map +1 -1
  11. package/dist/components/dialog/ConfirmDialog.js +15 -9
  12. package/dist/components/dialog/ConfirmDialog.js.map +1 -1
  13. package/dist/components/dialog/ConfirmDialog.mjs +16 -10
  14. package/dist/components/dialog/ConfirmDialog.mjs.map +1 -1
  15. package/dist/components/dialog/Dialog.d.mts +4 -5
  16. package/dist/components/dialog/Dialog.d.ts +4 -5
  17. package/dist/components/dialog/Dialog.js +15 -9
  18. package/dist/components/dialog/Dialog.js.map +1 -1
  19. package/dist/components/dialog/Dialog.mjs +16 -10
  20. package/dist/components/dialog/Dialog.mjs.map +1 -1
  21. package/dist/components/dialog/DiscardChangesDialog.js +15 -9
  22. package/dist/components/dialog/DiscardChangesDialog.js.map +1 -1
  23. package/dist/components/dialog/DiscardChangesDialog.mjs +16 -10
  24. package/dist/components/dialog/DiscardChangesDialog.mjs.map +1 -1
  25. package/dist/components/dialog/InputDialog.js +15 -9
  26. package/dist/components/dialog/InputDialog.js.map +1 -1
  27. package/dist/components/dialog/InputDialog.mjs +16 -10
  28. package/dist/components/dialog/InputDialog.mjs.map +1 -1
  29. package/dist/components/dialog/LanguageDialog.js +188 -154
  30. package/dist/components/dialog/LanguageDialog.js.map +1 -1
  31. package/dist/components/dialog/LanguageDialog.mjs +151 -116
  32. package/dist/components/dialog/LanguageDialog.mjs.map +1 -1
  33. package/dist/components/dialog/ThemeDialog.js +191 -157
  34. package/dist/components/dialog/ThemeDialog.js.map +1 -1
  35. package/dist/components/dialog/ThemeDialog.mjs +151 -116
  36. package/dist/components/dialog/ThemeDialog.mjs.map +1 -1
  37. package/dist/components/dialog/index.js +205 -171
  38. package/dist/components/dialog/index.js.map +1 -1
  39. package/dist/components/dialog/index.mjs +152 -117
  40. package/dist/components/dialog/index.mjs.map +1 -1
  41. package/dist/components/index.js +337 -299
  42. package/dist/components/index.js.map +1 -1
  43. package/dist/components/index.mjs +198 -159
  44. package/dist/components/index.mjs.map +1 -1
  45. package/dist/components/layout/Carousel.d.mts +2 -1
  46. package/dist/components/layout/Carousel.d.ts +2 -1
  47. package/dist/components/layout/Carousel.js +4 -0
  48. package/dist/components/layout/Carousel.js.map +1 -1
  49. package/dist/components/layout/Carousel.mjs +4 -0
  50. package/dist/components/layout/Carousel.mjs.map +1 -1
  51. package/dist/components/layout/TextImage.js.map +1 -1
  52. package/dist/components/layout/TextImage.mjs.map +1 -1
  53. package/dist/components/layout/index.js +4 -0
  54. package/dist/components/layout/index.js.map +1 -1
  55. package/dist/components/layout/index.mjs +4 -0
  56. package/dist/components/layout/index.mjs.map +1 -1
  57. package/dist/components/loading-states/ErrorComponent.js.map +1 -1
  58. package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
  59. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  60. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  61. package/dist/components/loading-states/index.js.map +1 -1
  62. package/dist/components/loading-states/index.mjs.map +1 -1
  63. package/dist/components/navigation/Pagination.js.map +1 -1
  64. package/dist/components/navigation/Pagination.mjs.map +1 -1
  65. package/dist/components/navigation/StepperBar.js.map +1 -1
  66. package/dist/components/navigation/StepperBar.mjs.map +1 -1
  67. package/dist/components/navigation/index.js.map +1 -1
  68. package/dist/components/navigation/index.mjs.map +1 -1
  69. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  70. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  71. package/dist/components/properties/DateProperty.js.map +1 -1
  72. package/dist/components/properties/DateProperty.mjs.map +1 -1
  73. package/dist/components/properties/MultiSelectProperty.js +129 -101
  74. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  75. package/dist/components/properties/MultiSelectProperty.mjs +131 -102
  76. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  77. package/dist/components/properties/NumberProperty.js.map +1 -1
  78. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  79. package/dist/components/properties/PropertyBase.js.map +1 -1
  80. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  81. package/dist/components/properties/SelectProperty.js +129 -101
  82. package/dist/components/properties/SelectProperty.js.map +1 -1
  83. package/dist/components/properties/SelectProperty.mjs +131 -102
  84. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  85. package/dist/components/properties/TextProperty.js.map +1 -1
  86. package/dist/components/properties/TextProperty.mjs.map +1 -1
  87. package/dist/components/properties/index.js +129 -101
  88. package/dist/components/properties/index.js.map +1 -1
  89. package/dist/components/properties/index.mjs +131 -102
  90. package/dist/components/properties/index.mjs.map +1 -1
  91. package/dist/components/table/Table.js.map +1 -1
  92. package/dist/components/table/Table.mjs.map +1 -1
  93. package/dist/components/table/TableFilterButton.js.map +1 -1
  94. package/dist/components/table/TableFilterButton.mjs.map +1 -1
  95. package/dist/components/table/index.js.map +1 -1
  96. package/dist/components/table/index.mjs.map +1 -1
  97. package/dist/components/user-action/CopyToClipboardWrapper.js.map +1 -1
  98. package/dist/components/user-action/CopyToClipboardWrapper.mjs.map +1 -1
  99. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  100. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  101. package/dist/components/user-action/SearchBar.js.map +1 -1
  102. package/dist/components/user-action/SearchBar.mjs.map +1 -1
  103. package/dist/components/user-action/index.js +129 -101
  104. package/dist/components/user-action/index.js.map +1 -1
  105. package/dist/components/user-action/index.mjs +131 -102
  106. package/dist/components/user-action/index.mjs.map +1 -1
  107. package/dist/components/user-action/select/Select.d.mts +2 -0
  108. package/dist/components/user-action/select/Select.d.ts +2 -0
  109. package/dist/components/user-action/select/Select.js +129 -101
  110. package/dist/components/user-action/select/Select.js.map +1 -1
  111. package/dist/components/user-action/select/Select.mjs +131 -102
  112. package/dist/components/user-action/select/Select.mjs.map +1 -1
  113. package/dist/components/user-action/select/index.js +129 -101
  114. package/dist/components/user-action/select/index.js.map +1 -1
  115. package/dist/components/user-action/select/index.mjs +131 -102
  116. package/dist/components/user-action/select/index.mjs.map +1 -1
  117. package/dist/hooks/index.js.map +1 -1
  118. package/dist/hooks/index.mjs.map +1 -1
  119. package/dist/hooks/useValidators.js.map +1 -1
  120. package/dist/hooks/useValidators.mjs.map +1 -1
  121. package/dist/index.js +362 -324
  122. package/dist/index.js.map +1 -1
  123. package/dist/index.mjs +206 -167
  124. package/dist/index.mjs.map +1 -1
  125. package/dist/localization/LanguageProvider.js +1 -1
  126. package/dist/localization/LanguageProvider.js.map +1 -1
  127. package/dist/localization/LanguageProvider.mjs +1 -1
  128. package/dist/localization/LanguageProvider.mjs.map +1 -1
  129. package/dist/localization/index.js +1 -1
  130. package/dist/localization/index.js.map +1 -1
  131. package/dist/localization/index.mjs +1 -1
  132. package/dist/localization/index.mjs.map +1 -1
  133. package/dist/localization/useTranslation.js.map +1 -1
  134. package/dist/localization/useTranslation.mjs.map +1 -1
  135. package/dist/style/globals.css +0 -3
  136. package/dist/theming/index.js +1 -1
  137. package/dist/theming/index.js.map +1 -1
  138. package/dist/theming/index.mjs +1 -1
  139. package/dist/theming/index.mjs.map +1 -1
  140. package/dist/theming/useTheme.js +1 -1
  141. package/dist/theming/useTheme.js.map +1 -1
  142. package/dist/theming/useTheme.mjs +1 -1
  143. package/dist/theming/useTheme.mjs.map +1 -1
  144. package/package.json +1 -1
@@ -304,9 +304,8 @@ var useTranslation = (translations, overwriteTranslation = {}) => {
304
304
  import clsx3 from "clsx";
305
305
 
306
306
  // src/components/dialog/Dialog.tsx
307
- import { useEffect as useEffect5 } from "react";
308
- import { useState as useState6 } from "react";
309
- import { useRef as useRef2 } from "react";
307
+ import { useId as useId2 } from "react";
308
+ import { useEffect as useEffect5, useRef as useRef2, useState as useState6 } from "react";
310
309
  import clsx2 from "clsx";
311
310
  import { X } from "lucide-react";
312
311
 
@@ -661,7 +660,7 @@ var useLogOnce = (message, condition, options) => {
661
660
 
662
661
  // src/components/dialog/Dialog.tsx
663
662
  import { createPortal } from "react-dom";
664
- import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
663
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
665
664
  var Dialog = ({
666
665
  children,
667
666
  isOpen,
@@ -669,13 +668,16 @@ var Dialog = ({
669
668
  description,
670
669
  isModal = true,
671
670
  onClose,
672
- className,
673
671
  backgroundClassName,
674
672
  position = "center",
675
- isAnimated = true
673
+ isAnimated = true,
674
+ containerClassName,
675
+ ...props
676
676
  }) => {
677
677
  const translation = useTranslation([formTranslation]);
678
678
  const [visible, setVisible] = useState6(isOpen);
679
+ const generatedId = useId2();
680
+ const id = props.id ?? generatedId;
679
681
  const ref = useRef2(null);
680
682
  useEffect5(() => {
681
683
  if (isOpen) {
@@ -702,14 +704,16 @@ var Dialog = ({
702
704
  none: ""
703
705
  };
704
706
  const positionStyle = positionMap[position];
707
+ if (!visible) return;
705
708
  return createPortal(
706
- /* @__PURE__ */ jsxs2(Fragment, { children: [
709
+ /* @__PURE__ */ jsxs2("div", { id: `dialog-container-${id}`, className: clsx2("fixed inset-0 h-screen w-screen", containerClassName), children: [
707
710
  /* @__PURE__ */ jsx3(
708
711
  "div",
709
712
  {
713
+ id: `dialog-background-${id}`,
710
714
  hidden: !visible,
711
715
  className: clsx2(
712
- "fixed inset-0 h-screen w-screen bg-overlay-shadow z-100",
716
+ "fixed inset-0 h-screen w-screen bg-overlay-shadow",
713
717
  {
714
718
  "motion-safe:animate-fade-in": isOpen,
715
719
  "motion-safe:animate-fade-out": !isOpen
@@ -728,6 +732,8 @@ var Dialog = ({
728
732
  /* @__PURE__ */ jsxs2(
729
733
  "div",
730
734
  {
735
+ ...props,
736
+ id: `dialog-${id}`,
731
737
  ref,
732
738
  hidden: !visible,
733
739
  onKeyDown: (event) => {
@@ -741,13 +747,13 @@ var Dialog = ({
741
747
  }
742
748
  },
743
749
  className: clsx2(
744
- "flex-col-2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-hw-bottom max-w-[calc(100vw_-_2rem)] max-h-[calc(100vh_-_2rem)] z-100",
750
+ "flex-col-2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-hw-bottom max-w-[calc(100vw_-_2rem)] max-h-[calc(100vh_-_2rem)]",
745
751
  {
746
752
  "motion-safe:animate-pop-in": isOpen,
747
753
  "motion-safe:animate-pop-out": !isOpen
748
754
  },
749
755
  positionStyle,
750
- className
756
+ props.className
751
757
  ),
752
758
  children: [
753
759
  /* @__PURE__ */ jsx3("div", { className: "typography-title-lg mr-8", children: titleElement }),
@@ -1086,15 +1092,16 @@ import {
1086
1092
  useCallback as useCallback6,
1087
1093
  useContext as useContext2,
1088
1094
  useEffect as useEffect9,
1089
- useId as useId3,
1095
+ useId as useId4,
1090
1096
  useImperativeHandle as useImperativeHandle2,
1097
+ useMemo as useMemo2,
1091
1098
  useRef as useRef4,
1092
1099
  useState as useState10
1093
1100
  } from "react";
1094
1101
  import clsx7 from "clsx";
1095
1102
 
1096
1103
  // src/components/layout/Expandable.tsx
1097
- import { forwardRef as forwardRef3, useCallback as useCallback4, useId as useId2 } from "react";
1104
+ import { forwardRef as forwardRef3, useCallback as useCallback4, useId as useId3 } from "react";
1098
1105
  import { ChevronDown } from "lucide-react";
1099
1106
  import clsx5 from "clsx";
1100
1107
  import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
@@ -1127,7 +1134,7 @@ var Expandable = forwardRef3(function Expandable2({
1127
1134
  }, ref) {
1128
1135
  const defaultIcon = useCallback4((expanded) => /* @__PURE__ */ jsx8(ExpansionIcon, { isExpanded: expanded }), []);
1129
1136
  icon ??= defaultIcon;
1130
- const generatedId = useId2();
1137
+ const generatedId = useId3();
1131
1138
  const id = providedId ?? generatedId;
1132
1139
  return /* @__PURE__ */ jsxs4(
1133
1140
  "div",
@@ -1391,9 +1398,9 @@ function useFloatingElement({
1391
1398
 
1392
1399
  // src/components/user-action/select/Select.tsx
1393
1400
  import { createPortal as createPortal2 } from "react-dom";
1394
- import { Fragment as Fragment3, jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
1401
+ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
1395
1402
  var defaultToggleOpenOptions = {
1396
- highlightStartPosition: "first"
1403
+ highlightStartPositionBehavior: "first"
1397
1404
  };
1398
1405
  var SelectContext = createContext2(null);
1399
1406
  function useSelectContext() {
@@ -1416,47 +1423,62 @@ var SelectRoot = ({
1416
1423
  isMultiSelect = false,
1417
1424
  iconAppearance = "left"
1418
1425
  }) => {
1419
- const [options, setOptions] = useState10([]);
1420
1426
  const triggerRef = useRef4(null);
1421
- const generatedId = useId3();
1427
+ const generatedId = useId4();
1422
1428
  const usedId = id ?? generatedId;
1423
1429
  const [internalState, setInternalState] = useState10({
1424
- isOpen
1430
+ isOpen,
1431
+ options: []
1425
1432
  });
1426
- const selectedValues = isMultiSelect ? values ?? [] : [value].filter(Boolean);
1433
+ const selectedValues = useMemo2(
1434
+ () => isMultiSelect ? values ?? [] : [value].filter(Boolean),
1435
+ [isMultiSelect, value, values]
1436
+ );
1437
+ const selectedOptions = useMemo2(
1438
+ () => selectedValues.map((value2) => internalState.options.find((option) => value2 === option.value)).filter(Boolean),
1439
+ [selectedValues, internalState.options]
1440
+ );
1427
1441
  const state = {
1428
1442
  ...internalState,
1429
1443
  id: usedId,
1430
1444
  disabled,
1431
1445
  invalid,
1432
1446
  value: selectedValues,
1433
- options,
1434
- selectedOptions: selectedValues.map((value2) => options.find((option) => value2 === option.value)).filter(Boolean)
1447
+ selectedOptions
1435
1448
  };
1436
1449
  const config = {
1437
1450
  isMultiSelect,
1438
1451
  iconAppearance
1439
1452
  };
1440
1453
  const registerItem = useCallback6((item) => {
1441
- setOptions((prev) => {
1442
- const updated = [...prev, item];
1443
- updated.sort((a, b) => {
1454
+ setInternalState((prev) => {
1455
+ const updatedOptions = [...prev.options, item];
1456
+ updatedOptions.sort((a, b) => {
1444
1457
  const aEl = a.ref.current;
1445
1458
  const bEl = b.ref.current;
1446
1459
  if (!aEl || !bEl) return 0;
1447
1460
  return aEl.compareDocumentPosition(bEl) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
1448
1461
  });
1449
- return updated;
1462
+ return {
1463
+ ...prev,
1464
+ options: updatedOptions
1465
+ };
1450
1466
  });
1451
1467
  }, []);
1452
1468
  const unregisterItem = useCallback6((value2) => {
1453
- setOptions((prev) => prev.filter((i) => i.value !== value2));
1469
+ setInternalState((prev) => {
1470
+ const updatedOptions = prev.options.filter((i) => i.value !== value2);
1471
+ return {
1472
+ ...prev,
1473
+ options: updatedOptions
1474
+ };
1475
+ });
1454
1476
  }, []);
1455
1477
  const toggleSelection = (value2, isSelected) => {
1456
1478
  if (disabled) {
1457
1479
  return;
1458
1480
  }
1459
- const option = options.find((i) => i.value === value2);
1481
+ const option = state.options.find((i) => i.value === value2);
1460
1482
  if (!option) {
1461
1483
  console.error(`SelectOption with value: ${value2} not found`);
1462
1484
  return;
@@ -1499,35 +1521,40 @@ var SelectRoot = ({
1499
1521
  triggerRef.current = null;
1500
1522
  }, []);
1501
1523
  const toggleOpen = (isOpen2, toggleOpenOptions) => {
1502
- const { highlightStartPosition } = { ...defaultToggleOpenOptions, ...toggleOpenOptions };
1503
- let highlightedIndex;
1504
- if (highlightStartPosition === "first") {
1505
- highlightedIndex = options.findIndex((option) => !option.disabled);
1506
- } else {
1507
- highlightedIndex = options.length - 1 - [...options].reverse().findIndex((option) => !option.disabled);
1508
- }
1509
- if (highlightedIndex === -1 || highlightedIndex === options.length) {
1510
- highlightedIndex = 0;
1524
+ const { highlightStartPositionBehavior } = { ...defaultToggleOpenOptions, ...toggleOpenOptions };
1525
+ let firstSelectedValue;
1526
+ let firstEnabledValue;
1527
+ for (let i = 0; i < state.options.length; i++) {
1528
+ const currentOption = state.options[highlightStartPositionBehavior === "first" ? i : state.options.length - i - 1];
1529
+ if (!currentOption.disabled) {
1530
+ if (!firstEnabledValue) {
1531
+ firstEnabledValue = currentOption.value;
1532
+ }
1533
+ if (selectedValues.includes(currentOption.value)) {
1534
+ firstSelectedValue = currentOption.value;
1535
+ break;
1536
+ }
1537
+ }
1511
1538
  }
1512
1539
  setInternalState((prevState) => ({
1513
1540
  ...prevState,
1514
1541
  isOpen: isOpen2 ?? !prevState.isOpen,
1515
- highlightedValue: options[highlightedIndex].value
1542
+ highlightedValue: firstSelectedValue ?? firstEnabledValue
1516
1543
  }));
1517
1544
  };
1518
1545
  const moveHighlightedIndex = (delta) => {
1519
- let highlightedIndex = options.findIndex((value2) => value2.value === internalState.highlightedValue);
1546
+ let highlightedIndex = state.options.findIndex((value2) => value2.value === internalState.highlightedValue);
1520
1547
  if (highlightedIndex === -1) {
1521
1548
  highlightedIndex = 0;
1522
1549
  }
1523
- const optionLength = options.length;
1550
+ const optionLength = state.options.length;
1524
1551
  const startIndex = (highlightedIndex + delta % optionLength + optionLength) % optionLength;
1525
1552
  const isForward = delta >= 0;
1526
- let highlightedValue = options[startIndex].value;
1527
- for (let i = 0; i < options.length; i++) {
1553
+ let highlightedValue = state.options[startIndex].value;
1554
+ for (let i = 0; i < state.options.length; i++) {
1528
1555
  const index = (startIndex + (isForward ? i : -i) + optionLength) % optionLength;
1529
- if (!options[index].disabled) {
1530
- highlightedValue = options[index].value;
1556
+ if (!state.options[index].disabled) {
1557
+ highlightedValue = state.options[index].value;
1531
1558
  break;
1532
1559
  }
1533
1560
  }
@@ -1538,9 +1565,9 @@ var SelectRoot = ({
1538
1565
  };
1539
1566
  useEffect9(() => {
1540
1567
  if (!internalState.highlightedValue) return;
1541
- const highlighted = options.find((value2) => value2.value === internalState.highlightedValue);
1568
+ const highlighted = internalState.options.find((value2) => value2.value === internalState.highlightedValue);
1542
1569
  if (highlighted) {
1543
- highlighted.ref.current.scrollIntoView({ behavior: "instant", block: "nearest" });
1570
+ highlighted.ref.current?.scrollIntoView({ behavior: "instant", block: "nearest" });
1544
1571
  } else {
1545
1572
  console.error(`SelectRoot: Could not find highlighted value (${internalState.highlightedValue})`);
1546
1573
  }
@@ -1677,12 +1704,12 @@ var SelectButton = forwardRef4(function SelectButton2({ placeholder, selectedDis
1677
1704
  props.onKeyDown?.(event);
1678
1705
  switch (event.key) {
1679
1706
  case "ArrowDown":
1680
- toggleOpen(true, { highlightStartPosition: "first" });
1707
+ toggleOpen(true, { highlightStartPositionBehavior: "first" });
1681
1708
  event.preventDefault();
1682
1709
  event.stopPropagation();
1683
1710
  break;
1684
1711
  case "ArrowUp":
1685
- toggleOpen(true, { highlightStartPosition: "last" });
1712
+ toggleOpen(true, { highlightStartPositionBehavior: "last" });
1686
1713
  event.preventDefault();
1687
1714
  event.stopPropagation();
1688
1715
  break;
@@ -1776,10 +1803,10 @@ var SelectChipDisplay = forwardRef4(function SelectChipDisplay2({ ...props }, re
1776
1803
  onKeyDown: (event) => {
1777
1804
  switch (event.key) {
1778
1805
  case "ArrowDown":
1779
- toggleOpen(true, { highlightStartPosition: "first" });
1806
+ toggleOpen(true, { highlightStartPositionBehavior: "first" });
1780
1807
  break;
1781
1808
  case "ArrowUp":
1782
- toggleOpen(true, { highlightStartPosition: "last" });
1809
+ toggleOpen(true, { highlightStartPositionBehavior: "last" });
1783
1810
  }
1784
1811
  },
1785
1812
  size: "small",
@@ -1800,6 +1827,7 @@ var SelectContent = forwardRef4(
1800
1827
  function SelectContent2({
1801
1828
  alignment,
1802
1829
  orientation = "vertical",
1830
+ containerClassName,
1803
1831
  ...props
1804
1832
  }, ref) {
1805
1833
  const innerRef = useRef4(null);
@@ -1816,76 +1844,83 @@ var SelectContent = forwardRef4(
1816
1844
  active: state.isOpen && !!position
1817
1845
  });
1818
1846
  return createPortal2(
1819
- /* @__PURE__ */ jsxs6(Fragment3, { children: [
1820
- /* @__PURE__ */ jsx10(
1821
- "div",
1822
- {
1823
- hidden: !state.isOpen,
1824
- onClick: () => trigger.toggleOpen(false),
1825
- className: clsx7("fixed w-screen h-screen inset-0")
1826
- }
1827
- ),
1828
- /* @__PURE__ */ jsx10(
1829
- "ul",
1830
- {
1831
- ...props,
1832
- id: `${state.id}-listbox`,
1833
- ref: innerRef,
1834
- hidden: !state.isOpen,
1835
- onKeyDown: (event) => {
1836
- switch (event.key) {
1837
- case "Escape":
1838
- trigger.toggleOpen(false);
1839
- event.preventDefault();
1840
- event.stopPropagation();
1841
- break;
1842
- case match(orientation, {
1843
- vertical: "ArrowDown",
1844
- horizontal: "ArrowUp"
1845
- }):
1846
- item.moveHighlightedIndex(1);
1847
- event.preventDefault();
1848
- break;
1849
- case match(orientation, {
1850
- vertical: "ArrowUp",
1851
- horizontal: "ArrowDown"
1852
- }):
1853
- item.moveHighlightedIndex(-1);
1854
- event.preventDefault();
1855
- break;
1856
- case "Home":
1857
- event.preventDefault();
1858
- break;
1859
- case "End":
1860
- event.preventDefault();
1861
- break;
1862
- case "Enter":
1863
- // Fall through
1864
- case " ":
1865
- if (state.highlightedValue) {
1866
- item.toggleSelection(state.highlightedValue);
1867
- if (!config.isMultiSelect) {
1847
+ /* @__PURE__ */ jsxs6(
1848
+ "div",
1849
+ {
1850
+ id: `select-container-${state.id}`,
1851
+ className: clsx7("fixed inset-0 w-screen h-screen", containerClassName),
1852
+ hidden: !state.isOpen,
1853
+ children: [
1854
+ /* @__PURE__ */ jsx10(
1855
+ "div",
1856
+ {
1857
+ id: `select-background-${state.id}`,
1858
+ onClick: () => trigger.toggleOpen(false),
1859
+ className: clsx7("fixed inset-0 w-screen h-screen")
1860
+ }
1861
+ ),
1862
+ /* @__PURE__ */ jsx10(
1863
+ "ul",
1864
+ {
1865
+ ...props,
1866
+ id: `${state.id}-listbox`,
1867
+ ref: innerRef,
1868
+ onKeyDown: (event) => {
1869
+ switch (event.key) {
1870
+ case "Escape":
1868
1871
  trigger.toggleOpen(false);
1869
- }
1870
- event.preventDefault();
1872
+ event.preventDefault();
1873
+ event.stopPropagation();
1874
+ break;
1875
+ case match(orientation, {
1876
+ vertical: "ArrowDown",
1877
+ horizontal: "ArrowUp"
1878
+ }):
1879
+ item.moveHighlightedIndex(1);
1880
+ event.preventDefault();
1881
+ break;
1882
+ case match(orientation, {
1883
+ vertical: "ArrowUp",
1884
+ horizontal: "ArrowDown"
1885
+ }):
1886
+ item.moveHighlightedIndex(-1);
1887
+ event.preventDefault();
1888
+ break;
1889
+ case "Home":
1890
+ event.preventDefault();
1891
+ break;
1892
+ case "End":
1893
+ event.preventDefault();
1894
+ break;
1895
+ case "Enter":
1896
+ // Fall through
1897
+ case " ":
1898
+ if (state.highlightedValue) {
1899
+ item.toggleSelection(state.highlightedValue);
1900
+ if (!config.isMultiSelect) {
1901
+ trigger.toggleOpen(false);
1902
+ }
1903
+ event.preventDefault();
1904
+ }
1905
+ break;
1871
1906
  }
1872
- break;
1907
+ },
1908
+ className: clsx7("flex-col-0 p-2 bg-menu-background text-menu-text rounded-md shadow-hw-bottom focus-style-within overflow-auto", props.className),
1909
+ style: {
1910
+ opacity: position ? void 0 : 0,
1911
+ position: "fixed",
1912
+ ...position
1913
+ },
1914
+ role: "listbox",
1915
+ "aria-multiselectable": config.isMultiSelect,
1916
+ "aria-orientation": orientation,
1917
+ tabIndex: position ? 0 : void 0,
1918
+ children: props.children
1873
1919
  }
1874
- },
1875
- className: clsx7("flex-col-0 p-2 bg-menu-background text-menu-text rounded-md shadow-hw-bottom focus-style-within overflow-auto", props.className),
1876
- style: {
1877
- opacity: position ? void 0 : 0,
1878
- position: "fixed",
1879
- ...position
1880
- },
1881
- role: "listbox",
1882
- "aria-multiselectable": config.isMultiSelect,
1883
- "aria-orientation": orientation,
1884
- tabIndex: position ? 0 : void 0,
1885
- children: props.children
1886
- }
1887
- )
1888
- ] }),
1920
+ )
1921
+ ]
1922
+ }
1923
+ ),
1889
1924
  document.body
1890
1925
  );
1891
1926
  }
@@ -2039,7 +2074,7 @@ import { MonitorCog, MoonIcon, SunIcon } from "lucide-react";
2039
2074
  import clsx8 from "clsx";
2040
2075
 
2041
2076
  // src/theming/useTheme.tsx
2042
- import { createContext as createContext3, useCallback as useCallback7, useContext as useContext3, useEffect as useEffect10, useMemo as useMemo2, useState as useState11 } from "react";
2077
+ import { createContext as createContext3, useCallback as useCallback7, useContext as useContext3, useEffect as useEffect10, useMemo as useMemo3, useState as useState11 } from "react";
2043
2078
  import { jsx as jsx12 } from "react/jsx-runtime";
2044
2079
  var themes = ["light", "dark", "system"];
2045
2080
  var defaultThemeTypeTranslation = {