@helpwave/hightide 0.1.17 → 0.1.19
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/branding/HelpwaveBadge.js +7 -7
- package/dist/components/branding/HelpwaveBadge.js.map +1 -1
- package/dist/components/branding/HelpwaveBadge.mjs +7 -7
- package/dist/components/branding/HelpwaveBadge.mjs.map +1 -1
- package/dist/components/date/DatePicker.js +65 -38
- package/dist/components/date/DatePicker.js.map +1 -1
- package/dist/components/date/DatePicker.mjs +54 -27
- package/dist/components/date/DatePicker.mjs.map +1 -1
- package/dist/components/date/DayPicker.js +3 -3
- package/dist/components/date/DayPicker.js.map +1 -1
- package/dist/components/date/DayPicker.mjs +3 -3
- package/dist/components/date/DayPicker.mjs.map +1 -1
- package/dist/components/date/TimePicker.js +4 -4
- package/dist/components/date/TimePicker.js.map +1 -1
- package/dist/components/date/TimePicker.mjs +4 -4
- package/dist/components/date/TimePicker.mjs.map +1 -1
- package/dist/components/date/YearMonthPicker.js +46 -19
- package/dist/components/date/YearMonthPicker.js.map +1 -1
- package/dist/components/date/YearMonthPicker.mjs +44 -17
- package/dist/components/date/YearMonthPicker.mjs.map +1 -1
- package/dist/components/dialogs/ConfirmDialog.js +32 -28
- package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
- package/dist/components/dialogs/ConfirmDialog.mjs +18 -14
- package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -1
- package/dist/components/icons-and-geometry/Avatar.js +2 -2
- package/dist/components/icons-and-geometry/Avatar.js.map +1 -1
- package/dist/components/icons-and-geometry/Avatar.mjs +2 -2
- package/dist/components/icons-and-geometry/Avatar.mjs.map +1 -1
- package/dist/components/icons-and-geometry/Ring.js +2 -2
- package/dist/components/icons-and-geometry/Ring.js.map +1 -1
- package/dist/components/icons-and-geometry/Ring.mjs +2 -2
- package/dist/components/icons-and-geometry/Ring.mjs.map +1 -1
- package/dist/components/layout-and-navigation/BreadCrumb.js +1 -1
- package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -1
- package/dist/components/layout-and-navigation/BreadCrumb.mjs +1 -1
- package/dist/components/layout-and-navigation/BreadCrumb.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Carousel.js +84 -15
- package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
- package/dist/components/layout-and-navigation/Carousel.mjs +76 -7
- package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Chip.js +1 -1
- package/dist/components/layout-and-navigation/Chip.js.map +1 -1
- package/dist/components/layout-and-navigation/Chip.mjs +1 -1
- package/dist/components/layout-and-navigation/Chip.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Expandable.d.mts +7 -1
- package/dist/components/layout-and-navigation/Expandable.d.ts +7 -1
- package/dist/components/layout-and-navigation/Expandable.js +36 -9
- package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
- package/dist/components/layout-and-navigation/Expandable.mjs +36 -10
- package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -1
- package/dist/components/layout-and-navigation/FAQSection.js +34 -11
- package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
- package/dist/components/layout-and-navigation/FAQSection.mjs +36 -13
- package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Overlay.js +92 -19
- package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
- package/dist/components/layout-and-navigation/Overlay.mjs +81 -8
- package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Pagination.js +82 -10
- package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
- package/dist/components/layout-and-navigation/Pagination.mjs +79 -7
- package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
- package/dist/components/layout-and-navigation/SearchableList.js +127 -26
- package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
- package/dist/components/layout-and-navigation/SearchableList.mjs +126 -25
- package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -1
- package/dist/components/layout-and-navigation/StepperBar.js +22 -16
- package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
- package/dist/components/layout-and-navigation/StepperBar.mjs +19 -13
- package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
- package/dist/components/layout-and-navigation/TextImage.js +7 -3
- package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
- package/dist/components/layout-and-navigation/TextImage.mjs +7 -3
- package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Tile.d.mts +2 -2
- package/dist/components/layout-and-navigation/Tile.d.ts +2 -2
- package/dist/components/layout-and-navigation/Tile.js +7 -7
- package/dist/components/layout-and-navigation/Tile.js.map +1 -1
- package/dist/components/layout-and-navigation/Tile.mjs +7 -7
- package/dist/components/layout-and-navigation/Tile.mjs.map +1 -1
- package/dist/components/loading-states/ErrorComponent.js +1 -1
- package/dist/components/loading-states/ErrorComponent.js.map +1 -1
- package/dist/components/loading-states/ErrorComponent.mjs +1 -1
- package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.js +6 -2
- package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.mjs +6 -2
- package/dist/components/loading-states/LoadingAndErrorComponent.mjs.map +1 -1
- package/dist/components/loading-states/LoadingAnimation.js +5 -1
- package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
- package/dist/components/loading-states/LoadingAnimation.mjs +5 -1
- package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
- package/dist/components/loading-states/LoadingButton.js +8 -6
- package/dist/components/loading-states/LoadingButton.js.map +1 -1
- package/dist/components/loading-states/LoadingButton.mjs +8 -6
- package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
- package/dist/components/modals/ConfirmModal.js +32 -28
- package/dist/components/modals/ConfirmModal.js.map +1 -1
- package/dist/components/modals/ConfirmModal.mjs +18 -14
- package/dist/components/modals/ConfirmModal.mjs.map +1 -1
- package/dist/components/modals/DiscardChangesModal.js +28 -24
- package/dist/components/modals/DiscardChangesModal.js.map +1 -1
- package/dist/components/modals/DiscardChangesModal.mjs +18 -14
- package/dist/components/modals/DiscardChangesModal.mjs.map +1 -1
- package/dist/components/modals/InputModal.js +32 -29
- package/dist/components/modals/InputModal.js.map +1 -1
- package/dist/components/modals/InputModal.mjs +18 -15
- package/dist/components/modals/InputModal.mjs.map +1 -1
- package/dist/components/modals/LanguageModal.js +728 -435
- package/dist/components/modals/LanguageModal.js.map +1 -1
- package/dist/components/modals/LanguageModal.mjs +728 -431
- package/dist/components/modals/LanguageModal.mjs.map +1 -1
- package/dist/components/modals/ThemeModal.js +732 -439
- package/dist/components/modals/ThemeModal.js.map +1 -1
- package/dist/components/modals/ThemeModal.mjs +731 -434
- package/dist/components/modals/ThemeModal.mjs.map +1 -1
- package/dist/components/properties/CheckboxProperty.js +110 -35
- package/dist/components/properties/CheckboxProperty.js.map +1 -1
- package/dist/components/properties/CheckboxProperty.mjs +110 -35
- package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
- package/dist/components/properties/DateProperty.js +118 -42
- package/dist/components/properties/DateProperty.js.map +1 -1
- package/dist/components/properties/DateProperty.mjs +114 -38
- package/dist/components/properties/DateProperty.mjs.map +1 -1
- package/dist/components/properties/MultiSelectProperty.d.mts +10 -3
- package/dist/components/properties/MultiSelectProperty.d.ts +10 -3
- package/dist/components/properties/MultiSelectProperty.js +915 -464
- package/dist/components/properties/MultiSelectProperty.js.map +1 -1
- package/dist/components/properties/MultiSelectProperty.mjs +920 -465
- package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
- package/dist/components/properties/NumberProperty.js +101 -19
- package/dist/components/properties/NumberProperty.js.map +1 -1
- package/dist/components/properties/NumberProperty.mjs +101 -19
- package/dist/components/properties/NumberProperty.mjs.map +1 -1
- package/dist/components/properties/PropertyBase.js +103 -20
- package/dist/components/properties/PropertyBase.js.map +1 -1
- package/dist/components/properties/PropertyBase.mjs +99 -16
- package/dist/components/properties/PropertyBase.mjs.map +1 -1
- package/dist/components/properties/SelectProperty.d.mts +9 -2
- package/dist/components/properties/SelectProperty.d.ts +9 -2
- package/dist/components/properties/SelectProperty.js +682 -244
- package/dist/components/properties/SelectProperty.js.map +1 -1
- package/dist/components/properties/SelectProperty.mjs +686 -244
- package/dist/components/properties/SelectProperty.mjs.map +1 -1
- package/dist/components/properties/TextProperty.js +133 -47
- package/dist/components/properties/TextProperty.js.map +1 -1
- package/dist/components/properties/TextProperty.mjs +133 -47
- package/dist/components/properties/TextProperty.mjs.map +1 -1
- package/dist/components/table/Table.js +285 -186
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/Table.mjs +270 -167
- package/dist/components/table/Table.mjs.map +1 -1
- package/dist/components/table/TableFilterButton.js +179 -79
- package/dist/components/table/TableFilterButton.js.map +1 -1
- package/dist/components/table/TableFilterButton.mjs +160 -56
- package/dist/components/table/TableFilterButton.mjs.map +1 -1
- package/dist/components/table/TableSortButton.js +72 -3
- package/dist/components/table/TableSortButton.js.map +1 -1
- package/dist/components/table/TableSortButton.mjs +72 -3
- package/dist/components/table/TableSortButton.mjs.map +1 -1
- package/dist/components/user-action/Button.d.mts +15 -2
- package/dist/components/user-action/Button.d.ts +15 -2
- package/dist/components/user-action/Button.js +12 -12
- package/dist/components/user-action/Button.js.map +1 -1
- package/dist/components/user-action/Button.mjs +12 -12
- package/dist/components/user-action/Button.mjs.map +1 -1
- package/dist/components/user-action/Checkbox.js +6 -15
- package/dist/components/user-action/Checkbox.js.map +1 -1
- package/dist/components/user-action/Checkbox.mjs +6 -15
- package/dist/components/user-action/Checkbox.mjs.map +1 -1
- package/dist/components/user-action/CopyToClipboardWrapper.js +6 -2
- package/dist/components/user-action/CopyToClipboardWrapper.js.map +1 -1
- package/dist/components/user-action/CopyToClipboardWrapper.mjs +6 -2
- package/dist/components/user-action/CopyToClipboardWrapper.mjs.map +1 -1
- package/dist/components/user-action/DateAndTimePicker.js +79 -48
- package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
- package/dist/components/user-action/DateAndTimePicker.mjs +65 -34
- package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
- package/dist/components/user-action/Input.js +0 -1
- package/dist/components/user-action/Input.js.map +1 -1
- package/dist/components/user-action/Input.mjs +0 -1
- package/dist/components/user-action/Input.mjs.map +1 -1
- package/dist/components/user-action/Menu.d.mts +11 -6
- package/dist/components/user-action/Menu.d.ts +11 -6
- package/dist/components/user-action/Menu.js +128 -31
- package/dist/components/user-action/Menu.js.map +1 -1
- package/dist/components/user-action/Menu.mjs +134 -33
- package/dist/components/user-action/Menu.mjs.map +1 -1
- package/dist/components/user-action/MultiSelect.d.mts +17 -7
- package/dist/components/user-action/MultiSelect.d.ts +17 -7
- package/dist/components/user-action/MultiSelect.js +796 -376
- package/dist/components/user-action/MultiSelect.js.map +1 -1
- package/dist/components/user-action/MultiSelect.mjs +781 -357
- package/dist/components/user-action/MultiSelect.mjs.map +1 -1
- package/dist/components/user-action/ScrollPicker.js +2 -2
- package/dist/components/user-action/ScrollPicker.js.map +1 -1
- package/dist/components/user-action/ScrollPicker.mjs +2 -2
- package/dist/components/user-action/ScrollPicker.mjs.map +1 -1
- package/dist/components/user-action/SearchBar.d.mts +14 -0
- package/dist/components/user-action/SearchBar.d.ts +14 -0
- package/dist/components/user-action/SearchBar.js +673 -0
- package/dist/components/user-action/SearchBar.js.map +1 -0
- package/dist/components/user-action/SearchBar.mjs +637 -0
- package/dist/components/user-action/SearchBar.mjs.map +1 -0
- package/dist/components/user-action/Select.d.mts +18 -5
- package/dist/components/user-action/Select.d.ts +18 -5
- package/dist/components/user-action/Select.js +764 -356
- package/dist/components/user-action/Select.js.map +1 -1
- package/dist/components/user-action/Select.mjs +761 -350
- package/dist/components/user-action/Select.mjs.map +1 -1
- package/dist/components/user-action/Textarea.d.mts +1 -1
- package/dist/components/user-action/Textarea.d.ts +1 -1
- package/dist/components/user-action/Textarea.js +13 -4
- package/dist/components/user-action/Textarea.js.map +1 -1
- package/dist/components/user-action/Textarea.mjs +13 -4
- package/dist/components/user-action/Textarea.mjs.map +1 -1
- package/dist/components/user-action/ToggleableInput.js +2 -3
- package/dist/components/user-action/ToggleableInput.js.map +1 -1
- package/dist/components/user-action/ToggleableInput.mjs +2 -3
- package/dist/components/user-action/ToggleableInput.mjs.map +1 -1
- package/dist/css/globals.css +251 -113
- package/dist/css/uncompiled/globals.css +19 -13
- package/dist/css/uncompiled/theme/colors-component.css +12 -3
- package/dist/css/uncompiled/theme/colors-semantic.css +10 -7
- package/dist/css/uncompiled/utitlity/animation.css +70 -1
- package/dist/css/uncompiled/utitlity/general.css +16 -0
- package/dist/hooks/useDelay.js +0 -1
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelay.mjs +0 -1
- package/dist/hooks/useDelay.mjs.map +1 -1
- package/dist/hooks/usePopoverPosition.d.mts +15 -0
- package/dist/hooks/usePopoverPosition.d.ts +15 -0
- package/dist/hooks/usePopoverPosition.js +81 -0
- package/dist/hooks/usePopoverPosition.js.map +1 -0
- package/dist/hooks/usePopoverPosition.mjs +57 -0
- package/dist/hooks/usePopoverPosition.mjs.map +1 -0
- package/dist/hooks/useSearch.d.mts +7 -2
- package/dist/hooks/useSearch.d.ts +7 -2
- package/dist/hooks/useSearch.js +44 -15
- package/dist/hooks/useSearch.js.map +1 -1
- package/dist/hooks/useSearch.mjs +45 -16
- package/dist/hooks/useSearch.mjs.map +1 -1
- package/dist/index.d.mts +6 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +1102 -820
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1001 -719
- package/dist/index.mjs.map +1 -1
- package/dist/localization/defaults/form.d.mts +2 -0
- package/dist/localization/defaults/form.d.ts +2 -0
- package/dist/localization/defaults/form.js +4 -0
- package/dist/localization/defaults/form.js.map +1 -1
- package/dist/localization/defaults/form.mjs +4 -0
- package/dist/localization/defaults/form.mjs.map +1 -1
- package/dist/util/simpleSearch.d.mts +1 -1
- package/dist/util/simpleSearch.d.ts +1 -1
- package/dist/util/simpleSearch.js +4 -1
- package/dist/util/simpleSearch.js.map +1 -1
- package/dist/util/simpleSearch.mjs +4 -1
- package/dist/util/simpleSearch.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2872,6 +2872,7 @@ __export(index_exports, {
|
|
|
2872
2872
|
ErrorComponent: () => ErrorComponent,
|
|
2873
2873
|
Expandable: () => Expandable,
|
|
2874
2874
|
ExpandableUncontrolled: () => ExpandableUncontrolled,
|
|
2875
|
+
ExpansionIcon: () => ExpansionIcon,
|
|
2875
2876
|
FAQSection: () => FAQSection,
|
|
2876
2877
|
FillerRowElement: () => FillerRowElement,
|
|
2877
2878
|
FormInput: () => FormInput,
|
|
@@ -2912,8 +2913,10 @@ __export(index_exports, {
|
|
|
2912
2913
|
Ring: () => Ring,
|
|
2913
2914
|
RingWave: () => RingWave,
|
|
2914
2915
|
ScrollPicker: () => ScrollPicker,
|
|
2916
|
+
SearchBar: () => SearchBar,
|
|
2915
2917
|
SearchableList: () => SearchableList,
|
|
2916
2918
|
Select: () => Select,
|
|
2919
|
+
SelectTile: () => SelectTile,
|
|
2917
2920
|
SelectUncontrolled: () => SelectUncontrolled,
|
|
2918
2921
|
SessionStorageService: () => SessionStorageService,
|
|
2919
2922
|
SimpleSearch: () => SimpleSearch,
|
|
@@ -2990,6 +2993,7 @@ __export(index_exports, {
|
|
|
2990
2993
|
useLocalStorage: () => useLocalStorage,
|
|
2991
2994
|
useLocale: () => useLocale,
|
|
2992
2995
|
useOutsideClick: () => useOutsideClick,
|
|
2996
|
+
usePopoverPosition: () => usePopoverPosition,
|
|
2993
2997
|
useRerender: () => useRerender,
|
|
2994
2998
|
useResizeCallbackWrapper: () => useResizeCallbackWrapper,
|
|
2995
2999
|
useSearch: () => useSearch,
|
|
@@ -3057,7 +3061,7 @@ var Tile = ({
|
|
|
3057
3061
|
description,
|
|
3058
3062
|
onClick,
|
|
3059
3063
|
isSelected = false,
|
|
3060
|
-
|
|
3064
|
+
disabled = false,
|
|
3061
3065
|
prefix,
|
|
3062
3066
|
suffix,
|
|
3063
3067
|
normalClassName = "hover:bg-primary/40 cursor-pointer",
|
|
@@ -3069,18 +3073,18 @@ var Tile = ({
|
|
|
3069
3073
|
"div",
|
|
3070
3074
|
{
|
|
3071
3075
|
className: (0, import_clsx.default)(
|
|
3072
|
-
"row
|
|
3076
|
+
"flex-row-2 w-full items-center",
|
|
3073
3077
|
{
|
|
3074
|
-
[normalClassName]: !!onClick && !
|
|
3075
|
-
[selectedClassName]: isSelected && !
|
|
3076
|
-
[disabledClassName]:
|
|
3078
|
+
[normalClassName]: !!onClick && !disabled,
|
|
3079
|
+
[selectedClassName]: isSelected && !disabled,
|
|
3080
|
+
[disabledClassName]: disabled
|
|
3077
3081
|
},
|
|
3078
3082
|
className
|
|
3079
3083
|
),
|
|
3080
|
-
onClick:
|
|
3084
|
+
onClick: disabled ? void 0 : onClick,
|
|
3081
3085
|
children: [
|
|
3082
3086
|
prefix,
|
|
3083
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "col
|
|
3087
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-col-0 w-full", children: [
|
|
3084
3088
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", { className: (0, import_clsx.default)(title.className ?? "textstyle-title-normal"), children: title.value }),
|
|
3085
3089
|
!!description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: (0, import_clsx.default)(description.className ?? "textstyle-description"), children: description.value })
|
|
3086
3090
|
] }),
|
|
@@ -3187,7 +3191,7 @@ var HelpwaveBadge = ({
|
|
|
3187
3191
|
};
|
|
3188
3192
|
|
|
3189
3193
|
// src/components/date/DatePicker.tsx
|
|
3190
|
-
var
|
|
3194
|
+
var import_react7 = require("react");
|
|
3191
3195
|
var import_lucide_react3 = require("lucide-react");
|
|
3192
3196
|
|
|
3193
3197
|
// src/localization/LanguageProvider.tsx
|
|
@@ -3617,6 +3621,7 @@ var getWeeksForCalenderMonth = (date, weekStart, weeks = 6) => {
|
|
|
3617
3621
|
var import_clsx8 = __toESM(require("clsx"));
|
|
3618
3622
|
|
|
3619
3623
|
// src/components/user-action/Button.tsx
|
|
3624
|
+
var import_react3 = require("react");
|
|
3620
3625
|
var import_clsx4 = __toESM(require("clsx"));
|
|
3621
3626
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
3622
3627
|
var ButtonColorUtil = {
|
|
@@ -3642,7 +3647,7 @@ var ButtonUtil = {
|
|
|
3642
3647
|
paddingMapping,
|
|
3643
3648
|
iconPaddingMapping
|
|
3644
3649
|
};
|
|
3645
|
-
var SolidButton = ({
|
|
3650
|
+
var SolidButton = (0, import_react3.forwardRef)(function SolidButton2({
|
|
3646
3651
|
children,
|
|
3647
3652
|
disabled = false,
|
|
3648
3653
|
color = "primary",
|
|
@@ -3652,7 +3657,7 @@ var SolidButton = ({
|
|
|
3652
3657
|
onClick,
|
|
3653
3658
|
className,
|
|
3654
3659
|
...restProps
|
|
3655
|
-
})
|
|
3660
|
+
}, ref) {
|
|
3656
3661
|
const colorClasses = {
|
|
3657
3662
|
primary: "bg-button-solid-primary-background text-button-solid-primary-text",
|
|
3658
3663
|
secondary: "bg-button-solid-secondary-background text-button-solid-secondary-text",
|
|
@@ -3674,8 +3679,9 @@ var SolidButton = ({
|
|
|
3674
3679
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
3675
3680
|
"button",
|
|
3676
3681
|
{
|
|
3677
|
-
|
|
3678
|
-
|
|
3682
|
+
ref,
|
|
3683
|
+
onClick,
|
|
3684
|
+
disabled,
|
|
3679
3685
|
className: (0, import_clsx4.default)(
|
|
3680
3686
|
{
|
|
3681
3687
|
"text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
|
|
@@ -3710,7 +3716,7 @@ var SolidButton = ({
|
|
|
3710
3716
|
]
|
|
3711
3717
|
}
|
|
3712
3718
|
);
|
|
3713
|
-
};
|
|
3719
|
+
});
|
|
3714
3720
|
var OutlineButton = ({
|
|
3715
3721
|
children,
|
|
3716
3722
|
disabled = false,
|
|
@@ -3731,8 +3737,8 @@ var OutlineButton = ({
|
|
|
3731
3737
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
3732
3738
|
"button",
|
|
3733
3739
|
{
|
|
3734
|
-
onClick
|
|
3735
|
-
disabled
|
|
3740
|
+
onClick,
|
|
3741
|
+
disabled,
|
|
3736
3742
|
className: (0, import_clsx4.default)(
|
|
3737
3743
|
{
|
|
3738
3744
|
"text-disabled-text border-disabled-outline cursor-not-allowed": disabled,
|
|
@@ -3792,8 +3798,8 @@ var TextButton = ({
|
|
|
3792
3798
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
3793
3799
|
"button",
|
|
3794
3800
|
{
|
|
3795
|
-
onClick
|
|
3796
|
-
disabled
|
|
3801
|
+
onClick,
|
|
3802
|
+
disabled,
|
|
3797
3803
|
className: (0, import_clsx4.default)(
|
|
3798
3804
|
{
|
|
3799
3805
|
"text-disabled-text cursor-not-allowed": disabled,
|
|
@@ -3834,7 +3840,6 @@ var IconButton = ({
|
|
|
3834
3840
|
disabled = false,
|
|
3835
3841
|
color = "primary",
|
|
3836
3842
|
size = "medium",
|
|
3837
|
-
onClick,
|
|
3838
3843
|
className,
|
|
3839
3844
|
...restProps
|
|
3840
3845
|
}) => {
|
|
@@ -3851,8 +3856,7 @@ var IconButton = ({
|
|
|
3851
3856
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3852
3857
|
"button",
|
|
3853
3858
|
{
|
|
3854
|
-
|
|
3855
|
-
disabled: disabled || onClick === void 0,
|
|
3859
|
+
disabled,
|
|
3856
3860
|
className: (0, import_clsx4.default)(
|
|
3857
3861
|
{
|
|
3858
3862
|
"text-disabled-text bg-disabled-background cursor-not-allowed": disabled && color !== "transparent",
|
|
@@ -3870,17 +3874,28 @@ var IconButton = ({
|
|
|
3870
3874
|
};
|
|
3871
3875
|
|
|
3872
3876
|
// src/components/date/YearMonthPicker.tsx
|
|
3873
|
-
var
|
|
3877
|
+
var import_react5 = require("react");
|
|
3874
3878
|
var import_react_custom_scrollbars_2 = require("react-custom-scrollbars-2");
|
|
3875
3879
|
var import_clsx6 = __toESM(require("clsx"));
|
|
3876
3880
|
|
|
3877
3881
|
// src/components/layout-and-navigation/Expandable.tsx
|
|
3878
|
-
var
|
|
3882
|
+
var import_react4 = require("react");
|
|
3879
3883
|
var import_lucide_react2 = require("lucide-react");
|
|
3880
3884
|
var import_clsx5 = __toESM(require("clsx"));
|
|
3881
3885
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
3882
|
-
var
|
|
3883
|
-
|
|
3886
|
+
var ExpansionIcon = ({ isExpanded, className }) => {
|
|
3887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
3888
|
+
import_lucide_react2.ChevronDown,
|
|
3889
|
+
{
|
|
3890
|
+
className: (0, import_clsx5.default)(
|
|
3891
|
+
"min-w-6 w-6 min-h-6 h-6 transition-transform duration-200 ease-in-out",
|
|
3892
|
+
{ "rotate-180": isExpanded },
|
|
3893
|
+
className
|
|
3894
|
+
)
|
|
3895
|
+
}
|
|
3896
|
+
);
|
|
3897
|
+
};
|
|
3898
|
+
var Expandable = (0, import_react4.forwardRef)(function Expandable2({
|
|
3884
3899
|
children,
|
|
3885
3900
|
label,
|
|
3886
3901
|
icon,
|
|
@@ -3892,22 +3907,23 @@ var Expandable = (0, import_react3.forwardRef)(function Expandable2({
|
|
|
3892
3907
|
headerClassName,
|
|
3893
3908
|
contentClassName
|
|
3894
3909
|
}, ref) {
|
|
3895
|
-
|
|
3910
|
+
const defaultIcon = (0, import_react4.useCallback)((expanded) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ExpansionIcon, { isExpanded: expanded }), []);
|
|
3911
|
+
icon ??= defaultIcon;
|
|
3896
3912
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
3897
3913
|
"div",
|
|
3898
3914
|
{
|
|
3899
3915
|
ref,
|
|
3900
|
-
className: (0, import_clsx5.default)("col
|
|
3916
|
+
className: (0, import_clsx5.default)("flex-col-0 bg-surface text-on-surface group rounded-lg shadow-sm", { "cursor-pointer": !clickOnlyOnHeader && !disabled }, className),
|
|
3901
3917
|
onClick: () => !clickOnlyOnHeader && !disabled && onChange(!isExpanded),
|
|
3902
3918
|
children: [
|
|
3903
3919
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
3904
3920
|
"div",
|
|
3905
3921
|
{
|
|
3906
3922
|
className: (0, import_clsx5.default)(
|
|
3907
|
-
"row py-2 px-4 rounded-lg justify-between items-center bg-surface text-on-surface select-none",
|
|
3923
|
+
"flex-row-2 py-2 px-4 rounded-lg justify-between items-center bg-surface text-on-surface select-none",
|
|
3908
3924
|
{
|
|
3909
|
-
"group-hover:brightness-
|
|
3910
|
-
"hover:brightness-
|
|
3925
|
+
"group-hover:brightness-97": !isExpanded,
|
|
3926
|
+
"hover:brightness-97": isExpanded && !disabled,
|
|
3911
3927
|
"cursor-pointer": clickOnlyOnHeader && !disabled
|
|
3912
3928
|
},
|
|
3913
3929
|
headerClassName
|
|
@@ -3919,18 +3935,31 @@ var Expandable = (0, import_react3.forwardRef)(function Expandable2({
|
|
|
3919
3935
|
]
|
|
3920
3936
|
}
|
|
3921
3937
|
),
|
|
3922
|
-
|
|
3938
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
3939
|
+
"div",
|
|
3940
|
+
{
|
|
3941
|
+
className: (0, import_clsx5.default)(
|
|
3942
|
+
"flex-col-2 px-4 transition-all duration-300 ease-in-out",
|
|
3943
|
+
{
|
|
3944
|
+
"max-h-96 opacity-100 pb-2": isExpanded,
|
|
3945
|
+
"max-h-0 opacity-0 overflow-hidden": !isExpanded
|
|
3946
|
+
},
|
|
3947
|
+
contentClassName
|
|
3948
|
+
),
|
|
3949
|
+
children
|
|
3950
|
+
}
|
|
3951
|
+
)
|
|
3923
3952
|
]
|
|
3924
3953
|
}
|
|
3925
3954
|
);
|
|
3926
3955
|
});
|
|
3927
|
-
var ExpandableUncontrolled = (0,
|
|
3956
|
+
var ExpandableUncontrolled = (0, import_react4.forwardRef)(function ExpandableUncontrolled2({
|
|
3928
3957
|
isExpanded,
|
|
3929
3958
|
onChange = noop,
|
|
3930
3959
|
...props
|
|
3931
3960
|
}, ref) {
|
|
3932
|
-
const [usedIsExpanded, setUsedIsExpanded] = (0,
|
|
3933
|
-
(0,
|
|
3961
|
+
const [usedIsExpanded, setUsedIsExpanded] = (0, import_react4.useState)(isExpanded);
|
|
3962
|
+
(0, import_react4.useEffect)(() => {
|
|
3934
3963
|
setUsedIsExpanded(isExpanded);
|
|
3935
3964
|
}, [isExpanded]);
|
|
3936
3965
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
@@ -3959,8 +3988,8 @@ var YearMonthPicker = ({
|
|
|
3959
3988
|
showValueOpen = true
|
|
3960
3989
|
}) => {
|
|
3961
3990
|
const locale = useLocale();
|
|
3962
|
-
const ref = (0,
|
|
3963
|
-
(0,
|
|
3991
|
+
const ref = (0, import_react5.useRef)(null);
|
|
3992
|
+
(0, import_react5.useEffect)(() => {
|
|
3964
3993
|
const scrollToItem = () => {
|
|
3965
3994
|
if (ref.current) {
|
|
3966
3995
|
ref.current.scrollIntoView({
|
|
@@ -3976,7 +4005,7 @@ var YearMonthPicker = ({
|
|
|
3976
4005
|
return null;
|
|
3977
4006
|
}
|
|
3978
4007
|
const years = range([start.getFullYear(), end.getFullYear()], { exclusiveEnd: false });
|
|
3979
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: (0, import_clsx6.default)("col select-none", className), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_custom_scrollbars_2.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "col
|
|
4008
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: (0, import_clsx6.default)("flex-col-0 select-none", className), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_custom_scrollbars_2.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex-col-1 mr-3", children: years.map((year) => {
|
|
3980
4009
|
const selectedYear = displayedYearMonth.getFullYear() === year;
|
|
3981
4010
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
3982
4011
|
ExpandableUncontrolled,
|
|
@@ -3985,7 +4014,7 @@ var YearMonthPicker = ({
|
|
|
3985
4014
|
label: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: (0, import_clsx6.default)({ "text-primary font-bold": selectedYear }), children: year }),
|
|
3986
4015
|
isExpanded: showValueOpen && selectedYear,
|
|
3987
4016
|
contentClassName: "gap-y-1",
|
|
3988
|
-
children: equalSizeGroups([...monthsList], 3).map((monthList, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "row
|
|
4017
|
+
children: equalSizeGroups([...monthsList], 3).map((monthList, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex-row-1", children: monthList.map((month) => {
|
|
3989
4018
|
const monthIndex = monthsList.indexOf(month);
|
|
3990
4019
|
const newDate = new Date(year, monthIndex);
|
|
3991
4020
|
const selectedMonth = selectedYear && monthIndex === displayedYearMonth.getMonth();
|
|
@@ -4019,8 +4048,8 @@ var YearMonthPickerUncontrolled = ({
|
|
|
4019
4048
|
onChange = noop,
|
|
4020
4049
|
...props
|
|
4021
4050
|
}) => {
|
|
4022
|
-
const [yearMonth, setYearMonth] = (0,
|
|
4023
|
-
(0,
|
|
4051
|
+
const [yearMonth, setYearMonth] = (0, import_react5.useState)(displayedYearMonth ?? /* @__PURE__ */ new Date());
|
|
4052
|
+
(0, import_react5.useEffect)(() => setYearMonth(displayedYearMonth), [displayedYearMonth]);
|
|
4024
4053
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
4025
4054
|
YearMonthPicker,
|
|
4026
4055
|
{
|
|
@@ -4036,7 +4065,7 @@ var YearMonthPickerUncontrolled = ({
|
|
|
4036
4065
|
|
|
4037
4066
|
// src/components/date/DayPicker.tsx
|
|
4038
4067
|
var import_clsx7 = __toESM(require("clsx"));
|
|
4039
|
-
var
|
|
4068
|
+
var import_react6 = require("react");
|
|
4040
4069
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
4041
4070
|
var DayPicker = ({
|
|
4042
4071
|
displayedMonth,
|
|
@@ -4051,9 +4080,9 @@ var DayPicker = ({
|
|
|
4051
4080
|
const locale = useLocale();
|
|
4052
4081
|
const month = displayedMonth.getMonth();
|
|
4053
4082
|
const weeks = getWeeksForCalenderMonth(displayedMonth, weekStart);
|
|
4054
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: (0, import_clsx7.default)("col
|
|
4055
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "row text-center", children: weeks[0].map((weekDay, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex-1 font-semibold", children: new Intl.DateTimeFormat(locale, { weekday: "long" }).format(weekDay).substring(0, 2) }, index)) }),
|
|
4056
|
-
weeks.map((week, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "row text-center", children: week.map((date) => {
|
|
4083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: (0, import_clsx7.default)("flex-col-1 min-w-[220px] select-none", className), children: [
|
|
4084
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex-row-2 text-center", children: weeks[0].map((weekDay, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex-1 font-semibold", children: new Intl.DateTimeFormat(locale, { weekday: "long" }).format(weekDay).substring(0, 2) }, index)) }),
|
|
4085
|
+
weeks.map((week, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex-row-2 text-center", children: week.map((date) => {
|
|
4057
4086
|
const isSelected = !!selected && equalDate(selected, date);
|
|
4058
4087
|
const isToday = equalDate(/* @__PURE__ */ new Date(), date);
|
|
4059
4088
|
const isSameMonth = date.getMonth() === month;
|
|
@@ -4088,9 +4117,9 @@ var DayPickerUncontrolled = ({
|
|
|
4088
4117
|
onChange = noop,
|
|
4089
4118
|
...restProps
|
|
4090
4119
|
}) => {
|
|
4091
|
-
const [date, setDate] = (0,
|
|
4092
|
-
const [usedDisplayedMonth, setUsedDDisplayedMonth] = (0,
|
|
4093
|
-
(0,
|
|
4120
|
+
const [date, setDate] = (0, import_react6.useState)(selected);
|
|
4121
|
+
const [usedDisplayedMonth, setUsedDDisplayedMonth] = (0, import_react6.useState)(displayedMonth);
|
|
4122
|
+
(0, import_react6.useEffect)(() => {
|
|
4094
4123
|
setDate(selected);
|
|
4095
4124
|
setUsedDDisplayedMonth(selected);
|
|
4096
4125
|
}, [selected]);
|
|
@@ -4196,17 +4225,17 @@ var DatePicker = ({
|
|
|
4196
4225
|
}) => {
|
|
4197
4226
|
const locale = useLocale();
|
|
4198
4227
|
const translation = useTranslation([timeTranslation], overwriteTranslation);
|
|
4199
|
-
const [displayedMonth, setDisplayedMonth] = (0,
|
|
4200
|
-
const [displayMode, setDisplayMode] = (0,
|
|
4201
|
-
(0,
|
|
4228
|
+
const [displayedMonth, setDisplayedMonth] = (0, import_react7.useState)(value);
|
|
4229
|
+
const [displayMode, setDisplayMode] = (0, import_react7.useState)(initialDisplay);
|
|
4230
|
+
(0, import_react7.useEffect)(() => {
|
|
4202
4231
|
setDisplayedMonth(value);
|
|
4203
4232
|
}, [value]);
|
|
4204
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: (0, import_clsx8.default)("col
|
|
4205
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "row items-center justify-between h-7", children: [
|
|
4233
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: (0, import_clsx8.default)("flex-col-4", className), children: [
|
|
4234
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex-row-2 items-center justify-between h-7", children: [
|
|
4206
4235
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
4207
4236
|
TextButton,
|
|
4208
4237
|
{
|
|
4209
|
-
className: (0, import_clsx8.default)("row
|
|
4238
|
+
className: (0, import_clsx8.default)("flex-row-1 items-center cursor-pointer select-none", {
|
|
4210
4239
|
"text-disabled-text": displayMode !== "day"
|
|
4211
4240
|
}),
|
|
4212
4241
|
onClick: () => setDisplayMode(displayMode === "day" ? "yearMonth" : "day"),
|
|
@@ -4216,7 +4245,7 @@ var DatePicker = ({
|
|
|
4216
4245
|
]
|
|
4217
4246
|
}
|
|
4218
4247
|
),
|
|
4219
|
-
displayMode === "day" && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "row justify-end", children: [
|
|
4248
|
+
displayMode === "day" && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex-row-2 justify-end", children: [
|
|
4220
4249
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
4221
4250
|
SolidButton,
|
|
4222
4251
|
{
|
|
@@ -4289,8 +4318,8 @@ var DatePickerUncontrolled = ({
|
|
|
4289
4318
|
onChange = noop,
|
|
4290
4319
|
...props
|
|
4291
4320
|
}) => {
|
|
4292
|
-
const [date, setDate] = (0,
|
|
4293
|
-
(0,
|
|
4321
|
+
const [date, setDate] = (0, import_react7.useState)(value);
|
|
4322
|
+
(0, import_react7.useEffect)(() => setDate(value), [value]);
|
|
4294
4323
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
4295
4324
|
DatePicker,
|
|
4296
4325
|
{
|
|
@@ -4359,7 +4388,7 @@ var TimeDisplay = ({
|
|
|
4359
4388
|
};
|
|
4360
4389
|
|
|
4361
4390
|
// src/components/date/TimePicker.tsx
|
|
4362
|
-
var
|
|
4391
|
+
var import_react8 = require("react");
|
|
4363
4392
|
var import_react_custom_scrollbars_22 = require("react-custom-scrollbars-2");
|
|
4364
4393
|
var import_clsx9 = __toESM(require("clsx"));
|
|
4365
4394
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
@@ -4371,12 +4400,12 @@ var TimePicker = ({
|
|
|
4371
4400
|
maxHeight = 300,
|
|
4372
4401
|
className = ""
|
|
4373
4402
|
}) => {
|
|
4374
|
-
const minuteRef = (0,
|
|
4375
|
-
const hourRef = (0,
|
|
4403
|
+
const minuteRef = (0, import_react8.useRef)(null);
|
|
4404
|
+
const hourRef = (0, import_react8.useRef)(null);
|
|
4376
4405
|
const isPM = time.getHours() >= 11;
|
|
4377
4406
|
const hours = is24HourFormat ? range(24) : range([1, 12], { exclusiveEnd: false });
|
|
4378
4407
|
let minutes = range(60);
|
|
4379
|
-
(0,
|
|
4408
|
+
(0, import_react8.useEffect)(() => {
|
|
4380
4409
|
const scrollToItem = () => {
|
|
4381
4410
|
if (minuteRef.current) {
|
|
4382
4411
|
const container = minuteRef.current.parentElement;
|
|
@@ -4391,7 +4420,7 @@ var TimePicker = ({
|
|
|
4391
4420
|
};
|
|
4392
4421
|
scrollToItem();
|
|
4393
4422
|
}, [minuteRef, minuteRef.current]);
|
|
4394
|
-
(0,
|
|
4423
|
+
(0, import_react8.useEffect)(() => {
|
|
4395
4424
|
const scrollToItem = () => {
|
|
4396
4425
|
if (hourRef.current) {
|
|
4397
4426
|
const container = hourRef.current.parentElement;
|
|
@@ -4430,8 +4459,8 @@ var TimePicker = ({
|
|
|
4430
4459
|
transformer(newDate);
|
|
4431
4460
|
onChange(newDate);
|
|
4432
4461
|
};
|
|
4433
|
-
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: (0, import_clsx9.default)("row
|
|
4434
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_custom_scrollbars_22.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "col
|
|
4462
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: (0, import_clsx9.default)("flex-row-2 w-fit min-w-[150px] select-none", className), children: [
|
|
4463
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_custom_scrollbars_22.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex-col-1 h-full", children: hours.map((hour) => {
|
|
4435
4464
|
const currentHour = hour === time.getHours() - (!is24HourFormat && isPM ? 12 : 0);
|
|
4436
4465
|
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4437
4466
|
"button",
|
|
@@ -4444,7 +4473,7 @@ var TimePicker = ({
|
|
|
4444
4473
|
hour
|
|
4445
4474
|
);
|
|
4446
4475
|
}) }) }),
|
|
4447
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_custom_scrollbars_22.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "col
|
|
4476
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_custom_scrollbars_22.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex-col-1 h-full", children: minutes.map((minute) => {
|
|
4448
4477
|
const currentMinute = minute === closestMinute;
|
|
4449
4478
|
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4450
4479
|
"button",
|
|
@@ -4457,7 +4486,7 @@ var TimePicker = ({
|
|
|
4457
4486
|
minute + minuteIncrement
|
|
4458
4487
|
);
|
|
4459
4488
|
}) }) }),
|
|
4460
|
-
!is24HourFormat && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "col
|
|
4489
|
+
!is24HourFormat && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex-col-1", children: [
|
|
4461
4490
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4462
4491
|
"button",
|
|
4463
4492
|
{
|
|
@@ -4482,8 +4511,8 @@ var TimePickerUncontrolled = ({
|
|
|
4482
4511
|
onChange = noop,
|
|
4483
4512
|
...props
|
|
4484
4513
|
}) => {
|
|
4485
|
-
const [value, setValue] = (0,
|
|
4486
|
-
(0,
|
|
4514
|
+
const [value, setValue] = (0, import_react8.useState)(time);
|
|
4515
|
+
(0, import_react8.useEffect)(() => setValue(time), [time]);
|
|
4487
4516
|
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4488
4517
|
TimePicker,
|
|
4489
4518
|
{
|
|
@@ -4501,20 +4530,20 @@ var TimePickerUncontrolled = ({
|
|
|
4501
4530
|
var import_clsx12 = __toESM(require("clsx"));
|
|
4502
4531
|
|
|
4503
4532
|
// src/components/layout-and-navigation/Overlay.tsx
|
|
4504
|
-
var
|
|
4533
|
+
var import_react10 = require("react");
|
|
4505
4534
|
var import_react_dom = __toESM(require("react-dom"));
|
|
4506
4535
|
var import_clsx11 = __toESM(require("clsx"));
|
|
4507
4536
|
|
|
4508
4537
|
// src/hooks/useHoverState.ts
|
|
4509
|
-
var
|
|
4538
|
+
var import_react9 = require("react");
|
|
4510
4539
|
var defaultUseHoverStateProps = {
|
|
4511
4540
|
closingDelay: 200,
|
|
4512
4541
|
isDisabled: false
|
|
4513
4542
|
};
|
|
4514
4543
|
var useHoverState = (props = void 0) => {
|
|
4515
4544
|
const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props };
|
|
4516
|
-
const [isHovered, setIsHovered] = (0,
|
|
4517
|
-
const [timer, setTimer] = (0,
|
|
4545
|
+
const [isHovered, setIsHovered] = (0, import_react9.useState)(false);
|
|
4546
|
+
const [timer, setTimer] = (0, import_react9.useState)();
|
|
4518
4547
|
const onMouseEnter = () => {
|
|
4519
4548
|
if (isDisabled) {
|
|
4520
4549
|
return;
|
|
@@ -4530,14 +4559,14 @@ var useHoverState = (props = void 0) => {
|
|
|
4530
4559
|
setIsHovered(false);
|
|
4531
4560
|
}, closingDelay));
|
|
4532
4561
|
};
|
|
4533
|
-
(0,
|
|
4562
|
+
(0, import_react9.useEffect)(() => {
|
|
4534
4563
|
if (timer) {
|
|
4535
4564
|
return () => {
|
|
4536
4565
|
clearTimeout(timer);
|
|
4537
4566
|
};
|
|
4538
4567
|
}
|
|
4539
4568
|
});
|
|
4540
|
-
(0,
|
|
4569
|
+
(0, import_react9.useEffect)(() => {
|
|
4541
4570
|
if (timer) {
|
|
4542
4571
|
clearTimeout(timer);
|
|
4543
4572
|
}
|
|
@@ -4621,6 +4650,7 @@ var import_lucide_react4 = require("lucide-react");
|
|
|
4621
4650
|
// src/localization/defaults/form.ts
|
|
4622
4651
|
var formTranslation = {
|
|
4623
4652
|
en: {
|
|
4653
|
+
add: "Add",
|
|
4624
4654
|
all: "All",
|
|
4625
4655
|
apply: "Apply",
|
|
4626
4656
|
back: "Back",
|
|
@@ -4633,6 +4663,7 @@ var formTranslation = {
|
|
|
4633
4663
|
confirm: "Confirm",
|
|
4634
4664
|
copy: "Copy",
|
|
4635
4665
|
copied: "Copied",
|
|
4666
|
+
create: "Create",
|
|
4636
4667
|
decline: "Decline",
|
|
4637
4668
|
delete: "Delete",
|
|
4638
4669
|
discard: "Discard",
|
|
@@ -4675,6 +4706,7 @@ var formTranslation = {
|
|
|
4675
4706
|
yes: "Yes"
|
|
4676
4707
|
},
|
|
4677
4708
|
de: {
|
|
4709
|
+
add: "Hinzuf\xFCgen",
|
|
4678
4710
|
all: "Alle",
|
|
4679
4711
|
apply: "Anwenden",
|
|
4680
4712
|
back: "Zur\xFCck",
|
|
@@ -4687,6 +4719,7 @@ var formTranslation = {
|
|
|
4687
4719
|
confirm: "Best\xE4tigen",
|
|
4688
4720
|
copy: "Kopieren",
|
|
4689
4721
|
copied: "Kopiert",
|
|
4722
|
+
create: "Erstellen",
|
|
4690
4723
|
decline: "Ablehnen",
|
|
4691
4724
|
delete: "L\xF6schen",
|
|
4692
4725
|
discard: "Verwerfen",
|
|
@@ -4738,8 +4771,8 @@ var Overlay = ({
|
|
|
4738
4771
|
onBackgroundClick,
|
|
4739
4772
|
backgroundClassName
|
|
4740
4773
|
}) => {
|
|
4741
|
-
const [root, setRoot] = (0,
|
|
4742
|
-
(0,
|
|
4774
|
+
const [root, setRoot] = (0, import_react10.useState)();
|
|
4775
|
+
(0, import_react10.useEffect)(() => {
|
|
4743
4776
|
setRoot(document.body);
|
|
4744
4777
|
}, []);
|
|
4745
4778
|
if (!root || !isOpen) return null;
|
|
@@ -4748,7 +4781,7 @@ var Overlay = ({
|
|
|
4748
4781
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
4749
4782
|
"div",
|
|
4750
4783
|
{
|
|
4751
|
-
className: (0, import_clsx11.default)("fixed inset-0 h-screen w-screen bg-
|
|
4784
|
+
className: (0, import_clsx11.default)("fixed inset-0 h-screen w-screen bg-overlay-shadow", backgroundClassName),
|
|
4752
4785
|
onClick: onBackgroundClick
|
|
4753
4786
|
}
|
|
4754
4787
|
),
|
|
@@ -4776,7 +4809,7 @@ var OverlayHeader = ({
|
|
|
4776
4809
|
}) => {
|
|
4777
4810
|
const translation = useTranslation([defaultModalHeaderTranslation], overwriteTranslation);
|
|
4778
4811
|
const hasTitleRow = !!title || !!titleText || !!onClose;
|
|
4779
|
-
const titleRow = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "row justify-between items-start
|
|
4812
|
+
const titleRow = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex-row-8 justify-between items-start", children: [
|
|
4780
4813
|
title ?? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
4781
4814
|
"h2",
|
|
4782
4815
|
{
|
|
@@ -4788,7 +4821,7 @@ var OverlayHeader = ({
|
|
|
4788
4821
|
),
|
|
4789
4822
|
!!onClose && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Tooltip, { tooltip: translation("close"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { color: "neutral", size: "small", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react4.X, { className: "w-full h-full" }) }) })
|
|
4790
4823
|
] });
|
|
4791
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "col", children: [
|
|
4824
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex-col-2", children: [
|
|
4792
4825
|
hasTitleRow && titleRow,
|
|
4793
4826
|
description ?? (descriptionText && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "textstyle-description", children: descriptionText }))
|
|
4794
4827
|
] });
|
|
@@ -4801,8 +4834,8 @@ var Modal = ({
|
|
|
4801
4834
|
backgroundClassName,
|
|
4802
4835
|
headerProps
|
|
4803
4836
|
}) => {
|
|
4804
|
-
const ref = (0,
|
|
4805
|
-
(0,
|
|
4837
|
+
const ref = (0, import_react10.useRef)(null);
|
|
4838
|
+
(0, import_react10.useEffect)(() => {
|
|
4806
4839
|
if (!isOpen) return;
|
|
4807
4840
|
const modal = ref.current;
|
|
4808
4841
|
if (!modal) {
|
|
@@ -4851,7 +4884,7 @@ var Modal = ({
|
|
|
4851
4884
|
ref,
|
|
4852
4885
|
tabIndex: -1,
|
|
4853
4886
|
className: (0, import_clsx11.default)(
|
|
4854
|
-
"fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2
|
|
4887
|
+
"flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl animate-pop-in",
|
|
4855
4888
|
className
|
|
4856
4889
|
),
|
|
4857
4890
|
role: "dialog",
|
|
@@ -4872,8 +4905,8 @@ var Dialog = ({
|
|
|
4872
4905
|
backgroundClassName,
|
|
4873
4906
|
headerProps
|
|
4874
4907
|
}) => {
|
|
4875
|
-
const ref = (0,
|
|
4876
|
-
(0,
|
|
4908
|
+
const ref = (0, import_react10.useRef)(null);
|
|
4909
|
+
(0, import_react10.useEffect)(() => {
|
|
4877
4910
|
if (!isOpen) return;
|
|
4878
4911
|
const dialog = ref.current;
|
|
4879
4912
|
if (!dialog) {
|
|
@@ -4920,7 +4953,7 @@ var Dialog = ({
|
|
|
4920
4953
|
ref,
|
|
4921
4954
|
tabIndex: -1,
|
|
4922
4955
|
className: (0, import_clsx11.default)(
|
|
4923
|
-
"fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2
|
|
4956
|
+
"flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl animate-pop-in",
|
|
4924
4957
|
className
|
|
4925
4958
|
),
|
|
4926
4959
|
role: "dialog",
|
|
@@ -4955,8 +4988,8 @@ var ConfirmDialog = ({
|
|
|
4955
4988
|
primary: "primary"
|
|
4956
4989
|
};
|
|
4957
4990
|
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Dialog, { ...restProps, className: (0, import_clsx12.default)("justify-between", className), children: [
|
|
4958
|
-
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "col grow", children }),
|
|
4959
|
-
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "row mt-3
|
|
4991
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex-col-2 grow", children }),
|
|
4992
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex-row-4 mt-3 justify-end", children: [
|
|
4960
4993
|
onDecline && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
4961
4994
|
SolidButton,
|
|
4962
4995
|
{
|
|
@@ -5031,7 +5064,7 @@ var AvatarGroup = ({
|
|
|
5031
5064
|
const stackingOverlap = 0.5;
|
|
5032
5065
|
const notDisplayedProfiles = avatars.length - maxShownProfiles;
|
|
5033
5066
|
const avatarGroupWidth = diameter * (stackingOverlap * (displayedProfiles.length - 1) + 1);
|
|
5034
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "row relative", style: { height: diameter + "px" }, children: [
|
|
5067
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex-row-2 relative", style: { height: diameter + "px" }, children: [
|
|
5035
5068
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { width: avatarGroupWidth + "px" }, children: displayedProfiles.map((avatar, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
5036
5069
|
"div",
|
|
5037
5070
|
{
|
|
@@ -5044,7 +5077,7 @@ var AvatarGroup = ({
|
|
|
5044
5077
|
notDisplayedProfiles > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
5045
5078
|
"div",
|
|
5046
5079
|
{
|
|
5047
|
-
className: "truncate
|
|
5080
|
+
className: "flex-row-2 truncate items-center",
|
|
5048
5081
|
style: { fontSize: diameter / 2 + "px", marginLeft: 1 + diameter / 16 + "px" },
|
|
5049
5082
|
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { children: [
|
|
5050
5083
|
"+ ",
|
|
@@ -5080,7 +5113,7 @@ var Circle = ({
|
|
|
5080
5113
|
};
|
|
5081
5114
|
|
|
5082
5115
|
// src/components/icons-and-geometry/Ring.tsx
|
|
5083
|
-
var
|
|
5116
|
+
var import_react11 = require("react");
|
|
5084
5117
|
var import_clsx15 = __toESM(require("clsx"));
|
|
5085
5118
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
5086
5119
|
var Ring = ({
|
|
@@ -5109,9 +5142,9 @@ var AnimatedRing = ({
|
|
|
5109
5142
|
onAnimationFinished = noop,
|
|
5110
5143
|
style
|
|
5111
5144
|
}) => {
|
|
5112
|
-
const [currentWidth, setCurrentWidth] = (0,
|
|
5145
|
+
const [currentWidth, setCurrentWidth] = (0, import_react11.useState)(0);
|
|
5113
5146
|
const milliseconds = 1e3 * fillAnimationDuration;
|
|
5114
|
-
const animate = (0,
|
|
5147
|
+
const animate = (0, import_react11.useCallback)((timestamp, startTime) => {
|
|
5115
5148
|
const progress = Math.min((timestamp - startTime) / milliseconds, 1);
|
|
5116
5149
|
const newWidth = Math.min(width * progress, width);
|
|
5117
5150
|
setCurrentWidth(newWidth);
|
|
@@ -5125,7 +5158,7 @@ var AnimatedRing = ({
|
|
|
5125
5158
|
}
|
|
5126
5159
|
}
|
|
5127
5160
|
}, [milliseconds, onAnimationFinished, repeating, width]);
|
|
5128
|
-
(0,
|
|
5161
|
+
(0, import_react11.useEffect)(() => {
|
|
5129
5162
|
if (currentWidth < width) {
|
|
5130
5163
|
requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
|
|
5131
5164
|
}
|
|
@@ -5133,7 +5166,7 @@ var AnimatedRing = ({
|
|
|
5133
5166
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
5134
5167
|
"div",
|
|
5135
5168
|
{
|
|
5136
|
-
className: "row items-center justify-center",
|
|
5169
|
+
className: "flex-row-2 items-center justify-center",
|
|
5137
5170
|
style: {
|
|
5138
5171
|
width: `${innerSize + 2 * width}px`,
|
|
5139
5172
|
height: `${innerSize + 2 * width}px`,
|
|
@@ -5160,10 +5193,10 @@ var RingWave = ({
|
|
|
5160
5193
|
onAnimationFinished = noop,
|
|
5161
5194
|
style
|
|
5162
5195
|
}) => {
|
|
5163
|
-
const [currentInnerSize, setCurrentInnerSize] = (0,
|
|
5196
|
+
const [currentInnerSize, setCurrentInnerSize] = (0, import_react11.useState)(startInnerSize);
|
|
5164
5197
|
const distance = endInnerSize - startInnerSize;
|
|
5165
5198
|
const milliseconds = 1e3 * fillAnimationDuration;
|
|
5166
|
-
const animate = (0,
|
|
5199
|
+
const animate = (0, import_react11.useCallback)((timestamp, startTime) => {
|
|
5167
5200
|
const progress = Math.min((timestamp - startTime) / milliseconds, 1);
|
|
5168
5201
|
const newInnerSize = Math.min(
|
|
5169
5202
|
startInnerSize + distance * progress,
|
|
@@ -5180,7 +5213,7 @@ var RingWave = ({
|
|
|
5180
5213
|
}
|
|
5181
5214
|
}
|
|
5182
5215
|
}, [distance, endInnerSize, milliseconds, onAnimationFinished, repeating, startInnerSize]);
|
|
5183
|
-
(0,
|
|
5216
|
+
(0, import_react11.useEffect)(() => {
|
|
5184
5217
|
if (currentInnerSize < endInnerSize) {
|
|
5185
5218
|
requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
|
|
5186
5219
|
}
|
|
@@ -5188,7 +5221,7 @@ var RingWave = ({
|
|
|
5188
5221
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
5189
5222
|
"div",
|
|
5190
5223
|
{
|
|
5191
|
-
className: "row items-center justify-center",
|
|
5224
|
+
className: "flex-row-2 items-center justify-center",
|
|
5192
5225
|
style: {
|
|
5193
5226
|
width: `${endInnerSize + 2 * width}px`,
|
|
5194
5227
|
height: `${endInnerSize + 2 * width}px`,
|
|
@@ -5215,7 +5248,7 @@ var RadialRings = ({
|
|
|
5215
5248
|
sizeCircle2 = 200,
|
|
5216
5249
|
sizeCircle3 = 300
|
|
5217
5250
|
}) => {
|
|
5218
|
-
const [currentRing, setCurrentRing] = (0,
|
|
5251
|
+
const [currentRing, setCurrentRing] = (0, import_react11.useState)(0);
|
|
5219
5252
|
const size = sizeCircle3;
|
|
5220
5253
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
5221
5254
|
"div",
|
|
@@ -5368,7 +5401,7 @@ var import_clsx16 = __toESM(require("clsx"));
|
|
|
5368
5401
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
5369
5402
|
var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
|
|
5370
5403
|
const color = "text-description";
|
|
5371
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: (0, import_clsx16.default)("row
|
|
5404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: (0, import_clsx16.default)("flex-row-0", containerClassName), children: crumbs.map((crumb, index) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { children: [
|
|
5372
5405
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5373
5406
|
import_link.default,
|
|
5374
5407
|
{
|
|
@@ -5382,7 +5415,7 @@ var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
|
|
|
5382
5415
|
};
|
|
5383
5416
|
|
|
5384
5417
|
// src/components/layout-and-navigation/Carousel.tsx
|
|
5385
|
-
var
|
|
5418
|
+
var import_react12 = require("react");
|
|
5386
5419
|
var import_clsx17 = __toESM(require("clsx"));
|
|
5387
5420
|
var import_lucide_react5 = require("lucide-react");
|
|
5388
5421
|
|
|
@@ -5514,15 +5547,15 @@ var Carousel = ({
|
|
|
5514
5547
|
currentPosition,
|
|
5515
5548
|
dragState,
|
|
5516
5549
|
animationState
|
|
5517
|
-
}, setCarouselInformation] = (0,
|
|
5550
|
+
}, setCarouselInformation] = (0, import_react12.useState)({
|
|
5518
5551
|
currentPosition: 0
|
|
5519
5552
|
});
|
|
5520
|
-
const animationId = (0,
|
|
5521
|
-
const timeOut = (0,
|
|
5553
|
+
const animationId = (0, import_react12.useRef)(void 0);
|
|
5554
|
+
const timeOut = (0, import_react12.useRef)(void 0);
|
|
5522
5555
|
autoLoopingTimeOut = Math.max(0, autoLoopingTimeOut);
|
|
5523
5556
|
const length = children.length;
|
|
5524
5557
|
const paddingItemCount = 3;
|
|
5525
|
-
const util = (0,
|
|
5558
|
+
const util = (0, import_react12.useMemo)(() => new LoopingArrayCalculator(length, isLooping, overScrollThreshold), [length, isLooping, overScrollThreshold]);
|
|
5526
5559
|
const currentIndex = util.getCorrectedPosition(LoopingArrayCalculator.withoutOffset(currentPosition));
|
|
5527
5560
|
animationTime = Math.max(200, animationTime);
|
|
5528
5561
|
autoLoopAnimationTime = Math.max(200, autoLoopAnimationTime);
|
|
@@ -5530,7 +5563,7 @@ var Carousel = ({
|
|
|
5530
5563
|
const baseOffset = -50 + (index - currentPosition) * 100;
|
|
5531
5564
|
return `${baseOffset}%`;
|
|
5532
5565
|
};
|
|
5533
|
-
const animation = (0,
|
|
5566
|
+
const animation = (0, import_react12.useCallback)((time) => {
|
|
5534
5567
|
let keepAnimating = true;
|
|
5535
5568
|
setCarouselInformation((state) => {
|
|
5536
5569
|
const {
|
|
@@ -5575,7 +5608,7 @@ var Carousel = ({
|
|
|
5575
5608
|
animationId.current = requestAnimationFrame((time1) => animation(time1));
|
|
5576
5609
|
}
|
|
5577
5610
|
}, [animationTime, autoLoopAnimationTime, util]);
|
|
5578
|
-
(0,
|
|
5611
|
+
(0, import_react12.useEffect)(() => {
|
|
5579
5612
|
if (animationState) {
|
|
5580
5613
|
animationId.current = requestAnimationFrame(animation);
|
|
5581
5614
|
}
|
|
@@ -5597,7 +5630,7 @@ var Carousel = ({
|
|
|
5597
5630
|
isAutoLooping: true
|
|
5598
5631
|
}
|
|
5599
5632
|
}));
|
|
5600
|
-
(0,
|
|
5633
|
+
(0, import_react12.useEffect)(() => {
|
|
5601
5634
|
if (!animationId.current && !animationState && !dragState && !timeOut.current) {
|
|
5602
5635
|
if (autoLoopingTimeOut > 0) {
|
|
5603
5636
|
timeOut.current = setTimeout(() => {
|
|
@@ -5729,7 +5762,7 @@ var Carousel = ({
|
|
|
5729
5762
|
onTouchEnd: (event) => onDragEnd(event.changedTouches[0].clientX, event.target.getBoundingClientRect().width),
|
|
5730
5763
|
onTouchCancel: (event) => onDragEnd(event.changedTouches[0].clientX, event.target.getBoundingClientRect().width)
|
|
5731
5764
|
};
|
|
5732
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "col items-center w-full
|
|
5765
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex-col-2 items-center w-full", children: [
|
|
5733
5766
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: (0, import_clsx17.default)(`relative w-full overflow-hidden`, heightClassName, className), children: [
|
|
5734
5767
|
arrows && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
5735
5768
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
@@ -5753,8 +5786,8 @@ var Carousel = ({
|
|
|
5753
5786
|
}
|
|
5754
5787
|
)
|
|
5755
5788
|
] }),
|
|
5756
|
-
hintNext ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: (0, import_clsx17.default)(`relative
|
|
5757
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "relative
|
|
5789
|
+
hintNext ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: (0, import_clsx17.default)(`flex-row-2 relative h-full`, heightClassName), children: [
|
|
5790
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex-row-2 relative h-full w-full px-2 overflow-hidden", children: items.map(({
|
|
5758
5791
|
item,
|
|
5759
5792
|
index
|
|
5760
5793
|
}, listIndex) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
@@ -5785,7 +5818,7 @@ var Carousel = ({
|
|
|
5785
5818
|
dots && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5786
5819
|
"div",
|
|
5787
5820
|
{
|
|
5788
|
-
className: "row items-center justify-center w-full my-2",
|
|
5821
|
+
className: "flex-row-2 items-center justify-center w-full my-2",
|
|
5789
5822
|
children: range(length).map((index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5790
5823
|
"button",
|
|
5791
5824
|
{
|
|
@@ -5855,7 +5888,7 @@ var ChipList = ({
|
|
|
5855
5888
|
list,
|
|
5856
5889
|
className = ""
|
|
5857
5890
|
}) => {
|
|
5858
|
-
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: (0, import_clsx18.default)("flex flex-wrap gap-x-
|
|
5891
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: (0, import_clsx18.default)("flex flex-wrap gap-x-2 gap-y-2", className), children: list.map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
5859
5892
|
Chip,
|
|
5860
5893
|
{
|
|
5861
5894
|
...value,
|
|
@@ -5891,7 +5924,6 @@ var DividerInserter = ({
|
|
|
5891
5924
|
|
|
5892
5925
|
// src/components/layout-and-navigation/FAQSection.tsx
|
|
5893
5926
|
var import_clsx20 = __toESM(require("clsx"));
|
|
5894
|
-
var import_lucide_react6 = require("lucide-react");
|
|
5895
5927
|
|
|
5896
5928
|
// src/components/layout-and-navigation/MarkdownInterpreter.tsx
|
|
5897
5929
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
@@ -6130,14 +6162,13 @@ var FAQSection = ({
|
|
|
6130
6162
|
entries,
|
|
6131
6163
|
expandableClassName
|
|
6132
6164
|
}) => {
|
|
6133
|
-
|
|
6134
|
-
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "col gap-y-4", children: entries.map(({ id, title, content, ...restProps }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
6165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex-col-4", children: entries.map(({ id, title, content, ...restProps }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
6135
6166
|
ExpandableUncontrolled,
|
|
6136
6167
|
{
|
|
6137
6168
|
...restProps,
|
|
6138
6169
|
label: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h3", { id, className: "textstyle-title-md", children: title }),
|
|
6139
6170
|
clickOnlyOnHeader: false,
|
|
6140
|
-
icon: (expanded) =>
|
|
6171
|
+
icon: (expanded) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ExpansionIcon, { isExpanded: expanded, className: "text-primary" }),
|
|
6141
6172
|
className: (0, import_clsx20.default)("rounded-xl", expandableClassName),
|
|
6142
6173
|
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "mt-2", children: content.type === "markdown" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MarkdownInterpreter, { text: content.value }) : content.value })
|
|
6143
6174
|
},
|
|
@@ -6146,21 +6177,21 @@ var FAQSection = ({
|
|
|
6146
6177
|
};
|
|
6147
6178
|
|
|
6148
6179
|
// src/components/layout-and-navigation/Pagination.tsx
|
|
6149
|
-
var
|
|
6180
|
+
var import_lucide_react6 = require("lucide-react");
|
|
6150
6181
|
var import_clsx23 = __toESM(require("clsx"));
|
|
6151
6182
|
|
|
6152
6183
|
// src/components/user-action/Input.tsx
|
|
6153
|
-
var
|
|
6184
|
+
var import_react16 = require("react");
|
|
6154
6185
|
var import_clsx22 = __toESM(require("clsx"));
|
|
6155
6186
|
|
|
6156
6187
|
// src/hooks/useDelay.ts
|
|
6157
|
-
var
|
|
6188
|
+
var import_react13 = require("react");
|
|
6158
6189
|
var defaultOptions = {
|
|
6159
6190
|
delay: 3e3,
|
|
6160
6191
|
disabled: false
|
|
6161
6192
|
};
|
|
6162
6193
|
function useDelay(options) {
|
|
6163
|
-
const [timer, setTimer] = (0,
|
|
6194
|
+
const [timer, setTimer] = (0, import_react13.useState)(void 0);
|
|
6164
6195
|
const { delay, disabled } = {
|
|
6165
6196
|
...defaultOptions,
|
|
6166
6197
|
...options
|
|
@@ -6179,18 +6210,17 @@ function useDelay(options) {
|
|
|
6179
6210
|
setTimer(void 0);
|
|
6180
6211
|
}, delay));
|
|
6181
6212
|
};
|
|
6182
|
-
(0,
|
|
6213
|
+
(0, import_react13.useEffect)(() => {
|
|
6183
6214
|
return () => {
|
|
6184
6215
|
clearTimeout(timer);
|
|
6185
6216
|
};
|
|
6186
6217
|
}, [timer]);
|
|
6187
|
-
(0,
|
|
6218
|
+
(0, import_react13.useEffect)(() => {
|
|
6188
6219
|
if (disabled) {
|
|
6189
6220
|
clearTimeout(timer);
|
|
6190
6221
|
setTimer(void 0);
|
|
6191
6222
|
}
|
|
6192
6223
|
}, [disabled, timer]);
|
|
6193
|
-
console.log(timer);
|
|
6194
6224
|
return { restartTimer, clearTimer, hasActiveTimer: !!timer };
|
|
6195
6225
|
}
|
|
6196
6226
|
|
|
@@ -6213,9 +6243,9 @@ var Label = ({
|
|
|
6213
6243
|
};
|
|
6214
6244
|
|
|
6215
6245
|
// src/hooks/useFocusManagement.ts
|
|
6216
|
-
var
|
|
6246
|
+
var import_react14 = require("react");
|
|
6217
6247
|
function useFocusManagement() {
|
|
6218
|
-
const getFocusableElements = (0,
|
|
6248
|
+
const getFocusableElements = (0, import_react14.useCallback)(() => {
|
|
6219
6249
|
return Array.from(
|
|
6220
6250
|
document.querySelectorAll(
|
|
6221
6251
|
'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
|
|
@@ -6224,7 +6254,7 @@ function useFocusManagement() {
|
|
|
6224
6254
|
(el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
|
|
6225
6255
|
);
|
|
6226
6256
|
}, []);
|
|
6227
|
-
const getNextFocusElement = (0,
|
|
6257
|
+
const getNextFocusElement = (0, import_react14.useCallback)(() => {
|
|
6228
6258
|
const elements = getFocusableElements();
|
|
6229
6259
|
if (elements.length === 0) {
|
|
6230
6260
|
return void 0;
|
|
@@ -6236,11 +6266,11 @@ function useFocusManagement() {
|
|
|
6236
6266
|
}
|
|
6237
6267
|
return nextElement;
|
|
6238
6268
|
}, [getFocusableElements]);
|
|
6239
|
-
const focusNext = (0,
|
|
6269
|
+
const focusNext = (0, import_react14.useCallback)(() => {
|
|
6240
6270
|
const nextElement = getNextFocusElement();
|
|
6241
6271
|
nextElement?.focus();
|
|
6242
6272
|
}, [getNextFocusElement]);
|
|
6243
|
-
const getPreviousFocusElement = (0,
|
|
6273
|
+
const getPreviousFocusElement = (0, import_react14.useCallback)(() => {
|
|
6244
6274
|
const elements = getFocusableElements();
|
|
6245
6275
|
if (elements.length === 0) {
|
|
6246
6276
|
return void 0;
|
|
@@ -6256,7 +6286,7 @@ function useFocusManagement() {
|
|
|
6256
6286
|
}
|
|
6257
6287
|
return previousElement;
|
|
6258
6288
|
}, [getFocusableElements]);
|
|
6259
|
-
const focusPrevious = (0,
|
|
6289
|
+
const focusPrevious = (0, import_react14.useCallback)(() => {
|
|
6260
6290
|
const previousElement = getPreviousFocusElement();
|
|
6261
6291
|
if (previousElement) previousElement.focus();
|
|
6262
6292
|
}, [getPreviousFocusElement]);
|
|
@@ -6270,10 +6300,10 @@ function useFocusManagement() {
|
|
|
6270
6300
|
}
|
|
6271
6301
|
|
|
6272
6302
|
// src/hooks/useFocusOnceVisible.ts
|
|
6273
|
-
var
|
|
6303
|
+
var import_react15 = __toESM(require("react"));
|
|
6274
6304
|
var useFocusOnceVisible = (ref, disable = false) => {
|
|
6275
|
-
const [hasUsedFocus, setHasUsedFocus] =
|
|
6276
|
-
(0,
|
|
6305
|
+
const [hasUsedFocus, setHasUsedFocus] = import_react15.default.useState(false);
|
|
6306
|
+
(0, import_react15.useEffect)(() => {
|
|
6277
6307
|
if (disable || hasUsedFocus) {
|
|
6278
6308
|
return;
|
|
6279
6309
|
}
|
|
@@ -6309,7 +6339,7 @@ var defaultEditCompleteOptions = {
|
|
|
6309
6339
|
afterDelay: true,
|
|
6310
6340
|
delay: 2500
|
|
6311
6341
|
};
|
|
6312
|
-
var Input = (0,
|
|
6342
|
+
var Input = (0, import_react16.forwardRef)(function Input2({
|
|
6313
6343
|
id,
|
|
6314
6344
|
type = "text",
|
|
6315
6345
|
value,
|
|
@@ -6332,10 +6362,10 @@ var Input = (0, import_react15.forwardRef)(function Input2({
|
|
|
6332
6362
|
restartTimer,
|
|
6333
6363
|
clearTimer
|
|
6334
6364
|
} = useDelay({ delay, disabled: !afterDelay });
|
|
6335
|
-
const innerRef = (0,
|
|
6365
|
+
const innerRef = (0, import_react16.useRef)(null);
|
|
6336
6366
|
const { focusNext } = useFocusManagement();
|
|
6337
6367
|
useFocusOnceVisible(innerRef, !autoFocus);
|
|
6338
|
-
(0,
|
|
6368
|
+
(0, import_react16.useImperativeHandle)(forwardedRef, () => innerRef.current);
|
|
6339
6369
|
const handleKeyDown = (e) => {
|
|
6340
6370
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
6341
6371
|
e.preventDefault();
|
|
@@ -6389,8 +6419,8 @@ var InputUncontrolled = ({
|
|
|
6389
6419
|
onChangeText = noop,
|
|
6390
6420
|
...props
|
|
6391
6421
|
}) => {
|
|
6392
|
-
const [usedValue, setUsedValue] = (0,
|
|
6393
|
-
(0,
|
|
6422
|
+
const [usedValue, setUsedValue] = (0, import_react16.useState)(value);
|
|
6423
|
+
(0, import_react16.useEffect)(() => {
|
|
6394
6424
|
setUsedValue(value);
|
|
6395
6425
|
}, [value]);
|
|
6396
6426
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
@@ -6405,7 +6435,7 @@ var InputUncontrolled = ({
|
|
|
6405
6435
|
}
|
|
6406
6436
|
);
|
|
6407
6437
|
};
|
|
6408
|
-
var FormInput = (0,
|
|
6438
|
+
var FormInput = (0, import_react16.forwardRef)(function FormInput2({
|
|
6409
6439
|
id,
|
|
6410
6440
|
labelText,
|
|
6411
6441
|
errorText,
|
|
@@ -6441,7 +6471,7 @@ var FormInput = (0, import_react15.forwardRef)(function FormInput2({
|
|
|
6441
6471
|
});
|
|
6442
6472
|
|
|
6443
6473
|
// src/components/layout-and-navigation/Pagination.tsx
|
|
6444
|
-
var
|
|
6474
|
+
var import_react17 = require("react");
|
|
6445
6475
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
6446
6476
|
var Pagination = ({
|
|
6447
6477
|
overwriteTranslation,
|
|
@@ -6452,11 +6482,11 @@ var Pagination = ({
|
|
|
6452
6482
|
style
|
|
6453
6483
|
}) => {
|
|
6454
6484
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
6455
|
-
const [value, setValue] = (0,
|
|
6485
|
+
const [value, setValue] = (0, import_react17.useState)((pageIndex + 1).toString());
|
|
6456
6486
|
const noPages = pageCount === 0;
|
|
6457
6487
|
const onFirstPage = pageIndex === 0 && !noPages;
|
|
6458
6488
|
const onLastPage = pageIndex === pageCount - 1;
|
|
6459
|
-
(0,
|
|
6489
|
+
(0, import_react17.useEffect)(() => {
|
|
6460
6490
|
if (noPages) {
|
|
6461
6491
|
setValue("0");
|
|
6462
6492
|
} else {
|
|
@@ -6466,10 +6496,10 @@ var Pagination = ({
|
|
|
6466
6496
|
const changePage = (page) => {
|
|
6467
6497
|
onPageChanged(page);
|
|
6468
6498
|
};
|
|
6469
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: (0, import_clsx23.default)("row
|
|
6470
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(0), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6471
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex - 1), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6472
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "row min-w-56
|
|
6499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: (0, import_clsx23.default)("flex-row-1", className), style, children: [
|
|
6500
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(0), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react6.ChevronFirst, {}) }),
|
|
6501
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex - 1), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react6.ChevronLeft, {}) }),
|
|
6502
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex-row-2 min-w-56 items-center justify-center mx-2 text-center", children: [
|
|
6473
6503
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6474
6504
|
Input,
|
|
6475
6505
|
{
|
|
@@ -6499,27 +6529,30 @@ var Pagination = ({
|
|
|
6499
6529
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6500
6530
|
"span",
|
|
6501
6531
|
{
|
|
6502
|
-
className: "row flex-1 items-center justify-center select-none h-10 bg-surface text-on-surface rounded-md font-bold",
|
|
6532
|
+
className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-surface text-on-surface rounded-md font-bold",
|
|
6503
6533
|
children: pageCount
|
|
6504
6534
|
}
|
|
6505
6535
|
)
|
|
6506
6536
|
] }),
|
|
6507
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6508
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageCount - 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6537
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react6.ChevronRight, {}) }),
|
|
6538
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageCount - 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react6.ChevronLast, {}) })
|
|
6509
6539
|
] });
|
|
6510
6540
|
};
|
|
6511
6541
|
|
|
6512
6542
|
// src/components/layout-and-navigation/SearchableList.tsx
|
|
6513
|
-
var
|
|
6543
|
+
var import_lucide_react7 = require("lucide-react");
|
|
6514
6544
|
var import_clsx24 = __toESM(require("clsx"));
|
|
6515
6545
|
|
|
6516
6546
|
// src/hooks/useSearch.ts
|
|
6517
|
-
var
|
|
6547
|
+
var import_react18 = require("react");
|
|
6518
6548
|
|
|
6519
6549
|
// src/util/simpleSearch.ts
|
|
6520
6550
|
var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
|
|
6521
6551
|
return objects.filter((object) => {
|
|
6522
|
-
const mappedSearchKeywords = mapping(object)
|
|
6552
|
+
const mappedSearchKeywords = mapping(object)?.map((value) => value.toLowerCase().trim());
|
|
6553
|
+
if (!mappedSearchKeywords) {
|
|
6554
|
+
return true;
|
|
6555
|
+
}
|
|
6523
6556
|
return search.every((searchValue) => !!mappedSearchKeywords.find((value) => !!value && value.includes(searchValue.toLowerCase().trim())));
|
|
6524
6557
|
});
|
|
6525
6558
|
};
|
|
@@ -6543,22 +6576,51 @@ var SimpleSearch = (search, objects) => {
|
|
|
6543
6576
|
var useSearch = ({
|
|
6544
6577
|
list,
|
|
6545
6578
|
initialSearch,
|
|
6546
|
-
searchMapping
|
|
6579
|
+
searchMapping,
|
|
6580
|
+
additionalSearchTags,
|
|
6581
|
+
isSearchInstant = true,
|
|
6582
|
+
sortingFunction,
|
|
6583
|
+
filter,
|
|
6584
|
+
disabled = false
|
|
6547
6585
|
}) => {
|
|
6548
|
-
const [
|
|
6549
|
-
const [
|
|
6550
|
-
(0,
|
|
6551
|
-
|
|
6552
|
-
|
|
6553
|
-
|
|
6554
|
-
|
|
6555
|
-
|
|
6556
|
-
|
|
6586
|
+
const [search, setSearch] = (0, import_react18.useState)(initialSearch ?? "");
|
|
6587
|
+
const [result, setResult] = (0, import_react18.useState)(list);
|
|
6588
|
+
const searchTags = (0, import_react18.useMemo)(() => additionalSearchTags ?? [], [additionalSearchTags]);
|
|
6589
|
+
const updateSearch = (0, import_react18.useCallback)((newSearch) => {
|
|
6590
|
+
const usedSearch = newSearch ?? search;
|
|
6591
|
+
if (newSearch) {
|
|
6592
|
+
setSearch(search);
|
|
6593
|
+
}
|
|
6594
|
+
setResult(MultiSubjectSearchWithMapping([usedSearch, ...searchTags], list, searchMapping));
|
|
6595
|
+
}, [searchTags, list, search, searchMapping]);
|
|
6596
|
+
(0, import_react18.useEffect)(() => {
|
|
6597
|
+
if (isSearchInstant) {
|
|
6598
|
+
setResult(MultiSubjectSearchWithMapping([search, ...searchTags], list, searchMapping));
|
|
6599
|
+
}
|
|
6600
|
+
}, [searchTags, isSearchInstant, list, search, searchMapping, additionalSearchTags]);
|
|
6601
|
+
const filteredResult = (0, import_react18.useMemo)(() => {
|
|
6602
|
+
if (!filter) {
|
|
6603
|
+
return result;
|
|
6604
|
+
}
|
|
6605
|
+
return result.filter(filter);
|
|
6606
|
+
}, [result, filter]);
|
|
6607
|
+
const sortedAndFilteredResult = (0, import_react18.useMemo)(() => {
|
|
6608
|
+
if (!sortingFunction) {
|
|
6609
|
+
return filteredResult;
|
|
6610
|
+
}
|
|
6611
|
+
return filteredResult.sort(sortingFunction);
|
|
6612
|
+
}, [filteredResult, sortingFunction]);
|
|
6613
|
+
const usedResult = (0, import_react18.useMemo)(() => {
|
|
6614
|
+
if (!disabled) {
|
|
6615
|
+
return sortedAndFilteredResult;
|
|
6616
|
+
}
|
|
6617
|
+
return list;
|
|
6618
|
+
}, [disabled, list, sortedAndFilteredResult]);
|
|
6557
6619
|
return {
|
|
6558
|
-
result,
|
|
6559
|
-
hasResult:
|
|
6560
|
-
allItems:
|
|
6561
|
-
|
|
6620
|
+
result: usedResult,
|
|
6621
|
+
hasResult: usedResult.length > 0,
|
|
6622
|
+
allItems: list,
|
|
6623
|
+
updateSearch,
|
|
6562
6624
|
search,
|
|
6563
6625
|
setSearch
|
|
6564
6626
|
};
|
|
@@ -6586,9 +6648,9 @@ var SearchableList = ({
|
|
|
6586
6648
|
resultListClassName
|
|
6587
6649
|
}) => {
|
|
6588
6650
|
const translation = useTranslation([defaultSearchableListTranslation, formTranslation], overwriteTranslation);
|
|
6589
|
-
const { result, hasResult, search, setSearch } = useSearch({ list, initialSearch, searchMapping });
|
|
6590
|
-
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: (0, import_clsx24.default)("col
|
|
6591
|
-
list.length > minimumItemsForSearch && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "row justify-between
|
|
6651
|
+
const { result, hasResult, search, setSearch, updateSearch } = useSearch({ list, initialSearch, searchMapping });
|
|
6652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: (0, import_clsx24.default)("flex-col-2", className), children: [
|
|
6653
|
+
list.length > minimumItemsForSearch && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex-row-2 justify-between items-center", children: [
|
|
6592
6654
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
6593
6655
|
Input,
|
|
6594
6656
|
{
|
|
@@ -6599,16 +6661,16 @@ var SearchableList = ({
|
|
|
6599
6661
|
className: "w-full"
|
|
6600
6662
|
}
|
|
6601
6663
|
),
|
|
6602
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(IconButton, { color: "neutral",
|
|
6664
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(IconButton, { color: "neutral", onClick: () => updateSearch(), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react7.Search, { className: "w-full h-full" }) })
|
|
6603
6665
|
] }),
|
|
6604
|
-
hasResult ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: (0, import_clsx24.default)("col
|
|
6666
|
+
hasResult ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: (0, import_clsx24.default)("flex-col-1 overflow-y-auto", resultListClassName), children: result.map(itemMapper) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex-row-2 text-description py-2 px-2", children: translation("nothingFound") })
|
|
6605
6667
|
] });
|
|
6606
6668
|
};
|
|
6607
6669
|
|
|
6608
6670
|
// src/components/layout-and-navigation/StepperBar.tsx
|
|
6609
|
-
var
|
|
6671
|
+
var import_lucide_react8 = require("lucide-react");
|
|
6610
6672
|
var import_clsx25 = __toESM(require("clsx"));
|
|
6611
|
-
var
|
|
6673
|
+
var import_react19 = require("react");
|
|
6612
6674
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
6613
6675
|
var defaultState = {
|
|
6614
6676
|
currentStep: 0,
|
|
@@ -6635,23 +6697,23 @@ var StepperBar = ({
|
|
|
6635
6697
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6636
6698
|
"div",
|
|
6637
6699
|
{
|
|
6638
|
-
className: (0, import_clsx25.default)("row justify-between", className),
|
|
6700
|
+
className: (0, import_clsx25.default)("flex-row-2 justify-between", className),
|
|
6639
6701
|
children: [
|
|
6640
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "row flex-[2] justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6702
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "flex-row-2 flex-[2] justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6641
6703
|
SolidButton,
|
|
6642
6704
|
{
|
|
6643
6705
|
disabled: currentStep === 0 || disabledSteps.has(currentStep),
|
|
6644
6706
|
onClick: () => {
|
|
6645
6707
|
update(currentStep - 1);
|
|
6646
6708
|
},
|
|
6647
|
-
className: "row
|
|
6709
|
+
className: "flex-row-1 items-center justify-center",
|
|
6648
6710
|
children: [
|
|
6649
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6711
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react8.ChevronLeft, { size: 14 }),
|
|
6650
6712
|
translation("back")
|
|
6651
6713
|
]
|
|
6652
6714
|
}
|
|
6653
6715
|
) }),
|
|
6654
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "row flex-[5]
|
|
6716
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "flex-row-2 flex-[5] justify-center items-center", children: showDots && dots.map((value, index) => {
|
|
6655
6717
|
const seen = seenSteps.has(index);
|
|
6656
6718
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6657
6719
|
"div",
|
|
@@ -6673,26 +6735,26 @@ var StepperBar = ({
|
|
|
6673
6735
|
index
|
|
6674
6736
|
);
|
|
6675
6737
|
}) }),
|
|
6676
|
-
currentStep !== numberOfSteps && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "row flex-[2] justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6738
|
+
currentStep !== numberOfSteps && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "flex-row-2 flex-[2] justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6677
6739
|
SolidButton,
|
|
6678
6740
|
{
|
|
6679
6741
|
onClick: () => update(currentStep + 1),
|
|
6680
|
-
className: "row
|
|
6742
|
+
className: "flex-row-1 items-center justify-center",
|
|
6681
6743
|
disabled: disabledSteps.has(currentStep),
|
|
6682
6744
|
children: [
|
|
6683
6745
|
translation("next"),
|
|
6684
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6746
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react8.ChevronRight, { size: 14 })
|
|
6685
6747
|
]
|
|
6686
6748
|
}
|
|
6687
6749
|
) }),
|
|
6688
|
-
currentStep === numberOfSteps && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "row flex-[2] justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6750
|
+
currentStep === numberOfSteps && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "flex-row-2 flex-[2] justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6689
6751
|
SolidButton,
|
|
6690
6752
|
{
|
|
6691
6753
|
disabled: disabledSteps.has(currentStep),
|
|
6692
6754
|
onClick: onFinish,
|
|
6693
|
-
className: "row
|
|
6755
|
+
className: "flex-row-1 items-center justify-center",
|
|
6694
6756
|
children: [
|
|
6695
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6757
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react8.Check, { size: 14 }),
|
|
6696
6758
|
finishText ?? translation("confirm")
|
|
6697
6759
|
]
|
|
6698
6760
|
}
|
|
@@ -6702,8 +6764,8 @@ var StepperBar = ({
|
|
|
6702
6764
|
);
|
|
6703
6765
|
};
|
|
6704
6766
|
var StepperBarUncontrolled = ({ state, onChange, ...props }) => {
|
|
6705
|
-
const [usedState, setUsedState] = (0,
|
|
6706
|
-
(0,
|
|
6767
|
+
const [usedState, setUsedState] = (0, import_react19.useState)(state ?? defaultState);
|
|
6768
|
+
(0, import_react19.useEffect)(() => {
|
|
6707
6769
|
setUsedState(state ?? defaultState);
|
|
6708
6770
|
}, [state]);
|
|
6709
6771
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
@@ -6755,14 +6817,14 @@ var TextImage = ({
|
|
|
6755
6817
|
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
6756
6818
|
"div",
|
|
6757
6819
|
{
|
|
6758
|
-
className: (0, import_clsx26.default)(`col px-6 py-12 rounded-2xl h-full`, colorMapping[color], contentClassName),
|
|
6820
|
+
className: (0, import_clsx26.default)(`flex-col-2 px-6 py-12 rounded-2xl h-full`, colorMapping[color], contentClassName),
|
|
6759
6821
|
children: [
|
|
6760
6822
|
badge && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: (0, import_clsx26.default)(`chip-full mb-2 py-2 px-4 w-fit`, chipColorMapping[color]), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-lg font-bold", children: badge }) }),
|
|
6761
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "col
|
|
6823
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex-col-1 overflow-hidden", children: [
|
|
6762
6824
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "textstyle-title-xl", children: title }),
|
|
6763
6825
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-ellipsis overflow-hidden", children: description })
|
|
6764
6826
|
] }),
|
|
6765
|
-
onShowMoreClicked && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "row mt-2 underline", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("button", { onClick: onShowMoreClicked, children: translation("showMore") }) })
|
|
6827
|
+
onShowMoreClicked && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "flex-row-2 mt-2 underline", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("button", { onClick: onShowMoreClicked, children: translation("showMore") }) })
|
|
6766
6828
|
]
|
|
6767
6829
|
}
|
|
6768
6830
|
)
|
|
@@ -6824,7 +6886,7 @@ var VerticalDivider = ({
|
|
|
6824
6886
|
};
|
|
6825
6887
|
|
|
6826
6888
|
// src/components/loading-states/ErrorComponent.tsx
|
|
6827
|
-
var
|
|
6889
|
+
var import_lucide_react9 = require("lucide-react");
|
|
6828
6890
|
var import_clsx27 = __toESM(require("clsx"));
|
|
6829
6891
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
6830
6892
|
var defaultErrorComponentTranslation = {
|
|
@@ -6841,14 +6903,14 @@ var ErrorComponent = ({
|
|
|
6841
6903
|
classname
|
|
6842
6904
|
}) => {
|
|
6843
6905
|
const translation = useTranslation([defaultErrorComponentTranslation], overwriteTranslation);
|
|
6844
|
-
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: (0, import_clsx27.default)("col items-center justify-center
|
|
6845
|
-
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
6906
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: (0, import_clsx27.default)("flex-col-4 items-center justify-center w-full h-24", classname), children: [
|
|
6907
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react9.AlertOctagon, { size: 64, className: "text-warning" }),
|
|
6846
6908
|
errorText ?? `${translation("errorOccurred")} :(`
|
|
6847
6909
|
] });
|
|
6848
6910
|
};
|
|
6849
6911
|
|
|
6850
6912
|
// src/components/loading-states/LoadingAndErrorComponent.tsx
|
|
6851
|
-
var
|
|
6913
|
+
var import_react20 = require("react");
|
|
6852
6914
|
|
|
6853
6915
|
// src/components/loading-states/LoadingAnimation.tsx
|
|
6854
6916
|
var import_clsx28 = __toESM(require("clsx"));
|
|
@@ -6859,7 +6921,7 @@ var LoadingAnimation = ({
|
|
|
6859
6921
|
classname
|
|
6860
6922
|
}) => {
|
|
6861
6923
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
6862
|
-
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: (0, import_clsx28.default)("col items-center justify-center w-full h-24", classname), children: [
|
|
6924
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: (0, import_clsx28.default)("flex-col-2 items-center justify-center w-full h-24", classname), children: [
|
|
6863
6925
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Helpwave, { animate: "loading" }),
|
|
6864
6926
|
loadingText ?? `${translation("loading")}...`
|
|
6865
6927
|
] });
|
|
@@ -6875,8 +6937,8 @@ var LoadingAndErrorComponent = ({
|
|
|
6875
6937
|
loadingProps,
|
|
6876
6938
|
minimumLoadingDuration
|
|
6877
6939
|
}) => {
|
|
6878
|
-
const [isInMinimumLoading, setIsInMinimumLoading] = (0,
|
|
6879
|
-
const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = (0,
|
|
6940
|
+
const [isInMinimumLoading, setIsInMinimumLoading] = (0, import_react20.useState)(false);
|
|
6941
|
+
const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = (0, import_react20.useState)(false);
|
|
6880
6942
|
if (minimumLoadingDuration && !isInMinimumLoading && !hasUsedMinimumLoading) {
|
|
6881
6943
|
setIsInMinimumLoading(true);
|
|
6882
6944
|
setTimeout(() => {
|
|
@@ -6899,7 +6961,7 @@ var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
|
6899
6961
|
var LoadingButton = ({ isLoading = false, size = "medium", onClick, ...rest }) => {
|
|
6900
6962
|
const paddingClass = ButtonUtil.paddingMapping[size];
|
|
6901
6963
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "inline-block relative", children: [
|
|
6902
|
-
isLoading && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: (0, import_clsx29.default)("absolute inset-0
|
|
6964
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: (0, import_clsx29.default)("flex-row-2 absolute inset-0 items-center justify-center bg-white/40", paddingClass), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Helpwave, { animate: "loading", className: "text-white" }) }),
|
|
6903
6965
|
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SolidButton, { ...rest, disabled: rest.disabled, onClick: isLoading ? noop : onClick })
|
|
6904
6966
|
] });
|
|
6905
6967
|
};
|
|
@@ -6982,8 +7044,8 @@ var ConfirmModal = ({
|
|
|
6982
7044
|
primary: "primary"
|
|
6983
7045
|
};
|
|
6984
7046
|
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Modal, { ...restProps, onClose: onCancel, className: (0, import_clsx30.default)("justify-between", className), children: [
|
|
6985
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "col grow", children }),
|
|
6986
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "row mt-3
|
|
7047
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex-col-2 grow", children }),
|
|
7048
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex-row-4 mt-3 justify-end", children: [
|
|
6987
7049
|
onCancel && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6988
7050
|
SolidButton,
|
|
6989
7051
|
{
|
|
@@ -7064,14 +7126,18 @@ var InputModal = ({
|
|
|
7064
7126
|
};
|
|
7065
7127
|
|
|
7066
7128
|
// src/components/user-action/Select.tsx
|
|
7067
|
-
var
|
|
7068
|
-
var
|
|
7129
|
+
var import_react23 = require("react");
|
|
7130
|
+
var import_react24 = require("react");
|
|
7131
|
+
var import_clsx33 = __toESM(require("clsx"));
|
|
7132
|
+
|
|
7133
|
+
// src/components/user-action/Menu.tsx
|
|
7134
|
+
var import_react22 = require("react");
|
|
7069
7135
|
var import_clsx31 = __toESM(require("clsx"));
|
|
7070
7136
|
|
|
7071
7137
|
// src/hooks/useOutsideClick.ts
|
|
7072
|
-
var
|
|
7138
|
+
var import_react21 = require("react");
|
|
7073
7139
|
var useOutsideClick = (refs, handler) => {
|
|
7074
|
-
(0,
|
|
7140
|
+
(0, import_react21.useEffect)(() => {
|
|
7075
7141
|
const listener = (event) => {
|
|
7076
7142
|
if (event.target === null) return;
|
|
7077
7143
|
if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
|
|
@@ -7088,83 +7154,305 @@ var useOutsideClick = (refs, handler) => {
|
|
|
7088
7154
|
}, [refs, handler]);
|
|
7089
7155
|
};
|
|
7090
7156
|
|
|
7091
|
-
// src/
|
|
7157
|
+
// src/util/PropsWithFunctionChildren.ts
|
|
7158
|
+
var resolve = (children, bag) => {
|
|
7159
|
+
if (typeof children === "function") {
|
|
7160
|
+
return children(bag);
|
|
7161
|
+
}
|
|
7162
|
+
return children ?? void 0;
|
|
7163
|
+
};
|
|
7164
|
+
var BagFunctionUtil = {
|
|
7165
|
+
resolve
|
|
7166
|
+
};
|
|
7167
|
+
|
|
7168
|
+
// src/hooks/usePopoverPosition.ts
|
|
7169
|
+
var defaultPopoverPositionOptions = {
|
|
7170
|
+
edgePadding: 16,
|
|
7171
|
+
outerGap: 4,
|
|
7172
|
+
horizontalAlignment: "leftInside",
|
|
7173
|
+
verticalAlignment: "bottomOutside",
|
|
7174
|
+
disabled: false
|
|
7175
|
+
};
|
|
7176
|
+
var usePopoverPosition = (trigger, options) => {
|
|
7177
|
+
const {
|
|
7178
|
+
edgePadding,
|
|
7179
|
+
outerGap,
|
|
7180
|
+
verticalAlignment,
|
|
7181
|
+
horizontalAlignment,
|
|
7182
|
+
disabled
|
|
7183
|
+
} = { ...defaultPopoverPositionOptions, ...options };
|
|
7184
|
+
if (disabled || !trigger) {
|
|
7185
|
+
return {};
|
|
7186
|
+
}
|
|
7187
|
+
const left = {
|
|
7188
|
+
leftOutside: trigger.left - outerGap,
|
|
7189
|
+
leftInside: trigger.left,
|
|
7190
|
+
rightOutside: trigger.right + outerGap,
|
|
7191
|
+
rightInside: trigger.right,
|
|
7192
|
+
center: trigger.left + trigger.width / 2
|
|
7193
|
+
}[horizontalAlignment];
|
|
7194
|
+
const top = {
|
|
7195
|
+
topOutside: trigger.top - outerGap,
|
|
7196
|
+
topInside: trigger.top,
|
|
7197
|
+
bottomOutside: trigger.bottom + outerGap,
|
|
7198
|
+
bottomInside: trigger.bottom,
|
|
7199
|
+
center: trigger.top + trigger.height / 2
|
|
7200
|
+
}[verticalAlignment];
|
|
7201
|
+
const translateX = {
|
|
7202
|
+
leftOutside: "-100%",
|
|
7203
|
+
leftInside: void 0,
|
|
7204
|
+
rightOutside: void 0,
|
|
7205
|
+
rightInside: "-100%",
|
|
7206
|
+
center: "-50%"
|
|
7207
|
+
}[horizontalAlignment];
|
|
7208
|
+
const translateY = {
|
|
7209
|
+
topOutside: "-100%",
|
|
7210
|
+
topInside: void 0,
|
|
7211
|
+
bottomOutside: void 0,
|
|
7212
|
+
bottomInside: "-100%",
|
|
7213
|
+
center: "-50%"
|
|
7214
|
+
}[verticalAlignment];
|
|
7215
|
+
return {
|
|
7216
|
+
left: Math.max(left, edgePadding),
|
|
7217
|
+
top: Math.max(top, edgePadding),
|
|
7218
|
+
translate: [translateX ?? "0", translateY ?? "0"].join(" ")
|
|
7219
|
+
};
|
|
7220
|
+
};
|
|
7221
|
+
|
|
7222
|
+
// src/components/user-action/Menu.tsx
|
|
7223
|
+
var import_react_dom2 = require("react-dom");
|
|
7092
7224
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
7225
|
+
var MenuItem = ({
|
|
7226
|
+
children,
|
|
7227
|
+
onClick,
|
|
7228
|
+
alignment = "left",
|
|
7229
|
+
isDisabled = false,
|
|
7230
|
+
className
|
|
7231
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
7232
|
+
"div",
|
|
7233
|
+
{
|
|
7234
|
+
className: (0, import_clsx31.default)("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold", {
|
|
7235
|
+
"text-right": alignment === "right",
|
|
7236
|
+
"text-left": alignment === "left",
|
|
7237
|
+
"text-disabled-text cursor-not-allowed": isDisabled,
|
|
7238
|
+
"text-menu-text hover:bg-primary/20": !isDisabled,
|
|
7239
|
+
"cursor-pointer": !!onClick
|
|
7240
|
+
}, className),
|
|
7241
|
+
onClick,
|
|
7242
|
+
children
|
|
7243
|
+
}
|
|
7244
|
+
);
|
|
7245
|
+
function getScrollableParents(element) {
|
|
7246
|
+
const scrollables = [];
|
|
7247
|
+
let parent = element.parentElement;
|
|
7248
|
+
while (parent) {
|
|
7249
|
+
scrollables.push(parent);
|
|
7250
|
+
parent = parent.parentElement;
|
|
7251
|
+
}
|
|
7252
|
+
return scrollables;
|
|
7253
|
+
}
|
|
7254
|
+
var Menu = ({
|
|
7255
|
+
trigger,
|
|
7256
|
+
children,
|
|
7257
|
+
alignmentHorizontal = "leftInside",
|
|
7258
|
+
alignmentVertical = "bottomOutside",
|
|
7259
|
+
showOnHover = false,
|
|
7260
|
+
disabled = false,
|
|
7261
|
+
menuClassName = ""
|
|
7262
|
+
}) => {
|
|
7263
|
+
const { isHovered: isOpen, setIsHovered: setIsOpen } = useHoverState({ isDisabled: !showOnHover || disabled });
|
|
7264
|
+
const triggerRef = (0, import_react22.useRef)(null);
|
|
7265
|
+
const menuRef = (0, import_react22.useRef)(null);
|
|
7266
|
+
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
7267
|
+
const [isHidden, setIsHidden] = (0, import_react22.useState)(true);
|
|
7268
|
+
const bag = {
|
|
7269
|
+
isOpen,
|
|
7270
|
+
close: () => setIsOpen(false),
|
|
7271
|
+
toggleOpen: () => setIsOpen((prevState) => !prevState),
|
|
7272
|
+
disabled
|
|
7273
|
+
};
|
|
7274
|
+
const menuPosition = usePopoverPosition(
|
|
7275
|
+
triggerRef.current?.getBoundingClientRect(),
|
|
7276
|
+
{ verticalAlignment: alignmentVertical, horizontalAlignment: alignmentHorizontal, disabled }
|
|
7277
|
+
);
|
|
7278
|
+
(0, import_react22.useEffect)(() => {
|
|
7279
|
+
if (!isOpen) return;
|
|
7280
|
+
const triggerEl = triggerRef.current;
|
|
7281
|
+
if (!triggerEl) return;
|
|
7282
|
+
const scrollableParents = getScrollableParents(triggerEl);
|
|
7283
|
+
const close = () => setIsOpen(false);
|
|
7284
|
+
scrollableParents.forEach((parent) => {
|
|
7285
|
+
parent.addEventListener("scroll", close);
|
|
7286
|
+
});
|
|
7287
|
+
window.addEventListener("resize", close);
|
|
7288
|
+
return () => {
|
|
7289
|
+
scrollableParents.forEach((parent) => {
|
|
7290
|
+
parent.removeEventListener("scroll", close);
|
|
7291
|
+
});
|
|
7292
|
+
window.removeEventListener("resize", close);
|
|
7293
|
+
};
|
|
7294
|
+
}, [isOpen, setIsOpen]);
|
|
7295
|
+
(0, import_react22.useEffect)(() => {
|
|
7296
|
+
if (isOpen) {
|
|
7297
|
+
setIsHidden(false);
|
|
7298
|
+
}
|
|
7299
|
+
}, [isOpen]);
|
|
7300
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
|
|
7301
|
+
trigger(bag, triggerRef),
|
|
7302
|
+
(0, import_react_dom2.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
7303
|
+
"div",
|
|
7304
|
+
{
|
|
7305
|
+
ref: menuRef,
|
|
7306
|
+
onClick: (e) => e.stopPropagation(),
|
|
7307
|
+
className: (0, import_clsx31.default)(
|
|
7308
|
+
"absolute rounded-md bg-menu-background text-menu-text shadow-around-lg z-10",
|
|
7309
|
+
{
|
|
7310
|
+
"animate-pop-in": isOpen,
|
|
7311
|
+
"animate-pop-out": !isOpen,
|
|
7312
|
+
"hidden": isHidden
|
|
7313
|
+
},
|
|
7314
|
+
menuClassName
|
|
7315
|
+
),
|
|
7316
|
+
onAnimationEnd: () => {
|
|
7317
|
+
if (!isOpen) {
|
|
7318
|
+
setIsHidden(true);
|
|
7319
|
+
}
|
|
7320
|
+
},
|
|
7321
|
+
style: {
|
|
7322
|
+
...menuPosition
|
|
7323
|
+
},
|
|
7324
|
+
children: BagFunctionUtil.resolve(children, bag)
|
|
7325
|
+
}
|
|
7326
|
+
), document.body)
|
|
7327
|
+
] });
|
|
7328
|
+
};
|
|
7329
|
+
|
|
7330
|
+
// src/components/user-action/SearchBar.tsx
|
|
7331
|
+
var import_lucide_react10 = require("lucide-react");
|
|
7332
|
+
var import_clsx32 = require("clsx");
|
|
7333
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
7334
|
+
var SearchBar = ({
|
|
7335
|
+
placeholder,
|
|
7336
|
+
onSearch,
|
|
7337
|
+
disableOnSearch,
|
|
7338
|
+
containerClassName,
|
|
7339
|
+
...inputProps
|
|
7340
|
+
}) => {
|
|
7341
|
+
const translation = useTranslation([formTranslation]);
|
|
7342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: (0, import_clsx32.clsx)("flex-row-2 justify-between items-center", containerClassName), children: [
|
|
7343
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
7344
|
+
Input,
|
|
7345
|
+
{
|
|
7346
|
+
...inputProps,
|
|
7347
|
+
placeholder: placeholder ?? translation("search")
|
|
7348
|
+
}
|
|
7349
|
+
),
|
|
7350
|
+
onSearch && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconButton, { color: "neutral", disabled: disableOnSearch, onClick: onSearch, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react10.Search, { className: "w-full h-full" }) })
|
|
7351
|
+
] });
|
|
7352
|
+
};
|
|
7353
|
+
|
|
7354
|
+
// src/components/user-action/Select.tsx
|
|
7355
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
7356
|
+
var SelectTile = ({
|
|
7357
|
+
className,
|
|
7358
|
+
disabledClassName,
|
|
7359
|
+
title,
|
|
7360
|
+
...restProps
|
|
7361
|
+
}) => {
|
|
7362
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7363
|
+
Tile,
|
|
7364
|
+
{
|
|
7365
|
+
...restProps,
|
|
7366
|
+
className: (0, import_clsx33.default)("px-2 py-1 rounded-md", className),
|
|
7367
|
+
disabledClassName: disabledClassName ?? "text-disabled-text cursor-not-allowed",
|
|
7368
|
+
title: { ...title, className: title.className ?? "font-semibold" }
|
|
7369
|
+
}
|
|
7370
|
+
);
|
|
7371
|
+
};
|
|
7093
7372
|
var Select = ({
|
|
7094
7373
|
value,
|
|
7095
7374
|
label,
|
|
7096
7375
|
options,
|
|
7097
7376
|
onChange,
|
|
7098
7377
|
hintText = "",
|
|
7099
|
-
|
|
7100
|
-
|
|
7378
|
+
selectedDisplayOverwrite,
|
|
7379
|
+
searchOptions,
|
|
7380
|
+
additionalItems,
|
|
7101
7381
|
className,
|
|
7102
|
-
|
|
7382
|
+
triggerClassName,
|
|
7383
|
+
hintTextClassName,
|
|
7384
|
+
...menuProps
|
|
7103
7385
|
}) => {
|
|
7104
|
-
const triggerRef = (0, import_react21.useRef)(null);
|
|
7105
|
-
const menuRef = (0, import_react21.useRef)(null);
|
|
7106
|
-
const [isOpen, setIsOpen] = (0, import_react21.useState)(false);
|
|
7107
|
-
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
7108
7386
|
const selectedOption = options.find((option) => option.value === value);
|
|
7109
7387
|
if (value !== void 0 && selectedOption === void 0 && selectedDisplayOverwrite === void 0) {
|
|
7110
7388
|
console.warn("The selected value is not found in the options list. This might be an error on your part or default behavior if it is complex data type on which === does not work. In case of the latter use selectedDisplayOverwrite to set your selected text or component");
|
|
7111
7389
|
}
|
|
7112
7390
|
const isShowingHint = !selectedDisplayOverwrite && !selectedOption?.label;
|
|
7113
|
-
|
|
7114
|
-
|
|
7115
|
-
|
|
7116
|
-
|
|
7117
|
-
|
|
7118
|
-
|
|
7119
|
-
|
|
7120
|
-
|
|
7121
|
-
|
|
7122
|
-
|
|
7123
|
-
|
|
7124
|
-
|
|
7125
|
-
|
|
7126
|
-
|
|
7127
|
-
|
|
7128
|
-
|
|
7129
|
-
|
|
7130
|
-
|
|
7131
|
-
|
|
7132
|
-
|
|
7133
|
-
|
|
7134
|
-
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
|
|
7148
|
-
|
|
7149
|
-
|
|
7391
|
+
const { result, search, setSearch } = useSearch({
|
|
7392
|
+
list: options,
|
|
7393
|
+
searchMapping: (0, import_react23.useCallback)((item) => item.searchTags, []),
|
|
7394
|
+
...searchOptions
|
|
7395
|
+
});
|
|
7396
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: (0, import_clsx33.default)(className), children: [
|
|
7397
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Label, { ...label, labelType: label.labelType ?? "labelBig", className: (0, import_clsx33.default)("mb-1", label.className) }),
|
|
7398
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7399
|
+
Menu,
|
|
7400
|
+
{
|
|
7401
|
+
...menuProps,
|
|
7402
|
+
trigger: ({ toggleOpen, isOpen, disabled }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
7403
|
+
"button",
|
|
7404
|
+
{
|
|
7405
|
+
ref,
|
|
7406
|
+
className: (0, import_clsx33.default)(
|
|
7407
|
+
"btn-md justify-between w-full border-2",
|
|
7408
|
+
{
|
|
7409
|
+
"rounded-b-lg": !open,
|
|
7410
|
+
"bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
|
|
7411
|
+
"bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
|
|
7412
|
+
},
|
|
7413
|
+
triggerClassName
|
|
7414
|
+
),
|
|
7415
|
+
onClick: toggleOpen,
|
|
7416
|
+
disabled,
|
|
7417
|
+
children: [
|
|
7418
|
+
!isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "font-semibold", children: selectedDisplayOverwrite ?? selectedOption?.label }),
|
|
7419
|
+
isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: (0, import_clsx33.default)("textstyle-description", hintTextClassName), children: hintText }),
|
|
7420
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ExpansionIcon, { isExpanded: isOpen })
|
|
7421
|
+
]
|
|
7422
|
+
}
|
|
7423
|
+
),
|
|
7424
|
+
menuClassName: (0, import_clsx33.default)("flex-col-2 p-2 max-h-96 overflow-hidden", menuProps.menuClassName),
|
|
7425
|
+
children: (bag) => {
|
|
7426
|
+
const { close } = bag;
|
|
7427
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
7428
|
+
!searchOptions?.disabled && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7429
|
+
SearchBar,
|
|
7430
|
+
{
|
|
7431
|
+
value: search,
|
|
7432
|
+
onChangeText: setSearch,
|
|
7433
|
+
autoFocus: true
|
|
7434
|
+
}
|
|
7435
|
+
),
|
|
7436
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "flex-col-2 overflow-y-auto", children: [
|
|
7437
|
+
result.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7438
|
+
SelectTile,
|
|
7150
7439
|
{
|
|
7151
|
-
isSelected:
|
|
7152
|
-
|
|
7153
|
-
disabledClassName: "text-disabled-text cursor-not-allowed",
|
|
7154
|
-
title: { value: option.label, className: "font-semibold" },
|
|
7440
|
+
isSelected: option === selectedOption,
|
|
7441
|
+
title: { value: option.label },
|
|
7155
7442
|
onClick: () => {
|
|
7156
7443
|
onChange(option.value);
|
|
7157
|
-
|
|
7444
|
+
close();
|
|
7158
7445
|
},
|
|
7159
|
-
|
|
7446
|
+
disabled: option.disabled
|
|
7160
7447
|
},
|
|
7161
7448
|
index
|
|
7162
|
-
)
|
|
7163
|
-
|
|
7164
|
-
|
|
7449
|
+
)),
|
|
7450
|
+
additionalItems && additionalItems({ ...bag, search, selected: value })
|
|
7451
|
+
] })
|
|
7452
|
+
] });
|
|
7165
7453
|
}
|
|
7166
|
-
|
|
7167
|
-
|
|
7454
|
+
}
|
|
7455
|
+
)
|
|
7168
7456
|
] });
|
|
7169
7457
|
};
|
|
7170
7458
|
var SelectUncontrolled = ({
|
|
@@ -7174,13 +7462,13 @@ var SelectUncontrolled = ({
|
|
|
7174
7462
|
hintText,
|
|
7175
7463
|
...props
|
|
7176
7464
|
}) => {
|
|
7177
|
-
const [selected, setSelected] = (0,
|
|
7178
|
-
(0,
|
|
7465
|
+
const [selected, setSelected] = (0, import_react24.useState)(value);
|
|
7466
|
+
(0, import_react24.useEffect)(() => {
|
|
7179
7467
|
if (options.find((options2) => options2.value === value)) {
|
|
7180
7468
|
setSelected(value);
|
|
7181
7469
|
}
|
|
7182
7470
|
}, [options, value]);
|
|
7183
|
-
return /* @__PURE__ */ (0,
|
|
7471
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7184
7472
|
Select,
|
|
7185
7473
|
{
|
|
7186
7474
|
value: selected,
|
|
@@ -7196,7 +7484,7 @@ var SelectUncontrolled = ({
|
|
|
7196
7484
|
};
|
|
7197
7485
|
|
|
7198
7486
|
// src/components/modals/LanguageModal.tsx
|
|
7199
|
-
var
|
|
7487
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
7200
7488
|
var defaultLanguageModalTranslation = {
|
|
7201
7489
|
en: {
|
|
7202
7490
|
language: "Language",
|
|
@@ -7219,7 +7507,7 @@ var LanguageModal = ({
|
|
|
7219
7507
|
}) => {
|
|
7220
7508
|
const { language, setLanguage } = useLanguage();
|
|
7221
7509
|
const translation = useTranslation([defaultLanguageModalTranslation], overwriteTranslation);
|
|
7222
|
-
return /* @__PURE__ */ (0,
|
|
7510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
7223
7511
|
Modal,
|
|
7224
7512
|
{
|
|
7225
7513
|
headerProps: {
|
|
@@ -7229,8 +7517,8 @@ var LanguageModal = ({
|
|
|
7229
7517
|
},
|
|
7230
7518
|
onClose,
|
|
7231
7519
|
...modalProps,
|
|
7232
|
-
children: /* @__PURE__ */ (0,
|
|
7233
|
-
/* @__PURE__ */ (0,
|
|
7520
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "w-64", children: [
|
|
7521
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
7234
7522
|
Select,
|
|
7235
7523
|
{
|
|
7236
7524
|
className: "mt-2",
|
|
@@ -7239,15 +7527,15 @@ var LanguageModal = ({
|
|
|
7239
7527
|
onChange: (language2) => setLanguage(language2)
|
|
7240
7528
|
}
|
|
7241
7529
|
),
|
|
7242
|
-
/* @__PURE__ */ (0,
|
|
7530
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
|
|
7243
7531
|
] })
|
|
7244
7532
|
}
|
|
7245
7533
|
);
|
|
7246
7534
|
};
|
|
7247
7535
|
|
|
7248
7536
|
// src/theming/useTheme.tsx
|
|
7249
|
-
var
|
|
7250
|
-
var
|
|
7537
|
+
var import_react25 = require("react");
|
|
7538
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
7251
7539
|
var themes = ["light", "dark"];
|
|
7252
7540
|
var defaultThemeTypeTranslation = {
|
|
7253
7541
|
en: {
|
|
@@ -7271,27 +7559,27 @@ var ThemeUtil = {
|
|
|
7271
7559
|
themes,
|
|
7272
7560
|
translation: defaultThemeTypeTranslation
|
|
7273
7561
|
};
|
|
7274
|
-
var ThemeContext = (0,
|
|
7562
|
+
var ThemeContext = (0, import_react25.createContext)({
|
|
7275
7563
|
theme: "light",
|
|
7276
7564
|
setTheme: noop
|
|
7277
7565
|
});
|
|
7278
7566
|
var ThemeProvider = ({ children, initialTheme = "light" }) => {
|
|
7279
|
-
const [theme, setTheme] = (0,
|
|
7280
|
-
(0,
|
|
7567
|
+
const [theme, setTheme] = (0, import_react25.useState)(initialTheme);
|
|
7568
|
+
(0, import_react25.useEffect)(() => {
|
|
7281
7569
|
if (theme !== initialTheme) {
|
|
7282
7570
|
console.warn("ThemeProvider initial state changed: Prefer using useTheme's setTheme instead");
|
|
7283
7571
|
setTheme(initialTheme);
|
|
7284
7572
|
}
|
|
7285
7573
|
}, [initialTheme]);
|
|
7286
|
-
(0,
|
|
7574
|
+
(0, import_react25.useEffect)(() => {
|
|
7287
7575
|
document.documentElement.setAttribute("data-theme", theme);
|
|
7288
7576
|
}, [theme]);
|
|
7289
|
-
return /* @__PURE__ */ (0,
|
|
7577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ThemeContext.Provider, { value: { theme, setTheme }, children });
|
|
7290
7578
|
};
|
|
7291
|
-
var useTheme = () => (0,
|
|
7579
|
+
var useTheme = () => (0, import_react25.useContext)(ThemeContext);
|
|
7292
7580
|
|
|
7293
7581
|
// src/components/modals/ThemeModal.tsx
|
|
7294
|
-
var
|
|
7582
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
7295
7583
|
var defaultConfirmDialogTranslation = {
|
|
7296
7584
|
en: {
|
|
7297
7585
|
chooseTheme: "Choose your preferred theme"
|
|
@@ -7308,7 +7596,7 @@ var ThemeModal = ({
|
|
|
7308
7596
|
}) => {
|
|
7309
7597
|
const { theme, setTheme } = useTheme();
|
|
7310
7598
|
const translation = useTranslation([defaultConfirmDialogTranslation, formTranslation, ThemeUtil.translation], overwriteTranslation);
|
|
7311
|
-
return /* @__PURE__ */ (0,
|
|
7599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
7312
7600
|
Modal,
|
|
7313
7601
|
{
|
|
7314
7602
|
headerProps: {
|
|
@@ -7318,8 +7606,8 @@ var ThemeModal = ({
|
|
|
7318
7606
|
},
|
|
7319
7607
|
onClose,
|
|
7320
7608
|
...modalProps,
|
|
7321
|
-
children: /* @__PURE__ */ (0,
|
|
7322
|
-
/* @__PURE__ */ (0,
|
|
7609
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "w-64", children: [
|
|
7610
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
7323
7611
|
Select,
|
|
7324
7612
|
{
|
|
7325
7613
|
className: "mt-2",
|
|
@@ -7328,28 +7616,28 @@ var ThemeModal = ({
|
|
|
7328
7616
|
onChange: (theme2) => setTheme(theme2)
|
|
7329
7617
|
}
|
|
7330
7618
|
),
|
|
7331
|
-
/* @__PURE__ */ (0,
|
|
7619
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
|
|
7332
7620
|
] })
|
|
7333
7621
|
}
|
|
7334
7622
|
);
|
|
7335
7623
|
};
|
|
7336
7624
|
|
|
7337
7625
|
// src/components/properties/CheckboxProperty.tsx
|
|
7338
|
-
var
|
|
7626
|
+
var import_lucide_react13 = require("lucide-react");
|
|
7339
7627
|
|
|
7340
7628
|
// src/components/user-action/Checkbox.tsx
|
|
7341
|
-
var
|
|
7629
|
+
var import_react26 = require("react");
|
|
7342
7630
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
|
|
7343
|
-
var
|
|
7344
|
-
var
|
|
7345
|
-
var
|
|
7631
|
+
var import_lucide_react11 = require("lucide-react");
|
|
7632
|
+
var import_clsx34 = __toESM(require("clsx"));
|
|
7633
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
7346
7634
|
var checkboxSizeMapping = {
|
|
7347
|
-
small: "size-
|
|
7635
|
+
small: "size-5",
|
|
7348
7636
|
medium: "size-6",
|
|
7349
7637
|
large: "size-8"
|
|
7350
7638
|
};
|
|
7351
7639
|
var checkboxIconSizeMapping = {
|
|
7352
|
-
small: "size-
|
|
7640
|
+
small: "size-4",
|
|
7353
7641
|
medium: "size-5",
|
|
7354
7642
|
large: "size-7"
|
|
7355
7643
|
};
|
|
@@ -7378,36 +7666,27 @@ var Checkbox = ({
|
|
|
7378
7666
|
const newValue = checked === "indeterminate" ? false : !checked;
|
|
7379
7667
|
propagateChange(newValue);
|
|
7380
7668
|
};
|
|
7381
|
-
return /* @__PURE__ */ (0,
|
|
7382
|
-
/* @__PURE__ */ (0,
|
|
7669
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: (0, import_clsx34.default)("group flex-row-2 items-center cursor-pointer", containerClassName), onClick: changeValue, children: [
|
|
7670
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
7383
7671
|
CheckboxPrimitive.Root,
|
|
7384
7672
|
{
|
|
7385
7673
|
onCheckedChange: propagateChange,
|
|
7386
7674
|
checked,
|
|
7387
7675
|
disabled,
|
|
7388
7676
|
id,
|
|
7389
|
-
className: (0,
|
|
7677
|
+
className: (0, import_clsx34.default)(usedSizeClass, `items-center border-2 rounded outline-none `, {
|
|
7390
7678
|
"text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
|
|
7391
|
-
"focus:border-primary": !disabled,
|
|
7679
|
+
"focus:border-primary group-hover:border-primary ": !disabled,
|
|
7392
7680
|
"bg-surface": !disabled && !checked,
|
|
7393
|
-
"bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
|
|
7394
|
-
"hover:border-primary focus:hover:border-primary": !disabled && !checked
|
|
7681
|
+
"bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
|
|
7395
7682
|
}, className),
|
|
7396
|
-
children: /* @__PURE__ */ (0,
|
|
7397
|
-
checked === true && /* @__PURE__ */ (0,
|
|
7398
|
-
checked === "indeterminate" && /* @__PURE__ */ (0,
|
|
7683
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(CheckboxPrimitive.Indicator, { children: [
|
|
7684
|
+
checked === true && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react11.Check, { className: innerIconSize }),
|
|
7685
|
+
checked === "indeterminate" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react11.Minus, { className: innerIconSize })
|
|
7399
7686
|
] })
|
|
7400
7687
|
}
|
|
7401
7688
|
),
|
|
7402
|
-
label && /* @__PURE__ */ (0,
|
|
7403
|
-
Label,
|
|
7404
|
-
{
|
|
7405
|
-
...label,
|
|
7406
|
-
className: (0, import_clsx32.default)("cursor-pointer", label.className),
|
|
7407
|
-
htmlFor: id,
|
|
7408
|
-
onClick: changeValue
|
|
7409
|
-
}
|
|
7410
|
-
)
|
|
7689
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Label, { ...label, className: (0, import_clsx34.default)(label.className), htmlFor: id })
|
|
7411
7690
|
] });
|
|
7412
7691
|
};
|
|
7413
7692
|
var CheckboxUncontrolled = ({
|
|
@@ -7416,7 +7695,7 @@ var CheckboxUncontrolled = ({
|
|
|
7416
7695
|
defaultValue = false,
|
|
7417
7696
|
...props
|
|
7418
7697
|
}) => {
|
|
7419
|
-
const [checked, setChecked] = (0,
|
|
7698
|
+
const [checked, setChecked] = (0, import_react26.useState)(defaultValue);
|
|
7420
7699
|
const handleChange = (checked2) => {
|
|
7421
7700
|
if (onChangeTristate) {
|
|
7422
7701
|
onChangeTristate(checked2);
|
|
@@ -7426,7 +7705,7 @@ var CheckboxUncontrolled = ({
|
|
|
7426
7705
|
}
|
|
7427
7706
|
setChecked(checked2);
|
|
7428
7707
|
};
|
|
7429
|
-
return /* @__PURE__ */ (0,
|
|
7708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
7430
7709
|
Checkbox,
|
|
7431
7710
|
{
|
|
7432
7711
|
...props,
|
|
@@ -7437,9 +7716,9 @@ var CheckboxUncontrolled = ({
|
|
|
7437
7716
|
};
|
|
7438
7717
|
|
|
7439
7718
|
// src/components/properties/PropertyBase.tsx
|
|
7440
|
-
var
|
|
7441
|
-
var
|
|
7442
|
-
var
|
|
7719
|
+
var import_lucide_react12 = require("lucide-react");
|
|
7720
|
+
var import_clsx35 = __toESM(require("clsx"));
|
|
7721
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
7443
7722
|
var PropertyBase = ({
|
|
7444
7723
|
overwriteTranslation,
|
|
7445
7724
|
name,
|
|
@@ -7453,36 +7732,44 @@ var PropertyBase = ({
|
|
|
7453
7732
|
}) => {
|
|
7454
7733
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7455
7734
|
const requiredAndNoValue = softRequired && !hasValue;
|
|
7456
|
-
return /* @__PURE__ */ (0,
|
|
7457
|
-
/* @__PURE__ */ (0,
|
|
7735
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: (0, import_clsx35.default)("flex-row-0 group", className), children: [
|
|
7736
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
7458
7737
|
"div",
|
|
7459
7738
|
{
|
|
7460
|
-
className: (0,
|
|
7461
|
-
"
|
|
7462
|
-
|
|
7463
|
-
|
|
7739
|
+
className: (0, import_clsx35.default)(
|
|
7740
|
+
"flex-row-2 max-w-48 min-w-48 px-3 py-2 items-center rounded-l-xl border-2 border-r-0",
|
|
7741
|
+
{
|
|
7742
|
+
"bg-property-title-background text-property-title-text group-hover:border-primary": !requiredAndNoValue,
|
|
7743
|
+
"bg-warning text-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
|
|
7744
|
+
},
|
|
7745
|
+
className
|
|
7746
|
+
),
|
|
7464
7747
|
children: [
|
|
7465
|
-
icon,
|
|
7466
|
-
name
|
|
7748
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "max-w-6 min-w-6 text-text-default", children: icon }),
|
|
7749
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "font-semibold", children: name })
|
|
7467
7750
|
]
|
|
7468
7751
|
}
|
|
7469
7752
|
),
|
|
7470
|
-
/* @__PURE__ */ (0,
|
|
7753
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
7471
7754
|
"div",
|
|
7472
7755
|
{
|
|
7473
|
-
className: (0,
|
|
7474
|
-
"
|
|
7475
|
-
|
|
7476
|
-
|
|
7756
|
+
className: (0, import_clsx35.default)(
|
|
7757
|
+
"flex-row-2 grow px-3 py-2 justify-between items-center rounded-r-xl border-2 border-l-0 min-h-15",
|
|
7758
|
+
{
|
|
7759
|
+
"bg-surface group-hover:border-primary": !requiredAndNoValue,
|
|
7760
|
+
"bg-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
|
|
7761
|
+
},
|
|
7762
|
+
className
|
|
7763
|
+
),
|
|
7477
7764
|
children: [
|
|
7478
7765
|
input({ softRequired, hasValue }),
|
|
7479
|
-
requiredAndNoValue && /* @__PURE__ */ (0,
|
|
7480
|
-
onRemove && /* @__PURE__ */ (0,
|
|
7766
|
+
requiredAndNoValue && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "text-warning", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react12.AlertTriangle, { size: 24 }) }),
|
|
7767
|
+
onRemove && hasValue && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7481
7768
|
TextButton,
|
|
7482
7769
|
{
|
|
7483
7770
|
onClick: onRemove,
|
|
7484
7771
|
color: "negative",
|
|
7485
|
-
className: (0,
|
|
7772
|
+
className: (0, import_clsx35.default)("items-center", { "!text-transparent": !hasValue || readOnly }),
|
|
7486
7773
|
disabled: !hasValue || readOnly,
|
|
7487
7774
|
children: translation("remove")
|
|
7488
7775
|
}
|
|
@@ -7494,7 +7781,7 @@ var PropertyBase = ({
|
|
|
7494
7781
|
};
|
|
7495
7782
|
|
|
7496
7783
|
// src/components/properties/CheckboxProperty.tsx
|
|
7497
|
-
var
|
|
7784
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
7498
7785
|
var CheckboxProperty = ({
|
|
7499
7786
|
overwriteTranslation,
|
|
7500
7787
|
value,
|
|
@@ -7503,30 +7790,31 @@ var CheckboxProperty = ({
|
|
|
7503
7790
|
...baseProps
|
|
7504
7791
|
}) => {
|
|
7505
7792
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7506
|
-
return /* @__PURE__ */ (0,
|
|
7793
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
7507
7794
|
PropertyBase,
|
|
7508
7795
|
{
|
|
7509
7796
|
...baseProps,
|
|
7510
7797
|
hasValue: true,
|
|
7511
7798
|
readOnly,
|
|
7512
|
-
icon: /* @__PURE__ */ (0,
|
|
7513
|
-
input: () => /* @__PURE__ */ (0,
|
|
7799
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react13.Check, { size: 24 }),
|
|
7800
|
+
input: () => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
7514
7801
|
Checkbox,
|
|
7515
7802
|
{
|
|
7516
7803
|
checked: value ?? true,
|
|
7517
7804
|
disabled: readOnly,
|
|
7518
7805
|
onChange,
|
|
7519
|
-
label: { name: `${translation("yes")}/${translation("no")}`, labelType: "labelMedium" }
|
|
7806
|
+
label: { name: `${translation("yes")}/${translation("no")}`, labelType: "labelMedium" },
|
|
7807
|
+
containerClassName: "w-full"
|
|
7520
7808
|
}
|
|
7521
|
-
)
|
|
7809
|
+
)
|
|
7522
7810
|
}
|
|
7523
7811
|
);
|
|
7524
7812
|
};
|
|
7525
7813
|
|
|
7526
7814
|
// src/components/properties/DateProperty.tsx
|
|
7527
|
-
var
|
|
7528
|
-
var
|
|
7529
|
-
var
|
|
7815
|
+
var import_lucide_react14 = require("lucide-react");
|
|
7816
|
+
var import_clsx36 = __toESM(require("clsx"));
|
|
7817
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
7530
7818
|
var DateProperty = ({
|
|
7531
7819
|
value,
|
|
7532
7820
|
onChange = noop,
|
|
@@ -7537,35 +7825,29 @@ var DateProperty = ({
|
|
|
7537
7825
|
}) => {
|
|
7538
7826
|
const hasValue = !!value;
|
|
7539
7827
|
const dateText = value ? type === "dateTime" ? formatDateTime(value) : formatDate(value) : "";
|
|
7540
|
-
return /* @__PURE__ */ (0,
|
|
7828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7541
7829
|
PropertyBase,
|
|
7542
7830
|
{
|
|
7543
7831
|
...baseProps,
|
|
7544
7832
|
hasValue,
|
|
7545
|
-
icon: /* @__PURE__ */ (0,
|
|
7546
|
-
input: ({ softRequired }) => /* @__PURE__ */ (0,
|
|
7547
|
-
|
|
7833
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react14.CalendarDays, { size: 24 }),
|
|
7834
|
+
input: ({ softRequired }) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7835
|
+
Input,
|
|
7548
7836
|
{
|
|
7549
|
-
className: (0,
|
|
7550
|
-
|
|
7551
|
-
|
|
7552
|
-
|
|
7553
|
-
|
|
7554
|
-
|
|
7555
|
-
|
|
7556
|
-
|
|
7557
|
-
|
|
7558
|
-
const value2 = event.target.value;
|
|
7559
|
-
if (!value2) {
|
|
7560
|
-
event.preventDefault();
|
|
7561
|
-
return;
|
|
7562
|
-
}
|
|
7563
|
-
const dueDate = new Date(value2);
|
|
7564
|
-
onChange(dueDate);
|
|
7565
|
-
},
|
|
7566
|
-
onEditCompleted: (value2) => onEditComplete(new Date(value2))
|
|
7837
|
+
className: (0, import_clsx36.default)("!ring-0 !border-0 !outline-0 !p-0 !m-0 !shadow-none !w-fit !rounded-none", { "bg-surface-warning": softRequired && !hasValue }),
|
|
7838
|
+
value: dateText,
|
|
7839
|
+
type: type === "dateTime" ? "datetime-local" : "date",
|
|
7840
|
+
readOnly,
|
|
7841
|
+
onChange: (event) => {
|
|
7842
|
+
const value2 = event.target.value;
|
|
7843
|
+
if (!value2) {
|
|
7844
|
+
event.preventDefault();
|
|
7845
|
+
return;
|
|
7567
7846
|
}
|
|
7568
|
-
|
|
7847
|
+
const dueDate = new Date(value2);
|
|
7848
|
+
onChange(dueDate);
|
|
7849
|
+
},
|
|
7850
|
+
onEditCompleted: (value2) => onEditComplete(new Date(value2))
|
|
7569
7851
|
}
|
|
7570
7852
|
)
|
|
7571
7853
|
}
|
|
@@ -7573,14 +7855,15 @@ var DateProperty = ({
|
|
|
7573
7855
|
};
|
|
7574
7856
|
|
|
7575
7857
|
// src/components/properties/MultiSelectProperty.tsx
|
|
7576
|
-
var
|
|
7577
|
-
var
|
|
7858
|
+
var import_lucide_react16 = require("lucide-react");
|
|
7859
|
+
var import_clsx38 = __toESM(require("clsx"));
|
|
7578
7860
|
|
|
7579
7861
|
// src/components/user-action/MultiSelect.tsx
|
|
7580
|
-
var
|
|
7581
|
-
var
|
|
7582
|
-
var
|
|
7583
|
-
var
|
|
7862
|
+
var import_react27 = require("react");
|
|
7863
|
+
var import_react28 = require("react");
|
|
7864
|
+
var import_clsx37 = __toESM(require("clsx"));
|
|
7865
|
+
var import_lucide_react15 = require("lucide-react");
|
|
7866
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
7584
7867
|
var defaultMultiSelectTranslation = {
|
|
7585
7868
|
en: {
|
|
7586
7869
|
selected: `{{amount}} selected`
|
|
@@ -7591,89 +7874,107 @@ var defaultMultiSelectTranslation = {
|
|
|
7591
7874
|
};
|
|
7592
7875
|
var MultiSelect = ({
|
|
7593
7876
|
overwriteTranslation,
|
|
7594
|
-
options,
|
|
7595
7877
|
label,
|
|
7878
|
+
options,
|
|
7596
7879
|
onChange,
|
|
7597
7880
|
hintText,
|
|
7598
|
-
isDisabled = false,
|
|
7599
|
-
isSearchEnabled = false,
|
|
7600
7881
|
selectedDisplayOverwrite,
|
|
7882
|
+
searchOptions,
|
|
7883
|
+
additionalItems,
|
|
7601
7884
|
useChipDisplay = false,
|
|
7602
|
-
className
|
|
7885
|
+
className,
|
|
7886
|
+
triggerClassName,
|
|
7887
|
+
hintTextClassName,
|
|
7888
|
+
...menuProps
|
|
7603
7889
|
}) => {
|
|
7604
7890
|
const translation = useTranslation([formTranslation, defaultMultiSelectTranslation], overwriteTranslation);
|
|
7605
|
-
const
|
|
7606
|
-
|
|
7607
|
-
|
|
7608
|
-
|
|
7891
|
+
const { result, search, setSearch } = useSearch({
|
|
7892
|
+
list: options,
|
|
7893
|
+
searchMapping: (0, import_react27.useCallback)((item) => item.searchTags, []),
|
|
7894
|
+
...searchOptions
|
|
7895
|
+
});
|
|
7609
7896
|
const selectedItems = options.filter((value) => value.selected);
|
|
7610
7897
|
const isShowingHint = !selectedDisplayOverwrite && selectedItems.length === 0;
|
|
7611
|
-
return /* @__PURE__ */ (0,
|
|
7612
|
-
label && /* @__PURE__ */ (0,
|
|
7898
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: (0, import_clsx37.default)(className), children: [
|
|
7899
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7613
7900
|
Label,
|
|
7614
7901
|
{
|
|
7615
7902
|
...label,
|
|
7616
7903
|
htmlFor: label.name,
|
|
7617
|
-
className: (0,
|
|
7904
|
+
className: (0, import_clsx37.default)(" mb-1", label.className),
|
|
7618
7905
|
labelType: label.labelType ?? "labelBig"
|
|
7619
7906
|
}
|
|
7620
7907
|
),
|
|
7621
|
-
/* @__PURE__ */ (0,
|
|
7622
|
-
|
|
7623
|
-
|
|
7624
|
-
|
|
7625
|
-
|
|
7626
|
-
|
|
7627
|
-
|
|
7628
|
-
|
|
7629
|
-
|
|
7630
|
-
"
|
|
7631
|
-
|
|
7632
|
-
|
|
7633
|
-
|
|
7634
|
-
|
|
7635
|
-
|
|
7636
|
-
|
|
7637
|
-
|
|
7638
|
-
|
|
7639
|
-
|
|
7640
|
-
|
|
7641
|
-
|
|
7642
|
-
|
|
7643
|
-
|
|
7644
|
-
|
|
7645
|
-
|
|
7646
|
-
|
|
7647
|
-
|
|
7648
|
-
|
|
7649
|
-
|
|
7650
|
-
|
|
7908
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7909
|
+
Menu,
|
|
7910
|
+
{
|
|
7911
|
+
...menuProps,
|
|
7912
|
+
trigger: ({ toggleOpen, isOpen, disabled }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7913
|
+
"button",
|
|
7914
|
+
{
|
|
7915
|
+
ref,
|
|
7916
|
+
className: (0, import_clsx37.default)(
|
|
7917
|
+
"btn-md justify-between w-full border-2 h-auto",
|
|
7918
|
+
{
|
|
7919
|
+
"min-h-14": useChipDisplay,
|
|
7920
|
+
"bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
|
|
7921
|
+
"bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
|
|
7922
|
+
},
|
|
7923
|
+
triggerClassName
|
|
7924
|
+
),
|
|
7925
|
+
onClick: toggleOpen,
|
|
7926
|
+
disabled,
|
|
7927
|
+
children: useChipDisplay ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_jsx_runtime50.Fragment, { children: isShowingHint ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(IconButton, { disabled, size: "small", color: "neutral", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react15.Plus, {}) }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
|
|
7928
|
+
!isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "font-semibold", children: selectedDisplayOverwrite ?? translation("selected", { replacements: { amount: selectedItems.length.toString() } }) }),
|
|
7929
|
+
isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: (0, import_clsx37.default)("textstyle-description", hintTextClassName), children: hintText ?? translation("select") }),
|
|
7930
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ExpansionIcon, { isExpanded: isOpen })
|
|
7931
|
+
] })
|
|
7932
|
+
}
|
|
7933
|
+
),
|
|
7934
|
+
menuClassName: (0, import_clsx37.default)("flex-col-2 p-2 max-h-96 overflow-hidden", menuProps.menuClassName),
|
|
7935
|
+
children: (bag) => {
|
|
7936
|
+
const { close } = bag;
|
|
7937
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
|
|
7938
|
+
!searchOptions?.disabled && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7939
|
+
SearchBar,
|
|
7651
7940
|
{
|
|
7652
|
-
|
|
7653
|
-
|
|
7654
|
-
|
|
7655
|
-
|
|
7656
|
-
|
|
7941
|
+
value: search,
|
|
7942
|
+
onChangeText: setSearch,
|
|
7943
|
+
autoFocus: true
|
|
7944
|
+
}
|
|
7945
|
+
),
|
|
7946
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex-col-2 overflow-y-auto", children: [
|
|
7947
|
+
result.map((option, index) => {
|
|
7948
|
+
const update = () => {
|
|
7949
|
+
onChange(options.map((value) => value.value === option.value ? {
|
|
7950
|
+
...option,
|
|
7951
|
+
selected: !value.selected
|
|
7952
|
+
} : value));
|
|
7953
|
+
};
|
|
7954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7955
|
+
SelectTile,
|
|
7657
7956
|
{
|
|
7658
|
-
|
|
7659
|
-
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7667
|
-
},
|
|
7668
|
-
|
|
7957
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7958
|
+
Checkbox,
|
|
7959
|
+
{
|
|
7960
|
+
checked: option.selected,
|
|
7961
|
+
onChange: update,
|
|
7962
|
+
size: "small",
|
|
7963
|
+
disabled: option.disabled
|
|
7964
|
+
}
|
|
7965
|
+
),
|
|
7966
|
+
title: { value: option.label },
|
|
7967
|
+
onClick: update,
|
|
7968
|
+
disabled: option.disabled
|
|
7669
7969
|
},
|
|
7670
7970
|
index
|
|
7671
|
-
)
|
|
7672
|
-
}
|
|
7673
|
-
|
|
7674
|
-
|
|
7675
|
-
|
|
7676
|
-
|
|
7971
|
+
);
|
|
7972
|
+
}),
|
|
7973
|
+
additionalItems && additionalItems({ ...bag, search })
|
|
7974
|
+
] }),
|
|
7975
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex-row-2 justify-between", children: [
|
|
7976
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex-row-2", children: [
|
|
7977
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7677
7978
|
SolidButton,
|
|
7678
7979
|
{
|
|
7679
7980
|
color: "neutral",
|
|
@@ -7688,7 +7989,7 @@ var MultiSelect = ({
|
|
|
7688
7989
|
children: translation("all")
|
|
7689
7990
|
}
|
|
7690
7991
|
),
|
|
7691
|
-
/* @__PURE__ */ (0,
|
|
7992
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7692
7993
|
SolidButton,
|
|
7693
7994
|
{
|
|
7694
7995
|
color: "neutral",
|
|
@@ -7703,12 +8004,12 @@ var MultiSelect = ({
|
|
|
7703
8004
|
}
|
|
7704
8005
|
)
|
|
7705
8006
|
] }),
|
|
7706
|
-
/* @__PURE__ */ (0,
|
|
8007
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SolidButton, { size: "small", onClick: close, children: "Done" })
|
|
7707
8008
|
] })
|
|
7708
|
-
]
|
|
8009
|
+
] });
|
|
7709
8010
|
}
|
|
7710
|
-
|
|
7711
|
-
|
|
8011
|
+
}
|
|
8012
|
+
)
|
|
7712
8013
|
] });
|
|
7713
8014
|
};
|
|
7714
8015
|
var MultiSelectUncontrolled = ({
|
|
@@ -7716,11 +8017,11 @@ var MultiSelectUncontrolled = ({
|
|
|
7716
8017
|
onChange,
|
|
7717
8018
|
...props
|
|
7718
8019
|
}) => {
|
|
7719
|
-
const [usedOptions, setUsedOptions] = (0,
|
|
7720
|
-
(0,
|
|
8020
|
+
const [usedOptions, setUsedOptions] = (0, import_react28.useState)(options);
|
|
8021
|
+
(0, import_react28.useEffect)(() => {
|
|
7721
8022
|
setUsedOptions(options);
|
|
7722
8023
|
}, [options]);
|
|
7723
|
-
return /* @__PURE__ */ (0,
|
|
8024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7724
8025
|
MultiSelect,
|
|
7725
8026
|
{
|
|
7726
8027
|
...props,
|
|
@@ -7734,7 +8035,7 @@ var MultiSelectUncontrolled = ({
|
|
|
7734
8035
|
};
|
|
7735
8036
|
|
|
7736
8037
|
// src/components/properties/MultiSelectProperty.tsx
|
|
7737
|
-
var
|
|
8038
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
7738
8039
|
var MultiSelectProperty = ({
|
|
7739
8040
|
overwriteTranslation,
|
|
7740
8041
|
options,
|
|
@@ -7742,11 +8043,12 @@ var MultiSelectProperty = ({
|
|
|
7742
8043
|
readOnly = false,
|
|
7743
8044
|
softRequired,
|
|
7744
8045
|
onRemove,
|
|
8046
|
+
onAddNew,
|
|
7745
8047
|
...multiSelectProps
|
|
7746
8048
|
}) => {
|
|
7747
8049
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7748
8050
|
const hasValue = options.some((value) => value.selected);
|
|
7749
|
-
return /* @__PURE__ */ (0,
|
|
8051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7750
8052
|
PropertyBase,
|
|
7751
8053
|
{
|
|
7752
8054
|
name,
|
|
@@ -7754,20 +8056,42 @@ var MultiSelectProperty = ({
|
|
|
7754
8056
|
readOnly,
|
|
7755
8057
|
softRequired,
|
|
7756
8058
|
hasValue,
|
|
7757
|
-
icon: /* @__PURE__ */ (0,
|
|
7758
|
-
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0,
|
|
7759
|
-
|
|
8059
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react16.List, { size: 24 }),
|
|
8060
|
+
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
8061
|
+
MultiSelect,
|
|
7760
8062
|
{
|
|
7761
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
8063
|
+
...multiSelectProps,
|
|
8064
|
+
className: (0, import_clsx38.default)("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
|
|
8065
|
+
options,
|
|
8066
|
+
disabled: readOnly,
|
|
8067
|
+
useChipDisplay: true,
|
|
8068
|
+
hintText: `${translation("select")}...`,
|
|
8069
|
+
searchOptions: {
|
|
8070
|
+
sortingFunction: (a, b) => a.value.localeCompare(b.value),
|
|
8071
|
+
...multiSelectProps?.searchOptions
|
|
8072
|
+
},
|
|
8073
|
+
additionalItems: ({ close, search }) => {
|
|
8074
|
+
if (!onAddNew && !search.trim()) {
|
|
8075
|
+
return void 0;
|
|
8076
|
+
}
|
|
8077
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
8078
|
+
SelectTile,
|
|
8079
|
+
{
|
|
8080
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react16.Plus, {}),
|
|
8081
|
+
title: { value: `${translation("add")} ${search.trim()}` },
|
|
8082
|
+
onClick: () => {
|
|
8083
|
+
onAddNew(search);
|
|
8084
|
+
close();
|
|
8085
|
+
},
|
|
8086
|
+
disabled: options.some((value) => value.value === search.trim())
|
|
8087
|
+
}
|
|
8088
|
+
);
|
|
8089
|
+
},
|
|
8090
|
+
triggerClassName: (0, import_clsx38.default)(
|
|
8091
|
+
"!border-none !p-0 !min-h-10",
|
|
7764
8092
|
{
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
options,
|
|
7768
|
-
isDisabled: readOnly,
|
|
7769
|
-
useChipDisplay: true,
|
|
7770
|
-
hintText: `${translation("select")}...`
|
|
8093
|
+
"!bg-warning !text-surface-warning": softRequired2 && !hasValue,
|
|
8094
|
+
"": !softRequired2 || hasValue
|
|
7771
8095
|
}
|
|
7772
8096
|
)
|
|
7773
8097
|
}
|
|
@@ -7777,9 +8101,9 @@ var MultiSelectProperty = ({
|
|
|
7777
8101
|
};
|
|
7778
8102
|
|
|
7779
8103
|
// src/components/properties/NumberProperty.tsx
|
|
7780
|
-
var
|
|
7781
|
-
var
|
|
7782
|
-
var
|
|
8104
|
+
var import_lucide_react17 = require("lucide-react");
|
|
8105
|
+
var import_clsx39 = __toESM(require("clsx"));
|
|
8106
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
7783
8107
|
var defaultNumberPropertyTranslation = {
|
|
7784
8108
|
en: {
|
|
7785
8109
|
value: "Value"
|
|
@@ -7800,23 +8124,23 @@ var NumberProperty = ({
|
|
|
7800
8124
|
}) => {
|
|
7801
8125
|
const translation = useTranslation([defaultNumberPropertyTranslation], overwriteTranslation);
|
|
7802
8126
|
const hasValue = value !== void 0;
|
|
7803
|
-
return /* @__PURE__ */ (0,
|
|
8127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7804
8128
|
PropertyBase,
|
|
7805
8129
|
{
|
|
7806
8130
|
...baseProps,
|
|
7807
8131
|
onRemove,
|
|
7808
8132
|
hasValue,
|
|
7809
|
-
icon: /* @__PURE__ */ (0,
|
|
7810
|
-
input: ({ softRequired }) => /* @__PURE__ */ (0,
|
|
8133
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react17.Binary, { size: 24 }),
|
|
8134
|
+
input: ({ softRequired }) => /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
7811
8135
|
"div",
|
|
7812
8136
|
{
|
|
7813
|
-
className: (0,
|
|
8137
|
+
className: (0, import_clsx39.default)("flex-row-2 grow", { "text-warning": softRequired && !hasValue }),
|
|
7814
8138
|
children: [
|
|
7815
|
-
/* @__PURE__ */ (0,
|
|
8139
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7816
8140
|
Input,
|
|
7817
8141
|
{
|
|
7818
8142
|
expanded: false,
|
|
7819
|
-
className: (0,
|
|
8143
|
+
className: (0, import_clsx39.default)("!ring-0 !border-0 !outline-0 !p-0 !m-0 !w-fit !shadow-none !rounded-none", { "bg-surface-warning placeholder-warning": softRequired && !hasValue }),
|
|
7820
8144
|
value: value?.toString() ?? "",
|
|
7821
8145
|
type: "number",
|
|
7822
8146
|
readOnly,
|
|
@@ -7839,7 +8163,7 @@ var NumberProperty = ({
|
|
|
7839
8163
|
}
|
|
7840
8164
|
}
|
|
7841
8165
|
),
|
|
7842
|
-
suffix && /* @__PURE__ */ (0,
|
|
8166
|
+
suffix && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: (0, import_clsx39.default)("ml-1", { "bg-surface-warning": softRequired && !hasValue }), children: suffix })
|
|
7843
8167
|
]
|
|
7844
8168
|
}
|
|
7845
8169
|
)
|
|
@@ -7848,9 +8172,9 @@ var NumberProperty = ({
|
|
|
7848
8172
|
};
|
|
7849
8173
|
|
|
7850
8174
|
// src/components/properties/SelectProperty.tsx
|
|
7851
|
-
var
|
|
7852
|
-
var
|
|
7853
|
-
var
|
|
8175
|
+
var import_lucide_react18 = require("lucide-react");
|
|
8176
|
+
var import_clsx40 = __toESM(require("clsx"));
|
|
8177
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
7854
8178
|
var SingleSelectProperty = ({
|
|
7855
8179
|
overwriteTranslation,
|
|
7856
8180
|
value,
|
|
@@ -7859,11 +8183,12 @@ var SingleSelectProperty = ({
|
|
|
7859
8183
|
readOnly = false,
|
|
7860
8184
|
softRequired,
|
|
7861
8185
|
onRemove,
|
|
8186
|
+
onAddNew,
|
|
7862
8187
|
...selectProps
|
|
7863
8188
|
}) => {
|
|
7864
8189
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7865
8190
|
const hasValue = value !== void 0;
|
|
7866
|
-
return /* @__PURE__ */ (0,
|
|
8191
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7867
8192
|
PropertyBase,
|
|
7868
8193
|
{
|
|
7869
8194
|
name,
|
|
@@ -7871,22 +8196,45 @@ var SingleSelectProperty = ({
|
|
|
7871
8196
|
readOnly,
|
|
7872
8197
|
softRequired,
|
|
7873
8198
|
hasValue,
|
|
7874
|
-
icon: /* @__PURE__ */ (0,
|
|
7875
|
-
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0,
|
|
7876
|
-
|
|
8199
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react18.List, { size: 24 }),
|
|
8200
|
+
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
8201
|
+
Select,
|
|
7877
8202
|
{
|
|
7878
|
-
|
|
7879
|
-
|
|
7880
|
-
|
|
8203
|
+
...selectProps,
|
|
8204
|
+
value,
|
|
8205
|
+
options,
|
|
8206
|
+
disabled: readOnly,
|
|
8207
|
+
className: (0, import_clsx40.default)("w-full"),
|
|
8208
|
+
hintText: `${translation("select")}...`,
|
|
8209
|
+
searchOptions: {
|
|
8210
|
+
sortingFunction: (a, b) => a.value.localeCompare(b.value),
|
|
8211
|
+
...selectProps?.searchOptions
|
|
8212
|
+
},
|
|
8213
|
+
additionalItems: ({ close, search }) => {
|
|
8214
|
+
if (!onAddNew && !search.trim()) {
|
|
8215
|
+
return void 0;
|
|
8216
|
+
}
|
|
8217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
8218
|
+
SelectTile,
|
|
8219
|
+
{
|
|
8220
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react18.Plus, {}),
|
|
8221
|
+
title: { value: `${translation("add")} ${search.trim()}` },
|
|
8222
|
+
onClick: () => {
|
|
8223
|
+
onAddNew(search);
|
|
8224
|
+
close();
|
|
8225
|
+
},
|
|
8226
|
+
disabled: options.some((value2) => value2.value === search.trim())
|
|
8227
|
+
}
|
|
8228
|
+
);
|
|
8229
|
+
},
|
|
8230
|
+
triggerClassName: (0, import_clsx40.default)(
|
|
8231
|
+
"!border-none",
|
|
7881
8232
|
{
|
|
7882
|
-
|
|
7883
|
-
|
|
7884
|
-
options,
|
|
7885
|
-
isDisabled: readOnly,
|
|
7886
|
-
className: (0, import_clsx38.default)("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
|
|
7887
|
-
hintText: `${translation("select")}...`
|
|
8233
|
+
"!bg-warning !text-surface-warning": softRequired2 && !hasValue,
|
|
8234
|
+
"!bg-property-title-background": !softRequired2 || hasValue
|
|
7888
8235
|
}
|
|
7889
|
-
)
|
|
8236
|
+
),
|
|
8237
|
+
hintTextClassName: softRequired2 && !hasValue ? "text-surface-warning" : void 0
|
|
7890
8238
|
}
|
|
7891
8239
|
)
|
|
7892
8240
|
}
|
|
@@ -7894,13 +8242,13 @@ var SingleSelectProperty = ({
|
|
|
7894
8242
|
};
|
|
7895
8243
|
|
|
7896
8244
|
// src/components/properties/TextProperty.tsx
|
|
7897
|
-
var
|
|
7898
|
-
var
|
|
8245
|
+
var import_lucide_react19 = require("lucide-react");
|
|
8246
|
+
var import_clsx42 = __toESM(require("clsx"));
|
|
7899
8247
|
|
|
7900
8248
|
// src/components/user-action/Textarea.tsx
|
|
7901
|
-
var
|
|
7902
|
-
var
|
|
7903
|
-
var
|
|
8249
|
+
var import_react29 = require("react");
|
|
8250
|
+
var import_clsx41 = __toESM(require("clsx"));
|
|
8251
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7904
8252
|
var Textarea = ({
|
|
7905
8253
|
label,
|
|
7906
8254
|
headline,
|
|
@@ -7913,39 +8261,48 @@ var Textarea = ({
|
|
|
7913
8261
|
onEditCompleted = noop,
|
|
7914
8262
|
saveDelayOptions,
|
|
7915
8263
|
defaultStyle = true,
|
|
8264
|
+
disabled = false,
|
|
7916
8265
|
className,
|
|
7917
8266
|
...props
|
|
7918
8267
|
}) => {
|
|
7919
|
-
const [hasFocus, setHasFocus] = (0,
|
|
8268
|
+
const [hasFocus, setHasFocus] = (0, import_react29.useState)(false);
|
|
7920
8269
|
const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
|
|
7921
8270
|
const onEditCompletedWrapper = (text) => {
|
|
7922
8271
|
onEditCompleted(text);
|
|
7923
8272
|
clearTimer();
|
|
7924
8273
|
};
|
|
7925
|
-
return /* @__PURE__ */ (0,
|
|
7926
|
-
label && /* @__PURE__ */ (0,
|
|
8274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "w-full", children: [
|
|
8275
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7927
8276
|
Label,
|
|
7928
8277
|
{
|
|
7929
8278
|
...label,
|
|
7930
8279
|
htmlFor: id,
|
|
7931
|
-
className: (0,
|
|
8280
|
+
className: (0, import_clsx41.default)("mb-1", label.className),
|
|
7932
8281
|
labelType: label.labelType ?? "labelSmall"
|
|
7933
8282
|
}
|
|
7934
8283
|
),
|
|
7935
|
-
/* @__PURE__ */ (0,
|
|
8284
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
7936
8285
|
"div",
|
|
7937
8286
|
{
|
|
7938
|
-
className:
|
|
8287
|
+
className: (0, import_clsx41.default)(
|
|
8288
|
+
"bg-surface text-on-surface relative",
|
|
8289
|
+
{
|
|
8290
|
+
"shadow border-2 rounded-lg": defaultStyle,
|
|
8291
|
+
"hover:border-primary focus-within:border-primary": defaultStyle && !disabled,
|
|
8292
|
+
"border-disabled-border cursor-not-allowed": defaultStyle && !disabled
|
|
8293
|
+
}
|
|
8294
|
+
),
|
|
7939
8295
|
children: [
|
|
7940
|
-
headline && /* @__PURE__ */ (0,
|
|
7941
|
-
/* @__PURE__ */ (0,
|
|
8296
|
+
headline && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "mx-3 mt-3 block textstyle-label-md", children: headline }),
|
|
8297
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7942
8298
|
"textarea",
|
|
7943
8299
|
{
|
|
7944
8300
|
id,
|
|
7945
|
-
className: (0,
|
|
8301
|
+
className: (0, import_clsx41.default)("pt-0 px-3 border-transparent appearance-none w-full leading-tight focus:ring-0 focus:outline-none", {
|
|
7946
8302
|
"resize-none": !resizable,
|
|
7947
8303
|
"h-32": defaultStyle,
|
|
7948
|
-
"mt-3": !headline
|
|
8304
|
+
"mt-3": !headline,
|
|
8305
|
+
"text-disabled-text": disabled
|
|
7949
8306
|
}, className),
|
|
7950
8307
|
onChange: (event) => {
|
|
7951
8308
|
const value = event.target.value;
|
|
@@ -7963,13 +8320,14 @@ var Textarea = ({
|
|
|
7963
8320
|
onEditCompletedWrapper(event.target.value);
|
|
7964
8321
|
setHasFocus(false);
|
|
7965
8322
|
},
|
|
8323
|
+
disabled,
|
|
7966
8324
|
...props
|
|
7967
8325
|
}
|
|
7968
8326
|
)
|
|
7969
8327
|
]
|
|
7970
8328
|
}
|
|
7971
8329
|
),
|
|
7972
|
-
hasFocus && disclaimer && /* @__PURE__ */ (0,
|
|
8330
|
+
hasFocus && disclaimer && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("label", { className: "text-negative", children: disclaimer })
|
|
7973
8331
|
] });
|
|
7974
8332
|
};
|
|
7975
8333
|
var TextareaUncontrolled = ({
|
|
@@ -7977,11 +8335,11 @@ var TextareaUncontrolled = ({
|
|
|
7977
8335
|
onChangeText = noop,
|
|
7978
8336
|
...props
|
|
7979
8337
|
}) => {
|
|
7980
|
-
const [text, setText] = (0,
|
|
7981
|
-
(0,
|
|
8338
|
+
const [text, setText] = (0, import_react29.useState)(value);
|
|
8339
|
+
(0, import_react29.useEffect)(() => {
|
|
7982
8340
|
setText(value);
|
|
7983
8341
|
}, [value]);
|
|
7984
|
-
return /* @__PURE__ */ (0,
|
|
8342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7985
8343
|
Textarea,
|
|
7986
8344
|
{
|
|
7987
8345
|
...props,
|
|
@@ -7995,7 +8353,7 @@ var TextareaUncontrolled = ({
|
|
|
7995
8353
|
};
|
|
7996
8354
|
|
|
7997
8355
|
// src/components/properties/TextProperty.tsx
|
|
7998
|
-
var
|
|
8356
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
7999
8357
|
var defaultTextPropertyTranslation = {
|
|
8000
8358
|
en: {
|
|
8001
8359
|
text: "Text"
|
|
@@ -8015,42 +8373,36 @@ var TextProperty = ({
|
|
|
8015
8373
|
}) => {
|
|
8016
8374
|
const translation = useTranslation([defaultTextPropertyTranslation], overwriteTranslation);
|
|
8017
8375
|
const hasValue = value !== void 0;
|
|
8018
|
-
return /* @__PURE__ */ (0,
|
|
8376
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8019
8377
|
PropertyBase,
|
|
8020
8378
|
{
|
|
8021
8379
|
...baseProps,
|
|
8022
8380
|
onRemove,
|
|
8023
8381
|
hasValue,
|
|
8024
|
-
icon: /* @__PURE__ */ (0,
|
|
8025
|
-
input: ({ softRequired }) => /* @__PURE__ */ (0,
|
|
8026
|
-
|
|
8382
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react19.Text, { size: 24 }),
|
|
8383
|
+
input: ({ softRequired }) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8384
|
+
Textarea,
|
|
8027
8385
|
{
|
|
8028
|
-
className: (0,
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
|
|
8037
|
-
|
|
8038
|
-
|
|
8039
|
-
if (!value2) {
|
|
8040
|
-
onRemove();
|
|
8041
|
-
} else {
|
|
8042
|
-
onChange(value2);
|
|
8043
|
-
}
|
|
8044
|
-
},
|
|
8045
|
-
onEditCompleted: (value2) => {
|
|
8046
|
-
if (!value2) {
|
|
8047
|
-
onRemove();
|
|
8048
|
-
} else {
|
|
8049
|
-
onEditComplete(value2);
|
|
8050
|
-
}
|
|
8051
|
-
}
|
|
8386
|
+
className: (0, import_clsx42.default)("ring-0 border-0 outline-0 !px-0 p-0 m-0 shadow-none rounded-none", { "bg-surface-warning placeholder-warning": softRequired && !hasValue }),
|
|
8387
|
+
rows: 5,
|
|
8388
|
+
defaultStyle: false,
|
|
8389
|
+
value: value ?? "",
|
|
8390
|
+
readOnly,
|
|
8391
|
+
placeholder: `${translation("text")}...`,
|
|
8392
|
+
onChangeText: (value2) => {
|
|
8393
|
+
if (!value2) {
|
|
8394
|
+
onRemove();
|
|
8395
|
+
} else {
|
|
8396
|
+
onChange(value2);
|
|
8052
8397
|
}
|
|
8053
|
-
|
|
8398
|
+
},
|
|
8399
|
+
onEditCompleted: (value2) => {
|
|
8400
|
+
if (!value2) {
|
|
8401
|
+
onRemove();
|
|
8402
|
+
} else {
|
|
8403
|
+
onEditComplete(value2);
|
|
8404
|
+
}
|
|
8405
|
+
}
|
|
8054
8406
|
}
|
|
8055
8407
|
)
|
|
8056
8408
|
}
|
|
@@ -8058,12 +8410,12 @@ var TextProperty = ({
|
|
|
8058
8410
|
};
|
|
8059
8411
|
|
|
8060
8412
|
// src/components/table/FillerRowElement.tsx
|
|
8061
|
-
var
|
|
8062
|
-
var
|
|
8413
|
+
var import_clsx43 = require("clsx");
|
|
8414
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
8063
8415
|
var FillerRowElement = ({
|
|
8064
8416
|
className
|
|
8065
8417
|
}) => {
|
|
8066
|
-
return /* @__PURE__ */ (0,
|
|
8418
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: (0, import_clsx43.clsx)("flex flex-row items-center w-1/2 h-4 text-disabled-text font-bold", className), children: "-" });
|
|
8067
8419
|
};
|
|
8068
8420
|
|
|
8069
8421
|
// src/components/table/Filter.ts
|
|
@@ -8081,97 +8433,15 @@ var TableFilters = {
|
|
|
8081
8433
|
};
|
|
8082
8434
|
|
|
8083
8435
|
// src/components/table/Table.tsx
|
|
8084
|
-
var
|
|
8085
|
-
var
|
|
8436
|
+
var import_react32 = require("react");
|
|
8437
|
+
var import_clsx46 = __toESM(require("clsx"));
|
|
8086
8438
|
var import_react_table = require("@tanstack/react-table");
|
|
8087
8439
|
var import_react_custom_scrollbars_23 = require("react-custom-scrollbars-2");
|
|
8088
8440
|
|
|
8089
8441
|
// src/components/table/TableFilterButton.tsx
|
|
8090
|
-
var
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
var import_react26 = require("react");
|
|
8094
|
-
var import_clsx42 = __toESM(require("clsx"));
|
|
8095
|
-
|
|
8096
|
-
// src/util/PropsWithFunctionChildren.ts
|
|
8097
|
-
var resolve = (children, bag) => {
|
|
8098
|
-
if (typeof children === "function") {
|
|
8099
|
-
return children(bag);
|
|
8100
|
-
}
|
|
8101
|
-
return children ?? void 0;
|
|
8102
|
-
};
|
|
8103
|
-
var BagFunctionUtil = {
|
|
8104
|
-
resolve
|
|
8105
|
-
};
|
|
8106
|
-
|
|
8107
|
-
// src/components/user-action/Menu.tsx
|
|
8108
|
-
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
8109
|
-
var MenuItem = ({
|
|
8110
|
-
children,
|
|
8111
|
-
onClick,
|
|
8112
|
-
alignment = "left",
|
|
8113
|
-
isDisabled = false,
|
|
8114
|
-
className
|
|
8115
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8116
|
-
"div",
|
|
8117
|
-
{
|
|
8118
|
-
className: (0, import_clsx42.default)("block px-3 py-1.5 bg-menu-background first:rounded-t-lg last:rounded-b-lg text-sm font-semibold", {
|
|
8119
|
-
"text-right": alignment === "right",
|
|
8120
|
-
"text-left": alignment === "left",
|
|
8121
|
-
"text-disabled-text cursor-not-allowed": isDisabled,
|
|
8122
|
-
"text-menu-text hover:bg-primary/20": !isDisabled,
|
|
8123
|
-
"cursor-pointer": !!onClick
|
|
8124
|
-
}, className),
|
|
8125
|
-
onClick,
|
|
8126
|
-
children
|
|
8127
|
-
}
|
|
8128
|
-
);
|
|
8129
|
-
var Menu = ({
|
|
8130
|
-
trigger,
|
|
8131
|
-
children,
|
|
8132
|
-
alignment = "tl",
|
|
8133
|
-
showOnHover = false,
|
|
8134
|
-
menuClassName = ""
|
|
8135
|
-
}) => {
|
|
8136
|
-
const { isHovered: isOpen, setIsHovered: setIsOpen, handlers } = useHoverState({ isDisabled: !showOnHover });
|
|
8137
|
-
const triggerRef = (0, import_react26.useRef)(null);
|
|
8138
|
-
const menuRef = (0, import_react26.useRef)(null);
|
|
8139
|
-
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
8140
|
-
const bag = { isOpen, close: () => setIsOpen(false) };
|
|
8141
|
-
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
8142
|
-
"div",
|
|
8143
|
-
{
|
|
8144
|
-
className: "relative",
|
|
8145
|
-
...handlers,
|
|
8146
|
-
children: [
|
|
8147
|
-
trigger(() => setIsOpen(!isOpen), triggerRef),
|
|
8148
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8149
|
-
"div",
|
|
8150
|
-
{
|
|
8151
|
-
ref: menuRef,
|
|
8152
|
-
onClick: (e) => e.stopPropagation(),
|
|
8153
|
-
className: (0, import_clsx42.default)(
|
|
8154
|
-
"absolute top-full mt-1 min-w-40 rounded-lg bg-menu-background text-menu-text shadow-around-lg z-10",
|
|
8155
|
-
{
|
|
8156
|
-
"top-0": alignment[0] === "t",
|
|
8157
|
-
"bottom-0": alignment[0] === "b",
|
|
8158
|
-
"left-0": alignment[1] === "l",
|
|
8159
|
-
"right-0": alignment[1] === "r",
|
|
8160
|
-
"hidden": !isOpen
|
|
8161
|
-
},
|
|
8162
|
-
menuClassName
|
|
8163
|
-
),
|
|
8164
|
-
children: BagFunctionUtil.resolve(children, bag)
|
|
8165
|
-
}
|
|
8166
|
-
)
|
|
8167
|
-
]
|
|
8168
|
-
}
|
|
8169
|
-
);
|
|
8170
|
-
};
|
|
8171
|
-
|
|
8172
|
-
// src/components/table/TableFilterButton.tsx
|
|
8173
|
-
var import_react27 = require("react");
|
|
8174
|
-
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
8442
|
+
var import_lucide_react20 = require("lucide-react");
|
|
8443
|
+
var import_react30 = require("react");
|
|
8444
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
8175
8445
|
var defaultTableFilterTranslation = {
|
|
8176
8446
|
en: {
|
|
8177
8447
|
filter: "Filter",
|
|
@@ -8196,17 +8466,17 @@ var TableFilterButton = ({
|
|
|
8196
8466
|
}) => {
|
|
8197
8467
|
const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
|
|
8198
8468
|
const columnFilterValue = column.getFilterValue();
|
|
8199
|
-
const [filterValue, setFilterValue] = (0,
|
|
8469
|
+
const [filterValue, setFilterValue] = (0, import_react30.useState)(columnFilterValue);
|
|
8200
8470
|
const hasFilter = !!filterValue;
|
|
8201
|
-
(0,
|
|
8471
|
+
(0, import_react30.useEffect)(() => {
|
|
8202
8472
|
setFilterValue(columnFilterValue);
|
|
8203
8473
|
}, [columnFilterValue]);
|
|
8204
|
-
return /* @__PURE__ */ (0,
|
|
8474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8205
8475
|
Menu,
|
|
8206
8476
|
{
|
|
8207
|
-
trigger: (
|
|
8208
|
-
/* @__PURE__ */ (0,
|
|
8209
|
-
hasFilter && /* @__PURE__ */ (0,
|
|
8477
|
+
trigger: ({ toggleOpen }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { ref, className: "relative", children: [
|
|
8478
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(IconButton, { color: "neutral", size: "tiny", onClick: toggleOpen, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react20.FilterIcon, {}) }),
|
|
8479
|
+
hasFilter && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8210
8480
|
"div",
|
|
8211
8481
|
{
|
|
8212
8482
|
className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-primary pointer-events-none",
|
|
@@ -8214,9 +8484,9 @@ var TableFilterButton = ({
|
|
|
8214
8484
|
}
|
|
8215
8485
|
)
|
|
8216
8486
|
] }),
|
|
8217
|
-
children: ({ close }) => /* @__PURE__ */ (0,
|
|
8218
|
-
/* @__PURE__ */ (0,
|
|
8219
|
-
filterType === "text" && /* @__PURE__ */ (0,
|
|
8487
|
+
children: ({ close }) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex-col-1 p-2 items-start font-normal text-menu-text", children: [
|
|
8488
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("h4", { className: "textstyle-title-sm", children: translation("filter") }),
|
|
8489
|
+
filterType === "text" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8220
8490
|
Input,
|
|
8221
8491
|
{
|
|
8222
8492
|
value: filterValue ?? "",
|
|
@@ -8226,8 +8496,8 @@ var TableFilterButton = ({
|
|
|
8226
8496
|
className: "h-10"
|
|
8227
8497
|
}
|
|
8228
8498
|
),
|
|
8229
|
-
filterType === "range" && /* @__PURE__ */ (0,
|
|
8230
|
-
/* @__PURE__ */ (0,
|
|
8499
|
+
filterType === "range" && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex-row-2 items-center", children: [
|
|
8500
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8231
8501
|
Input,
|
|
8232
8502
|
{
|
|
8233
8503
|
value: filterValue?.[0] ?? "",
|
|
@@ -8240,8 +8510,8 @@ var TableFilterButton = ({
|
|
|
8240
8510
|
className: "h-10 input-indicator-hidden w-40"
|
|
8241
8511
|
}
|
|
8242
8512
|
),
|
|
8243
|
-
/* @__PURE__ */ (0,
|
|
8244
|
-
/* @__PURE__ */ (0,
|
|
8513
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-bold", children: "-" }),
|
|
8514
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8245
8515
|
Input,
|
|
8246
8516
|
{
|
|
8247
8517
|
value: filterValue?.[1] ?? "",
|
|
@@ -8255,8 +8525,8 @@ var TableFilterButton = ({
|
|
|
8255
8525
|
}
|
|
8256
8526
|
)
|
|
8257
8527
|
] }),
|
|
8258
|
-
filterType === "dateRange" && /* @__PURE__ */ (0,
|
|
8259
|
-
/* @__PURE__ */ (0,
|
|
8528
|
+
filterType === "dateRange" && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
8529
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8260
8530
|
Input,
|
|
8261
8531
|
{
|
|
8262
8532
|
value: filterValue?.[0] ? filterValue?.[0].toISOString().slice(0, 16) : "",
|
|
@@ -8269,7 +8539,7 @@ var TableFilterButton = ({
|
|
|
8269
8539
|
className: "h-10 w-50"
|
|
8270
8540
|
}
|
|
8271
8541
|
),
|
|
8272
|
-
/* @__PURE__ */ (0,
|
|
8542
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8273
8543
|
Input,
|
|
8274
8544
|
{
|
|
8275
8545
|
value: filterValue?.[1] ? filterValue?.[1].toISOString().slice(0, 16) : "",
|
|
@@ -8283,12 +8553,12 @@ var TableFilterButton = ({
|
|
|
8283
8553
|
}
|
|
8284
8554
|
)
|
|
8285
8555
|
] }),
|
|
8286
|
-
/* @__PURE__ */ (0,
|
|
8287
|
-
hasFilter && /* @__PURE__ */ (0,
|
|
8556
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex-row-2 justify-end w-full", children: [
|
|
8557
|
+
hasFilter && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SolidButton, { color: "negative", size: "small", onClick: () => {
|
|
8288
8558
|
column.setFilterValue(void 0);
|
|
8289
8559
|
close();
|
|
8290
8560
|
}, children: translation("remove") }),
|
|
8291
|
-
/* @__PURE__ */ (0,
|
|
8561
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SolidButton, { size: "small", onClick: () => {
|
|
8292
8562
|
column.setFilterValue(filterValue);
|
|
8293
8563
|
close();
|
|
8294
8564
|
}, children: translation("apply") })
|
|
@@ -8299,9 +8569,9 @@ var TableFilterButton = ({
|
|
|
8299
8569
|
};
|
|
8300
8570
|
|
|
8301
8571
|
// src/components/table/TableSortButton.tsx
|
|
8302
|
-
var
|
|
8303
|
-
var
|
|
8304
|
-
var
|
|
8572
|
+
var import_lucide_react21 = require("lucide-react");
|
|
8573
|
+
var import_clsx44 = __toESM(require("clsx"));
|
|
8574
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
8305
8575
|
var TableSortButton = ({
|
|
8306
8576
|
sortDirection,
|
|
8307
8577
|
invert = false,
|
|
@@ -8309,20 +8579,20 @@ var TableSortButton = ({
|
|
|
8309
8579
|
className,
|
|
8310
8580
|
...buttonProps
|
|
8311
8581
|
}) => {
|
|
8312
|
-
let icon = /* @__PURE__ */ (0,
|
|
8582
|
+
let icon = /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react21.ChevronsUpDown, { className: "w-full h-full" });
|
|
8313
8583
|
if (sortDirection) {
|
|
8314
8584
|
let usedSortDirection = sortDirection;
|
|
8315
8585
|
if (invert) {
|
|
8316
8586
|
usedSortDirection = usedSortDirection === "desc" ? "asc" : "desc";
|
|
8317
8587
|
}
|
|
8318
|
-
icon = usedSortDirection === "asc" ? /* @__PURE__ */ (0,
|
|
8588
|
+
icon = usedSortDirection === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react21.ChevronUp, { className: "w-full h-full" }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react21.ChevronDown, { className: "w-full h-full" });
|
|
8319
8589
|
}
|
|
8320
|
-
return /* @__PURE__ */ (0,
|
|
8590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8321
8591
|
IconButton,
|
|
8322
8592
|
{
|
|
8323
8593
|
size: "tiny",
|
|
8324
8594
|
color,
|
|
8325
|
-
className: (0,
|
|
8595
|
+
className: (0, import_clsx44.default)(className),
|
|
8326
8596
|
...buttonProps,
|
|
8327
8597
|
children: icon
|
|
8328
8598
|
}
|
|
@@ -8330,9 +8600,9 @@ var TableSortButton = ({
|
|
|
8330
8600
|
};
|
|
8331
8601
|
|
|
8332
8602
|
// src/hooks/useResizeCallbackWrapper.ts
|
|
8333
|
-
var
|
|
8603
|
+
var import_react31 = require("react");
|
|
8334
8604
|
var useResizeCallbackWrapper = (callback) => {
|
|
8335
|
-
(0,
|
|
8605
|
+
(0, import_react31.useEffect)(() => {
|
|
8336
8606
|
window.addEventListener("resize", callback);
|
|
8337
8607
|
return () => {
|
|
8338
8608
|
window.removeEventListener("resize", callback);
|
|
@@ -8341,17 +8611,17 @@ var useResizeCallbackWrapper = (callback) => {
|
|
|
8341
8611
|
};
|
|
8342
8612
|
|
|
8343
8613
|
// src/components/table/TableCell.tsx
|
|
8344
|
-
var
|
|
8345
|
-
var
|
|
8614
|
+
var import_clsx45 = require("clsx");
|
|
8615
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
8346
8616
|
var TableCell = ({
|
|
8347
8617
|
children,
|
|
8348
8618
|
className
|
|
8349
8619
|
}) => {
|
|
8350
|
-
return /* @__PURE__ */ (0,
|
|
8620
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: (0, import_clsx45.clsx)("block max-w-full overflow-ellipsis truncate", className), children });
|
|
8351
8621
|
};
|
|
8352
8622
|
|
|
8353
8623
|
// src/components/table/Table.tsx
|
|
8354
|
-
var
|
|
8624
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
8355
8625
|
var Table = ({
|
|
8356
8626
|
data,
|
|
8357
8627
|
fillerRow,
|
|
@@ -8364,22 +8634,22 @@ var Table = ({
|
|
|
8364
8634
|
columns,
|
|
8365
8635
|
...tableOptions
|
|
8366
8636
|
}) => {
|
|
8367
|
-
const ref = (0,
|
|
8368
|
-
const tableRef = (0,
|
|
8369
|
-
const [columnSizing, setColumnSizing] = (0,
|
|
8637
|
+
const ref = (0, import_react32.useRef)(null);
|
|
8638
|
+
const tableRef = (0, import_react32.useRef)(null);
|
|
8639
|
+
const [columnSizing, setColumnSizing] = (0, import_react32.useState)(columns.reduce((previousValue, currentValue) => {
|
|
8370
8640
|
return {
|
|
8371
8641
|
...previousValue,
|
|
8372
8642
|
[currentValue.id]: currentValue.minSize ?? defaultColumn.minSize
|
|
8373
8643
|
};
|
|
8374
8644
|
}, {}));
|
|
8375
|
-
const [columnSizingInfo, setColumnSizingInfo] = (0,
|
|
8376
|
-
const [pagination, setPagination] = (0,
|
|
8645
|
+
const [columnSizingInfo, setColumnSizingInfo] = (0, import_react32.useState)();
|
|
8646
|
+
const [pagination, setPagination] = (0, import_react32.useState)({
|
|
8377
8647
|
pageSize: 10,
|
|
8378
8648
|
pageIndex: 0,
|
|
8379
8649
|
...initialState?.pagination
|
|
8380
8650
|
});
|
|
8381
|
-
const [columnFilters, setColumnFilters] = (0,
|
|
8382
|
-
const computedColumnMinWidths = (0,
|
|
8651
|
+
const [columnFilters, setColumnFilters] = (0, import_react32.useState)(initialState?.columnFilters);
|
|
8652
|
+
const computedColumnMinWidths = (0, import_react32.useMemo)(() => {
|
|
8383
8653
|
return columns.reduce((previousValue, column) => {
|
|
8384
8654
|
return {
|
|
8385
8655
|
...previousValue,
|
|
@@ -8388,7 +8658,7 @@ var Table = ({
|
|
|
8388
8658
|
};
|
|
8389
8659
|
}, {});
|
|
8390
8660
|
}, [columns, defaultColumn]);
|
|
8391
|
-
const computedColumnMaxWidths = (0,
|
|
8661
|
+
const computedColumnMaxWidths = (0, import_react32.useMemo)(() => {
|
|
8392
8662
|
return columns.reduce((previousValue, column) => {
|
|
8393
8663
|
return {
|
|
8394
8664
|
...previousValue,
|
|
@@ -8396,12 +8666,12 @@ var Table = ({
|
|
|
8396
8666
|
};
|
|
8397
8667
|
}, {});
|
|
8398
8668
|
}, [columns, defaultColumn]);
|
|
8399
|
-
const tableMinWidth = (0,
|
|
8669
|
+
const tableMinWidth = (0, import_react32.useMemo)(() => {
|
|
8400
8670
|
return columns.reduce((sum, column) => {
|
|
8401
8671
|
return sum + computedColumnMinWidths[column.id];
|
|
8402
8672
|
}, 0);
|
|
8403
8673
|
}, [columns, computedColumnMinWidths]);
|
|
8404
|
-
const updateColumnSizes = (0,
|
|
8674
|
+
const updateColumnSizes = (0, import_react32.useMemo)(() => {
|
|
8405
8675
|
return (previous) => {
|
|
8406
8676
|
const updateSizing = {
|
|
8407
8677
|
...columnSizing,
|
|
@@ -8470,7 +8740,7 @@ var Table = ({
|
|
|
8470
8740
|
minSize: 60,
|
|
8471
8741
|
maxSize: 700,
|
|
8472
8742
|
cell: ({ cell }) => {
|
|
8473
|
-
return /* @__PURE__ */ (0,
|
|
8743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(TableCell, { children: cell.getValue() });
|
|
8474
8744
|
},
|
|
8475
8745
|
...defaultColumn
|
|
8476
8746
|
},
|
|
@@ -8518,18 +8788,18 @@ var Table = ({
|
|
|
8518
8788
|
columnResizeMode: "onChange",
|
|
8519
8789
|
...tableOptions
|
|
8520
8790
|
});
|
|
8521
|
-
const [hasInitializedSizing, setHasInitializedSizing] = (0,
|
|
8522
|
-
(0,
|
|
8791
|
+
const [hasInitializedSizing, setHasInitializedSizing] = (0, import_react32.useState)(false);
|
|
8792
|
+
(0, import_react32.useEffect)(() => {
|
|
8523
8793
|
if (!hasInitializedSizing && ref.current) {
|
|
8524
8794
|
setHasInitializedSizing(true);
|
|
8525
8795
|
table.setColumnSizing(updateColumnSizes(columnSizing));
|
|
8526
8796
|
}
|
|
8527
8797
|
}, [columnSizing, hasInitializedSizing]);
|
|
8528
|
-
useResizeCallbackWrapper((0,
|
|
8798
|
+
useResizeCallbackWrapper((0, import_react32.useCallback)(() => {
|
|
8529
8799
|
table.setColumnSizing(updateColumnSizes);
|
|
8530
8800
|
}, [updateColumnSizes]));
|
|
8531
8801
|
const pageCount = table.getPageCount();
|
|
8532
|
-
(0,
|
|
8802
|
+
(0, import_react32.useEffect)(() => {
|
|
8533
8803
|
const totalPages = pageCount;
|
|
8534
8804
|
if (totalPages === 0) {
|
|
8535
8805
|
if (pagination.pageIndex !== 0) {
|
|
@@ -8545,103 +8815,111 @@ var Table = ({
|
|
|
8545
8815
|
}));
|
|
8546
8816
|
}
|
|
8547
8817
|
}, [data, pageCount, pagination.pageSize, pagination.pageIndex]);
|
|
8548
|
-
const columnSizeVars = (0,
|
|
8818
|
+
const columnSizeVars = (0, import_react32.useMemo)(() => {
|
|
8549
8819
|
const headers = table.getFlatHeaders();
|
|
8550
8820
|
const colSizes = {};
|
|
8551
8821
|
for (let i = 0; i < headers.length; i++) {
|
|
8552
8822
|
const header = headers[i];
|
|
8553
|
-
colSizes[`--header-${header.id}-size`] = header.getSize();
|
|
8554
|
-
colSizes[`--col-${header.column.id}-size`] = header.column.getSize();
|
|
8823
|
+
colSizes[`--header-${header.id}-size`] = Math.floor(header.getSize());
|
|
8824
|
+
colSizes[`--col-${header.column.id}-size`] = Math.floor(header.column.getSize());
|
|
8555
8825
|
}
|
|
8556
8826
|
return colSizes;
|
|
8557
8827
|
}, [table.getState().columnSizingInfo, table.getState().columnSizing]);
|
|
8558
|
-
return /* @__PURE__ */ (0,
|
|
8559
|
-
/* @__PURE__ */ (0,
|
|
8560
|
-
|
|
8828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { ref, className: (0, import_clsx46.default)("flex-col-4", className), children: [
|
|
8829
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8830
|
+
import_react_custom_scrollbars_23.Scrollbars,
|
|
8561
8831
|
{
|
|
8562
|
-
|
|
8563
|
-
|
|
8564
|
-
|
|
8565
|
-
|
|
8566
|
-
|
|
8567
|
-
|
|
8568
|
-
|
|
8569
|
-
|
|
8570
|
-
|
|
8571
|
-
|
|
8572
|
-
|
|
8573
|
-
width: `calc(var(--header-${header?.id}-size) * 1px)`,
|
|
8574
|
-
minWidth: header.column.columnDef.minSize,
|
|
8575
|
-
maxWidth: header.column.columnDef.maxSize
|
|
8576
|
-
}
|
|
8832
|
+
autoHeight: true,
|
|
8833
|
+
autoHeightMax: tableRef.current?.offsetHeight + 2,
|
|
8834
|
+
autoHide: true,
|
|
8835
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
8836
|
+
"table",
|
|
8837
|
+
{
|
|
8838
|
+
ref: tableRef,
|
|
8839
|
+
className: (0, import_clsx46.default)(tableClassName),
|
|
8840
|
+
style: {
|
|
8841
|
+
...columnSizeVars,
|
|
8842
|
+
width: Math.floor(Math.max(table.getTotalSize() - columns.length, ref.current?.offsetWidth ?? table.getTotalSize()))
|
|
8577
8843
|
},
|
|
8578
|
-
|
|
8579
|
-
|
|
8580
|
-
|
|
8581
|
-
|
|
8582
|
-
|
|
8583
|
-
|
|
8584
|
-
|
|
8585
|
-
|
|
8586
|
-
|
|
8587
|
-
|
|
8588
|
-
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
{
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8615
|
-
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8844
|
+
children: [
|
|
8845
|
+
table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("colgroup", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8846
|
+
"col",
|
|
8847
|
+
{
|
|
8848
|
+
style: {
|
|
8849
|
+
width: `calc(var(--header-${header?.id}-size) * 1px)`,
|
|
8850
|
+
minWidth: header.column.columnDef.minSize,
|
|
8851
|
+
maxWidth: header.column.columnDef.maxSize
|
|
8852
|
+
}
|
|
8853
|
+
},
|
|
8854
|
+
header.id
|
|
8855
|
+
)) }, headerGroup.id)),
|
|
8856
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("thead", { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("tr", { className: table.options.meta?.headerRowClassName, children: headerGroup.headers.map((header) => {
|
|
8857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
8858
|
+
"th",
|
|
8859
|
+
{
|
|
8860
|
+
colSpan: header.colSpan,
|
|
8861
|
+
className: (0, import_clsx46.default)("relative group", header.column.columnDef.meta?.className),
|
|
8862
|
+
children: [
|
|
8863
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "flex-row-2 w-full", children: header.isPlaceholder ? null : /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex-row-1 items-center", children: [
|
|
8864
|
+
header.column.getCanSort() && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8865
|
+
TableSortButton,
|
|
8866
|
+
{
|
|
8867
|
+
sortDirection: header.column.getIsSorted(),
|
|
8868
|
+
onClick: () => header.column.toggleSorting()
|
|
8869
|
+
}
|
|
8870
|
+
),
|
|
8871
|
+
header.column.getCanFilter() && header.column.columnDef.meta?.filterType ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8872
|
+
TableFilterButton,
|
|
8873
|
+
{
|
|
8874
|
+
column: header.column,
|
|
8875
|
+
filterType: header.column.columnDef.meta.filterType
|
|
8876
|
+
}
|
|
8877
|
+
) : null,
|
|
8878
|
+
(0, import_react_table.flexRender)(
|
|
8879
|
+
header.column.columnDef.header,
|
|
8880
|
+
header.getContext()
|
|
8881
|
+
)
|
|
8882
|
+
] }) }),
|
|
8883
|
+
header.column.getCanResize() && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8884
|
+
"div",
|
|
8885
|
+
{
|
|
8886
|
+
onMouseDown: header.getResizeHandler(),
|
|
8887
|
+
onTouchStart: header.getResizeHandler(),
|
|
8888
|
+
onDoubleClick: () => {
|
|
8889
|
+
header.column.resetSize();
|
|
8890
|
+
},
|
|
8891
|
+
className: "table-resize-indicator w-2 rounded bg-primary cursor-col-resize select-none touch-none opacity-0 group-hover:opacity-100 transition-opacity",
|
|
8892
|
+
style: {
|
|
8893
|
+
opacity: !columnSizingInfo?.columnSizingStart ? void 0 : columnSizingInfo?.columnSizingStart?.findIndex(([id, _]) => id === header.column.id) !== -1 ? 1 : columnSizingInfo?.columnSizingStart?.length !== 0 ? 0 : void 0
|
|
8894
|
+
}
|
|
8895
|
+
}
|
|
8896
|
+
)
|
|
8897
|
+
]
|
|
8898
|
+
},
|
|
8899
|
+
header.id
|
|
8900
|
+
);
|
|
8901
|
+
}) }, headerGroup.id)) }),
|
|
8902
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("tbody", { children: [
|
|
8903
|
+
table.getRowModel().rows.map((row) => {
|
|
8904
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("tr", { onClick: () => onRowClick(row, table), className: table.options.meta?.bodyRowClassName, children: row.getVisibleCells().map((cell) => {
|
|
8905
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("td", { children: (0, import_react_table.flexRender)(
|
|
8906
|
+
cell.column.columnDef.cell,
|
|
8907
|
+
cell.getContext()
|
|
8908
|
+
) }, cell.id);
|
|
8909
|
+
}) }, row.id);
|
|
8910
|
+
}),
|
|
8911
|
+
range(table.getState().pagination.pageSize - table.getRowModel().rows.length, { allowEmptyRange: true }).map((row, index) => {
|
|
8912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("tr", { children: columns.map((column) => {
|
|
8913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("td", { children: fillerRow ? fillerRow(column.id, table) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(FillerRowElement, {}) }, column.id);
|
|
8914
|
+
}) }, "filler-row-" + index);
|
|
8915
|
+
})
|
|
8916
|
+
] })
|
|
8917
|
+
]
|
|
8918
|
+
}
|
|
8919
|
+
)
|
|
8642
8920
|
}
|
|
8643
|
-
)
|
|
8644
|
-
/* @__PURE__ */ (0,
|
|
8921
|
+
),
|
|
8922
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "flex-row-2 justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8645
8923
|
Pagination,
|
|
8646
8924
|
{
|
|
8647
8925
|
pageIndex: table.getState().pagination.pageIndex,
|
|
@@ -8652,11 +8930,11 @@ var Table = ({
|
|
|
8652
8930
|
] });
|
|
8653
8931
|
};
|
|
8654
8932
|
var TableUncontrolled = ({ data, ...props }) => {
|
|
8655
|
-
const [usedDate, setUsedData] = (0,
|
|
8656
|
-
(0,
|
|
8933
|
+
const [usedDate, setUsedData] = (0, import_react32.useState)(data);
|
|
8934
|
+
(0, import_react32.useEffect)(() => {
|
|
8657
8935
|
setUsedData(data);
|
|
8658
8936
|
}, [data]);
|
|
8659
|
-
return /* @__PURE__ */ (0,
|
|
8937
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8660
8938
|
Table,
|
|
8661
8939
|
{
|
|
8662
8940
|
...props,
|
|
@@ -8675,12 +8953,12 @@ var TableWithSelection = ({
|
|
|
8675
8953
|
meta,
|
|
8676
8954
|
...props
|
|
8677
8955
|
}) => {
|
|
8678
|
-
const columnsWithSelection = (0,
|
|
8956
|
+
const columnsWithSelection = (0, import_react32.useMemo)(() => {
|
|
8679
8957
|
return [
|
|
8680
8958
|
{
|
|
8681
8959
|
id: selectionRowId,
|
|
8682
8960
|
header: ({ table }) => {
|
|
8683
|
-
return /* @__PURE__ */ (0,
|
|
8961
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8684
8962
|
Checkbox,
|
|
8685
8963
|
{
|
|
8686
8964
|
checked: table.getIsSomeRowsSelected() ? "indeterminate" : table.getIsAllRowsSelected(),
|
|
@@ -8693,7 +8971,7 @@ var TableWithSelection = ({
|
|
|
8693
8971
|
);
|
|
8694
8972
|
},
|
|
8695
8973
|
cell: ({ row }) => {
|
|
8696
|
-
return /* @__PURE__ */ (0,
|
|
8974
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8697
8975
|
Checkbox,
|
|
8698
8976
|
{
|
|
8699
8977
|
disabled: !row.getCanSelect(),
|
|
@@ -8712,15 +8990,15 @@ var TableWithSelection = ({
|
|
|
8712
8990
|
...columns
|
|
8713
8991
|
];
|
|
8714
8992
|
}, [columns, selectionRowId]);
|
|
8715
|
-
return /* @__PURE__ */ (0,
|
|
8993
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8716
8994
|
Table,
|
|
8717
8995
|
{
|
|
8718
8996
|
columns: columnsWithSelection,
|
|
8719
8997
|
fillerRow: (columnId, table) => {
|
|
8720
8998
|
if (columnId === selectionRowId) {
|
|
8721
|
-
return /* @__PURE__ */ (0,
|
|
8999
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Checkbox, { checked: false, disabled: true, containerClassName: "max-w-6" });
|
|
8722
9000
|
}
|
|
8723
|
-
return fillerRow ? fillerRow(columnId, table) : /* @__PURE__ */ (0,
|
|
9001
|
+
return fillerRow ? fillerRow(columnId, table) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(FillerRowElement, {});
|
|
8724
9002
|
},
|
|
8725
9003
|
state: {
|
|
8726
9004
|
rowSelection,
|
|
@@ -8734,7 +9012,7 @@ var TableWithSelection = ({
|
|
|
8734
9012
|
},
|
|
8735
9013
|
meta: {
|
|
8736
9014
|
...meta,
|
|
8737
|
-
bodyRowClassName: (0,
|
|
9015
|
+
bodyRowClassName: (0, import_clsx46.default)(
|
|
8738
9016
|
{ "cursor-pointer": !disableClickRowClickSelection },
|
|
8739
9017
|
meta?.bodyRowClassName
|
|
8740
9018
|
)
|
|
@@ -8745,8 +9023,8 @@ var TableWithSelection = ({
|
|
|
8745
9023
|
};
|
|
8746
9024
|
|
|
8747
9025
|
// src/components/user-action/CopyToClipboardWrapper.tsx
|
|
8748
|
-
var
|
|
8749
|
-
var
|
|
9026
|
+
var import_react33 = require("react");
|
|
9027
|
+
var import_clsx47 = require("clsx");
|
|
8750
9028
|
|
|
8751
9029
|
// src/util/writeToClipboard.ts
|
|
8752
9030
|
var writeToClipboard = (text) => {
|
|
@@ -8754,8 +9032,8 @@ var writeToClipboard = (text) => {
|
|
|
8754
9032
|
};
|
|
8755
9033
|
|
|
8756
9034
|
// src/components/user-action/CopyToClipboardWrapper.tsx
|
|
8757
|
-
var
|
|
8758
|
-
var
|
|
9035
|
+
var import_lucide_react22 = require("lucide-react");
|
|
9036
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
8759
9037
|
var CopyToClipboardWrapper = ({
|
|
8760
9038
|
children,
|
|
8761
9039
|
textToCopy,
|
|
@@ -8765,8 +9043,8 @@ var CopyToClipboardWrapper = ({
|
|
|
8765
9043
|
zIndex = 10
|
|
8766
9044
|
}) => {
|
|
8767
9045
|
const translation = useTranslation([formTranslation]);
|
|
8768
|
-
const [isShowingIndication, setIsShowingIndication] = (0,
|
|
8769
|
-
const [isShowingConfirmation, setIsShowingConfirmation] = (0,
|
|
9046
|
+
const [isShowingIndication, setIsShowingIndication] = (0, import_react33.useState)(false);
|
|
9047
|
+
const [isShowingConfirmation, setIsShowingConfirmation] = (0, import_react33.useState)(false);
|
|
8770
9048
|
const positionClasses = {
|
|
8771
9049
|
top: `bottom-full left-1/2 -translate-x-1/2 mb-[6px]`,
|
|
8772
9050
|
bottom: `top-full left-1/2 -translate-x-1/2 mt-[6px]`,
|
|
@@ -8786,10 +9064,10 @@ var CopyToClipboardWrapper = ({
|
|
|
8786
9064
|
left: { borderWidth: `${triangleSize}px 0 ${triangleSize}px ${triangleSize}px` },
|
|
8787
9065
|
right: { borderWidth: `${triangleSize}px ${triangleSize}px ${triangleSize}px 0` }
|
|
8788
9066
|
};
|
|
8789
|
-
return /* @__PURE__ */ (0,
|
|
9067
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8790
9068
|
"div",
|
|
8791
9069
|
{
|
|
8792
|
-
className: (0,
|
|
9070
|
+
className: (0, import_clsx47.clsx)("relative inline-block cursor-copy", containerClassName),
|
|
8793
9071
|
onMouseEnter: () => {
|
|
8794
9072
|
setIsShowingIndication(true);
|
|
8795
9073
|
},
|
|
@@ -8804,10 +9082,10 @@ var CopyToClipboardWrapper = ({
|
|
|
8804
9082
|
},
|
|
8805
9083
|
children: [
|
|
8806
9084
|
children,
|
|
8807
|
-
/* @__PURE__ */ (0,
|
|
9085
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8808
9086
|
"div",
|
|
8809
9087
|
{
|
|
8810
|
-
className: (0,
|
|
9088
|
+
className: (0, import_clsx47.clsx)(
|
|
8811
9089
|
`absolute text-xs font-semibold text-tooltip-text px-2 py-1 rounded whitespace-nowrap
|
|
8812
9090
|
shadow-around-md bg-tooltip-background cursor-default pointer-events-none`,
|
|
8813
9091
|
"transition-opacity duration-200",
|
|
@@ -8819,18 +9097,18 @@ var CopyToClipboardWrapper = ({
|
|
|
8819
9097
|
opacity: isShowingIndication || isShowingConfirmation ? 1 : 0
|
|
8820
9098
|
},
|
|
8821
9099
|
children: [
|
|
8822
|
-
isShowingConfirmation && /* @__PURE__ */ (0,
|
|
8823
|
-
/* @__PURE__ */ (0,
|
|
9100
|
+
isShowingConfirmation && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex-row-1", children: [
|
|
9101
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react22.CheckIcon, { size: 16, className: "text-positive" }),
|
|
8824
9102
|
translation("copied")
|
|
8825
9103
|
] }),
|
|
8826
|
-
isShowingIndication && /* @__PURE__ */ (0,
|
|
8827
|
-
/* @__PURE__ */ (0,
|
|
9104
|
+
isShowingIndication && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex-row-1 text-description", children: [
|
|
9105
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react22.Copy, { size: 16 }),
|
|
8828
9106
|
translation("clickToCopy")
|
|
8829
9107
|
] }),
|
|
8830
|
-
/* @__PURE__ */ (0,
|
|
9108
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8831
9109
|
"div",
|
|
8832
9110
|
{
|
|
8833
|
-
className: (0,
|
|
9111
|
+
className: (0, import_clsx47.clsx)(`absolute w-0 h-0`, triangleClasses[position]),
|
|
8834
9112
|
style: { ...triangleStyle[position], zIndex: zIndex + 1 }
|
|
8835
9113
|
}
|
|
8836
9114
|
)
|
|
@@ -8843,8 +9121,8 @@ var CopyToClipboardWrapper = ({
|
|
|
8843
9121
|
};
|
|
8844
9122
|
|
|
8845
9123
|
// src/components/user-action/DateAndTimePicker.tsx
|
|
8846
|
-
var
|
|
8847
|
-
var
|
|
9124
|
+
var import_clsx48 = __toESM(require("clsx"));
|
|
9125
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
8848
9126
|
var DateTimePicker = ({
|
|
8849
9127
|
overwriteTranslation,
|
|
8850
9128
|
value = /* @__PURE__ */ new Date(),
|
|
@@ -8863,7 +9141,7 @@ var DateTimePicker = ({
|
|
|
8863
9141
|
let dateDisplay;
|
|
8864
9142
|
let timeDisplay;
|
|
8865
9143
|
if (useDate) {
|
|
8866
|
-
dateDisplay = /* @__PURE__ */ (0,
|
|
9144
|
+
dateDisplay = /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8867
9145
|
DatePicker,
|
|
8868
9146
|
{
|
|
8869
9147
|
...datePickerProps,
|
|
@@ -8877,25 +9155,25 @@ var DateTimePicker = ({
|
|
|
8877
9155
|
);
|
|
8878
9156
|
}
|
|
8879
9157
|
if (useTime) {
|
|
8880
|
-
timeDisplay = /* @__PURE__ */ (0,
|
|
9158
|
+
timeDisplay = /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8881
9159
|
TimePicker,
|
|
8882
9160
|
{
|
|
8883
9161
|
...timePickerProps,
|
|
8884
|
-
className: (0,
|
|
9162
|
+
className: (0, import_clsx48.default)("h-full", { "justify-between w-full": mode === "time" }),
|
|
8885
9163
|
maxHeight: 250,
|
|
8886
9164
|
time: value,
|
|
8887
9165
|
onChange
|
|
8888
9166
|
}
|
|
8889
9167
|
);
|
|
8890
9168
|
}
|
|
8891
|
-
return /* @__PURE__ */ (0,
|
|
8892
|
-
/* @__PURE__ */ (0,
|
|
9169
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex-col-2 w-fit", children: [
|
|
9170
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex-row-4", children: [
|
|
8893
9171
|
dateDisplay,
|
|
8894
9172
|
timeDisplay
|
|
8895
9173
|
] }),
|
|
8896
|
-
/* @__PURE__ */ (0,
|
|
8897
|
-
/* @__PURE__ */ (0,
|
|
8898
|
-
/* @__PURE__ */ (0,
|
|
9174
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex-row-2 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex-row-2 mt-1", children: [
|
|
9175
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(SolidButton, { size: "medium", color: "negative", onClick: onRemove, children: translation("clear") }),
|
|
9176
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8899
9177
|
SolidButton,
|
|
8900
9178
|
{
|
|
8901
9179
|
size: "medium",
|
|
@@ -8908,9 +9186,9 @@ var DateTimePicker = ({
|
|
|
8908
9186
|
};
|
|
8909
9187
|
|
|
8910
9188
|
// src/components/user-action/ScrollPicker.tsx
|
|
8911
|
-
var
|
|
8912
|
-
var
|
|
8913
|
-
var
|
|
9189
|
+
var import_react34 = require("react");
|
|
9190
|
+
var import_clsx49 = __toESM(require("clsx"));
|
|
9191
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
8914
9192
|
var up = 1;
|
|
8915
9193
|
var down = -1;
|
|
8916
9194
|
var ScrollPicker = ({
|
|
@@ -8929,7 +9207,7 @@ var ScrollPicker = ({
|
|
|
8929
9207
|
transition,
|
|
8930
9208
|
items,
|
|
8931
9209
|
lastTimeStamp
|
|
8932
|
-
}, setAnimation] = (0,
|
|
9210
|
+
}, setAnimation] = (0, import_react34.useState)({
|
|
8933
9211
|
targetIndex: selectedIndex,
|
|
8934
9212
|
currentIndex: disabled ? selectedIndex : 0,
|
|
8935
9213
|
velocity: 0,
|
|
@@ -8945,7 +9223,7 @@ var ScrollPicker = ({
|
|
|
8945
9223
|
const itemHeight = 40;
|
|
8946
9224
|
const distance = 8;
|
|
8947
9225
|
const containerHeight = itemHeight * (itemsShownCount - 2) + distance * (itemsShownCount - 2 + 1);
|
|
8948
|
-
const getDirection = (0,
|
|
9226
|
+
const getDirection = (0, import_react34.useCallback)((targetIndex, currentIndex2, transition2, length) => {
|
|
8949
9227
|
if (targetIndex === currentIndex2) {
|
|
8950
9228
|
return transition2 > 0 ? up : down;
|
|
8951
9229
|
}
|
|
@@ -8955,7 +9233,7 @@ var ScrollPicker = ({
|
|
|
8955
9233
|
}
|
|
8956
9234
|
return distanceForward >= length / 2 ? down : up;
|
|
8957
9235
|
}, []);
|
|
8958
|
-
const animate = (0,
|
|
9236
|
+
const animate = (0, import_react34.useCallback)((timestamp, startTime) => {
|
|
8959
9237
|
setAnimation((prevState) => {
|
|
8960
9238
|
const {
|
|
8961
9239
|
targetIndex,
|
|
@@ -9028,7 +9306,7 @@ var ScrollPicker = ({
|
|
|
9028
9306
|
};
|
|
9029
9307
|
});
|
|
9030
9308
|
}, [disabled, getDirection, onChange]);
|
|
9031
|
-
(0,
|
|
9309
|
+
(0, import_react34.useEffect)(() => {
|
|
9032
9310
|
requestAnimationFrame((timestamp) => animate(timestamp, lastTimeStamp));
|
|
9033
9311
|
});
|
|
9034
9312
|
const opacity = (transition2, index, itemsCount) => {
|
|
@@ -9049,7 +9327,7 @@ var ScrollPicker = ({
|
|
|
9049
9327
|
}
|
|
9050
9328
|
return clamp(1 - opacityValue / max);
|
|
9051
9329
|
};
|
|
9052
|
-
return /* @__PURE__ */ (0,
|
|
9330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
9053
9331
|
"div",
|
|
9054
9332
|
{
|
|
9055
9333
|
className: "relative overflow-hidden",
|
|
@@ -9059,27 +9337,27 @@ var ScrollPicker = ({
|
|
|
9059
9337
|
setAnimation(({ velocity, ...animationData }) => ({ ...animationData, velocity: velocity + event.deltaY }));
|
|
9060
9338
|
}
|
|
9061
9339
|
},
|
|
9062
|
-
children: /* @__PURE__ */ (0,
|
|
9063
|
-
/* @__PURE__ */ (0,
|
|
9340
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "absolute top-1/2 -translate-y-1/2 -translate-x-1/2 left-1/2", children: [
|
|
9341
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
9064
9342
|
"div",
|
|
9065
9343
|
{
|
|
9066
9344
|
className: "absolute z-[1] top-1/2 -translate-y-1/2 -translate-x-1/2 left-1/2 w-full min-w-[40px] border border-divider/30 border-y-2 border-x-0 ",
|
|
9067
9345
|
style: { height: `${itemHeight}px` }
|
|
9068
9346
|
}
|
|
9069
9347
|
),
|
|
9070
|
-
/* @__PURE__ */ (0,
|
|
9348
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
9071
9349
|
"div",
|
|
9072
9350
|
{
|
|
9073
|
-
className: "col select-none",
|
|
9351
|
+
className: "flex-col-2 select-none",
|
|
9074
9352
|
style: {
|
|
9075
9353
|
transform: `translateY(${-transition * (distance + itemHeight)}px)`,
|
|
9076
9354
|
columnGap: `${distance}px`
|
|
9077
9355
|
},
|
|
9078
|
-
children: shownItems.map(({ name, index }, arrayIndex) => /* @__PURE__ */ (0,
|
|
9356
|
+
children: shownItems.map(({ name, index }, arrayIndex) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
9079
9357
|
"div",
|
|
9080
9358
|
{
|
|
9081
|
-
className: (0,
|
|
9082
|
-
`col items-center justify-center rounded-md`,
|
|
9359
|
+
className: (0, import_clsx49.default)(
|
|
9360
|
+
`flex-col-2 items-center justify-center rounded-md`,
|
|
9083
9361
|
{
|
|
9084
9362
|
"text-primary font-bold": currentIndex === index,
|
|
9085
9363
|
"text-on-background": currentIndex === index,
|
|
@@ -9105,10 +9383,10 @@ var ScrollPicker = ({
|
|
|
9105
9383
|
};
|
|
9106
9384
|
|
|
9107
9385
|
// src/components/user-action/ToggleableInput.tsx
|
|
9108
|
-
var
|
|
9109
|
-
var
|
|
9110
|
-
var
|
|
9111
|
-
var
|
|
9386
|
+
var import_react35 = require("react");
|
|
9387
|
+
var import_lucide_react23 = require("lucide-react");
|
|
9388
|
+
var import_clsx50 = __toESM(require("clsx"));
|
|
9389
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
9112
9390
|
var ToggleableInput = ({
|
|
9113
9391
|
type = "text",
|
|
9114
9392
|
value,
|
|
@@ -9123,26 +9401,26 @@ var ToggleableInput = ({
|
|
|
9123
9401
|
saveDelayOptions,
|
|
9124
9402
|
...restProps
|
|
9125
9403
|
}) => {
|
|
9126
|
-
const [isEditing, setIsEditing] = (0,
|
|
9404
|
+
const [isEditing, setIsEditing] = (0, import_react35.useState)(initialState !== "display");
|
|
9127
9405
|
const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
|
|
9128
|
-
const ref = (0,
|
|
9406
|
+
const ref = (0, import_react35.useRef)(null);
|
|
9129
9407
|
const onEditCompletedWrapper = (text) => {
|
|
9130
9408
|
onEditCompleted(text);
|
|
9131
9409
|
clearTimer();
|
|
9132
9410
|
};
|
|
9133
|
-
(0,
|
|
9411
|
+
(0, import_react35.useEffect)(() => {
|
|
9134
9412
|
if (isEditing) {
|
|
9135
9413
|
ref.current?.focus();
|
|
9136
9414
|
}
|
|
9137
9415
|
}, [isEditing]);
|
|
9138
|
-
return /* @__PURE__ */ (0,
|
|
9139
|
-
/* @__PURE__ */ (0,
|
|
9416
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { children: [
|
|
9417
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
9140
9418
|
"div",
|
|
9141
9419
|
{
|
|
9142
|
-
className: (0,
|
|
9420
|
+
className: (0, import_clsx50.default)("flex-row-2 items-center w-full overflow-hidden", { "cursor-pointer": !isEditing }),
|
|
9143
9421
|
onClick: () => !isEditing ? setIsEditing(!isEditing) : void 0,
|
|
9144
9422
|
children: [
|
|
9145
|
-
/* @__PURE__ */ (0,
|
|
9423
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: (0, import_clsx50.default)("flex-row-2 overflow-hidden", { "flex-1": isEditing }), children: isEditing ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
9146
9424
|
"input",
|
|
9147
9425
|
{
|
|
9148
9426
|
ref,
|
|
@@ -9170,16 +9448,16 @@ var ToggleableInput = ({
|
|
|
9170
9448
|
onEditCompletedWrapper(value);
|
|
9171
9449
|
}
|
|
9172
9450
|
},
|
|
9173
|
-
className: (0,
|
|
9451
|
+
className: (0, import_clsx50.default)(`w-full border-none rounded-none ring-0 outline-0 text-inherit bg-inherit shadow-transparent decoration-primary p-0 underline-offset-4`, {
|
|
9174
9452
|
underline: isEditing
|
|
9175
9453
|
}, labelClassName),
|
|
9176
9454
|
onFocus: (event) => event.target.select()
|
|
9177
9455
|
}
|
|
9178
|
-
) : /* @__PURE__ */ (0,
|
|
9179
|
-
/* @__PURE__ */ (0,
|
|
9180
|
-
|
|
9456
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: (0, import_clsx50.default)("max-w-xs break-words overflow-hidden", labelClassName), children: value }) }),
|
|
9457
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
9458
|
+
import_lucide_react23.Pencil,
|
|
9181
9459
|
{
|
|
9182
|
-
className: (0,
|
|
9460
|
+
className: (0, import_clsx50.default)(`cursor-pointer`, { "text-transparent": isEditing }),
|
|
9183
9461
|
size,
|
|
9184
9462
|
style: { minWidth: `${size}px` }
|
|
9185
9463
|
}
|
|
@@ -9187,7 +9465,7 @@ var ToggleableInput = ({
|
|
|
9187
9465
|
]
|
|
9188
9466
|
}
|
|
9189
9467
|
),
|
|
9190
|
-
isEditing && disclaimer && /* @__PURE__ */ (0,
|
|
9468
|
+
isEditing && disclaimer && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("label", { className: "text-negative", children: disclaimer })
|
|
9191
9469
|
] });
|
|
9192
9470
|
};
|
|
9193
9471
|
var ToggleableInputUncontrolled = ({
|
|
@@ -9195,11 +9473,11 @@ var ToggleableInputUncontrolled = ({
|
|
|
9195
9473
|
onChangeText = noop,
|
|
9196
9474
|
...restProps
|
|
9197
9475
|
}) => {
|
|
9198
|
-
const [value, setValue] = (0,
|
|
9199
|
-
(0,
|
|
9476
|
+
const [value, setValue] = (0, import_react35.useState)(initialValue);
|
|
9477
|
+
(0, import_react35.useEffect)(() => {
|
|
9200
9478
|
setValue(initialValue);
|
|
9201
9479
|
}, [initialValue]);
|
|
9202
|
-
return /* @__PURE__ */ (0,
|
|
9480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
9203
9481
|
ToggleableInput,
|
|
9204
9482
|
{
|
|
9205
9483
|
value,
|
|
@@ -9213,9 +9491,9 @@ var ToggleableInputUncontrolled = ({
|
|
|
9213
9491
|
};
|
|
9214
9492
|
|
|
9215
9493
|
// src/hooks/useRerender.ts
|
|
9216
|
-
var
|
|
9494
|
+
var import_react36 = require("react");
|
|
9217
9495
|
var useRerender = () => {
|
|
9218
|
-
return (0,
|
|
9496
|
+
return (0, import_react36.useReducer)(() => ({}), {})[1];
|
|
9219
9497
|
};
|
|
9220
9498
|
|
|
9221
9499
|
// src/util/builder.ts
|
|
@@ -9295,6 +9573,7 @@ function resolveSetState(action, prev) {
|
|
|
9295
9573
|
ErrorComponent,
|
|
9296
9574
|
Expandable,
|
|
9297
9575
|
ExpandableUncontrolled,
|
|
9576
|
+
ExpansionIcon,
|
|
9298
9577
|
FAQSection,
|
|
9299
9578
|
FillerRowElement,
|
|
9300
9579
|
FormInput,
|
|
@@ -9335,8 +9614,10 @@ function resolveSetState(action, prev) {
|
|
|
9335
9614
|
Ring,
|
|
9336
9615
|
RingWave,
|
|
9337
9616
|
ScrollPicker,
|
|
9617
|
+
SearchBar,
|
|
9338
9618
|
SearchableList,
|
|
9339
9619
|
Select,
|
|
9620
|
+
SelectTile,
|
|
9340
9621
|
SelectUncontrolled,
|
|
9341
9622
|
SessionStorageService,
|
|
9342
9623
|
SimpleSearch,
|
|
@@ -9413,6 +9694,7 @@ function resolveSetState(action, prev) {
|
|
|
9413
9694
|
useLocalStorage,
|
|
9414
9695
|
useLocale,
|
|
9415
9696
|
useOutsideClick,
|
|
9697
|
+
usePopoverPosition,
|
|
9416
9698
|
useRerender,
|
|
9417
9699
|
useResizeCallbackWrapper,
|
|
9418
9700
|
useSearch,
|