@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
@@ -1,7 +1,6 @@
1
1
  // src/components/dialog/Dialog.tsx
2
- import { useEffect as useEffect5 } from "react";
3
- import { useState as useState6 } from "react";
4
- import { useRef as useRef2 } from "react";
2
+ import { useId as useId2 } from "react";
3
+ import { useEffect as useEffect5, useRef as useRef2, useState as useState6 } from "react";
5
4
  import clsx2 from "clsx";
6
5
  import { X } from "lucide-react";
7
6
 
@@ -658,7 +657,7 @@ var useLogOnce = (message, condition, options) => {
658
657
 
659
658
  // src/components/dialog/Dialog.tsx
660
659
  import { createPortal } from "react-dom";
661
- import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
660
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
662
661
  var Dialog = ({
663
662
  children,
664
663
  isOpen,
@@ -666,13 +665,16 @@ var Dialog = ({
666
665
  description,
667
666
  isModal = true,
668
667
  onClose,
669
- className,
670
668
  backgroundClassName,
671
669
  position = "center",
672
- isAnimated = true
670
+ isAnimated = true,
671
+ containerClassName,
672
+ ...props
673
673
  }) => {
674
674
  const translation = useTranslation([formTranslation]);
675
675
  const [visible, setVisible] = useState6(isOpen);
676
+ const generatedId = useId2();
677
+ const id = props.id ?? generatedId;
676
678
  const ref = useRef2(null);
677
679
  useEffect5(() => {
678
680
  if (isOpen) {
@@ -699,14 +701,16 @@ var Dialog = ({
699
701
  none: ""
700
702
  };
701
703
  const positionStyle = positionMap[position];
704
+ if (!visible) return;
702
705
  return createPortal(
703
- /* @__PURE__ */ jsxs2(Fragment, { children: [
706
+ /* @__PURE__ */ jsxs2("div", { id: `dialog-container-${id}`, className: clsx2("fixed inset-0 h-screen w-screen", containerClassName), children: [
704
707
  /* @__PURE__ */ jsx3(
705
708
  "div",
706
709
  {
710
+ id: `dialog-background-${id}`,
707
711
  hidden: !visible,
708
712
  className: clsx2(
709
- "fixed inset-0 h-screen w-screen bg-overlay-shadow z-100",
713
+ "fixed inset-0 h-screen w-screen bg-overlay-shadow",
710
714
  {
711
715
  "motion-safe:animate-fade-in": isOpen,
712
716
  "motion-safe:animate-fade-out": !isOpen
@@ -725,6 +729,8 @@ var Dialog = ({
725
729
  /* @__PURE__ */ jsxs2(
726
730
  "div",
727
731
  {
732
+ ...props,
733
+ id: `dialog-${id}`,
728
734
  ref,
729
735
  hidden: !visible,
730
736
  onKeyDown: (event) => {
@@ -738,13 +744,13 @@ var Dialog = ({
738
744
  }
739
745
  },
740
746
  className: clsx2(
741
- "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",
747
+ "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)]",
742
748
  {
743
749
  "motion-safe:animate-pop-in": isOpen,
744
750
  "motion-safe:animate-pop-out": !isOpen
745
751
  },
746
752
  positionStyle,
747
- className
753
+ props.className
748
754
  ),
749
755
  children: [
750
756
  /* @__PURE__ */ jsx3("div", { className: "typography-title-lg mr-8", children: titleElement }),
@@ -785,15 +791,16 @@ import {
785
791
  useCallback as useCallback5,
786
792
  useContext as useContext2,
787
793
  useEffect as useEffect8,
788
- useId as useId3,
794
+ useId as useId4,
789
795
  useImperativeHandle,
796
+ useMemo as useMemo2,
790
797
  useRef as useRef3,
791
798
  useState as useState9
792
799
  } from "react";
793
800
  import clsx5 from "clsx";
794
801
 
795
802
  // src/components/layout/Expandable.tsx
796
- import { forwardRef as forwardRef2, useCallback as useCallback3, useId as useId2 } from "react";
803
+ import { forwardRef as forwardRef2, useCallback as useCallback3, useId as useId3 } from "react";
797
804
  import { ChevronDown } from "lucide-react";
798
805
  import clsx3 from "clsx";
799
806
 
@@ -843,7 +850,7 @@ var Expandable = forwardRef2(function Expandable2({
843
850
  }, ref) {
844
851
  const defaultIcon = useCallback3((expanded) => /* @__PURE__ */ jsx4(ExpansionIcon, { isExpanded: expanded }), []);
845
852
  icon ??= defaultIcon;
846
- const generatedId = useId2();
853
+ const generatedId = useId3();
847
854
  const id = providedId ?? generatedId;
848
855
  return /* @__PURE__ */ jsxs3(
849
856
  "div",
@@ -1107,9 +1114,9 @@ function useFloatingElement({
1107
1114
 
1108
1115
  // src/components/user-action/select/Select.tsx
1109
1116
  import { createPortal as createPortal2 } from "react-dom";
1110
- import { Fragment as Fragment3, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1117
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1111
1118
  var defaultToggleOpenOptions = {
1112
- highlightStartPosition: "first"
1119
+ highlightStartPositionBehavior: "first"
1113
1120
  };
1114
1121
  var SelectContext = createContext2(null);
1115
1122
  function useSelectContext() {
@@ -1132,47 +1139,62 @@ var SelectRoot = ({
1132
1139
  isMultiSelect = false,
1133
1140
  iconAppearance = "left"
1134
1141
  }) => {
1135
- const [options, setOptions] = useState9([]);
1136
1142
  const triggerRef = useRef3(null);
1137
- const generatedId = useId3();
1143
+ const generatedId = useId4();
1138
1144
  const usedId = id ?? generatedId;
1139
1145
  const [internalState, setInternalState] = useState9({
1140
- isOpen
1146
+ isOpen,
1147
+ options: []
1141
1148
  });
1142
- const selectedValues = isMultiSelect ? values ?? [] : [value].filter(Boolean);
1149
+ const selectedValues = useMemo2(
1150
+ () => isMultiSelect ? values ?? [] : [value].filter(Boolean),
1151
+ [isMultiSelect, value, values]
1152
+ );
1153
+ const selectedOptions = useMemo2(
1154
+ () => selectedValues.map((value2) => internalState.options.find((option) => value2 === option.value)).filter(Boolean),
1155
+ [selectedValues, internalState.options]
1156
+ );
1143
1157
  const state = {
1144
1158
  ...internalState,
1145
1159
  id: usedId,
1146
1160
  disabled,
1147
1161
  invalid,
1148
1162
  value: selectedValues,
1149
- options,
1150
- selectedOptions: selectedValues.map((value2) => options.find((option) => value2 === option.value)).filter(Boolean)
1163
+ selectedOptions
1151
1164
  };
1152
1165
  const config = {
1153
1166
  isMultiSelect,
1154
1167
  iconAppearance
1155
1168
  };
1156
1169
  const registerItem = useCallback5((item) => {
1157
- setOptions((prev) => {
1158
- const updated = [...prev, item];
1159
- updated.sort((a, b) => {
1170
+ setInternalState((prev) => {
1171
+ const updatedOptions = [...prev.options, item];
1172
+ updatedOptions.sort((a, b) => {
1160
1173
  const aEl = a.ref.current;
1161
1174
  const bEl = b.ref.current;
1162
1175
  if (!aEl || !bEl) return 0;
1163
1176
  return aEl.compareDocumentPosition(bEl) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
1164
1177
  });
1165
- return updated;
1178
+ return {
1179
+ ...prev,
1180
+ options: updatedOptions
1181
+ };
1166
1182
  });
1167
1183
  }, []);
1168
1184
  const unregisterItem = useCallback5((value2) => {
1169
- setOptions((prev) => prev.filter((i) => i.value !== value2));
1185
+ setInternalState((prev) => {
1186
+ const updatedOptions = prev.options.filter((i) => i.value !== value2);
1187
+ return {
1188
+ ...prev,
1189
+ options: updatedOptions
1190
+ };
1191
+ });
1170
1192
  }, []);
1171
1193
  const toggleSelection = (value2, isSelected) => {
1172
1194
  if (disabled) {
1173
1195
  return;
1174
1196
  }
1175
- const option = options.find((i) => i.value === value2);
1197
+ const option = state.options.find((i) => i.value === value2);
1176
1198
  if (!option) {
1177
1199
  console.error(`SelectOption with value: ${value2} not found`);
1178
1200
  return;
@@ -1215,35 +1237,40 @@ var SelectRoot = ({
1215
1237
  triggerRef.current = null;
1216
1238
  }, []);
1217
1239
  const toggleOpen = (isOpen2, toggleOpenOptions) => {
1218
- const { highlightStartPosition } = { ...defaultToggleOpenOptions, ...toggleOpenOptions };
1219
- let highlightedIndex;
1220
- if (highlightStartPosition === "first") {
1221
- highlightedIndex = options.findIndex((option) => !option.disabled);
1222
- } else {
1223
- highlightedIndex = options.length - 1 - [...options].reverse().findIndex((option) => !option.disabled);
1224
- }
1225
- if (highlightedIndex === -1 || highlightedIndex === options.length) {
1226
- highlightedIndex = 0;
1240
+ const { highlightStartPositionBehavior } = { ...defaultToggleOpenOptions, ...toggleOpenOptions };
1241
+ let firstSelectedValue;
1242
+ let firstEnabledValue;
1243
+ for (let i = 0; i < state.options.length; i++) {
1244
+ const currentOption = state.options[highlightStartPositionBehavior === "first" ? i : state.options.length - i - 1];
1245
+ if (!currentOption.disabled) {
1246
+ if (!firstEnabledValue) {
1247
+ firstEnabledValue = currentOption.value;
1248
+ }
1249
+ if (selectedValues.includes(currentOption.value)) {
1250
+ firstSelectedValue = currentOption.value;
1251
+ break;
1252
+ }
1253
+ }
1227
1254
  }
1228
1255
  setInternalState((prevState) => ({
1229
1256
  ...prevState,
1230
1257
  isOpen: isOpen2 ?? !prevState.isOpen,
1231
- highlightedValue: options[highlightedIndex].value
1258
+ highlightedValue: firstSelectedValue ?? firstEnabledValue
1232
1259
  }));
1233
1260
  };
1234
1261
  const moveHighlightedIndex = (delta) => {
1235
- let highlightedIndex = options.findIndex((value2) => value2.value === internalState.highlightedValue);
1262
+ let highlightedIndex = state.options.findIndex((value2) => value2.value === internalState.highlightedValue);
1236
1263
  if (highlightedIndex === -1) {
1237
1264
  highlightedIndex = 0;
1238
1265
  }
1239
- const optionLength = options.length;
1266
+ const optionLength = state.options.length;
1240
1267
  const startIndex = (highlightedIndex + delta % optionLength + optionLength) % optionLength;
1241
1268
  const isForward = delta >= 0;
1242
- let highlightedValue = options[startIndex].value;
1243
- for (let i = 0; i < options.length; i++) {
1269
+ let highlightedValue = state.options[startIndex].value;
1270
+ for (let i = 0; i < state.options.length; i++) {
1244
1271
  const index = (startIndex + (isForward ? i : -i) + optionLength) % optionLength;
1245
- if (!options[index].disabled) {
1246
- highlightedValue = options[index].value;
1272
+ if (!state.options[index].disabled) {
1273
+ highlightedValue = state.options[index].value;
1247
1274
  break;
1248
1275
  }
1249
1276
  }
@@ -1254,9 +1281,9 @@ var SelectRoot = ({
1254
1281
  };
1255
1282
  useEffect8(() => {
1256
1283
  if (!internalState.highlightedValue) return;
1257
- const highlighted = options.find((value2) => value2.value === internalState.highlightedValue);
1284
+ const highlighted = internalState.options.find((value2) => value2.value === internalState.highlightedValue);
1258
1285
  if (highlighted) {
1259
- highlighted.ref.current.scrollIntoView({ behavior: "instant", block: "nearest" });
1286
+ highlighted.ref.current?.scrollIntoView({ behavior: "instant", block: "nearest" });
1260
1287
  } else {
1261
1288
  console.error(`SelectRoot: Could not find highlighted value (${internalState.highlightedValue})`);
1262
1289
  }
@@ -1393,12 +1420,12 @@ var SelectButton = forwardRef3(function SelectButton2({ placeholder, selectedDis
1393
1420
  props.onKeyDown?.(event);
1394
1421
  switch (event.key) {
1395
1422
  case "ArrowDown":
1396
- toggleOpen(true, { highlightStartPosition: "first" });
1423
+ toggleOpen(true, { highlightStartPositionBehavior: "first" });
1397
1424
  event.preventDefault();
1398
1425
  event.stopPropagation();
1399
1426
  break;
1400
1427
  case "ArrowUp":
1401
- toggleOpen(true, { highlightStartPosition: "last" });
1428
+ toggleOpen(true, { highlightStartPositionBehavior: "last" });
1402
1429
  event.preventDefault();
1403
1430
  event.stopPropagation();
1404
1431
  break;
@@ -1492,10 +1519,10 @@ var SelectChipDisplay = forwardRef3(function SelectChipDisplay2({ ...props }, re
1492
1519
  onKeyDown: (event) => {
1493
1520
  switch (event.key) {
1494
1521
  case "ArrowDown":
1495
- toggleOpen(true, { highlightStartPosition: "first" });
1522
+ toggleOpen(true, { highlightStartPositionBehavior: "first" });
1496
1523
  break;
1497
1524
  case "ArrowUp":
1498
- toggleOpen(true, { highlightStartPosition: "last" });
1525
+ toggleOpen(true, { highlightStartPositionBehavior: "last" });
1499
1526
  }
1500
1527
  },
1501
1528
  size: "small",
@@ -1516,6 +1543,7 @@ var SelectContent = forwardRef3(
1516
1543
  function SelectContent2({
1517
1544
  alignment,
1518
1545
  orientation = "vertical",
1546
+ containerClassName,
1519
1547
  ...props
1520
1548
  }, ref) {
1521
1549
  const innerRef = useRef3(null);
@@ -1532,76 +1560,83 @@ var SelectContent = forwardRef3(
1532
1560
  active: state.isOpen && !!position
1533
1561
  });
1534
1562
  return createPortal2(
1535
- /* @__PURE__ */ jsxs5(Fragment3, { children: [
1536
- /* @__PURE__ */ jsx6(
1537
- "div",
1538
- {
1539
- hidden: !state.isOpen,
1540
- onClick: () => trigger.toggleOpen(false),
1541
- className: clsx5("fixed w-screen h-screen inset-0")
1542
- }
1543
- ),
1544
- /* @__PURE__ */ jsx6(
1545
- "ul",
1546
- {
1547
- ...props,
1548
- id: `${state.id}-listbox`,
1549
- ref: innerRef,
1550
- hidden: !state.isOpen,
1551
- onKeyDown: (event) => {
1552
- switch (event.key) {
1553
- case "Escape":
1554
- trigger.toggleOpen(false);
1555
- event.preventDefault();
1556
- event.stopPropagation();
1557
- break;
1558
- case match(orientation, {
1559
- vertical: "ArrowDown",
1560
- horizontal: "ArrowUp"
1561
- }):
1562
- item.moveHighlightedIndex(1);
1563
- event.preventDefault();
1564
- break;
1565
- case match(orientation, {
1566
- vertical: "ArrowUp",
1567
- horizontal: "ArrowDown"
1568
- }):
1569
- item.moveHighlightedIndex(-1);
1570
- event.preventDefault();
1571
- break;
1572
- case "Home":
1573
- event.preventDefault();
1574
- break;
1575
- case "End":
1576
- event.preventDefault();
1577
- break;
1578
- case "Enter":
1579
- // Fall through
1580
- case " ":
1581
- if (state.highlightedValue) {
1582
- item.toggleSelection(state.highlightedValue);
1583
- if (!config.isMultiSelect) {
1563
+ /* @__PURE__ */ jsxs5(
1564
+ "div",
1565
+ {
1566
+ id: `select-container-${state.id}`,
1567
+ className: clsx5("fixed inset-0 w-screen h-screen", containerClassName),
1568
+ hidden: !state.isOpen,
1569
+ children: [
1570
+ /* @__PURE__ */ jsx6(
1571
+ "div",
1572
+ {
1573
+ id: `select-background-${state.id}`,
1574
+ onClick: () => trigger.toggleOpen(false),
1575
+ className: clsx5("fixed inset-0 w-screen h-screen")
1576
+ }
1577
+ ),
1578
+ /* @__PURE__ */ jsx6(
1579
+ "ul",
1580
+ {
1581
+ ...props,
1582
+ id: `${state.id}-listbox`,
1583
+ ref: innerRef,
1584
+ onKeyDown: (event) => {
1585
+ switch (event.key) {
1586
+ case "Escape":
1584
1587
  trigger.toggleOpen(false);
1585
- }
1586
- event.preventDefault();
1588
+ event.preventDefault();
1589
+ event.stopPropagation();
1590
+ break;
1591
+ case match(orientation, {
1592
+ vertical: "ArrowDown",
1593
+ horizontal: "ArrowUp"
1594
+ }):
1595
+ item.moveHighlightedIndex(1);
1596
+ event.preventDefault();
1597
+ break;
1598
+ case match(orientation, {
1599
+ vertical: "ArrowUp",
1600
+ horizontal: "ArrowDown"
1601
+ }):
1602
+ item.moveHighlightedIndex(-1);
1603
+ event.preventDefault();
1604
+ break;
1605
+ case "Home":
1606
+ event.preventDefault();
1607
+ break;
1608
+ case "End":
1609
+ event.preventDefault();
1610
+ break;
1611
+ case "Enter":
1612
+ // Fall through
1613
+ case " ":
1614
+ if (state.highlightedValue) {
1615
+ item.toggleSelection(state.highlightedValue);
1616
+ if (!config.isMultiSelect) {
1617
+ trigger.toggleOpen(false);
1618
+ }
1619
+ event.preventDefault();
1620
+ }
1621
+ break;
1587
1622
  }
1588
- break;
1623
+ },
1624
+ className: clsx5("flex-col-0 p-2 bg-menu-background text-menu-text rounded-md shadow-hw-bottom focus-style-within overflow-auto", props.className),
1625
+ style: {
1626
+ opacity: position ? void 0 : 0,
1627
+ position: "fixed",
1628
+ ...position
1629
+ },
1630
+ role: "listbox",
1631
+ "aria-multiselectable": config.isMultiSelect,
1632
+ "aria-orientation": orientation,
1633
+ tabIndex: position ? 0 : void 0,
1634
+ children: props.children
1589
1635
  }
1590
- },
1591
- className: clsx5("flex-col-0 p-2 bg-menu-background text-menu-text rounded-md shadow-hw-bottom focus-style-within overflow-auto", props.className),
1592
- style: {
1593
- opacity: position ? void 0 : 0,
1594
- position: "fixed",
1595
- ...position
1596
- },
1597
- role: "listbox",
1598
- "aria-multiselectable": config.isMultiSelect,
1599
- "aria-orientation": orientation,
1600
- tabIndex: position ? 0 : void 0,
1601
- children: props.children
1602
- }
1603
- )
1604
- ] }),
1636
+ )
1637
+ ]
1638
+ }
1639
+ ),
1605
1640
  document.body
1606
1641
  );
1607
1642
  }