@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 }),
@@ -826,15 +832,16 @@ import {
826
832
  useCallback as useCallback6,
827
833
  useContext as useContext3,
828
834
  useEffect as useEffect9,
829
- useId as useId3,
835
+ useId as useId4,
830
836
  useImperativeHandle,
837
+ useMemo as useMemo3,
831
838
  useRef as useRef3,
832
839
  useState as useState10
833
840
  } from "react";
834
841
  import clsx5 from "clsx";
835
842
 
836
843
  // src/components/layout/Expandable.tsx
837
- import { forwardRef as forwardRef2, useCallback as useCallback4, useId as useId2 } from "react";
844
+ import { forwardRef as forwardRef2, useCallback as useCallback4, useId as useId3 } from "react";
838
845
  import { ChevronDown } from "lucide-react";
839
846
  import clsx3 from "clsx";
840
847
 
@@ -884,7 +891,7 @@ var Expandable = forwardRef2(function Expandable2({
884
891
  }, ref) {
885
892
  const defaultIcon = useCallback4((expanded) => /* @__PURE__ */ jsx5(ExpansionIcon, { isExpanded: expanded }), []);
886
893
  icon ??= defaultIcon;
887
- const generatedId = useId2();
894
+ const generatedId = useId3();
888
895
  const id = providedId ?? generatedId;
889
896
  return /* @__PURE__ */ jsxs3(
890
897
  "div",
@@ -1148,9 +1155,9 @@ function useFloatingElement({
1148
1155
 
1149
1156
  // src/components/user-action/select/Select.tsx
1150
1157
  import { createPortal as createPortal2 } from "react-dom";
1151
- import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1158
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1152
1159
  var defaultToggleOpenOptions = {
1153
- highlightStartPosition: "first"
1160
+ highlightStartPositionBehavior: "first"
1154
1161
  };
1155
1162
  var SelectContext = createContext3(null);
1156
1163
  function useSelectContext() {
@@ -1173,47 +1180,62 @@ var SelectRoot = ({
1173
1180
  isMultiSelect = false,
1174
1181
  iconAppearance = "left"
1175
1182
  }) => {
1176
- const [options, setOptions] = useState10([]);
1177
1183
  const triggerRef = useRef3(null);
1178
- const generatedId = useId3();
1184
+ const generatedId = useId4();
1179
1185
  const usedId = id ?? generatedId;
1180
1186
  const [internalState, setInternalState] = useState10({
1181
- isOpen
1187
+ isOpen,
1188
+ options: []
1182
1189
  });
1183
- const selectedValues = isMultiSelect ? values ?? [] : [value].filter(Boolean);
1190
+ const selectedValues = useMemo3(
1191
+ () => isMultiSelect ? values ?? [] : [value].filter(Boolean),
1192
+ [isMultiSelect, value, values]
1193
+ );
1194
+ const selectedOptions = useMemo3(
1195
+ () => selectedValues.map((value2) => internalState.options.find((option) => value2 === option.value)).filter(Boolean),
1196
+ [selectedValues, internalState.options]
1197
+ );
1184
1198
  const state = {
1185
1199
  ...internalState,
1186
1200
  id: usedId,
1187
1201
  disabled,
1188
1202
  invalid,
1189
1203
  value: selectedValues,
1190
- options,
1191
- selectedOptions: selectedValues.map((value2) => options.find((option) => value2 === option.value)).filter(Boolean)
1204
+ selectedOptions
1192
1205
  };
1193
1206
  const config = {
1194
1207
  isMultiSelect,
1195
1208
  iconAppearance
1196
1209
  };
1197
1210
  const registerItem = useCallback6((item) => {
1198
- setOptions((prev) => {
1199
- const updated = [...prev, item];
1200
- updated.sort((a, b) => {
1211
+ setInternalState((prev) => {
1212
+ const updatedOptions = [...prev.options, item];
1213
+ updatedOptions.sort((a, b) => {
1201
1214
  const aEl = a.ref.current;
1202
1215
  const bEl = b.ref.current;
1203
1216
  if (!aEl || !bEl) return 0;
1204
1217
  return aEl.compareDocumentPosition(bEl) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
1205
1218
  });
1206
- return updated;
1219
+ return {
1220
+ ...prev,
1221
+ options: updatedOptions
1222
+ };
1207
1223
  });
1208
1224
  }, []);
1209
1225
  const unregisterItem = useCallback6((value2) => {
1210
- setOptions((prev) => prev.filter((i) => i.value !== value2));
1226
+ setInternalState((prev) => {
1227
+ const updatedOptions = prev.options.filter((i) => i.value !== value2);
1228
+ return {
1229
+ ...prev,
1230
+ options: updatedOptions
1231
+ };
1232
+ });
1211
1233
  }, []);
1212
1234
  const toggleSelection = (value2, isSelected) => {
1213
1235
  if (disabled) {
1214
1236
  return;
1215
1237
  }
1216
- const option = options.find((i) => i.value === value2);
1238
+ const option = state.options.find((i) => i.value === value2);
1217
1239
  if (!option) {
1218
1240
  console.error(`SelectOption with value: ${value2} not found`);
1219
1241
  return;
@@ -1256,35 +1278,40 @@ var SelectRoot = ({
1256
1278
  triggerRef.current = null;
1257
1279
  }, []);
1258
1280
  const toggleOpen = (isOpen2, toggleOpenOptions) => {
1259
- const { highlightStartPosition } = { ...defaultToggleOpenOptions, ...toggleOpenOptions };
1260
- let highlightedIndex;
1261
- if (highlightStartPosition === "first") {
1262
- highlightedIndex = options.findIndex((option) => !option.disabled);
1263
- } else {
1264
- highlightedIndex = options.length - 1 - [...options].reverse().findIndex((option) => !option.disabled);
1265
- }
1266
- if (highlightedIndex === -1 || highlightedIndex === options.length) {
1267
- highlightedIndex = 0;
1281
+ const { highlightStartPositionBehavior } = { ...defaultToggleOpenOptions, ...toggleOpenOptions };
1282
+ let firstSelectedValue;
1283
+ let firstEnabledValue;
1284
+ for (let i = 0; i < state.options.length; i++) {
1285
+ const currentOption = state.options[highlightStartPositionBehavior === "first" ? i : state.options.length - i - 1];
1286
+ if (!currentOption.disabled) {
1287
+ if (!firstEnabledValue) {
1288
+ firstEnabledValue = currentOption.value;
1289
+ }
1290
+ if (selectedValues.includes(currentOption.value)) {
1291
+ firstSelectedValue = currentOption.value;
1292
+ break;
1293
+ }
1294
+ }
1268
1295
  }
1269
1296
  setInternalState((prevState) => ({
1270
1297
  ...prevState,
1271
1298
  isOpen: isOpen2 ?? !prevState.isOpen,
1272
- highlightedValue: options[highlightedIndex].value
1299
+ highlightedValue: firstSelectedValue ?? firstEnabledValue
1273
1300
  }));
1274
1301
  };
1275
1302
  const moveHighlightedIndex = (delta) => {
1276
- let highlightedIndex = options.findIndex((value2) => value2.value === internalState.highlightedValue);
1303
+ let highlightedIndex = state.options.findIndex((value2) => value2.value === internalState.highlightedValue);
1277
1304
  if (highlightedIndex === -1) {
1278
1305
  highlightedIndex = 0;
1279
1306
  }
1280
- const optionLength = options.length;
1307
+ const optionLength = state.options.length;
1281
1308
  const startIndex = (highlightedIndex + delta % optionLength + optionLength) % optionLength;
1282
1309
  const isForward = delta >= 0;
1283
- let highlightedValue = options[startIndex].value;
1284
- for (let i = 0; i < options.length; i++) {
1310
+ let highlightedValue = state.options[startIndex].value;
1311
+ for (let i = 0; i < state.options.length; i++) {
1285
1312
  const index = (startIndex + (isForward ? i : -i) + optionLength) % optionLength;
1286
- if (!options[index].disabled) {
1287
- highlightedValue = options[index].value;
1313
+ if (!state.options[index].disabled) {
1314
+ highlightedValue = state.options[index].value;
1288
1315
  break;
1289
1316
  }
1290
1317
  }
@@ -1295,9 +1322,9 @@ var SelectRoot = ({
1295
1322
  };
1296
1323
  useEffect9(() => {
1297
1324
  if (!internalState.highlightedValue) return;
1298
- const highlighted = options.find((value2) => value2.value === internalState.highlightedValue);
1325
+ const highlighted = internalState.options.find((value2) => value2.value === internalState.highlightedValue);
1299
1326
  if (highlighted) {
1300
- highlighted.ref.current.scrollIntoView({ behavior: "instant", block: "nearest" });
1327
+ highlighted.ref.current?.scrollIntoView({ behavior: "instant", block: "nearest" });
1301
1328
  } else {
1302
1329
  console.error(`SelectRoot: Could not find highlighted value (${internalState.highlightedValue})`);
1303
1330
  }
@@ -1434,12 +1461,12 @@ var SelectButton = forwardRef3(function SelectButton2({ placeholder, selectedDis
1434
1461
  props.onKeyDown?.(event);
1435
1462
  switch (event.key) {
1436
1463
  case "ArrowDown":
1437
- toggleOpen(true, { highlightStartPosition: "first" });
1464
+ toggleOpen(true, { highlightStartPositionBehavior: "first" });
1438
1465
  event.preventDefault();
1439
1466
  event.stopPropagation();
1440
1467
  break;
1441
1468
  case "ArrowUp":
1442
- toggleOpen(true, { highlightStartPosition: "last" });
1469
+ toggleOpen(true, { highlightStartPositionBehavior: "last" });
1443
1470
  event.preventDefault();
1444
1471
  event.stopPropagation();
1445
1472
  break;
@@ -1533,10 +1560,10 @@ var SelectChipDisplay = forwardRef3(function SelectChipDisplay2({ ...props }, re
1533
1560
  onKeyDown: (event) => {
1534
1561
  switch (event.key) {
1535
1562
  case "ArrowDown":
1536
- toggleOpen(true, { highlightStartPosition: "first" });
1563
+ toggleOpen(true, { highlightStartPositionBehavior: "first" });
1537
1564
  break;
1538
1565
  case "ArrowUp":
1539
- toggleOpen(true, { highlightStartPosition: "last" });
1566
+ toggleOpen(true, { highlightStartPositionBehavior: "last" });
1540
1567
  }
1541
1568
  },
1542
1569
  size: "small",
@@ -1557,6 +1584,7 @@ var SelectContent = forwardRef3(
1557
1584
  function SelectContent2({
1558
1585
  alignment,
1559
1586
  orientation = "vertical",
1587
+ containerClassName,
1560
1588
  ...props
1561
1589
  }, ref) {
1562
1590
  const innerRef = useRef3(null);
@@ -1573,76 +1601,83 @@ var SelectContent = forwardRef3(
1573
1601
  active: state.isOpen && !!position
1574
1602
  });
1575
1603
  return createPortal2(
1576
- /* @__PURE__ */ jsxs5(Fragment3, { children: [
1577
- /* @__PURE__ */ jsx7(
1578
- "div",
1579
- {
1580
- hidden: !state.isOpen,
1581
- onClick: () => trigger.toggleOpen(false),
1582
- className: clsx5("fixed w-screen h-screen inset-0")
1583
- }
1584
- ),
1585
- /* @__PURE__ */ jsx7(
1586
- "ul",
1587
- {
1588
- ...props,
1589
- id: `${state.id}-listbox`,
1590
- ref: innerRef,
1591
- hidden: !state.isOpen,
1592
- onKeyDown: (event) => {
1593
- switch (event.key) {
1594
- case "Escape":
1595
- trigger.toggleOpen(false);
1596
- event.preventDefault();
1597
- event.stopPropagation();
1598
- break;
1599
- case match(orientation, {
1600
- vertical: "ArrowDown",
1601
- horizontal: "ArrowUp"
1602
- }):
1603
- item.moveHighlightedIndex(1);
1604
- event.preventDefault();
1605
- break;
1606
- case match(orientation, {
1607
- vertical: "ArrowUp",
1608
- horizontal: "ArrowDown"
1609
- }):
1610
- item.moveHighlightedIndex(-1);
1611
- event.preventDefault();
1612
- break;
1613
- case "Home":
1614
- event.preventDefault();
1615
- break;
1616
- case "End":
1617
- event.preventDefault();
1618
- break;
1619
- case "Enter":
1620
- // Fall through
1621
- case " ":
1622
- if (state.highlightedValue) {
1623
- item.toggleSelection(state.highlightedValue);
1624
- if (!config.isMultiSelect) {
1604
+ /* @__PURE__ */ jsxs5(
1605
+ "div",
1606
+ {
1607
+ id: `select-container-${state.id}`,
1608
+ className: clsx5("fixed inset-0 w-screen h-screen", containerClassName),
1609
+ hidden: !state.isOpen,
1610
+ children: [
1611
+ /* @__PURE__ */ jsx7(
1612
+ "div",
1613
+ {
1614
+ id: `select-background-${state.id}`,
1615
+ onClick: () => trigger.toggleOpen(false),
1616
+ className: clsx5("fixed inset-0 w-screen h-screen")
1617
+ }
1618
+ ),
1619
+ /* @__PURE__ */ jsx7(
1620
+ "ul",
1621
+ {
1622
+ ...props,
1623
+ id: `${state.id}-listbox`,
1624
+ ref: innerRef,
1625
+ onKeyDown: (event) => {
1626
+ switch (event.key) {
1627
+ case "Escape":
1625
1628
  trigger.toggleOpen(false);
1626
- }
1627
- event.preventDefault();
1629
+ event.preventDefault();
1630
+ event.stopPropagation();
1631
+ break;
1632
+ case match(orientation, {
1633
+ vertical: "ArrowDown",
1634
+ horizontal: "ArrowUp"
1635
+ }):
1636
+ item.moveHighlightedIndex(1);
1637
+ event.preventDefault();
1638
+ break;
1639
+ case match(orientation, {
1640
+ vertical: "ArrowUp",
1641
+ horizontal: "ArrowDown"
1642
+ }):
1643
+ item.moveHighlightedIndex(-1);
1644
+ event.preventDefault();
1645
+ break;
1646
+ case "Home":
1647
+ event.preventDefault();
1648
+ break;
1649
+ case "End":
1650
+ event.preventDefault();
1651
+ break;
1652
+ case "Enter":
1653
+ // Fall through
1654
+ case " ":
1655
+ if (state.highlightedValue) {
1656
+ item.toggleSelection(state.highlightedValue);
1657
+ if (!config.isMultiSelect) {
1658
+ trigger.toggleOpen(false);
1659
+ }
1660
+ event.preventDefault();
1661
+ }
1662
+ break;
1628
1663
  }
1629
- break;
1664
+ },
1665
+ 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),
1666
+ style: {
1667
+ opacity: position ? void 0 : 0,
1668
+ position: "fixed",
1669
+ ...position
1670
+ },
1671
+ role: "listbox",
1672
+ "aria-multiselectable": config.isMultiSelect,
1673
+ "aria-orientation": orientation,
1674
+ tabIndex: position ? 0 : void 0,
1675
+ children: props.children
1630
1676
  }
1631
- },
1632
- 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),
1633
- style: {
1634
- opacity: position ? void 0 : 0,
1635
- position: "fixed",
1636
- ...position
1637
- },
1638
- role: "listbox",
1639
- "aria-multiselectable": config.isMultiSelect,
1640
- "aria-orientation": orientation,
1641
- tabIndex: position ? 0 : void 0,
1642
- children: props.children
1643
- }
1644
- )
1645
- ] }),
1677
+ )
1678
+ ]
1679
+ }
1680
+ ),
1646
1681
  document.body
1647
1682
  );
1648
1683
  }