@helpwave/hightide 0.1.18 → 0.1.20
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 +67 -39
- package/dist/components/date/DatePicker.js.map +1 -1
- package/dist/components/date/DatePicker.mjs +56 -28
- 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 +48 -20
- package/dist/components/date/YearMonthPicker.js.map +1 -1
- package/dist/components/date/YearMonthPicker.mjs +46 -18
- 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 +10 -1
- package/dist/components/layout-and-navigation/Expandable.d.ts +10 -1
- package/dist/components/layout-and-navigation/Expandable.js +38 -10
- package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
- package/dist/components/layout-and-navigation/Expandable.mjs +38 -11
- package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -1
- package/dist/components/layout-and-navigation/FAQSection.js +36 -12
- package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
- package/dist/components/layout-and-navigation/FAQSection.mjs +38 -14
- 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 -9
- package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
- package/dist/components/layout-and-navigation/Pagination.mjs +79 -6
- package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
- package/dist/components/layout-and-navigation/SearchableList.js +127 -25
- package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
- package/dist/components/layout-and-navigation/SearchableList.mjs +126 -24
- 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.d.mts +5 -10
- package/dist/components/loading-states/LoadingAndErrorComponent.d.ts +5 -10
- package/dist/components/loading-states/LoadingAndErrorComponent.js +14 -327
- package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.mjs +15 -318
- 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/loading-states/LoadingContainer.d.mts +8 -0
- package/dist/components/loading-states/LoadingContainer.d.ts +8 -0
- package/dist/components/loading-states/LoadingContainer.js +34 -0
- package/dist/components/loading-states/LoadingContainer.js.map +1 -0
- package/dist/components/loading-states/LoadingContainer.mjs +10 -0
- package/dist/components/loading-states/LoadingContainer.mjs.map +1 -0
- 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 -28
- package/dist/components/modals/InputModal.js.map +1 -1
- package/dist/components/modals/InputModal.mjs +18 -14
- package/dist/components/modals/InputModal.mjs.map +1 -1
- package/dist/components/modals/LanguageModal.js +729 -434
- package/dist/components/modals/LanguageModal.js.map +1 -1
- package/dist/components/modals/LanguageModal.mjs +729 -430
- package/dist/components/modals/LanguageModal.mjs.map +1 -1
- package/dist/components/modals/ThemeModal.js +733 -438
- package/dist/components/modals/ThemeModal.js.map +1 -1
- package/dist/components/modals/ThemeModal.mjs +732 -433
- 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 -41
- package/dist/components/properties/DateProperty.js.map +1 -1
- package/dist/components/properties/DateProperty.mjs +114 -37
- 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 +916 -463
- package/dist/components/properties/MultiSelectProperty.js.map +1 -1
- package/dist/components/properties/MultiSelectProperty.mjs +921 -464
- package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
- package/dist/components/properties/NumberProperty.js +101 -18
- package/dist/components/properties/NumberProperty.js.map +1 -1
- package/dist/components/properties/NumberProperty.mjs +101 -18
- 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 +683 -243
- package/dist/components/properties/SelectProperty.js.map +1 -1
- package/dist/components/properties/SelectProperty.mjs +687 -243
- package/dist/components/properties/SelectProperty.mjs.map +1 -1
- package/dist/components/properties/TextProperty.js +133 -46
- package/dist/components/properties/TextProperty.js.map +1 -1
- package/dist/components/properties/TextProperty.mjs +133 -46
- package/dist/components/properties/TextProperty.mjs.map +1 -1
- package/dist/components/table/Table.js +285 -185
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/Table.mjs +270 -166
- package/dist/components/table/Table.mjs.map +1 -1
- package/dist/components/table/TableFilterButton.js +179 -78
- package/dist/components/table/TableFilterButton.js.map +1 -1
- package/dist/components/table/TableFilterButton.mjs +160 -55
- 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 +81 -49
- package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
- package/dist/components/user-action/DateAndTimePicker.mjs +67 -35
- package/dist/components/user-action/DateAndTimePicker.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 +797 -375
- package/dist/components/user-action/MultiSelect.js.map +1 -1
- package/dist/components/user-action/MultiSelect.mjs +782 -356
- 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 +765 -355
- package/dist/components/user-action/Select.js.map +1 -1
- package/dist/components/user-action/Select.mjs +762 -349
- 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 -3
- package/dist/components/user-action/Textarea.js.map +1 -1
- package/dist/components/user-action/Textarea.mjs +13 -3
- package/dist/components/user-action/Textarea.mjs.map +1 -1
- package/dist/components/user-action/ToggleableInput.js +2 -2
- package/dist/components/user-action/ToggleableInput.js.map +1 -1
- package/dist/components/user-action/ToggleableInput.mjs +2 -2
- package/dist/components/user-action/ToggleableInput.mjs.map +1 -1
- package/dist/css/globals.css +284 -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 +96 -1
- package/dist/css/uncompiled/utitlity/general.css +16 -0
- 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 +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.js +1197 -902
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1048 -754
- 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.mjs
CHANGED
|
@@ -2894,7 +2894,7 @@ var Tile = ({
|
|
|
2894
2894
|
description,
|
|
2895
2895
|
onClick,
|
|
2896
2896
|
isSelected = false,
|
|
2897
|
-
|
|
2897
|
+
disabled = false,
|
|
2898
2898
|
prefix,
|
|
2899
2899
|
suffix,
|
|
2900
2900
|
normalClassName = "hover:bg-primary/40 cursor-pointer",
|
|
@@ -2906,18 +2906,18 @@ var Tile = ({
|
|
|
2906
2906
|
"div",
|
|
2907
2907
|
{
|
|
2908
2908
|
className: clsx(
|
|
2909
|
-
"row
|
|
2909
|
+
"flex-row-2 w-full items-center",
|
|
2910
2910
|
{
|
|
2911
|
-
[normalClassName]: !!onClick && !
|
|
2912
|
-
[selectedClassName]: isSelected && !
|
|
2913
|
-
[disabledClassName]:
|
|
2911
|
+
[normalClassName]: !!onClick && !disabled,
|
|
2912
|
+
[selectedClassName]: isSelected && !disabled,
|
|
2913
|
+
[disabledClassName]: disabled
|
|
2914
2914
|
},
|
|
2915
2915
|
className
|
|
2916
2916
|
),
|
|
2917
|
-
onClick:
|
|
2917
|
+
onClick: disabled ? void 0 : onClick,
|
|
2918
2918
|
children: [
|
|
2919
2919
|
prefix,
|
|
2920
|
-
/* @__PURE__ */ jsxs("div", { className: "col
|
|
2920
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-col-0 w-full", children: [
|
|
2921
2921
|
/* @__PURE__ */ jsx("h4", { className: clsx(title.className ?? "textstyle-title-normal"), children: title.value }),
|
|
2922
2922
|
!!description && /* @__PURE__ */ jsx("span", { className: clsx(description.className ?? "textstyle-description"), children: description.value })
|
|
2923
2923
|
] }),
|
|
@@ -3454,6 +3454,7 @@ var getWeeksForCalenderMonth = (date, weekStart, weeks = 6) => {
|
|
|
3454
3454
|
import clsx8 from "clsx";
|
|
3455
3455
|
|
|
3456
3456
|
// src/components/user-action/Button.tsx
|
|
3457
|
+
import { forwardRef } from "react";
|
|
3457
3458
|
import clsx4 from "clsx";
|
|
3458
3459
|
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
3459
3460
|
var ButtonColorUtil = {
|
|
@@ -3479,7 +3480,7 @@ var ButtonUtil = {
|
|
|
3479
3480
|
paddingMapping,
|
|
3480
3481
|
iconPaddingMapping
|
|
3481
3482
|
};
|
|
3482
|
-
var SolidButton = ({
|
|
3483
|
+
var SolidButton = forwardRef(function SolidButton2({
|
|
3483
3484
|
children,
|
|
3484
3485
|
disabled = false,
|
|
3485
3486
|
color = "primary",
|
|
@@ -3489,7 +3490,7 @@ var SolidButton = ({
|
|
|
3489
3490
|
onClick,
|
|
3490
3491
|
className,
|
|
3491
3492
|
...restProps
|
|
3492
|
-
})
|
|
3493
|
+
}, ref) {
|
|
3493
3494
|
const colorClasses = {
|
|
3494
3495
|
primary: "bg-button-solid-primary-background text-button-solid-primary-text",
|
|
3495
3496
|
secondary: "bg-button-solid-secondary-background text-button-solid-secondary-text",
|
|
@@ -3511,8 +3512,9 @@ var SolidButton = ({
|
|
|
3511
3512
|
return /* @__PURE__ */ jsxs3(
|
|
3512
3513
|
"button",
|
|
3513
3514
|
{
|
|
3514
|
-
|
|
3515
|
-
|
|
3515
|
+
ref,
|
|
3516
|
+
onClick,
|
|
3517
|
+
disabled,
|
|
3516
3518
|
className: clsx4(
|
|
3517
3519
|
{
|
|
3518
3520
|
"text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
|
|
@@ -3547,7 +3549,7 @@ var SolidButton = ({
|
|
|
3547
3549
|
]
|
|
3548
3550
|
}
|
|
3549
3551
|
);
|
|
3550
|
-
};
|
|
3552
|
+
});
|
|
3551
3553
|
var OutlineButton = ({
|
|
3552
3554
|
children,
|
|
3553
3555
|
disabled = false,
|
|
@@ -3568,8 +3570,8 @@ var OutlineButton = ({
|
|
|
3568
3570
|
return /* @__PURE__ */ jsxs3(
|
|
3569
3571
|
"button",
|
|
3570
3572
|
{
|
|
3571
|
-
onClick
|
|
3572
|
-
disabled
|
|
3573
|
+
onClick,
|
|
3574
|
+
disabled,
|
|
3573
3575
|
className: clsx4(
|
|
3574
3576
|
{
|
|
3575
3577
|
"text-disabled-text border-disabled-outline cursor-not-allowed": disabled,
|
|
@@ -3629,8 +3631,8 @@ var TextButton = ({
|
|
|
3629
3631
|
return /* @__PURE__ */ jsxs3(
|
|
3630
3632
|
"button",
|
|
3631
3633
|
{
|
|
3632
|
-
onClick
|
|
3633
|
-
disabled
|
|
3634
|
+
onClick,
|
|
3635
|
+
disabled,
|
|
3634
3636
|
className: clsx4(
|
|
3635
3637
|
{
|
|
3636
3638
|
"text-disabled-text cursor-not-allowed": disabled,
|
|
@@ -3671,7 +3673,6 @@ var IconButton = ({
|
|
|
3671
3673
|
disabled = false,
|
|
3672
3674
|
color = "primary",
|
|
3673
3675
|
size = "medium",
|
|
3674
|
-
onClick,
|
|
3675
3676
|
className,
|
|
3676
3677
|
...restProps
|
|
3677
3678
|
}) => {
|
|
@@ -3688,8 +3689,7 @@ var IconButton = ({
|
|
|
3688
3689
|
return /* @__PURE__ */ jsx5(
|
|
3689
3690
|
"button",
|
|
3690
3691
|
{
|
|
3691
|
-
|
|
3692
|
-
disabled: disabled || onClick === void 0,
|
|
3692
|
+
disabled,
|
|
3693
3693
|
className: clsx4(
|
|
3694
3694
|
{
|
|
3695
3695
|
"text-disabled-text bg-disabled-background cursor-not-allowed": disabled && color !== "transparent",
|
|
@@ -3712,12 +3712,23 @@ import { Scrollbars } from "react-custom-scrollbars-2";
|
|
|
3712
3712
|
import clsx6 from "clsx";
|
|
3713
3713
|
|
|
3714
3714
|
// src/components/layout-and-navigation/Expandable.tsx
|
|
3715
|
-
import { forwardRef, useEffect as useEffect3, useState as useState3 } from "react";
|
|
3716
|
-
import { ChevronDown
|
|
3715
|
+
import { forwardRef as forwardRef2, useCallback as useCallback2, useEffect as useEffect3, useState as useState3 } from "react";
|
|
3716
|
+
import { ChevronDown } from "lucide-react";
|
|
3717
3717
|
import clsx5 from "clsx";
|
|
3718
3718
|
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
3719
|
-
var
|
|
3720
|
-
|
|
3719
|
+
var ExpansionIcon = ({ isExpanded, className }) => {
|
|
3720
|
+
return /* @__PURE__ */ jsx6(
|
|
3721
|
+
ChevronDown,
|
|
3722
|
+
{
|
|
3723
|
+
className: clsx5(
|
|
3724
|
+
"min-w-6 w-6 min-h-6 h-6 transition-transform duration-200 ease-in-out",
|
|
3725
|
+
{ "rotate-180": isExpanded },
|
|
3726
|
+
className
|
|
3727
|
+
)
|
|
3728
|
+
}
|
|
3729
|
+
);
|
|
3730
|
+
};
|
|
3731
|
+
var Expandable = forwardRef2(function Expandable2({
|
|
3721
3732
|
children,
|
|
3722
3733
|
label,
|
|
3723
3734
|
icon,
|
|
@@ -3727,24 +3738,26 @@ var Expandable = forwardRef(function Expandable2({
|
|
|
3727
3738
|
disabled = false,
|
|
3728
3739
|
className,
|
|
3729
3740
|
headerClassName,
|
|
3730
|
-
contentClassName
|
|
3741
|
+
contentClassName,
|
|
3742
|
+
contentExpandedClassName
|
|
3731
3743
|
}, ref) {
|
|
3732
|
-
|
|
3744
|
+
const defaultIcon = useCallback2((expanded) => /* @__PURE__ */ jsx6(ExpansionIcon, { isExpanded: expanded }), []);
|
|
3745
|
+
icon ??= defaultIcon;
|
|
3733
3746
|
return /* @__PURE__ */ jsxs4(
|
|
3734
3747
|
"div",
|
|
3735
3748
|
{
|
|
3736
3749
|
ref,
|
|
3737
|
-
className: clsx5("col
|
|
3750
|
+
className: clsx5("flex-col-0 bg-surface text-on-surface group rounded-lg shadow-sm", { "cursor-pointer": !clickOnlyOnHeader && !disabled }, className),
|
|
3738
3751
|
onClick: () => !clickOnlyOnHeader && !disabled && onChange(!isExpanded),
|
|
3739
3752
|
children: [
|
|
3740
3753
|
/* @__PURE__ */ jsxs4(
|
|
3741
3754
|
"div",
|
|
3742
3755
|
{
|
|
3743
3756
|
className: clsx5(
|
|
3744
|
-
"row py-2 px-4 rounded-lg justify-between items-center bg-surface text-on-surface select-none",
|
|
3757
|
+
"flex-row-2 py-2 px-4 rounded-lg justify-between items-center bg-surface text-on-surface select-none",
|
|
3745
3758
|
{
|
|
3746
|
-
"group-hover:brightness-
|
|
3747
|
-
"hover:brightness-
|
|
3759
|
+
"group-hover:brightness-97": !isExpanded,
|
|
3760
|
+
"hover:brightness-97": isExpanded && !disabled,
|
|
3748
3761
|
"cursor-pointer": clickOnlyOnHeader && !disabled
|
|
3749
3762
|
},
|
|
3750
3763
|
headerClassName
|
|
@@ -3756,12 +3769,25 @@ var Expandable = forwardRef(function Expandable2({
|
|
|
3756
3769
|
]
|
|
3757
3770
|
}
|
|
3758
3771
|
),
|
|
3759
|
-
|
|
3772
|
+
/* @__PURE__ */ jsx6(
|
|
3773
|
+
"div",
|
|
3774
|
+
{
|
|
3775
|
+
className: clsx5(
|
|
3776
|
+
"flex-col-2 px-4 transition-all duration-300 ease-in-out",
|
|
3777
|
+
{
|
|
3778
|
+
[clsx5("max-h-96 opacity-100 pb-2 overflow-y-auto", contentExpandedClassName)]: isExpanded,
|
|
3779
|
+
"max-h-0 opacity-0 overflow-hidden": !isExpanded
|
|
3780
|
+
},
|
|
3781
|
+
contentClassName
|
|
3782
|
+
),
|
|
3783
|
+
children
|
|
3784
|
+
}
|
|
3785
|
+
)
|
|
3760
3786
|
]
|
|
3761
3787
|
}
|
|
3762
3788
|
);
|
|
3763
3789
|
});
|
|
3764
|
-
var ExpandableUncontrolled =
|
|
3790
|
+
var ExpandableUncontrolled = forwardRef2(function ExpandableUncontrolled2({
|
|
3765
3791
|
isExpanded,
|
|
3766
3792
|
onChange = noop,
|
|
3767
3793
|
...props
|
|
@@ -3813,7 +3839,7 @@ var YearMonthPicker = ({
|
|
|
3813
3839
|
return null;
|
|
3814
3840
|
}
|
|
3815
3841
|
const years = range([start.getFullYear(), end.getFullYear()], { exclusiveEnd: false });
|
|
3816
|
-
return /* @__PURE__ */ jsx7("div", { className: clsx6("col select-none", className), children: /* @__PURE__ */ jsx7(Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx7("div", { className: "col
|
|
3842
|
+
return /* @__PURE__ */ jsx7("div", { className: clsx6("flex-col-0 select-none", className), children: /* @__PURE__ */ jsx7(Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx7("div", { className: "flex-col-1 mr-3", children: years.map((year) => {
|
|
3817
3843
|
const selectedYear = displayedYearMonth.getFullYear() === year;
|
|
3818
3844
|
return /* @__PURE__ */ jsx7(
|
|
3819
3845
|
ExpandableUncontrolled,
|
|
@@ -3822,7 +3848,7 @@ var YearMonthPicker = ({
|
|
|
3822
3848
|
label: /* @__PURE__ */ jsx7("span", { className: clsx6({ "text-primary font-bold": selectedYear }), children: year }),
|
|
3823
3849
|
isExpanded: showValueOpen && selectedYear,
|
|
3824
3850
|
contentClassName: "gap-y-1",
|
|
3825
|
-
children: equalSizeGroups([...monthsList], 3).map((monthList, index) => /* @__PURE__ */ jsx7("div", { className: "row
|
|
3851
|
+
children: equalSizeGroups([...monthsList], 3).map((monthList, index) => /* @__PURE__ */ jsx7("div", { className: "flex-row-1", children: monthList.map((month) => {
|
|
3826
3852
|
const monthIndex = monthsList.indexOf(month);
|
|
3827
3853
|
const newDate = new Date(year, monthIndex);
|
|
3828
3854
|
const selectedMonth = selectedYear && monthIndex === displayedYearMonth.getMonth();
|
|
@@ -3888,9 +3914,9 @@ var DayPicker = ({
|
|
|
3888
3914
|
const locale = useLocale();
|
|
3889
3915
|
const month = displayedMonth.getMonth();
|
|
3890
3916
|
const weeks = getWeeksForCalenderMonth(displayedMonth, weekStart);
|
|
3891
|
-
return /* @__PURE__ */ jsxs5("div", { className: clsx7("col
|
|
3892
|
-
/* @__PURE__ */ jsx8("div", { className: "row text-center", children: weeks[0].map((weekDay, index) => /* @__PURE__ */ jsx8("div", { className: "flex-1 font-semibold", children: new Intl.DateTimeFormat(locale, { weekday: "long" }).format(weekDay).substring(0, 2) }, index)) }),
|
|
3893
|
-
weeks.map((week, index) => /* @__PURE__ */ jsx8("div", { className: "row text-center", children: week.map((date) => {
|
|
3917
|
+
return /* @__PURE__ */ jsxs5("div", { className: clsx7("flex-col-1 min-w-[220px] select-none", className), children: [
|
|
3918
|
+
/* @__PURE__ */ jsx8("div", { className: "flex-row-2 text-center", children: weeks[0].map((weekDay, index) => /* @__PURE__ */ jsx8("div", { className: "flex-1 font-semibold", children: new Intl.DateTimeFormat(locale, { weekday: "long" }).format(weekDay).substring(0, 2) }, index)) }),
|
|
3919
|
+
weeks.map((week, index) => /* @__PURE__ */ jsx8("div", { className: "flex-row-2 text-center", children: week.map((date) => {
|
|
3894
3920
|
const isSelected = !!selected && equalDate(selected, date);
|
|
3895
3921
|
const isToday = equalDate(/* @__PURE__ */ new Date(), date);
|
|
3896
3922
|
const isSameMonth = date.getMonth() === month;
|
|
@@ -4038,12 +4064,12 @@ var DatePicker = ({
|
|
|
4038
4064
|
useEffect6(() => {
|
|
4039
4065
|
setDisplayedMonth(value);
|
|
4040
4066
|
}, [value]);
|
|
4041
|
-
return /* @__PURE__ */ jsxs6("div", { className: clsx8("col
|
|
4042
|
-
/* @__PURE__ */ jsxs6("div", { className: "row items-center justify-between h-7", children: [
|
|
4067
|
+
return /* @__PURE__ */ jsxs6("div", { className: clsx8("flex-col-4", className), children: [
|
|
4068
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex-row-2 items-center justify-between h-7", children: [
|
|
4043
4069
|
/* @__PURE__ */ jsxs6(
|
|
4044
4070
|
TextButton,
|
|
4045
4071
|
{
|
|
4046
|
-
className: clsx8("row
|
|
4072
|
+
className: clsx8("flex-row-1 items-center cursor-pointer select-none", {
|
|
4047
4073
|
"text-disabled-text": displayMode !== "day"
|
|
4048
4074
|
}),
|
|
4049
4075
|
onClick: () => setDisplayMode(displayMode === "day" ? "yearMonth" : "day"),
|
|
@@ -4053,7 +4079,7 @@ var DatePicker = ({
|
|
|
4053
4079
|
]
|
|
4054
4080
|
}
|
|
4055
4081
|
),
|
|
4056
|
-
displayMode === "day" && /* @__PURE__ */ jsxs6("div", { className: "row justify-end", children: [
|
|
4082
|
+
displayMode === "day" && /* @__PURE__ */ jsxs6("div", { className: "flex-row-2 justify-end", children: [
|
|
4057
4083
|
/* @__PURE__ */ jsx9(
|
|
4058
4084
|
SolidButton,
|
|
4059
4085
|
{
|
|
@@ -4267,8 +4293,8 @@ var TimePicker = ({
|
|
|
4267
4293
|
transformer(newDate);
|
|
4268
4294
|
onChange(newDate);
|
|
4269
4295
|
};
|
|
4270
|
-
return /* @__PURE__ */ jsxs7("div", { className: clsx9("row
|
|
4271
|
-
/* @__PURE__ */ jsx11(Scrollbars2, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx11("div", { className: "col
|
|
4296
|
+
return /* @__PURE__ */ jsxs7("div", { className: clsx9("flex-row-2 w-fit min-w-[150px] select-none", className), children: [
|
|
4297
|
+
/* @__PURE__ */ jsx11(Scrollbars2, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx11("div", { className: "flex-col-1 h-full", children: hours.map((hour) => {
|
|
4272
4298
|
const currentHour = hour === time.getHours() - (!is24HourFormat && isPM ? 12 : 0);
|
|
4273
4299
|
return /* @__PURE__ */ jsx11(
|
|
4274
4300
|
"button",
|
|
@@ -4281,7 +4307,7 @@ var TimePicker = ({
|
|
|
4281
4307
|
hour
|
|
4282
4308
|
);
|
|
4283
4309
|
}) }) }),
|
|
4284
|
-
/* @__PURE__ */ jsx11(Scrollbars2, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx11("div", { className: "col
|
|
4310
|
+
/* @__PURE__ */ jsx11(Scrollbars2, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx11("div", { className: "flex-col-1 h-full", children: minutes.map((minute) => {
|
|
4285
4311
|
const currentMinute = minute === closestMinute;
|
|
4286
4312
|
return /* @__PURE__ */ jsx11(
|
|
4287
4313
|
"button",
|
|
@@ -4294,7 +4320,7 @@ var TimePicker = ({
|
|
|
4294
4320
|
minute + minuteIncrement
|
|
4295
4321
|
);
|
|
4296
4322
|
}) }) }),
|
|
4297
|
-
!is24HourFormat && /* @__PURE__ */ jsxs7("div", { className: "col
|
|
4323
|
+
!is24HourFormat && /* @__PURE__ */ jsxs7("div", { className: "flex-col-1", children: [
|
|
4298
4324
|
/* @__PURE__ */ jsx11(
|
|
4299
4325
|
"button",
|
|
4300
4326
|
{
|
|
@@ -4458,6 +4484,7 @@ import { X } from "lucide-react";
|
|
|
4458
4484
|
// src/localization/defaults/form.ts
|
|
4459
4485
|
var formTranslation = {
|
|
4460
4486
|
en: {
|
|
4487
|
+
add: "Add",
|
|
4461
4488
|
all: "All",
|
|
4462
4489
|
apply: "Apply",
|
|
4463
4490
|
back: "Back",
|
|
@@ -4470,6 +4497,7 @@ var formTranslation = {
|
|
|
4470
4497
|
confirm: "Confirm",
|
|
4471
4498
|
copy: "Copy",
|
|
4472
4499
|
copied: "Copied",
|
|
4500
|
+
create: "Create",
|
|
4473
4501
|
decline: "Decline",
|
|
4474
4502
|
delete: "Delete",
|
|
4475
4503
|
discard: "Discard",
|
|
@@ -4512,6 +4540,7 @@ var formTranslation = {
|
|
|
4512
4540
|
yes: "Yes"
|
|
4513
4541
|
},
|
|
4514
4542
|
de: {
|
|
4543
|
+
add: "Hinzuf\xFCgen",
|
|
4515
4544
|
all: "Alle",
|
|
4516
4545
|
apply: "Anwenden",
|
|
4517
4546
|
back: "Zur\xFCck",
|
|
@@ -4524,6 +4553,7 @@ var formTranslation = {
|
|
|
4524
4553
|
confirm: "Best\xE4tigen",
|
|
4525
4554
|
copy: "Kopieren",
|
|
4526
4555
|
copied: "Kopiert",
|
|
4556
|
+
create: "Erstellen",
|
|
4527
4557
|
decline: "Ablehnen",
|
|
4528
4558
|
delete: "L\xF6schen",
|
|
4529
4559
|
discard: "Verwerfen",
|
|
@@ -4585,7 +4615,7 @@ var Overlay = ({
|
|
|
4585
4615
|
/* @__PURE__ */ jsx13(
|
|
4586
4616
|
"div",
|
|
4587
4617
|
{
|
|
4588
|
-
className: clsx11("fixed inset-0 h-screen w-screen bg-
|
|
4618
|
+
className: clsx11("fixed inset-0 h-screen w-screen bg-overlay-shadow", backgroundClassName),
|
|
4589
4619
|
onClick: onBackgroundClick
|
|
4590
4620
|
}
|
|
4591
4621
|
),
|
|
@@ -4613,7 +4643,7 @@ var OverlayHeader = ({
|
|
|
4613
4643
|
}) => {
|
|
4614
4644
|
const translation = useTranslation([defaultModalHeaderTranslation], overwriteTranslation);
|
|
4615
4645
|
const hasTitleRow = !!title || !!titleText || !!onClose;
|
|
4616
|
-
const titleRow = /* @__PURE__ */ jsxs9("div", { className: "row justify-between items-start
|
|
4646
|
+
const titleRow = /* @__PURE__ */ jsxs9("div", { className: "flex-row-8 justify-between items-start", children: [
|
|
4617
4647
|
title ?? /* @__PURE__ */ jsx13(
|
|
4618
4648
|
"h2",
|
|
4619
4649
|
{
|
|
@@ -4625,7 +4655,7 @@ var OverlayHeader = ({
|
|
|
4625
4655
|
),
|
|
4626
4656
|
!!onClose && /* @__PURE__ */ jsx13(Tooltip, { tooltip: translation("close"), children: /* @__PURE__ */ jsx13(IconButton, { color: "neutral", size: "small", onClick: onClose, children: /* @__PURE__ */ jsx13(X, { className: "w-full h-full" }) }) })
|
|
4627
4657
|
] });
|
|
4628
|
-
return /* @__PURE__ */ jsxs9("div", { className: "col", children: [
|
|
4658
|
+
return /* @__PURE__ */ jsxs9("div", { className: "flex-col-2", children: [
|
|
4629
4659
|
hasTitleRow && titleRow,
|
|
4630
4660
|
description ?? (descriptionText && /* @__PURE__ */ jsx13("span", { className: "textstyle-description", children: descriptionText }))
|
|
4631
4661
|
] });
|
|
@@ -4688,7 +4718,7 @@ var Modal = ({
|
|
|
4688
4718
|
ref,
|
|
4689
4719
|
tabIndex: -1,
|
|
4690
4720
|
className: clsx11(
|
|
4691
|
-
"fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2
|
|
4721
|
+
"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",
|
|
4692
4722
|
className
|
|
4693
4723
|
),
|
|
4694
4724
|
role: "dialog",
|
|
@@ -4757,7 +4787,7 @@ var Dialog = ({
|
|
|
4757
4787
|
ref,
|
|
4758
4788
|
tabIndex: -1,
|
|
4759
4789
|
className: clsx11(
|
|
4760
|
-
"fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2
|
|
4790
|
+
"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",
|
|
4761
4791
|
className
|
|
4762
4792
|
),
|
|
4763
4793
|
role: "dialog",
|
|
@@ -4792,8 +4822,8 @@ var ConfirmDialog = ({
|
|
|
4792
4822
|
primary: "primary"
|
|
4793
4823
|
};
|
|
4794
4824
|
return /* @__PURE__ */ jsxs10(Dialog, { ...restProps, className: clsx12("justify-between", className), children: [
|
|
4795
|
-
/* @__PURE__ */ jsx14("div", { className: "col grow", children }),
|
|
4796
|
-
/* @__PURE__ */ jsxs10("div", { className: "row mt-3
|
|
4825
|
+
/* @__PURE__ */ jsx14("div", { className: "flex-col-2 grow", children }),
|
|
4826
|
+
/* @__PURE__ */ jsxs10("div", { className: "flex-row-4 mt-3 justify-end", children: [
|
|
4797
4827
|
onDecline && /* @__PURE__ */ jsx14(
|
|
4798
4828
|
SolidButton,
|
|
4799
4829
|
{
|
|
@@ -4868,7 +4898,7 @@ var AvatarGroup = ({
|
|
|
4868
4898
|
const stackingOverlap = 0.5;
|
|
4869
4899
|
const notDisplayedProfiles = avatars.length - maxShownProfiles;
|
|
4870
4900
|
const avatarGroupWidth = diameter * (stackingOverlap * (displayedProfiles.length - 1) + 1);
|
|
4871
|
-
return /* @__PURE__ */ jsxs11("div", { className: "row relative", style: { height: diameter + "px" }, children: [
|
|
4901
|
+
return /* @__PURE__ */ jsxs11("div", { className: "flex-row-2 relative", style: { height: diameter + "px" }, children: [
|
|
4872
4902
|
/* @__PURE__ */ jsx15("div", { style: { width: avatarGroupWidth + "px" }, children: displayedProfiles.map((avatar, index) => /* @__PURE__ */ jsx15(
|
|
4873
4903
|
"div",
|
|
4874
4904
|
{
|
|
@@ -4881,7 +4911,7 @@ var AvatarGroup = ({
|
|
|
4881
4911
|
notDisplayedProfiles > 0 && /* @__PURE__ */ jsx15(
|
|
4882
4912
|
"div",
|
|
4883
4913
|
{
|
|
4884
|
-
className: "truncate
|
|
4914
|
+
className: "flex-row-2 truncate items-center",
|
|
4885
4915
|
style: { fontSize: diameter / 2 + "px", marginLeft: 1 + diameter / 16 + "px" },
|
|
4886
4916
|
children: /* @__PURE__ */ jsxs11("span", { children: [
|
|
4887
4917
|
"+ ",
|
|
@@ -4917,7 +4947,7 @@ var Circle = ({
|
|
|
4917
4947
|
};
|
|
4918
4948
|
|
|
4919
4949
|
// src/components/icons-and-geometry/Ring.tsx
|
|
4920
|
-
import { useCallback as
|
|
4950
|
+
import { useCallback as useCallback3, useEffect as useEffect10, useState as useState10 } from "react";
|
|
4921
4951
|
import clsx15 from "clsx";
|
|
4922
4952
|
import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
4923
4953
|
var Ring = ({
|
|
@@ -4948,7 +4978,7 @@ var AnimatedRing = ({
|
|
|
4948
4978
|
}) => {
|
|
4949
4979
|
const [currentWidth, setCurrentWidth] = useState10(0);
|
|
4950
4980
|
const milliseconds = 1e3 * fillAnimationDuration;
|
|
4951
|
-
const animate =
|
|
4981
|
+
const animate = useCallback3((timestamp, startTime) => {
|
|
4952
4982
|
const progress = Math.min((timestamp - startTime) / milliseconds, 1);
|
|
4953
4983
|
const newWidth = Math.min(width * progress, width);
|
|
4954
4984
|
setCurrentWidth(newWidth);
|
|
@@ -4970,7 +5000,7 @@ var AnimatedRing = ({
|
|
|
4970
5000
|
return /* @__PURE__ */ jsx17(
|
|
4971
5001
|
"div",
|
|
4972
5002
|
{
|
|
4973
|
-
className: "row items-center justify-center",
|
|
5003
|
+
className: "flex-row-2 items-center justify-center",
|
|
4974
5004
|
style: {
|
|
4975
5005
|
width: `${innerSize + 2 * width}px`,
|
|
4976
5006
|
height: `${innerSize + 2 * width}px`,
|
|
@@ -5000,7 +5030,7 @@ var RingWave = ({
|
|
|
5000
5030
|
const [currentInnerSize, setCurrentInnerSize] = useState10(startInnerSize);
|
|
5001
5031
|
const distance = endInnerSize - startInnerSize;
|
|
5002
5032
|
const milliseconds = 1e3 * fillAnimationDuration;
|
|
5003
|
-
const animate =
|
|
5033
|
+
const animate = useCallback3((timestamp, startTime) => {
|
|
5004
5034
|
const progress = Math.min((timestamp - startTime) / milliseconds, 1);
|
|
5005
5035
|
const newInnerSize = Math.min(
|
|
5006
5036
|
startInnerSize + distance * progress,
|
|
@@ -5025,7 +5055,7 @@ var RingWave = ({
|
|
|
5025
5055
|
return /* @__PURE__ */ jsx17(
|
|
5026
5056
|
"div",
|
|
5027
5057
|
{
|
|
5028
|
-
className: "row items-center justify-center",
|
|
5058
|
+
className: "flex-row-2 items-center justify-center",
|
|
5029
5059
|
style: {
|
|
5030
5060
|
width: `${endInnerSize + 2 * width}px`,
|
|
5031
5061
|
height: `${endInnerSize + 2 * width}px`,
|
|
@@ -5205,7 +5235,7 @@ import clsx16 from "clsx";
|
|
|
5205
5235
|
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
5206
5236
|
var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
|
|
5207
5237
|
const color = "text-description";
|
|
5208
|
-
return /* @__PURE__ */ jsx19("div", { className: clsx16("row
|
|
5238
|
+
return /* @__PURE__ */ jsx19("div", { className: clsx16("flex-row-0", containerClassName), children: crumbs.map((crumb, index) => /* @__PURE__ */ jsxs13("div", { children: [
|
|
5209
5239
|
/* @__PURE__ */ jsx19(
|
|
5210
5240
|
import_link.default,
|
|
5211
5241
|
{
|
|
@@ -5219,7 +5249,7 @@ var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
|
|
|
5219
5249
|
};
|
|
5220
5250
|
|
|
5221
5251
|
// src/components/layout-and-navigation/Carousel.tsx
|
|
5222
|
-
import { useCallback as
|
|
5252
|
+
import { useCallback as useCallback4, useEffect as useEffect11, useMemo, useRef as useRef4, useState as useState11 } from "react";
|
|
5223
5253
|
import clsx17 from "clsx";
|
|
5224
5254
|
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
5225
5255
|
|
|
@@ -5367,7 +5397,7 @@ var Carousel = ({
|
|
|
5367
5397
|
const baseOffset = -50 + (index - currentPosition) * 100;
|
|
5368
5398
|
return `${baseOffset}%`;
|
|
5369
5399
|
};
|
|
5370
|
-
const animation =
|
|
5400
|
+
const animation = useCallback4((time) => {
|
|
5371
5401
|
let keepAnimating = true;
|
|
5372
5402
|
setCarouselInformation((state) => {
|
|
5373
5403
|
const {
|
|
@@ -5566,7 +5596,7 @@ var Carousel = ({
|
|
|
5566
5596
|
onTouchEnd: (event) => onDragEnd(event.changedTouches[0].clientX, event.target.getBoundingClientRect().width),
|
|
5567
5597
|
onTouchCancel: (event) => onDragEnd(event.changedTouches[0].clientX, event.target.getBoundingClientRect().width)
|
|
5568
5598
|
};
|
|
5569
|
-
return /* @__PURE__ */ jsxs14("div", { className: "col items-center w-full
|
|
5599
|
+
return /* @__PURE__ */ jsxs14("div", { className: "flex-col-2 items-center w-full", children: [
|
|
5570
5600
|
/* @__PURE__ */ jsxs14("div", { className: clsx17(`relative w-full overflow-hidden`, heightClassName, className), children: [
|
|
5571
5601
|
arrows && /* @__PURE__ */ jsxs14(Fragment, { children: [
|
|
5572
5602
|
/* @__PURE__ */ jsx20(
|
|
@@ -5590,8 +5620,8 @@ var Carousel = ({
|
|
|
5590
5620
|
}
|
|
5591
5621
|
)
|
|
5592
5622
|
] }),
|
|
5593
|
-
hintNext ? /* @__PURE__ */ jsxs14("div", { className: clsx17(`relative
|
|
5594
|
-
/* @__PURE__ */ jsx20("div", { className: "relative
|
|
5623
|
+
hintNext ? /* @__PURE__ */ jsxs14("div", { className: clsx17(`flex-row-2 relative h-full`, heightClassName), children: [
|
|
5624
|
+
/* @__PURE__ */ jsx20("div", { className: "flex-row-2 relative h-full w-full px-2 overflow-hidden", children: items.map(({
|
|
5595
5625
|
item,
|
|
5596
5626
|
index
|
|
5597
5627
|
}, listIndex) => /* @__PURE__ */ jsx20(
|
|
@@ -5622,7 +5652,7 @@ var Carousel = ({
|
|
|
5622
5652
|
dots && /* @__PURE__ */ jsx20(
|
|
5623
5653
|
"div",
|
|
5624
5654
|
{
|
|
5625
|
-
className: "row items-center justify-center w-full my-2",
|
|
5655
|
+
className: "flex-row-2 items-center justify-center w-full my-2",
|
|
5626
5656
|
children: range(length).map((index) => /* @__PURE__ */ jsx20(
|
|
5627
5657
|
"button",
|
|
5628
5658
|
{
|
|
@@ -5692,7 +5722,7 @@ var ChipList = ({
|
|
|
5692
5722
|
list,
|
|
5693
5723
|
className = ""
|
|
5694
5724
|
}) => {
|
|
5695
|
-
return /* @__PURE__ */ jsx21("div", { className: clsx18("flex flex-wrap gap-x-
|
|
5725
|
+
return /* @__PURE__ */ jsx21("div", { className: clsx18("flex flex-wrap gap-x-2 gap-y-2", className), children: list.map((value, index) => /* @__PURE__ */ jsx21(
|
|
5696
5726
|
Chip,
|
|
5697
5727
|
{
|
|
5698
5728
|
...value,
|
|
@@ -5728,7 +5758,6 @@ var DividerInserter = ({
|
|
|
5728
5758
|
|
|
5729
5759
|
// src/components/layout-and-navigation/FAQSection.tsx
|
|
5730
5760
|
import clsx20 from "clsx";
|
|
5731
|
-
import { ChevronDown as ChevronDown3, ChevronUp as ChevronUp2 } from "lucide-react";
|
|
5732
5761
|
|
|
5733
5762
|
// src/components/layout-and-navigation/MarkdownInterpreter.tsx
|
|
5734
5763
|
import { Fragment as Fragment2, jsx as jsx23 } from "react/jsx-runtime";
|
|
@@ -5967,14 +5996,13 @@ var FAQSection = ({
|
|
|
5967
5996
|
entries,
|
|
5968
5997
|
expandableClassName
|
|
5969
5998
|
}) => {
|
|
5970
|
-
|
|
5971
|
-
return /* @__PURE__ */ jsx24("div", { className: "col gap-y-4", children: entries.map(({ id, title, content, ...restProps }) => /* @__PURE__ */ jsx24(
|
|
5999
|
+
return /* @__PURE__ */ jsx24("div", { className: "flex-col-4", children: entries.map(({ id, title, content, ...restProps }) => /* @__PURE__ */ jsx24(
|
|
5972
6000
|
ExpandableUncontrolled,
|
|
5973
6001
|
{
|
|
5974
6002
|
...restProps,
|
|
5975
6003
|
label: /* @__PURE__ */ jsx24("h3", { id, className: "textstyle-title-md", children: title }),
|
|
5976
6004
|
clickOnlyOnHeader: false,
|
|
5977
|
-
icon: (expanded) =>
|
|
6005
|
+
icon: (expanded) => /* @__PURE__ */ jsx24(ExpansionIcon, { isExpanded: expanded, className: "text-primary" }),
|
|
5978
6006
|
className: clsx20("rounded-xl", expandableClassName),
|
|
5979
6007
|
children: /* @__PURE__ */ jsx24("div", { className: "mt-2", children: content.type === "markdown" ? /* @__PURE__ */ jsx24(MarkdownInterpreter, { text: content.value }) : content.value })
|
|
5980
6008
|
},
|
|
@@ -5987,7 +6015,7 @@ import { ChevronFirst, ChevronLast, ChevronLeft as ChevronLeft2, ChevronRight as
|
|
|
5987
6015
|
import clsx23 from "clsx";
|
|
5988
6016
|
|
|
5989
6017
|
// src/components/user-action/Input.tsx
|
|
5990
|
-
import { forwardRef as
|
|
6018
|
+
import { forwardRef as forwardRef3, useEffect as useEffect14, useImperativeHandle, useRef as useRef5, useState as useState13 } from "react";
|
|
5991
6019
|
import clsx22 from "clsx";
|
|
5992
6020
|
|
|
5993
6021
|
// src/hooks/useDelay.ts
|
|
@@ -6049,9 +6077,9 @@ var Label = ({
|
|
|
6049
6077
|
};
|
|
6050
6078
|
|
|
6051
6079
|
// src/hooks/useFocusManagement.ts
|
|
6052
|
-
import { useCallback as
|
|
6080
|
+
import { useCallback as useCallback5 } from "react";
|
|
6053
6081
|
function useFocusManagement() {
|
|
6054
|
-
const getFocusableElements =
|
|
6082
|
+
const getFocusableElements = useCallback5(() => {
|
|
6055
6083
|
return Array.from(
|
|
6056
6084
|
document.querySelectorAll(
|
|
6057
6085
|
'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
|
|
@@ -6060,7 +6088,7 @@ function useFocusManagement() {
|
|
|
6060
6088
|
(el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
|
|
6061
6089
|
);
|
|
6062
6090
|
}, []);
|
|
6063
|
-
const getNextFocusElement =
|
|
6091
|
+
const getNextFocusElement = useCallback5(() => {
|
|
6064
6092
|
const elements = getFocusableElements();
|
|
6065
6093
|
if (elements.length === 0) {
|
|
6066
6094
|
return void 0;
|
|
@@ -6072,11 +6100,11 @@ function useFocusManagement() {
|
|
|
6072
6100
|
}
|
|
6073
6101
|
return nextElement;
|
|
6074
6102
|
}, [getFocusableElements]);
|
|
6075
|
-
const focusNext =
|
|
6103
|
+
const focusNext = useCallback5(() => {
|
|
6076
6104
|
const nextElement = getNextFocusElement();
|
|
6077
6105
|
nextElement?.focus();
|
|
6078
6106
|
}, [getNextFocusElement]);
|
|
6079
|
-
const getPreviousFocusElement =
|
|
6107
|
+
const getPreviousFocusElement = useCallback5(() => {
|
|
6080
6108
|
const elements = getFocusableElements();
|
|
6081
6109
|
if (elements.length === 0) {
|
|
6082
6110
|
return void 0;
|
|
@@ -6092,7 +6120,7 @@ function useFocusManagement() {
|
|
|
6092
6120
|
}
|
|
6093
6121
|
return previousElement;
|
|
6094
6122
|
}, [getFocusableElements]);
|
|
6095
|
-
const focusPrevious =
|
|
6123
|
+
const focusPrevious = useCallback5(() => {
|
|
6096
6124
|
const previousElement = getPreviousFocusElement();
|
|
6097
6125
|
if (previousElement) previousElement.focus();
|
|
6098
6126
|
}, [getPreviousFocusElement]);
|
|
@@ -6145,7 +6173,7 @@ var defaultEditCompleteOptions = {
|
|
|
6145
6173
|
afterDelay: true,
|
|
6146
6174
|
delay: 2500
|
|
6147
6175
|
};
|
|
6148
|
-
var Input =
|
|
6176
|
+
var Input = forwardRef3(function Input2({
|
|
6149
6177
|
id,
|
|
6150
6178
|
type = "text",
|
|
6151
6179
|
value,
|
|
@@ -6241,7 +6269,7 @@ var InputUncontrolled = ({
|
|
|
6241
6269
|
}
|
|
6242
6270
|
);
|
|
6243
6271
|
};
|
|
6244
|
-
var FormInput =
|
|
6272
|
+
var FormInput = forwardRef3(function FormInput2({
|
|
6245
6273
|
id,
|
|
6246
6274
|
labelText,
|
|
6247
6275
|
errorText,
|
|
@@ -6302,10 +6330,10 @@ var Pagination = ({
|
|
|
6302
6330
|
const changePage = (page) => {
|
|
6303
6331
|
onPageChanged(page);
|
|
6304
6332
|
};
|
|
6305
|
-
return /* @__PURE__ */ jsxs17("div", { className: clsx23("row
|
|
6333
|
+
return /* @__PURE__ */ jsxs17("div", { className: clsx23("flex-row-1", className), style, children: [
|
|
6306
6334
|
/* @__PURE__ */ jsx27(IconButton, { color: "transparent", onClick: () => changePage(0), disabled: onFirstPage || noPages, children: /* @__PURE__ */ jsx27(ChevronFirst, {}) }),
|
|
6307
6335
|
/* @__PURE__ */ jsx27(IconButton, { color: "transparent", onClick: () => changePage(pageIndex - 1), disabled: onFirstPage || noPages, children: /* @__PURE__ */ jsx27(ChevronLeft2, {}) }),
|
|
6308
|
-
/* @__PURE__ */ jsxs17("div", { className: "row min-w-56
|
|
6336
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex-row-2 min-w-56 items-center justify-center mx-2 text-center", children: [
|
|
6309
6337
|
/* @__PURE__ */ jsx27(
|
|
6310
6338
|
Input,
|
|
6311
6339
|
{
|
|
@@ -6335,7 +6363,7 @@ var Pagination = ({
|
|
|
6335
6363
|
/* @__PURE__ */ jsx27(
|
|
6336
6364
|
"span",
|
|
6337
6365
|
{
|
|
6338
|
-
className: "row flex-1 items-center justify-center select-none h-10 bg-surface text-on-surface rounded-md font-bold",
|
|
6366
|
+
className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-surface text-on-surface rounded-md font-bold",
|
|
6339
6367
|
children: pageCount
|
|
6340
6368
|
}
|
|
6341
6369
|
)
|
|
@@ -6350,12 +6378,15 @@ import { Search } from "lucide-react";
|
|
|
6350
6378
|
import clsx24 from "clsx";
|
|
6351
6379
|
|
|
6352
6380
|
// src/hooks/useSearch.ts
|
|
6353
|
-
import { useEffect as useEffect16, useMemo as useMemo2, useState as useState15 } from "react";
|
|
6381
|
+
import { useCallback as useCallback6, useEffect as useEffect16, useMemo as useMemo2, useState as useState15 } from "react";
|
|
6354
6382
|
|
|
6355
6383
|
// src/util/simpleSearch.ts
|
|
6356
6384
|
var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
|
|
6357
6385
|
return objects.filter((object) => {
|
|
6358
|
-
const mappedSearchKeywords = mapping(object)
|
|
6386
|
+
const mappedSearchKeywords = mapping(object)?.map((value) => value.toLowerCase().trim());
|
|
6387
|
+
if (!mappedSearchKeywords) {
|
|
6388
|
+
return true;
|
|
6389
|
+
}
|
|
6359
6390
|
return search.every((searchValue) => !!mappedSearchKeywords.find((value) => !!value && value.includes(searchValue.toLowerCase().trim())));
|
|
6360
6391
|
});
|
|
6361
6392
|
};
|
|
@@ -6379,22 +6410,51 @@ var SimpleSearch = (search, objects) => {
|
|
|
6379
6410
|
var useSearch = ({
|
|
6380
6411
|
list,
|
|
6381
6412
|
initialSearch,
|
|
6382
|
-
searchMapping
|
|
6413
|
+
searchMapping,
|
|
6414
|
+
additionalSearchTags,
|
|
6415
|
+
isSearchInstant = true,
|
|
6416
|
+
sortingFunction,
|
|
6417
|
+
filter,
|
|
6418
|
+
disabled = false
|
|
6383
6419
|
}) => {
|
|
6384
|
-
const [
|
|
6385
|
-
const [
|
|
6420
|
+
const [search, setSearch] = useState15(initialSearch ?? "");
|
|
6421
|
+
const [result, setResult] = useState15(list);
|
|
6422
|
+
const searchTags = useMemo2(() => additionalSearchTags ?? [], [additionalSearchTags]);
|
|
6423
|
+
const updateSearch = useCallback6((newSearch) => {
|
|
6424
|
+
const usedSearch = newSearch ?? search;
|
|
6425
|
+
if (newSearch) {
|
|
6426
|
+
setSearch(search);
|
|
6427
|
+
}
|
|
6428
|
+
setResult(MultiSubjectSearchWithMapping([usedSearch, ...searchTags], list, searchMapping));
|
|
6429
|
+
}, [searchTags, list, search, searchMapping]);
|
|
6386
6430
|
useEffect16(() => {
|
|
6387
|
-
|
|
6388
|
-
|
|
6389
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
6431
|
+
if (isSearchInstant) {
|
|
6432
|
+
setResult(MultiSubjectSearchWithMapping([search, ...searchTags], list, searchMapping));
|
|
6433
|
+
}
|
|
6434
|
+
}, [searchTags, isSearchInstant, list, search, searchMapping, additionalSearchTags]);
|
|
6435
|
+
const filteredResult = useMemo2(() => {
|
|
6436
|
+
if (!filter) {
|
|
6437
|
+
return result;
|
|
6438
|
+
}
|
|
6439
|
+
return result.filter(filter);
|
|
6440
|
+
}, [result, filter]);
|
|
6441
|
+
const sortedAndFilteredResult = useMemo2(() => {
|
|
6442
|
+
if (!sortingFunction) {
|
|
6443
|
+
return filteredResult;
|
|
6444
|
+
}
|
|
6445
|
+
return filteredResult.sort(sortingFunction);
|
|
6446
|
+
}, [filteredResult, sortingFunction]);
|
|
6447
|
+
const usedResult = useMemo2(() => {
|
|
6448
|
+
if (!disabled) {
|
|
6449
|
+
return sortedAndFilteredResult;
|
|
6450
|
+
}
|
|
6451
|
+
return list;
|
|
6452
|
+
}, [disabled, list, sortedAndFilteredResult]);
|
|
6393
6453
|
return {
|
|
6394
|
-
result,
|
|
6395
|
-
hasResult:
|
|
6396
|
-
allItems:
|
|
6397
|
-
|
|
6454
|
+
result: usedResult,
|
|
6455
|
+
hasResult: usedResult.length > 0,
|
|
6456
|
+
allItems: list,
|
|
6457
|
+
updateSearch,
|
|
6398
6458
|
search,
|
|
6399
6459
|
setSearch
|
|
6400
6460
|
};
|
|
@@ -6422,9 +6482,9 @@ var SearchableList = ({
|
|
|
6422
6482
|
resultListClassName
|
|
6423
6483
|
}) => {
|
|
6424
6484
|
const translation = useTranslation([defaultSearchableListTranslation, formTranslation], overwriteTranslation);
|
|
6425
|
-
const { result, hasResult, search, setSearch } = useSearch({ list, initialSearch, searchMapping });
|
|
6426
|
-
return /* @__PURE__ */ jsxs18("div", { className: clsx24("col
|
|
6427
|
-
list.length > minimumItemsForSearch && /* @__PURE__ */ jsxs18("div", { className: "row justify-between
|
|
6485
|
+
const { result, hasResult, search, setSearch, updateSearch } = useSearch({ list, initialSearch, searchMapping });
|
|
6486
|
+
return /* @__PURE__ */ jsxs18("div", { className: clsx24("flex-col-2", className), children: [
|
|
6487
|
+
list.length > minimumItemsForSearch && /* @__PURE__ */ jsxs18("div", { className: "flex-row-2 justify-between items-center", children: [
|
|
6428
6488
|
/* @__PURE__ */ jsx28(
|
|
6429
6489
|
Input,
|
|
6430
6490
|
{
|
|
@@ -6435,9 +6495,9 @@ var SearchableList = ({
|
|
|
6435
6495
|
className: "w-full"
|
|
6436
6496
|
}
|
|
6437
6497
|
),
|
|
6438
|
-
/* @__PURE__ */ jsx28(IconButton, { color: "neutral",
|
|
6498
|
+
/* @__PURE__ */ jsx28(IconButton, { color: "neutral", onClick: () => updateSearch(), children: /* @__PURE__ */ jsx28(Search, { className: "w-full h-full" }) })
|
|
6439
6499
|
] }),
|
|
6440
|
-
hasResult ? /* @__PURE__ */ jsx28("div", { className: clsx24("col
|
|
6500
|
+
hasResult ? /* @__PURE__ */ jsx28("div", { className: clsx24("flex-col-1 overflow-y-auto", resultListClassName), children: result.map(itemMapper) }) : /* @__PURE__ */ jsx28("div", { className: "flex-row-2 text-description py-2 px-2", children: translation("nothingFound") })
|
|
6441
6501
|
] });
|
|
6442
6502
|
};
|
|
6443
6503
|
|
|
@@ -6471,23 +6531,23 @@ var StepperBar = ({
|
|
|
6471
6531
|
return /* @__PURE__ */ jsxs19(
|
|
6472
6532
|
"div",
|
|
6473
6533
|
{
|
|
6474
|
-
className: clsx25("row justify-between", className),
|
|
6534
|
+
className: clsx25("flex-row-2 justify-between", className),
|
|
6475
6535
|
children: [
|
|
6476
|
-
/* @__PURE__ */ jsx29("div", { className: "row flex-[2] justify-start", children: /* @__PURE__ */ jsxs19(
|
|
6536
|
+
/* @__PURE__ */ jsx29("div", { className: "flex-row-2 flex-[2] justify-start", children: /* @__PURE__ */ jsxs19(
|
|
6477
6537
|
SolidButton,
|
|
6478
6538
|
{
|
|
6479
6539
|
disabled: currentStep === 0 || disabledSteps.has(currentStep),
|
|
6480
6540
|
onClick: () => {
|
|
6481
6541
|
update(currentStep - 1);
|
|
6482
6542
|
},
|
|
6483
|
-
className: "row
|
|
6543
|
+
className: "flex-row-1 items-center justify-center",
|
|
6484
6544
|
children: [
|
|
6485
6545
|
/* @__PURE__ */ jsx29(ChevronLeft3, { size: 14 }),
|
|
6486
6546
|
translation("back")
|
|
6487
6547
|
]
|
|
6488
6548
|
}
|
|
6489
6549
|
) }),
|
|
6490
|
-
/* @__PURE__ */ jsx29("div", { className: "row flex-[5]
|
|
6550
|
+
/* @__PURE__ */ jsx29("div", { className: "flex-row-2 flex-[5] justify-center items-center", children: showDots && dots.map((value, index) => {
|
|
6491
6551
|
const seen = seenSteps.has(index);
|
|
6492
6552
|
return /* @__PURE__ */ jsx29(
|
|
6493
6553
|
"div",
|
|
@@ -6509,11 +6569,11 @@ var StepperBar = ({
|
|
|
6509
6569
|
index
|
|
6510
6570
|
);
|
|
6511
6571
|
}) }),
|
|
6512
|
-
currentStep !== numberOfSteps && /* @__PURE__ */ jsx29("div", { className: "row flex-[2] justify-end", children: /* @__PURE__ */ jsxs19(
|
|
6572
|
+
currentStep !== numberOfSteps && /* @__PURE__ */ jsx29("div", { className: "flex-row-2 flex-[2] justify-end", children: /* @__PURE__ */ jsxs19(
|
|
6513
6573
|
SolidButton,
|
|
6514
6574
|
{
|
|
6515
6575
|
onClick: () => update(currentStep + 1),
|
|
6516
|
-
className: "row
|
|
6576
|
+
className: "flex-row-1 items-center justify-center",
|
|
6517
6577
|
disabled: disabledSteps.has(currentStep),
|
|
6518
6578
|
children: [
|
|
6519
6579
|
translation("next"),
|
|
@@ -6521,12 +6581,12 @@ var StepperBar = ({
|
|
|
6521
6581
|
]
|
|
6522
6582
|
}
|
|
6523
6583
|
) }),
|
|
6524
|
-
currentStep === numberOfSteps && /* @__PURE__ */ jsx29("div", { className: "row flex-[2] justify-end", children: /* @__PURE__ */ jsxs19(
|
|
6584
|
+
currentStep === numberOfSteps && /* @__PURE__ */ jsx29("div", { className: "flex-row-2 flex-[2] justify-end", children: /* @__PURE__ */ jsxs19(
|
|
6525
6585
|
SolidButton,
|
|
6526
6586
|
{
|
|
6527
6587
|
disabled: disabledSteps.has(currentStep),
|
|
6528
6588
|
onClick: onFinish,
|
|
6529
|
-
className: "row
|
|
6589
|
+
className: "flex-row-1 items-center justify-center",
|
|
6530
6590
|
children: [
|
|
6531
6591
|
/* @__PURE__ */ jsx29(Check2, { size: 14 }),
|
|
6532
6592
|
finishText ?? translation("confirm")
|
|
@@ -6591,14 +6651,14 @@ var TextImage = ({
|
|
|
6591
6651
|
children: /* @__PURE__ */ jsxs20(
|
|
6592
6652
|
"div",
|
|
6593
6653
|
{
|
|
6594
|
-
className: clsx26(`col px-6 py-12 rounded-2xl h-full`, colorMapping[color], contentClassName),
|
|
6654
|
+
className: clsx26(`flex-col-2 px-6 py-12 rounded-2xl h-full`, colorMapping[color], contentClassName),
|
|
6595
6655
|
children: [
|
|
6596
6656
|
badge && /* @__PURE__ */ jsx30("div", { className: clsx26(`chip-full mb-2 py-2 px-4 w-fit`, chipColorMapping[color]), children: /* @__PURE__ */ jsx30("span", { className: "text-lg font-bold", children: badge }) }),
|
|
6597
|
-
/* @__PURE__ */ jsxs20("div", { className: "col
|
|
6657
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex-col-1 overflow-hidden", children: [
|
|
6598
6658
|
/* @__PURE__ */ jsx30("span", { className: "textstyle-title-xl", children: title }),
|
|
6599
6659
|
/* @__PURE__ */ jsx30("span", { className: "text-ellipsis overflow-hidden", children: description })
|
|
6600
6660
|
] }),
|
|
6601
|
-
onShowMoreClicked && /* @__PURE__ */ jsx30("div", { className: "row mt-2 underline", children: /* @__PURE__ */ jsx30("button", { onClick: onShowMoreClicked, children: translation("showMore") }) })
|
|
6661
|
+
onShowMoreClicked && /* @__PURE__ */ jsx30("div", { className: "flex-row-2 mt-2 underline", children: /* @__PURE__ */ jsx30("button", { onClick: onShowMoreClicked, children: translation("showMore") }) })
|
|
6602
6662
|
]
|
|
6603
6663
|
}
|
|
6604
6664
|
)
|
|
@@ -6677,7 +6737,7 @@ var ErrorComponent = ({
|
|
|
6677
6737
|
classname
|
|
6678
6738
|
}) => {
|
|
6679
6739
|
const translation = useTranslation([defaultErrorComponentTranslation], overwriteTranslation);
|
|
6680
|
-
return /* @__PURE__ */ jsxs22("div", { className: clsx27("col items-center justify-center
|
|
6740
|
+
return /* @__PURE__ */ jsxs22("div", { className: clsx27("flex-col-4 items-center justify-center w-full h-24", classname), children: [
|
|
6681
6741
|
/* @__PURE__ */ jsx32(AlertOctagon, { size: 64, className: "text-warning" }),
|
|
6682
6742
|
errorText ?? `${translation("errorOccurred")} :(`
|
|
6683
6743
|
] });
|
|
@@ -6686,30 +6746,24 @@ var ErrorComponent = ({
|
|
|
6686
6746
|
// src/components/loading-states/LoadingAndErrorComponent.tsx
|
|
6687
6747
|
import { useState as useState17 } from "react";
|
|
6688
6748
|
|
|
6689
|
-
// src/components/loading-states/
|
|
6690
|
-
import clsx28 from "clsx";
|
|
6691
|
-
import { jsx as jsx33
|
|
6692
|
-
var
|
|
6693
|
-
|
|
6694
|
-
loadingText,
|
|
6695
|
-
classname
|
|
6696
|
-
}) => {
|
|
6697
|
-
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
6698
|
-
return /* @__PURE__ */ jsxs23("div", { className: clsx28("col items-center justify-center w-full h-24", classname), children: [
|
|
6699
|
-
/* @__PURE__ */ jsx33(Helpwave, { animate: "loading" }),
|
|
6700
|
-
loadingText ?? `${translation("loading")}...`
|
|
6701
|
-
] });
|
|
6749
|
+
// src/components/loading-states/LoadingContainer.tsx
|
|
6750
|
+
import { clsx as clsx28 } from "clsx";
|
|
6751
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
6752
|
+
var LoadingContainer = ({ className }) => {
|
|
6753
|
+
return /* @__PURE__ */ jsx33("div", { className: clsx28("relative overflow-hidden shimmer bg-disabled-background rounded-md", className) });
|
|
6702
6754
|
};
|
|
6703
6755
|
|
|
6704
6756
|
// src/components/loading-states/LoadingAndErrorComponent.tsx
|
|
6757
|
+
import { clsx as clsx29 } from "clsx";
|
|
6705
6758
|
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
6706
6759
|
var LoadingAndErrorComponent = ({
|
|
6707
6760
|
children,
|
|
6708
6761
|
isLoading = false,
|
|
6709
6762
|
hasError = false,
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
minimumLoadingDuration
|
|
6763
|
+
loadingComponent,
|
|
6764
|
+
errorComponent,
|
|
6765
|
+
minimumLoadingDuration,
|
|
6766
|
+
className
|
|
6713
6767
|
}) => {
|
|
6714
6768
|
const [isInMinimumLoading, setIsInMinimumLoading] = useState17(false);
|
|
6715
6769
|
const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = useState17(false);
|
|
@@ -6721,27 +6775,42 @@ var LoadingAndErrorComponent = ({
|
|
|
6721
6775
|
}, minimumLoadingDuration);
|
|
6722
6776
|
}
|
|
6723
6777
|
if (isLoading || minimumLoadingDuration && isInMinimumLoading) {
|
|
6724
|
-
return /* @__PURE__ */ jsx34(
|
|
6778
|
+
return loadingComponent ?? /* @__PURE__ */ jsx34(LoadingContainer, { className: clsx29(className) });
|
|
6725
6779
|
}
|
|
6726
6780
|
if (hasError) {
|
|
6727
|
-
return /* @__PURE__ */ jsx34(
|
|
6781
|
+
return errorComponent ?? /* @__PURE__ */ jsx34(LoadingContainer, { className: clsx29("bg-negative", className) });
|
|
6728
6782
|
}
|
|
6729
6783
|
return children;
|
|
6730
6784
|
};
|
|
6731
6785
|
|
|
6786
|
+
// src/components/loading-states/LoadingAnimation.tsx
|
|
6787
|
+
import clsx30 from "clsx";
|
|
6788
|
+
import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6789
|
+
var LoadingAnimation = ({
|
|
6790
|
+
overwriteTranslation,
|
|
6791
|
+
loadingText,
|
|
6792
|
+
classname
|
|
6793
|
+
}) => {
|
|
6794
|
+
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
6795
|
+
return /* @__PURE__ */ jsxs23("div", { className: clsx30("flex-col-2 items-center justify-center w-full h-24", classname), children: [
|
|
6796
|
+
/* @__PURE__ */ jsx35(Helpwave, { animate: "loading" }),
|
|
6797
|
+
loadingText ?? `${translation("loading")}...`
|
|
6798
|
+
] });
|
|
6799
|
+
};
|
|
6800
|
+
|
|
6732
6801
|
// src/components/loading-states/LoadingButton.tsx
|
|
6733
|
-
import
|
|
6734
|
-
import { jsx as
|
|
6802
|
+
import clsx31 from "clsx";
|
|
6803
|
+
import { jsx as jsx36, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
6735
6804
|
var LoadingButton = ({ isLoading = false, size = "medium", onClick, ...rest }) => {
|
|
6736
6805
|
const paddingClass = ButtonUtil.paddingMapping[size];
|
|
6737
6806
|
return /* @__PURE__ */ jsxs24("div", { className: "inline-block relative", children: [
|
|
6738
|
-
isLoading && /* @__PURE__ */
|
|
6739
|
-
/* @__PURE__ */
|
|
6807
|
+
isLoading && /* @__PURE__ */ jsx36("div", { className: clsx31("flex-row-2 absolute inset-0 items-center justify-center bg-white/40", paddingClass), children: /* @__PURE__ */ jsx36(Helpwave, { animate: "loading", className: "text-white" }) }),
|
|
6808
|
+
/* @__PURE__ */ jsx36(SolidButton, { ...rest, disabled: rest.disabled, onClick: isLoading ? noop : onClick })
|
|
6740
6809
|
] });
|
|
6741
6810
|
};
|
|
6742
6811
|
|
|
6743
6812
|
// src/components/loading-states/ProgressIndicator.tsx
|
|
6744
|
-
import { jsx as
|
|
6813
|
+
import { jsx as jsx37, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
6745
6814
|
var sizeMapping = { small: 16, medium: 24, big: 48 };
|
|
6746
6815
|
var ProgressIndicator = ({
|
|
6747
6816
|
progress,
|
|
@@ -6767,7 +6836,7 @@ var ProgressIndicator = ({
|
|
|
6767
6836
|
transform: `rotate(${rotation}deg)`
|
|
6768
6837
|
},
|
|
6769
6838
|
children: [
|
|
6770
|
-
/* @__PURE__ */
|
|
6839
|
+
/* @__PURE__ */ jsx37(
|
|
6771
6840
|
"circle",
|
|
6772
6841
|
{
|
|
6773
6842
|
cx: center,
|
|
@@ -6778,7 +6847,7 @@ var ProgressIndicator = ({
|
|
|
6778
6847
|
className: "stroke-progress-indicator-fill"
|
|
6779
6848
|
}
|
|
6780
6849
|
),
|
|
6781
|
-
/* @__PURE__ */
|
|
6850
|
+
/* @__PURE__ */ jsx37(
|
|
6782
6851
|
"circle",
|
|
6783
6852
|
{
|
|
6784
6853
|
cx: center,
|
|
@@ -6797,8 +6866,8 @@ var ProgressIndicator = ({
|
|
|
6797
6866
|
};
|
|
6798
6867
|
|
|
6799
6868
|
// src/components/modals/ConfirmModal.tsx
|
|
6800
|
-
import
|
|
6801
|
-
import { jsx as
|
|
6869
|
+
import clsx32 from "clsx";
|
|
6870
|
+
import { jsx as jsx38, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
6802
6871
|
var ConfirmModal = ({
|
|
6803
6872
|
overwriteTranslation,
|
|
6804
6873
|
children,
|
|
@@ -6817,10 +6886,10 @@ var ConfirmModal = ({
|
|
|
6817
6886
|
positive: "positive",
|
|
6818
6887
|
primary: "primary"
|
|
6819
6888
|
};
|
|
6820
|
-
return /* @__PURE__ */ jsxs26(Modal, { ...restProps, onClose: onCancel, className:
|
|
6821
|
-
/* @__PURE__ */
|
|
6822
|
-
/* @__PURE__ */ jsxs26("div", { className: "row mt-3
|
|
6823
|
-
onCancel && /* @__PURE__ */
|
|
6889
|
+
return /* @__PURE__ */ jsxs26(Modal, { ...restProps, onClose: onCancel, className: clsx32("justify-between", className), children: [
|
|
6890
|
+
/* @__PURE__ */ jsx38("div", { className: "flex-col-2 grow", children }),
|
|
6891
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-row-4 mt-3 justify-end", children: [
|
|
6892
|
+
onCancel && /* @__PURE__ */ jsx38(
|
|
6824
6893
|
SolidButton,
|
|
6825
6894
|
{
|
|
6826
6895
|
color: buttonOverwrites?.[0].color ?? "neutral",
|
|
@@ -6829,7 +6898,7 @@ var ConfirmModal = ({
|
|
|
6829
6898
|
children: buttonOverwrites?.[0].text ?? translation("cancel")
|
|
6830
6899
|
}
|
|
6831
6900
|
),
|
|
6832
|
-
onDecline && /* @__PURE__ */
|
|
6901
|
+
onDecline && /* @__PURE__ */ jsx38(
|
|
6833
6902
|
SolidButton,
|
|
6834
6903
|
{
|
|
6835
6904
|
color: buttonOverwrites?.[1].color ?? "negative",
|
|
@@ -6838,7 +6907,7 @@ var ConfirmModal = ({
|
|
|
6838
6907
|
children: buttonOverwrites?.[1].text ?? translation("decline")
|
|
6839
6908
|
}
|
|
6840
6909
|
),
|
|
6841
|
-
/* @__PURE__ */
|
|
6910
|
+
/* @__PURE__ */ jsx38(
|
|
6842
6911
|
SolidButton,
|
|
6843
6912
|
{
|
|
6844
6913
|
autoFocus: true,
|
|
@@ -6853,7 +6922,7 @@ var ConfirmModal = ({
|
|
|
6853
6922
|
};
|
|
6854
6923
|
|
|
6855
6924
|
// src/components/modals/DiscardChangesModal.tsx
|
|
6856
|
-
import { jsx as
|
|
6925
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
6857
6926
|
var DiscardChangesModal = ({
|
|
6858
6927
|
overwriteTranslation,
|
|
6859
6928
|
children,
|
|
@@ -6864,7 +6933,7 @@ var DiscardChangesModal = ({
|
|
|
6864
6933
|
...modalProps
|
|
6865
6934
|
}) => {
|
|
6866
6935
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
6867
|
-
return /* @__PURE__ */
|
|
6936
|
+
return /* @__PURE__ */ jsx39(
|
|
6868
6937
|
ConfirmModal,
|
|
6869
6938
|
{
|
|
6870
6939
|
headerProps: {
|
|
@@ -6883,26 +6952,34 @@ var DiscardChangesModal = ({
|
|
|
6883
6952
|
};
|
|
6884
6953
|
|
|
6885
6954
|
// src/components/modals/InputModal.tsx
|
|
6886
|
-
import { jsx as
|
|
6955
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
6887
6956
|
var InputModal = ({
|
|
6888
6957
|
inputs,
|
|
6889
6958
|
buttonOverwrites,
|
|
6890
6959
|
...restProps
|
|
6891
6960
|
}) => {
|
|
6892
|
-
return /* @__PURE__ */
|
|
6961
|
+
return /* @__PURE__ */ jsx40(
|
|
6893
6962
|
ConfirmModal,
|
|
6894
6963
|
{
|
|
6895
6964
|
buttonOverwrites,
|
|
6896
6965
|
...restProps,
|
|
6897
|
-
children: inputs.map((inputProps, index) => /* @__PURE__ */
|
|
6966
|
+
children: inputs.map((inputProps, index) => /* @__PURE__ */ jsx40(Input, { ...inputProps }, `input ${index}`))
|
|
6898
6967
|
}
|
|
6899
6968
|
);
|
|
6900
6969
|
};
|
|
6901
6970
|
|
|
6902
6971
|
// src/components/user-action/Select.tsx
|
|
6903
|
-
import {
|
|
6904
|
-
import { useEffect as
|
|
6905
|
-
import
|
|
6972
|
+
import { useCallback as useCallback7 } from "react";
|
|
6973
|
+
import { useEffect as useEffect20, useState as useState19 } from "react";
|
|
6974
|
+
import clsx35 from "clsx";
|
|
6975
|
+
|
|
6976
|
+
// src/components/user-action/Menu.tsx
|
|
6977
|
+
import {
|
|
6978
|
+
useEffect as useEffect19,
|
|
6979
|
+
useRef as useRef6,
|
|
6980
|
+
useState as useState18
|
|
6981
|
+
} from "react";
|
|
6982
|
+
import clsx33 from "clsx";
|
|
6906
6983
|
|
|
6907
6984
|
// src/hooks/useOutsideClick.ts
|
|
6908
6985
|
import { useEffect as useEffect18 } from "react";
|
|
@@ -6924,83 +7001,305 @@ var useOutsideClick = (refs, handler) => {
|
|
|
6924
7001
|
}, [refs, handler]);
|
|
6925
7002
|
};
|
|
6926
7003
|
|
|
7004
|
+
// src/util/PropsWithFunctionChildren.ts
|
|
7005
|
+
var resolve = (children, bag) => {
|
|
7006
|
+
if (typeof children === "function") {
|
|
7007
|
+
return children(bag);
|
|
7008
|
+
}
|
|
7009
|
+
return children ?? void 0;
|
|
7010
|
+
};
|
|
7011
|
+
var BagFunctionUtil = {
|
|
7012
|
+
resolve
|
|
7013
|
+
};
|
|
7014
|
+
|
|
7015
|
+
// src/hooks/usePopoverPosition.ts
|
|
7016
|
+
var defaultPopoverPositionOptions = {
|
|
7017
|
+
edgePadding: 16,
|
|
7018
|
+
outerGap: 4,
|
|
7019
|
+
horizontalAlignment: "leftInside",
|
|
7020
|
+
verticalAlignment: "bottomOutside",
|
|
7021
|
+
disabled: false
|
|
7022
|
+
};
|
|
7023
|
+
var usePopoverPosition = (trigger, options) => {
|
|
7024
|
+
const {
|
|
7025
|
+
edgePadding,
|
|
7026
|
+
outerGap,
|
|
7027
|
+
verticalAlignment,
|
|
7028
|
+
horizontalAlignment,
|
|
7029
|
+
disabled
|
|
7030
|
+
} = { ...defaultPopoverPositionOptions, ...options };
|
|
7031
|
+
if (disabled || !trigger) {
|
|
7032
|
+
return {};
|
|
7033
|
+
}
|
|
7034
|
+
const left = {
|
|
7035
|
+
leftOutside: trigger.left - outerGap,
|
|
7036
|
+
leftInside: trigger.left,
|
|
7037
|
+
rightOutside: trigger.right + outerGap,
|
|
7038
|
+
rightInside: trigger.right,
|
|
7039
|
+
center: trigger.left + trigger.width / 2
|
|
7040
|
+
}[horizontalAlignment];
|
|
7041
|
+
const top = {
|
|
7042
|
+
topOutside: trigger.top - outerGap,
|
|
7043
|
+
topInside: trigger.top,
|
|
7044
|
+
bottomOutside: trigger.bottom + outerGap,
|
|
7045
|
+
bottomInside: trigger.bottom,
|
|
7046
|
+
center: trigger.top + trigger.height / 2
|
|
7047
|
+
}[verticalAlignment];
|
|
7048
|
+
const translateX = {
|
|
7049
|
+
leftOutside: "-100%",
|
|
7050
|
+
leftInside: void 0,
|
|
7051
|
+
rightOutside: void 0,
|
|
7052
|
+
rightInside: "-100%",
|
|
7053
|
+
center: "-50%"
|
|
7054
|
+
}[horizontalAlignment];
|
|
7055
|
+
const translateY = {
|
|
7056
|
+
topOutside: "-100%",
|
|
7057
|
+
topInside: void 0,
|
|
7058
|
+
bottomOutside: void 0,
|
|
7059
|
+
bottomInside: "-100%",
|
|
7060
|
+
center: "-50%"
|
|
7061
|
+
}[verticalAlignment];
|
|
7062
|
+
return {
|
|
7063
|
+
left: Math.max(left, edgePadding),
|
|
7064
|
+
top: Math.max(top, edgePadding),
|
|
7065
|
+
translate: [translateX ?? "0", translateY ?? "0"].join(" ")
|
|
7066
|
+
};
|
|
7067
|
+
};
|
|
7068
|
+
|
|
7069
|
+
// src/components/user-action/Menu.tsx
|
|
7070
|
+
import { createPortal } from "react-dom";
|
|
7071
|
+
import { Fragment as Fragment3, jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
7072
|
+
var MenuItem = ({
|
|
7073
|
+
children,
|
|
7074
|
+
onClick,
|
|
7075
|
+
alignment = "left",
|
|
7076
|
+
isDisabled = false,
|
|
7077
|
+
className
|
|
7078
|
+
}) => /* @__PURE__ */ jsx41(
|
|
7079
|
+
"div",
|
|
7080
|
+
{
|
|
7081
|
+
className: clsx33("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold", {
|
|
7082
|
+
"text-right": alignment === "right",
|
|
7083
|
+
"text-left": alignment === "left",
|
|
7084
|
+
"text-disabled-text cursor-not-allowed": isDisabled,
|
|
7085
|
+
"text-menu-text hover:bg-primary/20": !isDisabled,
|
|
7086
|
+
"cursor-pointer": !!onClick
|
|
7087
|
+
}, className),
|
|
7088
|
+
onClick,
|
|
7089
|
+
children
|
|
7090
|
+
}
|
|
7091
|
+
);
|
|
7092
|
+
function getScrollableParents(element) {
|
|
7093
|
+
const scrollables = [];
|
|
7094
|
+
let parent = element.parentElement;
|
|
7095
|
+
while (parent) {
|
|
7096
|
+
scrollables.push(parent);
|
|
7097
|
+
parent = parent.parentElement;
|
|
7098
|
+
}
|
|
7099
|
+
return scrollables;
|
|
7100
|
+
}
|
|
7101
|
+
var Menu = ({
|
|
7102
|
+
trigger,
|
|
7103
|
+
children,
|
|
7104
|
+
alignmentHorizontal = "leftInside",
|
|
7105
|
+
alignmentVertical = "bottomOutside",
|
|
7106
|
+
showOnHover = false,
|
|
7107
|
+
disabled = false,
|
|
7108
|
+
menuClassName = ""
|
|
7109
|
+
}) => {
|
|
7110
|
+
const { isHovered: isOpen, setIsHovered: setIsOpen } = useHoverState({ isDisabled: !showOnHover || disabled });
|
|
7111
|
+
const triggerRef = useRef6(null);
|
|
7112
|
+
const menuRef = useRef6(null);
|
|
7113
|
+
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
7114
|
+
const [isHidden, setIsHidden] = useState18(true);
|
|
7115
|
+
const bag = {
|
|
7116
|
+
isOpen,
|
|
7117
|
+
close: () => setIsOpen(false),
|
|
7118
|
+
toggleOpen: () => setIsOpen((prevState) => !prevState),
|
|
7119
|
+
disabled
|
|
7120
|
+
};
|
|
7121
|
+
const menuPosition = usePopoverPosition(
|
|
7122
|
+
triggerRef.current?.getBoundingClientRect(),
|
|
7123
|
+
{ verticalAlignment: alignmentVertical, horizontalAlignment: alignmentHorizontal, disabled }
|
|
7124
|
+
);
|
|
7125
|
+
useEffect19(() => {
|
|
7126
|
+
if (!isOpen) return;
|
|
7127
|
+
const triggerEl = triggerRef.current;
|
|
7128
|
+
if (!triggerEl) return;
|
|
7129
|
+
const scrollableParents = getScrollableParents(triggerEl);
|
|
7130
|
+
const close = () => setIsOpen(false);
|
|
7131
|
+
scrollableParents.forEach((parent) => {
|
|
7132
|
+
parent.addEventListener("scroll", close);
|
|
7133
|
+
});
|
|
7134
|
+
window.addEventListener("resize", close);
|
|
7135
|
+
return () => {
|
|
7136
|
+
scrollableParents.forEach((parent) => {
|
|
7137
|
+
parent.removeEventListener("scroll", close);
|
|
7138
|
+
});
|
|
7139
|
+
window.removeEventListener("resize", close);
|
|
7140
|
+
};
|
|
7141
|
+
}, [isOpen, setIsOpen]);
|
|
7142
|
+
useEffect19(() => {
|
|
7143
|
+
if (isOpen) {
|
|
7144
|
+
setIsHidden(false);
|
|
7145
|
+
}
|
|
7146
|
+
}, [isOpen]);
|
|
7147
|
+
return /* @__PURE__ */ jsxs27(Fragment3, { children: [
|
|
7148
|
+
trigger(bag, triggerRef),
|
|
7149
|
+
createPortal(/* @__PURE__ */ jsx41(
|
|
7150
|
+
"div",
|
|
7151
|
+
{
|
|
7152
|
+
ref: menuRef,
|
|
7153
|
+
onClick: (e) => e.stopPropagation(),
|
|
7154
|
+
className: clsx33(
|
|
7155
|
+
"absolute rounded-md bg-menu-background text-menu-text shadow-around-lg z-10",
|
|
7156
|
+
{
|
|
7157
|
+
"animate-pop-in": isOpen,
|
|
7158
|
+
"animate-pop-out": !isOpen,
|
|
7159
|
+
"hidden": isHidden
|
|
7160
|
+
},
|
|
7161
|
+
menuClassName
|
|
7162
|
+
),
|
|
7163
|
+
onAnimationEnd: () => {
|
|
7164
|
+
if (!isOpen) {
|
|
7165
|
+
setIsHidden(true);
|
|
7166
|
+
}
|
|
7167
|
+
},
|
|
7168
|
+
style: {
|
|
7169
|
+
...menuPosition
|
|
7170
|
+
},
|
|
7171
|
+
children: BagFunctionUtil.resolve(children, bag)
|
|
7172
|
+
}
|
|
7173
|
+
), document.body)
|
|
7174
|
+
] });
|
|
7175
|
+
};
|
|
7176
|
+
|
|
7177
|
+
// src/components/user-action/SearchBar.tsx
|
|
7178
|
+
import { Search as Search2 } from "lucide-react";
|
|
7179
|
+
import { clsx as clsx34 } from "clsx";
|
|
7180
|
+
import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
7181
|
+
var SearchBar = ({
|
|
7182
|
+
placeholder,
|
|
7183
|
+
onSearch,
|
|
7184
|
+
disableOnSearch,
|
|
7185
|
+
containerClassName,
|
|
7186
|
+
...inputProps
|
|
7187
|
+
}) => {
|
|
7188
|
+
const translation = useTranslation([formTranslation]);
|
|
7189
|
+
return /* @__PURE__ */ jsxs28("div", { className: clsx34("flex-row-2 justify-between items-center", containerClassName), children: [
|
|
7190
|
+
/* @__PURE__ */ jsx42(
|
|
7191
|
+
Input,
|
|
7192
|
+
{
|
|
7193
|
+
...inputProps,
|
|
7194
|
+
placeholder: placeholder ?? translation("search")
|
|
7195
|
+
}
|
|
7196
|
+
),
|
|
7197
|
+
onSearch && /* @__PURE__ */ jsx42(IconButton, { color: "neutral", disabled: disableOnSearch, onClick: onSearch, children: /* @__PURE__ */ jsx42(Search2, { className: "w-full h-full" }) })
|
|
7198
|
+
] });
|
|
7199
|
+
};
|
|
7200
|
+
|
|
6927
7201
|
// src/components/user-action/Select.tsx
|
|
6928
|
-
import { jsx as
|
|
7202
|
+
import { Fragment as Fragment4, jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
7203
|
+
var SelectTile = ({
|
|
7204
|
+
className,
|
|
7205
|
+
disabledClassName,
|
|
7206
|
+
title,
|
|
7207
|
+
...restProps
|
|
7208
|
+
}) => {
|
|
7209
|
+
return /* @__PURE__ */ jsx43(
|
|
7210
|
+
Tile,
|
|
7211
|
+
{
|
|
7212
|
+
...restProps,
|
|
7213
|
+
className: clsx35("px-2 py-1 rounded-md", className),
|
|
7214
|
+
disabledClassName: disabledClassName ?? "text-disabled-text cursor-not-allowed",
|
|
7215
|
+
title: { ...title, className: title.className ?? "font-semibold" }
|
|
7216
|
+
}
|
|
7217
|
+
);
|
|
7218
|
+
};
|
|
6929
7219
|
var Select = ({
|
|
6930
7220
|
value,
|
|
6931
7221
|
label,
|
|
6932
7222
|
options,
|
|
6933
7223
|
onChange,
|
|
6934
7224
|
hintText = "",
|
|
6935
|
-
|
|
6936
|
-
|
|
7225
|
+
selectedDisplayOverwrite,
|
|
7226
|
+
searchOptions,
|
|
7227
|
+
additionalItems,
|
|
6937
7228
|
className,
|
|
6938
|
-
|
|
7229
|
+
triggerClassName,
|
|
7230
|
+
hintTextClassName,
|
|
7231
|
+
...menuProps
|
|
6939
7232
|
}) => {
|
|
6940
|
-
const triggerRef = useRef6(null);
|
|
6941
|
-
const menuRef = useRef6(null);
|
|
6942
|
-
const [isOpen, setIsOpen] = useState18(false);
|
|
6943
|
-
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
6944
7233
|
const selectedOption = options.find((option) => option.value === value);
|
|
6945
7234
|
if (value !== void 0 && selectedOption === void 0 && selectedDisplayOverwrite === void 0) {
|
|
6946
7235
|
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");
|
|
6947
7236
|
}
|
|
6948
7237
|
const isShowingHint = !selectedDisplayOverwrite && !selectedOption?.label;
|
|
6949
|
-
|
|
6950
|
-
|
|
6951
|
-
|
|
6952
|
-
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
|
|
6974
|
-
|
|
6975
|
-
|
|
6976
|
-
|
|
6977
|
-
|
|
6978
|
-
|
|
6979
|
-
|
|
6980
|
-
|
|
6981
|
-
|
|
6982
|
-
|
|
6983
|
-
|
|
6984
|
-
|
|
6985
|
-
|
|
7238
|
+
const { result, search, setSearch } = useSearch({
|
|
7239
|
+
list: options,
|
|
7240
|
+
searchMapping: useCallback7((item) => item.searchTags, []),
|
|
7241
|
+
...searchOptions
|
|
7242
|
+
});
|
|
7243
|
+
return /* @__PURE__ */ jsxs29("div", { className: clsx35(className), children: [
|
|
7244
|
+
label && /* @__PURE__ */ jsx43(Label, { ...label, labelType: label.labelType ?? "labelBig", className: clsx35("mb-1", label.className) }),
|
|
7245
|
+
/* @__PURE__ */ jsx43(
|
|
7246
|
+
Menu,
|
|
7247
|
+
{
|
|
7248
|
+
...menuProps,
|
|
7249
|
+
trigger: ({ toggleOpen, isOpen, disabled }, ref) => /* @__PURE__ */ jsxs29(
|
|
7250
|
+
"button",
|
|
7251
|
+
{
|
|
7252
|
+
ref,
|
|
7253
|
+
className: clsx35(
|
|
7254
|
+
"btn-md justify-between w-full border-2",
|
|
7255
|
+
{
|
|
7256
|
+
"rounded-b-lg": !open,
|
|
7257
|
+
"bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
|
|
7258
|
+
"bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
|
|
7259
|
+
},
|
|
7260
|
+
triggerClassName
|
|
7261
|
+
),
|
|
7262
|
+
onClick: toggleOpen,
|
|
7263
|
+
disabled,
|
|
7264
|
+
children: [
|
|
7265
|
+
!isShowingHint && /* @__PURE__ */ jsx43("span", { className: "font-semibold", children: selectedDisplayOverwrite ?? selectedOption?.label }),
|
|
7266
|
+
isShowingHint && /* @__PURE__ */ jsx43("span", { className: clsx35("textstyle-description", hintTextClassName), children: hintText }),
|
|
7267
|
+
/* @__PURE__ */ jsx43(ExpansionIcon, { isExpanded: isOpen })
|
|
7268
|
+
]
|
|
7269
|
+
}
|
|
7270
|
+
),
|
|
7271
|
+
menuClassName: clsx35("flex-col-2 p-2 max-h-96 overflow-hidden", menuProps.menuClassName),
|
|
7272
|
+
children: (bag) => {
|
|
7273
|
+
const { close } = bag;
|
|
7274
|
+
return /* @__PURE__ */ jsxs29(Fragment4, { children: [
|
|
7275
|
+
!searchOptions?.disabled && /* @__PURE__ */ jsx43(
|
|
7276
|
+
SearchBar,
|
|
7277
|
+
{
|
|
7278
|
+
value: search,
|
|
7279
|
+
onChangeText: setSearch,
|
|
7280
|
+
autoFocus: true
|
|
7281
|
+
}
|
|
7282
|
+
),
|
|
7283
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex-col-2 overflow-y-auto", children: [
|
|
7284
|
+
result.map((option, index) => /* @__PURE__ */ jsx43(
|
|
7285
|
+
SelectTile,
|
|
6986
7286
|
{
|
|
6987
|
-
isSelected:
|
|
6988
|
-
|
|
6989
|
-
disabledClassName: "text-disabled-text cursor-not-allowed",
|
|
6990
|
-
title: { value: option.label, className: "font-semibold" },
|
|
7287
|
+
isSelected: option === selectedOption,
|
|
7288
|
+
title: { value: option.label },
|
|
6991
7289
|
onClick: () => {
|
|
6992
7290
|
onChange(option.value);
|
|
6993
|
-
|
|
7291
|
+
close();
|
|
6994
7292
|
},
|
|
6995
|
-
|
|
7293
|
+
disabled: option.disabled
|
|
6996
7294
|
},
|
|
6997
7295
|
index
|
|
6998
|
-
)
|
|
6999
|
-
|
|
7000
|
-
|
|
7296
|
+
)),
|
|
7297
|
+
additionalItems && additionalItems({ ...bag, search, selected: value })
|
|
7298
|
+
] })
|
|
7299
|
+
] });
|
|
7001
7300
|
}
|
|
7002
|
-
|
|
7003
|
-
|
|
7301
|
+
}
|
|
7302
|
+
)
|
|
7004
7303
|
] });
|
|
7005
7304
|
};
|
|
7006
7305
|
var SelectUncontrolled = ({
|
|
@@ -7010,13 +7309,13 @@ var SelectUncontrolled = ({
|
|
|
7010
7309
|
hintText,
|
|
7011
7310
|
...props
|
|
7012
7311
|
}) => {
|
|
7013
|
-
const [selected, setSelected] =
|
|
7014
|
-
|
|
7312
|
+
const [selected, setSelected] = useState19(value);
|
|
7313
|
+
useEffect20(() => {
|
|
7015
7314
|
if (options.find((options2) => options2.value === value)) {
|
|
7016
7315
|
setSelected(value);
|
|
7017
7316
|
}
|
|
7018
7317
|
}, [options, value]);
|
|
7019
|
-
return /* @__PURE__ */
|
|
7318
|
+
return /* @__PURE__ */ jsx43(
|
|
7020
7319
|
Select,
|
|
7021
7320
|
{
|
|
7022
7321
|
value: selected,
|
|
@@ -7032,7 +7331,7 @@ var SelectUncontrolled = ({
|
|
|
7032
7331
|
};
|
|
7033
7332
|
|
|
7034
7333
|
// src/components/modals/LanguageModal.tsx
|
|
7035
|
-
import { jsx as
|
|
7334
|
+
import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
7036
7335
|
var defaultLanguageModalTranslation = {
|
|
7037
7336
|
en: {
|
|
7038
7337
|
language: "Language",
|
|
@@ -7055,7 +7354,7 @@ var LanguageModal = ({
|
|
|
7055
7354
|
}) => {
|
|
7056
7355
|
const { language, setLanguage } = useLanguage();
|
|
7057
7356
|
const translation = useTranslation([defaultLanguageModalTranslation], overwriteTranslation);
|
|
7058
|
-
return /* @__PURE__ */
|
|
7357
|
+
return /* @__PURE__ */ jsx44(
|
|
7059
7358
|
Modal,
|
|
7060
7359
|
{
|
|
7061
7360
|
headerProps: {
|
|
@@ -7065,8 +7364,8 @@ var LanguageModal = ({
|
|
|
7065
7364
|
},
|
|
7066
7365
|
onClose,
|
|
7067
7366
|
...modalProps,
|
|
7068
|
-
children: /* @__PURE__ */
|
|
7069
|
-
/* @__PURE__ */
|
|
7367
|
+
children: /* @__PURE__ */ jsxs30("div", { className: "w-64", children: [
|
|
7368
|
+
/* @__PURE__ */ jsx44(
|
|
7070
7369
|
Select,
|
|
7071
7370
|
{
|
|
7072
7371
|
className: "mt-2",
|
|
@@ -7075,15 +7374,15 @@ var LanguageModal = ({
|
|
|
7075
7374
|
onChange: (language2) => setLanguage(language2)
|
|
7076
7375
|
}
|
|
7077
7376
|
),
|
|
7078
|
-
/* @__PURE__ */
|
|
7377
|
+
/* @__PURE__ */ jsx44("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ jsx44(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
|
|
7079
7378
|
] })
|
|
7080
7379
|
}
|
|
7081
7380
|
);
|
|
7082
7381
|
};
|
|
7083
7382
|
|
|
7084
7383
|
// src/theming/useTheme.tsx
|
|
7085
|
-
import { createContext as createContext2, useContext as useContext2, useEffect as
|
|
7086
|
-
import { jsx as
|
|
7384
|
+
import { createContext as createContext2, useContext as useContext2, useEffect as useEffect21, useState as useState20 } from "react";
|
|
7385
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
7087
7386
|
var themes = ["light", "dark"];
|
|
7088
7387
|
var defaultThemeTypeTranslation = {
|
|
7089
7388
|
en: {
|
|
@@ -7112,22 +7411,22 @@ var ThemeContext = createContext2({
|
|
|
7112
7411
|
setTheme: noop
|
|
7113
7412
|
});
|
|
7114
7413
|
var ThemeProvider = ({ children, initialTheme = "light" }) => {
|
|
7115
|
-
const [theme, setTheme] =
|
|
7116
|
-
|
|
7414
|
+
const [theme, setTheme] = useState20(initialTheme);
|
|
7415
|
+
useEffect21(() => {
|
|
7117
7416
|
if (theme !== initialTheme) {
|
|
7118
7417
|
console.warn("ThemeProvider initial state changed: Prefer using useTheme's setTheme instead");
|
|
7119
7418
|
setTheme(initialTheme);
|
|
7120
7419
|
}
|
|
7121
7420
|
}, [initialTheme]);
|
|
7122
|
-
|
|
7421
|
+
useEffect21(() => {
|
|
7123
7422
|
document.documentElement.setAttribute("data-theme", theme);
|
|
7124
7423
|
}, [theme]);
|
|
7125
|
-
return /* @__PURE__ */
|
|
7424
|
+
return /* @__PURE__ */ jsx45(ThemeContext.Provider, { value: { theme, setTheme }, children });
|
|
7126
7425
|
};
|
|
7127
7426
|
var useTheme = () => useContext2(ThemeContext);
|
|
7128
7427
|
|
|
7129
7428
|
// src/components/modals/ThemeModal.tsx
|
|
7130
|
-
import { jsx as
|
|
7429
|
+
import { jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
7131
7430
|
var defaultConfirmDialogTranslation = {
|
|
7132
7431
|
en: {
|
|
7133
7432
|
chooseTheme: "Choose your preferred theme"
|
|
@@ -7144,7 +7443,7 @@ var ThemeModal = ({
|
|
|
7144
7443
|
}) => {
|
|
7145
7444
|
const { theme, setTheme } = useTheme();
|
|
7146
7445
|
const translation = useTranslation([defaultConfirmDialogTranslation, formTranslation, ThemeUtil.translation], overwriteTranslation);
|
|
7147
|
-
return /* @__PURE__ */
|
|
7446
|
+
return /* @__PURE__ */ jsx46(
|
|
7148
7447
|
Modal,
|
|
7149
7448
|
{
|
|
7150
7449
|
headerProps: {
|
|
@@ -7154,8 +7453,8 @@ var ThemeModal = ({
|
|
|
7154
7453
|
},
|
|
7155
7454
|
onClose,
|
|
7156
7455
|
...modalProps,
|
|
7157
|
-
children: /* @__PURE__ */
|
|
7158
|
-
/* @__PURE__ */
|
|
7456
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "w-64", children: [
|
|
7457
|
+
/* @__PURE__ */ jsx46(
|
|
7159
7458
|
Select,
|
|
7160
7459
|
{
|
|
7161
7460
|
className: "mt-2",
|
|
@@ -7164,7 +7463,7 @@ var ThemeModal = ({
|
|
|
7164
7463
|
onChange: (theme2) => setTheme(theme2)
|
|
7165
7464
|
}
|
|
7166
7465
|
),
|
|
7167
|
-
/* @__PURE__ */
|
|
7466
|
+
/* @__PURE__ */ jsx46("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ jsx46(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
|
|
7168
7467
|
] })
|
|
7169
7468
|
}
|
|
7170
7469
|
);
|
|
@@ -7174,18 +7473,18 @@ var ThemeModal = ({
|
|
|
7174
7473
|
import { Check as Check4 } from "lucide-react";
|
|
7175
7474
|
|
|
7176
7475
|
// src/components/user-action/Checkbox.tsx
|
|
7177
|
-
import { useState as
|
|
7476
|
+
import { useState as useState21 } from "react";
|
|
7178
7477
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
7179
7478
|
import { Check as Check3, Minus } from "lucide-react";
|
|
7180
|
-
import
|
|
7181
|
-
import { jsx as
|
|
7479
|
+
import clsx36 from "clsx";
|
|
7480
|
+
import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
7182
7481
|
var checkboxSizeMapping = {
|
|
7183
|
-
small: "size-
|
|
7482
|
+
small: "size-5",
|
|
7184
7483
|
medium: "size-6",
|
|
7185
7484
|
large: "size-8"
|
|
7186
7485
|
};
|
|
7187
7486
|
var checkboxIconSizeMapping = {
|
|
7188
|
-
small: "size-
|
|
7487
|
+
small: "size-4",
|
|
7189
7488
|
medium: "size-5",
|
|
7190
7489
|
large: "size-7"
|
|
7191
7490
|
};
|
|
@@ -7214,36 +7513,27 @@ var Checkbox = ({
|
|
|
7214
7513
|
const newValue = checked === "indeterminate" ? false : !checked;
|
|
7215
7514
|
propagateChange(newValue);
|
|
7216
7515
|
};
|
|
7217
|
-
return /* @__PURE__ */
|
|
7218
|
-
/* @__PURE__ */
|
|
7516
|
+
return /* @__PURE__ */ jsxs32("div", { className: clsx36("group flex-row-2 items-center cursor-pointer", containerClassName), onClick: changeValue, children: [
|
|
7517
|
+
/* @__PURE__ */ jsx47(
|
|
7219
7518
|
CheckboxPrimitive.Root,
|
|
7220
7519
|
{
|
|
7221
7520
|
onCheckedChange: propagateChange,
|
|
7222
7521
|
checked,
|
|
7223
7522
|
disabled,
|
|
7224
7523
|
id,
|
|
7225
|
-
className:
|
|
7524
|
+
className: clsx36(usedSizeClass, `items-center border-2 rounded outline-none `, {
|
|
7226
7525
|
"text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
|
|
7227
|
-
"focus:border-primary": !disabled,
|
|
7526
|
+
"focus:border-primary group-hover:border-primary ": !disabled,
|
|
7228
7527
|
"bg-surface": !disabled && !checked,
|
|
7229
|
-
"bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
|
|
7230
|
-
"hover:border-primary focus:hover:border-primary": !disabled && !checked
|
|
7528
|
+
"bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
|
|
7231
7529
|
}, className),
|
|
7232
|
-
children: /* @__PURE__ */
|
|
7233
|
-
checked === true && /* @__PURE__ */
|
|
7234
|
-
checked === "indeterminate" && /* @__PURE__ */
|
|
7530
|
+
children: /* @__PURE__ */ jsxs32(CheckboxPrimitive.Indicator, { children: [
|
|
7531
|
+
checked === true && /* @__PURE__ */ jsx47(Check3, { className: innerIconSize }),
|
|
7532
|
+
checked === "indeterminate" && /* @__PURE__ */ jsx47(Minus, { className: innerIconSize })
|
|
7235
7533
|
] })
|
|
7236
7534
|
}
|
|
7237
7535
|
),
|
|
7238
|
-
label && /* @__PURE__ */
|
|
7239
|
-
Label,
|
|
7240
|
-
{
|
|
7241
|
-
...label,
|
|
7242
|
-
className: clsx32("cursor-pointer", label.className),
|
|
7243
|
-
htmlFor: id,
|
|
7244
|
-
onClick: changeValue
|
|
7245
|
-
}
|
|
7246
|
-
)
|
|
7536
|
+
label && /* @__PURE__ */ jsx47(Label, { ...label, className: clsx36(label.className), htmlFor: id })
|
|
7247
7537
|
] });
|
|
7248
7538
|
};
|
|
7249
7539
|
var CheckboxUncontrolled = ({
|
|
@@ -7252,7 +7542,7 @@ var CheckboxUncontrolled = ({
|
|
|
7252
7542
|
defaultValue = false,
|
|
7253
7543
|
...props
|
|
7254
7544
|
}) => {
|
|
7255
|
-
const [checked, setChecked] =
|
|
7545
|
+
const [checked, setChecked] = useState21(defaultValue);
|
|
7256
7546
|
const handleChange = (checked2) => {
|
|
7257
7547
|
if (onChangeTristate) {
|
|
7258
7548
|
onChangeTristate(checked2);
|
|
@@ -7262,7 +7552,7 @@ var CheckboxUncontrolled = ({
|
|
|
7262
7552
|
}
|
|
7263
7553
|
setChecked(checked2);
|
|
7264
7554
|
};
|
|
7265
|
-
return /* @__PURE__ */
|
|
7555
|
+
return /* @__PURE__ */ jsx47(
|
|
7266
7556
|
Checkbox,
|
|
7267
7557
|
{
|
|
7268
7558
|
...props,
|
|
@@ -7274,8 +7564,8 @@ var CheckboxUncontrolled = ({
|
|
|
7274
7564
|
|
|
7275
7565
|
// src/components/properties/PropertyBase.tsx
|
|
7276
7566
|
import { AlertTriangle } from "lucide-react";
|
|
7277
|
-
import
|
|
7278
|
-
import { jsx as
|
|
7567
|
+
import clsx37 from "clsx";
|
|
7568
|
+
import { jsx as jsx48, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
7279
7569
|
var PropertyBase = ({
|
|
7280
7570
|
overwriteTranslation,
|
|
7281
7571
|
name,
|
|
@@ -7289,36 +7579,44 @@ var PropertyBase = ({
|
|
|
7289
7579
|
}) => {
|
|
7290
7580
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7291
7581
|
const requiredAndNoValue = softRequired && !hasValue;
|
|
7292
|
-
return /* @__PURE__ */
|
|
7293
|
-
/* @__PURE__ */
|
|
7582
|
+
return /* @__PURE__ */ jsxs33("div", { className: clsx37("flex-row-0 group", className), children: [
|
|
7583
|
+
/* @__PURE__ */ jsxs33(
|
|
7294
7584
|
"div",
|
|
7295
7585
|
{
|
|
7296
|
-
className:
|
|
7297
|
-
"
|
|
7298
|
-
|
|
7299
|
-
|
|
7586
|
+
className: clsx37(
|
|
7587
|
+
"flex-row-2 max-w-48 min-w-48 px-3 py-2 items-center rounded-l-xl border-2 border-r-0",
|
|
7588
|
+
{
|
|
7589
|
+
"bg-property-title-background text-property-title-text group-hover:border-primary": !requiredAndNoValue,
|
|
7590
|
+
"bg-warning text-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
|
|
7591
|
+
},
|
|
7592
|
+
className
|
|
7593
|
+
),
|
|
7300
7594
|
children: [
|
|
7301
|
-
icon,
|
|
7302
|
-
name
|
|
7595
|
+
/* @__PURE__ */ jsx48("div", { className: "max-w-6 min-w-6 text-text-default", children: icon }),
|
|
7596
|
+
/* @__PURE__ */ jsx48("span", { className: "font-semibold", children: name })
|
|
7303
7597
|
]
|
|
7304
7598
|
}
|
|
7305
7599
|
),
|
|
7306
|
-
/* @__PURE__ */
|
|
7600
|
+
/* @__PURE__ */ jsxs33(
|
|
7307
7601
|
"div",
|
|
7308
7602
|
{
|
|
7309
|
-
className:
|
|
7310
|
-
"
|
|
7311
|
-
|
|
7312
|
-
|
|
7603
|
+
className: clsx37(
|
|
7604
|
+
"flex-row-2 grow px-3 py-2 justify-between items-center rounded-r-xl border-2 border-l-0 min-h-15",
|
|
7605
|
+
{
|
|
7606
|
+
"bg-surface group-hover:border-primary": !requiredAndNoValue,
|
|
7607
|
+
"bg-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
|
|
7608
|
+
},
|
|
7609
|
+
className
|
|
7610
|
+
),
|
|
7313
7611
|
children: [
|
|
7314
7612
|
input({ softRequired, hasValue }),
|
|
7315
|
-
requiredAndNoValue && /* @__PURE__ */
|
|
7316
|
-
onRemove && /* @__PURE__ */
|
|
7613
|
+
requiredAndNoValue && /* @__PURE__ */ jsx48("div", { className: "text-warning", children: /* @__PURE__ */ jsx48(AlertTriangle, { size: 24 }) }),
|
|
7614
|
+
onRemove && hasValue && /* @__PURE__ */ jsx48(
|
|
7317
7615
|
TextButton,
|
|
7318
7616
|
{
|
|
7319
7617
|
onClick: onRemove,
|
|
7320
7618
|
color: "negative",
|
|
7321
|
-
className:
|
|
7619
|
+
className: clsx37("items-center", { "!text-transparent": !hasValue || readOnly }),
|
|
7322
7620
|
disabled: !hasValue || readOnly,
|
|
7323
7621
|
children: translation("remove")
|
|
7324
7622
|
}
|
|
@@ -7330,7 +7628,7 @@ var PropertyBase = ({
|
|
|
7330
7628
|
};
|
|
7331
7629
|
|
|
7332
7630
|
// src/components/properties/CheckboxProperty.tsx
|
|
7333
|
-
import { jsx as
|
|
7631
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
7334
7632
|
var CheckboxProperty = ({
|
|
7335
7633
|
overwriteTranslation,
|
|
7336
7634
|
value,
|
|
@@ -7339,30 +7637,31 @@ var CheckboxProperty = ({
|
|
|
7339
7637
|
...baseProps
|
|
7340
7638
|
}) => {
|
|
7341
7639
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7342
|
-
return /* @__PURE__ */
|
|
7640
|
+
return /* @__PURE__ */ jsx49(
|
|
7343
7641
|
PropertyBase,
|
|
7344
7642
|
{
|
|
7345
7643
|
...baseProps,
|
|
7346
7644
|
hasValue: true,
|
|
7347
7645
|
readOnly,
|
|
7348
|
-
icon: /* @__PURE__ */
|
|
7349
|
-
input: () => /* @__PURE__ */
|
|
7646
|
+
icon: /* @__PURE__ */ jsx49(Check4, { size: 24 }),
|
|
7647
|
+
input: () => /* @__PURE__ */ jsx49(
|
|
7350
7648
|
Checkbox,
|
|
7351
7649
|
{
|
|
7352
7650
|
checked: value ?? true,
|
|
7353
7651
|
disabled: readOnly,
|
|
7354
7652
|
onChange,
|
|
7355
|
-
label: { name: `${translation("yes")}/${translation("no")}`, labelType: "labelMedium" }
|
|
7653
|
+
label: { name: `${translation("yes")}/${translation("no")}`, labelType: "labelMedium" },
|
|
7654
|
+
containerClassName: "w-full"
|
|
7356
7655
|
}
|
|
7357
|
-
)
|
|
7656
|
+
)
|
|
7358
7657
|
}
|
|
7359
7658
|
);
|
|
7360
7659
|
};
|
|
7361
7660
|
|
|
7362
7661
|
// src/components/properties/DateProperty.tsx
|
|
7363
7662
|
import { CalendarDays } from "lucide-react";
|
|
7364
|
-
import
|
|
7365
|
-
import { jsx as
|
|
7663
|
+
import clsx38 from "clsx";
|
|
7664
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
7366
7665
|
var DateProperty = ({
|
|
7367
7666
|
value,
|
|
7368
7667
|
onChange = noop,
|
|
@@ -7373,35 +7672,29 @@ var DateProperty = ({
|
|
|
7373
7672
|
}) => {
|
|
7374
7673
|
const hasValue = !!value;
|
|
7375
7674
|
const dateText = value ? type === "dateTime" ? formatDateTime(value) : formatDate(value) : "";
|
|
7376
|
-
return /* @__PURE__ */
|
|
7675
|
+
return /* @__PURE__ */ jsx50(
|
|
7377
7676
|
PropertyBase,
|
|
7378
7677
|
{
|
|
7379
7678
|
...baseProps,
|
|
7380
7679
|
hasValue,
|
|
7381
|
-
icon: /* @__PURE__ */
|
|
7382
|
-
input: ({ softRequired }) => /* @__PURE__ */
|
|
7383
|
-
|
|
7680
|
+
icon: /* @__PURE__ */ jsx50(CalendarDays, { size: 24 }),
|
|
7681
|
+
input: ({ softRequired }) => /* @__PURE__ */ jsx50(
|
|
7682
|
+
Input,
|
|
7384
7683
|
{
|
|
7385
|
-
className:
|
|
7386
|
-
|
|
7387
|
-
|
|
7388
|
-
|
|
7389
|
-
|
|
7390
|
-
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
const value2 = event.target.value;
|
|
7395
|
-
if (!value2) {
|
|
7396
|
-
event.preventDefault();
|
|
7397
|
-
return;
|
|
7398
|
-
}
|
|
7399
|
-
const dueDate = new Date(value2);
|
|
7400
|
-
onChange(dueDate);
|
|
7401
|
-
},
|
|
7402
|
-
onEditCompleted: (value2) => onEditComplete(new Date(value2))
|
|
7684
|
+
className: clsx38("!ring-0 !border-0 !outline-0 !p-0 !m-0 !shadow-none !w-fit !rounded-none", { "bg-surface-warning": softRequired && !hasValue }),
|
|
7685
|
+
value: dateText,
|
|
7686
|
+
type: type === "dateTime" ? "datetime-local" : "date",
|
|
7687
|
+
readOnly,
|
|
7688
|
+
onChange: (event) => {
|
|
7689
|
+
const value2 = event.target.value;
|
|
7690
|
+
if (!value2) {
|
|
7691
|
+
event.preventDefault();
|
|
7692
|
+
return;
|
|
7403
7693
|
}
|
|
7404
|
-
|
|
7694
|
+
const dueDate = new Date(value2);
|
|
7695
|
+
onChange(dueDate);
|
|
7696
|
+
},
|
|
7697
|
+
onEditCompleted: (value2) => onEditComplete(new Date(value2))
|
|
7405
7698
|
}
|
|
7406
7699
|
)
|
|
7407
7700
|
}
|
|
@@ -7409,14 +7702,15 @@ var DateProperty = ({
|
|
|
7409
7702
|
};
|
|
7410
7703
|
|
|
7411
7704
|
// src/components/properties/MultiSelectProperty.tsx
|
|
7412
|
-
import { List } from "lucide-react";
|
|
7413
|
-
import
|
|
7705
|
+
import { List, Plus as Plus2 } from "lucide-react";
|
|
7706
|
+
import clsx40 from "clsx";
|
|
7414
7707
|
|
|
7415
7708
|
// src/components/user-action/MultiSelect.tsx
|
|
7416
|
-
import {
|
|
7417
|
-
import {
|
|
7418
|
-
import
|
|
7419
|
-
import {
|
|
7709
|
+
import { useCallback as useCallback8 } from "react";
|
|
7710
|
+
import { useEffect as useEffect22, useState as useState22 } from "react";
|
|
7711
|
+
import clsx39 from "clsx";
|
|
7712
|
+
import { Plus } from "lucide-react";
|
|
7713
|
+
import { Fragment as Fragment5, jsx as jsx51, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
7420
7714
|
var defaultMultiSelectTranslation = {
|
|
7421
7715
|
en: {
|
|
7422
7716
|
selected: `{{amount}} selected`
|
|
@@ -7427,89 +7721,107 @@ var defaultMultiSelectTranslation = {
|
|
|
7427
7721
|
};
|
|
7428
7722
|
var MultiSelect = ({
|
|
7429
7723
|
overwriteTranslation,
|
|
7430
|
-
options,
|
|
7431
7724
|
label,
|
|
7725
|
+
options,
|
|
7432
7726
|
onChange,
|
|
7433
7727
|
hintText,
|
|
7434
|
-
isDisabled = false,
|
|
7435
|
-
isSearchEnabled = false,
|
|
7436
7728
|
selectedDisplayOverwrite,
|
|
7729
|
+
searchOptions,
|
|
7730
|
+
additionalItems,
|
|
7437
7731
|
useChipDisplay = false,
|
|
7438
|
-
className
|
|
7732
|
+
className,
|
|
7733
|
+
triggerClassName,
|
|
7734
|
+
hintTextClassName,
|
|
7735
|
+
...menuProps
|
|
7439
7736
|
}) => {
|
|
7440
7737
|
const translation = useTranslation([formTranslation, defaultMultiSelectTranslation], overwriteTranslation);
|
|
7441
|
-
const
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
7738
|
+
const { result, search, setSearch } = useSearch({
|
|
7739
|
+
list: options,
|
|
7740
|
+
searchMapping: useCallback8((item) => item.searchTags, []),
|
|
7741
|
+
...searchOptions
|
|
7742
|
+
});
|
|
7445
7743
|
const selectedItems = options.filter((value) => value.selected);
|
|
7446
7744
|
const isShowingHint = !selectedDisplayOverwrite && selectedItems.length === 0;
|
|
7447
|
-
return /* @__PURE__ */
|
|
7448
|
-
label && /* @__PURE__ */
|
|
7745
|
+
return /* @__PURE__ */ jsxs34("div", { className: clsx39(className), children: [
|
|
7746
|
+
label && /* @__PURE__ */ jsx51(
|
|
7449
7747
|
Label,
|
|
7450
7748
|
{
|
|
7451
7749
|
...label,
|
|
7452
7750
|
htmlFor: label.name,
|
|
7453
|
-
className:
|
|
7751
|
+
className: clsx39(" mb-1", label.className),
|
|
7454
7752
|
labelType: label.labelType ?? "labelBig"
|
|
7455
7753
|
}
|
|
7456
7754
|
),
|
|
7457
|
-
/* @__PURE__ */
|
|
7458
|
-
|
|
7459
|
-
|
|
7460
|
-
|
|
7461
|
-
|
|
7462
|
-
|
|
7463
|
-
|
|
7464
|
-
|
|
7465
|
-
|
|
7466
|
-
"
|
|
7467
|
-
"bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": isDisabled
|
|
7468
|
-
}
|
|
7469
|
-
),
|
|
7470
|
-
onClick: () => setIsOpen(!isOpen),
|
|
7471
|
-
disabled: isDisabled,
|
|
7472
|
-
children: [
|
|
7473
|
-
!isShowingHint && /* @__PURE__ */ jsx48("span", { className: "font-semibold text-menu-text", children: selectedDisplayOverwrite ?? (useChipDisplay && selectedItems ? /* @__PURE__ */ jsx48(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) : translation("selected", { replacements: { amount: selectedItems.length.toString() } })) }),
|
|
7474
|
-
isShowingHint && /* @__PURE__ */ jsx48("span", { className: "textstyle-description", children: hintText ?? translation("select") }),
|
|
7475
|
-
isOpen ? /* @__PURE__ */ jsx48(ChevronUp4, { size: 24, className: "min-w-6" }) : /* @__PURE__ */ jsx48(ChevronDown5, { className: "min-w-6" })
|
|
7476
|
-
]
|
|
7477
|
-
}
|
|
7478
|
-
),
|
|
7479
|
-
isOpen && /* @__PURE__ */ jsxs32(
|
|
7480
|
-
"div",
|
|
7481
|
-
{
|
|
7482
|
-
ref: menuRef,
|
|
7483
|
-
className: "absolute w-full z-10 rounded-lg mt-0.5 bg-menu-background text-menu-text shadow-around-lg max-h-[500px] overflow-y-auto p-2",
|
|
7484
|
-
children: [
|
|
7485
|
-
/* @__PURE__ */ jsx48(
|
|
7486
|
-
SearchableList,
|
|
7755
|
+
/* @__PURE__ */ jsx51(
|
|
7756
|
+
Menu,
|
|
7757
|
+
{
|
|
7758
|
+
...menuProps,
|
|
7759
|
+
trigger: ({ toggleOpen, isOpen, disabled }, ref) => /* @__PURE__ */ jsx51(
|
|
7760
|
+
"button",
|
|
7761
|
+
{
|
|
7762
|
+
ref,
|
|
7763
|
+
className: clsx39(
|
|
7764
|
+
"btn-md justify-between w-full border-2 h-auto",
|
|
7487
7765
|
{
|
|
7488
|
-
|
|
7489
|
-
|
|
7490
|
-
|
|
7491
|
-
|
|
7492
|
-
|
|
7766
|
+
"min-h-14": useChipDisplay,
|
|
7767
|
+
"bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
|
|
7768
|
+
"bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
|
|
7769
|
+
},
|
|
7770
|
+
triggerClassName
|
|
7771
|
+
),
|
|
7772
|
+
onClick: toggleOpen,
|
|
7773
|
+
disabled,
|
|
7774
|
+
children: useChipDisplay ? /* @__PURE__ */ jsx51(Fragment5, { children: isShowingHint ? /* @__PURE__ */ jsx51(IconButton, { disabled, size: "small", color: "neutral", children: /* @__PURE__ */ jsx51(Plus, {}) }) : /* @__PURE__ */ jsx51(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ jsxs34(Fragment5, { children: [
|
|
7775
|
+
!isShowingHint && /* @__PURE__ */ jsx51("span", { className: "font-semibold", children: selectedDisplayOverwrite ?? translation("selected", { replacements: { amount: selectedItems.length.toString() } }) }),
|
|
7776
|
+
isShowingHint && /* @__PURE__ */ jsx51("span", { className: clsx39("textstyle-description", hintTextClassName), children: hintText ?? translation("select") }),
|
|
7777
|
+
/* @__PURE__ */ jsx51(ExpansionIcon, { isExpanded: isOpen })
|
|
7778
|
+
] })
|
|
7779
|
+
}
|
|
7780
|
+
),
|
|
7781
|
+
menuClassName: clsx39("flex-col-2 p-2 max-h-96 overflow-hidden", menuProps.menuClassName),
|
|
7782
|
+
children: (bag) => {
|
|
7783
|
+
const { close } = bag;
|
|
7784
|
+
return /* @__PURE__ */ jsxs34(Fragment5, { children: [
|
|
7785
|
+
!searchOptions?.disabled && /* @__PURE__ */ jsx51(
|
|
7786
|
+
SearchBar,
|
|
7787
|
+
{
|
|
7788
|
+
value: search,
|
|
7789
|
+
onChangeText: setSearch,
|
|
7790
|
+
autoFocus: true
|
|
7791
|
+
}
|
|
7792
|
+
),
|
|
7793
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex-col-2 overflow-y-auto", children: [
|
|
7794
|
+
result.map((option, index) => {
|
|
7795
|
+
const update = () => {
|
|
7796
|
+
onChange(options.map((value) => value.value === option.value ? {
|
|
7797
|
+
...option,
|
|
7798
|
+
selected: !value.selected
|
|
7799
|
+
} : value));
|
|
7800
|
+
};
|
|
7801
|
+
return /* @__PURE__ */ jsx51(
|
|
7802
|
+
SelectTile,
|
|
7493
7803
|
{
|
|
7494
|
-
|
|
7495
|
-
|
|
7496
|
-
|
|
7497
|
-
|
|
7498
|
-
|
|
7499
|
-
|
|
7500
|
-
|
|
7501
|
-
|
|
7502
|
-
|
|
7503
|
-
},
|
|
7504
|
-
|
|
7804
|
+
prefix: /* @__PURE__ */ jsx51(
|
|
7805
|
+
Checkbox,
|
|
7806
|
+
{
|
|
7807
|
+
checked: option.selected,
|
|
7808
|
+
onChange: update,
|
|
7809
|
+
size: "small",
|
|
7810
|
+
disabled: option.disabled
|
|
7811
|
+
}
|
|
7812
|
+
),
|
|
7813
|
+
title: { value: option.label },
|
|
7814
|
+
onClick: update,
|
|
7815
|
+
disabled: option.disabled
|
|
7505
7816
|
},
|
|
7506
7817
|
index
|
|
7507
|
-
)
|
|
7508
|
-
}
|
|
7509
|
-
|
|
7510
|
-
|
|
7511
|
-
|
|
7512
|
-
|
|
7818
|
+
);
|
|
7819
|
+
}),
|
|
7820
|
+
additionalItems && additionalItems({ ...bag, search })
|
|
7821
|
+
] }),
|
|
7822
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex-row-2 justify-between", children: [
|
|
7823
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex-row-2", children: [
|
|
7824
|
+
/* @__PURE__ */ jsx51(
|
|
7513
7825
|
SolidButton,
|
|
7514
7826
|
{
|
|
7515
7827
|
color: "neutral",
|
|
@@ -7524,7 +7836,7 @@ var MultiSelect = ({
|
|
|
7524
7836
|
children: translation("all")
|
|
7525
7837
|
}
|
|
7526
7838
|
),
|
|
7527
|
-
/* @__PURE__ */
|
|
7839
|
+
/* @__PURE__ */ jsx51(
|
|
7528
7840
|
SolidButton,
|
|
7529
7841
|
{
|
|
7530
7842
|
color: "neutral",
|
|
@@ -7539,12 +7851,12 @@ var MultiSelect = ({
|
|
|
7539
7851
|
}
|
|
7540
7852
|
)
|
|
7541
7853
|
] }),
|
|
7542
|
-
/* @__PURE__ */
|
|
7854
|
+
/* @__PURE__ */ jsx51(SolidButton, { size: "small", onClick: close, children: "Done" })
|
|
7543
7855
|
] })
|
|
7544
|
-
]
|
|
7856
|
+
] });
|
|
7545
7857
|
}
|
|
7546
|
-
|
|
7547
|
-
|
|
7858
|
+
}
|
|
7859
|
+
)
|
|
7548
7860
|
] });
|
|
7549
7861
|
};
|
|
7550
7862
|
var MultiSelectUncontrolled = ({
|
|
@@ -7552,11 +7864,11 @@ var MultiSelectUncontrolled = ({
|
|
|
7552
7864
|
onChange,
|
|
7553
7865
|
...props
|
|
7554
7866
|
}) => {
|
|
7555
|
-
const [usedOptions, setUsedOptions] =
|
|
7556
|
-
|
|
7867
|
+
const [usedOptions, setUsedOptions] = useState22(options);
|
|
7868
|
+
useEffect22(() => {
|
|
7557
7869
|
setUsedOptions(options);
|
|
7558
7870
|
}, [options]);
|
|
7559
|
-
return /* @__PURE__ */
|
|
7871
|
+
return /* @__PURE__ */ jsx51(
|
|
7560
7872
|
MultiSelect,
|
|
7561
7873
|
{
|
|
7562
7874
|
...props,
|
|
@@ -7570,7 +7882,7 @@ var MultiSelectUncontrolled = ({
|
|
|
7570
7882
|
};
|
|
7571
7883
|
|
|
7572
7884
|
// src/components/properties/MultiSelectProperty.tsx
|
|
7573
|
-
import { jsx as
|
|
7885
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
7574
7886
|
var MultiSelectProperty = ({
|
|
7575
7887
|
overwriteTranslation,
|
|
7576
7888
|
options,
|
|
@@ -7578,11 +7890,12 @@ var MultiSelectProperty = ({
|
|
|
7578
7890
|
readOnly = false,
|
|
7579
7891
|
softRequired,
|
|
7580
7892
|
onRemove,
|
|
7893
|
+
onAddNew,
|
|
7581
7894
|
...multiSelectProps
|
|
7582
7895
|
}) => {
|
|
7583
7896
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7584
7897
|
const hasValue = options.some((value) => value.selected);
|
|
7585
|
-
return /* @__PURE__ */
|
|
7898
|
+
return /* @__PURE__ */ jsx52(
|
|
7586
7899
|
PropertyBase,
|
|
7587
7900
|
{
|
|
7588
7901
|
name,
|
|
@@ -7590,20 +7903,42 @@ var MultiSelectProperty = ({
|
|
|
7590
7903
|
readOnly,
|
|
7591
7904
|
softRequired,
|
|
7592
7905
|
hasValue,
|
|
7593
|
-
icon: /* @__PURE__ */
|
|
7594
|
-
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */
|
|
7595
|
-
|
|
7906
|
+
icon: /* @__PURE__ */ jsx52(List, { size: 24 }),
|
|
7907
|
+
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ jsx52(
|
|
7908
|
+
MultiSelect,
|
|
7596
7909
|
{
|
|
7597
|
-
|
|
7598
|
-
|
|
7599
|
-
|
|
7910
|
+
...multiSelectProps,
|
|
7911
|
+
className: clsx40("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
|
|
7912
|
+
options,
|
|
7913
|
+
disabled: readOnly,
|
|
7914
|
+
useChipDisplay: true,
|
|
7915
|
+
hintText: `${translation("select")}...`,
|
|
7916
|
+
searchOptions: {
|
|
7917
|
+
sortingFunction: (a, b) => a.value.localeCompare(b.value),
|
|
7918
|
+
...multiSelectProps?.searchOptions
|
|
7919
|
+
},
|
|
7920
|
+
additionalItems: ({ close, search }) => {
|
|
7921
|
+
if (!onAddNew && !search.trim()) {
|
|
7922
|
+
return void 0;
|
|
7923
|
+
}
|
|
7924
|
+
return /* @__PURE__ */ jsx52(
|
|
7925
|
+
SelectTile,
|
|
7926
|
+
{
|
|
7927
|
+
prefix: /* @__PURE__ */ jsx52(Plus2, {}),
|
|
7928
|
+
title: { value: `${translation("add")} ${search.trim()}` },
|
|
7929
|
+
onClick: () => {
|
|
7930
|
+
onAddNew(search);
|
|
7931
|
+
close();
|
|
7932
|
+
},
|
|
7933
|
+
disabled: options.some((value) => value.value === search.trim())
|
|
7934
|
+
}
|
|
7935
|
+
);
|
|
7936
|
+
},
|
|
7937
|
+
triggerClassName: clsx40(
|
|
7938
|
+
"!border-none !p-0 !min-h-10",
|
|
7600
7939
|
{
|
|
7601
|
-
|
|
7602
|
-
|
|
7603
|
-
options,
|
|
7604
|
-
isDisabled: readOnly,
|
|
7605
|
-
useChipDisplay: true,
|
|
7606
|
-
hintText: `${translation("select")}...`
|
|
7940
|
+
"!bg-warning !text-surface-warning": softRequired2 && !hasValue,
|
|
7941
|
+
"": !softRequired2 || hasValue
|
|
7607
7942
|
}
|
|
7608
7943
|
)
|
|
7609
7944
|
}
|
|
@@ -7614,8 +7949,8 @@ var MultiSelectProperty = ({
|
|
|
7614
7949
|
|
|
7615
7950
|
// src/components/properties/NumberProperty.tsx
|
|
7616
7951
|
import { Binary } from "lucide-react";
|
|
7617
|
-
import
|
|
7618
|
-
import { jsx as
|
|
7952
|
+
import clsx41 from "clsx";
|
|
7953
|
+
import { jsx as jsx53, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
7619
7954
|
var defaultNumberPropertyTranslation = {
|
|
7620
7955
|
en: {
|
|
7621
7956
|
value: "Value"
|
|
@@ -7636,23 +7971,23 @@ var NumberProperty = ({
|
|
|
7636
7971
|
}) => {
|
|
7637
7972
|
const translation = useTranslation([defaultNumberPropertyTranslation], overwriteTranslation);
|
|
7638
7973
|
const hasValue = value !== void 0;
|
|
7639
|
-
return /* @__PURE__ */
|
|
7974
|
+
return /* @__PURE__ */ jsx53(
|
|
7640
7975
|
PropertyBase,
|
|
7641
7976
|
{
|
|
7642
7977
|
...baseProps,
|
|
7643
7978
|
onRemove,
|
|
7644
7979
|
hasValue,
|
|
7645
|
-
icon: /* @__PURE__ */
|
|
7646
|
-
input: ({ softRequired }) => /* @__PURE__ */
|
|
7980
|
+
icon: /* @__PURE__ */ jsx53(Binary, { size: 24 }),
|
|
7981
|
+
input: ({ softRequired }) => /* @__PURE__ */ jsxs35(
|
|
7647
7982
|
"div",
|
|
7648
7983
|
{
|
|
7649
|
-
className:
|
|
7984
|
+
className: clsx41("flex-row-2 grow", { "text-warning": softRequired && !hasValue }),
|
|
7650
7985
|
children: [
|
|
7651
|
-
/* @__PURE__ */
|
|
7986
|
+
/* @__PURE__ */ jsx53(
|
|
7652
7987
|
Input,
|
|
7653
7988
|
{
|
|
7654
7989
|
expanded: false,
|
|
7655
|
-
className:
|
|
7990
|
+
className: clsx41("!ring-0 !border-0 !outline-0 !p-0 !m-0 !w-fit !shadow-none !rounded-none", { "bg-surface-warning placeholder-warning": softRequired && !hasValue }),
|
|
7656
7991
|
value: value?.toString() ?? "",
|
|
7657
7992
|
type: "number",
|
|
7658
7993
|
readOnly,
|
|
@@ -7675,7 +8010,7 @@ var NumberProperty = ({
|
|
|
7675
8010
|
}
|
|
7676
8011
|
}
|
|
7677
8012
|
),
|
|
7678
|
-
suffix && /* @__PURE__ */
|
|
8013
|
+
suffix && /* @__PURE__ */ jsx53("span", { className: clsx41("ml-1", { "bg-surface-warning": softRequired && !hasValue }), children: suffix })
|
|
7679
8014
|
]
|
|
7680
8015
|
}
|
|
7681
8016
|
)
|
|
@@ -7684,9 +8019,9 @@ var NumberProperty = ({
|
|
|
7684
8019
|
};
|
|
7685
8020
|
|
|
7686
8021
|
// src/components/properties/SelectProperty.tsx
|
|
7687
|
-
import { List as List2 } from "lucide-react";
|
|
7688
|
-
import
|
|
7689
|
-
import { jsx as
|
|
8022
|
+
import { List as List2, Plus as Plus3 } from "lucide-react";
|
|
8023
|
+
import clsx42 from "clsx";
|
|
8024
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
7690
8025
|
var SingleSelectProperty = ({
|
|
7691
8026
|
overwriteTranslation,
|
|
7692
8027
|
value,
|
|
@@ -7695,11 +8030,12 @@ var SingleSelectProperty = ({
|
|
|
7695
8030
|
readOnly = false,
|
|
7696
8031
|
softRequired,
|
|
7697
8032
|
onRemove,
|
|
8033
|
+
onAddNew,
|
|
7698
8034
|
...selectProps
|
|
7699
8035
|
}) => {
|
|
7700
8036
|
const translation = useTranslation([formTranslation], overwriteTranslation);
|
|
7701
8037
|
const hasValue = value !== void 0;
|
|
7702
|
-
return /* @__PURE__ */
|
|
8038
|
+
return /* @__PURE__ */ jsx54(
|
|
7703
8039
|
PropertyBase,
|
|
7704
8040
|
{
|
|
7705
8041
|
name,
|
|
@@ -7707,22 +8043,45 @@ var SingleSelectProperty = ({
|
|
|
7707
8043
|
readOnly,
|
|
7708
8044
|
softRequired,
|
|
7709
8045
|
hasValue,
|
|
7710
|
-
icon: /* @__PURE__ */
|
|
7711
|
-
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */
|
|
7712
|
-
|
|
8046
|
+
icon: /* @__PURE__ */ jsx54(List2, { size: 24 }),
|
|
8047
|
+
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ jsx54(
|
|
8048
|
+
Select,
|
|
7713
8049
|
{
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
8050
|
+
...selectProps,
|
|
8051
|
+
value,
|
|
8052
|
+
options,
|
|
8053
|
+
disabled: readOnly,
|
|
8054
|
+
className: clsx42("w-full"),
|
|
8055
|
+
hintText: `${translation("select")}...`,
|
|
8056
|
+
searchOptions: {
|
|
8057
|
+
sortingFunction: (a, b) => a.value.localeCompare(b.value),
|
|
8058
|
+
...selectProps?.searchOptions
|
|
8059
|
+
},
|
|
8060
|
+
additionalItems: ({ close, search }) => {
|
|
8061
|
+
if (!onAddNew && !search.trim()) {
|
|
8062
|
+
return void 0;
|
|
8063
|
+
}
|
|
8064
|
+
return /* @__PURE__ */ jsx54(
|
|
8065
|
+
SelectTile,
|
|
8066
|
+
{
|
|
8067
|
+
prefix: /* @__PURE__ */ jsx54(Plus3, {}),
|
|
8068
|
+
title: { value: `${translation("add")} ${search.trim()}` },
|
|
8069
|
+
onClick: () => {
|
|
8070
|
+
onAddNew(search);
|
|
8071
|
+
close();
|
|
8072
|
+
},
|
|
8073
|
+
disabled: options.some((value2) => value2.value === search.trim())
|
|
8074
|
+
}
|
|
8075
|
+
);
|
|
8076
|
+
},
|
|
8077
|
+
triggerClassName: clsx42(
|
|
8078
|
+
"!border-none",
|
|
7717
8079
|
{
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
options,
|
|
7721
|
-
isDisabled: readOnly,
|
|
7722
|
-
className: clsx38("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
|
|
7723
|
-
hintText: `${translation("select")}...`
|
|
8080
|
+
"!bg-warning !text-surface-warning": softRequired2 && !hasValue,
|
|
8081
|
+
"!bg-property-title-background": !softRequired2 || hasValue
|
|
7724
8082
|
}
|
|
7725
|
-
)
|
|
8083
|
+
),
|
|
8084
|
+
hintTextClassName: softRequired2 && !hasValue ? "text-surface-warning" : void 0
|
|
7726
8085
|
}
|
|
7727
8086
|
)
|
|
7728
8087
|
}
|
|
@@ -7731,12 +8090,12 @@ var SingleSelectProperty = ({
|
|
|
7731
8090
|
|
|
7732
8091
|
// src/components/properties/TextProperty.tsx
|
|
7733
8092
|
import { Text } from "lucide-react";
|
|
7734
|
-
import
|
|
8093
|
+
import clsx44 from "clsx";
|
|
7735
8094
|
|
|
7736
8095
|
// src/components/user-action/Textarea.tsx
|
|
7737
|
-
import { useEffect as
|
|
7738
|
-
import
|
|
7739
|
-
import { jsx as
|
|
8096
|
+
import { useEffect as useEffect23, useState as useState23 } from "react";
|
|
8097
|
+
import clsx43 from "clsx";
|
|
8098
|
+
import { jsx as jsx55, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
7740
8099
|
var Textarea = ({
|
|
7741
8100
|
label,
|
|
7742
8101
|
headline,
|
|
@@ -7749,39 +8108,48 @@ var Textarea = ({
|
|
|
7749
8108
|
onEditCompleted = noop,
|
|
7750
8109
|
saveDelayOptions,
|
|
7751
8110
|
defaultStyle = true,
|
|
8111
|
+
disabled = false,
|
|
7752
8112
|
className,
|
|
7753
8113
|
...props
|
|
7754
8114
|
}) => {
|
|
7755
|
-
const [hasFocus, setHasFocus] =
|
|
8115
|
+
const [hasFocus, setHasFocus] = useState23(false);
|
|
7756
8116
|
const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
|
|
7757
8117
|
const onEditCompletedWrapper = (text) => {
|
|
7758
8118
|
onEditCompleted(text);
|
|
7759
8119
|
clearTimer();
|
|
7760
8120
|
};
|
|
7761
|
-
return /* @__PURE__ */
|
|
7762
|
-
label && /* @__PURE__ */
|
|
8121
|
+
return /* @__PURE__ */ jsxs36("div", { className: "w-full", children: [
|
|
8122
|
+
label && /* @__PURE__ */ jsx55(
|
|
7763
8123
|
Label,
|
|
7764
8124
|
{
|
|
7765
8125
|
...label,
|
|
7766
8126
|
htmlFor: id,
|
|
7767
|
-
className:
|
|
8127
|
+
className: clsx43("mb-1", label.className),
|
|
7768
8128
|
labelType: label.labelType ?? "labelSmall"
|
|
7769
8129
|
}
|
|
7770
8130
|
),
|
|
7771
|
-
/* @__PURE__ */
|
|
8131
|
+
/* @__PURE__ */ jsxs36(
|
|
7772
8132
|
"div",
|
|
7773
8133
|
{
|
|
7774
|
-
className:
|
|
8134
|
+
className: clsx43(
|
|
8135
|
+
"bg-surface text-on-surface relative",
|
|
8136
|
+
{
|
|
8137
|
+
"shadow border-2 rounded-lg": defaultStyle,
|
|
8138
|
+
"hover:border-primary focus-within:border-primary": defaultStyle && !disabled,
|
|
8139
|
+
"border-disabled-border cursor-not-allowed": defaultStyle && !disabled
|
|
8140
|
+
}
|
|
8141
|
+
),
|
|
7775
8142
|
children: [
|
|
7776
|
-
headline && /* @__PURE__ */
|
|
7777
|
-
/* @__PURE__ */
|
|
8143
|
+
headline && /* @__PURE__ */ jsx55("span", { className: "mx-3 mt-3 block textstyle-label-md", children: headline }),
|
|
8144
|
+
/* @__PURE__ */ jsx55(
|
|
7778
8145
|
"textarea",
|
|
7779
8146
|
{
|
|
7780
8147
|
id,
|
|
7781
|
-
className:
|
|
8148
|
+
className: clsx43("pt-0 px-3 border-transparent appearance-none w-full leading-tight focus:ring-0 focus:outline-none", {
|
|
7782
8149
|
"resize-none": !resizable,
|
|
7783
8150
|
"h-32": defaultStyle,
|
|
7784
|
-
"mt-3": !headline
|
|
8151
|
+
"mt-3": !headline,
|
|
8152
|
+
"text-disabled-text": disabled
|
|
7785
8153
|
}, className),
|
|
7786
8154
|
onChange: (event) => {
|
|
7787
8155
|
const value = event.target.value;
|
|
@@ -7799,13 +8167,14 @@ var Textarea = ({
|
|
|
7799
8167
|
onEditCompletedWrapper(event.target.value);
|
|
7800
8168
|
setHasFocus(false);
|
|
7801
8169
|
},
|
|
8170
|
+
disabled,
|
|
7802
8171
|
...props
|
|
7803
8172
|
}
|
|
7804
8173
|
)
|
|
7805
8174
|
]
|
|
7806
8175
|
}
|
|
7807
8176
|
),
|
|
7808
|
-
hasFocus && disclaimer && /* @__PURE__ */
|
|
8177
|
+
hasFocus && disclaimer && /* @__PURE__ */ jsx55("label", { className: "text-negative", children: disclaimer })
|
|
7809
8178
|
] });
|
|
7810
8179
|
};
|
|
7811
8180
|
var TextareaUncontrolled = ({
|
|
@@ -7813,11 +8182,11 @@ var TextareaUncontrolled = ({
|
|
|
7813
8182
|
onChangeText = noop,
|
|
7814
8183
|
...props
|
|
7815
8184
|
}) => {
|
|
7816
|
-
const [text, setText] =
|
|
7817
|
-
|
|
8185
|
+
const [text, setText] = useState23(value);
|
|
8186
|
+
useEffect23(() => {
|
|
7818
8187
|
setText(value);
|
|
7819
8188
|
}, [value]);
|
|
7820
|
-
return /* @__PURE__ */
|
|
8189
|
+
return /* @__PURE__ */ jsx55(
|
|
7821
8190
|
Textarea,
|
|
7822
8191
|
{
|
|
7823
8192
|
...props,
|
|
@@ -7831,7 +8200,7 @@ var TextareaUncontrolled = ({
|
|
|
7831
8200
|
};
|
|
7832
8201
|
|
|
7833
8202
|
// src/components/properties/TextProperty.tsx
|
|
7834
|
-
import { jsx as
|
|
8203
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
7835
8204
|
var defaultTextPropertyTranslation = {
|
|
7836
8205
|
en: {
|
|
7837
8206
|
text: "Text"
|
|
@@ -7851,42 +8220,36 @@ var TextProperty = ({
|
|
|
7851
8220
|
}) => {
|
|
7852
8221
|
const translation = useTranslation([defaultTextPropertyTranslation], overwriteTranslation);
|
|
7853
8222
|
const hasValue = value !== void 0;
|
|
7854
|
-
return /* @__PURE__ */
|
|
8223
|
+
return /* @__PURE__ */ jsx56(
|
|
7855
8224
|
PropertyBase,
|
|
7856
8225
|
{
|
|
7857
8226
|
...baseProps,
|
|
7858
8227
|
onRemove,
|
|
7859
8228
|
hasValue,
|
|
7860
|
-
icon: /* @__PURE__ */
|
|
7861
|
-
input: ({ softRequired }) => /* @__PURE__ */
|
|
7862
|
-
|
|
8229
|
+
icon: /* @__PURE__ */ jsx56(Text, { size: 24 }),
|
|
8230
|
+
input: ({ softRequired }) => /* @__PURE__ */ jsx56(
|
|
8231
|
+
Textarea,
|
|
7863
8232
|
{
|
|
7864
|
-
className:
|
|
7865
|
-
|
|
7866
|
-
|
|
7867
|
-
|
|
7868
|
-
|
|
7869
|
-
|
|
7870
|
-
|
|
7871
|
-
|
|
7872
|
-
|
|
7873
|
-
|
|
7874
|
-
|
|
7875
|
-
if (!value2) {
|
|
7876
|
-
onRemove();
|
|
7877
|
-
} else {
|
|
7878
|
-
onChange(value2);
|
|
7879
|
-
}
|
|
7880
|
-
},
|
|
7881
|
-
onEditCompleted: (value2) => {
|
|
7882
|
-
if (!value2) {
|
|
7883
|
-
onRemove();
|
|
7884
|
-
} else {
|
|
7885
|
-
onEditComplete(value2);
|
|
7886
|
-
}
|
|
7887
|
-
}
|
|
8233
|
+
className: clsx44("ring-0 border-0 outline-0 !px-0 p-0 m-0 shadow-none rounded-none", { "bg-surface-warning placeholder-warning": softRequired && !hasValue }),
|
|
8234
|
+
rows: 5,
|
|
8235
|
+
defaultStyle: false,
|
|
8236
|
+
value: value ?? "",
|
|
8237
|
+
readOnly,
|
|
8238
|
+
placeholder: `${translation("text")}...`,
|
|
8239
|
+
onChangeText: (value2) => {
|
|
8240
|
+
if (!value2) {
|
|
8241
|
+
onRemove();
|
|
8242
|
+
} else {
|
|
8243
|
+
onChange(value2);
|
|
7888
8244
|
}
|
|
7889
|
-
|
|
8245
|
+
},
|
|
8246
|
+
onEditCompleted: (value2) => {
|
|
8247
|
+
if (!value2) {
|
|
8248
|
+
onRemove();
|
|
8249
|
+
} else {
|
|
8250
|
+
onEditComplete(value2);
|
|
8251
|
+
}
|
|
8252
|
+
}
|
|
7890
8253
|
}
|
|
7891
8254
|
)
|
|
7892
8255
|
}
|
|
@@ -7894,12 +8257,12 @@ var TextProperty = ({
|
|
|
7894
8257
|
};
|
|
7895
8258
|
|
|
7896
8259
|
// src/components/table/FillerRowElement.tsx
|
|
7897
|
-
import { clsx as
|
|
7898
|
-
import { jsx as
|
|
8260
|
+
import { clsx as clsx45 } from "clsx";
|
|
8261
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
7899
8262
|
var FillerRowElement = ({
|
|
7900
8263
|
className
|
|
7901
8264
|
}) => {
|
|
7902
|
-
return /* @__PURE__ */
|
|
8265
|
+
return /* @__PURE__ */ jsx57("div", { className: clsx45("flex flex-row items-center w-1/2 h-4 text-disabled-text font-bold", className), children: "-" });
|
|
7903
8266
|
};
|
|
7904
8267
|
|
|
7905
8268
|
// src/components/table/Filter.ts
|
|
@@ -7917,8 +8280,8 @@ var TableFilters = {
|
|
|
7917
8280
|
};
|
|
7918
8281
|
|
|
7919
8282
|
// src/components/table/Table.tsx
|
|
7920
|
-
import { useCallback as
|
|
7921
|
-
import
|
|
8283
|
+
import { useCallback as useCallback9, useEffect as useEffect26, useMemo as useMemo3, useRef as useRef7, useState as useState25 } from "react";
|
|
8284
|
+
import clsx48 from "clsx";
|
|
7922
8285
|
import {
|
|
7923
8286
|
flexRender,
|
|
7924
8287
|
getCoreRowModel,
|
|
@@ -7931,90 +8294,8 @@ import { Scrollbars as Scrollbars3 } from "react-custom-scrollbars-2";
|
|
|
7931
8294
|
|
|
7932
8295
|
// src/components/table/TableFilterButton.tsx
|
|
7933
8296
|
import { FilterIcon } from "lucide-react";
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
import { useRef as useRef8 } from "react";
|
|
7937
|
-
import clsx42 from "clsx";
|
|
7938
|
-
|
|
7939
|
-
// src/util/PropsWithFunctionChildren.ts
|
|
7940
|
-
var resolve = (children, bag) => {
|
|
7941
|
-
if (typeof children === "function") {
|
|
7942
|
-
return children(bag);
|
|
7943
|
-
}
|
|
7944
|
-
return children ?? void 0;
|
|
7945
|
-
};
|
|
7946
|
-
var BagFunctionUtil = {
|
|
7947
|
-
resolve
|
|
7948
|
-
};
|
|
7949
|
-
|
|
7950
|
-
// src/components/user-action/Menu.tsx
|
|
7951
|
-
import { jsx as jsx55, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
7952
|
-
var MenuItem = ({
|
|
7953
|
-
children,
|
|
7954
|
-
onClick,
|
|
7955
|
-
alignment = "left",
|
|
7956
|
-
isDisabled = false,
|
|
7957
|
-
className
|
|
7958
|
-
}) => /* @__PURE__ */ jsx55(
|
|
7959
|
-
"div",
|
|
7960
|
-
{
|
|
7961
|
-
className: clsx42("block px-3 py-1.5 bg-menu-background first:rounded-t-lg last:rounded-b-lg text-sm font-semibold", {
|
|
7962
|
-
"text-right": alignment === "right",
|
|
7963
|
-
"text-left": alignment === "left",
|
|
7964
|
-
"text-disabled-text cursor-not-allowed": isDisabled,
|
|
7965
|
-
"text-menu-text hover:bg-primary/20": !isDisabled,
|
|
7966
|
-
"cursor-pointer": !!onClick
|
|
7967
|
-
}, className),
|
|
7968
|
-
onClick,
|
|
7969
|
-
children
|
|
7970
|
-
}
|
|
7971
|
-
);
|
|
7972
|
-
var Menu = ({
|
|
7973
|
-
trigger,
|
|
7974
|
-
children,
|
|
7975
|
-
alignment = "tl",
|
|
7976
|
-
showOnHover = false,
|
|
7977
|
-
menuClassName = ""
|
|
7978
|
-
}) => {
|
|
7979
|
-
const { isHovered: isOpen, setIsHovered: setIsOpen, handlers } = useHoverState({ isDisabled: !showOnHover });
|
|
7980
|
-
const triggerRef = useRef8(null);
|
|
7981
|
-
const menuRef = useRef8(null);
|
|
7982
|
-
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
7983
|
-
const bag = { isOpen, close: () => setIsOpen(false) };
|
|
7984
|
-
return /* @__PURE__ */ jsxs35(
|
|
7985
|
-
"div",
|
|
7986
|
-
{
|
|
7987
|
-
className: "relative",
|
|
7988
|
-
...handlers,
|
|
7989
|
-
children: [
|
|
7990
|
-
trigger(() => setIsOpen(!isOpen), triggerRef),
|
|
7991
|
-
/* @__PURE__ */ jsx55(
|
|
7992
|
-
"div",
|
|
7993
|
-
{
|
|
7994
|
-
ref: menuRef,
|
|
7995
|
-
onClick: (e) => e.stopPropagation(),
|
|
7996
|
-
className: clsx42(
|
|
7997
|
-
"absolute top-full mt-1 min-w-40 rounded-lg bg-menu-background text-menu-text shadow-around-lg z-10",
|
|
7998
|
-
{
|
|
7999
|
-
"top-0": alignment[0] === "t",
|
|
8000
|
-
"bottom-0": alignment[0] === "b",
|
|
8001
|
-
"left-0": alignment[1] === "l",
|
|
8002
|
-
"right-0": alignment[1] === "r",
|
|
8003
|
-
"hidden": !isOpen
|
|
8004
|
-
},
|
|
8005
|
-
menuClassName
|
|
8006
|
-
),
|
|
8007
|
-
children: BagFunctionUtil.resolve(children, bag)
|
|
8008
|
-
}
|
|
8009
|
-
)
|
|
8010
|
-
]
|
|
8011
|
-
}
|
|
8012
|
-
);
|
|
8013
|
-
};
|
|
8014
|
-
|
|
8015
|
-
// src/components/table/TableFilterButton.tsx
|
|
8016
|
-
import { useEffect as useEffect23, useState as useState23 } from "react";
|
|
8017
|
-
import { Fragment as Fragment3, jsx as jsx56, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
8297
|
+
import { useEffect as useEffect24, useState as useState24 } from "react";
|
|
8298
|
+
import { Fragment as Fragment6, jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
8018
8299
|
var defaultTableFilterTranslation = {
|
|
8019
8300
|
en: {
|
|
8020
8301
|
filter: "Filter",
|
|
@@ -8039,17 +8320,17 @@ var TableFilterButton = ({
|
|
|
8039
8320
|
}) => {
|
|
8040
8321
|
const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
|
|
8041
8322
|
const columnFilterValue = column.getFilterValue();
|
|
8042
|
-
const [filterValue, setFilterValue] =
|
|
8323
|
+
const [filterValue, setFilterValue] = useState24(columnFilterValue);
|
|
8043
8324
|
const hasFilter = !!filterValue;
|
|
8044
|
-
|
|
8325
|
+
useEffect24(() => {
|
|
8045
8326
|
setFilterValue(columnFilterValue);
|
|
8046
8327
|
}, [columnFilterValue]);
|
|
8047
|
-
return /* @__PURE__ */
|
|
8328
|
+
return /* @__PURE__ */ jsx58(
|
|
8048
8329
|
Menu,
|
|
8049
8330
|
{
|
|
8050
|
-
trigger: (
|
|
8051
|
-
/* @__PURE__ */
|
|
8052
|
-
hasFilter && /* @__PURE__ */
|
|
8331
|
+
trigger: ({ toggleOpen }, ref) => /* @__PURE__ */ jsxs37("div", { ref, className: "relative", children: [
|
|
8332
|
+
/* @__PURE__ */ jsx58(IconButton, { color: "neutral", size: "tiny", onClick: toggleOpen, children: /* @__PURE__ */ jsx58(FilterIcon, {}) }),
|
|
8333
|
+
hasFilter && /* @__PURE__ */ jsx58(
|
|
8053
8334
|
"div",
|
|
8054
8335
|
{
|
|
8055
8336
|
className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-primary pointer-events-none",
|
|
@@ -8057,9 +8338,9 @@ var TableFilterButton = ({
|
|
|
8057
8338
|
}
|
|
8058
8339
|
)
|
|
8059
8340
|
] }),
|
|
8060
|
-
children: ({ close }) => /* @__PURE__ */
|
|
8061
|
-
/* @__PURE__ */
|
|
8062
|
-
filterType === "text" && /* @__PURE__ */
|
|
8341
|
+
children: ({ close }) => /* @__PURE__ */ jsxs37("div", { className: "flex-col-1 p-2 items-start font-normal text-menu-text", children: [
|
|
8342
|
+
/* @__PURE__ */ jsx58("h4", { className: "textstyle-title-sm", children: translation("filter") }),
|
|
8343
|
+
filterType === "text" && /* @__PURE__ */ jsx58(
|
|
8063
8344
|
Input,
|
|
8064
8345
|
{
|
|
8065
8346
|
value: filterValue ?? "",
|
|
@@ -8069,8 +8350,8 @@ var TableFilterButton = ({
|
|
|
8069
8350
|
className: "h-10"
|
|
8070
8351
|
}
|
|
8071
8352
|
),
|
|
8072
|
-
filterType === "range" && /* @__PURE__ */
|
|
8073
|
-
/* @__PURE__ */
|
|
8353
|
+
filterType === "range" && /* @__PURE__ */ jsxs37("div", { className: "flex-row-2 items-center", children: [
|
|
8354
|
+
/* @__PURE__ */ jsx58(
|
|
8074
8355
|
Input,
|
|
8075
8356
|
{
|
|
8076
8357
|
value: filterValue?.[0] ?? "",
|
|
@@ -8083,8 +8364,8 @@ var TableFilterButton = ({
|
|
|
8083
8364
|
className: "h-10 input-indicator-hidden w-40"
|
|
8084
8365
|
}
|
|
8085
8366
|
),
|
|
8086
|
-
/* @__PURE__ */
|
|
8087
|
-
/* @__PURE__ */
|
|
8367
|
+
/* @__PURE__ */ jsx58("span", { className: "font-bold", children: "-" }),
|
|
8368
|
+
/* @__PURE__ */ jsx58(
|
|
8088
8369
|
Input,
|
|
8089
8370
|
{
|
|
8090
8371
|
value: filterValue?.[1] ?? "",
|
|
@@ -8098,8 +8379,8 @@ var TableFilterButton = ({
|
|
|
8098
8379
|
}
|
|
8099
8380
|
)
|
|
8100
8381
|
] }),
|
|
8101
|
-
filterType === "dateRange" && /* @__PURE__ */
|
|
8102
|
-
/* @__PURE__ */
|
|
8382
|
+
filterType === "dateRange" && /* @__PURE__ */ jsxs37(Fragment6, { children: [
|
|
8383
|
+
/* @__PURE__ */ jsx58(
|
|
8103
8384
|
Input,
|
|
8104
8385
|
{
|
|
8105
8386
|
value: filterValue?.[0] ? filterValue?.[0].toISOString().slice(0, 16) : "",
|
|
@@ -8112,7 +8393,7 @@ var TableFilterButton = ({
|
|
|
8112
8393
|
className: "h-10 w-50"
|
|
8113
8394
|
}
|
|
8114
8395
|
),
|
|
8115
|
-
/* @__PURE__ */
|
|
8396
|
+
/* @__PURE__ */ jsx58(
|
|
8116
8397
|
Input,
|
|
8117
8398
|
{
|
|
8118
8399
|
value: filterValue?.[1] ? filterValue?.[1].toISOString().slice(0, 16) : "",
|
|
@@ -8126,12 +8407,12 @@ var TableFilterButton = ({
|
|
|
8126
8407
|
}
|
|
8127
8408
|
)
|
|
8128
8409
|
] }),
|
|
8129
|
-
/* @__PURE__ */
|
|
8130
|
-
hasFilter && /* @__PURE__ */
|
|
8410
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex-row-2 justify-end w-full", children: [
|
|
8411
|
+
hasFilter && /* @__PURE__ */ jsx58(SolidButton, { color: "negative", size: "small", onClick: () => {
|
|
8131
8412
|
column.setFilterValue(void 0);
|
|
8132
8413
|
close();
|
|
8133
8414
|
}, children: translation("remove") }),
|
|
8134
|
-
/* @__PURE__ */
|
|
8415
|
+
/* @__PURE__ */ jsx58(SolidButton, { size: "small", onClick: () => {
|
|
8135
8416
|
column.setFilterValue(filterValue);
|
|
8136
8417
|
close();
|
|
8137
8418
|
}, children: translation("apply") })
|
|
@@ -8142,9 +8423,9 @@ var TableFilterButton = ({
|
|
|
8142
8423
|
};
|
|
8143
8424
|
|
|
8144
8425
|
// src/components/table/TableSortButton.tsx
|
|
8145
|
-
import { ChevronDown as
|
|
8146
|
-
import
|
|
8147
|
-
import { jsx as
|
|
8426
|
+
import { ChevronDown as ChevronDown3, ChevronsUpDown, ChevronUp } from "lucide-react";
|
|
8427
|
+
import clsx46 from "clsx";
|
|
8428
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
8148
8429
|
var TableSortButton = ({
|
|
8149
8430
|
sortDirection,
|
|
8150
8431
|
invert = false,
|
|
@@ -8152,20 +8433,20 @@ var TableSortButton = ({
|
|
|
8152
8433
|
className,
|
|
8153
8434
|
...buttonProps
|
|
8154
8435
|
}) => {
|
|
8155
|
-
let icon = /* @__PURE__ */
|
|
8436
|
+
let icon = /* @__PURE__ */ jsx59(ChevronsUpDown, { className: "w-full h-full" });
|
|
8156
8437
|
if (sortDirection) {
|
|
8157
8438
|
let usedSortDirection = sortDirection;
|
|
8158
8439
|
if (invert) {
|
|
8159
8440
|
usedSortDirection = usedSortDirection === "desc" ? "asc" : "desc";
|
|
8160
8441
|
}
|
|
8161
|
-
icon = usedSortDirection === "asc" ? /* @__PURE__ */
|
|
8442
|
+
icon = usedSortDirection === "asc" ? /* @__PURE__ */ jsx59(ChevronUp, { className: "w-full h-full" }) : /* @__PURE__ */ jsx59(ChevronDown3, { className: "w-full h-full" });
|
|
8162
8443
|
}
|
|
8163
|
-
return /* @__PURE__ */
|
|
8444
|
+
return /* @__PURE__ */ jsx59(
|
|
8164
8445
|
IconButton,
|
|
8165
8446
|
{
|
|
8166
8447
|
size: "tiny",
|
|
8167
8448
|
color,
|
|
8168
|
-
className:
|
|
8449
|
+
className: clsx46(className),
|
|
8169
8450
|
...buttonProps,
|
|
8170
8451
|
children: icon
|
|
8171
8452
|
}
|
|
@@ -8173,9 +8454,9 @@ var TableSortButton = ({
|
|
|
8173
8454
|
};
|
|
8174
8455
|
|
|
8175
8456
|
// src/hooks/useResizeCallbackWrapper.ts
|
|
8176
|
-
import { useEffect as
|
|
8457
|
+
import { useEffect as useEffect25 } from "react";
|
|
8177
8458
|
var useResizeCallbackWrapper = (callback) => {
|
|
8178
|
-
|
|
8459
|
+
useEffect25(() => {
|
|
8179
8460
|
window.addEventListener("resize", callback);
|
|
8180
8461
|
return () => {
|
|
8181
8462
|
window.removeEventListener("resize", callback);
|
|
@@ -8184,17 +8465,17 @@ var useResizeCallbackWrapper = (callback) => {
|
|
|
8184
8465
|
};
|
|
8185
8466
|
|
|
8186
8467
|
// src/components/table/TableCell.tsx
|
|
8187
|
-
import { clsx as
|
|
8188
|
-
import { jsx as
|
|
8468
|
+
import { clsx as clsx47 } from "clsx";
|
|
8469
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
8189
8470
|
var TableCell = ({
|
|
8190
8471
|
children,
|
|
8191
8472
|
className
|
|
8192
8473
|
}) => {
|
|
8193
|
-
return /* @__PURE__ */
|
|
8474
|
+
return /* @__PURE__ */ jsx60("span", { className: clsx47("block max-w-full overflow-ellipsis truncate", className), children });
|
|
8194
8475
|
};
|
|
8195
8476
|
|
|
8196
8477
|
// src/components/table/Table.tsx
|
|
8197
|
-
import { jsx as
|
|
8478
|
+
import { jsx as jsx61, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
8198
8479
|
var Table = ({
|
|
8199
8480
|
data,
|
|
8200
8481
|
fillerRow,
|
|
@@ -8207,21 +8488,21 @@ var Table = ({
|
|
|
8207
8488
|
columns,
|
|
8208
8489
|
...tableOptions
|
|
8209
8490
|
}) => {
|
|
8210
|
-
const ref =
|
|
8211
|
-
const tableRef =
|
|
8212
|
-
const [columnSizing, setColumnSizing] =
|
|
8491
|
+
const ref = useRef7(null);
|
|
8492
|
+
const tableRef = useRef7(null);
|
|
8493
|
+
const [columnSizing, setColumnSizing] = useState25(columns.reduce((previousValue, currentValue) => {
|
|
8213
8494
|
return {
|
|
8214
8495
|
...previousValue,
|
|
8215
8496
|
[currentValue.id]: currentValue.minSize ?? defaultColumn.minSize
|
|
8216
8497
|
};
|
|
8217
8498
|
}, {}));
|
|
8218
|
-
const [columnSizingInfo, setColumnSizingInfo] =
|
|
8219
|
-
const [pagination, setPagination] =
|
|
8499
|
+
const [columnSizingInfo, setColumnSizingInfo] = useState25();
|
|
8500
|
+
const [pagination, setPagination] = useState25({
|
|
8220
8501
|
pageSize: 10,
|
|
8221
8502
|
pageIndex: 0,
|
|
8222
8503
|
...initialState?.pagination
|
|
8223
8504
|
});
|
|
8224
|
-
const [columnFilters, setColumnFilters] =
|
|
8505
|
+
const [columnFilters, setColumnFilters] = useState25(initialState?.columnFilters);
|
|
8225
8506
|
const computedColumnMinWidths = useMemo3(() => {
|
|
8226
8507
|
return columns.reduce((previousValue, column) => {
|
|
8227
8508
|
return {
|
|
@@ -8313,7 +8594,7 @@ var Table = ({
|
|
|
8313
8594
|
minSize: 60,
|
|
8314
8595
|
maxSize: 700,
|
|
8315
8596
|
cell: ({ cell }) => {
|
|
8316
|
-
return /* @__PURE__ */
|
|
8597
|
+
return /* @__PURE__ */ jsx61(TableCell, { children: cell.getValue() });
|
|
8317
8598
|
},
|
|
8318
8599
|
...defaultColumn
|
|
8319
8600
|
},
|
|
@@ -8361,18 +8642,18 @@ var Table = ({
|
|
|
8361
8642
|
columnResizeMode: "onChange",
|
|
8362
8643
|
...tableOptions
|
|
8363
8644
|
});
|
|
8364
|
-
const [hasInitializedSizing, setHasInitializedSizing] =
|
|
8365
|
-
|
|
8645
|
+
const [hasInitializedSizing, setHasInitializedSizing] = useState25(false);
|
|
8646
|
+
useEffect26(() => {
|
|
8366
8647
|
if (!hasInitializedSizing && ref.current) {
|
|
8367
8648
|
setHasInitializedSizing(true);
|
|
8368
8649
|
table.setColumnSizing(updateColumnSizes(columnSizing));
|
|
8369
8650
|
}
|
|
8370
8651
|
}, [columnSizing, hasInitializedSizing]);
|
|
8371
|
-
useResizeCallbackWrapper(
|
|
8652
|
+
useResizeCallbackWrapper(useCallback9(() => {
|
|
8372
8653
|
table.setColumnSizing(updateColumnSizes);
|
|
8373
8654
|
}, [updateColumnSizes]));
|
|
8374
8655
|
const pageCount = table.getPageCount();
|
|
8375
|
-
|
|
8656
|
+
useEffect26(() => {
|
|
8376
8657
|
const totalPages = pageCount;
|
|
8377
8658
|
if (totalPages === 0) {
|
|
8378
8659
|
if (pagination.pageIndex !== 0) {
|
|
@@ -8393,98 +8674,106 @@ var Table = ({
|
|
|
8393
8674
|
const colSizes = {};
|
|
8394
8675
|
for (let i = 0; i < headers.length; i++) {
|
|
8395
8676
|
const header = headers[i];
|
|
8396
|
-
colSizes[`--header-${header.id}-size`] = header.getSize();
|
|
8397
|
-
colSizes[`--col-${header.column.id}-size`] = header.column.getSize();
|
|
8677
|
+
colSizes[`--header-${header.id}-size`] = Math.floor(header.getSize());
|
|
8678
|
+
colSizes[`--col-${header.column.id}-size`] = Math.floor(header.column.getSize());
|
|
8398
8679
|
}
|
|
8399
8680
|
return colSizes;
|
|
8400
8681
|
}, [table.getState().columnSizingInfo, table.getState().columnSizing]);
|
|
8401
|
-
return /* @__PURE__ */
|
|
8402
|
-
/* @__PURE__ */
|
|
8403
|
-
|
|
8682
|
+
return /* @__PURE__ */ jsxs38("div", { ref, className: clsx48("flex-col-4", className), children: [
|
|
8683
|
+
/* @__PURE__ */ jsx61(
|
|
8684
|
+
Scrollbars3,
|
|
8404
8685
|
{
|
|
8405
|
-
|
|
8406
|
-
|
|
8407
|
-
|
|
8408
|
-
|
|
8409
|
-
|
|
8410
|
-
|
|
8411
|
-
|
|
8412
|
-
|
|
8413
|
-
|
|
8414
|
-
|
|
8415
|
-
|
|
8416
|
-
width: `calc(var(--header-${header?.id}-size) * 1px)`,
|
|
8417
|
-
minWidth: header.column.columnDef.minSize,
|
|
8418
|
-
maxWidth: header.column.columnDef.maxSize
|
|
8419
|
-
}
|
|
8686
|
+
autoHeight: true,
|
|
8687
|
+
autoHeightMax: tableRef.current?.offsetHeight + 2,
|
|
8688
|
+
autoHide: true,
|
|
8689
|
+
children: /* @__PURE__ */ jsxs38(
|
|
8690
|
+
"table",
|
|
8691
|
+
{
|
|
8692
|
+
ref: tableRef,
|
|
8693
|
+
className: clsx48(tableClassName),
|
|
8694
|
+
style: {
|
|
8695
|
+
...columnSizeVars,
|
|
8696
|
+
width: Math.floor(Math.max(table.getTotalSize() - columns.length, ref.current?.offsetWidth ?? table.getTotalSize()))
|
|
8420
8697
|
},
|
|
8421
|
-
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
8428
|
-
|
|
8429
|
-
|
|
8430
|
-
|
|
8431
|
-
|
|
8432
|
-
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8436
|
-
|
|
8437
|
-
|
|
8438
|
-
|
|
8439
|
-
|
|
8440
|
-
{
|
|
8441
|
-
|
|
8442
|
-
|
|
8443
|
-
|
|
8444
|
-
|
|
8445
|
-
|
|
8446
|
-
|
|
8447
|
-
|
|
8448
|
-
|
|
8449
|
-
|
|
8450
|
-
|
|
8451
|
-
|
|
8452
|
-
|
|
8453
|
-
|
|
8454
|
-
|
|
8455
|
-
|
|
8456
|
-
|
|
8457
|
-
|
|
8458
|
-
|
|
8459
|
-
|
|
8460
|
-
|
|
8461
|
-
|
|
8462
|
-
|
|
8463
|
-
|
|
8464
|
-
|
|
8465
|
-
|
|
8466
|
-
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8698
|
+
children: [
|
|
8699
|
+
table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx61("colgroup", { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx61(
|
|
8700
|
+
"col",
|
|
8701
|
+
{
|
|
8702
|
+
style: {
|
|
8703
|
+
width: `calc(var(--header-${header?.id}-size) * 1px)`,
|
|
8704
|
+
minWidth: header.column.columnDef.minSize,
|
|
8705
|
+
maxWidth: header.column.columnDef.maxSize
|
|
8706
|
+
}
|
|
8707
|
+
},
|
|
8708
|
+
header.id
|
|
8709
|
+
)) }, headerGroup.id)),
|
|
8710
|
+
/* @__PURE__ */ jsx61("thead", { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx61("tr", { className: table.options.meta?.headerRowClassName, children: headerGroup.headers.map((header) => {
|
|
8711
|
+
return /* @__PURE__ */ jsxs38(
|
|
8712
|
+
"th",
|
|
8713
|
+
{
|
|
8714
|
+
colSpan: header.colSpan,
|
|
8715
|
+
className: clsx48("relative group", header.column.columnDef.meta?.className),
|
|
8716
|
+
children: [
|
|
8717
|
+
/* @__PURE__ */ jsx61("div", { className: "flex-row-2 w-full", children: header.isPlaceholder ? null : /* @__PURE__ */ jsxs38("div", { className: "flex-row-1 items-center", children: [
|
|
8718
|
+
header.column.getCanSort() && /* @__PURE__ */ jsx61(
|
|
8719
|
+
TableSortButton,
|
|
8720
|
+
{
|
|
8721
|
+
sortDirection: header.column.getIsSorted(),
|
|
8722
|
+
onClick: () => header.column.toggleSorting()
|
|
8723
|
+
}
|
|
8724
|
+
),
|
|
8725
|
+
header.column.getCanFilter() && header.column.columnDef.meta?.filterType ? /* @__PURE__ */ jsx61(
|
|
8726
|
+
TableFilterButton,
|
|
8727
|
+
{
|
|
8728
|
+
column: header.column,
|
|
8729
|
+
filterType: header.column.columnDef.meta.filterType
|
|
8730
|
+
}
|
|
8731
|
+
) : null,
|
|
8732
|
+
flexRender(
|
|
8733
|
+
header.column.columnDef.header,
|
|
8734
|
+
header.getContext()
|
|
8735
|
+
)
|
|
8736
|
+
] }) }),
|
|
8737
|
+
header.column.getCanResize() && /* @__PURE__ */ jsx61(
|
|
8738
|
+
"div",
|
|
8739
|
+
{
|
|
8740
|
+
onMouseDown: header.getResizeHandler(),
|
|
8741
|
+
onTouchStart: header.getResizeHandler(),
|
|
8742
|
+
onDoubleClick: () => {
|
|
8743
|
+
header.column.resetSize();
|
|
8744
|
+
},
|
|
8745
|
+
className: "table-resize-indicator w-2 rounded bg-primary cursor-col-resize select-none touch-none opacity-0 group-hover:opacity-100 transition-opacity",
|
|
8746
|
+
style: {
|
|
8747
|
+
opacity: !columnSizingInfo?.columnSizingStart ? void 0 : columnSizingInfo?.columnSizingStart?.findIndex(([id, _]) => id === header.column.id) !== -1 ? 1 : columnSizingInfo?.columnSizingStart?.length !== 0 ? 0 : void 0
|
|
8748
|
+
}
|
|
8749
|
+
}
|
|
8750
|
+
)
|
|
8751
|
+
]
|
|
8752
|
+
},
|
|
8753
|
+
header.id
|
|
8754
|
+
);
|
|
8755
|
+
}) }, headerGroup.id)) }),
|
|
8756
|
+
/* @__PURE__ */ jsxs38("tbody", { children: [
|
|
8757
|
+
table.getRowModel().rows.map((row) => {
|
|
8758
|
+
return /* @__PURE__ */ jsx61("tr", { onClick: () => onRowClick(row, table), className: table.options.meta?.bodyRowClassName, children: row.getVisibleCells().map((cell) => {
|
|
8759
|
+
return /* @__PURE__ */ jsx61("td", { children: flexRender(
|
|
8760
|
+
cell.column.columnDef.cell,
|
|
8761
|
+
cell.getContext()
|
|
8762
|
+
) }, cell.id);
|
|
8763
|
+
}) }, row.id);
|
|
8764
|
+
}),
|
|
8765
|
+
range(table.getState().pagination.pageSize - table.getRowModel().rows.length, { allowEmptyRange: true }).map((row, index) => {
|
|
8766
|
+
return /* @__PURE__ */ jsx61("tr", { children: columns.map((column) => {
|
|
8767
|
+
return /* @__PURE__ */ jsx61("td", { children: fillerRow ? fillerRow(column.id, table) : /* @__PURE__ */ jsx61(FillerRowElement, {}) }, column.id);
|
|
8768
|
+
}) }, "filler-row-" + index);
|
|
8769
|
+
})
|
|
8770
|
+
] })
|
|
8771
|
+
]
|
|
8772
|
+
}
|
|
8773
|
+
)
|
|
8485
8774
|
}
|
|
8486
|
-
)
|
|
8487
|
-
/* @__PURE__ */
|
|
8775
|
+
),
|
|
8776
|
+
/* @__PURE__ */ jsx61("div", { className: "flex-row-2 justify-center", children: /* @__PURE__ */ jsx61(
|
|
8488
8777
|
Pagination,
|
|
8489
8778
|
{
|
|
8490
8779
|
pageIndex: table.getState().pagination.pageIndex,
|
|
@@ -8495,11 +8784,11 @@ var Table = ({
|
|
|
8495
8784
|
] });
|
|
8496
8785
|
};
|
|
8497
8786
|
var TableUncontrolled = ({ data, ...props }) => {
|
|
8498
|
-
const [usedDate, setUsedData] =
|
|
8499
|
-
|
|
8787
|
+
const [usedDate, setUsedData] = useState25(data);
|
|
8788
|
+
useEffect26(() => {
|
|
8500
8789
|
setUsedData(data);
|
|
8501
8790
|
}, [data]);
|
|
8502
|
-
return /* @__PURE__ */
|
|
8791
|
+
return /* @__PURE__ */ jsx61(
|
|
8503
8792
|
Table,
|
|
8504
8793
|
{
|
|
8505
8794
|
...props,
|
|
@@ -8523,7 +8812,7 @@ var TableWithSelection = ({
|
|
|
8523
8812
|
{
|
|
8524
8813
|
id: selectionRowId,
|
|
8525
8814
|
header: ({ table }) => {
|
|
8526
|
-
return /* @__PURE__ */
|
|
8815
|
+
return /* @__PURE__ */ jsx61(
|
|
8527
8816
|
Checkbox,
|
|
8528
8817
|
{
|
|
8529
8818
|
checked: table.getIsSomeRowsSelected() ? "indeterminate" : table.getIsAllRowsSelected(),
|
|
@@ -8536,7 +8825,7 @@ var TableWithSelection = ({
|
|
|
8536
8825
|
);
|
|
8537
8826
|
},
|
|
8538
8827
|
cell: ({ row }) => {
|
|
8539
|
-
return /* @__PURE__ */
|
|
8828
|
+
return /* @__PURE__ */ jsx61(
|
|
8540
8829
|
Checkbox,
|
|
8541
8830
|
{
|
|
8542
8831
|
disabled: !row.getCanSelect(),
|
|
@@ -8555,15 +8844,15 @@ var TableWithSelection = ({
|
|
|
8555
8844
|
...columns
|
|
8556
8845
|
];
|
|
8557
8846
|
}, [columns, selectionRowId]);
|
|
8558
|
-
return /* @__PURE__ */
|
|
8847
|
+
return /* @__PURE__ */ jsx61(
|
|
8559
8848
|
Table,
|
|
8560
8849
|
{
|
|
8561
8850
|
columns: columnsWithSelection,
|
|
8562
8851
|
fillerRow: (columnId, table) => {
|
|
8563
8852
|
if (columnId === selectionRowId) {
|
|
8564
|
-
return /* @__PURE__ */
|
|
8853
|
+
return /* @__PURE__ */ jsx61(Checkbox, { checked: false, disabled: true, containerClassName: "max-w-6" });
|
|
8565
8854
|
}
|
|
8566
|
-
return fillerRow ? fillerRow(columnId, table) : /* @__PURE__ */
|
|
8855
|
+
return fillerRow ? fillerRow(columnId, table) : /* @__PURE__ */ jsx61(FillerRowElement, {});
|
|
8567
8856
|
},
|
|
8568
8857
|
state: {
|
|
8569
8858
|
rowSelection,
|
|
@@ -8577,7 +8866,7 @@ var TableWithSelection = ({
|
|
|
8577
8866
|
},
|
|
8578
8867
|
meta: {
|
|
8579
8868
|
...meta,
|
|
8580
|
-
bodyRowClassName:
|
|
8869
|
+
bodyRowClassName: clsx48(
|
|
8581
8870
|
{ "cursor-pointer": !disableClickRowClickSelection },
|
|
8582
8871
|
meta?.bodyRowClassName
|
|
8583
8872
|
)
|
|
@@ -8588,8 +8877,8 @@ var TableWithSelection = ({
|
|
|
8588
8877
|
};
|
|
8589
8878
|
|
|
8590
8879
|
// src/components/user-action/CopyToClipboardWrapper.tsx
|
|
8591
|
-
import { useState as
|
|
8592
|
-
import { clsx as
|
|
8880
|
+
import { useState as useState26 } from "react";
|
|
8881
|
+
import { clsx as clsx49 } from "clsx";
|
|
8593
8882
|
|
|
8594
8883
|
// src/util/writeToClipboard.ts
|
|
8595
8884
|
var writeToClipboard = (text) => {
|
|
@@ -8598,7 +8887,7 @@ var writeToClipboard = (text) => {
|
|
|
8598
8887
|
|
|
8599
8888
|
// src/components/user-action/CopyToClipboardWrapper.tsx
|
|
8600
8889
|
import { CheckIcon, Copy } from "lucide-react";
|
|
8601
|
-
import { jsx as
|
|
8890
|
+
import { jsx as jsx62, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
8602
8891
|
var CopyToClipboardWrapper = ({
|
|
8603
8892
|
children,
|
|
8604
8893
|
textToCopy,
|
|
@@ -8608,8 +8897,8 @@ var CopyToClipboardWrapper = ({
|
|
|
8608
8897
|
zIndex = 10
|
|
8609
8898
|
}) => {
|
|
8610
8899
|
const translation = useTranslation([formTranslation]);
|
|
8611
|
-
const [isShowingIndication, setIsShowingIndication] =
|
|
8612
|
-
const [isShowingConfirmation, setIsShowingConfirmation] =
|
|
8900
|
+
const [isShowingIndication, setIsShowingIndication] = useState26(false);
|
|
8901
|
+
const [isShowingConfirmation, setIsShowingConfirmation] = useState26(false);
|
|
8613
8902
|
const positionClasses = {
|
|
8614
8903
|
top: `bottom-full left-1/2 -translate-x-1/2 mb-[6px]`,
|
|
8615
8904
|
bottom: `top-full left-1/2 -translate-x-1/2 mt-[6px]`,
|
|
@@ -8629,10 +8918,10 @@ var CopyToClipboardWrapper = ({
|
|
|
8629
8918
|
left: { borderWidth: `${triangleSize}px 0 ${triangleSize}px ${triangleSize}px` },
|
|
8630
8919
|
right: { borderWidth: `${triangleSize}px ${triangleSize}px ${triangleSize}px 0` }
|
|
8631
8920
|
};
|
|
8632
|
-
return /* @__PURE__ */
|
|
8921
|
+
return /* @__PURE__ */ jsxs39(
|
|
8633
8922
|
"div",
|
|
8634
8923
|
{
|
|
8635
|
-
className:
|
|
8924
|
+
className: clsx49("relative inline-block cursor-copy", containerClassName),
|
|
8636
8925
|
onMouseEnter: () => {
|
|
8637
8926
|
setIsShowingIndication(true);
|
|
8638
8927
|
},
|
|
@@ -8647,10 +8936,10 @@ var CopyToClipboardWrapper = ({
|
|
|
8647
8936
|
},
|
|
8648
8937
|
children: [
|
|
8649
8938
|
children,
|
|
8650
|
-
/* @__PURE__ */
|
|
8939
|
+
/* @__PURE__ */ jsxs39(
|
|
8651
8940
|
"div",
|
|
8652
8941
|
{
|
|
8653
|
-
className:
|
|
8942
|
+
className: clsx49(
|
|
8654
8943
|
`absolute text-xs font-semibold text-tooltip-text px-2 py-1 rounded whitespace-nowrap
|
|
8655
8944
|
shadow-around-md bg-tooltip-background cursor-default pointer-events-none`,
|
|
8656
8945
|
"transition-opacity duration-200",
|
|
@@ -8662,18 +8951,18 @@ var CopyToClipboardWrapper = ({
|
|
|
8662
8951
|
opacity: isShowingIndication || isShowingConfirmation ? 1 : 0
|
|
8663
8952
|
},
|
|
8664
8953
|
children: [
|
|
8665
|
-
isShowingConfirmation && /* @__PURE__ */
|
|
8666
|
-
/* @__PURE__ */
|
|
8954
|
+
isShowingConfirmation && /* @__PURE__ */ jsxs39("div", { className: "flex-row-1", children: [
|
|
8955
|
+
/* @__PURE__ */ jsx62(CheckIcon, { size: 16, className: "text-positive" }),
|
|
8667
8956
|
translation("copied")
|
|
8668
8957
|
] }),
|
|
8669
|
-
isShowingIndication && /* @__PURE__ */
|
|
8670
|
-
/* @__PURE__ */
|
|
8958
|
+
isShowingIndication && /* @__PURE__ */ jsxs39("div", { className: "flex-row-1 text-description", children: [
|
|
8959
|
+
/* @__PURE__ */ jsx62(Copy, { size: 16 }),
|
|
8671
8960
|
translation("clickToCopy")
|
|
8672
8961
|
] }),
|
|
8673
|
-
/* @__PURE__ */
|
|
8962
|
+
/* @__PURE__ */ jsx62(
|
|
8674
8963
|
"div",
|
|
8675
8964
|
{
|
|
8676
|
-
className:
|
|
8965
|
+
className: clsx49(`absolute w-0 h-0`, triangleClasses[position]),
|
|
8677
8966
|
style: { ...triangleStyle[position], zIndex: zIndex + 1 }
|
|
8678
8967
|
}
|
|
8679
8968
|
)
|
|
@@ -8686,8 +8975,8 @@ var CopyToClipboardWrapper = ({
|
|
|
8686
8975
|
};
|
|
8687
8976
|
|
|
8688
8977
|
// src/components/user-action/DateAndTimePicker.tsx
|
|
8689
|
-
import
|
|
8690
|
-
import { jsx as
|
|
8978
|
+
import clsx50 from "clsx";
|
|
8979
|
+
import { jsx as jsx63, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
8691
8980
|
var DateTimePicker = ({
|
|
8692
8981
|
overwriteTranslation,
|
|
8693
8982
|
value = /* @__PURE__ */ new Date(),
|
|
@@ -8706,7 +8995,7 @@ var DateTimePicker = ({
|
|
|
8706
8995
|
let dateDisplay;
|
|
8707
8996
|
let timeDisplay;
|
|
8708
8997
|
if (useDate) {
|
|
8709
|
-
dateDisplay = /* @__PURE__ */
|
|
8998
|
+
dateDisplay = /* @__PURE__ */ jsx63(
|
|
8710
8999
|
DatePicker,
|
|
8711
9000
|
{
|
|
8712
9001
|
...datePickerProps,
|
|
@@ -8720,25 +9009,25 @@ var DateTimePicker = ({
|
|
|
8720
9009
|
);
|
|
8721
9010
|
}
|
|
8722
9011
|
if (useTime) {
|
|
8723
|
-
timeDisplay = /* @__PURE__ */
|
|
9012
|
+
timeDisplay = /* @__PURE__ */ jsx63(
|
|
8724
9013
|
TimePicker,
|
|
8725
9014
|
{
|
|
8726
9015
|
...timePickerProps,
|
|
8727
|
-
className:
|
|
9016
|
+
className: clsx50("h-full", { "justify-between w-full": mode === "time" }),
|
|
8728
9017
|
maxHeight: 250,
|
|
8729
9018
|
time: value,
|
|
8730
9019
|
onChange
|
|
8731
9020
|
}
|
|
8732
9021
|
);
|
|
8733
9022
|
}
|
|
8734
|
-
return /* @__PURE__ */
|
|
8735
|
-
/* @__PURE__ */
|
|
9023
|
+
return /* @__PURE__ */ jsxs40("div", { className: "flex-col-2 w-fit", children: [
|
|
9024
|
+
/* @__PURE__ */ jsxs40("div", { className: "flex-row-4", children: [
|
|
8736
9025
|
dateDisplay,
|
|
8737
9026
|
timeDisplay
|
|
8738
9027
|
] }),
|
|
8739
|
-
/* @__PURE__ */
|
|
8740
|
-
/* @__PURE__ */
|
|
8741
|
-
/* @__PURE__ */
|
|
9028
|
+
/* @__PURE__ */ jsx63("div", { className: "flex-row-2 justify-end", children: /* @__PURE__ */ jsxs40("div", { className: "flex-row-2 mt-1", children: [
|
|
9029
|
+
/* @__PURE__ */ jsx63(SolidButton, { size: "medium", color: "negative", onClick: onRemove, children: translation("clear") }),
|
|
9030
|
+
/* @__PURE__ */ jsx63(
|
|
8742
9031
|
SolidButton,
|
|
8743
9032
|
{
|
|
8744
9033
|
size: "medium",
|
|
@@ -8751,9 +9040,9 @@ var DateTimePicker = ({
|
|
|
8751
9040
|
};
|
|
8752
9041
|
|
|
8753
9042
|
// src/components/user-action/ScrollPicker.tsx
|
|
8754
|
-
import { useCallback as
|
|
8755
|
-
import
|
|
8756
|
-
import { jsx as
|
|
9043
|
+
import { useCallback as useCallback10, useEffect as useEffect27, useState as useState27 } from "react";
|
|
9044
|
+
import clsx51 from "clsx";
|
|
9045
|
+
import { jsx as jsx64, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
8757
9046
|
var up = 1;
|
|
8758
9047
|
var down = -1;
|
|
8759
9048
|
var ScrollPicker = ({
|
|
@@ -8772,7 +9061,7 @@ var ScrollPicker = ({
|
|
|
8772
9061
|
transition,
|
|
8773
9062
|
items,
|
|
8774
9063
|
lastTimeStamp
|
|
8775
|
-
}, setAnimation] =
|
|
9064
|
+
}, setAnimation] = useState27({
|
|
8776
9065
|
targetIndex: selectedIndex,
|
|
8777
9066
|
currentIndex: disabled ? selectedIndex : 0,
|
|
8778
9067
|
velocity: 0,
|
|
@@ -8788,7 +9077,7 @@ var ScrollPicker = ({
|
|
|
8788
9077
|
const itemHeight = 40;
|
|
8789
9078
|
const distance = 8;
|
|
8790
9079
|
const containerHeight = itemHeight * (itemsShownCount - 2) + distance * (itemsShownCount - 2 + 1);
|
|
8791
|
-
const getDirection =
|
|
9080
|
+
const getDirection = useCallback10((targetIndex, currentIndex2, transition2, length) => {
|
|
8792
9081
|
if (targetIndex === currentIndex2) {
|
|
8793
9082
|
return transition2 > 0 ? up : down;
|
|
8794
9083
|
}
|
|
@@ -8798,7 +9087,7 @@ var ScrollPicker = ({
|
|
|
8798
9087
|
}
|
|
8799
9088
|
return distanceForward >= length / 2 ? down : up;
|
|
8800
9089
|
}, []);
|
|
8801
|
-
const animate =
|
|
9090
|
+
const animate = useCallback10((timestamp, startTime) => {
|
|
8802
9091
|
setAnimation((prevState) => {
|
|
8803
9092
|
const {
|
|
8804
9093
|
targetIndex,
|
|
@@ -8871,7 +9160,7 @@ var ScrollPicker = ({
|
|
|
8871
9160
|
};
|
|
8872
9161
|
});
|
|
8873
9162
|
}, [disabled, getDirection, onChange]);
|
|
8874
|
-
|
|
9163
|
+
useEffect27(() => {
|
|
8875
9164
|
requestAnimationFrame((timestamp) => animate(timestamp, lastTimeStamp));
|
|
8876
9165
|
});
|
|
8877
9166
|
const opacity = (transition2, index, itemsCount) => {
|
|
@@ -8892,7 +9181,7 @@ var ScrollPicker = ({
|
|
|
8892
9181
|
}
|
|
8893
9182
|
return clamp(1 - opacityValue / max);
|
|
8894
9183
|
};
|
|
8895
|
-
return /* @__PURE__ */
|
|
9184
|
+
return /* @__PURE__ */ jsx64(
|
|
8896
9185
|
"div",
|
|
8897
9186
|
{
|
|
8898
9187
|
className: "relative overflow-hidden",
|
|
@@ -8902,27 +9191,27 @@ var ScrollPicker = ({
|
|
|
8902
9191
|
setAnimation(({ velocity, ...animationData }) => ({ ...animationData, velocity: velocity + event.deltaY }));
|
|
8903
9192
|
}
|
|
8904
9193
|
},
|
|
8905
|
-
children: /* @__PURE__ */
|
|
8906
|
-
/* @__PURE__ */
|
|
9194
|
+
children: /* @__PURE__ */ jsxs41("div", { className: "absolute top-1/2 -translate-y-1/2 -translate-x-1/2 left-1/2", children: [
|
|
9195
|
+
/* @__PURE__ */ jsx64(
|
|
8907
9196
|
"div",
|
|
8908
9197
|
{
|
|
8909
9198
|
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 ",
|
|
8910
9199
|
style: { height: `${itemHeight}px` }
|
|
8911
9200
|
}
|
|
8912
9201
|
),
|
|
8913
|
-
/* @__PURE__ */
|
|
9202
|
+
/* @__PURE__ */ jsx64(
|
|
8914
9203
|
"div",
|
|
8915
9204
|
{
|
|
8916
|
-
className: "col select-none",
|
|
9205
|
+
className: "flex-col-2 select-none",
|
|
8917
9206
|
style: {
|
|
8918
9207
|
transform: `translateY(${-transition * (distance + itemHeight)}px)`,
|
|
8919
9208
|
columnGap: `${distance}px`
|
|
8920
9209
|
},
|
|
8921
|
-
children: shownItems.map(({ name, index }, arrayIndex) => /* @__PURE__ */
|
|
9210
|
+
children: shownItems.map(({ name, index }, arrayIndex) => /* @__PURE__ */ jsx64(
|
|
8922
9211
|
"div",
|
|
8923
9212
|
{
|
|
8924
|
-
className:
|
|
8925
|
-
`col items-center justify-center rounded-md`,
|
|
9213
|
+
className: clsx51(
|
|
9214
|
+
`flex-col-2 items-center justify-center rounded-md`,
|
|
8926
9215
|
{
|
|
8927
9216
|
"text-primary font-bold": currentIndex === index,
|
|
8928
9217
|
"text-on-background": currentIndex === index,
|
|
@@ -8948,10 +9237,10 @@ var ScrollPicker = ({
|
|
|
8948
9237
|
};
|
|
8949
9238
|
|
|
8950
9239
|
// src/components/user-action/ToggleableInput.tsx
|
|
8951
|
-
import { useEffect as
|
|
9240
|
+
import { useEffect as useEffect28, useRef as useRef8, useState as useState28 } from "react";
|
|
8952
9241
|
import { Pencil } from "lucide-react";
|
|
8953
|
-
import
|
|
8954
|
-
import { jsx as
|
|
9242
|
+
import clsx52 from "clsx";
|
|
9243
|
+
import { jsx as jsx65, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
8955
9244
|
var ToggleableInput = ({
|
|
8956
9245
|
type = "text",
|
|
8957
9246
|
value,
|
|
@@ -8966,26 +9255,26 @@ var ToggleableInput = ({
|
|
|
8966
9255
|
saveDelayOptions,
|
|
8967
9256
|
...restProps
|
|
8968
9257
|
}) => {
|
|
8969
|
-
const [isEditing, setIsEditing] =
|
|
9258
|
+
const [isEditing, setIsEditing] = useState28(initialState !== "display");
|
|
8970
9259
|
const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
|
|
8971
|
-
const ref =
|
|
9260
|
+
const ref = useRef8(null);
|
|
8972
9261
|
const onEditCompletedWrapper = (text) => {
|
|
8973
9262
|
onEditCompleted(text);
|
|
8974
9263
|
clearTimer();
|
|
8975
9264
|
};
|
|
8976
|
-
|
|
9265
|
+
useEffect28(() => {
|
|
8977
9266
|
if (isEditing) {
|
|
8978
9267
|
ref.current?.focus();
|
|
8979
9268
|
}
|
|
8980
9269
|
}, [isEditing]);
|
|
8981
|
-
return /* @__PURE__ */
|
|
8982
|
-
/* @__PURE__ */
|
|
9270
|
+
return /* @__PURE__ */ jsxs42("div", { children: [
|
|
9271
|
+
/* @__PURE__ */ jsxs42(
|
|
8983
9272
|
"div",
|
|
8984
9273
|
{
|
|
8985
|
-
className:
|
|
9274
|
+
className: clsx52("flex-row-2 items-center w-full overflow-hidden", { "cursor-pointer": !isEditing }),
|
|
8986
9275
|
onClick: () => !isEditing ? setIsEditing(!isEditing) : void 0,
|
|
8987
9276
|
children: [
|
|
8988
|
-
/* @__PURE__ */
|
|
9277
|
+
/* @__PURE__ */ jsx65("div", { className: clsx52("flex-row-2 overflow-hidden", { "flex-1": isEditing }), children: isEditing ? /* @__PURE__ */ jsx65(
|
|
8989
9278
|
"input",
|
|
8990
9279
|
{
|
|
8991
9280
|
ref,
|
|
@@ -9013,16 +9302,16 @@ var ToggleableInput = ({
|
|
|
9013
9302
|
onEditCompletedWrapper(value);
|
|
9014
9303
|
}
|
|
9015
9304
|
},
|
|
9016
|
-
className:
|
|
9305
|
+
className: clsx52(`w-full border-none rounded-none ring-0 outline-0 text-inherit bg-inherit shadow-transparent decoration-primary p-0 underline-offset-4`, {
|
|
9017
9306
|
underline: isEditing
|
|
9018
9307
|
}, labelClassName),
|
|
9019
9308
|
onFocus: (event) => event.target.select()
|
|
9020
9309
|
}
|
|
9021
|
-
) : /* @__PURE__ */
|
|
9022
|
-
/* @__PURE__ */
|
|
9310
|
+
) : /* @__PURE__ */ jsx65("span", { className: clsx52("max-w-xs break-words overflow-hidden", labelClassName), children: value }) }),
|
|
9311
|
+
/* @__PURE__ */ jsx65(
|
|
9023
9312
|
Pencil,
|
|
9024
9313
|
{
|
|
9025
|
-
className:
|
|
9314
|
+
className: clsx52(`cursor-pointer`, { "text-transparent": isEditing }),
|
|
9026
9315
|
size,
|
|
9027
9316
|
style: { minWidth: `${size}px` }
|
|
9028
9317
|
}
|
|
@@ -9030,7 +9319,7 @@ var ToggleableInput = ({
|
|
|
9030
9319
|
]
|
|
9031
9320
|
}
|
|
9032
9321
|
),
|
|
9033
|
-
isEditing && disclaimer && /* @__PURE__ */
|
|
9322
|
+
isEditing && disclaimer && /* @__PURE__ */ jsx65("label", { className: "text-negative", children: disclaimer })
|
|
9034
9323
|
] });
|
|
9035
9324
|
};
|
|
9036
9325
|
var ToggleableInputUncontrolled = ({
|
|
@@ -9038,11 +9327,11 @@ var ToggleableInputUncontrolled = ({
|
|
|
9038
9327
|
onChangeText = noop,
|
|
9039
9328
|
...restProps
|
|
9040
9329
|
}) => {
|
|
9041
|
-
const [value, setValue] =
|
|
9042
|
-
|
|
9330
|
+
const [value, setValue] = useState28(initialValue);
|
|
9331
|
+
useEffect28(() => {
|
|
9043
9332
|
setValue(initialValue);
|
|
9044
9333
|
}, [initialValue]);
|
|
9045
|
-
return /* @__PURE__ */
|
|
9334
|
+
return /* @__PURE__ */ jsx65(
|
|
9046
9335
|
ToggleableInput,
|
|
9047
9336
|
{
|
|
9048
9337
|
value,
|
|
@@ -9137,6 +9426,7 @@ export {
|
|
|
9137
9426
|
ErrorComponent,
|
|
9138
9427
|
Expandable,
|
|
9139
9428
|
ExpandableUncontrolled,
|
|
9429
|
+
ExpansionIcon,
|
|
9140
9430
|
FAQSection,
|
|
9141
9431
|
FillerRowElement,
|
|
9142
9432
|
FormInput,
|
|
@@ -9155,6 +9445,7 @@ export {
|
|
|
9155
9445
|
LoadingAndErrorComponent,
|
|
9156
9446
|
LoadingAnimation,
|
|
9157
9447
|
LoadingButton,
|
|
9448
|
+
LoadingContainer,
|
|
9158
9449
|
LocalStorageService,
|
|
9159
9450
|
LoopingArrayCalculator,
|
|
9160
9451
|
MarkdownInterpreter,
|
|
@@ -9177,8 +9468,10 @@ export {
|
|
|
9177
9468
|
Ring,
|
|
9178
9469
|
RingWave,
|
|
9179
9470
|
ScrollPicker,
|
|
9471
|
+
SearchBar,
|
|
9180
9472
|
SearchableList,
|
|
9181
9473
|
Select,
|
|
9474
|
+
SelectTile,
|
|
9182
9475
|
SelectUncontrolled,
|
|
9183
9476
|
SessionStorageService,
|
|
9184
9477
|
SimpleSearch,
|
|
@@ -9255,6 +9548,7 @@ export {
|
|
|
9255
9548
|
useLocalStorage,
|
|
9256
9549
|
useLocale,
|
|
9257
9550
|
useOutsideClick,
|
|
9551
|
+
usePopoverPosition,
|
|
9258
9552
|
useRerender,
|
|
9259
9553
|
useResizeCallbackWrapper,
|
|
9260
9554
|
useSearch,
|