@helpwave/hightide 0.1.7 → 0.1.8
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 +30 -8
- package/dist/components/branding/HelpwaveBadge.js.map +1 -1
- package/dist/components/branding/HelpwaveBadge.mjs +30 -8
- package/dist/components/branding/HelpwaveBadge.mjs.map +1 -1
- package/dist/components/date/DatePicker.js +18 -20
- package/dist/components/date/DatePicker.js.map +1 -1
- package/dist/components/date/DatePicker.mjs +18 -20
- package/dist/components/date/DatePicker.mjs.map +1 -1
- package/dist/components/date/DayPicker.d.mts +1 -1
- package/dist/components/date/DayPicker.d.ts +1 -1
- package/dist/components/date/DayPicker.js +23 -11
- package/dist/components/date/DayPicker.js.map +1 -1
- package/dist/components/date/DayPicker.mjs +23 -11
- package/dist/components/date/DayPicker.mjs.map +1 -1
- package/dist/components/date/YearMonthPicker.js +106 -22
- package/dist/components/date/YearMonthPicker.js.map +1 -1
- package/dist/components/date/YearMonthPicker.mjs +106 -22
- package/dist/components/date/YearMonthPicker.mjs.map +1 -1
- package/dist/components/dialogs/ConfirmDialog.js +2 -2
- package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
- package/dist/components/dialogs/ConfirmDialog.mjs +2 -2
- 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/layout-and-navigation/Carousel.d.mts +1 -1
- package/dist/components/layout-and-navigation/Carousel.d.ts +1 -1
- package/dist/components/layout-and-navigation/Carousel.js +86 -28
- package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
- package/dist/components/layout-and-navigation/Carousel.mjs +86 -28
- package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Expandable.d.mts +3 -0
- package/dist/components/layout-and-navigation/Expandable.d.ts +3 -0
- package/dist/components/layout-and-navigation/Expandable.js +4 -3
- package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
- package/dist/components/layout-and-navigation/Expandable.mjs +4 -3
- package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -1
- package/dist/components/layout-and-navigation/FAQSection.js +4 -3
- package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
- package/dist/components/layout-and-navigation/FAQSection.mjs +4 -3
- package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Overlay.js +2 -2
- package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
- package/dist/components/layout-and-navigation/Overlay.mjs +2 -2
- package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -1
- package/dist/components/layout-and-navigation/SearchableList.d.mts +7 -6
- package/dist/components/layout-and-navigation/SearchableList.d.ts +7 -6
- package/dist/components/layout-and-navigation/SearchableList.js +114 -21
- package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
- package/dist/components/layout-and-navigation/SearchableList.mjs +114 -21
- package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -1
- package/dist/components/layout-and-navigation/StepperBar.js +6 -6
- package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
- package/dist/components/layout-and-navigation/StepperBar.mjs +6 -6
- package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Table.js +1 -1
- package/dist/components/layout-and-navigation/Table.js.map +1 -1
- package/dist/components/layout-and-navigation/Table.mjs +1 -1
- package/dist/components/layout-and-navigation/Table.mjs.map +1 -1
- package/dist/components/layout-and-navigation/Tile.d.mts +10 -15
- package/dist/components/layout-and-navigation/Tile.d.ts +10 -15
- package/dist/components/layout-and-navigation/Tile.js +30 -8
- package/dist/components/layout-and-navigation/Tile.js.map +1 -1
- package/dist/components/layout-and-navigation/Tile.mjs +30 -8
- package/dist/components/layout-and-navigation/Tile.mjs.map +1 -1
- package/dist/components/loading-states/ProgressIndicator.js +2 -2
- package/dist/components/loading-states/ProgressIndicator.js.map +1 -1
- package/dist/components/loading-states/ProgressIndicator.mjs +2 -2
- package/dist/components/loading-states/ProgressIndicator.mjs.map +1 -1
- package/dist/components/modals/ConfirmModal.js +2 -2
- package/dist/components/modals/ConfirmModal.js.map +1 -1
- package/dist/components/modals/ConfirmModal.mjs +2 -2
- package/dist/components/modals/ConfirmModal.mjs.map +1 -1
- package/dist/components/modals/DiscardChangesModal.js +2 -2
- package/dist/components/modals/DiscardChangesModal.js.map +1 -1
- package/dist/components/modals/DiscardChangesModal.mjs +2 -2
- package/dist/components/modals/DiscardChangesModal.mjs.map +1 -1
- package/dist/components/modals/InputModal.js +2 -2
- package/dist/components/modals/InputModal.js.map +1 -1
- package/dist/components/modals/InputModal.mjs +2 -2
- package/dist/components/modals/InputModal.mjs.map +1 -1
- package/dist/components/modals/LanguageModal.js +384 -150
- package/dist/components/modals/LanguageModal.js.map +1 -1
- package/dist/components/modals/LanguageModal.mjs +383 -149
- package/dist/components/modals/LanguageModal.mjs.map +1 -1
- package/dist/components/modals/ThemeModal.js +385 -154
- package/dist/components/modals/ThemeModal.js.map +1 -1
- package/dist/components/modals/ThemeModal.mjs +382 -151
- package/dist/components/modals/ThemeModal.mjs.map +1 -1
- package/dist/components/properties/CheckboxProperty.js +1 -1
- package/dist/components/properties/CheckboxProperty.js.map +1 -1
- package/dist/components/properties/CheckboxProperty.mjs +1 -1
- package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
- package/dist/components/properties/DateProperty.js +1 -1
- package/dist/components/properties/DateProperty.js.map +1 -1
- package/dist/components/properties/DateProperty.mjs +1 -1
- package/dist/components/properties/DateProperty.mjs.map +1 -1
- package/dist/components/properties/MultiSelectProperty.d.mts +1 -0
- package/dist/components/properties/MultiSelectProperty.d.ts +1 -0
- package/dist/components/properties/MultiSelectProperty.js +482 -430
- package/dist/components/properties/MultiSelectProperty.js.map +1 -1
- package/dist/components/properties/MultiSelectProperty.mjs +478 -426
- package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
- package/dist/components/properties/NumberProperty.js +1 -1
- package/dist/components/properties/NumberProperty.js.map +1 -1
- package/dist/components/properties/NumberProperty.mjs +1 -1
- package/dist/components/properties/NumberProperty.mjs.map +1 -1
- package/dist/components/properties/PropertyBase.js +1 -1
- package/dist/components/properties/PropertyBase.js.map +1 -1
- package/dist/components/properties/PropertyBase.mjs +1 -1
- package/dist/components/properties/PropertyBase.mjs.map +1 -1
- package/dist/components/properties/SelectProperty.d.mts +3 -3
- package/dist/components/properties/SelectProperty.d.ts +3 -3
- package/dist/components/properties/SelectProperty.js +404 -263
- package/dist/components/properties/SelectProperty.js.map +1 -1
- package/dist/components/properties/SelectProperty.mjs +404 -263
- package/dist/components/properties/SelectProperty.mjs.map +1 -1
- package/dist/components/properties/TextProperty.js +1 -1
- package/dist/components/properties/TextProperty.js.map +1 -1
- package/dist/components/properties/TextProperty.mjs +1 -1
- package/dist/components/properties/TextProperty.mjs.map +1 -1
- package/dist/components/user-action/DateAndTimePicker.js +18 -20
- package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
- package/dist/components/user-action/DateAndTimePicker.mjs +18 -20
- package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
- package/dist/components/user-action/Menu.d.mts +14 -8
- package/dist/components/user-action/Menu.d.ts +14 -8
- package/dist/components/user-action/Menu.js +32 -11
- package/dist/components/user-action/Menu.js.map +1 -1
- package/dist/components/user-action/Menu.mjs +32 -11
- package/dist/components/user-action/Menu.mjs.map +1 -1
- package/dist/components/user-action/MultiSelect.d.mts +10 -16
- package/dist/components/user-action/MultiSelect.d.ts +10 -16
- package/dist/components/user-action/MultiSelect.js +485 -312
- package/dist/components/user-action/MultiSelect.js.map +1 -1
- package/dist/components/user-action/MultiSelect.mjs +482 -310
- package/dist/components/user-action/MultiSelect.mjs.map +1 -1
- package/dist/components/user-action/Select.d.mts +5 -18
- package/dist/components/user-action/Select.d.ts +5 -18
- package/dist/components/user-action/Select.js +309 -113
- package/dist/components/user-action/Select.js.map +1 -1
- package/dist/components/user-action/Select.mjs +304 -107
- package/dist/components/user-action/Select.mjs.map +1 -1
- package/dist/components/user-action/Tooltip.js +2 -2
- package/dist/components/user-action/Tooltip.js.map +1 -1
- package/dist/components/user-action/Tooltip.mjs +2 -2
- package/dist/components/user-action/Tooltip.mjs.map +1 -1
- package/dist/css/globals.css +213 -205
- package/dist/css/uncompiled/globals.css +136 -72
- package/dist/hooks/useSearch.d.mts +17 -0
- package/dist/hooks/useSearch.d.ts +17 -0
- package/dist/hooks/useSearch.js +66 -0
- package/dist/hooks/useSearch.js.map +1 -0
- package/dist/hooks/useSearch.mjs +42 -0
- package/dist/hooks/useSearch.mjs.map +1 -0
- package/dist/index.d.mts +7 -5
- package/dist/index.d.ts +7 -5
- package/dist/index.js +555 -463
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +517 -427
- package/dist/index.mjs.map +1 -1
- package/dist/util/PropsWithFunctionChildren.d.mts +14 -0
- package/dist/util/PropsWithFunctionChildren.d.ts +14 -0
- package/dist/util/PropsWithFunctionChildren.js +38 -0
- package/dist/util/PropsWithFunctionChildren.js.map +1 -0
- package/dist/util/PropsWithFunctionChildren.mjs +14 -0
- package/dist/util/PropsWithFunctionChildren.mjs.map +1 -0
- package/dist/util/simpleSearch.d.mts +2 -2
- package/dist/util/simpleSearch.d.ts +2 -2
- 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 -2
package/dist/index.js
CHANGED
|
@@ -2845,6 +2845,7 @@ __export(index_exports, {
|
|
|
2845
2845
|
ArrayUtil: () => ArrayUtil,
|
|
2846
2846
|
Avatar: () => Avatar,
|
|
2847
2847
|
AvatarGroup: () => AvatarGroup,
|
|
2848
|
+
BagFunctionUtil: () => BagFunctionUtil,
|
|
2848
2849
|
BreadCrumb: () => BreadCrumb,
|
|
2849
2850
|
ButtonColorUtil: () => ButtonColorUtil,
|
|
2850
2851
|
ButtonUtil: () => ButtonUtil,
|
|
@@ -2889,12 +2890,13 @@ __export(index_exports, {
|
|
|
2889
2890
|
LocalStorageService: () => LocalStorageService,
|
|
2890
2891
|
LoopingArrayCalculator: () => LoopingArrayCalculator,
|
|
2891
2892
|
MarkdownInterpreter: () => MarkdownInterpreter,
|
|
2892
|
-
Menu: () =>
|
|
2893
|
+
Menu: () => Menu,
|
|
2893
2894
|
MenuItem: () => MenuItem,
|
|
2894
2895
|
Modal: () => Modal,
|
|
2895
2896
|
MultiSearchWithMapping: () => MultiSearchWithMapping,
|
|
2896
2897
|
MultiSelect: () => MultiSelect,
|
|
2897
2898
|
MultiSelectProperty: () => MultiSelectProperty,
|
|
2899
|
+
MultiSelectUncontrolled: () => MultiSelectUncontrolled,
|
|
2898
2900
|
MultiSubjectSearchWithMapping: () => MultiSubjectSearchWithMapping,
|
|
2899
2901
|
NumberProperty: () => NumberProperty,
|
|
2900
2902
|
OutlineButton: () => OutlineButton,
|
|
@@ -2908,7 +2910,6 @@ __export(index_exports, {
|
|
|
2908
2910
|
RingWave: () => RingWave,
|
|
2909
2911
|
ScrollPicker: () => ScrollPicker,
|
|
2910
2912
|
SearchableList: () => SearchableList,
|
|
2911
|
-
SearchableSelect: () => SearchableSelect,
|
|
2912
2913
|
Select: () => Select,
|
|
2913
2914
|
SelectUncontrolled: () => SelectUncontrolled,
|
|
2914
2915
|
SessionStorageService: () => SessionStorageService,
|
|
@@ -2982,6 +2983,7 @@ __export(index_exports, {
|
|
|
2982
2983
|
useLocale: () => useLocale,
|
|
2983
2984
|
useOutsideClick: () => useOutsideClick,
|
|
2984
2985
|
useSaveDelay: () => useSaveDelay,
|
|
2986
|
+
useSearch: () => useSearch,
|
|
2985
2987
|
useTheme: () => useTheme,
|
|
2986
2988
|
useTranslation: () => useTranslation,
|
|
2987
2989
|
validateEmail: () => validateEmail,
|
|
@@ -3038,22 +3040,44 @@ var import_clsx3 = __toESM(require("clsx"));
|
|
|
3038
3040
|
|
|
3039
3041
|
// src/components/layout-and-navigation/Tile.tsx
|
|
3040
3042
|
var import_clsx = __toESM(require("clsx"));
|
|
3043
|
+
var import_lucide_react = require("lucide-react");
|
|
3041
3044
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
3042
3045
|
var Tile = ({
|
|
3043
3046
|
title,
|
|
3044
3047
|
description,
|
|
3048
|
+
onClick,
|
|
3049
|
+
isSelected = false,
|
|
3050
|
+
isDisabled = false,
|
|
3045
3051
|
prefix,
|
|
3046
3052
|
suffix,
|
|
3053
|
+
normalClassName = "hover:bg-primary/40 cursor-pointer",
|
|
3054
|
+
selectedClassName = " bg-primary/20",
|
|
3055
|
+
disabledClassName = "text-disabled-text bg-disabled-background cursor-not-allowed",
|
|
3047
3056
|
className
|
|
3048
3057
|
}) => {
|
|
3049
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
3059
|
+
"div",
|
|
3060
|
+
{
|
|
3061
|
+
className: (0, import_clsx.default)(
|
|
3062
|
+
"row gap-x-2 w-full items-center",
|
|
3063
|
+
{
|
|
3064
|
+
[normalClassName]: !!onClick && !isDisabled,
|
|
3065
|
+
[selectedClassName]: isSelected && !isDisabled,
|
|
3066
|
+
[disabledClassName]: isDisabled
|
|
3067
|
+
},
|
|
3068
|
+
className
|
|
3069
|
+
),
|
|
3070
|
+
onClick: isDisabled ? void 0 : onClick,
|
|
3071
|
+
children: [
|
|
3072
|
+
prefix ?? (isSelected ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Check, { size: 24 }) : void 0),
|
|
3073
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "col gap-y-0 w-full", children: [
|
|
3074
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", { className: (0, import_clsx.default)(title.className ?? "textstyle-title-normal"), children: title.value }),
|
|
3075
|
+
!!description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: (0, import_clsx.default)(description.className ?? "textstyle-description"), children: description.value })
|
|
3076
|
+
] }),
|
|
3077
|
+
suffix
|
|
3078
|
+
]
|
|
3079
|
+
}
|
|
3080
|
+
);
|
|
3057
3081
|
};
|
|
3058
3082
|
|
|
3059
3083
|
// src/components/icons-and-geometry/Helpwave.tsx
|
|
@@ -3154,7 +3178,7 @@ var HelpwaveBadge = ({
|
|
|
3154
3178
|
|
|
3155
3179
|
// src/components/date/DatePicker.tsx
|
|
3156
3180
|
var import_react6 = require("react");
|
|
3157
|
-
var
|
|
3181
|
+
var import_lucide_react3 = require("lucide-react");
|
|
3158
3182
|
|
|
3159
3183
|
// src/localization/LanguageProvider.tsx
|
|
3160
3184
|
var import_react2 = require("react");
|
|
@@ -3766,10 +3790,10 @@ var import_clsx6 = __toESM(require("clsx"));
|
|
|
3766
3790
|
|
|
3767
3791
|
// src/components/layout-and-navigation/Expandable.tsx
|
|
3768
3792
|
var import_react3 = require("react");
|
|
3769
|
-
var
|
|
3793
|
+
var import_lucide_react2 = require("lucide-react");
|
|
3770
3794
|
var import_clsx5 = __toESM(require("clsx"));
|
|
3771
3795
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
3772
|
-
var DefaultIcon = (expanded) => expanded ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
3796
|
+
var DefaultIcon = (expanded) => expanded ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.ChevronUp, { size: 16, className: "min-w-[16px]" }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.ChevronDown, { size: 16, className: "min-w-[16px]" });
|
|
3773
3797
|
var Expandable = (0, import_react3.forwardRef)(function Expandable2({
|
|
3774
3798
|
children,
|
|
3775
3799
|
label,
|
|
@@ -3778,8 +3802,9 @@ var Expandable = (0, import_react3.forwardRef)(function Expandable2({
|
|
|
3778
3802
|
onChange = noop,
|
|
3779
3803
|
clickOnlyOnHeader = true,
|
|
3780
3804
|
disabled = false,
|
|
3781
|
-
className
|
|
3782
|
-
headerClassName
|
|
3805
|
+
className,
|
|
3806
|
+
headerClassName,
|
|
3807
|
+
contentClassName
|
|
3783
3808
|
}, ref) {
|
|
3784
3809
|
icon ??= DefaultIcon;
|
|
3785
3810
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
@@ -3808,7 +3833,7 @@ var Expandable = (0, import_react3.forwardRef)(function Expandable2({
|
|
|
3808
3833
|
]
|
|
3809
3834
|
}
|
|
3810
3835
|
),
|
|
3811
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "col px-4 pb-2", children })
|
|
3836
|
+
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: (0, import_clsx5.default)("col px-4 pb-2", contentClassName), children })
|
|
3812
3837
|
]
|
|
3813
3838
|
}
|
|
3814
3839
|
);
|
|
@@ -3873,7 +3898,8 @@ var YearMonthPicker = ({
|
|
|
3873
3898
|
ref: (displayedYearMonth.getFullYear() ?? (/* @__PURE__ */ new Date()).getFullYear()) === year ? ref : void 0,
|
|
3874
3899
|
label: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: (0, import_clsx6.default)({ "text-primary font-bold": selectedYear }), children: year }),
|
|
3875
3900
|
isExpanded: showValueOpen && selectedYear,
|
|
3876
|
-
|
|
3901
|
+
contentClassName: "gap-y-1",
|
|
3902
|
+
children: equalSizeGroups([...monthsList], 3).map((monthList, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "row gap-x-1", children: monthList.map((month) => {
|
|
3877
3903
|
const monthIndex = monthsList.indexOf(month);
|
|
3878
3904
|
const newDate = new Date(year, monthIndex);
|
|
3879
3905
|
const selectedMonth = selectedYear && monthIndex === displayedYearMonth.getMonth();
|
|
@@ -3883,17 +3909,12 @@ var YearMonthPicker = ({
|
|
|
3883
3909
|
const isBeforeEnd = end === void 0 || firstOfMonth <= end;
|
|
3884
3910
|
const isValid = isAfterStart && isBeforeEnd;
|
|
3885
3911
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
3886
|
-
|
|
3912
|
+
SolidButton,
|
|
3887
3913
|
{
|
|
3888
3914
|
disabled: !isValid,
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
"bg-gray-50 text-black": !selectedMonth && isValid,
|
|
3893
|
-
"bg-primary text-on-primary": selectedMonth && isValid,
|
|
3894
|
-
"bg-disabled-background text-disabled-text": !isValid
|
|
3895
|
-
}
|
|
3896
|
-
),
|
|
3915
|
+
color: selectedMonth && isValid ? "primary" : "neutral",
|
|
3916
|
+
className: "flex-1",
|
|
3917
|
+
size: "small",
|
|
3897
3918
|
onClick: () => {
|
|
3898
3919
|
onChange(newDate);
|
|
3899
3920
|
},
|
|
@@ -3908,11 +3929,11 @@ var YearMonthPicker = ({
|
|
|
3908
3929
|
}) }) }) });
|
|
3909
3930
|
};
|
|
3910
3931
|
var YearMonthPickerUncontrolled = ({
|
|
3911
|
-
displayedYearMonth
|
|
3932
|
+
displayedYearMonth,
|
|
3912
3933
|
onChange = noop,
|
|
3913
3934
|
...props
|
|
3914
3935
|
}) => {
|
|
3915
|
-
const [yearMonth, setYearMonth] = (0, import_react4.useState)(displayedYearMonth);
|
|
3936
|
+
const [yearMonth, setYearMonth] = (0, import_react4.useState)(displayedYearMonth ?? /* @__PURE__ */ new Date());
|
|
3916
3937
|
(0, import_react4.useEffect)(() => setYearMonth(displayedYearMonth), [displayedYearMonth]);
|
|
3917
3938
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
3918
3939
|
YearMonthPicker,
|
|
@@ -3956,14 +3977,15 @@ var DayPicker = ({
|
|
|
3956
3977
|
{
|
|
3957
3978
|
disabled: !isDayValid,
|
|
3958
3979
|
className: (0, import_clsx7.default)(
|
|
3959
|
-
"flex-1 rounded-full border-2
|
|
3980
|
+
"flex-1 rounded-full border-2",
|
|
3960
3981
|
{
|
|
3961
|
-
"text-
|
|
3962
|
-
"text-
|
|
3963
|
-
"text-
|
|
3964
|
-
"
|
|
3965
|
-
"
|
|
3966
|
-
"
|
|
3982
|
+
"text-description": !isSameMonth && !isSelected && isDayValid,
|
|
3983
|
+
"text-button-solid-neutral-text bg-button-solid-neutral-background": !isSelected && isSameMonth && isDayValid,
|
|
3984
|
+
"text-button-solid-primary-text bg-button-solid-primary-background": isSelected && isDayValid,
|
|
3985
|
+
"hover:brightness-90 hover:bg-button-solid-primary-background hover:text-button-solid-primary-text": isDayValid,
|
|
3986
|
+
"text-disabled-text bg-disabled-background cursor-not-allowed": !isDayValid,
|
|
3987
|
+
"border-secondary": isToday && markToday,
|
|
3988
|
+
"border-transparent": !isToday || !markToday
|
|
3967
3989
|
}
|
|
3968
3990
|
),
|
|
3969
3991
|
onClick: () => onChange(date),
|
|
@@ -3974,15 +3996,26 @@ var DayPicker = ({
|
|
|
3974
3996
|
}) }, index))
|
|
3975
3997
|
] });
|
|
3976
3998
|
};
|
|
3977
|
-
var DayPickerUncontrolled = ({
|
|
3978
|
-
|
|
3979
|
-
|
|
3999
|
+
var DayPickerUncontrolled = ({
|
|
4000
|
+
displayedMonth,
|
|
4001
|
+
selected,
|
|
4002
|
+
onChange = noop,
|
|
4003
|
+
...restProps
|
|
4004
|
+
}) => {
|
|
4005
|
+
const [date, setDate] = (0, import_react5.useState)(selected);
|
|
4006
|
+
const [usedDisplayedMonth, setUsedDDisplayedMonth] = (0, import_react5.useState)(displayedMonth);
|
|
4007
|
+
(0, import_react5.useEffect)(() => {
|
|
4008
|
+
setDate(selected);
|
|
4009
|
+
setUsedDDisplayedMonth(selected);
|
|
4010
|
+
}, [selected]);
|
|
3980
4011
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
3981
4012
|
DayPicker,
|
|
3982
4013
|
{
|
|
3983
|
-
displayedMonth:
|
|
4014
|
+
displayedMonth: usedDisplayedMonth,
|
|
4015
|
+
selected: date,
|
|
3984
4016
|
onChange: (newDate) => {
|
|
3985
4017
|
setDate(newDate);
|
|
4018
|
+
setUsedDDisplayedMonth(newDate);
|
|
3986
4019
|
onChange(newDate);
|
|
3987
4020
|
},
|
|
3988
4021
|
...restProps
|
|
@@ -4029,7 +4062,7 @@ var DatePicker = ({
|
|
|
4029
4062
|
onClick: () => setDisplayMode(displayMode === "day" ? "yearMonth" : "day"),
|
|
4030
4063
|
children: [
|
|
4031
4064
|
`${new Intl.DateTimeFormat(locale, { month: "long" }).format(displayedMonth)} ${displayedMonth.getFullYear()}`,
|
|
4032
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
4065
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ChevronDown, { size: 16 })
|
|
4033
4066
|
]
|
|
4034
4067
|
}
|
|
4035
4068
|
),
|
|
@@ -4043,7 +4076,7 @@ var DatePicker = ({
|
|
|
4043
4076
|
onClick: () => {
|
|
4044
4077
|
setDisplayedMonth(subtractDuration(displayedMonth, { months: 1 }));
|
|
4045
4078
|
},
|
|
4046
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
4079
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ArrowUp, { size: 20 })
|
|
4047
4080
|
}
|
|
4048
4081
|
),
|
|
4049
4082
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
@@ -4055,7 +4088,7 @@ var DatePicker = ({
|
|
|
4055
4088
|
onClick: () => {
|
|
4056
4089
|
setDisplayedMonth(addDuration(displayedMonth, { months: 1 }));
|
|
4057
4090
|
},
|
|
4058
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
4091
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ArrowDown, { size: 20 })
|
|
4059
4092
|
}
|
|
4060
4093
|
)
|
|
4061
4094
|
] })
|
|
@@ -4438,7 +4471,7 @@ var Tooltip = ({
|
|
|
4438
4471
|
{
|
|
4439
4472
|
className: (0, import_clsx10.clsx)(
|
|
4440
4473
|
`opacity-0 absolute text-xs font-semibold text-tooltip-text px-2 py-1 rounded whitespace-nowrap
|
|
4441
|
-
animate-tooltip-fade-in shadow-
|
|
4474
|
+
animate-tooltip-fade-in shadow-around-md bg-tooltip-background`,
|
|
4442
4475
|
positionClasses[position],
|
|
4443
4476
|
tooltipClassName
|
|
4444
4477
|
),
|
|
@@ -4449,7 +4482,7 @@ var Tooltip = ({
|
|
|
4449
4482
|
"div",
|
|
4450
4483
|
{
|
|
4451
4484
|
className: (0, import_clsx10.clsx)(`absolute w-0 h-0`, triangleClasses[position]),
|
|
4452
|
-
style: { ...triangleStyle[position], zIndex }
|
|
4485
|
+
style: { ...triangleStyle[position], zIndex: zIndex + 1 }
|
|
4453
4486
|
}
|
|
4454
4487
|
)
|
|
4455
4488
|
]
|
|
@@ -4461,7 +4494,7 @@ var Tooltip = ({
|
|
|
4461
4494
|
};
|
|
4462
4495
|
|
|
4463
4496
|
// src/components/layout-and-navigation/Overlay.tsx
|
|
4464
|
-
var
|
|
4497
|
+
var import_lucide_react4 = require("lucide-react");
|
|
4465
4498
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
4466
4499
|
var Overlay = ({
|
|
4467
4500
|
children,
|
|
@@ -4517,7 +4550,7 @@ var OverlayHeader = ({
|
|
|
4517
4550
|
children: titleText
|
|
4518
4551
|
}
|
|
4519
4552
|
),
|
|
4520
|
-
!!onClose && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Tooltip, { tooltip: translation.close, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { color: "neutral", size: "small", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
4553
|
+
!!onClose && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Tooltip, { tooltip: translation.close, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { color: "neutral", size: "small", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react4.X, { className: "w-full h-full" }) }) })
|
|
4521
4554
|
] });
|
|
4522
4555
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "col", children: [
|
|
4523
4556
|
hasTitleRow && titleRow,
|
|
@@ -4749,10 +4782,10 @@ var Avatar = ({ avatarUrl, alt, size = "medium", className = "" }) => {
|
|
|
4749
4782
|
};
|
|
4750
4783
|
return (
|
|
4751
4784
|
// TODO transparent or white background later
|
|
4752
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: (0, import_clsx13.default)(`rounded-full bg-primary`, className), style, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
4785
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: (0, import_clsx13.default)(`rounded-full bg-primary shadow`, className), style, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
4753
4786
|
"img",
|
|
4754
4787
|
{
|
|
4755
|
-
className: "rounded-full
|
|
4788
|
+
className: "rounded-full",
|
|
4756
4789
|
style,
|
|
4757
4790
|
src: avatarUrl,
|
|
4758
4791
|
alt,
|
|
@@ -5125,7 +5158,7 @@ var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
|
|
|
5125
5158
|
// src/components/layout-and-navigation/Carousel.tsx
|
|
5126
5159
|
var import_react11 = require("react");
|
|
5127
5160
|
var import_clsx17 = __toESM(require("clsx"));
|
|
5128
|
-
var
|
|
5161
|
+
var import_lucide_react5 = require("lucide-react");
|
|
5129
5162
|
|
|
5130
5163
|
// src/util/math.ts
|
|
5131
5164
|
var clamp = (value, min = 0, max = 1) => {
|
|
@@ -5242,7 +5275,7 @@ var Carousel = ({
|
|
|
5242
5275
|
arrows = false,
|
|
5243
5276
|
dots = true,
|
|
5244
5277
|
overScrollThreshold = 0.1,
|
|
5245
|
-
blurColor = "from-
|
|
5278
|
+
blurColor = "from-background",
|
|
5246
5279
|
className = "",
|
|
5247
5280
|
heightClassName = "h-[24rem]",
|
|
5248
5281
|
widthClassName = "w-[70%] desktop:w-1/2"
|
|
@@ -5474,19 +5507,23 @@ var Carousel = ({
|
|
|
5474
5507
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: (0, import_clsx17.default)(`relative w-full overflow-hidden`, heightClassName, className), children: [
|
|
5475
5508
|
arrows && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
5476
5509
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5477
|
-
|
|
5510
|
+
IconButton,
|
|
5478
5511
|
{
|
|
5479
|
-
|
|
5512
|
+
color: "neutral",
|
|
5513
|
+
className: (0, import_clsx17.default)("absolute z-10 left-0 top-1/2 -translate-y-1/2 shadow-md", { hidden: !canGoLeft() }),
|
|
5514
|
+
disabled: !canGoLeft(),
|
|
5480
5515
|
onClick: () => left(),
|
|
5481
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5516
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react5.ChevronLeft, { size: 24 })
|
|
5482
5517
|
}
|
|
5483
5518
|
),
|
|
5484
5519
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5485
|
-
|
|
5520
|
+
IconButton,
|
|
5486
5521
|
{
|
|
5487
|
-
|
|
5522
|
+
color: "neutral",
|
|
5523
|
+
className: (0, import_clsx17.default)("absolute z-10 right-0 top-1/2 -translate-y-1/2 shadow-md", { hidden: !canGoRight() }),
|
|
5524
|
+
disabled: !canGoRight(),
|
|
5488
5525
|
onClick: () => right(),
|
|
5489
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5526
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react5.ChevronRight, { size: 24 })
|
|
5490
5527
|
}
|
|
5491
5528
|
)
|
|
5492
5529
|
] }),
|
|
@@ -5526,9 +5563,9 @@ var Carousel = ({
|
|
|
5526
5563
|
children: range(0, length - 1).map((index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5527
5564
|
"button",
|
|
5528
5565
|
{
|
|
5529
|
-
className: (0, import_clsx17.default)("w-[2rem] min-w-[2rem] h-[0.75rem] min-h-[0.75rem]
|
|
5530
|
-
"bg-
|
|
5531
|
-
"bg-
|
|
5566
|
+
className: (0, import_clsx17.default)("w-[2rem] min-w-[2rem] h-[0.75rem] min-h-[0.75rem] first:rounded-l-md last:rounded-r-md", {
|
|
5567
|
+
"bg-carousel-dot-disabled hover:bg-carousel-dot-active": currentIndex !== index,
|
|
5568
|
+
"bg-carousel-dot-active hover:brightness-90": currentIndex === index
|
|
5532
5569
|
}),
|
|
5533
5570
|
onClick: () => startAnimation(index)
|
|
5534
5571
|
},
|
|
@@ -5628,7 +5665,7 @@ var DividerInserter = ({
|
|
|
5628
5665
|
|
|
5629
5666
|
// src/components/layout-and-navigation/FAQSection.tsx
|
|
5630
5667
|
var import_clsx20 = __toESM(require("clsx"));
|
|
5631
|
-
var
|
|
5668
|
+
var import_lucide_react6 = require("lucide-react");
|
|
5632
5669
|
|
|
5633
5670
|
// src/components/layout-and-navigation/MarkdownInterpreter.tsx
|
|
5634
5671
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
@@ -5726,7 +5763,7 @@ var inserterIdentifierMapping = [
|
|
|
5726
5763
|
{ id: "helpwave", name: "helpwave" },
|
|
5727
5764
|
{ id: "newline", name: "newline" }
|
|
5728
5765
|
];
|
|
5729
|
-
var parseMarkdown = (text, commandStart = "\\",
|
|
5766
|
+
var parseMarkdown = (text, commandStart = "\\", open2 = "{", close = "}") => {
|
|
5730
5767
|
let start = text.indexOf(commandStart);
|
|
5731
5768
|
const children = [];
|
|
5732
5769
|
while (text !== "") {
|
|
@@ -5747,7 +5784,7 @@ var parseMarkdown = (text, commandStart = "\\", open = "{", close = "}") => {
|
|
|
5747
5784
|
text = "";
|
|
5748
5785
|
continue;
|
|
5749
5786
|
}
|
|
5750
|
-
const simpleReplace = [commandStart,
|
|
5787
|
+
const simpleReplace = [commandStart, open2, close];
|
|
5751
5788
|
if (simpleReplace.some((value) => text[1] === value)) {
|
|
5752
5789
|
children.push({
|
|
5753
5790
|
type: "text",
|
|
@@ -5768,7 +5805,7 @@ var parseMarkdown = (text, commandStart = "\\", open = "{", close = "}") => {
|
|
|
5768
5805
|
}
|
|
5769
5806
|
const modifier = modifierIdentifierMapping.find((value) => text.substring(1).startsWith(value.id));
|
|
5770
5807
|
if (modifier) {
|
|
5771
|
-
if (text[modifier.id.length + 1] !==
|
|
5808
|
+
if (text[modifier.id.length + 1] !== open2) {
|
|
5772
5809
|
children.push({
|
|
5773
5810
|
type: "text",
|
|
5774
5811
|
text: text.substring(0, modifier.id.length + 1)
|
|
@@ -5782,7 +5819,7 @@ var parseMarkdown = (text, commandStart = "\\", open = "{", close = "}") => {
|
|
|
5782
5819
|
let counter = 1;
|
|
5783
5820
|
let escaping = false;
|
|
5784
5821
|
while (index < text.length) {
|
|
5785
|
-
if (text[index] ===
|
|
5822
|
+
if (text[index] === open2 && !escaping) {
|
|
5786
5823
|
counter++;
|
|
5787
5824
|
}
|
|
5788
5825
|
if (text[index] === close && !escaping) {
|
|
@@ -5874,7 +5911,7 @@ var FAQSection = ({
|
|
|
5874
5911
|
...restProps,
|
|
5875
5912
|
label: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h3", { id, className: "textstyle-title-md", children: title }),
|
|
5876
5913
|
clickOnlyOnHeader: false,
|
|
5877
|
-
icon: (expanded) => expanded ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
5914
|
+
icon: (expanded) => expanded ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react6.ChevronUp, { size: chevronSize, className: "text-primary", style: { minWidth: `${chevronSize}px` } }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react6.ChevronDown, { size: chevronSize, className: "text-primary" }),
|
|
5878
5915
|
className: (0, import_clsx20.default)("rounded-xl", expandableClassName),
|
|
5879
5916
|
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "mt-2", children: content.type === "markdown" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MarkdownInterpreter, { text: content.value }) : content.value })
|
|
5880
5917
|
},
|
|
@@ -5883,7 +5920,7 @@ var FAQSection = ({
|
|
|
5883
5920
|
};
|
|
5884
5921
|
|
|
5885
5922
|
// src/components/layout-and-navigation/Pagination.tsx
|
|
5886
|
-
var
|
|
5923
|
+
var import_lucide_react7 = require("lucide-react");
|
|
5887
5924
|
var import_clsx21 = __toESM(require("clsx"));
|
|
5888
5925
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
5889
5926
|
var defaultPaginationTranslations = {
|
|
@@ -5908,43 +5945,22 @@ var Pagination = ({
|
|
|
5908
5945
|
const onFirstPage = page === 0 && !noPages;
|
|
5909
5946
|
const onLastPage = page === numberOfPages - 1;
|
|
5910
5947
|
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: (0, import_clsx21.default)("row", { "opacity-30": noPages }), children: [
|
|
5911
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(0), disabled: onFirstPage, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5912
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(page - 1), disabled: onFirstPage, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5948
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(0), disabled: onFirstPage, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react7.ChevronFirst, { className: (0, import_clsx21.default)({ "opacity-30": onFirstPage }) }) }),
|
|
5949
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(page - 1), disabled: onFirstPage, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react7.ChevronLeft, { className: (0, import_clsx21.default)({ "opacity-30": onFirstPage }) }) }),
|
|
5913
5950
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "min-w-[80px] justify-center mx-2", children: [
|
|
5914
5951
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "select-none text-right flex-1", children: noPages ? 0 : page + 1 }),
|
|
5915
5952
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "select-none mx-2", children: translation.of }),
|
|
5916
5953
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "select-none text-left flex-1", children: numberOfPages })
|
|
5917
5954
|
] }),
|
|
5918
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(page + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5919
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(numberOfPages - 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5955
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(page + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react7.ChevronRight, { className: (0, import_clsx21.default)({ "opacity-30": onLastPage }) }) }),
|
|
5956
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(numberOfPages - 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react7.ChevronLast, { className: (0, import_clsx21.default)({ "opacity-30": onLastPage }) }) })
|
|
5920
5957
|
] });
|
|
5921
5958
|
};
|
|
5922
5959
|
|
|
5923
5960
|
// src/components/layout-and-navigation/SearchableList.tsx
|
|
5924
|
-
var
|
|
5925
|
-
var import_lucide_react7 = require("lucide-react");
|
|
5961
|
+
var import_lucide_react8 = require("lucide-react");
|
|
5926
5962
|
var import_clsx24 = __toESM(require("clsx"));
|
|
5927
5963
|
|
|
5928
|
-
// src/util/simpleSearch.ts
|
|
5929
|
-
var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
|
|
5930
|
-
return objects.filter((object) => {
|
|
5931
|
-
const mappedSearchKeywords = mapping(object).map((value) => value ? value.toLowerCase().trim() : void 0);
|
|
5932
|
-
return search.every((searchValue) => !!mappedSearchKeywords.find((value) => !!value && value.includes(searchValue.toLowerCase().trim())));
|
|
5933
|
-
});
|
|
5934
|
-
};
|
|
5935
|
-
var MultiSearchWithMapping = (search, objects, mapping) => {
|
|
5936
|
-
return objects.filter((object) => {
|
|
5937
|
-
const mappedSearchKeywords = mapping(object).map((value) => value.toLowerCase().trim());
|
|
5938
|
-
return !!mappedSearchKeywords.find((value) => value.includes(search.toLowerCase().trim()));
|
|
5939
|
-
});
|
|
5940
|
-
};
|
|
5941
|
-
var SimpleSearchWithMapping = (search, objects, mapping) => {
|
|
5942
|
-
return MultiSearchWithMapping(search, objects, (value) => [mapping(value)]);
|
|
5943
|
-
};
|
|
5944
|
-
var SimpleSearch = (search, objects) => {
|
|
5945
|
-
return SimpleSearchWithMapping(search, objects, (value) => value);
|
|
5946
|
-
};
|
|
5947
|
-
|
|
5948
5964
|
// src/components/user-action/Input.tsx
|
|
5949
5965
|
var import_react13 = require("react");
|
|
5950
5966
|
var import_clsx23 = __toESM(require("clsx"));
|
|
@@ -6123,6 +6139,57 @@ var FormInput = (0, import_react13.forwardRef)(function FormInput2({
|
|
|
6123
6139
|
] });
|
|
6124
6140
|
});
|
|
6125
6141
|
|
|
6142
|
+
// src/hooks/useSearch.ts
|
|
6143
|
+
var import_react14 = require("react");
|
|
6144
|
+
|
|
6145
|
+
// src/util/simpleSearch.ts
|
|
6146
|
+
var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
|
|
6147
|
+
return objects.filter((object) => {
|
|
6148
|
+
const mappedSearchKeywords = mapping(object).map((value) => value ? value.toLowerCase().trim() : void 0);
|
|
6149
|
+
return search.every((searchValue) => !!mappedSearchKeywords.find((value) => !!value && value.includes(searchValue.toLowerCase().trim())));
|
|
6150
|
+
});
|
|
6151
|
+
};
|
|
6152
|
+
var MultiSearchWithMapping = (search, objects, mapping) => {
|
|
6153
|
+
return objects.filter((object) => {
|
|
6154
|
+
const mappedSearchKeywords = mapping(object)?.map((value) => value.toLowerCase().trim());
|
|
6155
|
+
if (!mappedSearchKeywords) {
|
|
6156
|
+
return true;
|
|
6157
|
+
}
|
|
6158
|
+
return !!mappedSearchKeywords.find((value) => value.includes(search.toLowerCase().trim()));
|
|
6159
|
+
});
|
|
6160
|
+
};
|
|
6161
|
+
var SimpleSearchWithMapping = (search, objects, mapping) => {
|
|
6162
|
+
return MultiSearchWithMapping(search, objects, (value) => [mapping(value)]);
|
|
6163
|
+
};
|
|
6164
|
+
var SimpleSearch = (search, objects) => {
|
|
6165
|
+
return SimpleSearchWithMapping(search, objects, (value) => value);
|
|
6166
|
+
};
|
|
6167
|
+
|
|
6168
|
+
// src/hooks/useSearch.ts
|
|
6169
|
+
var useSearch = ({
|
|
6170
|
+
list,
|
|
6171
|
+
initialSearch,
|
|
6172
|
+
searchMapping
|
|
6173
|
+
}) => {
|
|
6174
|
+
const [items, setItems] = (0, import_react14.useState)(list);
|
|
6175
|
+
const [search, setSearch] = (0, import_react14.useState)(initialSearch);
|
|
6176
|
+
(0, import_react14.useEffect)(() => {
|
|
6177
|
+
setItems(list);
|
|
6178
|
+
}, [list]);
|
|
6179
|
+
const result = (0, import_react14.useMemo)(
|
|
6180
|
+
() => MultiSearchWithMapping(search, items, searchMapping),
|
|
6181
|
+
[search, items, searchMapping]
|
|
6182
|
+
);
|
|
6183
|
+
return {
|
|
6184
|
+
result,
|
|
6185
|
+
hasResult: result.length > 0,
|
|
6186
|
+
allItems: items,
|
|
6187
|
+
setItems,
|
|
6188
|
+
search,
|
|
6189
|
+
setSearch
|
|
6190
|
+
};
|
|
6191
|
+
};
|
|
6192
|
+
|
|
6126
6193
|
// src/components/layout-and-navigation/SearchableList.tsx
|
|
6127
6194
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
6128
6195
|
var defaultSearchableListTranslation = {
|
|
@@ -6140,38 +6207,47 @@ var SearchableList = ({
|
|
|
6140
6207
|
list,
|
|
6141
6208
|
initialSearch = "",
|
|
6142
6209
|
searchMapping,
|
|
6210
|
+
autoFocus,
|
|
6211
|
+
minimumItemsForSearch = 6,
|
|
6143
6212
|
itemMapper,
|
|
6144
|
-
className
|
|
6213
|
+
className,
|
|
6214
|
+
resultListClassName
|
|
6145
6215
|
}) => {
|
|
6146
6216
|
const translation = useTranslation(defaultSearchableListTranslation, overwriteTranslation);
|
|
6147
|
-
const
|
|
6148
|
-
(0, import_react14.useEffect)(() => setSearch(initialSearch), [initialSearch]);
|
|
6149
|
-
const filteredEntries = (0, import_react14.useMemo)(() => MultiSearchWithMapping(search, list, searchMapping), [search, list, searchMapping]);
|
|
6217
|
+
const { result, hasResult, search, setSearch } = useSearch({ list, initialSearch, searchMapping });
|
|
6150
6218
|
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: (0, import_clsx24.default)("col gap-y-2", className), children: [
|
|
6151
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "row justify-between gap-x-
|
|
6152
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
6153
|
-
|
|
6219
|
+
list.length > minimumItemsForSearch && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "row justify-between gap-x-4 items-center", children: [
|
|
6220
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
6221
|
+
Input,
|
|
6222
|
+
{
|
|
6223
|
+
value: search,
|
|
6224
|
+
onChangeText: setSearch,
|
|
6225
|
+
placeholder: translation.search,
|
|
6226
|
+
autoFocus,
|
|
6227
|
+
className: "w-full"
|
|
6228
|
+
}
|
|
6229
|
+
),
|
|
6230
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(IconButton, { color: "neutral", disabled: search.length === 0, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react8.Search, { className: "w-full h-full" }) })
|
|
6154
6231
|
] }),
|
|
6155
|
-
|
|
6156
|
-
!filteredEntries.length && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "row justify-center", children: translation.nothingFound })
|
|
6232
|
+
hasResult ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: (0, import_clsx24.default)("col gap-y-1", resultListClassName), children: result.map(itemMapper) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "row text-description py-2 px-2", children: translation.nothingFound })
|
|
6157
6233
|
] });
|
|
6158
6234
|
};
|
|
6159
6235
|
|
|
6160
6236
|
// src/components/layout-and-navigation/StepperBar.tsx
|
|
6161
|
-
var
|
|
6237
|
+
var import_lucide_react9 = require("lucide-react");
|
|
6162
6238
|
var import_clsx25 = __toESM(require("clsx"));
|
|
6163
6239
|
var import_react15 = require("react");
|
|
6164
6240
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
6165
6241
|
var defaultStepperBarTranslation = {
|
|
6166
6242
|
en: {
|
|
6167
6243
|
back: "Back",
|
|
6168
|
-
next: "Next
|
|
6244
|
+
next: "Next",
|
|
6169
6245
|
confirm: "Create"
|
|
6170
6246
|
},
|
|
6171
6247
|
de: {
|
|
6172
6248
|
back: "Zur\xFCck",
|
|
6173
|
-
next: "N\xE4chster
|
|
6174
|
-
confirm: "
|
|
6249
|
+
next: "N\xE4chster",
|
|
6250
|
+
confirm: "Fertig"
|
|
6175
6251
|
}
|
|
6176
6252
|
};
|
|
6177
6253
|
var defaultState = {
|
|
@@ -6210,7 +6286,7 @@ var StepperBar = ({
|
|
|
6210
6286
|
},
|
|
6211
6287
|
className: "row gap-x-1 items-center justify-center",
|
|
6212
6288
|
children: [
|
|
6213
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6289
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.ChevronLeft, { size: 14 }),
|
|
6214
6290
|
translation.back
|
|
6215
6291
|
]
|
|
6216
6292
|
}
|
|
@@ -6224,9 +6300,9 @@ var StepperBar = ({
|
|
|
6224
6300
|
className: (0, import_clsx25.default)(
|
|
6225
6301
|
"rounded-full w-4 h-4",
|
|
6226
6302
|
{
|
|
6227
|
-
"bg-
|
|
6228
|
-
"bg-
|
|
6229
|
-
"bg-
|
|
6303
|
+
"bg-stepperbar-dot-active hover:brightness-75": index === currentStep && seen && !disabledSteps.has(currentStep),
|
|
6304
|
+
"bg-stepperbar-dot-normal hover:bg-stepperbar-dot-active": index !== currentStep && seen && !disabledSteps.has(currentStep),
|
|
6305
|
+
"bg-stepperbar-dot-disabled": !seen || disabledSteps.has(currentStep)
|
|
6230
6306
|
},
|
|
6231
6307
|
{
|
|
6232
6308
|
"cursor-pointer": seen,
|
|
@@ -6245,7 +6321,7 @@ var StepperBar = ({
|
|
|
6245
6321
|
disabled: disabledSteps.has(currentStep),
|
|
6246
6322
|
children: [
|
|
6247
6323
|
translation.next,
|
|
6248
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6324
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.ChevronRight, { size: 14 })
|
|
6249
6325
|
]
|
|
6250
6326
|
}
|
|
6251
6327
|
) }),
|
|
@@ -6256,7 +6332,7 @@ var StepperBar = ({
|
|
|
6256
6332
|
onClick: onFinish,
|
|
6257
6333
|
className: "row gap-x-1 items-center justify-center",
|
|
6258
6334
|
children: [
|
|
6259
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6335
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.Check, { size: 14 }),
|
|
6260
6336
|
finishText ?? translation.confirm
|
|
6261
6337
|
]
|
|
6262
6338
|
}
|
|
@@ -6290,7 +6366,7 @@ var import_react_custom_scrollbars_23 = require("react-custom-scrollbars-2");
|
|
|
6290
6366
|
// src/components/user-action/Checkbox.tsx
|
|
6291
6367
|
var import_react16 = require("react");
|
|
6292
6368
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
|
|
6293
|
-
var
|
|
6369
|
+
var import_lucide_react10 = require("lucide-react");
|
|
6294
6370
|
var import_clsx26 = __toESM(require("clsx"));
|
|
6295
6371
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
6296
6372
|
var checkboxSizeMapping = {
|
|
@@ -6343,8 +6419,8 @@ var Checkbox = ({
|
|
|
6343
6419
|
"hover:border-primary focus:hover:border-primary": !checked
|
|
6344
6420
|
}, className),
|
|
6345
6421
|
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(CheckboxPrimitive.Indicator, { children: [
|
|
6346
|
-
checked === true && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6347
|
-
checked === "indeterminate" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6422
|
+
checked === true && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react10.Check, { className: innerIconSize }),
|
|
6423
|
+
checked === "indeterminate" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react10.Minus, { className: innerIconSize })
|
|
6348
6424
|
] })
|
|
6349
6425
|
}
|
|
6350
6426
|
),
|
|
@@ -6387,7 +6463,7 @@ var CheckboxUncontrolled = ({
|
|
|
6387
6463
|
|
|
6388
6464
|
// src/components/layout-and-navigation/Table.tsx
|
|
6389
6465
|
var import_clsx27 = __toESM(require("clsx"));
|
|
6390
|
-
var
|
|
6466
|
+
var import_lucide_react11 = require("lucide-react");
|
|
6391
6467
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
6392
6468
|
var defaultTableStatePagination = {
|
|
6393
6469
|
currentPage: 0,
|
|
@@ -6536,7 +6612,7 @@ var Table = ({
|
|
|
6536
6612
|
} else {
|
|
6537
6613
|
currentPage = 0;
|
|
6538
6614
|
}
|
|
6539
|
-
const headerRow = "border-b-2
|
|
6615
|
+
const headerRow = "border-b-2";
|
|
6540
6616
|
const headerPaddingHead = "pb-2";
|
|
6541
6617
|
const headerPaddingBody = "pt-2";
|
|
6542
6618
|
const cellPadding = "py-1 px-2";
|
|
@@ -6612,7 +6688,7 @@ var SortButton = ({
|
|
|
6612
6688
|
...buttonProps,
|
|
6613
6689
|
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "row gap-x-2", children: [
|
|
6614
6690
|
children,
|
|
6615
|
-
ascending === "ascending" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
6691
|
+
ascending === "ascending" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react11.ChevronUp, {}) : !ascending ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react11.ChevronsUpDown, {}) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react11.ChevronDown, {})
|
|
6616
6692
|
] })
|
|
6617
6693
|
}
|
|
6618
6694
|
);
|
|
@@ -6731,7 +6807,7 @@ var VerticalDivider = ({
|
|
|
6731
6807
|
};
|
|
6732
6808
|
|
|
6733
6809
|
// src/components/loading-states/ErrorComponent.tsx
|
|
6734
|
-
var
|
|
6810
|
+
var import_lucide_react12 = require("lucide-react");
|
|
6735
6811
|
var import_clsx29 = __toESM(require("clsx"));
|
|
6736
6812
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
6737
6813
|
var defaultErrorComponentTranslation = {
|
|
@@ -6749,7 +6825,7 @@ var ErrorComponent = ({
|
|
|
6749
6825
|
}) => {
|
|
6750
6826
|
const translation = useTranslation(defaultErrorComponentTranslation, overwriteTranslation);
|
|
6751
6827
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: (0, import_clsx29.default)("col items-center justify-center gap-y-4 w-full h-24", classname), children: [
|
|
6752
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
6828
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react12.AlertOctagon, { size: 64, className: "text-warning" }),
|
|
6753
6829
|
errorText ?? `${translation.errorOccurred} :(`
|
|
6754
6830
|
] });
|
|
6755
6831
|
};
|
|
@@ -6854,7 +6930,7 @@ var ProgressIndicator = ({
|
|
|
6854
6930
|
r: radius,
|
|
6855
6931
|
fill: "transparent",
|
|
6856
6932
|
strokeWidth,
|
|
6857
|
-
className: "stroke-
|
|
6933
|
+
className: "stroke-progress-indicator-fill"
|
|
6858
6934
|
}
|
|
6859
6935
|
),
|
|
6860
6936
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
@@ -6867,7 +6943,7 @@ var ProgressIndicator = ({
|
|
|
6867
6943
|
strokeWidth,
|
|
6868
6944
|
strokeDasharray: arcLength,
|
|
6869
6945
|
strokeDashoffset: arcOffset,
|
|
6870
|
-
className: "stroke-
|
|
6946
|
+
className: "stroke-progress-indicator-background"
|
|
6871
6947
|
}
|
|
6872
6948
|
)
|
|
6873
6949
|
]
|
|
@@ -7007,99 +7083,107 @@ var InputModal = ({
|
|
|
7007
7083
|
};
|
|
7008
7084
|
|
|
7009
7085
|
// src/components/user-action/Select.tsx
|
|
7010
|
-
var
|
|
7011
|
-
var import_lucide_react12 = require("lucide-react");
|
|
7086
|
+
var import_lucide_react13 = require("lucide-react");
|
|
7012
7087
|
var import_react20 = require("react");
|
|
7013
7088
|
var import_clsx33 = __toESM(require("clsx"));
|
|
7089
|
+
|
|
7090
|
+
// src/hooks/useOutsideClick.ts
|
|
7091
|
+
var import_react19 = require("react");
|
|
7092
|
+
var useOutsideClick = (refs, handler) => {
|
|
7093
|
+
(0, import_react19.useEffect)(() => {
|
|
7094
|
+
const listener = (event) => {
|
|
7095
|
+
if (event.target === null) return;
|
|
7096
|
+
if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
|
|
7097
|
+
return;
|
|
7098
|
+
}
|
|
7099
|
+
handler();
|
|
7100
|
+
};
|
|
7101
|
+
document.addEventListener("mousedown", listener);
|
|
7102
|
+
document.addEventListener("touchstart", listener);
|
|
7103
|
+
return () => {
|
|
7104
|
+
document.removeEventListener("mousedown", listener);
|
|
7105
|
+
document.removeEventListener("touchstart", listener);
|
|
7106
|
+
};
|
|
7107
|
+
}, [refs, handler]);
|
|
7108
|
+
};
|
|
7109
|
+
|
|
7110
|
+
// src/components/user-action/Select.tsx
|
|
7014
7111
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
7015
7112
|
var Select = ({
|
|
7016
7113
|
value,
|
|
7017
7114
|
label,
|
|
7018
7115
|
options,
|
|
7019
7116
|
onChange,
|
|
7020
|
-
isHidingCurrentValue = true,
|
|
7021
7117
|
hintText = "",
|
|
7022
|
-
showDisabledOptions = true,
|
|
7023
7118
|
isDisabled,
|
|
7119
|
+
isSearchEnabled = false,
|
|
7024
7120
|
className,
|
|
7025
|
-
textColor = "text-menu-text",
|
|
7026
|
-
additionalItems,
|
|
7027
7121
|
selectedDisplayOverwrite
|
|
7028
7122
|
}) => {
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7123
|
+
const triggerRef = (0, import_react20.useRef)(null);
|
|
7124
|
+
const menuRef = (0, import_react20.useRef)(null);
|
|
7125
|
+
const [isOpen, setIsOpen] = (0, import_react20.useState)(false);
|
|
7126
|
+
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
7033
7127
|
const selectedOption = options.find((option) => option.value === value);
|
|
7034
7128
|
if (value !== void 0 && selectedOption === void 0 && selectedDisplayOverwrite === void 0) {
|
|
7035
7129
|
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");
|
|
7036
7130
|
}
|
|
7037
|
-
const
|
|
7131
|
+
const isShowingHint = !selectedDisplayOverwrite && !selectedOption?.label;
|
|
7038
7132
|
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: (0, import_clsx33.default)(className), children: [
|
|
7039
7133
|
label && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Label, { ...label, labelType: label.labelType ?? "labelBig", className: (0, import_clsx33.default)("mb-1", label.className) }),
|
|
7040
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.
|
|
7134
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "relative", children: [
|
|
7041
7135
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
7042
|
-
|
|
7136
|
+
"button",
|
|
7043
7137
|
{
|
|
7138
|
+
ref: triggerRef,
|
|
7044
7139
|
className: (0, import_clsx33.default)(
|
|
7045
|
-
"
|
|
7046
|
-
textColor,
|
|
7047
|
-
borderColor,
|
|
7140
|
+
"btn-md justify-between w-full border-2",
|
|
7048
7141
|
{
|
|
7049
7142
|
"rounded-b-lg": !open,
|
|
7050
|
-
"hover:border-primary": !isDisabled,
|
|
7051
|
-
"bg-disabled-background cursor-not-allowed
|
|
7143
|
+
"bg-menu-background border-menu-border hover:border-primary": !isDisabled,
|
|
7144
|
+
"bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": isDisabled
|
|
7052
7145
|
}
|
|
7053
7146
|
),
|
|
7147
|
+
onClick: () => setIsOpen(!isOpen),
|
|
7054
7148
|
disabled: isDisabled,
|
|
7055
7149
|
children: [
|
|
7056
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: selectedDisplayOverwrite ?? selectedOption?.label
|
|
7057
|
-
|
|
7150
|
+
!isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "font-semibold text-menu-text", children: selectedDisplayOverwrite ?? selectedOption?.label }),
|
|
7151
|
+
isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "textstyle-description", children: hintText }),
|
|
7152
|
+
isOpen ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react13.ChevronUp, {}) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react13.ChevronDown, {})
|
|
7058
7153
|
]
|
|
7059
7154
|
}
|
|
7060
7155
|
),
|
|
7061
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.
|
|
7062
|
-
|
|
7156
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7157
|
+
"div",
|
|
7063
7158
|
{
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7067
|
-
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
|
|
7079
|
-
|
|
7080
|
-
"px-4 py-2 overflow-hidden whitespace-nowrap text-ellipsis border-2 border-t-0 cursor-pointer",
|
|
7081
|
-
option.className,
|
|
7082
|
-
borderColor,
|
|
7083
|
-
{
|
|
7084
|
-
"brightness-90": option.value === value,
|
|
7085
|
-
"brightness-95": index % 2 === 1,
|
|
7086
|
-
"text-disabled bg-disabled-background cursor-not-allowed": !!option.disabled,
|
|
7087
|
-
"bg-menu-background text-menu-text hover:brightness-90 cursor-pointer": !option.disabled,
|
|
7088
|
-
"rounded-b-lg": index === filteredOptions.length - 1
|
|
7089
|
-
}
|
|
7090
|
-
),
|
|
7091
|
-
onClick: () => {
|
|
7092
|
-
if (!option.disabled) {
|
|
7159
|
+
ref: menuRef,
|
|
7160
|
+
className: "absolute w-full z-10 rounded-lg mt-0.5 bg-menu-background text-menu-text shadow-around-md max-h-[500px] overflow-y-auto p-2",
|
|
7161
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7162
|
+
SearchableList,
|
|
7163
|
+
{
|
|
7164
|
+
list: options,
|
|
7165
|
+
minimumItemsForSearch: isSearchEnabled ? void 0 : options.length,
|
|
7166
|
+
searchMapping: (item) => item.searchTags,
|
|
7167
|
+
itemMapper: (option, index) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7168
|
+
Tile,
|
|
7169
|
+
{
|
|
7170
|
+
isSelected: selectedOption?.value === option.value,
|
|
7171
|
+
className: "px-2 py-1 rounded-md",
|
|
7172
|
+
disabledClassName: "text-disabled-text cursor-not-allowed",
|
|
7173
|
+
title: { value: option.label, className: "font-semibold" },
|
|
7174
|
+
onClick: () => {
|
|
7093
7175
|
onChange(option.value);
|
|
7094
|
-
|
|
7176
|
+
setIsOpen(false);
|
|
7177
|
+
},
|
|
7178
|
+
isDisabled: option.disabled
|
|
7095
7179
|
},
|
|
7096
|
-
|
|
7097
|
-
|
|
7098
|
-
|
|
7099
|
-
|
|
7180
|
+
index
|
|
7181
|
+
)
|
|
7182
|
+
}
|
|
7183
|
+
)
|
|
7100
7184
|
}
|
|
7101
7185
|
)
|
|
7102
|
-
] })
|
|
7186
|
+
] })
|
|
7103
7187
|
] });
|
|
7104
7188
|
};
|
|
7105
7189
|
var SelectUncontrolled = ({
|
|
@@ -7129,27 +7213,6 @@ var SelectUncontrolled = ({
|
|
|
7129
7213
|
}
|
|
7130
7214
|
);
|
|
7131
7215
|
};
|
|
7132
|
-
var SearchableSelect = ({
|
|
7133
|
-
value,
|
|
7134
|
-
options,
|
|
7135
|
-
searchMapping,
|
|
7136
|
-
...selectProps
|
|
7137
|
-
}) => {
|
|
7138
|
-
const [search, setSearch] = (0, import_react20.useState)("");
|
|
7139
|
-
const filteredOptions = MultiSearchWithMapping(search, options, searchMapping);
|
|
7140
|
-
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
7141
|
-
Select,
|
|
7142
|
-
{
|
|
7143
|
-
value,
|
|
7144
|
-
options: filteredOptions,
|
|
7145
|
-
additionalItems: [/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "row gap-x-2 items-center", children: [
|
|
7146
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Input, { autoFocus: true, value: search, onChangeText: setSearch, className: "w-full" }),
|
|
7147
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react12.Search, { className: "min-w-[1.5rem] min-h-[1.5rem]" })
|
|
7148
|
-
] }, "selectSearch")],
|
|
7149
|
-
...selectProps
|
|
7150
|
-
}
|
|
7151
|
-
);
|
|
7152
|
-
};
|
|
7153
7216
|
|
|
7154
7217
|
// src/components/modals/LanguageModal.tsx
|
|
7155
7218
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
@@ -7289,10 +7352,10 @@ var ThemeModal = ({
|
|
|
7289
7352
|
};
|
|
7290
7353
|
|
|
7291
7354
|
// src/components/properties/CheckboxProperty.tsx
|
|
7292
|
-
var
|
|
7355
|
+
var import_lucide_react15 = require("lucide-react");
|
|
7293
7356
|
|
|
7294
7357
|
// src/components/properties/PropertyBase.tsx
|
|
7295
|
-
var
|
|
7358
|
+
var import_lucide_react14 = require("lucide-react");
|
|
7296
7359
|
var import_clsx34 = __toESM(require("clsx"));
|
|
7297
7360
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
7298
7361
|
var defaultPropertyBaseTranslation = {
|
|
@@ -7333,13 +7396,13 @@ var PropertyBase = ({
|
|
|
7333
7396
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
7334
7397
|
"div",
|
|
7335
7398
|
{
|
|
7336
|
-
className: (0, import_clsx34.default)("row grow justify-between items-center rounded-r-xl border-2 border-l-0", {
|
|
7399
|
+
className: (0, import_clsx34.default)("row gap-x-0 grow justify-between items-center rounded-r-xl border-2 border-l-0", {
|
|
7337
7400
|
"bg-surface group-hover:border-primary": !requiredAndNoValue,
|
|
7338
7401
|
"bg-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
|
|
7339
7402
|
}, className),
|
|
7340
7403
|
children: [
|
|
7341
7404
|
input({ softRequired, hasValue }),
|
|
7342
|
-
requiredAndNoValue && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "text-warning pr-4", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
7405
|
+
requiredAndNoValue && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "text-warning pr-4", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react14.AlertTriangle, { size: 24 }) }),
|
|
7343
7406
|
onRemove && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
7344
7407
|
TextButton,
|
|
7345
7408
|
{
|
|
@@ -7382,7 +7445,7 @@ var CheckboxProperty = ({
|
|
|
7382
7445
|
...baseProps,
|
|
7383
7446
|
hasValue: true,
|
|
7384
7447
|
readOnly,
|
|
7385
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7448
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react15.Check, { size: 16 }),
|
|
7386
7449
|
input: () => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "row py-2 px-4 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7387
7450
|
Checkbox,
|
|
7388
7451
|
{
|
|
@@ -7397,7 +7460,7 @@ var CheckboxProperty = ({
|
|
|
7397
7460
|
};
|
|
7398
7461
|
|
|
7399
7462
|
// src/components/properties/DateProperty.tsx
|
|
7400
|
-
var
|
|
7463
|
+
var import_lucide_react16 = require("lucide-react");
|
|
7401
7464
|
var import_clsx35 = __toESM(require("clsx"));
|
|
7402
7465
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
7403
7466
|
var DateProperty = ({
|
|
@@ -7415,7 +7478,7 @@ var DateProperty = ({
|
|
|
7415
7478
|
{
|
|
7416
7479
|
...baseProps,
|
|
7417
7480
|
hasValue,
|
|
7418
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
7481
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react16.CalendarDays, { size: 16 }),
|
|
7419
7482
|
input: ({ softRequired }) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
7420
7483
|
"div",
|
|
7421
7484
|
{
|
|
@@ -7446,95 +7509,14 @@ var DateProperty = ({
|
|
|
7446
7509
|
};
|
|
7447
7510
|
|
|
7448
7511
|
// src/components/properties/MultiSelectProperty.tsx
|
|
7449
|
-
var
|
|
7450
|
-
var import_clsx38 = __toESM(require("clsx"));
|
|
7451
|
-
|
|
7452
|
-
// src/components/user-action/MultiSelect.tsx
|
|
7453
|
-
var import_react24 = require("react");
|
|
7454
|
-
var import_lucide_react16 = require("lucide-react");
|
|
7512
|
+
var import_lucide_react18 = require("lucide-react");
|
|
7455
7513
|
var import_clsx37 = __toESM(require("clsx"));
|
|
7456
7514
|
|
|
7457
|
-
// src/components/user-action/
|
|
7458
|
-
var import_react23 = require("react");
|
|
7459
|
-
var import_clsx36 = __toESM(require("clsx"));
|
|
7460
|
-
|
|
7461
|
-
// src/hooks/useOutsideClick.ts
|
|
7515
|
+
// src/components/user-action/MultiSelect.tsx
|
|
7462
7516
|
var import_react22 = require("react");
|
|
7463
|
-
var
|
|
7464
|
-
|
|
7465
|
-
const listener = (event) => {
|
|
7466
|
-
if (event.target === null) return;
|
|
7467
|
-
if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
|
|
7468
|
-
return;
|
|
7469
|
-
}
|
|
7470
|
-
handler();
|
|
7471
|
-
};
|
|
7472
|
-
document.addEventListener("mousedown", listener);
|
|
7473
|
-
document.addEventListener("touchstart", listener);
|
|
7474
|
-
return () => {
|
|
7475
|
-
document.removeEventListener("mousedown", listener);
|
|
7476
|
-
document.removeEventListener("touchstart", listener);
|
|
7477
|
-
};
|
|
7478
|
-
}, [refs, handler]);
|
|
7479
|
-
};
|
|
7480
|
-
|
|
7481
|
-
// src/components/user-action/Menu.tsx
|
|
7517
|
+
var import_lucide_react17 = require("lucide-react");
|
|
7518
|
+
var import_clsx36 = __toESM(require("clsx"));
|
|
7482
7519
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
7483
|
-
var MenuItem = ({
|
|
7484
|
-
children,
|
|
7485
|
-
onClick,
|
|
7486
|
-
alignment = "left",
|
|
7487
|
-
className
|
|
7488
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7489
|
-
"div",
|
|
7490
|
-
{
|
|
7491
|
-
className: (0, import_clsx36.default)("block px-3 py-1 bg-menu-background text-menu-text hover:brightness-90", {
|
|
7492
|
-
"text-right": alignment === "right",
|
|
7493
|
-
"text-left": alignment === "left"
|
|
7494
|
-
}, className),
|
|
7495
|
-
onClick,
|
|
7496
|
-
children
|
|
7497
|
-
}
|
|
7498
|
-
);
|
|
7499
|
-
var Menu2 = ({
|
|
7500
|
-
trigger,
|
|
7501
|
-
children,
|
|
7502
|
-
alignment = "tl",
|
|
7503
|
-
showOnHover = false,
|
|
7504
|
-
menuClassName = ""
|
|
7505
|
-
}) => {
|
|
7506
|
-
const { isHovered: isOpen, setIsHovered: setIsOpen, handlers } = useHoverState({ isDisabled: !showOnHover });
|
|
7507
|
-
const triggerRef = (0, import_react23.useRef)(null);
|
|
7508
|
-
const menuRef = (0, import_react23.useRef)(null);
|
|
7509
|
-
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
7510
|
-
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
7511
|
-
"div",
|
|
7512
|
-
{
|
|
7513
|
-
className: "relative",
|
|
7514
|
-
...handlers,
|
|
7515
|
-
children: [
|
|
7516
|
-
trigger(() => setIsOpen(!isOpen), triggerRef),
|
|
7517
|
-
isOpen ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7518
|
-
"div",
|
|
7519
|
-
{
|
|
7520
|
-
ref: menuRef,
|
|
7521
|
-
onClick: (e) => e.stopPropagation(),
|
|
7522
|
-
className: (0, import_clsx36.default)("absolute top-full mt-1 py-2 w-60 rounded-lg bg-menu-background text-menu-text ring-1 ring-slate-900/5 text-sm leading-6 font-semibold shadow-md z-[1]", {
|
|
7523
|
-
" top-[8px]": alignment[0] === "t",
|
|
7524
|
-
" bottom-[8px]": alignment[0] === "b",
|
|
7525
|
-
" left-[-8px]": alignment[1] === "l",
|
|
7526
|
-
" right-[-8px]": alignment[1] === "r"
|
|
7527
|
-
}, menuClassName),
|
|
7528
|
-
children
|
|
7529
|
-
}
|
|
7530
|
-
) : null
|
|
7531
|
-
]
|
|
7532
|
-
}
|
|
7533
|
-
);
|
|
7534
|
-
};
|
|
7535
|
-
|
|
7536
|
-
// src/components/user-action/MultiSelect.tsx
|
|
7537
|
-
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
7538
7520
|
var defaultMultiSelectTranslation = {
|
|
7539
7521
|
en: {
|
|
7540
7522
|
select: "Select",
|
|
@@ -7550,110 +7532,149 @@ var defaultMultiSelectTranslation = {
|
|
|
7550
7532
|
var MultiSelect = ({
|
|
7551
7533
|
overwriteTranslation,
|
|
7552
7534
|
options,
|
|
7553
|
-
onChange,
|
|
7554
|
-
search,
|
|
7555
|
-
disabled = false,
|
|
7556
|
-
selectedDisplay,
|
|
7557
7535
|
label,
|
|
7536
|
+
onChange,
|
|
7558
7537
|
hintText,
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
|
|
7538
|
+
isDisabled = false,
|
|
7539
|
+
isSearchEnabled = false,
|
|
7540
|
+
selectedDisplayOverwrite,
|
|
7541
|
+
useChipDisplay = false,
|
|
7542
|
+
className = ""
|
|
7562
7543
|
}) => {
|
|
7563
7544
|
const translation = useTranslation(defaultMultiSelectTranslation, overwriteTranslation);
|
|
7564
|
-
const
|
|
7565
|
-
|
|
7566
|
-
const
|
|
7567
|
-
|
|
7568
|
-
filteredOptions = MultiSearchWithMapping(
|
|
7569
|
-
searchText,
|
|
7570
|
-
filteredOptions,
|
|
7571
|
-
(value) => search.searchMapping(value)
|
|
7572
|
-
);
|
|
7573
|
-
}
|
|
7574
|
-
if (!showDisabledOptions) {
|
|
7575
|
-
filteredOptions = filteredOptions.filter((value) => !value.disabled);
|
|
7576
|
-
}
|
|
7545
|
+
const triggerRef = (0, import_react22.useRef)(null);
|
|
7546
|
+
const menuRef = (0, import_react22.useRef)(null);
|
|
7547
|
+
const [isOpen, setIsOpen] = (0, import_react22.useState)(false);
|
|
7548
|
+
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
7577
7549
|
const selectedItems = options.filter((value) => value.selected);
|
|
7578
|
-
const
|
|
7579
|
-
|
|
7580
|
-
|
|
7581
|
-
label && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7550
|
+
const isShowingHint = !selectedDisplayOverwrite && selectedItems.length === 0;
|
|
7551
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: (0, import_clsx36.default)(className), children: [
|
|
7552
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7582
7553
|
Label,
|
|
7583
7554
|
{
|
|
7584
7555
|
...label,
|
|
7585
7556
|
htmlFor: label.name,
|
|
7586
|
-
className: (0,
|
|
7557
|
+
className: (0, import_clsx36.default)(" mb-1", label.className),
|
|
7587
7558
|
labelType: label.labelType ?? "labelBig"
|
|
7588
7559
|
}
|
|
7589
7560
|
),
|
|
7590
|
-
/* @__PURE__ */ (0,
|
|
7591
|
-
|
|
7592
|
-
|
|
7593
|
-
|
|
7594
|
-
|
|
7595
|
-
|
|
7596
|
-
|
|
7597
|
-
ref,
|
|
7598
|
-
onClick: disabled ? void 0 : onClick,
|
|
7599
|
-
className: (0, import_clsx37.default)(
|
|
7600
|
-
borderColor,
|
|
7601
|
-
"bg-menu-background text-menu-text inline-w-full justify-between items-center rounded-lg border-2 px-4 py-2 font-medium",
|
|
7602
|
-
{
|
|
7603
|
-
"hover:border-primary cursor-pointer": !disabled,
|
|
7604
|
-
"bg-disabled-background text-disabled cursor-not-allowed": disabled
|
|
7605
|
-
},
|
|
7606
|
-
triggerClassName
|
|
7607
|
-
),
|
|
7608
|
-
children: selectedDisplay ? selectedDisplay({ items: options, disabled }) : menuButtonText
|
|
7609
|
-
}
|
|
7610
|
-
),
|
|
7611
|
-
menuClassName: (0, import_clsx37.default)(
|
|
7612
|
-
"!rounded-lg !shadow-lg !max-h-[500px] !min-w-[400px] !max-w-[70vh] !overflow-y-auto !border !border-2",
|
|
7613
|
-
borderColor,
|
|
7614
|
-
{ "!py-0": !enableSearch, "!pb-0": enableSearch }
|
|
7615
|
-
),
|
|
7616
|
-
children: [
|
|
7617
|
-
enableSearch && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "row gap-x-2 items-center px-2 py-2", children: [
|
|
7618
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Input, { autoFocus: true, className: "w-full", value: searchText, onChangeText: setSearchText }),
|
|
7619
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react16.Search, {})
|
|
7620
|
-
] }, "selectSearch"),
|
|
7621
|
-
filteredOptions.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7622
|
-
MenuItem,
|
|
7561
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "relative", children: [
|
|
7562
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
7563
|
+
"button",
|
|
7564
|
+
{
|
|
7565
|
+
ref: triggerRef,
|
|
7566
|
+
className: (0, import_clsx36.default)(
|
|
7567
|
+
"btn-md justify-between w-full border-2 h-auto",
|
|
7623
7568
|
{
|
|
7624
|
-
|
|
7625
|
-
|
|
7626
|
-
|
|
7627
|
-
|
|
7628
|
-
|
|
7629
|
-
|
|
7630
|
-
|
|
7631
|
-
|
|
7632
|
-
|
|
7633
|
-
|
|
7569
|
+
"rounded-b-lg": !open,
|
|
7570
|
+
"bg-menu-background border-menu-border hover:border-primary": !isDisabled,
|
|
7571
|
+
"bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": isDisabled
|
|
7572
|
+
}
|
|
7573
|
+
),
|
|
7574
|
+
onClick: () => setIsOpen(!isOpen),
|
|
7575
|
+
disabled: isDisabled,
|
|
7576
|
+
children: [
|
|
7577
|
+
!isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-semibold text-menu-text", children: selectedDisplayOverwrite ?? (useChipDisplay && selectedItems ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) : `${selectedItems.length} ${translation.selected}`) }),
|
|
7578
|
+
isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "textstyle-description", children: hintText ?? translation.select }),
|
|
7579
|
+
isOpen ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react17.ChevronUp, { size: 24, className: "min-w-6" }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react17.ChevronDown, { className: "min-w-6" })
|
|
7580
|
+
]
|
|
7581
|
+
}
|
|
7582
|
+
),
|
|
7583
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
7584
|
+
"div",
|
|
7585
|
+
{
|
|
7586
|
+
ref: menuRef,
|
|
7587
|
+
className: "absolute w-full z-10 rounded-lg mt-0.5 bg-menu-background text-menu-text shadow-around-md max-h-[500px] overflow-y-auto p-2",
|
|
7588
|
+
children: [
|
|
7589
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7590
|
+
SearchableList,
|
|
7591
|
+
{
|
|
7592
|
+
list: options,
|
|
7593
|
+
minimumItemsForSearch: isSearchEnabled ? void 0 : options.length,
|
|
7594
|
+
searchMapping: (item) => item.searchTags,
|
|
7595
|
+
itemMapper: (option, index) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7596
|
+
Tile,
|
|
7597
|
+
{
|
|
7598
|
+
isSelected: option.selected,
|
|
7599
|
+
className: "px-2 py-1 rounded-md",
|
|
7600
|
+
disabledClassName: "text-disabled-text cursor-not-allowed",
|
|
7601
|
+
title: { value: option.label, className: "font-semibold" },
|
|
7602
|
+
onClick: () => {
|
|
7634
7603
|
onChange(options.map((value) => value.value === option.value ? {
|
|
7635
7604
|
...option,
|
|
7636
7605
|
selected: !value.selected
|
|
7637
7606
|
} : value));
|
|
7638
|
-
}
|
|
7607
|
+
},
|
|
7608
|
+
isDisabled: option.disabled
|
|
7639
7609
|
},
|
|
7640
|
-
|
|
7641
|
-
|
|
7642
|
-
|
|
7643
|
-
|
|
7644
|
-
|
|
7645
|
-
)
|
|
7646
|
-
|
|
7647
|
-
|
|
7648
|
-
|
|
7649
|
-
|
|
7650
|
-
|
|
7651
|
-
|
|
7610
|
+
index
|
|
7611
|
+
)
|
|
7612
|
+
}
|
|
7613
|
+
),
|
|
7614
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "row justify-between mt-2", children: [
|
|
7615
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "row gap-x-2", children: [
|
|
7616
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7617
|
+
SolidButton,
|
|
7618
|
+
{
|
|
7619
|
+
color: "neutral",
|
|
7620
|
+
size: "small",
|
|
7621
|
+
onClick: () => {
|
|
7622
|
+
onChange(options.map((option) => ({
|
|
7623
|
+
...option,
|
|
7624
|
+
selected: !option.disabled
|
|
7625
|
+
})));
|
|
7626
|
+
},
|
|
7627
|
+
disabled: options.every((value) => value.selected || value.disabled),
|
|
7628
|
+
children: "All"
|
|
7629
|
+
}
|
|
7630
|
+
),
|
|
7631
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7632
|
+
SolidButton,
|
|
7633
|
+
{
|
|
7634
|
+
color: "neutral",
|
|
7635
|
+
size: "small",
|
|
7636
|
+
onClick: () => {
|
|
7637
|
+
onChange(options.map((option) => ({
|
|
7638
|
+
...option,
|
|
7639
|
+
selected: false
|
|
7640
|
+
})));
|
|
7641
|
+
},
|
|
7642
|
+
children: "None"
|
|
7643
|
+
}
|
|
7644
|
+
)
|
|
7645
|
+
] }),
|
|
7646
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(SolidButton, { size: "small", onClick: () => setIsOpen(false), children: "Done" })
|
|
7647
|
+
] })
|
|
7648
|
+
]
|
|
7649
|
+
}
|
|
7650
|
+
)
|
|
7651
|
+
] })
|
|
7652
7652
|
] });
|
|
7653
7653
|
};
|
|
7654
|
+
var MultiSelectUncontrolled = ({
|
|
7655
|
+
options,
|
|
7656
|
+
onChange,
|
|
7657
|
+
...props
|
|
7658
|
+
}) => {
|
|
7659
|
+
const [usedOptions, setUsedOptions] = (0, import_react22.useState)(options);
|
|
7660
|
+
(0, import_react22.useEffect)(() => {
|
|
7661
|
+
setUsedOptions(options);
|
|
7662
|
+
}, [options]);
|
|
7663
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7664
|
+
MultiSelect,
|
|
7665
|
+
{
|
|
7666
|
+
...props,
|
|
7667
|
+
options: usedOptions,
|
|
7668
|
+
onChange: (options2) => {
|
|
7669
|
+
setUsedOptions(options2);
|
|
7670
|
+
onChange(options2);
|
|
7671
|
+
}
|
|
7672
|
+
}
|
|
7673
|
+
);
|
|
7674
|
+
};
|
|
7654
7675
|
|
|
7655
7676
|
// src/components/properties/MultiSelectProperty.tsx
|
|
7656
|
-
var
|
|
7677
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
7657
7678
|
var defaultMultiSelectPropertyTranslation = {
|
|
7658
7679
|
en: {
|
|
7659
7680
|
select: "Select"
|
|
@@ -7673,11 +7694,7 @@ var MultiSelectProperty = ({
|
|
|
7673
7694
|
}) => {
|
|
7674
7695
|
const translation = useTranslation(defaultMultiSelectPropertyTranslation, overwriteTranslation);
|
|
7675
7696
|
const hasValue = options.some((value) => value.selected);
|
|
7676
|
-
|
|
7677
|
-
if (softRequired && !hasValue) {
|
|
7678
|
-
triggerClassName = "border-warning hover:brightness-90";
|
|
7679
|
-
}
|
|
7680
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7697
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7681
7698
|
PropertyBase,
|
|
7682
7699
|
{
|
|
7683
7700
|
name,
|
|
@@ -7685,26 +7702,19 @@ var MultiSelectProperty = ({
|
|
|
7685
7702
|
readOnly,
|
|
7686
7703
|
softRequired,
|
|
7687
7704
|
hasValue,
|
|
7688
|
-
icon: /* @__PURE__ */ (0,
|
|
7689
|
-
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0,
|
|
7705
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react18.List, { size: 16 }),
|
|
7706
|
+
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7690
7707
|
"div",
|
|
7691
7708
|
{
|
|
7692
|
-
className: (0,
|
|
7693
|
-
children: /* @__PURE__ */ (0,
|
|
7709
|
+
className: (0, import_clsx37.default)("row grow py-2 px-4 cursor-pointer", { "text-warning": softRequired2 && !hasValue }),
|
|
7710
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7694
7711
|
MultiSelect,
|
|
7695
7712
|
{
|
|
7696
7713
|
...multiSelectProps,
|
|
7697
|
-
className: (0,
|
|
7698
|
-
triggerClassName,
|
|
7699
|
-
selectedDisplay: ({ items }) => {
|
|
7700
|
-
const selected = items.filter((value) => value.selected);
|
|
7701
|
-
if (selected.length === 0) {
|
|
7702
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Select" });
|
|
7703
|
-
}
|
|
7704
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ChipList, { list: selected.map((value) => ({ children: value.label })) });
|
|
7705
|
-
},
|
|
7714
|
+
className: (0, import_clsx37.default)("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
|
|
7706
7715
|
options,
|
|
7707
|
-
|
|
7716
|
+
isDisabled: readOnly,
|
|
7717
|
+
useChipDisplay: true,
|
|
7708
7718
|
hintText: `${translation.select}...`
|
|
7709
7719
|
}
|
|
7710
7720
|
)
|
|
@@ -7715,9 +7725,9 @@ var MultiSelectProperty = ({
|
|
|
7715
7725
|
};
|
|
7716
7726
|
|
|
7717
7727
|
// src/components/properties/NumberProperty.tsx
|
|
7718
|
-
var
|
|
7719
|
-
var
|
|
7720
|
-
var
|
|
7728
|
+
var import_lucide_react19 = require("lucide-react");
|
|
7729
|
+
var import_clsx38 = __toESM(require("clsx"));
|
|
7730
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
7721
7731
|
var defaultNumberPropertyTranslation = {
|
|
7722
7732
|
en: {
|
|
7723
7733
|
value: "Value"
|
|
@@ -7738,23 +7748,23 @@ var NumberProperty = ({
|
|
|
7738
7748
|
}) => {
|
|
7739
7749
|
const translation = useTranslation(defaultNumberPropertyTranslation, overwriteTranslation);
|
|
7740
7750
|
const hasValue = value !== void 0;
|
|
7741
|
-
return /* @__PURE__ */ (0,
|
|
7751
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7742
7752
|
PropertyBase,
|
|
7743
7753
|
{
|
|
7744
7754
|
...baseProps,
|
|
7745
7755
|
onRemove,
|
|
7746
7756
|
hasValue,
|
|
7747
|
-
icon: /* @__PURE__ */ (0,
|
|
7748
|
-
input: ({ softRequired }) => /* @__PURE__ */ (0,
|
|
7757
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react19.Binary, { size: 16 }),
|
|
7758
|
+
input: ({ softRequired }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
7749
7759
|
"div",
|
|
7750
7760
|
{
|
|
7751
|
-
className: (0,
|
|
7761
|
+
className: (0, import_clsx38.default)("row grow py-2 px-4 cursor-pointer", { "text-warning": softRequired && !hasValue }),
|
|
7752
7762
|
children: [
|
|
7753
|
-
/* @__PURE__ */ (0,
|
|
7763
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7754
7764
|
Input,
|
|
7755
7765
|
{
|
|
7756
7766
|
expanded: false,
|
|
7757
|
-
className: (0,
|
|
7767
|
+
className: (0, import_clsx38.default)("!ring-0 !border-0 !outline-0 !p-0 !m-0 !w-fit !shadow-none !rounded-none", { "bg-surface-warning placeholder-warning": softRequired && !hasValue }),
|
|
7758
7768
|
value: value?.toString() ?? "",
|
|
7759
7769
|
type: "number",
|
|
7760
7770
|
readOnly,
|
|
@@ -7777,7 +7787,7 @@ var NumberProperty = ({
|
|
|
7777
7787
|
}
|
|
7778
7788
|
}
|
|
7779
7789
|
),
|
|
7780
|
-
suffix && /* @__PURE__ */ (0,
|
|
7790
|
+
suffix && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: (0, import_clsx38.default)("ml-1", { "bg-surface-warning": softRequired && !hasValue }), children: suffix })
|
|
7781
7791
|
]
|
|
7782
7792
|
}
|
|
7783
7793
|
)
|
|
@@ -7786,9 +7796,9 @@ var NumberProperty = ({
|
|
|
7786
7796
|
};
|
|
7787
7797
|
|
|
7788
7798
|
// src/components/properties/SelectProperty.tsx
|
|
7789
|
-
var
|
|
7790
|
-
var
|
|
7791
|
-
var
|
|
7799
|
+
var import_lucide_react20 = require("lucide-react");
|
|
7800
|
+
var import_clsx39 = __toESM(require("clsx"));
|
|
7801
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
7792
7802
|
var defaultSingleSelectPropertyTranslation = {
|
|
7793
7803
|
en: {
|
|
7794
7804
|
select: "Select"
|
|
@@ -7805,11 +7815,11 @@ var SingleSelectProperty = ({
|
|
|
7805
7815
|
readOnly = false,
|
|
7806
7816
|
softRequired,
|
|
7807
7817
|
onRemove,
|
|
7808
|
-
...
|
|
7818
|
+
...selectProps
|
|
7809
7819
|
}) => {
|
|
7810
7820
|
const translation = useTranslation(defaultSingleSelectPropertyTranslation, overwriteTranslation);
|
|
7811
7821
|
const hasValue = value !== void 0;
|
|
7812
|
-
return /* @__PURE__ */ (0,
|
|
7822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7813
7823
|
PropertyBase,
|
|
7814
7824
|
{
|
|
7815
7825
|
name,
|
|
@@ -7817,19 +7827,19 @@ var SingleSelectProperty = ({
|
|
|
7817
7827
|
readOnly,
|
|
7818
7828
|
softRequired,
|
|
7819
7829
|
hasValue,
|
|
7820
|
-
icon: /* @__PURE__ */ (0,
|
|
7821
|
-
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0,
|
|
7830
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react20.List, { size: 16 }),
|
|
7831
|
+
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7822
7832
|
"div",
|
|
7823
7833
|
{
|
|
7824
|
-
className: (0,
|
|
7825
|
-
children: /* @__PURE__ */ (0,
|
|
7826
|
-
|
|
7834
|
+
className: (0, import_clsx39.default)("row grow py-2 px-4 cursor-pointer", { "text-warning": softRequired2 && !hasValue }),
|
|
7835
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7836
|
+
Select,
|
|
7827
7837
|
{
|
|
7828
|
-
...
|
|
7838
|
+
...selectProps,
|
|
7829
7839
|
value,
|
|
7830
7840
|
options,
|
|
7831
7841
|
isDisabled: readOnly,
|
|
7832
|
-
className: (0,
|
|
7842
|
+
className: (0, import_clsx39.default)("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
|
|
7833
7843
|
hintText: `${translation.select}...`
|
|
7834
7844
|
}
|
|
7835
7845
|
)
|
|
@@ -7840,13 +7850,13 @@ var SingleSelectProperty = ({
|
|
|
7840
7850
|
};
|
|
7841
7851
|
|
|
7842
7852
|
// src/components/properties/TextProperty.tsx
|
|
7843
|
-
var
|
|
7844
|
-
var
|
|
7853
|
+
var import_lucide_react21 = require("lucide-react");
|
|
7854
|
+
var import_clsx41 = __toESM(require("clsx"));
|
|
7845
7855
|
|
|
7846
7856
|
// src/components/user-action/Textarea.tsx
|
|
7847
|
-
var
|
|
7848
|
-
var
|
|
7849
|
-
var
|
|
7857
|
+
var import_react23 = require("react");
|
|
7858
|
+
var import_clsx40 = __toESM(require("clsx"));
|
|
7859
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
7850
7860
|
var Textarea = ({
|
|
7851
7861
|
label,
|
|
7852
7862
|
headline,
|
|
@@ -7861,33 +7871,33 @@ var Textarea = ({
|
|
|
7861
7871
|
className,
|
|
7862
7872
|
...props
|
|
7863
7873
|
}) => {
|
|
7864
|
-
const [hasFocus, setHasFocus] = (0,
|
|
7874
|
+
const [hasFocus, setHasFocus] = (0, import_react23.useState)(false);
|
|
7865
7875
|
const { restartTimer, clearUpdateTimer } = useSaveDelay(() => void 0, 3e3);
|
|
7866
7876
|
const onEditCompletedWrapper = (text) => {
|
|
7867
7877
|
onEditCompleted(text);
|
|
7868
7878
|
clearUpdateTimer();
|
|
7869
7879
|
};
|
|
7870
|
-
return /* @__PURE__ */ (0,
|
|
7871
|
-
label && /* @__PURE__ */ (0,
|
|
7880
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full", children: [
|
|
7881
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7872
7882
|
Label,
|
|
7873
7883
|
{
|
|
7874
7884
|
...label,
|
|
7875
7885
|
htmlFor: id,
|
|
7876
|
-
className: (0,
|
|
7886
|
+
className: (0, import_clsx40.default)("mb-1", label.className),
|
|
7877
7887
|
labelType: label.labelType ?? "labelSmall"
|
|
7878
7888
|
}
|
|
7879
7889
|
),
|
|
7880
|
-
/* @__PURE__ */ (0,
|
|
7890
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
7881
7891
|
"div",
|
|
7882
7892
|
{
|
|
7883
|
-
className: `${(0,
|
|
7893
|
+
className: `${(0, import_clsx40.default)(" bg-surface text-on-surface focus-within:border-primary relative", { "shadow border-2 hover:border-primary rounded-lg": defaultStyle })}`,
|
|
7884
7894
|
children: [
|
|
7885
|
-
headline && /* @__PURE__ */ (0,
|
|
7886
|
-
/* @__PURE__ */ (0,
|
|
7895
|
+
headline && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "mx-3 mt-3 block textstyle-label-md", children: headline }),
|
|
7896
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7887
7897
|
"textarea",
|
|
7888
7898
|
{
|
|
7889
7899
|
id,
|
|
7890
|
-
className: (0,
|
|
7900
|
+
className: (0, import_clsx40.default)("pt-0 px-3 border-transparent focus:border-transparent focus:ring-0 appearance-none border w-full leading-tight focus:outline-none", {
|
|
7891
7901
|
"resize-none": !resizable,
|
|
7892
7902
|
"h-32": defaultStyle,
|
|
7893
7903
|
"mt-3": !headline
|
|
@@ -7914,7 +7924,7 @@ var Textarea = ({
|
|
|
7914
7924
|
]
|
|
7915
7925
|
}
|
|
7916
7926
|
),
|
|
7917
|
-
hasFocus && disclaimer && /* @__PURE__ */ (0,
|
|
7927
|
+
hasFocus && disclaimer && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("label", { className: "text-negative", children: disclaimer })
|
|
7918
7928
|
] });
|
|
7919
7929
|
};
|
|
7920
7930
|
var TextareaUncontrolled = ({
|
|
@@ -7922,11 +7932,11 @@ var TextareaUncontrolled = ({
|
|
|
7922
7932
|
onChangeText = noop,
|
|
7923
7933
|
...props
|
|
7924
7934
|
}) => {
|
|
7925
|
-
const [text, setText] = (0,
|
|
7926
|
-
(0,
|
|
7935
|
+
const [text, setText] = (0, import_react23.useState)(value);
|
|
7936
|
+
(0, import_react23.useEffect)(() => {
|
|
7927
7937
|
setText(value);
|
|
7928
7938
|
}, [value]);
|
|
7929
|
-
return /* @__PURE__ */ (0,
|
|
7939
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7930
7940
|
Textarea,
|
|
7931
7941
|
{
|
|
7932
7942
|
...props,
|
|
@@ -7940,7 +7950,7 @@ var TextareaUncontrolled = ({
|
|
|
7940
7950
|
};
|
|
7941
7951
|
|
|
7942
7952
|
// src/components/properties/TextProperty.tsx
|
|
7943
|
-
var
|
|
7953
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7944
7954
|
var defaultTextPropertyTranslation = {
|
|
7945
7955
|
en: {
|
|
7946
7956
|
value: "Text"
|
|
@@ -7960,21 +7970,21 @@ var TextProperty = ({
|
|
|
7960
7970
|
}) => {
|
|
7961
7971
|
const translation = useTranslation(defaultTextPropertyTranslation, overwriteTranslation);
|
|
7962
7972
|
const hasValue = value !== void 0;
|
|
7963
|
-
return /* @__PURE__ */ (0,
|
|
7973
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7964
7974
|
PropertyBase,
|
|
7965
7975
|
{
|
|
7966
7976
|
...baseProps,
|
|
7967
7977
|
onRemove,
|
|
7968
7978
|
hasValue,
|
|
7969
|
-
icon: /* @__PURE__ */ (0,
|
|
7970
|
-
input: ({ softRequired }) => /* @__PURE__ */ (0,
|
|
7979
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react21.Text, { size: 16 }),
|
|
7980
|
+
input: ({ softRequired }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7971
7981
|
"div",
|
|
7972
7982
|
{
|
|
7973
|
-
className: (0,
|
|
7974
|
-
children: /* @__PURE__ */ (0,
|
|
7983
|
+
className: (0, import_clsx41.default)("row grow pt-2 pb-1 px-4 cursor-pointer", { "text-warning": softRequired && !hasValue }),
|
|
7984
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7975
7985
|
Textarea,
|
|
7976
7986
|
{
|
|
7977
|
-
className: (0,
|
|
7987
|
+
className: (0, import_clsx41.default)("ring-0 border-0 outline-0 p-0 m-0 shadow-none rounded-none", { "bg-surface-warning placeholder-warning": softRequired && !hasValue }),
|
|
7978
7988
|
rows: 5,
|
|
7979
7989
|
defaultStyle: false,
|
|
7980
7990
|
value: value ?? "",
|
|
@@ -8003,8 +8013,8 @@ var TextProperty = ({
|
|
|
8003
8013
|
};
|
|
8004
8014
|
|
|
8005
8015
|
// src/components/user-action/DateAndTimePicker.tsx
|
|
8006
|
-
var
|
|
8007
|
-
var
|
|
8016
|
+
var import_clsx42 = __toESM(require("clsx"));
|
|
8017
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
8008
8018
|
var defaultTimeTranslation = {
|
|
8009
8019
|
en: {
|
|
8010
8020
|
clear: "Clear",
|
|
@@ -8063,7 +8073,7 @@ var DateTimePicker = ({
|
|
|
8063
8073
|
let dateDisplay;
|
|
8064
8074
|
let timeDisplay;
|
|
8065
8075
|
if (useDate) {
|
|
8066
|
-
dateDisplay = /* @__PURE__ */ (0,
|
|
8076
|
+
dateDisplay = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8067
8077
|
DatePicker,
|
|
8068
8078
|
{
|
|
8069
8079
|
...datePickerProps,
|
|
@@ -8077,25 +8087,25 @@ var DateTimePicker = ({
|
|
|
8077
8087
|
);
|
|
8078
8088
|
}
|
|
8079
8089
|
if (useTime) {
|
|
8080
|
-
timeDisplay = /* @__PURE__ */ (0,
|
|
8090
|
+
timeDisplay = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8081
8091
|
TimePicker,
|
|
8082
8092
|
{
|
|
8083
8093
|
...timePickerProps,
|
|
8084
|
-
className: (0,
|
|
8094
|
+
className: (0, import_clsx42.default)("h-full", { "justify-between w-full": mode === "time" }),
|
|
8085
8095
|
maxHeight: 250,
|
|
8086
8096
|
time: value,
|
|
8087
8097
|
onChange
|
|
8088
8098
|
}
|
|
8089
8099
|
);
|
|
8090
8100
|
}
|
|
8091
|
-
return /* @__PURE__ */ (0,
|
|
8092
|
-
/* @__PURE__ */ (0,
|
|
8101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "col w-fit", children: [
|
|
8102
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "row gap-x-4", children: [
|
|
8093
8103
|
dateDisplay,
|
|
8094
8104
|
timeDisplay
|
|
8095
8105
|
] }),
|
|
8096
|
-
/* @__PURE__ */ (0,
|
|
8097
|
-
/* @__PURE__ */ (0,
|
|
8098
|
-
/* @__PURE__ */ (0,
|
|
8106
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "row justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "row gap-x-2 mt-1", children: [
|
|
8107
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SolidButton, { size: "medium", color: "negative", onClick: onRemove, children: translation.clear }),
|
|
8108
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8099
8109
|
SolidButton,
|
|
8100
8110
|
{
|
|
8101
8111
|
size: "medium",
|
|
@@ -8107,8 +8117,88 @@ var DateTimePicker = ({
|
|
|
8107
8117
|
] });
|
|
8108
8118
|
};
|
|
8109
8119
|
|
|
8120
|
+
// src/components/user-action/Menu.tsx
|
|
8121
|
+
var import_react24 = require("react");
|
|
8122
|
+
var import_clsx43 = __toESM(require("clsx"));
|
|
8123
|
+
|
|
8124
|
+
// src/util/PropsWithFunctionChildren.ts
|
|
8125
|
+
var resolve = (children, bag) => {
|
|
8126
|
+
if (typeof children === "function") {
|
|
8127
|
+
return children(bag);
|
|
8128
|
+
}
|
|
8129
|
+
return children ?? void 0;
|
|
8130
|
+
};
|
|
8131
|
+
var BagFunctionUtil = {
|
|
8132
|
+
resolve
|
|
8133
|
+
};
|
|
8134
|
+
|
|
8135
|
+
// src/components/user-action/Menu.tsx
|
|
8136
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
8137
|
+
var MenuItem = ({
|
|
8138
|
+
children,
|
|
8139
|
+
onClick,
|
|
8140
|
+
alignment = "left",
|
|
8141
|
+
isDisabled = false,
|
|
8142
|
+
className
|
|
8143
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
8144
|
+
"div",
|
|
8145
|
+
{
|
|
8146
|
+
className: (0, import_clsx43.default)("block px-3 py-1.5 bg-menu-background first:rounded-t-lg last:rounded-b-lg text-sm font-semibold", {
|
|
8147
|
+
"text-right": alignment === "right",
|
|
8148
|
+
"text-left": alignment === "left",
|
|
8149
|
+
"text-disabled-text cursor-not-allowed": isDisabled,
|
|
8150
|
+
"text-menu-text hover:bg-primary/20": !isDisabled,
|
|
8151
|
+
"cursor-pointer": !!onClick
|
|
8152
|
+
}, className),
|
|
8153
|
+
onClick,
|
|
8154
|
+
children
|
|
8155
|
+
}
|
|
8156
|
+
);
|
|
8157
|
+
var Menu = ({
|
|
8158
|
+
trigger,
|
|
8159
|
+
children,
|
|
8160
|
+
alignment = "tl",
|
|
8161
|
+
showOnHover = false,
|
|
8162
|
+
menuClassName = ""
|
|
8163
|
+
}) => {
|
|
8164
|
+
const { isHovered: isOpen, setIsHovered: setIsOpen, handlers } = useHoverState({ isDisabled: !showOnHover });
|
|
8165
|
+
const triggerRef = (0, import_react24.useRef)(null);
|
|
8166
|
+
const menuRef = (0, import_react24.useRef)(null);
|
|
8167
|
+
useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
|
|
8168
|
+
const bag = { isOpen, close: () => setIsOpen(false) };
|
|
8169
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
8170
|
+
"div",
|
|
8171
|
+
{
|
|
8172
|
+
className: "relative",
|
|
8173
|
+
...handlers,
|
|
8174
|
+
children: [
|
|
8175
|
+
trigger(() => setIsOpen(!isOpen), triggerRef),
|
|
8176
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
8177
|
+
"div",
|
|
8178
|
+
{
|
|
8179
|
+
ref: menuRef,
|
|
8180
|
+
onClick: (e) => e.stopPropagation(),
|
|
8181
|
+
className: (0, import_clsx43.default)(
|
|
8182
|
+
"absolute top-full mt-1 min-w-40 rounded-lg bg-menu-background text-menu-text shadow-around-md z-10",
|
|
8183
|
+
{
|
|
8184
|
+
"top-0": alignment[0] === "t",
|
|
8185
|
+
"bottom-0": alignment[0] === "b",
|
|
8186
|
+
"left-0": alignment[1] === "l",
|
|
8187
|
+
"right-0": alignment[1] === "r",
|
|
8188
|
+
"hidden": !isOpen
|
|
8189
|
+
},
|
|
8190
|
+
menuClassName
|
|
8191
|
+
),
|
|
8192
|
+
children: BagFunctionUtil.resolve(children, bag)
|
|
8193
|
+
}
|
|
8194
|
+
)
|
|
8195
|
+
]
|
|
8196
|
+
}
|
|
8197
|
+
);
|
|
8198
|
+
};
|
|
8199
|
+
|
|
8110
8200
|
// src/components/user-action/ScrollPicker.tsx
|
|
8111
|
-
var
|
|
8201
|
+
var import_react25 = require("react");
|
|
8112
8202
|
var import_clsx44 = __toESM(require("clsx"));
|
|
8113
8203
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
8114
8204
|
var up = 1;
|
|
@@ -8129,7 +8219,7 @@ var ScrollPicker = ({
|
|
|
8129
8219
|
transition,
|
|
8130
8220
|
items,
|
|
8131
8221
|
lastTimeStamp
|
|
8132
|
-
}, setAnimation] = (0,
|
|
8222
|
+
}, setAnimation] = (0, import_react25.useState)({
|
|
8133
8223
|
targetIndex: selectedIndex,
|
|
8134
8224
|
currentIndex: disabled ? selectedIndex : 0,
|
|
8135
8225
|
velocity: 0,
|
|
@@ -8145,7 +8235,7 @@ var ScrollPicker = ({
|
|
|
8145
8235
|
const itemHeight = 40;
|
|
8146
8236
|
const distance = 8;
|
|
8147
8237
|
const containerHeight = itemHeight * (itemsShownCount - 2) + distance * (itemsShownCount - 2 + 1);
|
|
8148
|
-
const getDirection = (0,
|
|
8238
|
+
const getDirection = (0, import_react25.useCallback)((targetIndex, currentIndex2, transition2, length) => {
|
|
8149
8239
|
if (targetIndex === currentIndex2) {
|
|
8150
8240
|
return transition2 > 0 ? up : down;
|
|
8151
8241
|
}
|
|
@@ -8155,7 +8245,7 @@ var ScrollPicker = ({
|
|
|
8155
8245
|
}
|
|
8156
8246
|
return distanceForward >= length / 2 ? down : up;
|
|
8157
8247
|
}, []);
|
|
8158
|
-
const animate = (0,
|
|
8248
|
+
const animate = (0, import_react25.useCallback)((timestamp, startTime) => {
|
|
8159
8249
|
setAnimation((prevState) => {
|
|
8160
8250
|
const {
|
|
8161
8251
|
targetIndex,
|
|
@@ -8228,7 +8318,7 @@ var ScrollPicker = ({
|
|
|
8228
8318
|
};
|
|
8229
8319
|
});
|
|
8230
8320
|
}, [disabled, getDirection, onChange]);
|
|
8231
|
-
(0,
|
|
8321
|
+
(0, import_react25.useEffect)(() => {
|
|
8232
8322
|
requestAnimationFrame((timestamp) => animate(timestamp, lastTimeStamp));
|
|
8233
8323
|
});
|
|
8234
8324
|
const opacity = (transition2, index, itemsCount) => {
|
|
@@ -8305,8 +8395,8 @@ var ScrollPicker = ({
|
|
|
8305
8395
|
};
|
|
8306
8396
|
|
|
8307
8397
|
// src/components/user-action/ToggleableInput.tsx
|
|
8308
|
-
var
|
|
8309
|
-
var
|
|
8398
|
+
var import_react26 = require("react");
|
|
8399
|
+
var import_lucide_react22 = require("lucide-react");
|
|
8310
8400
|
var import_clsx45 = __toESM(require("clsx"));
|
|
8311
8401
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
8312
8402
|
var ToggleableInput = ({
|
|
@@ -8322,14 +8412,14 @@ var ToggleableInput = ({
|
|
|
8322
8412
|
onBlur,
|
|
8323
8413
|
...restProps
|
|
8324
8414
|
}) => {
|
|
8325
|
-
const [isEditing, setIsEditing] = (0,
|
|
8415
|
+
const [isEditing, setIsEditing] = (0, import_react26.useState)(initialState !== "display");
|
|
8326
8416
|
const { restartTimer, clearUpdateTimer } = useSaveDelay(() => void 0, 3e3);
|
|
8327
|
-
const ref = (0,
|
|
8417
|
+
const ref = (0, import_react26.useRef)(null);
|
|
8328
8418
|
const onEditCompletedWrapper = (text) => {
|
|
8329
8419
|
onEditCompleted(text);
|
|
8330
8420
|
clearUpdateTimer();
|
|
8331
8421
|
};
|
|
8332
|
-
(0,
|
|
8422
|
+
(0, import_react26.useEffect)(() => {
|
|
8333
8423
|
if (isEditing) {
|
|
8334
8424
|
ref.current?.focus();
|
|
8335
8425
|
}
|
|
@@ -8376,7 +8466,7 @@ var ToggleableInput = ({
|
|
|
8376
8466
|
}
|
|
8377
8467
|
) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: (0, import_clsx45.default)("max-w-xs break-words overflow-hidden", labelClassName), children: value }) }),
|
|
8378
8468
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8379
|
-
|
|
8469
|
+
import_lucide_react22.Pencil,
|
|
8380
8470
|
{
|
|
8381
8471
|
className: (0, import_clsx45.default)(`cursor-pointer`, { "text-transparent": isEditing }),
|
|
8382
8472
|
size,
|
|
@@ -8394,8 +8484,8 @@ var ToggleableInputUncontrolled = ({
|
|
|
8394
8484
|
onChangeText = noop,
|
|
8395
8485
|
...restProps
|
|
8396
8486
|
}) => {
|
|
8397
|
-
const [value, setValue] = (0,
|
|
8398
|
-
(0,
|
|
8487
|
+
const [value, setValue] = (0, import_react26.useState)(initialValue);
|
|
8488
|
+
(0, import_react26.useEffect)(() => {
|
|
8399
8489
|
setValue(initialValue);
|
|
8400
8490
|
}, [initialValue]);
|
|
8401
8491
|
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
@@ -8456,6 +8546,7 @@ var filterNews = (localizedNews, requiredKeys) => {
|
|
|
8456
8546
|
ArrayUtil,
|
|
8457
8547
|
Avatar,
|
|
8458
8548
|
AvatarGroup,
|
|
8549
|
+
BagFunctionUtil,
|
|
8459
8550
|
BreadCrumb,
|
|
8460
8551
|
ButtonColorUtil,
|
|
8461
8552
|
ButtonUtil,
|
|
@@ -8506,6 +8597,7 @@ var filterNews = (localizedNews, requiredKeys) => {
|
|
|
8506
8597
|
MultiSearchWithMapping,
|
|
8507
8598
|
MultiSelect,
|
|
8508
8599
|
MultiSelectProperty,
|
|
8600
|
+
MultiSelectUncontrolled,
|
|
8509
8601
|
MultiSubjectSearchWithMapping,
|
|
8510
8602
|
NumberProperty,
|
|
8511
8603
|
OutlineButton,
|
|
@@ -8519,7 +8611,6 @@ var filterNews = (localizedNews, requiredKeys) => {
|
|
|
8519
8611
|
RingWave,
|
|
8520
8612
|
ScrollPicker,
|
|
8521
8613
|
SearchableList,
|
|
8522
|
-
SearchableSelect,
|
|
8523
8614
|
Select,
|
|
8524
8615
|
SelectUncontrolled,
|
|
8525
8616
|
SessionStorageService,
|
|
@@ -8593,6 +8684,7 @@ var filterNews = (localizedNews, requiredKeys) => {
|
|
|
8593
8684
|
useLocale,
|
|
8594
8685
|
useOutsideClick,
|
|
8595
8686
|
useSaveDelay,
|
|
8687
|
+
useSearch,
|
|
8596
8688
|
useTheme,
|
|
8597
8689
|
useTranslation,
|
|
8598
8690
|
validateEmail,
|