@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.
- package/dist/components/date/DatePicker.js.map +1 -1
- package/dist/components/date/DatePicker.mjs.map +1 -1
- package/dist/components/date/DayPicker.js.map +1 -1
- package/dist/components/date/DayPicker.mjs.map +1 -1
- package/dist/components/date/TimeDisplay.js.map +1 -1
- package/dist/components/date/TimeDisplay.mjs.map +1 -1
- package/dist/components/date/YearMonthPicker.js.map +1 -1
- package/dist/components/date/YearMonthPicker.mjs.map +1 -1
- package/dist/components/date/index.js.map +1 -1
- package/dist/components/date/index.mjs.map +1 -1
- package/dist/components/dialog/ConfirmDialog.js +15 -9
- package/dist/components/dialog/ConfirmDialog.js.map +1 -1
- package/dist/components/dialog/ConfirmDialog.mjs +16 -10
- package/dist/components/dialog/ConfirmDialog.mjs.map +1 -1
- package/dist/components/dialog/Dialog.d.mts +4 -5
- package/dist/components/dialog/Dialog.d.ts +4 -5
- package/dist/components/dialog/Dialog.js +15 -9
- package/dist/components/dialog/Dialog.js.map +1 -1
- package/dist/components/dialog/Dialog.mjs +16 -10
- package/dist/components/dialog/Dialog.mjs.map +1 -1
- package/dist/components/dialog/DiscardChangesDialog.js +15 -9
- package/dist/components/dialog/DiscardChangesDialog.js.map +1 -1
- package/dist/components/dialog/DiscardChangesDialog.mjs +16 -10
- package/dist/components/dialog/DiscardChangesDialog.mjs.map +1 -1
- package/dist/components/dialog/InputDialog.js +15 -9
- package/dist/components/dialog/InputDialog.js.map +1 -1
- package/dist/components/dialog/InputDialog.mjs +16 -10
- package/dist/components/dialog/InputDialog.mjs.map +1 -1
- package/dist/components/dialog/LanguageDialog.js +188 -154
- package/dist/components/dialog/LanguageDialog.js.map +1 -1
- package/dist/components/dialog/LanguageDialog.mjs +151 -116
- package/dist/components/dialog/LanguageDialog.mjs.map +1 -1
- package/dist/components/dialog/ThemeDialog.js +191 -157
- package/dist/components/dialog/ThemeDialog.js.map +1 -1
- package/dist/components/dialog/ThemeDialog.mjs +151 -116
- package/dist/components/dialog/ThemeDialog.mjs.map +1 -1
- package/dist/components/dialog/index.js +205 -171
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/dialog/index.mjs +152 -117
- package/dist/components/dialog/index.mjs.map +1 -1
- package/dist/components/index.js +337 -299
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +198 -159
- package/dist/components/index.mjs.map +1 -1
- package/dist/components/layout/Carousel.d.mts +2 -1
- package/dist/components/layout/Carousel.d.ts +2 -1
- package/dist/components/layout/Carousel.js +4 -0
- package/dist/components/layout/Carousel.js.map +1 -1
- package/dist/components/layout/Carousel.mjs +4 -0
- package/dist/components/layout/Carousel.mjs.map +1 -1
- package/dist/components/layout/TextImage.js.map +1 -1
- package/dist/components/layout/TextImage.mjs.map +1 -1
- package/dist/components/layout/index.js +4 -0
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/layout/index.mjs +4 -0
- package/dist/components/layout/index.mjs.map +1 -1
- package/dist/components/loading-states/ErrorComponent.js.map +1 -1
- package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
- package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
- package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
- package/dist/components/loading-states/index.js.map +1 -1
- package/dist/components/loading-states/index.mjs.map +1 -1
- package/dist/components/navigation/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination.mjs.map +1 -1
- package/dist/components/navigation/StepperBar.js.map +1 -1
- package/dist/components/navigation/StepperBar.mjs.map +1 -1
- package/dist/components/navigation/index.js.map +1 -1
- package/dist/components/navigation/index.mjs.map +1 -1
- package/dist/components/properties/CheckboxProperty.js.map +1 -1
- package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
- package/dist/components/properties/DateProperty.js.map +1 -1
- package/dist/components/properties/DateProperty.mjs.map +1 -1
- package/dist/components/properties/MultiSelectProperty.js +129 -101
- package/dist/components/properties/MultiSelectProperty.js.map +1 -1
- package/dist/components/properties/MultiSelectProperty.mjs +131 -102
- package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
- package/dist/components/properties/NumberProperty.js.map +1 -1
- package/dist/components/properties/NumberProperty.mjs.map +1 -1
- package/dist/components/properties/PropertyBase.js.map +1 -1
- package/dist/components/properties/PropertyBase.mjs.map +1 -1
- package/dist/components/properties/SelectProperty.js +129 -101
- package/dist/components/properties/SelectProperty.js.map +1 -1
- package/dist/components/properties/SelectProperty.mjs +131 -102
- package/dist/components/properties/SelectProperty.mjs.map +1 -1
- package/dist/components/properties/TextProperty.js.map +1 -1
- package/dist/components/properties/TextProperty.mjs.map +1 -1
- package/dist/components/properties/index.js +129 -101
- package/dist/components/properties/index.js.map +1 -1
- package/dist/components/properties/index.mjs +131 -102
- package/dist/components/properties/index.mjs.map +1 -1
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/Table.mjs.map +1 -1
- package/dist/components/table/TableFilterButton.js.map +1 -1
- package/dist/components/table/TableFilterButton.mjs.map +1 -1
- package/dist/components/table/index.js.map +1 -1
- package/dist/components/table/index.mjs.map +1 -1
- package/dist/components/user-action/CopyToClipboardWrapper.js.map +1 -1
- package/dist/components/user-action/CopyToClipboardWrapper.mjs.map +1 -1
- package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
- package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
- package/dist/components/user-action/SearchBar.js.map +1 -1
- package/dist/components/user-action/SearchBar.mjs.map +1 -1
- package/dist/components/user-action/index.js +129 -101
- package/dist/components/user-action/index.js.map +1 -1
- package/dist/components/user-action/index.mjs +131 -102
- package/dist/components/user-action/index.mjs.map +1 -1
- package/dist/components/user-action/select/Select.d.mts +2 -0
- package/dist/components/user-action/select/Select.d.ts +2 -0
- package/dist/components/user-action/select/Select.js +129 -101
- package/dist/components/user-action/select/Select.js.map +1 -1
- package/dist/components/user-action/select/Select.mjs +131 -102
- package/dist/components/user-action/select/Select.mjs.map +1 -1
- package/dist/components/user-action/select/index.js +129 -101
- package/dist/components/user-action/select/index.js.map +1 -1
- package/dist/components/user-action/select/index.mjs +131 -102
- package/dist/components/user-action/select/index.mjs.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/hooks/useValidators.js.map +1 -1
- package/dist/hooks/useValidators.mjs.map +1 -1
- package/dist/index.js +362 -324
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +206 -167
- package/dist/index.mjs.map +1 -1
- package/dist/localization/LanguageProvider.js +1 -1
- package/dist/localization/LanguageProvider.js.map +1 -1
- package/dist/localization/LanguageProvider.mjs +1 -1
- package/dist/localization/LanguageProvider.mjs.map +1 -1
- package/dist/localization/index.js +1 -1
- package/dist/localization/index.js.map +1 -1
- package/dist/localization/index.mjs +1 -1
- package/dist/localization/index.mjs.map +1 -1
- package/dist/localization/useTranslation.js.map +1 -1
- package/dist/localization/useTranslation.mjs.map +1 -1
- package/dist/style/globals.css +0 -3
- package/dist/theming/index.js +1 -1
- package/dist/theming/index.js.map +1 -1
- package/dist/theming/index.mjs +1 -1
- package/dist/theming/index.mjs.map +1 -1
- package/dist/theming/useTheme.js +1 -1
- package/dist/theming/useTheme.js.map +1 -1
- package/dist/theming/useTheme.mjs +1 -1
- package/dist/theming/useTheme.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// src/components/dialog/Dialog.tsx
|
|
2
|
-
import {
|
|
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 {
|
|
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(
|
|
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
|
|
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)]
|
|
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
|
|
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
|
|
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 =
|
|
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 {
|
|
1117
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1111
1118
|
var defaultToggleOpenOptions = {
|
|
1112
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
1158
|
-
const
|
|
1159
|
-
|
|
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
|
|
1178
|
+
return {
|
|
1179
|
+
...prev,
|
|
1180
|
+
options: updatedOptions
|
|
1181
|
+
};
|
|
1166
1182
|
});
|
|
1167
1183
|
}, []);
|
|
1168
1184
|
const unregisterItem = useCallback5((value2) => {
|
|
1169
|
-
|
|
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 {
|
|
1219
|
-
let
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
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:
|
|
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
|
|
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, {
|
|
1423
|
+
toggleOpen(true, { highlightStartPositionBehavior: "first" });
|
|
1397
1424
|
event.preventDefault();
|
|
1398
1425
|
event.stopPropagation();
|
|
1399
1426
|
break;
|
|
1400
1427
|
case "ArrowUp":
|
|
1401
|
-
toggleOpen(true, {
|
|
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, {
|
|
1522
|
+
toggleOpen(true, { highlightStartPositionBehavior: "first" });
|
|
1496
1523
|
break;
|
|
1497
1524
|
case "ArrowUp":
|
|
1498
|
-
toggleOpen(true, {
|
|
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(
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
{
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
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
|
}
|