@helpwave/hightide 0.1.6 → 0.1.7-alpha.1
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/coloring/{shading.d.cts → shading.d.mts} +1 -1
- package/dist/coloring/shading.js +14 -3329
- package/dist/coloring/shading.js.map +1 -1
- package/dist/coloring/shading.mjs +47 -0
- package/dist/coloring/shading.mjs.map +1 -0
- package/dist/coloring/types.js +26 -2
- package/dist/coloring/types.js.map +1 -1
- package/dist/coloring/types.mjs +6 -0
- package/dist/coloring/{types.cjs.map → types.mjs.map} +1 -1
- package/dist/components/branding/HelpwaveBadge.js +59 -25
- package/dist/components/branding/HelpwaveBadge.js.map +1 -1
- package/dist/components/branding/HelpwaveBadge.mjs +122 -0
- package/dist/components/branding/HelpwaveBadge.mjs.map +1 -0
- package/dist/components/date/{DatePicker.d.cts → DatePicker.d.mts} +5 -5
- package/dist/components/date/DatePicker.js +117 -82
- package/dist/components/date/DatePicker.js.map +1 -1
- package/dist/components/date/{DatePicker.cjs → DatePicker.mjs} +83 -119
- package/dist/components/date/DatePicker.mjs.map +1 -0
- package/dist/components/date/{DayPicker.d.cts → DayPicker.d.mts} +1 -1
- package/dist/components/date/DayPicker.js +55 -18
- package/dist/components/date/DayPicker.js.map +1 -1
- package/dist/components/date/{DayPicker.cjs → DayPicker.mjs} +19 -57
- package/dist/components/date/DayPicker.mjs.map +1 -0
- package/dist/components/date/{TimeDisplay.d.cts → TimeDisplay.d.mts} +2 -2
- package/dist/components/date/TimeDisplay.js +35 -9
- package/dist/components/date/TimeDisplay.js.map +1 -1
- package/dist/components/date/{TimeDisplay.cjs → TimeDisplay.mjs} +10 -37
- package/dist/components/date/TimeDisplay.mjs.map +1 -0
- package/dist/components/date/TimePicker.js +57 -22
- package/dist/components/date/TimePicker.js.map +1 -1
- package/dist/components/date/{TimePicker.cjs → TimePicker.mjs} +23 -59
- package/dist/components/date/TimePicker.mjs.map +1 -0
- package/dist/components/date/{YearMonthPicker.d.cts → YearMonthPicker.d.mts} +1 -1
- package/dist/components/date/YearMonthPicker.d.ts +1 -1
- package/dist/components/date/YearMonthPicker.js +72 -37
- package/dist/components/date/YearMonthPicker.js.map +1 -1
- package/dist/components/date/{YearMonthPicker.cjs → YearMonthPicker.mjs} +38 -74
- package/dist/components/date/YearMonthPicker.mjs.map +1 -0
- package/dist/components/dialogs/{ConfirmDialog.d.cts → ConfirmDialog.d.mts} +4 -4
- package/dist/components/dialogs/ConfirmDialog.js +98 -62
- package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
- package/dist/components/dialogs/{ConfirmDialog.cjs → ConfirmDialog.mjs} +63 -100
- package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -0
- package/dist/components/icons-and-geometry/Avatar.js +47 -10
- package/dist/components/icons-and-geometry/Avatar.js.map +1 -1
- package/dist/components/icons-and-geometry/Avatar.mjs +81 -0
- package/dist/components/icons-and-geometry/{Avatar.cjs.map → Avatar.mjs.map} +1 -1
- package/dist/components/icons-and-geometry/Circle.js +40 -6
- package/dist/components/icons-and-geometry/Circle.js.map +1 -1
- package/dist/components/icons-and-geometry/Circle.mjs +27 -0
- package/dist/components/icons-and-geometry/{Circle.cjs.map → Circle.mjs.map} +1 -1
- package/dist/components/icons-and-geometry/Helpwave.js +38 -14
- package/dist/components/icons-and-geometry/Helpwave.js.map +1 -1
- package/dist/components/icons-and-geometry/Helpwave.mjs +75 -0
- package/dist/components/icons-and-geometry/{Helpwave.cjs.map → Helpwave.mjs.map} +1 -1
- package/dist/components/icons-and-geometry/Ring.js +74 -37
- package/dist/components/icons-and-geometry/Ring.js.map +1 -1
- package/dist/components/icons-and-geometry/{Ring.cjs → Ring.mjs} +38 -76
- package/dist/components/icons-and-geometry/{Ring.cjs.map → Ring.mjs.map} +1 -1
- package/dist/components/icons-and-geometry/Tag.js +28 -4
- package/dist/components/icons-and-geometry/Tag.js.map +1 -1
- package/dist/components/icons-and-geometry/Tag.mjs +22 -0
- package/dist/components/icons-and-geometry/{Tag.cjs.map → Tag.mjs.map} +1 -1
- package/dist/components/layout-and-navigation/BreadCrumb.js +195 -191
- package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -1
- package/dist/components/layout-and-navigation/{BreadCrumb.cjs → BreadCrumb.mjs} +191 -198
- package/dist/components/layout-and-navigation/{BreadCrumb.cjs.map → BreadCrumb.mjs.map} +1 -1
- package/dist/components/layout-and-navigation/Carousel.js +68 -34
- package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
- package/dist/components/layout-and-navigation/{Carousel.cjs → Carousel.mjs} +35 -70
- package/dist/components/layout-and-navigation/{Carousel.cjs.map → Carousel.mjs.map} +1 -1
- package/dist/components/layout-and-navigation/Chip.js +43 -8
- package/dist/components/layout-and-navigation/Chip.js.map +1 -1
- package/dist/components/layout-and-navigation/Chip.mjs +69 -0
- package/dist/components/layout-and-navigation/{Chip.cjs.map → Chip.mjs.map} +1 -1
- package/dist/components/layout-and-navigation/DividerInserter.js +39 -5
- package/dist/components/layout-and-navigation/DividerInserter.js.map +1 -1
- package/dist/components/layout-and-navigation/DividerInserter.mjs +25 -0
- package/dist/components/layout-and-navigation/{DividerInserter.cjs.map → DividerInserter.mjs.map} +1 -1
- package/dist/components/layout-and-navigation/Expandable.js +52 -17
- package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
- package/dist/components/layout-and-navigation/Expandable.mjs +81 -0
- package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -0
- package/dist/components/layout-and-navigation/{FAQSection.d.cts → FAQSection.d.mts} +1 -1
- package/dist/components/layout-and-navigation/FAQSection.js +75 -41
- package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
- package/dist/components/layout-and-navigation/{FAQSection.cjs → FAQSection.mjs} +42 -77
- package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -0
- package/dist/components/layout-and-navigation/{MarkdownInterpreter.d.cts → MarkdownInterpreter.d.mts} +1 -1
- package/dist/components/layout-and-navigation/MarkdownInterpreter.d.ts +1 -1
- package/dist/components/layout-and-navigation/MarkdownInterpreter.js +43 -18
- package/dist/components/layout-and-navigation/MarkdownInterpreter.js.map +1 -1
- package/dist/components/layout-and-navigation/{MarkdownInterpreter.cjs → MarkdownInterpreter.mjs} +19 -45
- package/dist/components/layout-and-navigation/{MarkdownInterpreter.cjs.map → MarkdownInterpreter.mjs.map} +1 -1
- package/dist/components/layout-and-navigation/{Overlay.d.cts → Overlay.d.mts} +3 -3
- package/dist/components/layout-and-navigation/Overlay.d.ts +1 -1
- package/dist/components/layout-and-navigation/Overlay.js +91 -54
- package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
- package/dist/components/layout-and-navigation/{Overlay.cjs → Overlay.mjs} +55 -93
- package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -0
- package/dist/components/layout-and-navigation/{Pagination.d.cts → Pagination.d.mts} +2 -2
- package/dist/components/layout-and-navigation/Pagination.js +53 -19
- package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
- package/dist/components/layout-and-navigation/Pagination.mjs +82 -0
- package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -0
- package/dist/components/layout-and-navigation/{SearchableList.d.cts → SearchableList.d.mts} +2 -2
- package/dist/components/layout-and-navigation/SearchableList.js +76 -42
- package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
- package/dist/components/layout-and-navigation/SearchableList.mjs +252 -0
- package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -0
- package/dist/components/layout-and-navigation/{StepperBar.d.cts → StepperBar.d.mts} +2 -2
- package/dist/components/layout-and-navigation/StepperBar.js +69 -34
- package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
- package/dist/components/layout-and-navigation/{StepperBar.cjs → StepperBar.mjs} +35 -71
- package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -0
- package/dist/components/layout-and-navigation/{Table.d.cts → Table.d.mts} +4 -4
- package/dist/components/layout-and-navigation/Table.d.ts +3 -3
- package/dist/components/layout-and-navigation/Table.js +108 -65
- package/dist/components/layout-and-navigation/Table.js.map +1 -1
- package/dist/components/layout-and-navigation/{Table.cjs → Table.mjs} +66 -110
- package/dist/components/layout-and-navigation/Table.mjs.map +1 -0
- package/dist/components/layout-and-navigation/{TextImage.d.cts → TextImage.d.mts} +2 -2
- package/dist/components/layout-and-navigation/TextImage.js +54 -18
- package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
- package/dist/components/layout-and-navigation/TextImage.mjs +101 -0
- package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -0
- package/dist/components/layout-and-navigation/Tile.js +42 -8
- package/dist/components/layout-and-navigation/Tile.js.map +1 -1
- package/dist/components/layout-and-navigation/Tile.mjs +23 -0
- package/dist/components/layout-and-navigation/{Tile.cjs.map → Tile.mjs.map} +1 -1
- package/dist/components/layout-and-navigation/VerticalDivider.js +33 -9
- package/dist/components/layout-and-navigation/VerticalDivider.js.map +1 -1
- package/dist/components/layout-and-navigation/VerticalDivider.mjs +56 -0
- package/dist/components/layout-and-navigation/{VerticalDivider.cjs.map → VerticalDivider.mjs.map} +1 -1
- package/dist/components/loading-states/{ErrorComponent.d.cts → ErrorComponent.d.mts} +2 -2
- package/dist/components/loading-states/ErrorComponent.js +46 -12
- package/dist/components/loading-states/ErrorComponent.js.map +1 -1
- package/dist/components/loading-states/ErrorComponent.mjs +68 -0
- package/dist/components/loading-states/ErrorComponent.mjs.map +1 -0
- package/dist/components/loading-states/{LoadingAndErrorComponent.d.cts → LoadingAndErrorComponent.d.mts} +5 -5
- package/dist/components/loading-states/LoadingAndErrorComponent.d.ts +1 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.js +68 -34
- package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.mjs +194 -0
- package/dist/components/loading-states/LoadingAndErrorComponent.mjs.map +1 -0
- package/dist/components/loading-states/{LoadingAnimation.d.cts → LoadingAnimation.d.mts} +2 -2
- package/dist/components/loading-states/LoadingAnimation.js +59 -23
- package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
- package/dist/components/loading-states/LoadingAnimation.mjs +139 -0
- package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -0
- package/dist/components/loading-states/{LoadingButton.d.cts → LoadingButton.d.mts} +1 -1
- package/dist/components/loading-states/LoadingButton.js +62 -28
- package/dist/components/loading-states/LoadingButton.js.map +1 -1
- package/dist/components/loading-states/{LoadingButton.cjs → LoadingButton.mjs} +29 -64
- package/dist/components/loading-states/LoadingButton.mjs.map +1 -0
- package/dist/components/loading-states/ProgressIndicator.js +30 -6
- package/dist/components/loading-states/ProgressIndicator.js.map +1 -1
- package/dist/components/loading-states/ProgressIndicator.mjs +59 -0
- package/dist/components/loading-states/{ProgressIndicator.cjs.map → ProgressIndicator.mjs.map} +1 -1
- package/dist/components/modals/{ConfirmModal.d.cts → ConfirmModal.d.mts} +4 -4
- package/dist/components/modals/ConfirmModal.js +99 -63
- package/dist/components/modals/ConfirmModal.js.map +1 -1
- package/dist/components/modals/{ConfirmModal.cjs → ConfirmModal.mjs} +64 -101
- package/dist/components/modals/ConfirmModal.mjs.map +1 -0
- package/dist/components/modals/{DiscardChangesModal.d.cts → DiscardChangesModal.d.mts} +5 -5
- package/dist/components/modals/DiscardChangesModal.js +101 -65
- package/dist/components/modals/DiscardChangesModal.js.map +1 -1
- package/dist/components/modals/{DiscardChangesModal.cjs → DiscardChangesModal.mjs} +66 -103
- package/dist/components/modals/DiscardChangesModal.mjs.map +1 -0
- package/dist/components/modals/{InputModal.d.cts → InputModal.d.mts} +7 -7
- package/dist/components/modals/InputModal.js +124 -88
- package/dist/components/modals/InputModal.js.map +1 -1
- package/dist/components/modals/{InputModal.cjs → InputModal.mjs} +89 -126
- package/dist/components/modals/InputModal.mjs.map +1 -0
- package/dist/components/modals/{LanguageModal.d.cts → LanguageModal.d.mts} +3 -3
- package/dist/components/modals/LanguageModal.js +129 -93
- package/dist/components/modals/LanguageModal.js.map +1 -1
- package/dist/components/modals/{LanguageModal.cjs → LanguageModal.mjs} +94 -131
- package/dist/components/modals/LanguageModal.mjs.map +1 -0
- package/dist/components/modals/{ThemeModal.d.cts → ThemeModal.d.mts} +4 -4
- package/dist/components/modals/ThemeModal.js +133 -97
- package/dist/components/modals/ThemeModal.js.map +1 -1
- package/dist/components/modals/{ThemeModal.cjs → ThemeModal.mjs} +98 -135
- package/dist/components/modals/ThemeModal.mjs.map +1 -0
- package/dist/components/properties/{CheckboxProperty.d.cts → CheckboxProperty.d.mts} +3 -3
- package/dist/components/properties/CheckboxProperty.js +82 -48
- package/dist/components/properties/CheckboxProperty.js.map +1 -1
- package/dist/components/properties/{CheckboxProperty.cjs → CheckboxProperty.mjs} +49 -84
- package/dist/components/properties/CheckboxProperty.mjs.map +1 -0
- package/dist/components/properties/{DateProperty.d.cts → DateProperty.d.mts} +3 -3
- package/dist/components/properties/DateProperty.js +92 -58
- package/dist/components/properties/DateProperty.js.map +1 -1
- package/dist/components/properties/{DateProperty.cjs → DateProperty.mjs} +59 -94
- package/dist/components/properties/DateProperty.mjs.map +1 -0
- package/dist/components/properties/{MultiSelectProperty.d.cts → MultiSelectProperty.d.mts} +5 -5
- package/dist/components/properties/MultiSelectProperty.js +151 -117
- package/dist/components/properties/MultiSelectProperty.js.map +1 -1
- package/dist/components/properties/{MultiSelectProperty.cjs → MultiSelectProperty.mjs} +118 -153
- package/dist/components/properties/MultiSelectProperty.mjs.map +1 -0
- package/dist/components/properties/{NumberProperty.d.cts → NumberProperty.d.mts} +3 -3
- package/dist/components/properties/NumberProperty.js +93 -59
- package/dist/components/properties/NumberProperty.js.map +1 -1
- package/dist/components/properties/{NumberProperty.cjs → NumberProperty.mjs} +60 -95
- package/dist/components/properties/NumberProperty.mjs.map +1 -0
- package/dist/components/properties/{PropertyBase.d.cts → PropertyBase.d.mts} +2 -2
- package/dist/components/properties/PropertyBase.js +61 -27
- package/dist/components/properties/PropertyBase.js.map +1 -1
- package/dist/components/properties/{PropertyBase.cjs → PropertyBase.mjs} +28 -63
- package/dist/components/properties/{PropertyBase.cjs.map → PropertyBase.mjs.map} +1 -1
- package/dist/components/properties/{SelectProperty.d.cts → SelectProperty.d.mts} +5 -5
- package/dist/components/properties/SelectProperty.js +116 -82
- package/dist/components/properties/SelectProperty.js.map +1 -1
- package/dist/components/properties/{SelectProperty.cjs → SelectProperty.mjs} +83 -118
- package/dist/components/properties/SelectProperty.mjs.map +1 -0
- package/dist/components/properties/{TextProperty.d.cts → TextProperty.d.mts} +3 -3
- package/dist/components/properties/TextProperty.js +90 -56
- package/dist/components/properties/TextProperty.js.map +1 -1
- package/dist/components/properties/{TextProperty.cjs → TextProperty.mjs} +57 -92
- package/dist/components/properties/TextProperty.mjs.map +1 -0
- package/dist/components/user-action/Button.js +67 -28
- package/dist/components/user-action/Button.js.map +1 -1
- package/dist/components/user-action/{Button.cjs → Button.mjs} +29 -69
- package/dist/components/user-action/{Button.cjs.map → Button.mjs.map} +1 -1
- package/dist/components/user-action/{Checkbox.d.cts → Checkbox.d.mts} +1 -1
- package/dist/components/user-action/Checkbox.js +55 -20
- package/dist/components/user-action/Checkbox.js.map +1 -1
- package/dist/components/user-action/Checkbox.mjs +122 -0
- package/dist/components/user-action/{Checkbox.cjs.map → Checkbox.mjs.map} +1 -1
- package/dist/components/user-action/{DateAndTimePicker.d.cts → DateAndTimePicker.d.mts} +7 -7
- package/dist/components/user-action/DateAndTimePicker.js +140 -106
- package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
- package/dist/components/user-action/{DateAndTimePicker.cjs → DateAndTimePicker.mjs} +107 -142
- package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -0
- package/dist/components/user-action/{Input.d.cts → Input.d.mts} +1 -1
- package/dist/components/user-action/Input.js +62 -26
- package/dist/components/user-action/Input.js.map +1 -1
- package/dist/components/user-action/Input.mjs +186 -0
- package/dist/components/user-action/Input.mjs.map +1 -0
- package/dist/components/user-action/Label.js +39 -5
- package/dist/components/user-action/Label.js.map +1 -1
- package/dist/components/user-action/Label.mjs +21 -0
- package/dist/components/user-action/{Label.cjs.map → Label.mjs.map} +1 -1
- package/dist/components/user-action/Menu.js +54 -19
- package/dist/components/user-action/Menu.js.map +1 -1
- package/dist/components/user-action/Menu.mjs +127 -0
- package/dist/components/user-action/Menu.mjs.map +1 -0
- package/dist/components/user-action/{MultiSelect.d.cts → MultiSelect.d.mts} +3 -3
- package/dist/components/user-action/MultiSelect.js +114 -80
- package/dist/components/user-action/MultiSelect.js.map +1 -1
- package/dist/components/user-action/{MultiSelect.cjs → MultiSelect.mjs} +81 -116
- package/dist/components/user-action/MultiSelect.mjs.map +1 -0
- package/dist/components/user-action/ScrollPicker.js +49 -15
- package/dist/components/user-action/ScrollPicker.js.map +1 -1
- package/dist/components/user-action/{ScrollPicker.cjs → ScrollPicker.mjs} +16 -51
- package/dist/components/user-action/ScrollPicker.mjs.map +1 -0
- package/dist/components/user-action/{Select.d.cts → Select.d.mts} +1 -1
- package/dist/components/user-action/Select.js +87 -51
- package/dist/components/user-action/Select.js.map +1 -1
- package/dist/components/user-action/{Select.cjs → Select.mjs} +52 -89
- package/dist/components/user-action/Select.mjs.map +1 -0
- package/dist/components/user-action/{Textarea.d.cts → Textarea.d.mts} +1 -1
- package/dist/components/user-action/Textarea.js +60 -25
- package/dist/components/user-action/Textarea.js.map +1 -1
- package/dist/components/user-action/Textarea.mjs +163 -0
- package/dist/components/user-action/Textarea.mjs.map +1 -0
- package/dist/components/user-action/ToggleableInput.js +61 -26
- package/dist/components/user-action/ToggleableInput.js.map +1 -1
- package/dist/components/user-action/ToggleableInput.mjs +156 -0
- package/dist/components/user-action/ToggleableInput.mjs.map +1 -0
- package/dist/components/user-action/Tooltip.js +41 -15
- package/dist/components/user-action/Tooltip.js.map +1 -1
- package/dist/components/user-action/{Tooltip.cjs → Tooltip.mjs} +16 -43
- package/dist/components/user-action/Tooltip.mjs.map +1 -0
- package/dist/hooks/useHoverState.js +31 -7
- package/dist/hooks/useHoverState.js.map +1 -1
- package/dist/hooks/useHoverState.mjs +47 -0
- package/dist/hooks/{useHoverState.cjs.map → useHoverState.mjs.map} +1 -1
- package/dist/hooks/useLocalStorage.js +31 -7
- package/dist/hooks/useLocalStorage.js.map +1 -1
- package/dist/hooks/useLocalStorage.mjs +58 -0
- package/dist/hooks/{useLocalStorage.cjs.map → useLocalStorage.mjs.map} +1 -1
- package/dist/hooks/useOutsideClick.js +28 -4
- package/dist/hooks/useOutsideClick.js.map +1 -1
- package/dist/hooks/useOutsideClick.mjs +23 -0
- package/dist/hooks/{useOutsideClick.cjs.map → useOutsideClick.mjs.map} +1 -1
- package/dist/hooks/useSaveDelay.js +30 -6
- package/dist/hooks/useSaveDelay.js.map +1 -1
- package/dist/hooks/useSaveDelay.mjs +43 -0
- package/dist/hooks/{useSaveDelay.cjs.map → useSaveDelay.mjs.map} +1 -1
- package/dist/{index.d.cts → index.d.mts} +78 -78
- package/dist/index.js +1028 -875
- package/dist/index.js.map +1 -1
- package/dist/{index.cjs → index.mjs} +876 -1028
- package/dist/index.mjs.map +1 -0
- package/dist/localization/{LanguageProvider.d.cts → LanguageProvider.d.mts} +1 -1
- package/dist/localization/LanguageProvider.js +43 -16
- package/dist/localization/LanguageProvider.js.map +1 -1
- package/dist/localization/{LanguageProvider.cjs → LanguageProvider.mjs} +17 -45
- package/dist/localization/LanguageProvider.mjs.map +1 -0
- package/dist/localization/{useTranslation.d.cts → useTranslation.d.mts} +1 -1
- package/dist/localization/useTranslation.js +33 -7
- package/dist/localization/useTranslation.js.map +1 -1
- package/dist/localization/useTranslation.mjs +42 -0
- package/dist/localization/useTranslation.mjs.map +1 -0
- package/dist/localization/util.js +26 -2
- package/dist/localization/util.js.map +1 -1
- package/dist/localization/util.mjs +16 -0
- package/dist/localization/{util.cjs.map → util.mjs.map} +1 -1
- package/dist/theming/{useTheme.d.cts → useTheme.d.mts} +2 -2
- package/dist/theming/useTheme.js +37 -10
- package/dist/theming/useTheme.js.map +1 -1
- package/dist/theming/useTheme.mjs +48 -0
- package/dist/theming/useTheme.mjs.map +1 -0
- package/dist/util/array.js +32 -2
- package/dist/util/array.js.map +1 -1
- package/dist/util/{array.cjs → array.mjs} +3 -34
- package/dist/util/{array.cjs.map → array.mjs.map} +1 -1
- package/dist/util/builder.js +26 -2
- package/dist/util/builder.js.map +1 -1
- package/dist/util/builder.mjs +9 -0
- package/dist/util/{builder.cjs.map → builder.mjs.map} +1 -1
- package/dist/util/date.js +39 -2
- package/dist/util/date.js.map +1 -1
- package/dist/util/{date.cjs → date.mjs} +3 -41
- package/dist/util/date.mjs.map +1 -0
- package/dist/util/easeFunctions.js +28 -2
- package/dist/util/easeFunctions.js.map +1 -1
- package/dist/util/easeFunctions.mjs +36 -0
- package/dist/util/easeFunctions.mjs.map +1 -0
- package/dist/util/emailValidation.js +26 -2
- package/dist/util/emailValidation.js.map +1 -1
- package/dist/util/emailValidation.mjs +8 -0
- package/dist/util/{emailValidation.cjs.map → emailValidation.mjs.map} +1 -1
- package/dist/util/loopingArray.js +26 -2
- package/dist/util/loopingArray.js.map +1 -1
- package/dist/util/{loopingArray.cjs → loopingArray.mjs} +3 -28
- package/dist/util/{loopingArray.cjs.map → loopingArray.mjs.map} +1 -1
- package/dist/util/math.js +26 -2
- package/dist/util/math.js.map +1 -1
- package/dist/util/math.mjs +8 -0
- package/dist/util/{math.cjs.map → math.mjs.map} +1 -1
- package/dist/util/news.d.mts +101 -0
- package/dist/util/news.d.ts +54 -54
- package/dist/util/news.js +39 -12
- package/dist/util/news.js.map +1 -1
- package/dist/util/news.mjs +49 -0
- package/dist/util/news.mjs.map +1 -0
- package/dist/util/noop.d.mts +3 -0
- package/dist/util/noop.d.ts +1 -1
- package/dist/util/noop.js +26 -2
- package/dist/util/noop.js.map +1 -1
- package/dist/util/noop.mjs +6 -0
- package/dist/util/noop.mjs.map +1 -0
- package/dist/util/simpleSearch.js +29 -2
- package/dist/util/simpleSearch.js.map +1 -1
- package/dist/util/simpleSearch.mjs +26 -0
- package/dist/util/{simpleSearch.cjs.map → simpleSearch.mjs.map} +1 -1
- package/dist/util/storage.js +27 -2
- package/dist/util/storage.js.map +1 -1
- package/dist/util/storage.mjs +38 -0
- package/dist/util/{storage.cjs.map → storage.mjs.map} +1 -1
- package/dist/util/types.js +17 -0
- package/dist/util/types.js.map +1 -1
- package/dist/util/types.mjs +1 -0
- package/dist/util/types.mjs.map +1 -0
- package/package.json +5 -7
- package/dist/coloring/shading.cjs +0 -3402
- package/dist/coloring/shading.cjs.map +0 -1
- package/dist/coloring/types.cjs +0 -31
- package/dist/components/branding/HelpwaveBadge.cjs +0 -157
- package/dist/components/branding/HelpwaveBadge.cjs.map +0 -1
- package/dist/components/date/DatePicker.cjs.map +0 -1
- package/dist/components/date/DayPicker.cjs.map +0 -1
- package/dist/components/date/TimeDisplay.cjs.map +0 -1
- package/dist/components/date/TimePicker.cjs.map +0 -1
- package/dist/components/date/YearMonthPicker.cjs.map +0 -1
- package/dist/components/dialogs/ConfirmDialog.cjs.map +0 -1
- package/dist/components/icons-and-geometry/Avatar.cjs +0 -119
- package/dist/components/icons-and-geometry/Circle.cjs +0 -62
- package/dist/components/icons-and-geometry/Helpwave.cjs +0 -100
- package/dist/components/icons-and-geometry/Tag.cjs +0 -47
- package/dist/components/layout-and-navigation/Chip.cjs +0 -105
- package/dist/components/layout-and-navigation/DividerInserter.cjs +0 -60
- package/dist/components/layout-and-navigation/Expandable.cjs +0 -117
- package/dist/components/layout-and-navigation/Expandable.cjs.map +0 -1
- package/dist/components/layout-and-navigation/FAQSection.cjs.map +0 -1
- package/dist/components/layout-and-navigation/Overlay.cjs.map +0 -1
- package/dist/components/layout-and-navigation/Pagination.cjs +0 -117
- package/dist/components/layout-and-navigation/Pagination.cjs.map +0 -1
- package/dist/components/layout-and-navigation/SearchableList.cjs +0 -287
- package/dist/components/layout-and-navigation/SearchableList.cjs.map +0 -1
- package/dist/components/layout-and-navigation/StepperBar.cjs.map +0 -1
- package/dist/components/layout-and-navigation/Table.cjs.map +0 -1
- package/dist/components/layout-and-navigation/TextImage.cjs +0 -138
- package/dist/components/layout-and-navigation/TextImage.cjs.map +0 -1
- package/dist/components/layout-and-navigation/Tile.cjs +0 -58
- package/dist/components/layout-and-navigation/VerticalDivider.cjs +0 -81
- package/dist/components/loading-states/ErrorComponent.cjs +0 -103
- package/dist/components/loading-states/ErrorComponent.cjs.map +0 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.cjs +0 -229
- package/dist/components/loading-states/LoadingAndErrorComponent.cjs.map +0 -1
- package/dist/components/loading-states/LoadingAnimation.cjs +0 -176
- package/dist/components/loading-states/LoadingAnimation.cjs.map +0 -1
- package/dist/components/loading-states/LoadingButton.cjs.map +0 -1
- package/dist/components/loading-states/ProgressIndicator.cjs +0 -84
- package/dist/components/modals/ConfirmModal.cjs.map +0 -1
- package/dist/components/modals/DiscardChangesModal.cjs.map +0 -1
- package/dist/components/modals/InputModal.cjs.map +0 -1
- package/dist/components/modals/LanguageModal.cjs.map +0 -1
- package/dist/components/modals/ThemeModal.cjs.map +0 -1
- package/dist/components/properties/CheckboxProperty.cjs.map +0 -1
- package/dist/components/properties/DateProperty.cjs.map +0 -1
- package/dist/components/properties/MultiSelectProperty.cjs.map +0 -1
- package/dist/components/properties/NumberProperty.cjs.map +0 -1
- package/dist/components/properties/SelectProperty.cjs.map +0 -1
- package/dist/components/properties/TextProperty.cjs.map +0 -1
- package/dist/components/user-action/Checkbox.cjs +0 -158
- package/dist/components/user-action/DateAndTimePicker.cjs.map +0 -1
- package/dist/components/user-action/Input.cjs +0 -223
- package/dist/components/user-action/Input.cjs.map +0 -1
- package/dist/components/user-action/Label.cjs +0 -56
- package/dist/components/user-action/Menu.cjs +0 -163
- package/dist/components/user-action/Menu.cjs.map +0 -1
- package/dist/components/user-action/MultiSelect.cjs.map +0 -1
- package/dist/components/user-action/ScrollPicker.cjs.map +0 -1
- package/dist/components/user-action/Select.cjs.map +0 -1
- package/dist/components/user-action/Textarea.cjs +0 -199
- package/dist/components/user-action/Textarea.cjs.map +0 -1
- package/dist/components/user-action/ToggleableInput.cjs +0 -192
- package/dist/components/user-action/ToggleableInput.cjs.map +0 -1
- package/dist/components/user-action/Tooltip.cjs.map +0 -1
- package/dist/hooks/useHoverState.cjs +0 -72
- package/dist/hooks/useLocalStorage.cjs +0 -83
- package/dist/hooks/useOutsideClick.cjs +0 -48
- package/dist/hooks/useSaveDelay.cjs +0 -68
- package/dist/index.cjs.map +0 -1
- package/dist/localization/LanguageProvider.cjs.map +0 -1
- package/dist/localization/useTranslation.cjs +0 -69
- package/dist/localization/useTranslation.cjs.map +0 -1
- package/dist/localization/util.cjs +0 -41
- package/dist/theming/useTheme.cjs +0 -76
- package/dist/theming/useTheme.cjs.map +0 -1
- package/dist/util/builder.cjs +0 -34
- package/dist/util/date.cjs.map +0 -1
- package/dist/util/easeFunctions.cjs +0 -63
- package/dist/util/easeFunctions.cjs.map +0 -1
- package/dist/util/emailValidation.cjs +0 -33
- package/dist/util/math.cjs +0 -33
- package/dist/util/news.cjs +0 -77
- package/dist/util/news.cjs.map +0 -1
- package/dist/util/news.d.cts +0 -101
- package/dist/util/noop.cjs +0 -31
- package/dist/util/noop.cjs.map +0 -1
- package/dist/util/noop.d.cts +0 -3
- package/dist/util/simpleSearch.cjs +0 -54
- package/dist/util/storage.cjs +0 -64
- package/dist/util/types.cjs +0 -19
- package/dist/util/types.cjs.map +0 -1
- /package/dist/coloring/{types.d.cts → types.d.mts} +0 -0
- /package/dist/components/branding/{HelpwaveBadge.d.cts → HelpwaveBadge.d.mts} +0 -0
- /package/dist/components/date/{TimePicker.d.cts → TimePicker.d.mts} +0 -0
- /package/dist/components/icons-and-geometry/{Avatar.d.cts → Avatar.d.mts} +0 -0
- /package/dist/components/icons-and-geometry/{Circle.d.cts → Circle.d.mts} +0 -0
- /package/dist/components/icons-and-geometry/{Helpwave.d.cts → Helpwave.d.mts} +0 -0
- /package/dist/components/icons-and-geometry/{Ring.d.cts → Ring.d.mts} +0 -0
- /package/dist/components/icons-and-geometry/{Tag.d.cts → Tag.d.mts} +0 -0
- /package/dist/components/layout-and-navigation/{BreadCrumb.d.cts → BreadCrumb.d.mts} +0 -0
- /package/dist/components/layout-and-navigation/{Carousel.d.cts → Carousel.d.mts} +0 -0
- /package/dist/components/layout-and-navigation/{Chip.d.cts → Chip.d.mts} +0 -0
- /package/dist/components/layout-and-navigation/{DividerInserter.d.cts → DividerInserter.d.mts} +0 -0
- /package/dist/components/layout-and-navigation/{Expandable.d.cts → Expandable.d.mts} +0 -0
- /package/dist/components/layout-and-navigation/{Tile.d.cts → Tile.d.mts} +0 -0
- /package/dist/components/layout-and-navigation/{VerticalDivider.d.cts → VerticalDivider.d.mts} +0 -0
- /package/dist/components/loading-states/{ProgressIndicator.d.cts → ProgressIndicator.d.mts} +0 -0
- /package/dist/components/user-action/{Button.d.cts → Button.d.mts} +0 -0
- /package/dist/components/user-action/{Label.d.cts → Label.d.mts} +0 -0
- /package/dist/components/user-action/{Menu.d.cts → Menu.d.mts} +0 -0
- /package/dist/components/user-action/{ScrollPicker.d.cts → ScrollPicker.d.mts} +0 -0
- /package/dist/components/user-action/{ToggleableInput.d.cts → ToggleableInput.d.mts} +0 -0
- /package/dist/components/user-action/{Tooltip.d.cts → Tooltip.d.mts} +0 -0
- /package/dist/hooks/{useHoverState.d.cts → useHoverState.d.mts} +0 -0
- /package/dist/hooks/{useLocalStorage.d.cts → useLocalStorage.d.mts} +0 -0
- /package/dist/hooks/{useOutsideClick.d.cts → useOutsideClick.d.mts} +0 -0
- /package/dist/hooks/{useSaveDelay.d.cts → useSaveDelay.d.mts} +0 -0
- /package/dist/localization/{util.d.cts → util.d.mts} +0 -0
- /package/dist/util/{array.d.cts → array.d.mts} +0 -0
- /package/dist/util/{builder.d.cts → builder.d.mts} +0 -0
- /package/dist/util/{date.d.cts → date.d.mts} +0 -0
- /package/dist/util/{easeFunctions.d.cts → easeFunctions.d.mts} +0 -0
- /package/dist/util/{emailValidation.d.cts → emailValidation.d.mts} +0 -0
- /package/dist/util/{loopingArray.d.cts → loopingArray.d.mts} +0 -0
- /package/dist/util/{math.d.cts → math.d.mts} +0 -0
- /package/dist/util/{simpleSearch.d.cts → simpleSearch.d.mts} +0 -0
- /package/dist/util/{storage.d.cts → storage.d.mts} +0 -0
- /package/dist/util/{types.d.cts → types.d.mts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/properties/PropertyBase.tsx","../../../src/components/user-action/Button.tsx","../../../src/localization/LanguageProvider.tsx","../../../src/hooks/useLocalStorage.ts","../../../src/localization/util.ts","../../../src/localization/useTranslation.ts"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { AlertTriangle } from 'lucide-react'\nimport clsx from 'clsx'\nimport type { Language } from '../../localization/util'\nimport { TextButton } from '../user-action/Button'\nimport type { PropsForTranslation } from '../../localization/useTranslation'\nimport { useTranslation } from '../../localization/useTranslation'\n\ntype PropertyBaseTranslation = {\n remove: string,\n}\n\nconst defaultPropertyBaseTranslation: Record<Language, PropertyBaseTranslation> = {\n en: {\n remove: 'Remove'\n },\n de: {\n remove: 'Entfernen'\n }\n}\n\nexport type PropertyBaseProps = {\n name: string,\n input: (props: { softRequired: boolean, hasValue: boolean }) => ReactNode,\n onRemove?: () => void,\n hasValue: boolean,\n softRequired?: boolean,\n readOnly?: boolean,\n icon?: ReactNode,\n className?: string,\n}\n\n/**\n * A component for showing a properties with uniform styling\n */\nexport const PropertyBase = ({\n overwriteTranslation,\n name,\n input,\n softRequired = false,\n hasValue,\n icon,\n readOnly,\n onRemove,\n className = '',\n }: PropsForTranslation<PropertyBaseTranslation, PropertyBaseProps>) => {\n const translation = useTranslation(defaultPropertyBaseTranslation, overwriteTranslation)\n const requiredAndNoValue = softRequired && !hasValue\n return (\n <div className={clsx('row gap-x-0 group', className)}>\n <div\n className={\n clsx('row gap-x-2 !w-[200px] px-4 py-2 items-center rounded-l-xl border-2 border-r-0', {\n 'bg-gray-100 text-black group-hover:border-primary border-gray-400': !requiredAndNoValue,\n 'bg-warning text-surface-warning group-hover:border-warning border-warning/90': requiredAndNoValue,\n }, className)}\n >\n {icon}\n {name}\n </div>\n <div className={\n clsx('row grow justify-between items-center rounded-r-xl border-2 border-l-0', {\n 'bg-white group-hover:border-primary border-gray-400': !requiredAndNoValue,\n 'bg-surface-warning group-hover:border-warning border-warning/90': requiredAndNoValue,\n }, className)}\n >\n {input({ softRequired, hasValue })}\n {requiredAndNoValue && (\n <div className=\"text-warning pr-4\"><AlertTriangle size={24}/></div>\n )}\n {onRemove && (\n <TextButton\n onClick={onRemove}\n color=\"negative\"\n className={clsx('pr-4 items-center', { '!text-transparent': !hasValue || readOnly })}\n disabled={!hasValue || readOnly}\n >\n {translation.remove}\n </TextButton>\n )}\n </div>\n </div>\n )\n}\n","import type { ButtonHTMLAttributes, PropsWithChildren, ReactNode } from 'react'\nimport clsx from 'clsx'\n\n\nexport const ButtonColorUtil = {\n solid: ['primary', 'secondary', 'tertiary', 'positive', 'warning', 'negative', 'neutral'] as const,\n text: ['primary', 'negative', 'neutral'] as const,\n outline: ['primary'] as const,\n}\n\n\n/**\n * The allowed colors for the SolidButton and IconButton\n */\nexport type SolidButtonColor = typeof ButtonColorUtil.solid[number]\n/**\n * The allowed colors for the OutlineButton\n */\nexport type OutlineButtonColor = typeof ButtonColorUtil.outline[number]\n/**\n * The allowed colors for the TextButton\n */\nexport type TextButtonColor = typeof ButtonColorUtil.text[number]\n\n/**\n * The different sizes for a button\n */\ntype ButtonSizes = 'small' | 'medium' | 'large'\n\n/**\n * The shard properties between all button types\n */\nexport type ButtonProps = PropsWithChildren<{\n /**\n * @default 'medium'\n */\n size?: ButtonSizes,\n}> & ButtonHTMLAttributes<Element>\n\nconst paddingMapping: Record<ButtonSizes, string> = {\n small: 'btn-sm',\n medium: 'btn-md',\n large: 'btn-lg'\n}\n\nconst iconPaddingMapping: Record<ButtonSizes, string> = {\n small: 'icon-btn-sm',\n medium: 'icon-btn-md',\n large: 'icon-btn-lg'\n}\n\nexport const ButtonUtil = {\n paddingMapping,\n iconPaddingMapping\n}\n\ntype ButtonWithIconsProps = ButtonProps & {\n startIcon?: ReactNode,\n endIcon?: ReactNode,\n}\n\nexport type SolidButtonProps = ButtonWithIconsProps & {\n color?: SolidButtonColor,\n}\n\nexport type OutlineButtonProps = ButtonWithIconsProps & {\n color?: OutlineButtonColor,\n}\n\nexport type TextButtonProps = ButtonWithIconsProps & {\n color?: TextButtonColor,\n}\n\nexport type IconButtonProps = ButtonProps & {\n color?: SolidButtonColor,\n}\n\n/**\n * A button with a solid background and different sizes\n */\nconst SolidButton = ({\n children,\n disabled = false,\n color = 'primary',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }: SolidButtonProps) => {\n const colorClasses = {\n primary: 'bg-button-solid-primary-background text-button-solid-primary-text',\n secondary: 'bg-button-solid-secondary-background text-button-solid-secondary-text',\n tertiary: 'bg-button-solid-tertiary-background text-button-solid-tertiary-text',\n positive: 'bg-button-solid-positive-background text-button-solid-positive-text',\n warning: 'bg-button-solid-warning-background text-button-solid-warning-text',\n negative: 'bg-button-solid-negative-background text-button-solid-negative-text',\n neutral: 'bg-button-solid-neutral-background text-button-solid-neutral-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'text-button-solid-primary-icon',\n secondary: 'text-button-solid-secondary-icon',\n tertiary: 'text-button-solid-tertiary-icon',\n positive: 'text-button-solid-positive-icon',\n warning: 'text-button-solid-warning-icon',\n negative: 'text-button-solid-negative-icon',\n neutral: 'text-button-solid-neutral-icon',\n }[color]\n\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text bg-disabled-background cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:brightness-90')]: !disabled\n },\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {endIcon}\n </span>\n )}\n </button>\n )\n}\n\n/**\n * A button with an outline border and different sizes\n */\nconst OutlineButton = ({\n children,\n disabled = false,\n color = 'primary',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }: OutlineButtonProps) => {\n const colorClasses = {\n primary: 'bg-transparent border-2 border-button-outline-primary-text text-button-outline-primary-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'text-button-outline-primary-icon',\n }[color]\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text border-disabled-outline cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:brightness-80')]: !disabled,\n },\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {endIcon}\n </span>\n )}\n </button>\n )\n}\n\n/**\n * A text that is a button that can have different sizes\n */\nconst TextButton = ({\n children,\n disabled = false,\n color = 'neutral',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }: TextButtonProps) => {\n const colorClasses = {\n primary: 'bg-transparent text-button-text-primary-text',\n negative: 'bg-transparent text-button-text-negative-text',\n neutral: 'bg-transparent text-button-text-neutral-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'text-button-text-primary-icon',\n negative: 'text-button-text-negative-icon',\n neutral: 'text-button-text-neutral-icon',\n }[color]\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:bg-button-text-hover-background rounded-full')]: !disabled,\n },\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {endIcon}\n </span>\n )}\n </button>\n )\n}\n\n\n/**\n * A button for icons with a solid background and different sizes\n */\nconst IconButton = ({\n children,\n disabled = false,\n color = 'primary',\n size = 'medium',\n onClick,\n className,\n ...restProps\n }: IconButtonProps) => {\n const colorClasses = {\n primary: 'bg-button-solid-primary-background text-button-solid-primary-text',\n secondary: 'bg-button-solid-secondary-background text-button-solid-secondary-text',\n tertiary: 'bg-button-solid-tertiary-background text-button-solid-tertiary-text',\n positive: 'bg-button-solid-positive-background text-button-solid-positive-text',\n warning: 'bg-button-solid-warning-background text-button-solid-warning-text',\n negative: 'bg-button-solid-negative-background text-button-solid-negative-text',\n neutral: 'bg-button-solid-neutral-background text-button-solid-neutral-text',\n }[color]\n\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text bg-disabled-background cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:brightness-90')]: !disabled\n },\n ButtonUtil.iconPaddingMapping[size],\n className\n )}\n {...restProps}\n >\n {children}\n </button>\n )\n}\n\nexport { SolidButton, OutlineButton, TextButton, IconButton }\n","import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport { useLocalStorage } from '@/hooks/useLocalStorage'\nimport type { Language } from './util'\nimport { LanguageUtil } from './util'\n\nexport type LanguageContextValue = {\n language: Language,\n setLanguage: Dispatch<SetStateAction<Language>>,\n}\n\nexport const LanguageContext = createContext<LanguageContextValue>({\n language: LanguageUtil.DEFAULT_LANGUAGE,\n setLanguage: (v) => v\n})\n\nexport const useLanguage = () => useContext(LanguageContext)\n\nexport const useLocale = (overWriteLanguage?: Language) => {\n const { language } = useLanguage()\n const mapping: Record<Language, string> = {\n en: 'en-US',\n de: 'de-DE'\n }\n return mapping[overWriteLanguage ?? language]\n}\n\ntype LanguageProviderProps = {\n initialLanguage?: Language,\n}\n\nexport const LanguageProvider = ({ initialLanguage, children }: PropsWithChildren<LanguageProviderProps>) => {\n const [language, setLanguage] = useState<Language>(initialLanguage ?? LanguageUtil.DEFAULT_LANGUAGE)\n const [storedLanguage, setStoredLanguage] = useLocalStorage<Language>('language', initialLanguage ?? LanguageUtil.DEFAULT_LANGUAGE)\n\n useEffect(() => {\n if (language !== initialLanguage && initialLanguage) {\n console.warn('LanguageProvider initial state changed: Prefer using languageProvider\\'s setLanguage instead')\n setLanguage(initialLanguage)\n }\n }, [initialLanguage]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // TODO set locale of html tag here as well\n setStoredLanguage(language)\n }, [language, setStoredLanguage])\n\n useEffect(() => {\n if (storedLanguage !== null) {\n setLanguage(storedLanguage)\n return\n }\n\n const LanguageToTestAgainst = Object.values(LanguageUtil.languages)\n\n const matchingBrowserLanguage = window.navigator.languages\n .map(language => LanguageToTestAgainst.find((test) => language === test || language.split('-')[0] === test))\n .filter(entry => entry !== undefined)\n\n if (matchingBrowserLanguage.length === 0) return\n\n const firstMatch = matchingBrowserLanguage[0] as Language\n setLanguage(firstMatch)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <LanguageContext.Provider value={{\n language,\n setLanguage\n }}>\n {children}\n </LanguageContext.Provider>\n )\n}","import type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { LocalStorageService } from '../util/storage'\n\ntype SetValue<T> = Dispatch<SetStateAction<T>>\nexport const useLocalStorage = <T>(key: string, initValue: T): [T, SetValue<T>] => {\n const get = useCallback((): T => {\n if (typeof window === 'undefined') {\n return initValue\n }\n const storageService = new LocalStorageService()\n const value = storageService.get<T>(key)\n return value || initValue\n }, [initValue, key])\n\n const [storedValue, setStoredValue] = useState<T>(get)\n\n const setValue: SetValue<T> = useCallback(value => {\n const newValue = value instanceof Function ? value(storedValue) : value\n const storageService = new LocalStorageService()\n storageService.set(key, value)\n\n setStoredValue(newValue)\n }, [storedValue, setStoredValue, key])\n\n useEffect(() => {\n setStoredValue(get())\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return [storedValue, setValue]\n}","/**\n * The supported languages\n */\nconst languages = ['en', 'de'] as const\n\n/**\n * The supported languages\n */\nexport type Language = typeof languages[number]\n\n/**\n * The supported languages' names in their respective language\n */\nconst languagesLocalNames: Record<Language, string> = {\n en: 'English',\n de: 'Deutsch',\n}\n\n/**\n * The default language\n */\nconst DEFAULT_LANGUAGE: Language = 'en'\n\n/**\n * A constant definition for holding data regarding languages\n */\nexport const LanguageUtil = {\n languages,\n DEFAULT_LANGUAGE,\n languagesLocalNames,\n}","import { useLanguage } from './LanguageProvider'\nimport type { Language } from './util'\n\nexport type Translation<T> = Record<Language, T>\n\ntype OverwriteTranslationType<Translation extends Record<string, unknown>> = {\n language?: Language,\n translation?: Partial<Record<Language, Partial<Translation>>>,\n}\n\n/**\n * Adds the `language` prop to the component props.\n *\n * @param Translation the type of the translation object\n *\n * @param Props the type of the component props, defaults to `Record<string, never>`,\n * if you don't expect any other props other than `language` and get an\n * error when using your component (because it uses `forwardRef` etc.)\n * you can try out `Record<string, unknown>`, this might resolve your\n * problem as `SomeType & never` is still `never` but `SomeType & unknown`\n * is `SomeType` which means that adding back props (like `ref` etc.)\n * works properly\n */\nexport type PropsForTranslation<\n Translation extends Record<string, unknown>,\n Props = Record<string, never>\n> = Props & {\n overwriteTranslation?: OverwriteTranslationType<Translation>,\n};\n\nexport const useTranslation = <Translation extends Record<string, unknown>>(\n defaults: Record<Language, Translation>,\n translationOverwrite: OverwriteTranslationType<Translation> = {}\n): Translation => {\n const { language: languageProp, translation: overwrite } = translationOverwrite\n const { language: inferredLanguage } = useLanguage()\n const usedLanguage = languageProp ?? inferredLanguage\n let defaultValues: Translation = defaults[usedLanguage]\n if (overwrite && overwrite[usedLanguage]) {\n defaultValues = { ...defaultValues, ...overwrite[usedLanguage] }\n }\n return defaultValues\n}\n"],"mappings":"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","names":["import_clsx","clsx","import_react","import_jsx_runtime","import_jsx_runtime","clsx"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/properties/PropertyBase.tsx","../../../src/components/user-action/Button.tsx","../../../src/localization/LanguageProvider.tsx","../../../src/hooks/useLocalStorage.ts","../../../src/localization/util.ts","../../../src/localization/useTranslation.ts"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { AlertTriangle } from 'lucide-react'\nimport clsx from 'clsx'\nimport type { Language } from '../../localization/util'\nimport { TextButton } from '../user-action/Button'\nimport type { PropsForTranslation } from '../../localization/useTranslation'\nimport { useTranslation } from '../../localization/useTranslation'\n\ntype PropertyBaseTranslation = {\n remove: string,\n}\n\nconst defaultPropertyBaseTranslation: Record<Language, PropertyBaseTranslation> = {\n en: {\n remove: 'Remove'\n },\n de: {\n remove: 'Entfernen'\n }\n}\n\nexport type PropertyBaseProps = {\n name: string,\n input: (props: { softRequired: boolean, hasValue: boolean }) => ReactNode,\n onRemove?: () => void,\n hasValue: boolean,\n softRequired?: boolean,\n readOnly?: boolean,\n icon?: ReactNode,\n className?: string,\n}\n\n/**\n * A component for showing a properties with uniform styling\n */\nexport const PropertyBase = ({\n overwriteTranslation,\n name,\n input,\n softRequired = false,\n hasValue,\n icon,\n readOnly,\n onRemove,\n className = '',\n }: PropsForTranslation<PropertyBaseTranslation, PropertyBaseProps>) => {\n const translation = useTranslation(defaultPropertyBaseTranslation, overwriteTranslation)\n const requiredAndNoValue = softRequired && !hasValue\n return (\n <div className={clsx('row gap-x-0 group', className)}>\n <div\n className={\n clsx('row gap-x-2 !w-[200px] px-4 py-2 items-center rounded-l-xl border-2 border-r-0', {\n 'bg-gray-100 text-black group-hover:border-primary border-gray-400': !requiredAndNoValue,\n 'bg-warning text-surface-warning group-hover:border-warning border-warning/90': requiredAndNoValue,\n }, className)}\n >\n {icon}\n {name}\n </div>\n <div className={\n clsx('row grow justify-between items-center rounded-r-xl border-2 border-l-0', {\n 'bg-white group-hover:border-primary border-gray-400': !requiredAndNoValue,\n 'bg-surface-warning group-hover:border-warning border-warning/90': requiredAndNoValue,\n }, className)}\n >\n {input({ softRequired, hasValue })}\n {requiredAndNoValue && (\n <div className=\"text-warning pr-4\"><AlertTriangle size={24}/></div>\n )}\n {onRemove && (\n <TextButton\n onClick={onRemove}\n color=\"negative\"\n className={clsx('pr-4 items-center', { '!text-transparent': !hasValue || readOnly })}\n disabled={!hasValue || readOnly}\n >\n {translation.remove}\n </TextButton>\n )}\n </div>\n </div>\n )\n}\n","import type { ButtonHTMLAttributes, PropsWithChildren, ReactNode } from 'react'\nimport clsx from 'clsx'\n\n\nexport const ButtonColorUtil = {\n solid: ['primary', 'secondary', 'tertiary', 'positive', 'warning', 'negative', 'neutral'] as const,\n text: ['primary', 'negative', 'neutral'] as const,\n outline: ['primary'] as const,\n}\n\n\n/**\n * The allowed colors for the SolidButton and IconButton\n */\nexport type SolidButtonColor = typeof ButtonColorUtil.solid[number]\n/**\n * The allowed colors for the OutlineButton\n */\nexport type OutlineButtonColor = typeof ButtonColorUtil.outline[number]\n/**\n * The allowed colors for the TextButton\n */\nexport type TextButtonColor = typeof ButtonColorUtil.text[number]\n\n/**\n * The different sizes for a button\n */\ntype ButtonSizes = 'small' | 'medium' | 'large'\n\n/**\n * The shard properties between all button types\n */\nexport type ButtonProps = PropsWithChildren<{\n /**\n * @default 'medium'\n */\n size?: ButtonSizes,\n}> & ButtonHTMLAttributes<Element>\n\nconst paddingMapping: Record<ButtonSizes, string> = {\n small: 'btn-sm',\n medium: 'btn-md',\n large: 'btn-lg'\n}\n\nconst iconPaddingMapping: Record<ButtonSizes, string> = {\n small: 'icon-btn-sm',\n medium: 'icon-btn-md',\n large: 'icon-btn-lg'\n}\n\nexport const ButtonUtil = {\n paddingMapping,\n iconPaddingMapping\n}\n\ntype ButtonWithIconsProps = ButtonProps & {\n startIcon?: ReactNode,\n endIcon?: ReactNode,\n}\n\nexport type SolidButtonProps = ButtonWithIconsProps & {\n color?: SolidButtonColor,\n}\n\nexport type OutlineButtonProps = ButtonWithIconsProps & {\n color?: OutlineButtonColor,\n}\n\nexport type TextButtonProps = ButtonWithIconsProps & {\n color?: TextButtonColor,\n}\n\nexport type IconButtonProps = ButtonProps & {\n color?: SolidButtonColor,\n}\n\n/**\n * A button with a solid background and different sizes\n */\nconst SolidButton = ({\n children,\n disabled = false,\n color = 'primary',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }: SolidButtonProps) => {\n const colorClasses = {\n primary: 'bg-button-solid-primary-background text-button-solid-primary-text',\n secondary: 'bg-button-solid-secondary-background text-button-solid-secondary-text',\n tertiary: 'bg-button-solid-tertiary-background text-button-solid-tertiary-text',\n positive: 'bg-button-solid-positive-background text-button-solid-positive-text',\n warning: 'bg-button-solid-warning-background text-button-solid-warning-text',\n negative: 'bg-button-solid-negative-background text-button-solid-negative-text',\n neutral: 'bg-button-solid-neutral-background text-button-solid-neutral-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'text-button-solid-primary-icon',\n secondary: 'text-button-solid-secondary-icon',\n tertiary: 'text-button-solid-tertiary-icon',\n positive: 'text-button-solid-positive-icon',\n warning: 'text-button-solid-warning-icon',\n negative: 'text-button-solid-negative-icon',\n neutral: 'text-button-solid-neutral-icon',\n }[color]\n\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text bg-disabled-background cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:brightness-90')]: !disabled\n },\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {endIcon}\n </span>\n )}\n </button>\n )\n}\n\n/**\n * A button with an outline border and different sizes\n */\nconst OutlineButton = ({\n children,\n disabled = false,\n color = 'primary',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }: OutlineButtonProps) => {\n const colorClasses = {\n primary: 'bg-transparent border-2 border-button-outline-primary-text text-button-outline-primary-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'text-button-outline-primary-icon',\n }[color]\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text border-disabled-outline cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:brightness-80')]: !disabled,\n },\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {endIcon}\n </span>\n )}\n </button>\n )\n}\n\n/**\n * A text that is a button that can have different sizes\n */\nconst TextButton = ({\n children,\n disabled = false,\n color = 'neutral',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }: TextButtonProps) => {\n const colorClasses = {\n primary: 'bg-transparent text-button-text-primary-text',\n negative: 'bg-transparent text-button-text-negative-text',\n neutral: 'bg-transparent text-button-text-neutral-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'text-button-text-primary-icon',\n negative: 'text-button-text-negative-icon',\n neutral: 'text-button-text-neutral-icon',\n }[color]\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:bg-button-text-hover-background rounded-full')]: !disabled,\n },\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx({\n [iconColorClasses]: !disabled,\n [`text-disabled-icon`]: disabled\n })}\n >\n {endIcon}\n </span>\n )}\n </button>\n )\n}\n\n\n/**\n * A button for icons with a solid background and different sizes\n */\nconst IconButton = ({\n children,\n disabled = false,\n color = 'primary',\n size = 'medium',\n onClick,\n className,\n ...restProps\n }: IconButtonProps) => {\n const colorClasses = {\n primary: 'bg-button-solid-primary-background text-button-solid-primary-text',\n secondary: 'bg-button-solid-secondary-background text-button-solid-secondary-text',\n tertiary: 'bg-button-solid-tertiary-background text-button-solid-tertiary-text',\n positive: 'bg-button-solid-positive-background text-button-solid-positive-text',\n warning: 'bg-button-solid-warning-background text-button-solid-warning-text',\n negative: 'bg-button-solid-negative-background text-button-solid-negative-text',\n neutral: 'bg-button-solid-neutral-background text-button-solid-neutral-text',\n }[color]\n\n return (\n <button\n onClick={disabled ? undefined : onClick}\n disabled={disabled || onClick === undefined}\n className={clsx(\n {\n 'text-disabled-text bg-disabled-background cursor-not-allowed': disabled,\n [clsx(colorClasses, 'hover:brightness-90')]: !disabled\n },\n ButtonUtil.iconPaddingMapping[size],\n className\n )}\n {...restProps}\n >\n {children}\n </button>\n )\n}\n\nexport { SolidButton, OutlineButton, TextButton, IconButton }\n","import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport { useLocalStorage } from '../hooks/useLocalStorage'\nimport type { Language } from './util'\nimport { LanguageUtil } from './util'\n\nexport type LanguageContextValue = {\n language: Language,\n setLanguage: Dispatch<SetStateAction<Language>>,\n}\n\nexport const LanguageContext = createContext<LanguageContextValue>({\n language: LanguageUtil.DEFAULT_LANGUAGE,\n setLanguage: (v) => v\n})\n\nexport const useLanguage = () => useContext(LanguageContext)\n\nexport const useLocale = (overWriteLanguage?: Language) => {\n const { language } = useLanguage()\n const mapping: Record<Language, string> = {\n en: 'en-US',\n de: 'de-DE'\n }\n return mapping[overWriteLanguage ?? language]\n}\n\ntype LanguageProviderProps = {\n initialLanguage?: Language,\n}\n\nexport const LanguageProvider = ({ initialLanguage, children }: PropsWithChildren<LanguageProviderProps>) => {\n const [language, setLanguage] = useState<Language>(initialLanguage ?? LanguageUtil.DEFAULT_LANGUAGE)\n const [storedLanguage, setStoredLanguage] = useLocalStorage<Language>('language', initialLanguage ?? LanguageUtil.DEFAULT_LANGUAGE)\n\n useEffect(() => {\n if (language !== initialLanguage && initialLanguage) {\n console.warn('LanguageProvider initial state changed: Prefer using languageProvider\\'s setLanguage instead')\n setLanguage(initialLanguage)\n }\n }, [initialLanguage]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // TODO set locale of html tag here as well\n setStoredLanguage(language)\n }, [language, setStoredLanguage])\n\n useEffect(() => {\n if (storedLanguage !== null) {\n setLanguage(storedLanguage)\n return\n }\n\n const LanguageToTestAgainst = Object.values(LanguageUtil.languages)\n\n const matchingBrowserLanguage = window.navigator.languages\n .map(language => LanguageToTestAgainst.find((test) => language === test || language.split('-')[0] === test))\n .filter(entry => entry !== undefined)\n\n if (matchingBrowserLanguage.length === 0) return\n\n const firstMatch = matchingBrowserLanguage[0] as Language\n setLanguage(firstMatch)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <LanguageContext.Provider value={{\n language,\n setLanguage\n }}>\n {children}\n </LanguageContext.Provider>\n )\n}","import type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { LocalStorageService } from '../util/storage'\n\ntype SetValue<T> = Dispatch<SetStateAction<T>>\nexport const useLocalStorage = <T>(key: string, initValue: T): [T, SetValue<T>] => {\n const get = useCallback((): T => {\n if (typeof window === 'undefined') {\n return initValue\n }\n const storageService = new LocalStorageService()\n const value = storageService.get<T>(key)\n return value || initValue\n }, [initValue, key])\n\n const [storedValue, setStoredValue] = useState<T>(get)\n\n const setValue: SetValue<T> = useCallback(value => {\n const newValue = value instanceof Function ? value(storedValue) : value\n const storageService = new LocalStorageService()\n storageService.set(key, value)\n\n setStoredValue(newValue)\n }, [storedValue, setStoredValue, key])\n\n useEffect(() => {\n setStoredValue(get())\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return [storedValue, setValue]\n}","/**\n * The supported languages\n */\nconst languages = ['en', 'de'] as const\n\n/**\n * The supported languages\n */\nexport type Language = typeof languages[number]\n\n/**\n * The supported languages' names in their respective language\n */\nconst languagesLocalNames: Record<Language, string> = {\n en: 'English',\n de: 'Deutsch',\n}\n\n/**\n * The default language\n */\nconst DEFAULT_LANGUAGE: Language = 'en'\n\n/**\n * A constant definition for holding data regarding languages\n */\nexport const LanguageUtil = {\n languages,\n DEFAULT_LANGUAGE,\n languagesLocalNames,\n}","import { useLanguage } from './LanguageProvider'\nimport type { Language } from './util'\n\nexport type Translation<T> = Record<Language, T>\n\ntype OverwriteTranslationType<Translation extends Record<string, unknown>> = {\n language?: Language,\n translation?: Partial<Record<Language, Partial<Translation>>>,\n}\n\n/**\n * Adds the `language` prop to the component props.\n *\n * @param Translation the type of the translation object\n *\n * @param Props the type of the component props, defaults to `Record<string, never>`,\n * if you don't expect any other props other than `language` and get an\n * error when using your component (because it uses `forwardRef` etc.)\n * you can try out `Record<string, unknown>`, this might resolve your\n * problem as `SomeType & never` is still `never` but `SomeType & unknown`\n * is `SomeType` which means that adding back props (like `ref` etc.)\n * works properly\n */\nexport type PropsForTranslation<\n Translation extends Record<string, unknown>,\n Props = Record<string, never>\n> = Props & {\n overwriteTranslation?: OverwriteTranslationType<Translation>,\n};\n\nexport const useTranslation = <Translation extends Record<string, unknown>>(\n defaults: Record<Language, Translation>,\n translationOverwrite: OverwriteTranslationType<Translation> = {}\n): Translation => {\n const { language: languageProp, translation: overwrite } = translationOverwrite\n const { language: inferredLanguage } = useLanguage()\n const usedLanguage = languageProp ?? inferredLanguage\n let defaultValues: Translation = defaults[usedLanguage]\n if (overwrite && overwrite[usedLanguage]) {\n defaultValues = { ...defaultValues, ...overwrite[usedLanguage] }\n }\n return defaultValues\n}\n"],"mappings":"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","names":["clsx","useEffect","useState","jsx","jsx","jsxs","clsx"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { PropsForTranslation } from '../../localization/useTranslation.
|
|
3
|
-
import { SearchableSelectProps } from '../user-action/Select.
|
|
4
|
-
import { PropertyBaseProps } from './PropertyBase.
|
|
5
|
-
import '../../localization/util.
|
|
2
|
+
import { PropsForTranslation } from '../../localization/useTranslation.mjs';
|
|
3
|
+
import { SearchableSelectProps } from '../user-action/Select.mjs';
|
|
4
|
+
import { PropertyBaseProps } from './PropertyBase.mjs';
|
|
5
|
+
import '../../localization/util.mjs';
|
|
6
6
|
import 'react';
|
|
7
|
-
import '../user-action/Label.
|
|
7
|
+
import '../user-action/Label.mjs';
|
|
8
8
|
|
|
9
9
|
type SingleSelectPropertyTranslation = {
|
|
10
10
|
select: string;
|
|
@@ -1,12 +1,45 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
1
29
|
// src/components/properties/SelectProperty.tsx
|
|
2
|
-
|
|
3
|
-
|
|
30
|
+
var SelectProperty_exports = {};
|
|
31
|
+
__export(SelectProperty_exports, {
|
|
32
|
+
SingleSelectProperty: () => SingleSelectProperty
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(SelectProperty_exports);
|
|
35
|
+
var import_lucide_react3 = require("lucide-react");
|
|
36
|
+
var import_clsx6 = __toESM(require("clsx"));
|
|
4
37
|
|
|
5
38
|
// src/localization/LanguageProvider.tsx
|
|
6
|
-
|
|
39
|
+
var import_react2 = require("react");
|
|
7
40
|
|
|
8
41
|
// src/hooks/useLocalStorage.ts
|
|
9
|
-
|
|
42
|
+
var import_react = require("react");
|
|
10
43
|
|
|
11
44
|
// src/localization/util.ts
|
|
12
45
|
var languages = ["en", "de"];
|
|
@@ -22,12 +55,12 @@ var LanguageUtil = {
|
|
|
22
55
|
};
|
|
23
56
|
|
|
24
57
|
// src/localization/LanguageProvider.tsx
|
|
25
|
-
|
|
26
|
-
var LanguageContext = createContext({
|
|
58
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
59
|
+
var LanguageContext = (0, import_react2.createContext)({
|
|
27
60
|
language: LanguageUtil.DEFAULT_LANGUAGE,
|
|
28
61
|
setLanguage: (v) => v
|
|
29
62
|
});
|
|
30
|
-
var useLanguage = () => useContext(LanguageContext);
|
|
63
|
+
var useLanguage = () => (0, import_react2.useContext)(LanguageContext);
|
|
31
64
|
|
|
32
65
|
// src/localization/useTranslation.ts
|
|
33
66
|
var useTranslation = (defaults, translationOverwrite = {}) => {
|
|
@@ -42,14 +75,14 @@ var useTranslation = (defaults, translationOverwrite = {}) => {
|
|
|
42
75
|
};
|
|
43
76
|
|
|
44
77
|
// src/components/user-action/Select.tsx
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
78
|
+
var import_react5 = require("@headlessui/react");
|
|
79
|
+
var import_lucide_react = require("lucide-react");
|
|
80
|
+
var import_react6 = require("react");
|
|
81
|
+
var import_clsx3 = __toESM(require("clsx"));
|
|
49
82
|
|
|
50
83
|
// src/components/user-action/Label.tsx
|
|
51
|
-
|
|
52
|
-
|
|
84
|
+
var import_clsx = __toESM(require("clsx"));
|
|
85
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
53
86
|
var styleMapping = {
|
|
54
87
|
labelSmall: "textstyle-label-sm",
|
|
55
88
|
labelMedium: "textstyle-label-md",
|
|
@@ -62,7 +95,7 @@ var Label = ({
|
|
|
62
95
|
className,
|
|
63
96
|
...props
|
|
64
97
|
}) => {
|
|
65
|
-
return /* @__PURE__ */
|
|
98
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { ...props, className: (0, import_clsx.default)(styleMapping[labelType], className), children: children ? children : name });
|
|
66
99
|
};
|
|
67
100
|
|
|
68
101
|
// src/util/simpleSearch.ts
|
|
@@ -74,14 +107,14 @@ var MultiSearchWithMapping = (search, objects, mapping) => {
|
|
|
74
107
|
};
|
|
75
108
|
|
|
76
109
|
// src/components/user-action/Input.tsx
|
|
77
|
-
|
|
78
|
-
|
|
110
|
+
var import_react4 = require("react");
|
|
111
|
+
var import_clsx2 = __toESM(require("clsx"));
|
|
79
112
|
|
|
80
113
|
// src/hooks/useSaveDelay.ts
|
|
81
|
-
|
|
114
|
+
var import_react3 = require("react");
|
|
82
115
|
function useSaveDelay(setNotificationStatus, delay) {
|
|
83
|
-
const [updateTimer, setUpdateTimer] =
|
|
84
|
-
const [notificationTimer, setNotificationTimer] =
|
|
116
|
+
const [updateTimer, setUpdateTimer] = (0, import_react3.useState)(void 0);
|
|
117
|
+
const [notificationTimer, setNotificationTimer] = (0, import_react3.useState)(void 0);
|
|
85
118
|
const restartTimer = (onSave) => {
|
|
86
119
|
clearTimeout(updateTimer);
|
|
87
120
|
setUpdateTimer(setTimeout(() => {
|
|
@@ -108,7 +141,7 @@ function useSaveDelay(setNotificationStatus, delay) {
|
|
|
108
141
|
setNotificationStatus(false);
|
|
109
142
|
}
|
|
110
143
|
};
|
|
111
|
-
|
|
144
|
+
(0, import_react3.useEffect)(() => {
|
|
112
145
|
return () => {
|
|
113
146
|
clearTimeout(updateTimer);
|
|
114
147
|
clearTimeout(notificationTimer);
|
|
@@ -121,7 +154,7 @@ function useSaveDelay(setNotificationStatus, delay) {
|
|
|
121
154
|
var noop = () => void 0;
|
|
122
155
|
|
|
123
156
|
// src/components/user-action/Input.tsx
|
|
124
|
-
|
|
157
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
125
158
|
var Input = ({
|
|
126
159
|
id,
|
|
127
160
|
type = "text",
|
|
@@ -141,15 +174,15 @@ var Input = ({
|
|
|
141
174
|
restartTimer,
|
|
142
175
|
clearUpdateTimer
|
|
143
176
|
} = useSaveDelay(() => void 0, 3e3);
|
|
144
|
-
const ref = useRef(null);
|
|
145
|
-
|
|
177
|
+
const ref = (0, import_react4.useRef)(null);
|
|
178
|
+
(0, import_react4.useEffect)(() => {
|
|
146
179
|
if (autoFocus) {
|
|
147
180
|
ref.current?.focus();
|
|
148
181
|
}
|
|
149
182
|
}, [autoFocus]);
|
|
150
|
-
return /* @__PURE__ */ jsxs("div", { className:
|
|
151
|
-
label && /* @__PURE__ */
|
|
152
|
-
/* @__PURE__ */
|
|
183
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx2.default)({ "w-full": expanded }, containerClassName), children: [
|
|
184
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Label, { ...label, htmlFor: id, className: (0, import_clsx2.default)("mb-1", label.className) }),
|
|
185
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
153
186
|
"input",
|
|
154
187
|
{
|
|
155
188
|
ref,
|
|
@@ -182,7 +215,7 @@ var Input = ({
|
|
|
182
215
|
)
|
|
183
216
|
] });
|
|
184
217
|
};
|
|
185
|
-
var FormInput = forwardRef(function FormInput2({
|
|
218
|
+
var FormInput = (0, import_react4.forwardRef)(function FormInput2({
|
|
186
219
|
id,
|
|
187
220
|
labelText,
|
|
188
221
|
errorText,
|
|
@@ -193,13 +226,13 @@ var FormInput = forwardRef(function FormInput2({
|
|
|
193
226
|
required,
|
|
194
227
|
...restProps
|
|
195
228
|
}, ref) {
|
|
196
|
-
const input = /* @__PURE__ */
|
|
229
|
+
const input = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
197
230
|
"input",
|
|
198
231
|
{
|
|
199
232
|
ref,
|
|
200
233
|
id,
|
|
201
234
|
...restProps,
|
|
202
|
-
className:
|
|
235
|
+
className: (0, import_clsx2.default)(
|
|
203
236
|
{
|
|
204
237
|
"focus:border-primary focus:ring-primary": !errorText,
|
|
205
238
|
"focus:border-negative focus:ring-negative text-negative": !!errorText
|
|
@@ -208,18 +241,18 @@ var FormInput = forwardRef(function FormInput2({
|
|
|
208
241
|
)
|
|
209
242
|
}
|
|
210
243
|
);
|
|
211
|
-
return /* @__PURE__ */ jsxs("div", { className:
|
|
212
|
-
labelText && /* @__PURE__ */ jsxs("label", { htmlFor: id, className:
|
|
244
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx2.default)("flex flex-col gap-y-1", containerClassName), children: [
|
|
245
|
+
labelText && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("label", { htmlFor: id, className: (0, import_clsx2.default)("textstyle-label-md", labelClassName), children: [
|
|
213
246
|
labelText,
|
|
214
|
-
required && /* @__PURE__ */
|
|
247
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "text-primary font-bold", children: "*" })
|
|
215
248
|
] }),
|
|
216
249
|
input,
|
|
217
|
-
errorText && /* @__PURE__ */
|
|
250
|
+
errorText && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("label", { htmlFor: id, className: (0, import_clsx2.default)("text-negative", errorClassName), children: errorText })
|
|
218
251
|
] });
|
|
219
252
|
});
|
|
220
253
|
|
|
221
254
|
// src/components/user-action/Select.tsx
|
|
222
|
-
|
|
255
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
223
256
|
var Select = ({
|
|
224
257
|
value,
|
|
225
258
|
label,
|
|
@@ -244,13 +277,13 @@ var Select = ({
|
|
|
244
277
|
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");
|
|
245
278
|
}
|
|
246
279
|
const borderColor = "border-menu-border";
|
|
247
|
-
return /* @__PURE__ */
|
|
248
|
-
label && /* @__PURE__ */
|
|
249
|
-
/* @__PURE__ */
|
|
250
|
-
/* @__PURE__ */
|
|
251
|
-
Menu.Button,
|
|
280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_clsx3.default)(className), children: [
|
|
281
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Label, { ...label, labelType: label.labelType ?? "labelBig", className: (0, import_clsx3.default)("mb-1", label.className) }),
|
|
282
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react5.Menu, { as: "div", className: "relative text-menu-text", children: ({ open }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
283
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
284
|
+
import_react5.Menu.Button,
|
|
252
285
|
{
|
|
253
|
-
className:
|
|
286
|
+
className: (0, import_clsx3.default)(
|
|
254
287
|
"inline-flex w-full justify-between items-center rounded-t-lg border-2 px-4 py-2 font-medium bg-menu-background text-menu-text",
|
|
255
288
|
textColor,
|
|
256
289
|
borderColor,
|
|
@@ -262,30 +295,30 @@ var Select = ({
|
|
|
262
295
|
),
|
|
263
296
|
disabled: isDisabled,
|
|
264
297
|
children: [
|
|
265
|
-
/* @__PURE__ */
|
|
266
|
-
open ? /* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: selectedDisplayOverwrite ?? selectedOption?.label ?? hintText }),
|
|
299
|
+
open ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.ChevronUp, {}) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.ChevronDown, {})
|
|
267
300
|
]
|
|
268
301
|
}
|
|
269
302
|
),
|
|
270
|
-
/* @__PURE__ */
|
|
271
|
-
Menu.Items,
|
|
303
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
304
|
+
import_react5.Menu.Items,
|
|
272
305
|
{
|
|
273
306
|
className: "absolute w-full z-10 rounded-b-lg bg-menu-background text-menu-text shadow-lg max-h-[500px] overflow-y-auto",
|
|
274
307
|
children: [
|
|
275
|
-
(additionalItems ?? []).map((item, index) => /* @__PURE__ */
|
|
308
|
+
(additionalItems ?? []).map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
276
309
|
"div",
|
|
277
310
|
{
|
|
278
|
-
className:
|
|
311
|
+
className: (0, import_clsx3.default)(borderColor, "px-4 py-2 overflow-hidden whitespace-nowrap text-ellipsis border-2 border-t-0", {
|
|
279
312
|
"border-b-0 rounded-b-lg": filteredOptions.length === 0 && index === (additionalItems?.length ?? 1) - 1
|
|
280
313
|
}),
|
|
281
314
|
children: item
|
|
282
315
|
},
|
|
283
316
|
`additionalItems${index}`
|
|
284
317
|
)),
|
|
285
|
-
filteredOptions.map((option, index) => /* @__PURE__ */
|
|
318
|
+
filteredOptions.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react5.Menu.Item, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
286
319
|
"div",
|
|
287
320
|
{
|
|
288
|
-
className:
|
|
321
|
+
className: (0, import_clsx3.default)(
|
|
289
322
|
"px-4 py-2 overflow-hidden whitespace-nowrap text-ellipsis border-2 border-t-0 cursor-pointer",
|
|
290
323
|
option.className,
|
|
291
324
|
borderColor,
|
|
@@ -317,16 +350,16 @@ var SearchableSelect = ({
|
|
|
317
350
|
searchMapping,
|
|
318
351
|
...selectProps
|
|
319
352
|
}) => {
|
|
320
|
-
const [search, setSearch] =
|
|
353
|
+
const [search, setSearch] = (0, import_react6.useState)("");
|
|
321
354
|
const filteredOptions = MultiSearchWithMapping(search, options, searchMapping);
|
|
322
|
-
return /* @__PURE__ */
|
|
355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
323
356
|
Select,
|
|
324
357
|
{
|
|
325
358
|
value,
|
|
326
359
|
options: filteredOptions,
|
|
327
|
-
additionalItems: [/* @__PURE__ */
|
|
328
|
-
/* @__PURE__ */
|
|
329
|
-
/* @__PURE__ */
|
|
360
|
+
additionalItems: [/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "row gap-x-2 items-center", children: [
|
|
361
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Input, { autoFocus: true, value: search, onChangeText: setSearch }),
|
|
362
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.Search, {})
|
|
330
363
|
] }, "selectSearch")],
|
|
331
364
|
...selectProps
|
|
332
365
|
}
|
|
@@ -334,12 +367,12 @@ var SearchableSelect = ({
|
|
|
334
367
|
};
|
|
335
368
|
|
|
336
369
|
// src/components/properties/PropertyBase.tsx
|
|
337
|
-
|
|
338
|
-
|
|
370
|
+
var import_lucide_react2 = require("lucide-react");
|
|
371
|
+
var import_clsx5 = __toESM(require("clsx"));
|
|
339
372
|
|
|
340
373
|
// src/components/user-action/Button.tsx
|
|
341
|
-
|
|
342
|
-
|
|
374
|
+
var import_clsx4 = __toESM(require("clsx"));
|
|
375
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
343
376
|
var paddingMapping = {
|
|
344
377
|
small: "btn-sm",
|
|
345
378
|
medium: "btn-md",
|
|
@@ -375,25 +408,25 @@ var TextButton = ({
|
|
|
375
408
|
negative: "text-button-text-negative-icon",
|
|
376
409
|
neutral: "text-button-text-neutral-icon"
|
|
377
410
|
}[color];
|
|
378
|
-
return /* @__PURE__ */
|
|
411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
379
412
|
"button",
|
|
380
413
|
{
|
|
381
414
|
onClick: disabled ? void 0 : onClick,
|
|
382
415
|
disabled: disabled || onClick === void 0,
|
|
383
|
-
className:
|
|
416
|
+
className: (0, import_clsx4.default)(
|
|
384
417
|
{
|
|
385
418
|
"text-disabled-text cursor-not-allowed": disabled,
|
|
386
|
-
[
|
|
419
|
+
[(0, import_clsx4.default)(colorClasses, "hover:bg-button-text-hover-background rounded-full")]: !disabled
|
|
387
420
|
},
|
|
388
421
|
ButtonUtil.paddingMapping[size],
|
|
389
422
|
className
|
|
390
423
|
),
|
|
391
424
|
...restProps,
|
|
392
425
|
children: [
|
|
393
|
-
startIcon && /* @__PURE__ */
|
|
426
|
+
startIcon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
394
427
|
"span",
|
|
395
428
|
{
|
|
396
|
-
className:
|
|
429
|
+
className: (0, import_clsx4.default)({
|
|
397
430
|
[iconColorClasses]: !disabled,
|
|
398
431
|
[`text-disabled-icon`]: disabled
|
|
399
432
|
}),
|
|
@@ -401,10 +434,10 @@ var TextButton = ({
|
|
|
401
434
|
}
|
|
402
435
|
),
|
|
403
436
|
children,
|
|
404
|
-
endIcon && /* @__PURE__ */
|
|
437
|
+
endIcon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
405
438
|
"span",
|
|
406
439
|
{
|
|
407
|
-
className:
|
|
440
|
+
className: (0, import_clsx4.default)({
|
|
408
441
|
[iconColorClasses]: !disabled,
|
|
409
442
|
[`text-disabled-icon`]: disabled
|
|
410
443
|
}),
|
|
@@ -417,7 +450,7 @@ var TextButton = ({
|
|
|
417
450
|
};
|
|
418
451
|
|
|
419
452
|
// src/components/properties/PropertyBase.tsx
|
|
420
|
-
|
|
453
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
421
454
|
var defaultPropertyBaseTranslation = {
|
|
422
455
|
en: {
|
|
423
456
|
remove: "Remove"
|
|
@@ -439,11 +472,11 @@ var PropertyBase = ({
|
|
|
439
472
|
}) => {
|
|
440
473
|
const translation = useTranslation(defaultPropertyBaseTranslation, overwriteTranslation);
|
|
441
474
|
const requiredAndNoValue = softRequired && !hasValue;
|
|
442
|
-
return /* @__PURE__ */
|
|
443
|
-
/* @__PURE__ */
|
|
475
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: (0, import_clsx5.default)("row gap-x-0 group", className), children: [
|
|
476
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
444
477
|
"div",
|
|
445
478
|
{
|
|
446
|
-
className:
|
|
479
|
+
className: (0, import_clsx5.default)("row gap-x-2 !w-[200px] px-4 py-2 items-center rounded-l-xl border-2 border-r-0", {
|
|
447
480
|
"bg-gray-100 text-black group-hover:border-primary border-gray-400": !requiredAndNoValue,
|
|
448
481
|
"bg-warning text-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
|
|
449
482
|
}, className),
|
|
@@ -453,22 +486,22 @@ var PropertyBase = ({
|
|
|
453
486
|
]
|
|
454
487
|
}
|
|
455
488
|
),
|
|
456
|
-
/* @__PURE__ */
|
|
489
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
457
490
|
"div",
|
|
458
491
|
{
|
|
459
|
-
className:
|
|
492
|
+
className: (0, import_clsx5.default)("row grow justify-between items-center rounded-r-xl border-2 border-l-0", {
|
|
460
493
|
"bg-white group-hover:border-primary border-gray-400": !requiredAndNoValue,
|
|
461
494
|
"bg-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
|
|
462
495
|
}, className),
|
|
463
496
|
children: [
|
|
464
497
|
input({ softRequired, hasValue }),
|
|
465
|
-
requiredAndNoValue && /* @__PURE__ */
|
|
466
|
-
onRemove && /* @__PURE__ */
|
|
498
|
+
requiredAndNoValue && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "text-warning pr-4", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.AlertTriangle, { size: 24 }) }),
|
|
499
|
+
onRemove && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
467
500
|
TextButton,
|
|
468
501
|
{
|
|
469
502
|
onClick: onRemove,
|
|
470
503
|
color: "negative",
|
|
471
|
-
className:
|
|
504
|
+
className: (0, import_clsx5.default)("pr-4 items-center", { "!text-transparent": !hasValue || readOnly }),
|
|
472
505
|
disabled: !hasValue || readOnly,
|
|
473
506
|
children: translation.remove
|
|
474
507
|
}
|
|
@@ -480,7 +513,7 @@ var PropertyBase = ({
|
|
|
480
513
|
};
|
|
481
514
|
|
|
482
515
|
// src/components/properties/SelectProperty.tsx
|
|
483
|
-
|
|
516
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
484
517
|
var defaultSingleSelectPropertyTranslation = {
|
|
485
518
|
en: {
|
|
486
519
|
select: "Select"
|
|
@@ -501,7 +534,7 @@ var SingleSelectProperty = ({
|
|
|
501
534
|
}) => {
|
|
502
535
|
const translation = useTranslation(defaultSingleSelectPropertyTranslation, overwriteTranslation);
|
|
503
536
|
const hasValue = value !== void 0;
|
|
504
|
-
return /* @__PURE__ */
|
|
537
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
505
538
|
PropertyBase,
|
|
506
539
|
{
|
|
507
540
|
name,
|
|
@@ -509,19 +542,19 @@ var SingleSelectProperty = ({
|
|
|
509
542
|
readOnly,
|
|
510
543
|
softRequired,
|
|
511
544
|
hasValue,
|
|
512
|
-
icon: /* @__PURE__ */
|
|
513
|
-
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */
|
|
545
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.List, { size: 16 }),
|
|
546
|
+
input: ({ softRequired: softRequired2 }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
514
547
|
"div",
|
|
515
548
|
{
|
|
516
|
-
className:
|
|
517
|
-
children: /* @__PURE__ */
|
|
549
|
+
className: (0, import_clsx6.default)("row grow py-2 px-4 cursor-pointer", { "text-warning": softRequired2 && !hasValue }),
|
|
550
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
518
551
|
SearchableSelect,
|
|
519
552
|
{
|
|
520
553
|
...multiSelectProps,
|
|
521
554
|
value,
|
|
522
555
|
options,
|
|
523
556
|
isDisabled: readOnly,
|
|
524
|
-
className:
|
|
557
|
+
className: (0, import_clsx6.default)("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
|
|
525
558
|
hintText: `${translation.select}...`
|
|
526
559
|
}
|
|
527
560
|
)
|
|
@@ -530,7 +563,8 @@ var SingleSelectProperty = ({
|
|
|
530
563
|
}
|
|
531
564
|
);
|
|
532
565
|
};
|
|
533
|
-
export
|
|
566
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
567
|
+
0 && (module.exports = {
|
|
534
568
|
SingleSelectProperty
|
|
535
|
-
};
|
|
569
|
+
});
|
|
536
570
|
//# sourceMappingURL=SelectProperty.js.map
|