@helpwave/hightide 0.1.45 → 0.1.47
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/README.md +1 -1
- package/dist/index.d.mts +1990 -0
- package/dist/index.d.ts +1990 -113
- package/dist/index.js +1514 -1353
- package/dist/index.js.map +1 -1
- package/dist/{components/index.js → index.mjs} +728 -18
- package/dist/index.mjs.map +1 -0
- package/package.json +5 -12
- package/dist/coloring/index.cjs +0 -85
- package/dist/coloring/index.cjs.map +0 -1
- package/dist/coloring/index.d.cts +0 -2
- package/dist/coloring/index.d.ts +0 -2
- package/dist/coloring/index.js +0 -48
- package/dist/coloring/index.js.map +0 -1
- package/dist/coloring/shading.cjs +0 -81
- package/dist/coloring/shading.cjs.map +0 -1
- package/dist/coloring/shading.d.cts +0 -5
- package/dist/coloring/shading.d.ts +0 -5
- package/dist/coloring/shading.js +0 -47
- package/dist/coloring/shading.js.map +0 -1
- package/dist/coloring/types.cjs +0 -30
- package/dist/coloring/types.cjs.map +0 -1
- package/dist/coloring/types.d.cts +0 -13
- package/dist/coloring/types.d.ts +0 -13
- package/dist/coloring/types.js +0 -6
- package/dist/coloring/types.js.map +0 -1
- package/dist/components/branding/HelpwaveBadge.cjs +0 -140
- package/dist/components/branding/HelpwaveBadge.cjs.map +0 -1
- package/dist/components/branding/HelpwaveBadge.d.cts +0 -13
- package/dist/components/branding/HelpwaveBadge.d.ts +0 -13
- package/dist/components/branding/HelpwaveBadge.js +0 -104
- package/dist/components/branding/HelpwaveBadge.js.map +0 -1
- package/dist/components/branding/index.cjs +0 -140
- package/dist/components/branding/index.cjs.map +0 -1
- package/dist/components/branding/index.d.cts +0 -3
- package/dist/components/branding/index.d.ts +0 -3
- package/dist/components/branding/index.js +0 -104
- package/dist/components/branding/index.js.map +0 -1
- package/dist/components/date/DatePicker.cjs +0 -1318
- package/dist/components/date/DatePicker.cjs.map +0 -1
- package/dist/components/date/DatePicker.d.cts +0 -26
- package/dist/components/date/DatePicker.d.ts +0 -26
- package/dist/components/date/DatePicker.js +0 -1283
- package/dist/components/date/DatePicker.js.map +0 -1
- package/dist/components/date/DayPicker.cjs +0 -261
- package/dist/components/date/DayPicker.cjs.map +0 -1
- package/dist/components/date/DayPicker.d.cts +0 -20
- package/dist/components/date/DayPicker.d.ts +0 -20
- package/dist/components/date/DayPicker.js +0 -224
- package/dist/components/date/DayPicker.js.map +0 -1
- package/dist/components/date/TimeDisplay.cjs +0 -638
- package/dist/components/date/TimeDisplay.cjs.map +0 -1
- package/dist/components/date/TimeDisplay.d.cts +0 -13
- package/dist/components/date/TimeDisplay.d.ts +0 -13
- package/dist/components/date/TimeDisplay.js +0 -612
- package/dist/components/date/TimeDisplay.js.map +0 -1
- package/dist/components/date/TimePicker.cjs +0 -237
- package/dist/components/date/TimePicker.cjs.map +0 -1
- package/dist/components/date/TimePicker.d.cts +0 -15
- package/dist/components/date/TimePicker.d.ts +0 -15
- package/dist/components/date/TimePicker.js +0 -202
- package/dist/components/date/TimePicker.js.map +0 -1
- package/dist/components/date/YearMonthPicker.cjs +0 -536
- package/dist/components/date/YearMonthPicker.cjs.map +0 -1
- package/dist/components/date/YearMonthPicker.d.cts +0 -15
- package/dist/components/date/YearMonthPicker.d.ts +0 -15
- package/dist/components/date/YearMonthPicker.js +0 -501
- package/dist/components/date/YearMonthPicker.js.map +0 -1
- package/dist/components/date/index.cjs +0 -1556
- package/dist/components/date/index.cjs.map +0 -1
- package/dist/components/date/index.d.cts +0 -7
- package/dist/components/date/index.d.ts +0 -7
- package/dist/components/date/index.js +0 -1512
- package/dist/components/date/index.js.map +0 -1
- package/dist/components/dialog/ConfirmDialog.cjs +0 -1165
- package/dist/components/dialog/ConfirmDialog.cjs.map +0 -1
- package/dist/components/dialog/ConfirmDialog.d.cts +0 -29
- package/dist/components/dialog/ConfirmDialog.d.ts +0 -29
- package/dist/components/dialog/ConfirmDialog.js +0 -1129
- package/dist/components/dialog/ConfirmDialog.js.map +0 -1
- package/dist/components/dialog/Dialog.cjs +0 -1108
- package/dist/components/dialog/Dialog.cjs.map +0 -1
- package/dist/components/dialog/Dialog.d.cts +0 -27
- package/dist/components/dialog/Dialog.d.ts +0 -27
- package/dist/components/dialog/Dialog.js +0 -1075
- package/dist/components/dialog/Dialog.js.map +0 -1
- package/dist/components/dialog/DiscardChangesDialog.cjs +0 -1192
- package/dist/components/dialog/DiscardChangesDialog.cjs.map +0 -1
- package/dist/components/dialog/DiscardChangesDialog.d.cts +0 -18
- package/dist/components/dialog/DiscardChangesDialog.d.ts +0 -18
- package/dist/components/dialog/DiscardChangesDialog.js +0 -1156
- package/dist/components/dialog/DiscardChangesDialog.js.map +0 -1
- package/dist/components/dialog/InputDialog.cjs +0 -1369
- package/dist/components/dialog/InputDialog.cjs.map +0 -1
- package/dist/components/dialog/InputDialog.d.cts +0 -17
- package/dist/components/dialog/InputDialog.d.ts +0 -17
- package/dist/components/dialog/InputDialog.js +0 -1333
- package/dist/components/dialog/InputDialog.js.map +0 -1
- package/dist/components/dialog/LanguageDialog.cjs +0 -2149
- package/dist/components/dialog/LanguageDialog.cjs.map +0 -1
- package/dist/components/dialog/LanguageDialog.d.cts +0 -16
- package/dist/components/dialog/LanguageDialog.d.ts +0 -16
- package/dist/components/dialog/LanguageDialog.js +0 -2124
- package/dist/components/dialog/LanguageDialog.js.map +0 -1
- package/dist/components/dialog/ThemeDialog.cjs +0 -2188
- package/dist/components/dialog/ThemeDialog.cjs.map +0 -1
- package/dist/components/dialog/ThemeDialog.d.cts +0 -16
- package/dist/components/dialog/ThemeDialog.d.ts +0 -16
- package/dist/components/dialog/ThemeDialog.js +0 -2163
- package/dist/components/dialog/ThemeDialog.js.map +0 -1
- package/dist/components/dialog/index.cjs +0 -2516
- package/dist/components/dialog/index.cjs.map +0 -1
- package/dist/components/dialog/index.d.cts +0 -11
- package/dist/components/dialog/index.d.ts +0 -11
- package/dist/components/dialog/index.js +0 -2486
- package/dist/components/dialog/index.js.map +0 -1
- package/dist/components/form/FormElementWrapper.cjs +0 -167
- package/dist/components/form/FormElementWrapper.cjs.map +0 -1
- package/dist/components/form/FormElementWrapper.d.cts +0 -35
- package/dist/components/form/FormElementWrapper.d.ts +0 -35
- package/dist/components/form/FormElementWrapper.js +0 -133
- package/dist/components/form/FormElementWrapper.js.map +0 -1
- package/dist/components/form/index.cjs +0 -169
- package/dist/components/form/index.cjs.map +0 -1
- package/dist/components/form/index.d.cts +0 -5
- package/dist/components/form/index.d.ts +0 -5
- package/dist/components/form/index.js +0 -133
- package/dist/components/form/index.js.map +0 -1
- package/dist/components/icons-and-geometry/Avatar.cjs +0 -670
- package/dist/components/icons-and-geometry/Avatar.cjs.map +0 -1
- package/dist/components/icons-and-geometry/Avatar.d.cts +0 -36
- package/dist/components/icons-and-geometry/Avatar.d.ts +0 -36
- package/dist/components/icons-and-geometry/Avatar.js +0 -663
- package/dist/components/icons-and-geometry/Avatar.js.map +0 -1
- package/dist/components/icons-and-geometry/Circle.cjs +0 -61
- package/dist/components/icons-and-geometry/Circle.cjs.map +0 -1
- package/dist/components/icons-and-geometry/Circle.d.cts +0 -10
- package/dist/components/icons-and-geometry/Circle.d.ts +0 -10
- package/dist/components/icons-and-geometry/Circle.js +0 -27
- package/dist/components/icons-and-geometry/Circle.js.map +0 -1
- package/dist/components/icons-and-geometry/HelpwaveLogo.cjs +0 -98
- package/dist/components/icons-and-geometry/HelpwaveLogo.cjs.map +0 -1
- package/dist/components/icons-and-geometry/HelpwaveLogo.d.cts +0 -14
- package/dist/components/icons-and-geometry/HelpwaveLogo.d.ts +0 -14
- package/dist/components/icons-and-geometry/HelpwaveLogo.js +0 -74
- package/dist/components/icons-and-geometry/HelpwaveLogo.js.map +0 -1
- package/dist/components/icons-and-geometry/Ring.cjs +0 -333
- package/dist/components/icons-and-geometry/Ring.cjs.map +0 -1
- package/dist/components/icons-and-geometry/Ring.d.cts +0 -35
- package/dist/components/icons-and-geometry/Ring.d.ts +0 -35
- package/dist/components/icons-and-geometry/Ring.js +0 -296
- package/dist/components/icons-and-geometry/Ring.js.map +0 -1
- package/dist/components/icons-and-geometry/Tag.cjs +0 -2945
- package/dist/components/icons-and-geometry/Tag.cjs.map +0 -1
- package/dist/components/icons-and-geometry/Tag.d.cts +0 -16
- package/dist/components/icons-and-geometry/Tag.d.ts +0 -16
- package/dist/components/icons-and-geometry/Tag.js +0 -2940
- package/dist/components/icons-and-geometry/Tag.js.map +0 -1
- package/dist/components/icons-and-geometry/index.cjs +0 -3950
- package/dist/components/icons-and-geometry/index.cjs.map +0 -1
- package/dist/components/icons-and-geometry/index.d.cts +0 -7
- package/dist/components/icons-and-geometry/index.d.ts +0 -7
- package/dist/components/icons-and-geometry/index.js +0 -3934
- package/dist/components/icons-and-geometry/index.js.map +0 -1
- package/dist/components/index.cjs +0 -15692
- package/dist/components/index.cjs.map +0 -1
- package/dist/components/index.d.cts +0 -78
- package/dist/components/index.d.ts +0 -78
- package/dist/components/index.js.map +0 -1
- package/dist/components/layout/Carousel.cjs +0 -1128
- package/dist/components/layout/Carousel.cjs.map +0 -1
- package/dist/components/layout/Carousel.d.cts +0 -35
- package/dist/components/layout/Carousel.d.ts +0 -35
- package/dist/components/layout/Carousel.js +0 -1103
- package/dist/components/layout/Carousel.js.map +0 -1
- package/dist/components/layout/Chip.cjs +0 -123
- package/dist/components/layout/Chip.cjs.map +0 -1
- package/dist/components/layout/Chip.d.cts +0 -31
- package/dist/components/layout/Chip.d.ts +0 -31
- package/dist/components/layout/Chip.js +0 -87
- package/dist/components/layout/Chip.js.map +0 -1
- package/dist/components/layout/DividerInserter.cjs +0 -59
- package/dist/components/layout/DividerInserter.cjs.map +0 -1
- package/dist/components/layout/DividerInserter.d.cts +0 -15
- package/dist/components/layout/DividerInserter.d.ts +0 -15
- package/dist/components/layout/DividerInserter.js +0 -25
- package/dist/components/layout/DividerInserter.js.map +0 -1
- package/dist/components/layout/Expandable.cjs +0 -171
- package/dist/components/layout/Expandable.cjs.map +0 -1
- package/dist/components/layout/Expandable.d.cts +0 -67
- package/dist/components/layout/Expandable.d.ts +0 -67
- package/dist/components/layout/Expandable.js +0 -135
- package/dist/components/layout/Expandable.js.map +0 -1
- package/dist/components/layout/FAQSection.cjs +0 -421
- package/dist/components/layout/FAQSection.cjs.map +0 -1
- package/dist/components/layout/FAQSection.d.cts +0 -26
- package/dist/components/layout/FAQSection.d.ts +0 -26
- package/dist/components/layout/FAQSection.js +0 -387
- package/dist/components/layout/FAQSection.js.map +0 -1
- package/dist/components/layout/FloatingContainer.cjs +0 -220
- package/dist/components/layout/FloatingContainer.cjs.map +0 -1
- package/dist/components/layout/FloatingContainer.d.cts +0 -38
- package/dist/components/layout/FloatingContainer.d.ts +0 -38
- package/dist/components/layout/FloatingContainer.js +0 -196
- package/dist/components/layout/FloatingContainer.js.map +0 -1
- package/dist/components/layout/ListBox.cjs +0 -339
- package/dist/components/layout/ListBox.cjs.map +0 -1
- package/dist/components/layout/ListBox.d.cts +0 -44
- package/dist/components/layout/ListBox.d.ts +0 -44
- package/dist/components/layout/ListBox.js +0 -300
- package/dist/components/layout/ListBox.js.map +0 -1
- package/dist/components/layout/MarkdownInterpreter.cjs +0 -260
- package/dist/components/layout/MarkdownInterpreter.cjs.map +0 -1
- package/dist/components/layout/MarkdownInterpreter.d.cts +0 -28
- package/dist/components/layout/MarkdownInterpreter.d.ts +0 -28
- package/dist/components/layout/MarkdownInterpreter.js +0 -235
- package/dist/components/layout/MarkdownInterpreter.js.map +0 -1
- package/dist/components/layout/ScrollArea.cjs +0 -1252
- package/dist/components/layout/ScrollArea.cjs.map +0 -1
- package/dist/components/layout/ScrollArea.d.cts +0 -15
- package/dist/components/layout/ScrollArea.d.ts +0 -15
- package/dist/components/layout/ScrollArea.js +0 -1216
- package/dist/components/layout/ScrollArea.js.map +0 -1
- package/dist/components/layout/TextImage.cjs +0 -657
- package/dist/components/layout/TextImage.cjs.map +0 -1
- package/dist/components/layout/TextImage.d.cts +0 -19
- package/dist/components/layout/TextImage.d.ts +0 -19
- package/dist/components/layout/TextImage.js +0 -623
- package/dist/components/layout/TextImage.js.map +0 -1
- package/dist/components/layout/VerticalDivider.cjs +0 -80
- package/dist/components/layout/VerticalDivider.cjs.map +0 -1
- package/dist/components/layout/VerticalDivider.d.cts +0 -15
- package/dist/components/layout/VerticalDivider.d.ts +0 -15
- package/dist/components/layout/VerticalDivider.js +0 -56
- package/dist/components/layout/VerticalDivider.js.map +0 -1
- package/dist/components/layout/index.cjs +0 -3434
- package/dist/components/layout/index.cjs.map +0 -1
- package/dist/components/layout/index.d.cts +0 -15
- package/dist/components/layout/index.d.ts +0 -15
- package/dist/components/layout/index.js +0 -3387
- package/dist/components/layout/index.js.map +0 -1
- package/dist/components/loading-states/ErrorComponent.cjs +0 -622
- package/dist/components/loading-states/ErrorComponent.cjs.map +0 -1
- package/dist/components/loading-states/ErrorComponent.d.cts +0 -12
- package/dist/components/loading-states/ErrorComponent.d.ts +0 -12
- package/dist/components/loading-states/ErrorComponent.js +0 -588
- package/dist/components/loading-states/ErrorComponent.js.map +0 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.cjs +0 -67
- package/dist/components/loading-states/LoadingAndErrorComponent.cjs.map +0 -1
- package/dist/components/loading-states/LoadingAndErrorComponent.d.cts +0 -20
- package/dist/components/loading-states/LoadingAndErrorComponent.d.ts +0 -20
- package/dist/components/loading-states/LoadingAndErrorComponent.js +0 -43
- package/dist/components/loading-states/LoadingAndErrorComponent.js.map +0 -1
- package/dist/components/loading-states/LoadingAnimation.cjs +0 -694
- package/dist/components/loading-states/LoadingAnimation.cjs.map +0 -1
- package/dist/components/loading-states/LoadingAnimation.d.cts +0 -12
- package/dist/components/loading-states/LoadingAnimation.d.ts +0 -12
- package/dist/components/loading-states/LoadingAnimation.js +0 -658
- package/dist/components/loading-states/LoadingAnimation.js.map +0 -1
- package/dist/components/loading-states/LoadingButton.cjs +0 -257
- package/dist/components/loading-states/LoadingButton.cjs.map +0 -1
- package/dist/components/loading-states/LoadingButton.d.cts +0 -10
- package/dist/components/loading-states/LoadingButton.d.ts +0 -10
- package/dist/components/loading-states/LoadingButton.js +0 -223
- package/dist/components/loading-states/LoadingButton.js.map +0 -1
- package/dist/components/loading-states/LoadingContainer.cjs +0 -34
- package/dist/components/loading-states/LoadingContainer.cjs.map +0 -1
- package/dist/components/loading-states/LoadingContainer.d.cts +0 -8
- package/dist/components/loading-states/LoadingContainer.d.ts +0 -8
- package/dist/components/loading-states/LoadingContainer.js +0 -10
- package/dist/components/loading-states/LoadingContainer.js.map +0 -1
- package/dist/components/loading-states/ProgressIndicator.cjs +0 -83
- package/dist/components/loading-states/ProgressIndicator.cjs.map +0 -1
- package/dist/components/loading-states/ProgressIndicator.d.cts +0 -24
- package/dist/components/loading-states/ProgressIndicator.d.ts +0 -24
- package/dist/components/loading-states/ProgressIndicator.js +0 -59
- package/dist/components/loading-states/ProgressIndicator.js.map +0 -1
- package/dist/components/loading-states/index.cjs +0 -966
- package/dist/components/loading-states/index.cjs.map +0 -1
- package/dist/components/loading-states/index.d.cts +0 -9
- package/dist/components/loading-states/index.d.ts +0 -9
- package/dist/components/loading-states/index.js +0 -925
- package/dist/components/loading-states/index.js.map +0 -1
- package/dist/components/navigation/BreadCrumb.cjs +0 -3516
- package/dist/components/navigation/BreadCrumb.cjs.map +0 -1
- package/dist/components/navigation/BreadCrumb.d.cts +0 -20
- package/dist/components/navigation/BreadCrumb.d.ts +0 -20
- package/dist/components/navigation/BreadCrumb.js +0 -3511
- package/dist/components/navigation/BreadCrumb.js.map +0 -1
- package/dist/components/navigation/Navigation.cjs +0 -4041
- package/dist/components/navigation/Navigation.cjs.map +0 -1
- package/dist/components/navigation/Navigation.d.cts +0 -21
- package/dist/components/navigation/Navigation.d.ts +0 -21
- package/dist/components/navigation/Navigation.js +0 -4035
- package/dist/components/navigation/Navigation.js.map +0 -1
- package/dist/components/navigation/Pagination.cjs +0 -1007
- package/dist/components/navigation/Pagination.cjs.map +0 -1
- package/dist/components/navigation/Pagination.d.cts +0 -16
- package/dist/components/navigation/Pagination.d.ts +0 -16
- package/dist/components/navigation/Pagination.js +0 -973
- package/dist/components/navigation/Pagination.js.map +0 -1
- package/dist/components/navigation/StepperBar.cjs +0 -903
- package/dist/components/navigation/StepperBar.cjs.map +0 -1
- package/dist/components/navigation/StepperBar.d.cts +0 -23
- package/dist/components/navigation/StepperBar.d.ts +0 -23
- package/dist/components/navigation/StepperBar.js +0 -868
- package/dist/components/navigation/StepperBar.js.map +0 -1
- package/dist/components/navigation/index.cjs +0 -5035
- package/dist/components/navigation/index.cjs.map +0 -1
- package/dist/components/navigation/index.d.cts +0 -6
- package/dist/components/navigation/index.d.ts +0 -6
- package/dist/components/navigation/index.js +0 -5023
- package/dist/components/navigation/index.js.map +0 -1
- package/dist/components/properties/CheckboxProperty.cjs +0 -1736
- package/dist/components/properties/CheckboxProperty.cjs.map +0 -1
- package/dist/components/properties/CheckboxProperty.d.cts +0 -14
- package/dist/components/properties/CheckboxProperty.d.ts +0 -14
- package/dist/components/properties/CheckboxProperty.js +0 -1702
- package/dist/components/properties/CheckboxProperty.js.map +0 -1
- package/dist/components/properties/DateProperty.cjs +0 -1119
- package/dist/components/properties/DateProperty.cjs.map +0 -1
- package/dist/components/properties/DateProperty.d.cts +0 -16
- package/dist/components/properties/DateProperty.d.ts +0 -16
- package/dist/components/properties/DateProperty.js +0 -1085
- package/dist/components/properties/DateProperty.js.map +0 -1
- package/dist/components/properties/MultiSelectProperty.cjs +0 -2058
- package/dist/components/properties/MultiSelectProperty.cjs.map +0 -1
- package/dist/components/properties/MultiSelectProperty.d.cts +0 -14
- package/dist/components/properties/MultiSelectProperty.d.ts +0 -14
- package/dist/components/properties/MultiSelectProperty.js +0 -2035
- package/dist/components/properties/MultiSelectProperty.js.map +0 -1
- package/dist/components/properties/NumberProperty.cjs +0 -1125
- package/dist/components/properties/NumberProperty.cjs.map +0 -1
- package/dist/components/properties/NumberProperty.d.cts +0 -16
- package/dist/components/properties/NumberProperty.d.ts +0 -16
- package/dist/components/properties/NumberProperty.js +0 -1091
- package/dist/components/properties/NumberProperty.js.map +0 -1
- package/dist/components/properties/PropertyBase.cjs +0 -875
- package/dist/components/properties/PropertyBase.cjs.map +0 -1
- package/dist/components/properties/PropertyBase.d.cts +0 -22
- package/dist/components/properties/PropertyBase.d.ts +0 -22
- package/dist/components/properties/PropertyBase.js +0 -841
- package/dist/components/properties/PropertyBase.js.map +0 -1
- package/dist/components/properties/SelectProperty.cjs +0 -2058
- package/dist/components/properties/SelectProperty.cjs.map +0 -1
- package/dist/components/properties/SelectProperty.d.cts +0 -16
- package/dist/components/properties/SelectProperty.d.ts +0 -16
- package/dist/components/properties/SelectProperty.js +0 -2035
- package/dist/components/properties/SelectProperty.js.map +0 -1
- package/dist/components/properties/TextProperty.cjs +0 -1033
- package/dist/components/properties/TextProperty.cjs.map +0 -1
- package/dist/components/properties/TextProperty.d.cts +0 -15
- package/dist/components/properties/TextProperty.d.ts +0 -15
- package/dist/components/properties/TextProperty.js +0 -999
- package/dist/components/properties/TextProperty.js.map +0 -1
- package/dist/components/properties/index.cjs +0 -3383
- package/dist/components/properties/index.cjs.map +0 -1
- package/dist/components/properties/index.d.cts +0 -9
- package/dist/components/properties/index.d.ts +0 -9
- package/dist/components/properties/index.js +0 -3352
- package/dist/components/properties/index.js.map +0 -1
- package/dist/components/table/FillerRowElement.cjs +0 -36
- package/dist/components/table/FillerRowElement.cjs.map +0 -1
- package/dist/components/table/FillerRowElement.d.cts +0 -8
- package/dist/components/table/FillerRowElement.d.ts +0 -8
- package/dist/components/table/FillerRowElement.js +0 -12
- package/dist/components/table/FillerRowElement.js.map +0 -1
- package/dist/components/table/Filter.cjs +0 -41
- package/dist/components/table/Filter.cjs.map +0 -1
- package/dist/components/table/Filter.d.cts +0 -5
- package/dist/components/table/Filter.d.ts +0 -5
- package/dist/components/table/Filter.js +0 -17
- package/dist/components/table/Filter.js.map +0 -1
- package/dist/components/table/Table.cjs +0 -2678
- package/dist/components/table/Table.cjs.map +0 -1
- package/dist/components/table/Table.d.cts +0 -42
- package/dist/components/table/Table.d.ts +0 -42
- package/dist/components/table/Table.js +0 -2649
- package/dist/components/table/Table.js.map +0 -1
- package/dist/components/table/TableCell.cjs +0 -37
- package/dist/components/table/TableCell.cjs.map +0 -1
- package/dist/components/table/TableCell.d.cts +0 -9
- package/dist/components/table/TableCell.d.ts +0 -9
- package/dist/components/table/TableCell.js +0 -13
- package/dist/components/table/TableCell.js.map +0 -1
- package/dist/components/table/TableFilterButton.cjs +0 -1269
- package/dist/components/table/TableFilterButton.cjs.map +0 -1
- package/dist/components/table/TableFilterButton.d.cts +0 -11
- package/dist/components/table/TableFilterButton.d.ts +0 -11
- package/dist/components/table/TableFilterButton.js +0 -1233
- package/dist/components/table/TableFilterButton.js.map +0 -1
- package/dist/components/table/TableSortButton.cjs +0 -206
- package/dist/components/table/TableSortButton.cjs.map +0 -1
- package/dist/components/table/TableSortButton.d.cts +0 -15
- package/dist/components/table/TableSortButton.d.ts +0 -15
- package/dist/components/table/TableSortButton.js +0 -172
- package/dist/components/table/TableSortButton.js.map +0 -1
- package/dist/components/table/index.cjs +0 -2690
- package/dist/components/table/index.cjs.map +0 -1
- package/dist/components/table/index.d.cts +0 -10
- package/dist/components/table/index.d.ts +0 -10
- package/dist/components/table/index.js +0 -2654
- package/dist/components/table/index.js.map +0 -1
- package/dist/components/user-action/Button.cjs +0 -308
- package/dist/components/user-action/Button.cjs.map +0 -1
- package/dist/components/user-action/Button.d.cts +0 -104
- package/dist/components/user-action/Button.d.ts +0 -104
- package/dist/components/user-action/Button.js +0 -268
- package/dist/components/user-action/Button.js.map +0 -1
- package/dist/components/user-action/Checkbox.cjs +0 -878
- package/dist/components/user-action/Checkbox.cjs.map +0 -1
- package/dist/components/user-action/Checkbox.d.cts +0 -25
- package/dist/components/user-action/Checkbox.d.ts +0 -25
- package/dist/components/user-action/Checkbox.js +0 -843
- package/dist/components/user-action/Checkbox.js.map +0 -1
- package/dist/components/user-action/CopyToClipboardWrapper.cjs +0 -695
- package/dist/components/user-action/CopyToClipboardWrapper.cjs.map +0 -1
- package/dist/components/user-action/CopyToClipboardWrapper.d.cts +0 -30
- package/dist/components/user-action/CopyToClipboardWrapper.d.ts +0 -30
- package/dist/components/user-action/CopyToClipboardWrapper.js +0 -671
- package/dist/components/user-action/CopyToClipboardWrapper.js.map +0 -1
- package/dist/components/user-action/DateAndTimePicker.cjs +0 -1492
- package/dist/components/user-action/DateAndTimePicker.cjs.map +0 -1
- package/dist/components/user-action/DateAndTimePicker.d.cts +0 -25
- package/dist/components/user-action/DateAndTimePicker.d.ts +0 -25
- package/dist/components/user-action/DateAndTimePicker.js +0 -1458
- package/dist/components/user-action/DateAndTimePicker.js.map +0 -1
- package/dist/components/user-action/Label.cjs +0 -53
- package/dist/components/user-action/Label.cjs.map +0 -1
- package/dist/components/user-action/Label.d.cts +0 -14
- package/dist/components/user-action/Label.d.ts +0 -14
- package/dist/components/user-action/Label.js +0 -19
- package/dist/components/user-action/Label.js.map +0 -1
- package/dist/components/user-action/Menu.cjs +0 -282
- package/dist/components/user-action/Menu.cjs.map +0 -1
- package/dist/components/user-action/Menu.d.cts +0 -35
- package/dist/components/user-action/Menu.d.ts +0 -35
- package/dist/components/user-action/Menu.js +0 -247
- package/dist/components/user-action/Menu.js.map +0 -1
- package/dist/components/user-action/ScrollPicker.cjs +0 -301
- package/dist/components/user-action/ScrollPicker.cjs.map +0 -1
- package/dist/components/user-action/ScrollPicker.d.cts +0 -15
- package/dist/components/user-action/ScrollPicker.d.ts +0 -15
- package/dist/components/user-action/ScrollPicker.js +0 -267
- package/dist/components/user-action/ScrollPicker.js.map +0 -1
- package/dist/components/user-action/SearchBar.cjs +0 -956
- package/dist/components/user-action/SearchBar.cjs.map +0 -1
- package/dist/components/user-action/SearchBar.d.cts +0 -13
- package/dist/components/user-action/SearchBar.d.ts +0 -13
- package/dist/components/user-action/SearchBar.js +0 -920
- package/dist/components/user-action/SearchBar.js.map +0 -1
- package/dist/components/user-action/Textarea.cjs +0 -231
- package/dist/components/user-action/Textarea.cjs.map +0 -1
- package/dist/components/user-action/Textarea.d.cts +0 -41
- package/dist/components/user-action/Textarea.d.ts +0 -41
- package/dist/components/user-action/Textarea.js +0 -195
- package/dist/components/user-action/Textarea.js.map +0 -1
- package/dist/components/user-action/Tooltip.cjs +0 -139
- package/dist/components/user-action/Tooltip.cjs.map +0 -1
- package/dist/components/user-action/Tooltip.d.cts +0 -37
- package/dist/components/user-action/Tooltip.d.ts +0 -37
- package/dist/components/user-action/Tooltip.js +0 -113
- package/dist/components/user-action/Tooltip.js.map +0 -1
- package/dist/components/user-action/index.cjs +0 -4564
- package/dist/components/user-action/index.cjs.map +0 -1
- package/dist/components/user-action/index.d.cts +0 -26
- package/dist/components/user-action/index.d.ts +0 -26
- package/dist/components/user-action/index.js +0 -4503
- package/dist/components/user-action/index.js.map +0 -1
- package/dist/components/user-action/input/Input.cjs +0 -260
- package/dist/components/user-action/input/Input.cjs.map +0 -1
- package/dist/components/user-action/input/Input.d.cts +0 -37
- package/dist/components/user-action/input/Input.d.ts +0 -37
- package/dist/components/user-action/input/Input.js +0 -225
- package/dist/components/user-action/input/Input.js.map +0 -1
- package/dist/components/user-action/input/InsideLabelInput.cjs +0 -312
- package/dist/components/user-action/input/InsideLabelInput.cjs.map +0 -1
- package/dist/components/user-action/input/InsideLabelInput.d.cts +0 -20
- package/dist/components/user-action/input/InsideLabelInput.d.ts +0 -20
- package/dist/components/user-action/input/InsideLabelInput.js +0 -277
- package/dist/components/user-action/input/InsideLabelInput.js.map +0 -1
- package/dist/components/user-action/input/ToggleableInput.cjs +0 -315
- package/dist/components/user-action/input/ToggleableInput.cjs.map +0 -1
- package/dist/components/user-action/input/ToggleableInput.d.cts +0 -22
- package/dist/components/user-action/input/ToggleableInput.d.ts +0 -22
- package/dist/components/user-action/input/ToggleableInput.js +0 -280
- package/dist/components/user-action/input/ToggleableInput.js.map +0 -1
- package/dist/components/user-action/input/index.cjs +0 -403
- package/dist/components/user-action/input/index.cjs.map +0 -1
- package/dist/components/user-action/input/index.d.cts +0 -6
- package/dist/components/user-action/input/index.d.ts +0 -6
- package/dist/components/user-action/input/index.js +0 -362
- package/dist/components/user-action/input/index.js.map +0 -1
- package/dist/components/user-action/select/Select.cjs +0 -1970
- package/dist/components/user-action/select/Select.cjs.map +0 -1
- package/dist/components/user-action/select/Select.d.cts +0 -104
- package/dist/components/user-action/select/Select.d.ts +0 -104
- package/dist/components/user-action/select/Select.js +0 -1937
- package/dist/components/user-action/select/Select.js.map +0 -1
- package/dist/components/user-action/select/index.cjs +0 -1972
- package/dist/components/user-action/select/index.cjs.map +0 -1
- package/dist/components/user-action/select/index.d.cts +0 -4
- package/dist/components/user-action/select/index.d.ts +0 -4
- package/dist/components/user-action/select/index.js +0 -1937
- package/dist/components/user-action/select/index.js.map +0 -1
- package/dist/components/utils/FocusTrap.cjs +0 -252
- package/dist/components/utils/FocusTrap.cjs.map +0 -1
- package/dist/components/utils/FocusTrap.d.cts +0 -28
- package/dist/components/utils/FocusTrap.d.ts +0 -28
- package/dist/components/utils/FocusTrap.js +0 -229
- package/dist/components/utils/FocusTrap.js.map +0 -1
- package/dist/components/utils/Transition.cjs +0 -74
- package/dist/components/utils/Transition.cjs.map +0 -1
- package/dist/components/utils/Transition.d.cts +0 -26
- package/dist/components/utils/Transition.d.ts +0 -26
- package/dist/components/utils/Transition.js +0 -50
- package/dist/components/utils/Transition.js.map +0 -1
- package/dist/components/utils/index.cjs +0 -302
- package/dist/components/utils/index.cjs.map +0 -1
- package/dist/components/utils/index.d.cts +0 -4
- package/dist/components/utils/index.d.ts +0 -4
- package/dist/components/utils/index.js +0 -275
- package/dist/components/utils/index.js.map +0 -1
- package/dist/hooks/focus/index.cjs +0 -379
- package/dist/hooks/focus/index.cjs.map +0 -1
- package/dist/hooks/focus/index.d.cts +0 -6
- package/dist/hooks/focus/index.d.ts +0 -6
- package/dist/hooks/focus/index.js +0 -339
- package/dist/hooks/focus/index.js.map +0 -1
- package/dist/hooks/focus/useFocusGuards.cjs +0 -74
- package/dist/hooks/focus/useFocusGuards.cjs.map +0 -1
- package/dist/hooks/focus/useFocusGuards.d.cts +0 -3
- package/dist/hooks/focus/useFocusGuards.d.ts +0 -3
- package/dist/hooks/focus/useFocusGuards.js +0 -50
- package/dist/hooks/focus/useFocusGuards.js.map +0 -1
- package/dist/hooks/focus/useFocusManagement.cjs +0 -84
- package/dist/hooks/focus/useFocusManagement.cjs.map +0 -1
- package/dist/hooks/focus/useFocusManagement.d.cts +0 -9
- package/dist/hooks/focus/useFocusManagement.d.ts +0 -9
- package/dist/hooks/focus/useFocusManagement.js +0 -60
- package/dist/hooks/focus/useFocusManagement.js.map +0 -1
- package/dist/hooks/focus/useFocusOnceVisible.cjs +0 -60
- package/dist/hooks/focus/useFocusOnceVisible.cjs.map +0 -1
- package/dist/hooks/focus/useFocusOnceVisible.d.cts +0 -5
- package/dist/hooks/focus/useFocusOnceVisible.d.ts +0 -5
- package/dist/hooks/focus/useFocusOnceVisible.js +0 -26
- package/dist/hooks/focus/useFocusOnceVisible.js.map +0 -1
- package/dist/hooks/focus/useFocusTrap.cjs +0 -233
- package/dist/hooks/focus/useFocusTrap.cjs.map +0 -1
- package/dist/hooks/focus/useFocusTrap.d.cts +0 -16
- package/dist/hooks/focus/useFocusTrap.d.ts +0 -16
- package/dist/hooks/focus/useFocusTrap.js +0 -210
- package/dist/hooks/focus/useFocusTrap.js.map +0 -1
- package/dist/hooks/focus/useIsMounted.cjs +0 -43
- package/dist/hooks/focus/useIsMounted.cjs.map +0 -1
- package/dist/hooks/focus/useIsMounted.d.cts +0 -3
- package/dist/hooks/focus/useIsMounted.d.ts +0 -3
- package/dist/hooks/focus/useIsMounted.js +0 -20
- package/dist/hooks/focus/useIsMounted.js.map +0 -1
- package/dist/hooks/index.cjs +0 -1530
- package/dist/hooks/index.cjs.map +0 -1
- package/dist/hooks/index.d.cts +0 -18
- package/dist/hooks/index.d.ts +0 -18
- package/dist/hooks/index.js +0 -1477
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useDelay.cjs +0 -67
- package/dist/hooks/useDelay.cjs.map +0 -1
- package/dist/hooks/useDelay.d.cts +0 -12
- package/dist/hooks/useDelay.d.ts +0 -12
- package/dist/hooks/useDelay.js +0 -43
- package/dist/hooks/useDelay.js.map +0 -1
- package/dist/hooks/useFloatingElement.cjs +0 -162
- package/dist/hooks/useFloatingElement.cjs.map +0 -1
- package/dist/hooks/useFloatingElement.d.cts +0 -22
- package/dist/hooks/useFloatingElement.d.ts +0 -22
- package/dist/hooks/useFloatingElement.js +0 -139
- package/dist/hooks/useFloatingElement.js.map +0 -1
- package/dist/hooks/useHoverState.cjs +0 -71
- package/dist/hooks/useHoverState.cjs.map +0 -1
- package/dist/hooks/useHoverState.d.cts +0 -42
- package/dist/hooks/useHoverState.d.ts +0 -42
- package/dist/hooks/useHoverState.js +0 -47
- package/dist/hooks/useHoverState.js.map +0 -1
- package/dist/hooks/useLocalStorage.cjs +0 -97
- package/dist/hooks/useLocalStorage.cjs.map +0 -1
- package/dist/hooks/useLocalStorage.d.cts +0 -17
- package/dist/hooks/useLocalStorage.d.ts +0 -17
- package/dist/hooks/useLocalStorage.js +0 -74
- package/dist/hooks/useLocalStorage.js.map +0 -1
- package/dist/hooks/useLogOnce.cjs +0 -53
- package/dist/hooks/useLogOnce.cjs.map +0 -1
- package/dist/hooks/useLogOnce.d.cts +0 -7
- package/dist/hooks/useLogOnce.d.ts +0 -7
- package/dist/hooks/useLogOnce.js +0 -29
- package/dist/hooks/useLogOnce.js.map +0 -1
- package/dist/hooks/useOutsideClick.cjs +0 -47
- package/dist/hooks/useOutsideClick.cjs.map +0 -1
- package/dist/hooks/useOutsideClick.d.cts +0 -5
- package/dist/hooks/useOutsideClick.d.ts +0 -5
- package/dist/hooks/useOutsideClick.js +0 -23
- package/dist/hooks/useOutsideClick.js.map +0 -1
- package/dist/hooks/useOverwritableState.cjs +0 -49
- package/dist/hooks/useOverwritableState.cjs.map +0 -1
- package/dist/hooks/useOverwritableState.d.cts +0 -5
- package/dist/hooks/useOverwritableState.d.ts +0 -5
- package/dist/hooks/useOverwritableState.js +0 -25
- package/dist/hooks/useOverwritableState.js.map +0 -1
- package/dist/hooks/usePopoverPosition.cjs +0 -81
- package/dist/hooks/usePopoverPosition.cjs.map +0 -1
- package/dist/hooks/usePopoverPosition.d.cts +0 -15
- package/dist/hooks/usePopoverPosition.d.ts +0 -15
- package/dist/hooks/usePopoverPosition.js +0 -57
- package/dist/hooks/usePopoverPosition.js.map +0 -1
- package/dist/hooks/useRerender.cjs +0 -33
- package/dist/hooks/useRerender.cjs.map +0 -1
- package/dist/hooks/useRerender.d.cts +0 -5
- package/dist/hooks/useRerender.d.ts +0 -5
- package/dist/hooks/useRerender.js +0 -9
- package/dist/hooks/useRerender.js.map +0 -1
- package/dist/hooks/useResizeCallbackWrapper.cjs +0 -38
- package/dist/hooks/useResizeCallbackWrapper.cjs.map +0 -1
- package/dist/hooks/useResizeCallbackWrapper.d.cts +0 -11
- package/dist/hooks/useResizeCallbackWrapper.d.ts +0 -11
- package/dist/hooks/useResizeCallbackWrapper.js +0 -14
- package/dist/hooks/useResizeCallbackWrapper.js.map +0 -1
- package/dist/hooks/useSearch.cjs +0 -95
- package/dist/hooks/useSearch.cjs.map +0 -1
- package/dist/hooks/useSearch.d.cts +0 -22
- package/dist/hooks/useSearch.d.ts +0 -22
- package/dist/hooks/useSearch.js +0 -71
- package/dist/hooks/useSearch.js.map +0 -1
- package/dist/hooks/useValidators.cjs +0 -687
- package/dist/hooks/useValidators.cjs.map +0 -1
- package/dist/hooks/useValidators.d.cts +0 -16
- package/dist/hooks/useValidators.d.ts +0 -16
- package/dist/hooks/useValidators.js +0 -660
- package/dist/hooks/useValidators.js.map +0 -1
- package/dist/i18n/LocaleProvider.cjs +0 -202
- package/dist/i18n/LocaleProvider.cjs.map +0 -1
- package/dist/i18n/LocaleProvider.d.cts +0 -23
- package/dist/i18n/LocaleProvider.d.ts +0 -23
- package/dist/i18n/LocaleProvider.js +0 -175
- package/dist/i18n/LocaleProvider.js.map +0 -1
- package/dist/i18n/index.cjs +0 -761
- package/dist/i18n/index.cjs.map +0 -1
- package/dist/i18n/index.d.cts +0 -8
- package/dist/i18n/index.d.ts +0 -8
- package/dist/i18n/index.js +0 -727
- package/dist/i18n/index.js.map +0 -1
- package/dist/i18n/translations.cjs +0 -507
- package/dist/i18n/translations.cjs.map +0 -1
- package/dist/i18n/translations.d.cts +0 -189
- package/dist/i18n/translations.d.ts +0 -189
- package/dist/i18n/translations.js +0 -482
- package/dist/i18n/translations.js.map +0 -1
- package/dist/i18n/useHightideTranslation.cjs +0 -618
- package/dist/i18n/useHightideTranslation.cjs.map +0 -1
- package/dist/i18n/useHightideTranslation.d.cts +0 -21
- package/dist/i18n/useHightideTranslation.d.ts +0 -21
- package/dist/i18n/useHightideTranslation.js +0 -591
- package/dist/i18n/useHightideTranslation.js.map +0 -1
- package/dist/i18n/util.cjs +0 -49
- package/dist/i18n/util.cjs.map +0 -1
- package/dist/i18n/util.d.cts +0 -15
- package/dist/i18n/util.d.ts +0 -15
- package/dist/i18n/util.js +0 -23
- package/dist/i18n/util.js.map +0 -1
- package/dist/index.cjs +0 -16470
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -113
- package/dist/storybook/helper.cjs +0 -61
- package/dist/storybook/helper.cjs.map +0 -1
- package/dist/storybook/helper.d.cts +0 -17
- package/dist/storybook/helper.d.ts +0 -17
- package/dist/storybook/helper.js +0 -37
- package/dist/storybook/helper.js.map +0 -1
- package/dist/theming/index.cjs +0 -190
- package/dist/theming/index.cjs.map +0 -1
- package/dist/theming/index.d.cts +0 -3
- package/dist/theming/index.d.ts +0 -3
- package/dist/theming/index.js +0 -161
- package/dist/theming/index.js.map +0 -1
- package/dist/theming/useTheme.cjs +0 -188
- package/dist/theming/useTheme.cjs.map +0 -1
- package/dist/theming/useTheme.d.cts +0 -26
- package/dist/theming/useTheme.d.ts +0 -26
- package/dist/theming/useTheme.js +0 -161
- package/dist/theming/useTheme.js.map +0 -1
- package/dist/utils/array.cjs +0 -172
- package/dist/utils/array.cjs.map +0 -1
- package/dist/utils/array.d.cts +0 -34
- package/dist/utils/array.d.ts +0 -34
- package/dist/utils/array.js +0 -142
- package/dist/utils/array.js.map +0 -1
- package/dist/utils/bagFunctions.cjs +0 -38
- package/dist/utils/bagFunctions.cjs.map +0 -1
- package/dist/utils/bagFunctions.d.cts +0 -15
- package/dist/utils/bagFunctions.d.ts +0 -15
- package/dist/utils/bagFunctions.js +0 -14
- package/dist/utils/bagFunctions.js.map +0 -1
- package/dist/utils/builder.cjs +0 -33
- package/dist/utils/builder.cjs.map +0 -1
- package/dist/utils/builder.d.cts +0 -8
- package/dist/utils/builder.d.ts +0 -8
- package/dist/utils/builder.js +0 -9
- package/dist/utils/builder.js.map +0 -1
- package/dist/utils/date.cjs +0 -193
- package/dist/utils/date.cjs.map +0 -1
- package/dist/utils/date.d.cts +0 -30
- package/dist/utils/date.d.ts +0 -30
- package/dist/utils/date.js +0 -156
- package/dist/utils/date.js.map +0 -1
- package/dist/utils/easeFunctions.cjs +0 -63
- package/dist/utils/easeFunctions.cjs.map +0 -1
- package/dist/utils/easeFunctions.d.cts +0 -11
- package/dist/utils/easeFunctions.d.ts +0 -11
- package/dist/utils/easeFunctions.js +0 -37
- package/dist/utils/easeFunctions.js.map +0 -1
- package/dist/utils/emailValidation.cjs +0 -32
- package/dist/utils/emailValidation.cjs.map +0 -1
- package/dist/utils/emailValidation.d.cts +0 -3
- package/dist/utils/emailValidation.d.ts +0 -3
- package/dist/utils/emailValidation.js +0 -8
- package/dist/utils/emailValidation.js.map +0 -1
- package/dist/utils/index.cjs +0 -562
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.d.cts +0 -16
- package/dist/utils/index.d.ts +0 -16
- package/dist/utils/index.js +0 -502
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/loopingArray.cjs +0 -96
- package/dist/utils/loopingArray.cjs.map +0 -1
- package/dist/utils/loopingArray.d.cts +0 -25
- package/dist/utils/loopingArray.d.ts +0 -25
- package/dist/utils/loopingArray.js +0 -72
- package/dist/utils/loopingArray.js.map +0 -1
- package/dist/utils/match.cjs +0 -32
- package/dist/utils/match.cjs.map +0 -1
- package/dist/utils/match.d.cts +0 -3
- package/dist/utils/match.d.ts +0 -3
- package/dist/utils/match.js +0 -8
- package/dist/utils/match.js.map +0 -1
- package/dist/utils/math.cjs +0 -33
- package/dist/utils/math.cjs.map +0 -1
- package/dist/utils/math.d.cts +0 -3
- package/dist/utils/math.d.ts +0 -3
- package/dist/utils/math.js +0 -9
- package/dist/utils/math.js.map +0 -1
- package/dist/utils/noop.cjs +0 -30
- package/dist/utils/noop.cjs.map +0 -1
- package/dist/utils/noop.d.cts +0 -3
- package/dist/utils/noop.d.ts +0 -3
- package/dist/utils/noop.js +0 -6
- package/dist/utils/noop.js.map +0 -1
- package/dist/utils/resolveSetState.cjs +0 -32
- package/dist/utils/resolveSetState.cjs.map +0 -1
- package/dist/utils/resolveSetState.d.cts +0 -5
- package/dist/utils/resolveSetState.d.ts +0 -5
- package/dist/utils/resolveSetState.js +0 -8
- package/dist/utils/resolveSetState.js.map +0 -1
- package/dist/utils/simpleSearch.cjs +0 -59
- package/dist/utils/simpleSearch.cjs.map +0 -1
- package/dist/utils/simpleSearch.d.cts +0 -50
- package/dist/utils/simpleSearch.d.ts +0 -50
- package/dist/utils/simpleSearch.js +0 -32
- package/dist/utils/simpleSearch.js.map +0 -1
- package/dist/utils/storage.cjs +0 -63
- package/dist/utils/storage.cjs.map +0 -1
- package/dist/utils/storage.d.cts +0 -16
- package/dist/utils/storage.d.ts +0 -16
- package/dist/utils/storage.js +0 -38
- package/dist/utils/storage.js.map +0 -1
- package/dist/utils/typing.cjs +0 -18
- package/dist/utils/typing.cjs.map +0 -1
- package/dist/utils/typing.d.cts +0 -8
- package/dist/utils/typing.d.ts +0 -8
- package/dist/utils/typing.js +0 -1
- package/dist/utils/typing.js.map +0 -1
- package/dist/utils/writeToClipboard.cjs +0 -33
- package/dist/utils/writeToClipboard.cjs.map +0 -1
- package/dist/utils/writeToClipboard.d.cts +0 -3
- package/dist/utils/writeToClipboard.d.ts +0 -3
- package/dist/utils/writeToClipboard.js +0 -10
- package/dist/utils/writeToClipboard.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/dialog/Dialog.tsx","../../../src/i18n/LocaleProvider.tsx","../../../src/hooks/useLocalStorage.ts","../../../src/utils/resolveSetState.ts","../../../src/i18n/translations.ts","../../../src/i18n/util.ts","../../../src/i18n/useHightideTranslation.ts","../../../src/utils/array.ts","../../../src/components/user-action/Button.tsx","../../../src/hooks/focus/useFocusTrap.ts","../../../src/hooks/focus/useIsMounted.ts","../../../src/hooks/useLogOnce.ts","../../../src/components/user-action/select/Select.tsx","../../../src/components/layout/Expandable.tsx","../../../src/hooks/useOverwritableState.ts","../../../src/utils/match.ts","../../../src/components/layout/Chip.tsx","../../../src/hooks/useFloatingElement.ts","../../../src/utils/math.ts","../../../src/components/dialog/LanguageDialog.tsx"],"sourcesContent":["'use client'\n\nimport type { HTMLAttributes, PropsWithChildren, ReactNode } from 'react'\nimport { useId } from 'react'\nimport { useEffect, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport { X } from 'lucide-react'\nimport { useHightideTranslation } from '@/src/i18n/useHightideTranslation'\nimport { IconButton } from '@/src/components/user-action/Button'\nimport { useFocusTrap } from '@/src/hooks/focus/useFocusTrap'\nimport { useLogOnce } from '@/src/hooks/useLogOnce'\nimport { createPortal } from 'react-dom'\n\nexport type DialogPosition = 'top' | 'center' | 'none'\n\nexport type DialogProps = HTMLAttributes<HTMLDivElement> & {\n /** Whether the dialog is currently open */\n isOpen: boolean,\n /** Title of the Dialog used for accessibility */\n titleElement: ReactNode,\n /** Description of the Dialog used for accessibility */\n description: ReactNode,\n /** Callback when the dialog tries to close */\n onClose?: () => void,\n /** Styling for the background */\n backgroundClassName?: string,\n /** If true shows a close button and sends onClose on background clicks */\n isModal?: boolean,\n position?: DialogPosition,\n isAnimated?: boolean,\n containerClassName?: string,\n}\n\n/**\n * A generic dialog window which is managed by its parent\n */\nexport const Dialog = ({\n children,\n isOpen,\n titleElement,\n description,\n isModal = true,\n onClose,\n backgroundClassName,\n position = 'center',\n isAnimated = true,\n containerClassName,\n ...props\n }: PropsWithChildren<DialogProps>) => {\n const translation = useHightideTranslation()\n const [visible, setVisible] = useState(isOpen)\n const generatedId = useId()\n const id = props.id ?? generatedId\n\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (isOpen) {\n setVisible(true)\n } else {\n if (!isAnimated) {\n setVisible(false)\n }\n }\n }, [isAnimated, isOpen])\n\n const onCloseWrapper = () => {\n if (!isModal) return\n onClose?.()\n }\n\n useLogOnce('Dialog: onClose should be defined for modal dialogs', isModal && !onClose)\n\n useFocusTrap({\n container: ref,\n active: visible,\n focusFirst: true,\n })\n\n const positionMap: Record<DialogPosition, string> = {\n top: 'fixed top-8 left-1/2 -translate-x-1/2',\n center: 'fixed left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2',\n none: ''\n }\n const positionStyle = positionMap[position]\n\n if (!visible) return\n\n return createPortal(\n <div id={`dialog-container-${id}`} className={clsx('fixed inset-0 h-screen w-screen', containerClassName)}>\n <div\n id={`dialog-background-${id}`}\n hidden={!visible}\n className={clsx(\n 'fixed inset-0 h-screen w-screen bg-overlay-shadow',\n {\n 'motion-safe:animate-fade-in': isOpen,\n 'motion-safe:animate-fade-out': !isOpen,\n },\n backgroundClassName\n )}\n onAnimationEnd={() => {\n if (!isOpen) {\n setVisible(false)\n }\n }}\n onClick={onCloseWrapper}\n aria-hidden={true}\n />\n <div\n {...props}\n id={`dialog-${id}`}\n ref={ref}\n hidden={!visible}\n onKeyDown={event => {\n if (event.key === 'Escape') {\n onCloseWrapper()\n }\n }}\n onAnimationEnd={() => {\n if (!isOpen) {\n setVisible(false)\n }\n }}\n className={clsx(\n 'flex-col-2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-hw-bottom max-w-[calc(100vw_-_2rem)] max-h-[calc(100vh_-_2rem)]',\n {\n 'motion-safe:animate-pop-in': isOpen,\n 'motion-safe:animate-pop-out': !isOpen,\n },\n positionStyle,\n props.className\n )}\n >\n <div className=\"typography-title-lg mr-8\">\n {titleElement}\n </div>\n {description && (\n <div className=\"text-description\">\n {description}\n </div>\n )}\n {isModal && (\n <div\n className=\"absolute top-0 right-0\"\n style={{\n paddingTop: 'inherit',\n paddingRight: 'inherit'\n }}\n >\n <IconButton\n color=\"neutral\"\n size=\"tiny\"\n aria-label={translation('close')}\n onClick={onCloseWrapper}\n >\n <X/>\n </IconButton>\n </div>\n )}\n {children}\n </div>\n </div>\n , document.body\n )\n}","import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react'\nimport { useLocalStorage } from '../hooks/useLocalStorage'\nimport { LocalizationUtil } from './util'\nimport type { HightideTranslationLocales } from '@/src/i18n/translations'\n\nexport type LocaleContextValue = {\n locale: HightideTranslationLocales,\n setLocale: Dispatch<SetStateAction<HightideTranslationLocales>>,\n}\n\nexport const LocaleContext = createContext<LocaleContextValue>({\n locale: LocalizationUtil.DEFAULT_LOCALE,\n setLocale: (v) => v\n})\n\ntype LocaleWithSystem = HightideTranslationLocales | 'system'\n\ntype LocaleProviderProps = {\n locale?: LocaleWithSystem,\n onChangedLocale?: (locale: HightideTranslationLocales) => void,\n}\n\nexport const LocaleProvider = ({ children, locale, onChangedLocale }: PropsWithChildren<LocaleProviderProps>) => {\n const {\n value: storedLocale,\n setValue: setStoredLocale,\n deleteValue: deleteStoredLocale,\n } = useLocalStorage<LocaleWithSystem>('locale', 'system')\n const [localePreference, setLocalePreference] = useState<LocaleWithSystem>('system')\n\n const resolvedLocale = useMemo(() => {\n if (locale && locale !== 'system') {\n return locale\n }\n if (storedLocale && storedLocale !== 'system') {\n return storedLocale\n }\n if (localePreference !== 'system') {\n return localePreference\n }\n return LocalizationUtil.DEFAULT_LOCALE\n }, [locale, localePreference, storedLocale])\n\n useEffect(() => {\n if(!locale) return\n if (locale === 'system') {\n deleteStoredLocale()\n } else {\n setStoredLocale(locale)\n }\n }, [locale]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n onChangedLocale?.(resolvedLocale)\n }, [resolvedLocale]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const localesToTestAgainst = Object.values(LocalizationUtil.locals)\n\n const detectLanguage = () => {\n const matchingBrowserLanguage = window.navigator.languages\n .map(locale =>\n localesToTestAgainst.find(\n (test) => locale === test || locale.split('-')[0] === LocalizationUtil.localToLanguage(test)\n ))\n .filter((entry): entry is HightideTranslationLocales => entry !== undefined)\n\n if (matchingBrowserLanguage.length === 0) return\n\n const firstMatch = matchingBrowserLanguage[0]\n setLocalePreference(firstMatch)\n }\n detectLanguage()\n\n window.addEventListener('languagechange', detectLanguage)\n return () => {\n window.removeEventListener('languagechange', detectLanguage)\n }\n }, [])\n\n return (\n <LocaleContext.Provider value={{\n locale: resolvedLocale,\n setLocale: (newLocale) => {\n if (locale !== 'system') {\n console.warn('LocaleProvider: Attempting to change the ' +\n \"locale while setting a fixed locale won't have any effect. \" +\n 'Change the locale provided to the LocaleProvider instead.')\n }\n setStoredLocale(newLocale)\n }\n }}>\n {children}\n </LocaleContext.Provider>\n )\n}\n\nexport const useLocale = () => {\n const context = useContext(LocaleContext)\n if (!context) {\n throw new Error('useLocale must be used within LocaleContext. Try adding a LocaleProvider around your app.')\n }\n return context\n}\n\nexport const useLanguage = () => {\n const context = useContext(LocaleContext)\n if (!context) {\n throw new Error('useLanguage must be used within LocaleContext. Try adding a LocaleProvider around your app.')\n }\n return { language: LocalizationUtil.localToLanguage(context.locale) }\n}\n","'use client'\n\nimport type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useState } from 'react'\nimport { LocalStorageService } from '@/src/utils/storage'\nimport { resolveSetState } from '@/src/utils/resolveSetState'\n\ntype SetValue<T> = Dispatch<SetStateAction<T>>\n\ntype UseLocalStorageResult<T> = {\n value: T,\n setValue: SetValue<T>,\n deleteValue: () => void,\n}\n\n/**\n * @param key Key under which to save the data\n * @param backupValue Used if the storage is unavailable or no value is present\n *\n * The backup value will never be saved to the storage unless you explicitly\n */\nexport const useLocalStorage = <T>(key: string, backupValue: T): UseLocalStorageResult<T> => {\n const get = useCallback((): T => {\n if (typeof window === 'undefined') {\n return backupValue\n }\n const storageService = new LocalStorageService()\n try {\n const value = storageService.get<T>(key)\n return value || backupValue\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_) {\n console.warn('useLocalStorage: Error while reading the stored value. Make sure your typing is correct.')\n storageService.delete(key)\n console.info(`useLocalStorage: deleted erroneous value for key: ${key}`)\n return backupValue\n }\n }, [backupValue, key])\n\n const [storedValue, setStoredValue] = useState<T>(get)\n\n const setValue: SetValue<T> = useCallback(action => {\n const newValue = resolveSetState(action, storedValue)\n const storageService = new LocalStorageService()\n storageService.set(key, newValue)\n\n setStoredValue(newValue)\n }, [storedValue, setStoredValue, key])\n\n const deleteValue = () => {\n const storageService = new LocalStorageService()\n storageService.delete(key)\n setStoredValue(backupValue)\n }\n\n return { value: storedValue, setValue, deleteValue }\n}","import type { SetStateAction } from 'react'\n\nexport function resolveSetState<T>(action: SetStateAction<T>, prev: T): T {\n return typeof action === 'function' ? (action as (prev: T) => T)(prev) : action\n}","// AUTO-GENERATED. DO NOT EDIT.\n/* eslint-disable @stylistic/quote-props */\n/* eslint-disable no-useless-escape */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { Translation } from '@helpwave/internationalization'\nimport { TranslationGen } from '@helpwave/internationalization'\n\nexport const hightideTranslationLocales = ['de-DE', 'en-US'] as const\n\nexport type HightideTranslationLocales = typeof hightideTranslationLocales[number]\n\nexport type HightideTranslationEntries = {\n 'add': string,\n 'age': string,\n 'all': string,\n 'apply': string,\n 'back': string,\n 'cancel': string,\n 'carousel': string,\n 'change': string,\n 'chooseLanguage': string,\n 'chooseSlide': string,\n 'chooseTheme': string,\n 'clear': string,\n 'click': string,\n 'clickToCopy': string,\n 'clickToSelect': string,\n 'close': string,\n 'confirm': string,\n 'copied': string,\n 'copy': string,\n 'create': string,\n 'decline': string,\n 'delete': string,\n 'discard': string,\n 'discardChanges': string,\n 'done': string,\n 'edit': string,\n 'endDate': string,\n 'enterText': string,\n 'entryDate': string,\n 'error': string,\n 'errorOccurred': string,\n 'exit': string,\n 'fieldRequiredError': string,\n 'filter': string,\n 'gender': (values: { gender: string }) => string,\n 'goodToSeeYou': string,\n 'identifier': string,\n 'invalidEmail': string,\n 'invalidEmailError': string,\n 'language': string,\n 'less': string,\n 'loading': string,\n 'locale': string,\n 'max': string,\n 'maxLengthError': string,\n 'min': string,\n 'minLengthError': string,\n 'more': string,\n 'name': string,\n 'next': string,\n 'no': string,\n 'none': string,\n 'notEmpty': string,\n 'nothingFound': string,\n 'of': string,\n 'optional': string,\n 'outOfRangeNumber': (values: { min: number, max: number }) => string,\n 'outOfRangeSelectionItems': (values: { min: number, max: number }) => string,\n 'outOfRangeString': (values: { min: number, max: number }) => string,\n 'pleaseWait': string,\n 'previous': string,\n 'remove': string,\n 'required': string,\n 'reset': string,\n 'save': string,\n 'saved': string,\n 'search': string,\n 'select': string,\n 'selectOption': string,\n 'show': string,\n 'showLess': string,\n 'showMore': string,\n 'showSlide': (values: { index: number }) => string,\n 'slide': string,\n 'slideNavigation': string,\n 'slideOf': (values: { index: number, length: number }) => string,\n 'startDate': string,\n 'street': string,\n 'submit': string,\n 'success': string,\n 'text': string,\n 'themeMode': (values: { theme: string }) => string,\n 'themes': (values: { count: number }) => string,\n 'time.ago': string,\n 'time.agoDays': (values: { days: number }) => string,\n 'time.april': string,\n 'time.august': string,\n 'time.century': (values: { count: number }) => string,\n 'time.day': (values: { count: number }) => string,\n 'time.decade': (values: { count: number }) => string,\n 'time.december': string,\n 'time.february': string,\n 'time.hour': (values: { count: number }) => string,\n 'time.in': string,\n 'time.inDays': (values: { days: number }) => string,\n 'time.january': string,\n 'time.july': string,\n 'time.june': string,\n 'time.march': string,\n 'time.may': string,\n 'time.microsecond': (values: { count: number }) => string,\n 'time.millisecond': (values: { count: number }) => string,\n 'time.minute': (values: { count: number }) => string,\n 'time.month': (values: { count: number }) => string,\n 'time.monthName': (values: { month: string }) => string,\n 'time.nanosecond': (values: { count: number }) => string,\n 'time.november': string,\n 'time.october': string,\n 'time.second': (values: { count: number }) => string,\n 'time.september': string,\n 'time.today': string,\n 'time.tomorrow': string,\n 'time.year': (values: { count: number }) => string,\n 'time.yesterday': string,\n 'tooFewSelectionItems': (values: { min: number }) => string,\n 'tooLong': (values: { max: number }) => string,\n 'tooManySelectionItems': (values: { max: number }) => string,\n 'tooShort': (values: { min: number }) => string,\n 'unsavedChanges': string,\n 'unsavedChangesSaveQuestion': string,\n 'update': string,\n 'value': string,\n 'welcome': string,\n 'yes': string,\n}\n\nexport const hightideTranslation: Translation<HightideTranslationLocales, Partial<HightideTranslationEntries>> = {\n 'de-DE': {\n 'add': `Hinzufügen`,\n 'age': `Alter`,\n 'all': `Alle`,\n 'apply': `Anwenden`,\n 'back': `Zurück`,\n 'cancel': `Abbrechen`,\n 'carousel': `Karussell`,\n 'change': `Ändern`,\n 'chooseLanguage': `Wähle deine bevorzugte Sprache`,\n 'chooseSlide': `Wähle die angezeigte Slide aus`,\n 'chooseTheme': `Wähle dein bevorzugtes Farbschema.`,\n 'clear': `Löschen`,\n 'click': `Klicken`,\n 'clickToCopy': `Zum kopieren klicken`,\n 'clickToSelect': `Zum Auswählen drücken`,\n 'close': `Schließen`,\n 'confirm': `Bestätigen`,\n 'copied': `Kopiert`,\n 'copy': `Kopieren`,\n 'create': `Erstellen`,\n 'decline': `Ablehnen`,\n 'delete': `Löschen`,\n 'discard': `Verwerfen`,\n 'discardChanges': `Änderungen Verwerfen`,\n 'done': `Fertig`,\n 'edit': `Bearbeiten`,\n 'endDate': `Ende`,\n 'enterText': `Text hier eingeben`,\n 'entryDate': `Eintragsdatum`,\n 'error': `Fehler`,\n 'errorOccurred': `Ein Fehler ist aufgetreten`,\n 'exit': `Beenden`,\n 'fieldRequiredError': `Dieses Feld ist erforderlich.`,\n 'filter': `Filter`,\n 'gender': ({ gender }): string => {\n return TranslationGen.resolveSelect(gender, {\n 'male': `Männlich`,\n 'female': `Weiblich`,\n 'other': `Divers`,\n })\n },\n 'goodToSeeYou': `Schön dich zu sehen`,\n 'identifier': `Identifikator`,\n 'invalidEmail': `Die E-Mail ist ungültig.`,\n 'invalidEmailError': `Bitte geben Sie eine gültige E-Mail-Adresse ein.`,\n 'language': `Sprache`,\n 'less': `Weniger`,\n 'loading': `Lädt`,\n 'locale': `Locale`,\n 'max': `Max`,\n 'maxLengthError': `Maximale Länge überschritten.`,\n 'min': `Min`,\n 'minLengthError': `Mindestlänge nicht erreicht.`,\n 'more': `Mehr`,\n 'name': `Name`,\n 'next': `Weiter`,\n 'no': `Nein`,\n 'none': `Nichts`,\n 'notEmpty': `Das Feld darf nicht leer sein.`,\n 'nothingFound': `Nichts gefunden`,\n 'of': `von`,\n 'optional': `Optional`,\n 'outOfRangeNumber': ({ min, max }): string => {\n return `Der Wert muss zwischen ${min} und ${max} liegen.`\n },\n 'outOfRangeSelectionItems': ({ min, max }): string => {\n return `Es müssen zwischen ${min} und ${max} Elemente ausgewählt werden.`\n },\n 'outOfRangeString': ({ min, max }): string => {\n return `Der Wert muss zwischen ${min} und ${max} Zeichen lang sein.`\n },\n 'pleaseWait': `Bitte warten...`,\n 'previous': `Vorherige`,\n 'remove': `Entfernen`,\n 'required': `Erforderlich`,\n 'reset': `Zurücksetzen`,\n 'save': `Speichern`,\n 'saved': `Gespeichert`,\n 'search': `Suche`,\n 'select': `Select`,\n 'selectOption': `Option auswählen`,\n 'show': `Anzeigen`,\n 'showLess': `Weniger anzeigen`,\n 'showMore': `Mehr anzeigen`,\n 'showSlide': ({ index }): string => {\n return `Zeige Slide ${index}`\n },\n 'slide': `Slide`,\n 'slideNavigation': `Slide Navigation`,\n 'slideOf': ({ index, length }): string => {\n return `Slide ${index} von ${length} slides`\n },\n 'startDate': `Start`,\n 'street': `Straße`,\n 'submit': `Abschicken`,\n 'success': `Erfolg`,\n 'text': `Text`,\n 'themeMode': ({ theme }): string => {\n return TranslationGen.resolveSelect(theme, {\n 'dark': `Dunkel`,\n 'light': `Hell`,\n 'system': `System`,\n })\n },\n 'themes': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Farbschema`,\n 'other': `Farbschemas`,\n })\n },\n 'time.ago': `vor`,\n 'time.agoDays': ({ days }): string => {\n return `var ${days} Tagen`\n },\n 'time.april': `April`,\n 'time.august': `August`,\n 'time.century': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Jahrhundert`,\n 'other': `Jahrhunderte`,\n })\n },\n 'time.day': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Tag`,\n 'other': `Tage`,\n })\n },\n 'time.decade': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Jahrzehnt`,\n 'other': `Jahrzehnte`,\n })\n },\n 'time.december': `December`,\n 'time.february': `Febuar`,\n 'time.hour': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Stunde`,\n 'other': `Stunden`,\n })\n },\n 'time.in': `in`,\n 'time.inDays': ({ days }): string => {\n return `in ${days} Tagen`\n },\n 'time.january': `Januar`,\n 'time.july': `Juli`,\n 'time.june': `Juni`,\n 'time.march': `März`,\n 'time.may': `Mai`,\n 'time.microsecond': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Mikrosekunde`,\n 'other': `Mikrosekunden`,\n })\n },\n 'time.millisecond': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Millisekunde`,\n 'other': `Millisekunden`,\n })\n },\n 'time.minute': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Minute`,\n 'other': `Minuten`,\n })\n },\n 'time.month': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Monat`,\n 'other': `Monate`,\n })\n },\n 'time.monthName': ({ month }): string => {\n return TranslationGen.resolveSelect(month, {\n 'january': `Januar`,\n 'february': `Februar`,\n 'march': `März`,\n 'april': `April`,\n 'may': `Mai`,\n 'june': `Juni`,\n 'july': `Juli`,\n 'august': `August`,\n 'september': `September`,\n 'october': `Oktober`,\n 'november': `November`,\n 'december': `Dezember`,\n 'other': `Unbekannter Monat`,\n })\n },\n 'time.nanosecond': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Nanosekunde`,\n 'other': `Nanosekunden`,\n })\n },\n 'time.november': `November`,\n 'time.october': `October`,\n 'time.second': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Sekunde`,\n 'other': `Sekunden`,\n })\n },\n 'time.september': `September`,\n 'time.today': `Heute`,\n 'time.tomorrow': `Morgen`,\n 'time.year': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Jahr`,\n 'other': `Jahre`,\n })\n },\n 'time.yesterday': `Gestern`,\n 'tooFewSelectionItems': ({ min }): string => {\n return `Es müssen mindestens ${min} Elemente ausgewählt werden.`\n },\n 'tooLong': ({ max }): string => {\n return `Der Wert darf höchstens ${max} Zeichen enthalten.`\n },\n 'tooManySelectionItems': ({ max }): string => {\n return `Es müssen maximal ${max} Elemente ausgewählt werden.`\n },\n 'tooShort': ({ min }): string => {\n return `Der Wert muss mindestens ${min} Zeichen enthalten.`\n },\n 'unsavedChanges': `Ungespeicherte Änderungen`,\n 'unsavedChangesSaveQuestion': `Möchtest du die Änderungen speichern?`,\n 'update': `Update`,\n 'value': `Wert`,\n 'welcome': `Willkommen`,\n 'yes': `Ja`\n },\n 'en-US': {\n 'add': `Add`,\n 'age': `Age`,\n 'all': `All`,\n 'apply': `Apply`,\n 'back': `Back`,\n 'cancel': `Cancel`,\n 'carousel': `Carousel`,\n 'change': `Change`,\n 'chooseLanguage': `Choose your language`,\n 'chooseSlide': `Choose slide to display`,\n 'chooseTheme': `Choose your preferred color theme.`,\n 'clear': `Clear`,\n 'click': `Click`,\n 'clickToCopy': `Click to Copy`,\n 'clickToSelect': `Click to select`,\n 'close': `Close`,\n 'confirm': `Confirm`,\n 'copied': `Copied`,\n 'copy': `Copy`,\n 'create': `Create`,\n 'decline': `Decline`,\n 'delete': `Delete`,\n 'discard': `Discard`,\n 'discardChanges': `Discard Changes`,\n 'done': `Done`,\n 'edit': `Edit`,\n 'endDate': `End`,\n 'enterText': `Enter text here`,\n 'entryDate': `Entry Date`,\n 'error': `Error`,\n 'errorOccurred': `An error occurred`,\n 'exit': `Exit`,\n 'fieldRequiredError': `This field is required.`,\n 'filter': `Filter`,\n 'gender': ({ gender }): string => {\n return TranslationGen.resolveSelect(gender, {\n 'male': `Male`,\n 'female': `Female`,\n 'other': `Other`,\n })\n },\n 'goodToSeeYou': `Good to see you`,\n 'identifier': `Identifier`,\n 'invalidEmail': `The email is not valid.`,\n 'invalidEmailError': `Please enter a valid email address.`,\n 'language': `Language`,\n 'less': `Less`,\n 'loading': `Loading`,\n 'locale': `Locale`,\n 'max': `Max`,\n 'maxLengthError': `Maximum length exceeded.`,\n 'min': `Min`,\n 'minLengthError': `Minimum length not met.`,\n 'more': `More`,\n 'name': `Name`,\n 'next': `Next`,\n 'no': `No`,\n 'none': `None`,\n 'notEmpty': `The field cannot be empty.`,\n 'nothingFound': `Nothing found`,\n 'of': `of`,\n 'optional': `Optional`,\n 'outOfRangeNumber': ({ min, max }): string => {\n return `The value must be between ${min} and ${max}.`\n },\n 'outOfRangeSelectionItems': ({ min, max }): string => {\n return `Between ${min} and ${max} items must be selected.`\n },\n 'outOfRangeString': ({ min, max }): string => {\n return `The value needs to have between ${min} and ${max} characters.`\n },\n 'pleaseWait': `Please wait...`,\n 'previous': `Previous`,\n 'remove': `Remove`,\n 'required': `Required`,\n 'reset': `Reset`,\n 'save': `Save`,\n 'saved': `Saved`,\n 'search': `Search`,\n 'select': `Select`,\n 'selectOption': `Select an option`,\n 'show': `Show`,\n 'showLess': `Show less`,\n 'showMore': `Show more`,\n 'showSlide': ({ index }): string => {\n return `Show Slide ${index}`\n },\n 'slide': `Slide`,\n 'slideNavigation': `Slide navigation`,\n 'slideOf': ({ index, length }): string => {\n return `Slide ${index} of ${length} slides`\n },\n 'startDate': `Start`,\n 'street': `Street`,\n 'submit': `Submit`,\n 'success': `Success`,\n 'text': `Text`,\n 'themeMode': ({ theme }): string => {\n return TranslationGen.resolveSelect(theme, {\n 'dark': `Dark`,\n 'light': `Light`,\n 'system': `System`,\n })\n },\n 'themes': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Theme`,\n 'other': `Themes`,\n })\n },\n 'time.ago': `ago`,\n 'time.agoDays': ({ days }): string => {\n return `days ${days} ago`\n },\n 'time.april': `April`,\n 'time.august': `August`,\n 'time.century': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Century`,\n 'other': `Centuries`,\n })\n },\n 'time.day': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Day`,\n 'other': `Days`,\n })\n },\n 'time.decade': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Decade`,\n 'other': `Decades`,\n })\n },\n 'time.december': `December`,\n 'time.february': `Febuary`,\n 'time.hour': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Hour`,\n 'other': `Hours`,\n })\n },\n 'time.in': `in`,\n 'time.inDays': ({ days }): string => {\n return `in ${days} days`\n },\n 'time.january': `January`,\n 'time.july': `July`,\n 'time.june': `June`,\n 'time.march': `March`,\n 'time.may': `May`,\n 'time.microsecond': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Microsecond`,\n 'other': `Microseconds`,\n })\n },\n 'time.millisecond': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Millisecond`,\n 'other': `Milliseconds`,\n })\n },\n 'time.minute': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Minute`,\n 'other': `Minutes`,\n })\n },\n 'time.month': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Month`,\n 'other': `Months`,\n })\n },\n 'time.monthName': ({ month }): string => {\n return TranslationGen.resolveSelect(month, {\n 'january': `January`,\n 'february': `February`,\n 'march': `March`,\n 'april': `April`,\n 'may': `May`,\n 'june': `June`,\n 'july': `July`,\n 'august': `August`,\n 'september': `September`,\n 'october': `October`,\n 'november': `November`,\n 'december': `December`,\n 'other': `Unknown Month`,\n })\n },\n 'time.nanosecond': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Nanosecond`,\n 'other': `Nanoseconds`,\n })\n },\n 'time.november': `November`,\n 'time.october': `October`,\n 'time.second': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Second`,\n 'other': `Seconds`,\n })\n },\n 'time.september': `September`,\n 'time.today': `Today`,\n 'time.tomorrow': `Tomorrow`,\n 'time.year': ({ count }): string => {\n return TranslationGen.resolveSelect(count, {\n '=1': `Year`,\n 'other': `Years`,\n })\n },\n 'time.yesterday': `Yesterday`,\n 'tooFewSelectionItems': ({ min }): string => {\n return `Select at least ${min} items.`\n },\n 'tooLong': ({ max }): string => {\n return `The value requires less than ${max} characters.`\n },\n 'tooManySelectionItems': ({ max }): string => {\n return `Select at most ${max} items.`\n },\n 'tooShort': ({ min }): string => {\n return `The value requires at least ${min} characters.`\n },\n 'unsavedChanges': `Unsaved Changes`,\n 'unsavedChangesSaveQuestion': `Do you want to save your changes?`,\n 'update': `Update`,\n 'value': `Value`,\n 'welcome': `Welcome`,\n 'yes': `Yes`\n }\n}\n\n","import type { HightideTranslationLocales } from '@/src/i18n/translations'\nimport { hightideTranslationLocales } from '@/src/i18n/translations'\n\n/**\n * The supported locales' names in their respective language\n */\nconst localsNames: Record<HightideTranslationLocales, string> = {\n 'en-US': 'English (US)',\n 'de-DE': 'Deutsch',\n}\n\n/**\n * The default locale\n */\nconst DEFAULT_LOCALE: HightideTranslationLocales = 'en-US'\n\nfunction localeToLanguage(locale: HightideTranslationLocales) {\n return locale.split('-')[0]\n}\n\n/**\n * A constant definition for holding data regarding languages\n */\nexport const LocalizationUtil = {\n locals: hightideTranslationLocales,\n localToLanguage: localeToLanguage,\n DEFAULT_LOCALE,\n languagesLocalNames: localsNames,\n}\n","import { useLocale } from '@/src/i18n/LocaleProvider'\nimport type {\n PartialTranslationExtension,\n Translation,\n TranslationEntries\n} from '@helpwave/internationalization'\nimport { combineTranslation, ICUUtil } from '@helpwave/internationalization'\nimport { ArrayUtil } from '@/src/utils/array'\nimport type { SingleOrArray } from '@/src/utils/typing'\nimport type { HightideTranslationEntries, HightideTranslationLocales } from '@/src/i18n/translations'\nimport { hightideTranslation } from '@/src/i18n/translations'\n\n/**\n * Use for translations where you know that all values are ICU strings.\n *\n * This most likely is the case for Translations provided by a backend,\n * for more dynamic and typesafe translation use useTranslation instead\n */\nexport function useICUTranslation<L extends string, T extends Record<string, string>>(\n translations: Translation<L, T>[] | Translation<L, T>,\n locale: L\n) {\n translations = Array.isArray(translations) ? translations : [translations]\n\n return function translate(\n key: string,\n values?: Record<string, object>\n ): string {\n try {\n for (let i = 0; i < translations.length; i++) {\n const localizedTranslation = translations[i][locale]\n if (!localizedTranslation) continue\n\n const msg = localizedTranslation[key]\n if (typeof msg === 'string') {\n return ICUUtil.interpret(msg, values)\n }\n }\n console.warn(`useTranslation: No translation for key \"${key}\" found.`)\n } catch (e) {\n console.error(`useTranslation: Error translating key \"${String(key)}\"`, e)\n }\n\n return `{{${String(locale)}:${String(key)}}}`\n }\n}\n\ntype UseHidetideTranslationOverwrites = {\n locale?: HightideTranslationLocales,\n}\n\ntype HidetideTranslationExtension<L extends string, T extends TranslationEntries>\n = PartialTranslationExtension<L, HightideTranslationLocales, T, HightideTranslationEntries>\n/**\n * A wrapper for the useHightideTranslation to load and specify the translations for the library\n */\nexport function useHightideTranslation<L extends string, T extends TranslationEntries>(\n extensions?: SingleOrArray<HidetideTranslationExtension<L,T>>,\n overwrites?: UseHidetideTranslationOverwrites\n) {\n const { locale: inferredLocale } = useLocale()\n const locale = overwrites?.locale ?? inferredLocale\n const translationExtensions = ArrayUtil.resolveSingleOrArray(extensions)\n\n return combineTranslation<L | HightideTranslationLocales, T & HightideTranslationEntries>([\n ...translationExtensions,\n hightideTranslation as HidetideTranslationExtension<L,T>\n ], locale)\n}\n","export const equalSizeGroups = <T>(array: T[], groupSize: number): T[][] => {\n if (groupSize <= 0) {\n console.warn(`group size should be greater than 0: groupSize = ${groupSize}`)\n return [[...array]]\n }\n\n const groups = []\n for (let i = 0; i < array.length; i += groupSize) {\n groups.push(array.slice(i, Math.min(i + groupSize, array.length)))\n }\n return groups\n}\n\nexport type RangeOptions = {\n /** Whether the range can be defined empty via end < start without a warning */\n allowEmptyRange: boolean,\n stepSize: number,\n exclusiveStart: boolean,\n exclusiveEnd: boolean,\n}\n\nconst defaultRangeOptions: RangeOptions = {\n allowEmptyRange: false,\n stepSize: 1,\n exclusiveStart: false,\n exclusiveEnd: true,\n}\n\n/**\n * @param endOrRange The end value or a range [start, end], end is exclusive\n * @param options the options for defining the range\n */\nexport const range = (endOrRange: number | [number, number], options?: Partial<RangeOptions>): number[] => {\n const { allowEmptyRange, stepSize, exclusiveStart, exclusiveEnd } = { ...defaultRangeOptions, ...options }\n let start = 0\n let end: number\n if (typeof endOrRange === 'number') {\n end = endOrRange\n } else {\n start = endOrRange[0]\n end = endOrRange[1]\n }\n if (!exclusiveEnd) {\n end -= 1\n }\n if (exclusiveStart) {\n start += 1\n }\n\n if (end - 1 < start) {\n if (!allowEmptyRange) {\n console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set options.allowEmptyRange to true`)\n }\n return []\n }\n return Array.from({ length: end - start }, (_, index) => index * stepSize + start)\n}\n\n/** Finds the closest match\n * @param list The list of all possible matches\n * @param firstCloser Return whether item1 is closer than item2\n */\nexport const closestMatch = <T>(list: T[], firstCloser: (item1: T, item2: T) => boolean) => {\n return list.reduce((item1, item2) => {\n return firstCloser(item1, item2) ? item1 : item2\n })\n}\n\n/**\n * returns the item in middle of a list and its neighbours before and after\n * e.g. [1,2,3,4,5,6] for item = 1 would return [5,6,1,2,3]\n */\nexport const getNeighbours = <T>(list: T[], item: T, neighbourDistance: number = 2) => {\n const index = list.indexOf(item)\n const totalItems = neighbourDistance * 2 + 1\n if (list.length < totalItems) {\n console.warn('List is to short')\n return list\n }\n\n if (index === -1) {\n console.error('item not found in list')\n return list.splice(0, totalItems)\n }\n\n let start = index - neighbourDistance\n if (start < 0) {\n start += list.length\n }\n const end = (index + neighbourDistance + 1) % list.length\n\n const result: T[] = []\n let ignoreOnce = list.length === totalItems\n for (let i = start; i !== end || ignoreOnce; i = (i + 1) % list.length) {\n result.push(list[i]!)\n if (end === i && ignoreOnce) {\n ignoreOnce = false\n }\n }\n return result\n}\n\nexport const createLoopingListWithIndex = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n if (length < 0) {\n console.warn(`createLoopingList: length must be >= 0, given ${length}`)\n } else if (length === 0) {\n length = list.length\n }\n\n const returnList: [number, T][] = []\n\n if (forwards) {\n for (let i = startIndex; returnList.length < length; i = (i + 1) % list.length) {\n returnList.push([i, list[i]!])\n }\n } else {\n for (let i = startIndex; returnList.length < length; i = i === 0 ? i = list.length - 1 : i - 1) {\n returnList.push([i, list[i]!])\n }\n }\n\n return returnList\n}\n\nexport const createLoopingList = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n return createLoopingListWithIndex(list, startIndex, length, forwards).map(([_, item]) => item)\n}\n\n/**\n * @param list The list to be changed\n * @param move The shifting applied to the array (can be negative)\n */\nconst moveItems = <T>(list: T[], move: number = 0) => {\n const result = []\n let start = move\n if (start < 0) {\n start = list.length - move\n }\n start = start % list.length\n for (let i = 0; i < list.length; i++) {\n result[i] = list[(i + start) % list.length]\n }\n return result\n}\n\nfunction resolveSingleOrArray<T>(value: T | T[]): T[] {\n if (Array.isArray(value)) {\n return value\n } else if (value) {\n return [value]\n }\n return []\n}\n\nexport const ArrayUtil = {\n unique: <T>(list: T[]): T[] => {\n const seen = new Set<T>()\n return list.filter((item) => {\n if (seen.has(item)) {\n return false\n }\n seen.add(item)\n return true\n })\n },\n difference: <T>(list: T[], removeList: T[]): T[] => {\n const remove = new Set<T>(removeList)\n return list.filter((item) => !remove.has(item))\n },\n moveItems,\n resolveSingleOrArray\n}\n","import type { ButtonHTMLAttributes, ReactNode } from 'react'\nimport { forwardRef } 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\nexport const IconButtonUtil = {\n icon: [...ButtonColorUtil.solid, 'transparent'] 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 * The allowed colors for the IconButton\n */\nexport type IconButtonColor = typeof IconButtonUtil.icon[number]\n\n\n/**\n * The different sizes for a button\n */\ntype ButtonSizes = 'small' | 'medium' | 'large' | 'none'\n\ntype IconButtonSize = 'tiny' | 'small' | 'medium' | 'large' | 'none'\n\n/**\n * The shard properties between all button types\n */\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n /**\n * @default 'medium'\n */\n size?: ButtonSizes,\n}\n\nconst paddingMapping: Record<ButtonSizes, string> = {\n none: '',\n small: 'btn-sm',\n medium: 'btn-md',\n large: 'btn-lg'\n}\n\nconst iconPaddingMapping: Record<IconButtonSize, string> = {\n none: '',\n tiny: 'icon-btn-xs',\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 coloredHoverBackground?: boolean,\n}\n\n/**\n * The shard properties between all button types\n */\nexport type IconButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n /**\n * @default 'medium'\n */\n size?: IconButtonSize,\n color?: IconButtonColor,\n}\n\n/**\n * A button with a solid background and different sizes\n */\nexport const SolidButton = forwardRef<HTMLButtonElement, SolidButtonProps>(function SolidButton({\n children,\n color = 'primary',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }, ref) {\n const colorClasses = {\n primary: 'not-disabled:bg-button-solid-primary-background not-disabled:text-button-solid-primary-text',\n secondary: 'not-disabled:bg-button-solid-secondary-background not-disabled:text-button-solid-secondary-text',\n tertiary: 'not-disabled:bg-button-solid-tertiary-background not-disabled:text-button-solid-tertiary-text',\n positive: 'not-disabled:bg-button-solid-positive-background not-disabled:text-button-solid-positive-text',\n warning: 'not-disabled:bg-button-solid-warning-background not-disabled:text-button-solid-warning-text',\n negative: 'not-disabled:bg-button-solid-negative-background not-disabled:text-button-solid-negative-text',\n neutral: 'not-disabled:bg-button-solid-neutral-background not-disabled:text-button-solid-neutral-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'not-group-disabled:text-button-solid-primary-icon',\n secondary: 'not-group-disabled:text-button-solid-secondary-icon',\n tertiary: 'not-group-disabled:text-button-solid-tertiary-icon',\n positive: 'not-group-disabled:text-button-solid-positive-icon',\n warning: 'not-group-disabled:text-button-solid-warning-icon',\n negative: 'not-group-disabled:text-button-solid-negative-icon',\n neutral: 'not-group-disabled:text-button-solid-neutral-icon',\n }[color]\n\n return (\n <button\n ref={ref}\n onClick={onClick}\n className={clsx(\n 'group font-semibold',\n colorClasses,\n 'not-disabled:hover:brightness-90',\n 'disabled:text-disabled disabled:bg-disabled-background',\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx(\n iconColorClasses,\n 'group-disabled:text-disabled-icon'\n )}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx(\n iconColorClasses,\n 'group-disabled:text-disabled-icon'\n )}\n >\n {endIcon}\n </span>\n )}\n </button>\n )\n})\n\n/**\n * A button with an outline border and different sizes\n */\nexport const OutlineButton = ({\n children,\n color = 'primary',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n className,\n ...restProps\n }: OutlineButtonProps) => {\n const colorClasses = {\n primary: 'not-disabled:border-button-outline-primary-text not-disabled:text-button-outline-primary-text',\n }[color]\n\n const iconColorClasses = {\n primary: 'not-group-disabled:text-button-outline-primary-icon',\n }[color]\n return (\n <button\n onClick={onClick}\n className={clsx(\n 'group font-semibold bg-transparent border-2 ',\n 'not-disabled:hover:brightness-80',\n colorClasses,\n 'disabled:text-disabled disabled:border-disabled-outline',\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx(\n iconColorClasses,\n 'group-disabled:text-disabled-icon'\n )}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx(\n iconColorClasses,\n 'group-disabled:text-disabled-icon'\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 */\nexport const TextButton = ({\n children,\n color = 'neutral',\n size = 'medium',\n startIcon,\n endIcon,\n onClick,\n coloredHoverBackground = true,\n className,\n ...restProps\n }: TextButtonProps) => {\n const colorClasses = {\n primary: 'not-disabled:bg-transparent not-disabled:text-button-text-primary-text not-disabled:focus-visible:outline-button-text-primary-text',\n negative: 'not-disabled:bg-transparent not-disabled:text-button-text-negative-text not-disabled:focus-visible:outline-button-text-negative-text',\n neutral: 'not-disabled:bg-transparent not-disabled:text-button-text-neutral-text not-disabled:focus-visible:outline-button-text-neutral-text',\n }[color]\n\n const backgroundColor = {\n primary: 'not-disabled:hover:bg-button-text-primary-text/20 not-disabled:focus-visible:bg-button-text-primary-text/20',\n negative: 'not-disabled:hover:bg-button-text-negative-text/20 not-disabled:focus-visible:bg-button-text-negative-text/20',\n neutral: 'not-disabled:hover:bg-button-text-neutral-text/20 not-disabled:focus-visible:bg-button-text-neutral-text/20',\n }[color]\n\n const iconColorClasses = {\n primary: 'not-group-disabled:text-button-text-primary-icon',\n negative: 'not-group-disabled:text-button-text-negative-icon',\n neutral: 'not-group-disabled:text-button-text-neutral-icon',\n }[color]\n\n return (\n <button\n onClick={onClick}\n className={clsx(\n 'group font-semibold',\n 'disabled:text-disabled',\n colorClasses,\n {\n [backgroundColor]: coloredHoverBackground,\n 'not-disabled:hover:bg-button-text-hover-background': !coloredHoverBackground,\n },\n ButtonUtil.paddingMapping[size],\n className\n )}\n {...restProps}\n >\n {startIcon && (\n <span\n className={clsx(\n iconColorClasses,\n 'group-disabled:text-disabled-icon'\n )}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n className={clsx(\n iconColorClasses,\n 'group-disabled:text-disabled-icon'\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 */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton({\n children,\n color = 'primary',\n size = 'medium',\n className,\n ...restProps\n }, ref)\n{\n const colorClasses = {\n primary: 'not-disabled:bg-button-solid-primary-background not-disabled:text-button-solid-primary-text',\n secondary: 'not-disabled:bg-button-solid-secondary-background not-disabled:text-button-solid-secondary-text',\n tertiary: 'not-disabled:bg-button-solid-tertiary-background not-disabled:text-button-solid-tertiary-text',\n positive: 'not-disabled:bg-button-solid-positive-background not-disabled:text-button-solid-positive-text',\n warning: 'not-disabled:bg-button-solid-warning-background not-disabled:text-button-solid-warning-text',\n negative: 'not-disabled:bg-button-solid-negative-background not-disabled:text-button-solid-negative-text',\n neutral: 'not-disabled:bg-button-solid-neutral-background not-disabled:text-button-solid-neutral-text',\n transparent: 'not-disabled:bg-transparent',\n }[color]\n\n return (\n <button\n ref={ref}\n className={clsx(\n colorClasses,\n 'not-disabled:hover:brightness-90',\n 'disabled:text-disabled',\n {\n 'disabled:bg-disabled-background': color !== 'transparent',\n 'disabled:opacity-70': color === 'transparent',\n 'not-disabled:hover:bg-button-text-hover-background': color === 'transparent',\n },\n ButtonUtil.iconPaddingMapping[size],\n className\n )}\n {...restProps}\n >\n {children}\n </button>\n )\n})","'use client'\n\nimport type { MutableRefObject } from 'react'\nimport { useCallback, useEffect, useId, useRef, useState } from 'react'\nimport { useIsMounted } from '@/src/hooks/focus/useIsMounted'\n\nconst createFocusGuard = () => {\n const div = document.createElement('div')\n Object.assign(div.style, {\n opacity: '0',\n outline: 'none',\n boxShadow: 'none',\n position: 'fixed',\n pointerEvents: 'none',\n touchAction: 'none',\n })\n div.tabIndex = 0\n div.setAttribute('data-hw-focus-guard', '')\n document.body.appendChild(div)\n return div\n}\n\nfunction getContainedFocusableElements(element: HTMLElement) {\n return element?.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n}\n\ntype ListenerType = {\n id: string,\n pause: () => void,\n unpause: () => void,\n focus: () => void,\n focusLast: () => void,\n container: MutableRefObject<HTMLElement>,\n initialFocusElement: MutableRefObject<HTMLElement>,\n}\n\nclass FocusTrapService {\n // The last entry is always the active one\n private listeners: ListenerType[] = []\n\n public getActive(): ListenerType | undefined {\n if (this.listeners.length === 0) return undefined\n return this.listeners[this.listeners.length - 1]\n }\n\n private focusElement() {\n const active = this.getActive()\n if(!active) return\n const { container, initialFocusElement } = active\n const containerElement = container.current\n // Try in the following order\n // 1. Focus the initial element\n // 2. Focus the first focusable element in the container\n // 3. Focus the container\n if (initialFocusElement?.current) {\n initialFocusElement.current.focus()\n } else {\n const elements = getContainedFocusableElements(containerElement)\n if (elements && elements.length > 0) {\n const first = elements.item(0) as HTMLElement\n first.focus()\n } else {\n containerElement.focus()\n }\n }\n }\n\n private onFocusIn = (event: FocusEvent) => {\n const active = this.getActive()\n if(!active || !active.container.current) return\n const { container } = active\n if (!container.current.contains(event.target as HTMLElement)) {\n this.focusElement()\n }\n }\n\n private removeGuards() {\n document.querySelectorAll('[data-hw-focus-guard]').forEach((node) => node.remove())\n }\n\n private addGuards() {\n document.body.insertAdjacentElement('afterbegin', createFocusGuard())\n document.body.insertAdjacentElement('beforeend', createFocusGuard())\n }\n\n private activate() {\n document.addEventListener('focusin', this.onFocusIn)\n this.addGuards()\n }\n\n private deactivate() {\n document.removeEventListener('focusin', this.onFocusIn)\n this.removeGuards()\n }\n\n register(listener: ListenerType) {\n this.listeners.push(listener)\n if (this.listeners.length === 1) {\n this.activate()\n }\n const active = listener\n this.listeners.forEach((listener) => {\n const { focus, pause } = listener\n if (listener === active) {\n focus()\n } else {\n pause()\n }\n })\n }\n\n unregister(id: string) {\n const index = this.listeners.findIndex(trap => trap.id === id)\n if (index !== -1) {\n const isActive = index === this.listeners.length - 1\n const listener = this.listeners[index]\n this.listeners = this.listeners.filter(listener => listener.id !== id)\n if (isActive) {\n // Deactivate all focus traps\n this.deactivate()\n // Focus last element in previous focus context\n listener.focusLast()\n // Activate and pause remaining focus traps\n const active = this.getActive()\n this.listeners.forEach((listener) => {\n const { pause, unpause } = listener\n if (listener === active) {\n unpause()\n } else {\n pause()\n }\n })\n // Reactivate\n if (this.listeners.length > 0) {\n this.activate()\n }\n }\n } else {\n console.warn(`Unable to unregister id ${id}: not found`)\n }\n }\n}\n\nconst service = new FocusTrapService()\n\nexport type UseFocusTrapProps = {\n container: MutableRefObject<HTMLElement>,\n active?: boolean,\n initialFocus?: MutableRefObject<HTMLElement>,\n /**\n * Whether to focus the first element when the initialFocus isn't provided\n *\n * Focuses the container instead\n */\n focusFirst?: boolean,\n}\n\nexport const useFocusTrap = ({\n container,\n active = true,\n initialFocus,\n focusFirst = true,\n }: UseFocusTrapProps) => {\n const lastFocusRef = useRef<HTMLElement | null>(null)\n const [paused, setPaused] = useState(false)\n const isMounted = useIsMounted()\n const id = useId()\n\n const focusElement = useCallback(() => {\n const containerElement = container.current\n // Try in the following order\n // 1. Focus the initial element\n // 2. Focus the first focusable element in the container\n // 3. Focus the container\n if (initialFocus?.current) {\n initialFocus.current.focus()\n } else {\n const elements = getContainedFocusableElements(containerElement)\n if (elements && elements.length > 0) {\n const first = elements.item(0) as HTMLElement\n first.focus()\n } else {\n containerElement.focus()\n }\n }\n }, [container, initialFocus])\n\n useEffect(() => {\n if (active && isMounted) {\n if (!lastFocusRef.current) {\n lastFocusRef.current = document.activeElement as HTMLElement\n }\n\n function pause() {\n setPaused(true)\n }\n\n function unpause() {\n setPaused(false)\n if (!container.current.contains(document.activeElement as HTMLElement)) {\n focusElement()\n }\n }\n\n function focus() {\n focusElement()\n setPaused(false)\n }\n\n function focusLast() {\n lastFocusRef.current?.focus()\n }\n\n service.register({ id, pause, focus, focusLast, unpause, container, initialFocusElement: initialFocus })\n return () => {\n service.unregister(id)\n lastFocusRef.current = undefined\n }\n }\n }, [active, container, focusElement, id, initialFocus, isMounted])\n\n useEffect(() => {\n if (active && !paused && isMounted) {\n const containerElement = container.current\n\n function onKeyDown(event: KeyboardEvent) {\n const key = event.key\n const elements = getContainedFocusableElements(containerElement)\n const active = document.activeElement as HTMLElement\n const index = [...elements].findIndex(value => value === active)\n if (index === -1 || event.altKey || event.ctrlKey || event.metaKey) {\n return\n }\n if (key === 'Tab') {\n const next = event.shiftKey ? -1 : 1\n const nextIndex = (index + next + elements.length) % elements.length\n const nextElement = elements[nextIndex] as HTMLElement\n nextElement.focus()\n event.preventDefault()\n }\n }\n\n // Register and unregister the listeners\n containerElement.addEventListener('keydown', onKeyDown)\n return () => {\n containerElement.removeEventListener('keydown', onKeyDown)\n }\n }\n }, [active, paused, isMounted, container, initialFocus, focusFirst, focusElement])\n}","'use client'\n\nimport { useEffect, useLayoutEffect, useState } from 'react'\n\nconst isClient = typeof window !== 'undefined' && typeof document !== 'undefined'\nconst useIsomorphicEffect = isClient ? useLayoutEffect : useEffect\n\nexport const useIsMounted = () => {\n const [isMounted, setIsMounted] = useState(false)\n\n useIsomorphicEffect(() => {\n setIsMounted(true)\n return () => {\n setIsMounted(false)\n }\n }, [])\n return isMounted\n}","import { useEffect, useState } from 'react'\n\ntype OptionsResolved = {\n type?: 'info' | 'error' | 'warning',\n}\n\nconst defaultOptions: OptionsResolved = {\n type: 'warning',\n}\n\ntype Options = Partial<OptionsResolved>\n\nexport const useLogOnce = (\n message: string,\n condition: boolean,\n options?: Options\n) => {\n const [hasLogged, setHasLogged] = useState<boolean>(false)\n const { type } = { ...defaultOptions, ...options }\n\n useEffect(() => {\n if (!hasLogged && condition) {\n switch (type) {\n case 'info':\n console.info(message)\n break\n case 'error':\n console.error(message)\n break\n case 'warning':\n console.warn(message)\n break\n }\n setHasLogged(true)\n }\n }, [condition]) // eslint-disable-line react-hooks/exhaustive-deps\n}","import type { ButtonHTMLAttributes, HTMLAttributes, PropsWithChildren, ReactNode } from 'react'\nimport React, {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react'\nimport clsx from 'clsx'\nimport { useHightideTranslation } from '@/src/i18n/useHightideTranslation'\nimport { ExpansionIcon } from '@/src/components/layout/Expandable'\nimport { useFocusTrap } from '@/src/hooks/focus/useFocusTrap'\nimport { match } from '@/src/utils/match'\nimport { CheckIcon, Plus, XIcon } from 'lucide-react'\nimport { Chip } from '@/src/components/layout/Chip'\nimport { IconButton, TextButton } from '@/src/components/user-action/Button'\nimport type { UseFloatingElementOptions } from '@/src/hooks/useFloatingElement'\nimport { useFloatingElement } from '@/src/hooks/useFloatingElement'\nimport { createPortal } from 'react-dom'\nimport { useOverwritableState } from '@/src/hooks/useOverwritableState'\n\n//\n// Context\n//\ntype RegisteredOption = {\n value: string,\n label: ReactNode,\n disabled: boolean,\n ref: React.RefObject<HTMLLIElement>,\n}\n\ntype HighlightStartPositionBehavior = 'first' | 'last'\ntype SelectIconAppearance = 'left' | 'right' | 'none'\n\ntype InternalSelectContextState = {\n isOpen: boolean,\n options: RegisteredOption[],\n highlightedValue?: string,\n}\n\ntype SelectContextState = InternalSelectContextState & {\n id: string,\n value: string[],\n disabled: boolean,\n invalid: boolean,\n selectedOptions: RegisteredOption[],\n}\n\ntype SelectConfiguration = {\n isMultiSelect: boolean,\n iconAppearance: SelectIconAppearance,\n}\n\ntype ToggleOpenOptions = {\n highlightStartPositionBehavior?: HighlightStartPositionBehavior,\n}\n\nconst defaultToggleOpenOptions: ToggleOpenOptions = {\n highlightStartPositionBehavior: 'first',\n}\n\ntype SelectContextType = {\n state: SelectContextState,\n config: SelectConfiguration,\n item: {\n register: (item: RegisteredOption) => void,\n unregister: (value: string) => void,\n toggleSelection: (value: string, isSelected?: boolean) => void,\n highlightItem: (value: string) => void,\n moveHighlightedIndex: (delta: number) => void,\n },\n trigger: {\n ref: React.RefObject<HTMLElement>,\n register: (element: React.RefObject<HTMLElement>) => void,\n unregister: () => void,\n toggleOpen: (isOpen?: boolean, options?: ToggleOpenOptions) => void,\n },\n}\n\nconst SelectContext = createContext<SelectContextType | null>(null)\n\nfunction useSelectContext() {\n const ctx = useContext(SelectContext)\n if (!ctx) {\n throw new Error('SelectContext must be used within a ListBoxPrimitive')\n }\n return ctx\n}\n\n\n//\n// SelectRoot\n//\nexport type SelectRootProps = PropsWithChildren<{\n id?: string,\n value?: string,\n onValueChanged?: (value: string) => void,\n values?: string[],\n onValuesChanged?: (value: string[]) => void,\n isOpen?: boolean,\n disabled?: boolean,\n invalid?: boolean,\n isMultiSelect?: boolean,\n iconAppearance?: SelectIconAppearance,\n}>\n\nexport const SelectRoot = ({\n children,\n id,\n value,\n onValueChanged,\n values,\n onValuesChanged,\n isOpen = false,\n disabled = false,\n invalid = false,\n isMultiSelect = false,\n iconAppearance = 'left',\n }: SelectRootProps) => {\n const triggerRef = useRef<HTMLElement>(null)\n const generatedId = useId()\n const usedId = id ?? generatedId\n\n const [internalState, setInternalState] = useState<InternalSelectContextState>({\n isOpen,\n options: [],\n })\n\n const selectedValues = useMemo(() => isMultiSelect ? (values ?? []) : [value].filter(Boolean),\n [isMultiSelect, value, values])\n const selectedOptions = useMemo(() =>\n selectedValues.map(value => internalState.options.find(option => value === option.value)).filter(Boolean),\n [selectedValues, internalState.options])\n const state: SelectContextState = {\n ...internalState,\n id: usedId,\n disabled,\n invalid,\n value: selectedValues,\n selectedOptions,\n }\n\n const config: SelectConfiguration = {\n isMultiSelect,\n iconAppearance,\n }\n\n const registerItem = useCallback((item: RegisteredOption) => {\n setInternalState(prev => {\n const updatedOptions = [...prev.options, item]\n updatedOptions.sort((a, b) => {\n const aEl = a.ref.current\n const bEl = b.ref.current\n if (!aEl || !bEl) return 0\n return aEl.compareDocumentPosition(bEl) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1\n })\n return {\n ...prev,\n options: updatedOptions,\n }\n })\n }, [])\n\n const unregisterItem = useCallback((value: string) => {\n setInternalState(prev => {\n const updatedOptions = prev.options.filter(i => i.value !== value)\n return {\n ...prev,\n options: updatedOptions,\n }\n })\n }, [])\n\n // Setting isSelected to false only works for multiselects\n const toggleSelection = (value: string, isSelected?: boolean) => {\n if (disabled) {\n return\n }\n const option = state.options.find(i => i.value === value)\n if (!option) {\n console.error(`SelectOption with value: ${value} not found`)\n return\n }\n\n let newValue: string[]\n if (isMultiSelect) {\n const isSelectedBefore = state.value.includes(value)\n const isSelectedAfter = isSelected ?? !isSelectedBefore\n if (!isSelectedAfter) {\n newValue = state.value.filter(v => v !== value)\n } else {\n newValue = [...state.value, value]\n }\n } else {\n newValue = [value]\n }\n\n if (!isMultiSelect) {\n onValueChanged?.(newValue[0])\n } else {\n onValuesChanged?.(newValue)\n }\n\n setInternalState(prevState => ({\n ...prevState,\n highlightedValue: value,\n }))\n }\n\n const highlightItem = (value: string) => {\n if (disabled) {\n return\n }\n setInternalState(prevState => ({\n ...prevState,\n highlightedValue: value,\n }))\n }\n\n const registerTrigger = useCallback((ref: React.RefObject<HTMLElement>) => {\n triggerRef.current = ref.current\n }, [])\n\n const unregisterTrigger = useCallback(() => {\n triggerRef.current = null\n }, [])\n\n const toggleOpen = (isOpen?: boolean, toggleOpenOptions?: ToggleOpenOptions) => {\n const { highlightStartPositionBehavior } = { ...defaultToggleOpenOptions, ...toggleOpenOptions }\n let firstSelectedValue: string | undefined\n let firstEnabledValue: string | undefined\n for (let i = 0; i < state.options.length; i++) {\n const currentOption = state.options[highlightStartPositionBehavior === 'first' ? i : state.options.length - i - 1]\n if (!currentOption.disabled) {\n if (!firstEnabledValue) {\n firstEnabledValue = currentOption.value\n }\n if (selectedValues.includes(currentOption.value)) {\n firstSelectedValue = currentOption.value\n break\n }\n }\n }\n setInternalState(prevState => ({\n ...prevState,\n isOpen: isOpen ?? !prevState.isOpen,\n highlightedValue: firstSelectedValue ?? firstEnabledValue\n }))\n }\n\n const moveHighlightedIndex = (delta: number) => {\n let highlightedIndex = state.options.findIndex(value => value.value === internalState.highlightedValue)\n if (highlightedIndex === -1) {\n highlightedIndex = 0\n }\n const optionLength = state.options.length\n const startIndex = (highlightedIndex + (delta % optionLength) + optionLength) % optionLength\n const isForward = delta >= 0\n let highlightedValue = state.options[startIndex].value\n for (let i = 0; i < state.options.length; i++) {\n const index = (startIndex + (isForward ? i : -i) + optionLength) % optionLength\n if (!state.options[index].disabled) {\n highlightedValue = state.options[index].value\n break\n }\n }\n\n setInternalState(prevState => ({\n ...prevState,\n highlightedValue,\n }))\n }\n\n useEffect(() => {\n if (!internalState.highlightedValue) return\n const highlighted = internalState.options.find(value => value.value === internalState.highlightedValue)\n if (highlighted) {\n highlighted.ref.current?.scrollIntoView({ behavior: 'instant', block: 'nearest' })\n } else {\n console.error(`SelectRoot: Could not find highlighted value (${internalState.highlightedValue})`)\n }\n }, [internalState.highlightedValue])\n\n const contextValue: SelectContextType = {\n state,\n config,\n item: {\n register: registerItem,\n unregister: unregisterItem,\n toggleSelection,\n highlightItem,\n moveHighlightedIndex,\n },\n trigger: {\n ref: triggerRef,\n register: registerTrigger,\n unregister: unregisterTrigger,\n toggleOpen,\n },\n }\n\n return (\n <SelectContext.Provider value={contextValue}>\n {children}\n </SelectContext.Provider>\n )\n}\n\n//\n// SelectOption\n//\nexport type SelectOptionProps = Omit<HTMLAttributes<HTMLLIElement>, 'children'> & {\n value: string,\n disabled?: boolean,\n iconAppearance?: SelectIconAppearance,\n children?: ReactNode,\n}\n\nexport const SelectOption = forwardRef<HTMLLIElement, SelectOptionProps>(\n function SelectOption({ children, value, disabled = false, iconAppearance, className, ...restProps }, ref) {\n const { state, config, item, trigger } = useSelectContext()\n const { register, unregister, toggleSelection, highlightItem } = item\n const itemRef = useRef<HTMLLIElement>(null)\n\n iconAppearance ??= config.iconAppearance\n\n const label = children ?? value\n\n // Register with parent\n useEffect(() => {\n register({\n value,\n label,\n disabled,\n ref: itemRef,\n })\n return () => unregister(value)\n }, [value, disabled, register, unregister, children, label])\n\n const isHighlighted = state.highlightedValue === value\n const isSelected = state.value.includes(value)\n\n return (\n <li\n {...restProps}\n ref={(node) => {\n itemRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as React.MutableRefObject<HTMLLIElement | null>).current = node\n }}\n id={value}\n role=\"option\"\n aria-disabled={disabled}\n aria-selected={isSelected}\n data-highlighted={isHighlighted ? '' : undefined}\n data-selected={isSelected ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n className={clsx(\n 'flex-row-1 items-center px-2 py-1 rounded-md',\n 'data-highlighted:bg-primary/20',\n 'data-disabled:text-disabled data-disabled:cursor-not-allowed',\n 'not-data-disabled:cursor-pointer',\n className\n )}\n onClick={(event) => {\n if (!disabled) {\n toggleSelection(value)\n if (!config.isMultiSelect) {\n trigger.toggleOpen(false)\n }\n restProps.onClick?.(event)\n }\n }}\n onMouseEnter={(event) => {\n if (!disabled) {\n highlightItem(value)\n restProps.onMouseEnter?.(event)\n }\n }}\n >\n {iconAppearance === 'left' && (\n <CheckIcon\n className={clsx('w-4 h-4', { 'opacity-0': !isSelected || disabled })}\n aria-hidden={true}\n />\n )}\n {label}\n {iconAppearance === 'right' && (\n <CheckIcon\n className={clsx('w-4 h-4', { 'opacity-0': !isSelected || disabled })}\n aria-hidden={true}\n />\n )}\n </li>\n )\n }\n)\n\n///\n/// SelectButton\n///\ntype SelectButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n placeholder?: ReactNode,\n selectedDisplay?: (value: string[]) => ReactNode,\n}\n\nexport const SelectButton = forwardRef<HTMLButtonElement, SelectButtonProps>(function SelectButton(\n { placeholder, selectedDisplay, ...props }, ref\n) {\n const translation = useHightideTranslation()\n const { state, trigger } = useSelectContext()\n const { register, unregister, toggleOpen } = trigger\n\n const innerRef = useRef<HTMLButtonElement>(null)\n useImperativeHandle(ref, () => innerRef.current)\n\n useEffect(() => {\n register(innerRef)\n return () => unregister()\n }, [register, unregister])\n\n const disabled = !!props?.disabled || !!state.disabled\n const invalid = state.invalid\n const hasValue = state.value.length > 0\n\n return (\n <button\n {...props}\n ref={innerRef}\n id={state.id} // TODO allow for a custom id here\n disabled={disabled}\n\n onClick={(event) => {\n props.onClick?.(event)\n toggleOpen(!state.isOpen)\n }}\n onKeyDown={event => {\n props.onKeyDown?.(event)\n switch (event.key) {\n case 'ArrowDown':\n toggleOpen(true, { highlightStartPositionBehavior: 'first' })\n event.preventDefault()\n event.stopPropagation()\n break\n case 'ArrowUp':\n toggleOpen(true, { highlightStartPositionBehavior: 'last' })\n event.preventDefault()\n event.stopPropagation()\n break\n }\n }}\n\n className={clsx(\n 'flex-row-2 items-center justify-between rounded-md px-3 py-2',\n {\n 'bg-input-background text-placeholder': !hasValue && !disabled && !invalid,\n 'bg-input-background text-input-text': hasValue && !disabled && !invalid,\n 'bg-negative/20': !disabled && invalid,\n 'text-placeholder': !hasValue && !disabled,\n 'text-negative': hasValue && !disabled && invalid,\n 'bg-disabled-background text-disabled': disabled,\n },\n props.className\n )}\n\n data-placeholder={!hasValue ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n data-invalid={invalid ? '' : undefined}\n\n aria-invalid={invalid}\n aria-disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={state.isOpen}\n aria-controls={state.isOpen ? `${state.id}-listbox` : undefined}\n >\n {hasValue ?\n selectedDisplay?.(state.value) ?? (\n <div className={clsx('flex flex-wrap gap-x-1 gap-y-2')}>\n {state.selectedOptions.map(({ value, label }, index) => (\n <span key={value} className=\"flex-row-0\">\n {label}\n {index < state.value.length - 1 && (<span>{','}</span>)}\n </span>\n ))}\n </div>\n )\n : placeholder ?? translation('clickToSelect')\n }\n <ExpansionIcon\n isExpanded={state.isOpen}\n className={clsx({\n 'text-input-text': !disabled && !invalid,\n 'text-negative': !disabled && invalid,\n 'text-disabled': disabled,\n })}\n />\n </button>\n )\n})\n\n///\n/// SelectChipDisplay\n///\ntype SelectChipDisplayProps = HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean,\n placeholder?: ReactNode,\n}\n\nexport const SelectChipDisplay = forwardRef<HTMLDivElement, SelectChipDisplayProps>(function SelectChipDisplay(\n { ...props }, ref\n) {\n const { state, trigger, item } = useSelectContext()\n const { register, unregister, toggleOpen } = trigger\n\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current)\n\n useEffect(() => {\n register(innerRef)\n return () => unregister()\n }, [register, unregister])\n\n const disabled = !!props?.disabled || !!state.disabled\n const invalid = state.invalid\n\n return (\n <div\n {...props}\n ref={innerRef}\n className={clsx(\n 'flex flex-wrap flex-row gap-2 items-center bg-input-background text-input-text rounded-md px-2.5 py-2.5',\n props.className\n )}\n data-disabled={disabled ? '' : undefined}\n data-invalid={invalid ? '' : undefined}\n\n aria-invalid={invalid}\n aria-disabled={disabled}\n >\n {state.selectedOptions.map(({ value, label }) => (\n <Chip key={value} className=\"gap-x-2\">\n {label}\n <TextButton\n // TODO add label to indicate purpose to screen reader\n onClick={() => {\n item.toggleSelection(value, false)\n }}\n size=\"none\"\n color=\"negative\"\n className=\"flex-row-0 items-center px-0.5 py-0.5 w-6 h-6 rounded\"\n >\n <XIcon className=\"w-5 h-5\"/>\n </TextButton>\n </Chip>\n ))}\n <IconButton\n id={state.id} // TODO allow for a custom id here\n onClick={() => toggleOpen()}\n onKeyDown={event => {\n switch (event.key) {\n case 'ArrowDown':\n toggleOpen(true, { highlightStartPositionBehavior: 'first' })\n break\n case 'ArrowUp':\n toggleOpen(true, { highlightStartPositionBehavior: 'last' })\n }\n }}\n size=\"small\"\n color=\"neutral\"\n\n aria-invalid={invalid}\n aria-disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={state.isOpen}\n aria-controls={state.isOpen ? `${state.id}-listbox` : undefined}\n >\n <Plus/>\n </IconButton>\n </div>\n )\n})\n\n\n///\n/// SelectContent\n///\ntype Orientation = 'vertical' | 'horizontal'\n\nexport type SelectContentProps = HTMLAttributes<HTMLUListElement> & {\n alignment?: Pick<UseFloatingElementOptions, 'gap' | 'horizontalAlignment' | 'verticalAlignment'>,\n orientation?: Orientation,\n containerClassName?: string,\n}\n\nexport const SelectContent = forwardRef<HTMLUListElement, SelectContentProps>(\n function SelectContent({\n alignment,\n orientation = 'vertical',\n containerClassName,\n ...props\n }, ref) {\n const innerRef = useRef<HTMLUListElement | null>(null)\n useImperativeHandle(ref, () => innerRef.current)\n\n const { trigger, state, config, item } = useSelectContext()\n\n const position = useFloatingElement({\n active: state.isOpen,\n anchorRef: trigger.ref,\n containerRef: innerRef,\n ...alignment,\n })\n\n useFocusTrap({\n container: innerRef,\n active: state.isOpen && !!position,\n })\n\n return createPortal(\n <div\n id={`select-container-${state.id}`} className={clsx('fixed inset-0 w-screen h-screen', containerClassName)}\n hidden={!state.isOpen}\n >\n <div\n id={`select-background-${state.id}`}\n onClick={() => trigger.toggleOpen(false)}\n className={clsx('fixed inset-0 w-screen h-screen')}\n />\n <ul\n {...props}\n id={`${state.id}-listbox`}\n ref={innerRef}\n onKeyDown={(event) => {\n switch (event.key) {\n case 'Escape':\n trigger.toggleOpen(false)\n event.preventDefault()\n event.stopPropagation()\n break\n case match(orientation, {\n vertical: 'ArrowDown',\n horizontal: 'ArrowUp'\n }):\n item.moveHighlightedIndex(1)\n event.preventDefault()\n break\n case match(orientation, {\n vertical: 'ArrowUp',\n horizontal: 'ArrowDown'\n }):\n item.moveHighlightedIndex(-1)\n event.preventDefault()\n break\n case 'Home':\n // TODO support later by selecting the first not disabled entry\n event.preventDefault()\n break\n case 'End':\n // TODO support later by selecting the last not disabled entry\n event.preventDefault()\n break\n case 'Enter': // Fall through\n case ' ':\n if (state.highlightedValue) {\n item.toggleSelection(state.highlightedValue)\n if (!config.isMultiSelect) {\n trigger.toggleOpen(false)\n }\n event.preventDefault()\n }\n break\n }\n }}\n\n className={clsx('flex-col-0 p-2 bg-menu-background text-menu-text rounded-md shadow-hw-bottom focus-style-within overflow-auto', props.className)}\n style={{\n opacity: position ? undefined : 0,\n position: 'fixed',\n ...position\n }}\n\n role=\"listbox\"\n aria-multiselectable={config.isMultiSelect}\n aria-orientation={orientation}\n tabIndex={position ? 0 : undefined}\n >\n {props.children}\n </ul>\n </div>, document.body\n )\n }\n)\n\n//\n// Select\n//\nexport type SelectProps = Omit<SelectRootProps, 'isMultiSelect' | 'values' | 'onValuesChanged'> & {\n contentPanelProps?: SelectContentProps,\n buttonProps?: Omit<SelectButtonProps, 'selectedDisplay'> & { selectedDisplay?: (value: string) => ReactNode },\n}\n\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(function Select({\n children,\n contentPanelProps,\n buttonProps,\n ...props\n }, ref) {\n return (\n <SelectRoot {...props} isMultiSelect={false}>\n <SelectButton\n ref={ref}\n {...buttonProps}\n selectedDisplay={values => {\n const value = values[0]\n if (!buttonProps?.selectedDisplay) return undefined\n return buttonProps.selectedDisplay(value)\n }}\n />\n <SelectContent {...contentPanelProps}>{children}</SelectContent>\n </SelectRoot>\n )\n})\n\n\nexport type SelectUncontrolledProps = SelectProps\nexport const SelectUncontrolled = forwardRef<HTMLButtonElement, SelectUncontrolledProps>(function SelectUncontrolled({\n value: initialValue,\n onValueChanged,\n ...props\n }, ref) {\n const [value, setValue] = useOverwritableState(initialValue, onValueChanged)\n\n return (\n <Select\n {...props}\n ref={ref}\n value={value}\n onValueChanged={setValue}\n />\n )\n})\n\n\n//\n// MultiSelect\n//\nexport type MultiSelectProps = Omit<SelectRootProps, 'isMultiSelect' | 'value' | 'onValueChanged'> & {\n contentPanelProps?: SelectContentProps,\n buttonProps?: SelectButtonProps,\n}\n\nexport const MultiSelect = forwardRef<HTMLButtonElement, MultiSelectProps>(function MultiSelect({\n children,\n contentPanelProps,\n buttonProps,\n ...props\n }, ref) {\n return (\n <SelectRoot {...props} isMultiSelect={true}>\n <SelectButton ref={ref} {...buttonProps} />\n <SelectContent {...contentPanelProps}>{children}</SelectContent>\n </SelectRoot>\n )\n})\n\n\nexport type MultiSelectUncontrolledProps = MultiSelectProps\nexport const MultiSelectUncontrolled = forwardRef<HTMLButtonElement, MultiSelectUncontrolledProps>(function MultiSelectUncontrolled({\n values: initialValues,\n onValuesChanged,\n ...props\n }, ref) {\n const [values, setValues] = useOverwritableState(initialValues, onValuesChanged)\n\n return (\n <MultiSelect\n {...props}\n ref={ref}\n values={values}\n onValuesChanged={setValues}\n />\n )\n})\n\n\n//\n// MultiSelectChipDisplay\n//\nexport type MultiSelectChipDisplayProps = Omit<SelectRootProps, 'isMultiSelect' | 'value' | 'onValueChanged'> & {\n contentPanelProps?: SelectContentProps,\n chipDisplayProps?: SelectChipDisplayProps,\n}\n\nexport const MultiSelectChipDisplay = forwardRef<HTMLDivElement, MultiSelectChipDisplayProps>(function MultiSelectChipDisplay({\n children,\n contentPanelProps,\n chipDisplayProps,\n ...props\n }, ref) {\n return (\n <SelectRoot {...props} isMultiSelect={true}>\n <SelectChipDisplay ref={ref} {...chipDisplayProps} />\n <SelectContent {...contentPanelProps}>{children}</SelectContent>\n </SelectRoot>\n )\n})\n\n\nexport type MultiSelectChipDisplayUncontrolledProps = MultiSelectChipDisplayProps\nexport const MultiSelectChipDisplayUncontrolled = forwardRef<HTMLDivElement, MultiSelectChipDisplayUncontrolledProps>(function MultiSelectChipDisplayUncontrolled({\n values: initialValues,\n onValuesChanged,\n ...props\n }, ref) {\n const [values, setValues] = useOverwritableState(initialValues, onValuesChanged)\n\n return (\n <MultiSelectChipDisplay\n {...props}\n ref={ref}\n values={values}\n onValuesChanged={setValues}\n />\n )\n})","import type { PropsWithChildren, ReactNode } from 'react'\nimport { forwardRef, useCallback, useId } from 'react'\nimport { ChevronDown } from 'lucide-react'\nimport clsx from 'clsx'\nimport { useOverwritableState } from '@/src/hooks/useOverwritableState'\n\nexport type ExpansionIconProps = {\n isExpanded?: boolean,\n className?: string,\n}\n\nexport const ExpansionIcon = ({ isExpanded, className }: ExpansionIconProps) => {\n return (\n <ChevronDown\n aria-hidden={true}\n className={clsx(\n 'min-w-6 w-6 min-h-6 h-6 transition-transform motion-safe:duration-200 motion-reduce:duration-0 ease-in-out',\n { 'rotate-180': isExpanded },\n className\n )}\n />\n )\n}\n\ntype IconBuilder = (expanded: boolean) => ReactNode\n\nexport type ExpandableProps = PropsWithChildren<{\n id?: string,\n label: ReactNode,\n icon?: IconBuilder,\n isExpanded?: boolean,\n onChange?: (isExpanded: boolean) => void,\n /**\n * Whether the expansion should only happen when the header is clicked or on the entire component\n */\n clickOnlyOnHeader?: boolean,\n disabled?: boolean,\n className?: string,\n headerClassName?: string,\n contentClassName?: string,\n contentExpandedClassName?: string,\n}>\n\n/**\n * A Component for showing and hiding content\n */\nexport const Expandable = forwardRef<HTMLDivElement, ExpandableProps>(function Expandable({\n children,\n id: providedId,\n label,\n icon,\n isExpanded = false,\n onChange,\n clickOnlyOnHeader = true,\n disabled = false,\n className,\n headerClassName,\n contentClassName,\n contentExpandedClassName,\n }, ref) {\n\n const defaultIcon = useCallback((expanded: boolean) => <ExpansionIcon isExpanded={expanded}/>, [])\n icon ??= defaultIcon\n\n const generatedId = useId()\n const id = providedId ?? generatedId\n\n return (\n <div\n ref={ref}\n onClick={() => !clickOnlyOnHeader && !disabled && onChange?.(!isExpanded)}\n\n className={clsx(\n 'flex-col-0 bg-surface text-on-surface group rounded-lg shadow-sm',\n { 'cursor-pointer': !clickOnlyOnHeader && !disabled }, className\n )}\n >\n <button\n onClick={() => clickOnlyOnHeader && !disabled && onChange?.(!isExpanded)}\n\n className={clsx(\n 'flex-row-2 py-2 px-4 rounded-lg justify-between items-center bg-surface text-on-surface select-none',\n {\n 'group-hover:brightness-97': !isExpanded,\n 'hover:brightness-97': isExpanded && !disabled,\n 'cursor-pointer': clickOnlyOnHeader && !disabled,\n },\n headerClassName\n )}\n\n aria-expanded={isExpanded}\n aria-controls={`${id}-content`}\n aria-disabled={disabled ?? undefined}\n >\n {label}\n {icon(isExpanded)}\n </button>\n <div\n id={`${id}-content`}\n className={clsx(\n 'flex-col-2 px-4 transition-all duration-300 ease-in-out',\n {\n [clsx('max-h-96 opacity-100 pb-2 overflow-y-auto', contentExpandedClassName)]: isExpanded,\n 'max-h-0 opacity-0 overflow-hidden': !isExpanded,\n },\n contentClassName\n )}\n\n role=\"region\"\n >\n {children}\n </div>\n </div>\n )\n})\n\nexport const ExpandableUncontrolled = forwardRef<HTMLDivElement, ExpandableProps>(function ExpandableUncontrolled({\n isExpanded,\n onChange,\n ...props\n },\n ref) {\n const [usedIsExpanded, setUsedIsExpanded] = useOverwritableState(isExpanded, onChange)\n\n return (\n <Expandable\n {...props}\n ref={ref}\n isExpanded={usedIsExpanded}\n onChange={setUsedIsExpanded}\n />\n )\n})\n","import type React from 'react'\nimport { useEffect, useState } from 'react'\nimport { resolveSetState } from '@/src/utils/resolveSetState'\n\nexport const useOverwritableState = <T>(initialValue?: T, onChange?: (value: T) => void): [T, React.Dispatch<React.SetStateAction<T>>] => {\n const [state, setState] = useState<T>(initialValue)\n\n useEffect(() => {\n setState(initialValue)\n }, [initialValue])\n\n const onChangeWrapper: React.Dispatch<React.SetStateAction<T>> = (action) => {\n const resolved = resolveSetState(action, state)\n setState(resolved)\n onChange?.(state)\n }\n\n return [state, onChangeWrapper]\n}","export const match = <K extends string | number | symbol, V>(key: K, values: Record<K, V>) => {\n return values[key]\n}","import type { HTMLAttributes, PropsWithChildren, ReactNode } from 'react'\nimport clsx from 'clsx'\n\nconst chipColors = ['default', 'dark', 'red', 'yellow', 'green', 'blue', 'pink', 'orange'] as const\nexport type ChipColor = typeof chipColors[number]\n\ntype ChipVariant = 'normal' | 'fullyRounded'\ntype ChipSize = 'sm' | 'md' | 'lg'\n\nexport const ChipUtil = {\n colors: chipColors,\n}\n\nexport type ChipProps = HTMLAttributes<HTMLDivElement> & PropsWithChildren<{\n color?: ChipColor,\n size?: ChipSize,\n icon?: boolean,\n variant?: ChipVariant,\n trailingIcon?: ReactNode,\n}>\n\n/**\n * A component for displaying a single chip\n */\nexport const Chip = ({\n children,\n trailingIcon,\n color = 'default',\n size = 'md',\n icon = false,\n variant = 'normal',\n className = '',\n ...restProps\n }: ChipProps) => {\n const colorMapping: string = {\n default: 'text-tag-default-text bg-tag-default-background',\n dark: 'text-tag-dark-text bg-tag-dark-background',\n red: 'text-tag-red-text bg-tag-red-background',\n yellow: 'text-tag-yellow-text bg-tag-yellow-background',\n green: 'text-tag-green-text bg-tag-green-background',\n blue: 'text-tag-blue-text bg-tag-blue-background',\n pink: 'text-tag-pink-text bg-tag-pink-background',\n orange: 'text-tag-orange-text bg-tag-orange-background',\n }[color]\n\n const colorMappingIcon: string = {\n default: 'text-tag-default-icon',\n dark: 'text-tag-dark-icon',\n red: 'text-tag-red-icon',\n yellow: 'text-tag-yellow-icon',\n green: 'text-tag-green-icon',\n blue: 'text-tag-blue-icon',\n pink: 'text-tag-pink-icon',\n orange: 'text-tag-orange-icon',\n }[color]\n\n return (\n <div\n {...restProps}\n className={clsx(\n `flex-row-0 w-fit font-semibold`,\n colorMapping,\n !icon ? {\n 'px-1 py-0.5': size === 'sm',\n 'px-2 py-1': size === 'md',\n 'px-4 py-2': size === 'lg',\n } : {\n 'p-0.5': size === 'sm',\n 'p-1': size === 'md',\n 'p-2': size === 'lg',\n },\n {\n 'rounded-md': variant === 'normal',\n 'rounded-full': variant === 'fullyRounded',\n },\n className\n )}\n >\n {children}\n {trailingIcon && (<span className={colorMappingIcon}>{trailingIcon}</span>)}\n </div>\n )\n}\n\nexport type ChipListProps = {\n list: ChipProps[],\n className?: string,\n}\n\n/**\n * A component for displaying a list of chips\n */\nexport const ChipList = ({\n list,\n className = ''\n }: ChipListProps) => {\n return (\n <div className={clsx('flex flex-wrap gap-x-2 gap-y-2', className)}>\n {list.map((value, index) => (\n <Chip\n key={index}\n {...value}\n color={value.color ?? 'default'}\n variant={value.variant ?? 'normal'}\n >\n {value.children}\n </Chip>\n ))}\n </div>\n )\n}\n","'use client'\n\nimport type { CSSProperties, MutableRefObject } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { clamp } from '@/src/utils/math'\nimport { useIsMounted } from '@/src/hooks/focus/useIsMounted'\n\nexport type FloatingElementAlignment = 'beforeStart' | 'afterStart' | 'center' | 'beforeEnd' | 'afterEnd'\n\ntype RectangleBounds = {\n top: number,\n right: number,\n bottom: number,\n left: number,\n width: number,\n height: number,\n}\n\ntype CalculatePositionOptions = {\n verticalAlignment?: FloatingElementAlignment,\n horizontalAlignment?: FloatingElementAlignment,\n screenPadding?: number,\n gap?: number,\n}\n\ntype CalculatePositionProps = {\n windowRect: RectangleBounds,\n containerRect: RectangleBounds,\n anchorRect: RectangleBounds,\n options: CalculatePositionOptions,\n}\n\ntype UseFloatingElementStyle = {\n left: number,\n top: number,\n maxWidth: number,\n maxHeight: number,\n}\n\nfunction calculatePosition({\n windowRect,\n containerRect,\n anchorRect,\n options,\n }: CalculatePositionProps): UseFloatingElementStyle {\n const { verticalAlignment, horizontalAlignment, gap, screenPadding } = options\n const windowWidth = windowRect.width\n const windowHeight = windowRect.height\n\n const maxWidth = windowWidth - 2 * screenPadding\n const maxHeight = windowHeight - 2 * screenPadding\n\n const width = Math.min(containerRect.width, maxWidth)\n const height = Math.min(containerRect.height, maxHeight)\n\n const leftSuggestion = {\n beforeStart: anchorRect.left - width - gap,\n afterStart: anchorRect.left,\n center: anchorRect.left + anchorRect.width / 2 - width / 2,\n beforeEnd: anchorRect.right - width,\n afterEnd: anchorRect.right + gap,\n }[horizontalAlignment]\n\n const topSuggestion = {\n beforeStart: anchorRect.top - height - gap,\n afterStart: anchorRect.top,\n center: anchorRect.top + anchorRect.height / 2 - height / 2,\n beforeEnd: anchorRect.bottom - height,\n afterEnd: anchorRect.bottom + gap,\n }[verticalAlignment]\n\n const left = clamp(leftSuggestion, [\n screenPadding,\n windowWidth - screenPadding - width,\n ])\n\n const top = clamp(topSuggestion, [\n screenPadding,\n windowHeight - screenPadding - height,\n ])\n\n return {\n left,\n top,\n maxWidth,\n maxHeight,\n }\n}\n\nexport type UseFloatingElementOptions = CalculatePositionOptions & {\n isPolling?: boolean,\n pollingInterval?: number,\n}\n\nexport type UseFloatingElementProps = UseFloatingElementOptions & {\n containerRef: MutableRefObject<HTMLElement>,\n anchorRef: MutableRefObject<HTMLElement>,\n windowRef?: MutableRefObject<HTMLElement>,\n active?: boolean,\n}\n\nexport function useFloatingElement({\n active = true,\n windowRef,\n anchorRef,\n containerRef,\n isPolling = false,\n pollingInterval = 100,\n verticalAlignment = 'afterEnd',\n horizontalAlignment = 'afterStart',\n screenPadding = 16,\n gap = 4,\n }: UseFloatingElementProps) {\n const [style, setStyle] = useState<CSSProperties>()\n const isMounted = useIsMounted()\n\n const calculate = useCallback(() => {\n const containerRect = containerRef.current.getBoundingClientRect()\n const windowRect: RectangleBounds = windowRef?.current.getBoundingClientRect() ?? {\n top: 0,\n bottom: window.innerHeight,\n left: 0,\n right: window.innerWidth,\n width: window.innerWidth,\n height: window.innerHeight,\n }\n const anchorElement = anchorRef?.current\n if (anchorRef && !anchorElement) {\n console.warn('FloatingContainer anchor provided, but its value is undefined')\n }\n const anchorRect: RectangleBounds = anchorElement?.getBoundingClientRect() ?? windowRect\n\n const calculateProps: CalculatePositionProps = {\n windowRect,\n anchorRect,\n containerRect,\n options: {\n horizontalAlignment,\n verticalAlignment,\n screenPadding,\n gap,\n }\n }\n setStyle(calculatePosition(calculateProps))\n }, [anchorRef, containerRef, gap, horizontalAlignment, screenPadding, verticalAlignment, windowRef])\n\n\n const height = containerRef.current?.getBoundingClientRect().height\n const width = containerRef.current?.getBoundingClientRect().width\n useEffect(() => {\n if (active && isMounted) {\n calculate()\n } else {\n setStyle(undefined)\n }\n }, [calculate, active, isMounted, height, width])\n\n useEffect(() => {\n window.addEventListener('resize', calculate)\n let timeout: NodeJS.Timeout\n if (isPolling) {\n timeout = setInterval(calculate, pollingInterval)\n }\n return () => {\n window.removeEventListener('resize', calculate)\n if (timeout) {\n clearInterval(timeout)\n }\n }\n }, [calculate, isPolling, pollingInterval])\n\n return style\n}","export const clamp = (value: number, range: [number, number] = [0, 1]): number => {\n const [min, max] = range\n return Math.min(Math.max(value, min), max)\n}\n","import type { PropsWithChildren, ReactNode } from 'react'\nimport type { DialogProps } from '@/src/components/dialog/Dialog'\nimport { Dialog } from '@/src/components/dialog/Dialog'\nimport { LocalizationUtil } from '@/src/i18n/util'\nimport { useLocale } from '@/src/i18n/LocaleProvider'\nimport { Select, SelectOption } from '@/src/components/user-action/select/Select'\nimport { SolidButton } from '@/src/components/user-action/Button'\nimport { useHightideTranslation } from '@/src/i18n/useHightideTranslation'\nimport type { HightideTranslationLocales } from '@/src/i18n/translations'\n\ntype LanguageDialogProps = Omit<DialogProps, 'titleElement' | 'description'> & PropsWithChildren<{\n titleOverwrite?: ReactNode,\n descriptionOverwrite?: ReactNode,\n}>\n\n/**\n * A Dialog for selecting the Language\n *\n * The State of open needs to be managed by the parent\n */\nexport const LanguageDialog = ({\n onClose,\n titleOverwrite,\n descriptionOverwrite,\n ...props\n }: LanguageDialogProps) => {\n const { locale, setLocale } = useLocale()\n const translation = useHightideTranslation()\n\n return (\n <Dialog\n titleElement={titleOverwrite ?? translation('language')}\n description={descriptionOverwrite ?? translation('chooseLanguage')}\n onClose={onClose}\n {...props}\n >\n <div className=\"w-64\">\n <Select\n value={locale}\n onValueChanged={(language: string) => setLocale(language as HightideTranslationLocales)}\n contentPanelProps={{ containerClassName: 'z-200' }}\n buttonProps={{\n selectedDisplay: locale => LocalizationUtil.languagesLocalNames[locale]\n }}\n >\n {LocalizationUtil.locals.map((local) => (\n <SelectOption key={local} value={local}>{LocalizationUtil.languagesLocalNames[local]}</SelectOption>\n ))}\n </Select>\n <div className=\"flex-row-4 mt-3 justify-end\">\n <SolidButton color=\"positive\" onClick={onClose}>\n {translation('done')}\n </SolidButton>\n </div>\n </div>\n </Dialog>\n )\n}\n"],"mappings":";AAGA,SAAS,SAAAA,cAAa;AACtB,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,OAAOC,WAAU;AACjB,SAAS,SAAS;;;ACLlB,SAAS,eAAe,YAAY,WAAW,SAAS,YAAAC,iBAAgB;;;ACExE,SAAS,aAAa,gBAAgB;;;ACD/B,SAAS,gBAAmB,QAA2B,MAAY;AACxE,SAAO,OAAO,WAAW,aAAc,OAA0B,IAAI,IAAI;AAC3E;;;ACCA,SAAS,sBAAsB;AAExB,IAAM,6BAA6B,CAAC,SAAS,OAAO;AAmIpD,IAAM,sBAAoG;AAAA,EAC/G,SAAS;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,IACT,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,sBAAsB;AAAA,IACtB,UAAU;AAAA,IACV,UAAU,CAAC,EAAE,OAAO,MAAc;AAChC,aAAO,eAAe,cAAc,QAAQ;AAAA,QAC1C,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,oBAAoB,CAAC,EAAE,KAAK,IAAI,MAAc;AAC5C,aAAO,0BAA0B,GAAG,QAAQ,GAAG;AAAA,IACjD;AAAA,IACA,4BAA4B,CAAC,EAAE,KAAK,IAAI,MAAc;AACpD,aAAO,yBAAsB,GAAG,QAAQ,GAAG;AAAA,IAC7C;AAAA,IACA,oBAAoB,CAAC,EAAE,KAAK,IAAI,MAAc;AAC5C,aAAO,0BAA0B,GAAG,QAAQ,GAAG;AAAA,IACjD;AAAA,IACA,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,eAAe,KAAK;AAAA,IAC7B;AAAA,IACA,SAAS;AAAA,IACT,mBAAmB;AAAA,IACnB,WAAW,CAAC,EAAE,OAAO,OAAO,MAAc;AACxC,aAAO,SAAS,KAAK,QAAQ,MAAM;AAAA,IACrC;AAAA,IACA,aAAa;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,IACA,UAAU,CAAC,EAAE,MAAM,MAAc;AAC/B,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,YAAY;AAAA,IACZ,gBAAgB,CAAC,EAAE,KAAK,MAAc;AACpC,aAAO,OAAO,IAAI;AAAA,IACpB;AAAA,IACA,cAAc;AAAA,IACd,eAAe;AAAA,IACf,gBAAgB,CAAC,EAAE,MAAM,MAAc;AACrC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,YAAY,CAAC,EAAE,MAAM,MAAc;AACjC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,eAAe,CAAC,EAAE,MAAM,MAAc;AACpC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,WAAW;AAAA,IACX,eAAe,CAAC,EAAE,KAAK,MAAc;AACnC,aAAO,MAAM,IAAI;AAAA,IACnB;AAAA,IACA,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,oBAAoB,CAAC,EAAE,MAAM,MAAc;AACzC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,oBAAoB,CAAC,EAAE,MAAM,MAAc;AACzC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,eAAe,CAAC,EAAE,MAAM,MAAc;AACpC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,cAAc,CAAC,EAAE,MAAM,MAAc;AACnC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,kBAAkB,CAAC,EAAE,MAAM,MAAc;AACvC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,aAAa;AAAA,QACb,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,mBAAmB,CAAC,EAAE,MAAM,MAAc;AACxC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,eAAe,CAAC,EAAE,MAAM,MAAc;AACpC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,kBAAkB;AAAA,IAClB,wBAAwB,CAAC,EAAE,IAAI,MAAc;AAC3C,aAAO,2BAAwB,GAAG;AAAA,IACpC;AAAA,IACA,WAAW,CAAC,EAAE,IAAI,MAAc;AAC9B,aAAO,8BAA2B,GAAG;AAAA,IACvC;AAAA,IACA,yBAAyB,CAAC,EAAE,IAAI,MAAc;AAC5C,aAAO,wBAAqB,GAAG;AAAA,IACjC;AAAA,IACA,YAAY,CAAC,EAAE,IAAI,MAAc;AAC/B,aAAO,4BAA4B,GAAG;AAAA,IACxC;AAAA,IACA,kBAAkB;AAAA,IAClB,8BAA8B;AAAA,IAC9B,UAAU;AAAA,IACV,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,IACT,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,sBAAsB;AAAA,IACtB,UAAU;AAAA,IACV,UAAU,CAAC,EAAE,OAAO,MAAc;AAChC,aAAO,eAAe,cAAc,QAAQ;AAAA,QAC1C,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,oBAAoB,CAAC,EAAE,KAAK,IAAI,MAAc;AAC5C,aAAO,6BAA6B,GAAG,QAAQ,GAAG;AAAA,IACpD;AAAA,IACA,4BAA4B,CAAC,EAAE,KAAK,IAAI,MAAc;AACpD,aAAO,WAAW,GAAG,QAAQ,GAAG;AAAA,IAClC;AAAA,IACA,oBAAoB,CAAC,EAAE,KAAK,IAAI,MAAc;AAC5C,aAAO,mCAAmC,GAAG,QAAQ,GAAG;AAAA,IAC1D;AAAA,IACA,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,IACA,SAAS;AAAA,IACT,mBAAmB;AAAA,IACnB,WAAW,CAAC,EAAE,OAAO,OAAO,MAAc;AACxC,aAAO,SAAS,KAAK,OAAO,MAAM;AAAA,IACpC;AAAA,IACA,aAAa;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,IACA,UAAU,CAAC,EAAE,MAAM,MAAc;AAC/B,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,YAAY;AAAA,IACZ,gBAAgB,CAAC,EAAE,KAAK,MAAc;AACpC,aAAO,QAAQ,IAAI;AAAA,IACrB;AAAA,IACA,cAAc;AAAA,IACd,eAAe;AAAA,IACf,gBAAgB,CAAC,EAAE,MAAM,MAAc;AACrC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,YAAY,CAAC,EAAE,MAAM,MAAc;AACjC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,eAAe,CAAC,EAAE,MAAM,MAAc;AACpC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,WAAW;AAAA,IACX,eAAe,CAAC,EAAE,KAAK,MAAc;AACnC,aAAO,MAAM,IAAI;AAAA,IACnB;AAAA,IACA,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,oBAAoB,CAAC,EAAE,MAAM,MAAc;AACzC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,oBAAoB,CAAC,EAAE,MAAM,MAAc;AACzC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,eAAe,CAAC,EAAE,MAAM,MAAc;AACpC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,cAAc,CAAC,EAAE,MAAM,MAAc;AACnC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,kBAAkB,CAAC,EAAE,MAAM,MAAc;AACvC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,aAAa;AAAA,QACb,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,mBAAmB,CAAC,EAAE,MAAM,MAAc;AACxC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,eAAe,CAAC,EAAE,MAAM,MAAc;AACpC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,aAAa,CAAC,EAAE,MAAM,MAAc;AAClC,aAAO,eAAe,cAAc,OAAO;AAAA,QACzC,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,kBAAkB;AAAA,IAClB,wBAAwB,CAAC,EAAE,IAAI,MAAc;AAC3C,aAAO,mBAAmB,GAAG;AAAA,IAC/B;AAAA,IACA,WAAW,CAAC,EAAE,IAAI,MAAc;AAC9B,aAAO,gCAAgC,GAAG;AAAA,IAC5C;AAAA,IACA,yBAAyB,CAAC,EAAE,IAAI,MAAc;AAC5C,aAAO,kBAAkB,GAAG;AAAA,IAC9B;AAAA,IACA,YAAY,CAAC,EAAE,IAAI,MAAc;AAC/B,aAAO,+BAA+B,GAAG;AAAA,IAC3C;AAAA,IACA,kBAAkB;AAAA,IAClB,8BAA8B;AAAA,IAC9B,UAAU;AAAA,IACV,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,EACT;AACF;;;AC7lBA,IAAM,cAA0D;AAAA,EAC9D,SAAS;AAAA,EACT,SAAS;AACX;AAKA,IAAM,iBAA6C;AAEnD,SAAS,iBAAiB,QAAoC;AAC5D,SAAO,OAAO,MAAM,GAAG,EAAE,CAAC;AAC5B;AAKO,IAAM,mBAAmB;AAAA,EAC9B,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB;AAAA,EACA,qBAAqB;AACvB;;;AJsDI;AAvEG,IAAM,gBAAgB,cAAkC;AAAA,EAC7D,QAAQ,iBAAiB;AAAA,EACzB,WAAW,CAAC,MAAM;AACpB,CAAC;AAoFM,IAAM,YAAY,MAAM;AAC7B,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,2FAA2F;AAAA,EAC7G;AACA,SAAO;AACT;;;AKlGA,SAAS,oBAAoB,eAAe;;;AC8H5C,IAAM,YAAY,CAAI,MAAW,OAAe,MAAM;AACpD,QAAM,SAAS,CAAC;AAChB,MAAI,QAAQ;AACZ,MAAI,QAAQ,GAAG;AACb,YAAQ,KAAK,SAAS;AAAA,EACxB;AACA,UAAQ,QAAQ,KAAK;AACrB,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,WAAO,CAAC,IAAI,MAAM,IAAI,SAAS,KAAK,MAAM;AAAA,EAC5C;AACA,SAAO;AACT;AAEA,SAAS,qBAAwB,OAAqB;AACpD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO;AAAA,EACT,WAAW,OAAO;AAChB,WAAO,CAAC,KAAK;AAAA,EACf;AACA,SAAO,CAAC;AACV;AAEO,IAAM,YAAY;AAAA,EACvB,QAAQ,CAAI,SAAmB;AAC7B,UAAM,OAAO,oBAAI,IAAO;AACxB,WAAO,KAAK,OAAO,CAAC,SAAS;AAC3B,UAAI,KAAK,IAAI,IAAI,GAAG;AAClB,eAAO;AAAA,MACT;AACA,WAAK,IAAI,IAAI;AACb,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EACA,YAAY,CAAI,MAAW,eAAyB;AAClD,UAAM,SAAS,IAAI,IAAO,UAAU;AACpC,WAAO,KAAK,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AACF;;;ADnHO,SAAS,uBACd,YACA,YACA;AACA,QAAM,EAAE,QAAQ,eAAe,IAAI,UAAU;AAC7C,QAAM,SAAS,YAAY,UAAU;AACrC,QAAM,wBAAwB,UAAU,qBAAqB,UAAU;AAEvE,SAAO,mBAAmF;AAAA,IACxF,GAAG;AAAA,IACH;AAAA,EACF,GAAG,MAAM;AACX;;;AEnEA,SAAS,kBAAkB;AAC3B,OAAO,UAAU;AAoIb,SAcI,OAAAC,MAdJ;AAjIG,IAAM,kBAAkB;AAAA,EAC7B,OAAO,CAAC,WAAW,aAAa,YAAY,YAAY,WAAW,YAAY,SAAS;AAAA,EACxF,MAAM,CAAC,WAAW,YAAY,SAAS;AAAA,EACvC,SAAS,CAAC,SAAS;AACrB;AAEO,IAAM,iBAAiB;AAAA,EAC5B,MAAM,CAAC,GAAG,gBAAgB,OAAO,aAAa;AAChD;AAsCA,IAAM,iBAA8C;AAAA,EAClD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAM,qBAAqD;AAAA,EACzD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAkCO,IAAM,cAAc,WAAgD,SAASC,aAAY;AAAA,EACL;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG,KAAK;AAC/F,QAAM,eAAe;AAAA,IACnB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACX,EAAE,KAAK;AAEP,QAAM,mBAAmB;AAAA,IACvB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACX,EAAE,KAAK;AAEP,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,eAAe,IAAI;AAAA,QAC9B;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,qBACC,gBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,QAED;AAAA,QACA,WACC,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YAEC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EAEJ;AAEJ,CAAC;AA+DM,IAAM,aAAa,CAAC;AAAA,EACL;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,yBAAyB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,MAAuB;AACzC,QAAM,eAAe;AAAA,IACnB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACX,EAAE,KAAK;AAEP,QAAM,kBAAkB;AAAA,IACtB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACX,EAAE,KAAK;AAEP,QAAM,mBAAmB;AAAA,IACvB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACX,EAAE,KAAK;AAEP,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,UACE,CAAC,eAAe,GAAG;AAAA,UACnB,sDAAsD,CAAC;AAAA,QACzD;AAAA,QACA,WAAW,eAAe,IAAI;AAAA,QAC9B;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,qBACC,gBAAAE;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,QAED;AAAA,QACA,WACC,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YAEC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAMO,IAAM,aAAa,WAA+C,SAASC,YAAW;AAAA,EACL;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,GAAG,KACzF;AACE,QAAM,eAAe;AAAA,IACnB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,aAAa;AAAA,EACf,EAAE,KAAK;AAEP,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,UACE,mCAAmC,UAAU;AAAA,UAC7C,uBAAuB,UAAU;AAAA,UACjC,sDAAsD,UAAU;AAAA,QAClE;AAAA,QACA,WAAW,mBAAmB,IAAI;AAAA,QAClC;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ,CAAC;;;ACvVD,SAAS,eAAAE,cAAa,aAAAC,YAAW,OAAO,QAAQ,YAAAC,iBAAgB;;;ACDhE,SAAS,aAAAC,YAAW,iBAAiB,YAAAC,iBAAgB;AAErD,IAAM,WAAW,OAAO,WAAW,eAAe,OAAO,aAAa;AACtE,IAAM,sBAAsB,WAAW,kBAAkBD;AAElD,IAAM,eAAe,MAAM;AAChC,QAAM,CAAC,WAAW,YAAY,IAAIC,UAAS,KAAK;AAEhD,sBAAoB,MAAM;AACxB,iBAAa,IAAI;AACjB,WAAO,MAAM;AACX,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,CAAC;AACL,SAAO;AACT;;;ADXA,IAAM,mBAAmB,MAAM;AAC7B,QAAM,MAAM,SAAS,cAAc,KAAK;AACxC,SAAO,OAAO,IAAI,OAAO;AAAA,IACvB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,eAAe;AAAA,IACf,aAAa;AAAA,EACf,CAAC;AACD,MAAI,WAAW;AACf,MAAI,aAAa,uBAAuB,EAAE;AAC1C,WAAS,KAAK,YAAY,GAAG;AAC7B,SAAO;AACT;AAEA,SAAS,8BAA8B,SAAsB;AAC3D,SAAO,SAAS,iBAAiB,0EAA0E;AAC7G;AAYA,IAAM,mBAAN,MAAuB;AAAA,EAAvB;AAEE;AAAA,SAAQ,YAA4B,CAAC;AA6BrC,SAAQ,YAAY,CAAC,UAAsB;AACzC,YAAM,SAAS,KAAK,UAAU;AAC9B,UAAG,CAAC,UAAU,CAAC,OAAO,UAAU,QAAS;AACzC,YAAM,EAAE,UAAU,IAAI;AACtB,UAAI,CAAC,UAAU,QAAQ,SAAS,MAAM,MAAqB,GAAG;AAC5D,aAAK,aAAa;AAAA,MACpB;AAAA,IACF;AAAA;AAAA,EAlCO,YAAsC;AAC3C,QAAI,KAAK,UAAU,WAAW,EAAG,QAAO;AACxC,WAAO,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC;AAAA,EACjD;AAAA,EAEQ,eAAe;AACrB,UAAM,SAAS,KAAK,UAAU;AAC9B,QAAG,CAAC,OAAQ;AACZ,UAAM,EAAE,WAAW,oBAAoB,IAAI;AAC3C,UAAM,mBAAmB,UAAU;AAKnC,QAAI,qBAAqB,SAAS;AAChC,0BAAoB,QAAQ,MAAM;AAAA,IACpC,OAAO;AACL,YAAM,WAAW,8BAA8B,gBAAgB;AAC/D,UAAI,YAAY,SAAS,SAAS,GAAG;AACnC,cAAM,QAAQ,SAAS,KAAK,CAAC;AAC7B,cAAM,MAAM;AAAA,MACd,OAAO;AACL,yBAAiB,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAAA,EAWQ,eAAe;AACrB,aAAS,iBAAiB,uBAAuB,EAAE,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC;AAAA,EACpF;AAAA,EAEQ,YAAY;AAClB,aAAS,KAAK,sBAAsB,cAAc,iBAAiB,CAAC;AACpE,aAAS,KAAK,sBAAsB,aAAa,iBAAiB,CAAC;AAAA,EACrE;AAAA,EAEQ,WAAW;AACjB,aAAS,iBAAiB,WAAW,KAAK,SAAS;AACnD,SAAK,UAAU;AAAA,EACjB;AAAA,EAEQ,aAAa;AACnB,aAAS,oBAAoB,WAAW,KAAK,SAAS;AACtD,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,UAAwB;AAC/B,SAAK,UAAU,KAAK,QAAQ;AAC5B,QAAI,KAAK,UAAU,WAAW,GAAG;AAC/B,WAAK,SAAS;AAAA,IAChB;AACA,UAAM,SAAS;AACf,SAAK,UAAU,QAAQ,CAACC,cAAa;AACnC,YAAM,EAAE,OAAO,MAAM,IAAIA;AACzB,UAAIA,cAAa,QAAQ;AACvB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,IAAY;AACrB,UAAM,QAAQ,KAAK,UAAU,UAAU,UAAQ,KAAK,OAAO,EAAE;AAC7D,QAAI,UAAU,IAAI;AAChB,YAAM,WAAW,UAAU,KAAK,UAAU,SAAS;AACnD,YAAM,WAAW,KAAK,UAAU,KAAK;AACrC,WAAK,YAAY,KAAK,UAAU,OAAO,CAAAA,cAAYA,UAAS,OAAO,EAAE;AACrE,UAAI,UAAU;AAEZ,aAAK,WAAW;AAEhB,iBAAS,UAAU;AAEnB,cAAM,SAAS,KAAK,UAAU;AAC9B,aAAK,UAAU,QAAQ,CAACA,cAAa;AACnC,gBAAM,EAAE,OAAO,QAAQ,IAAIA;AAC3B,cAAIA,cAAa,QAAQ;AACvB,oBAAQ;AAAA,UACV,OAAO;AACL,kBAAM;AAAA,UACR;AAAA,QACF,CAAC;AAED,YAAI,KAAK,UAAU,SAAS,GAAG;AAC7B,eAAK,SAAS;AAAA,QAChB;AAAA,MACF;AAAA,IACF,OAAO;AACL,cAAQ,KAAK,2BAA2B,EAAE,aAAa;AAAA,IACzD;AAAA,EACF;AACF;AAEA,IAAM,UAAU,IAAI,iBAAiB;AAc9B,IAAM,eAAe,CAAC;AAAA,EACE;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,aAAa;AACf,MAAyB;AACpD,QAAM,eAAe,OAA2B,IAAI;AACpD,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAAS,KAAK;AAC1C,QAAM,YAAY,aAAa;AAC/B,QAAM,KAAK,MAAM;AAEjB,QAAM,eAAeC,aAAY,MAAM;AACrC,UAAM,mBAAmB,UAAU;AAKnC,QAAI,cAAc,SAAS;AACzB,mBAAa,QAAQ,MAAM;AAAA,IAC7B,OAAO;AACL,YAAM,WAAW,8BAA8B,gBAAgB;AAC/D,UAAI,YAAY,SAAS,SAAS,GAAG;AACnC,cAAM,QAAQ,SAAS,KAAK,CAAC;AAC7B,cAAM,MAAM;AAAA,MACd,OAAO;AACL,yBAAiB,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,CAAC;AAE5B,EAAAC,WAAU,MAAM;AACd,QAAI,UAAU,WAAW;AAKvB,UAAS,QAAT,WAAiB;AACf,kBAAU,IAAI;AAAA,MAChB,GAES,UAAT,WAAmB;AACjB,kBAAU,KAAK;AACf,YAAI,CAAC,UAAU,QAAQ,SAAS,SAAS,aAA4B,GAAG;AACtE,uBAAa;AAAA,QACf;AAAA,MACF,GAES,QAAT,WAAiB;AACf,qBAAa;AACb,kBAAU,KAAK;AAAA,MACjB,GAES,YAAT,WAAqB;AACnB,qBAAa,SAAS,MAAM;AAAA,MAC9B;AAtBA,UAAI,CAAC,aAAa,SAAS;AACzB,qBAAa,UAAU,SAAS;AAAA,MAClC;AAsBA,cAAQ,SAAS,EAAE,IAAI,OAAO,OAAO,WAAW,SAAS,WAAW,qBAAqB,aAAa,CAAC;AACvG,aAAO,MAAM;AACX,gBAAQ,WAAW,EAAE;AACrB,qBAAa,UAAU;AAAA,MACzB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,WAAW,cAAc,IAAI,cAAc,SAAS,CAAC;AAEjE,EAAAA,WAAU,MAAM;AACd,QAAI,UAAU,CAAC,UAAU,WAAW;AAGlC,UAAS,YAAT,SAAmB,OAAsB;AACvC,cAAM,MAAM,MAAM;AAClB,cAAM,WAAW,8BAA8B,gBAAgB;AAC/D,cAAMC,UAAS,SAAS;AACxB,cAAM,QAAQ,CAAC,GAAG,QAAQ,EAAE,UAAU,WAAS,UAAUA,OAAM;AAC/D,YAAI,UAAU,MAAM,MAAM,UAAU,MAAM,WAAW,MAAM,SAAS;AAClE;AAAA,QACF;AACA,YAAI,QAAQ,OAAO;AACjB,gBAAM,OAAO,MAAM,WAAW,KAAK;AACnC,gBAAM,aAAa,QAAQ,OAAO,SAAS,UAAU,SAAS;AAC9D,gBAAM,cAAc,SAAS,SAAS;AACtC,sBAAY,MAAM;AAClB,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF;AAjBA,YAAM,mBAAmB,UAAU;AAoBnC,uBAAiB,iBAAiB,WAAW,SAAS;AACtD,aAAO,MAAM;AACX,yBAAiB,oBAAoB,WAAW,SAAS;AAAA,MAC3D;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,QAAQ,WAAW,WAAW,cAAc,YAAY,YAAY,CAAC;AACnF;;;AEzPA,SAAS,aAAAC,YAAW,YAAAC,iBAAgB;AAMpC,IAAM,iBAAkC;AAAA,EACtC,MAAM;AACR;AAIO,IAAM,aAAa,CACxB,SACA,WACA,YACG;AACH,QAAM,CAAC,WAAW,YAAY,IAAIA,UAAkB,KAAK;AACzD,QAAM,EAAE,KAAK,IAAI,EAAE,GAAG,gBAAgB,GAAG,QAAQ;AAEjD,EAAAD,WAAU,MAAM;AACd,QAAI,CAAC,aAAa,WAAW;AAC3B,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,kBAAQ,KAAK,OAAO;AACpB;AAAA,QACF,KAAK;AACH,kBAAQ,MAAM,OAAO;AACrB;AAAA,QACF,KAAK;AACH,kBAAQ,KAAK,OAAO;AACpB;AAAA,MACJ;AACA,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAChB;;;AXzBA,SAAS,oBAAoB;AA+EvB,gBAAAE,MAmBA,QAAAC,aAnBA;AAtDC,IAAM,SAAS,CAAC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACL,MAAsC;AAC3D,QAAM,cAAc,uBAAuB;AAC3C,QAAM,CAAC,SAAS,UAAU,IAAIC,UAAS,MAAM;AAC7C,QAAM,cAAcC,OAAM;AAC1B,QAAM,KAAK,MAAM,MAAM;AAEvB,QAAM,MAAMC,QAAuB,IAAI;AAEvC,EAAAC,WAAU,MAAM;AACd,QAAI,QAAQ;AACV,iBAAW,IAAI;AAAA,IACjB,OAAO;AACL,UAAI,CAAC,YAAY;AACf,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,YAAY,MAAM,CAAC;AAEvB,QAAM,iBAAiB,MAAM;AAC3B,QAAI,CAAC,QAAS;AACd,cAAU;AAAA,EACZ;AAEA,aAAW,uDAAuD,WAAW,CAAC,OAAO;AAErF,eAAa;AAAA,IACX,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,YAAY;AAAA,EACd,CAAC;AAED,QAAM,cAA8C;AAAA,IAClD,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AACA,QAAM,gBAAgB,YAAY,QAAQ;AAE1C,MAAI,CAAC,QAAS;AAEd,SAAO;AAAA,IACL,gBAAAJ,MAAC,SAAI,IAAI,oBAAoB,EAAE,IAAI,WAAWK,MAAK,mCAAmC,kBAAkB,GACtG;AAAA,sBAAAN;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,qBAAqB,EAAE;AAAA,UAC3B,QAAQ,CAAC;AAAA,UACT,WAAWM;AAAA,YACT;AAAA,YACA;AAAA,cACE,+BAA+B;AAAA,cAC/B,gCAAgC,CAAC;AAAA,YACnC;AAAA,YACA;AAAA,UACF;AAAA,UACA,gBAAgB,MAAM;AACpB,gBAAI,CAAC,QAAQ;AACX,yBAAW,KAAK;AAAA,YAClB;AAAA,UACF;AAAA,UACA,SAAS;AAAA,UACT,eAAa;AAAA;AAAA,MACf;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ,IAAI,UAAU,EAAE;AAAA,UAChB;AAAA,UACA,QAAQ,CAAC;AAAA,UACT,WAAW,WAAS;AAClB,gBAAI,MAAM,QAAQ,UAAU;AAC1B,6BAAe;AAAA,YACjB;AAAA,UACF;AAAA,UACA,gBAAgB,MAAM;AACpB,gBAAI,CAAC,QAAQ;AACX,yBAAW,KAAK;AAAA,YAClB;AAAA,UACF;AAAA,UACA,WAAWK;AAAA,YACT;AAAA,YACA;AAAA,cACE,8BAA8B;AAAA,cAC9B,+BAA+B,CAAC;AAAA,YAClC;AAAA,YACA;AAAA,YACA,MAAM;AAAA,UACR;AAAA,UAEA;AAAA,4BAAAN,KAAC,SAAI,WAAU,4BACZ,wBACH;AAAA,YACC,eACC,gBAAAA,KAAC,SAAI,WAAU,oBACZ,uBACH;AAAA,YAED,WACC,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO;AAAA,kBACL,YAAY;AAAA,kBACZ,cAAc;AAAA,gBAChB;AAAA,gBAEA,0BAAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,OAAM;AAAA,oBACN,MAAK;AAAA,oBACL,cAAY,YAAY,OAAO;AAAA,oBAC/B,SAAS;AAAA,oBAET,0BAAAA,KAAC,KAAC;AAAA;AAAA,gBACJ;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH;AAAA,OACF;AAAA,IACE,SAAS;AAAA,EACb;AACF;;;AYpKA;AAAA,EACE,iBAAAO;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,OACK;AACP,OAAOC,WAAU;;;ACZjB,SAAS,cAAAC,aAAY,eAAAC,cAAa,SAAAC,cAAa;AAC/C,SAAS,mBAAmB;AAC5B,OAAOC,WAAU;;;ACFjB,SAAS,aAAAC,YAAW,YAAAC,iBAAgB;AAG7B,IAAM,uBAAuB,CAAI,cAAkB,aAAgF;AACxI,QAAM,CAAC,OAAO,QAAQ,IAAIC,UAAY,YAAY;AAElD,EAAAC,WAAU,MAAM;AACd,aAAS,YAAY;AAAA,EACvB,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,kBAA2D,CAAC,WAAW;AAC3E,UAAM,WAAW,gBAAgB,QAAQ,KAAK;AAC9C,aAAS,QAAQ;AACjB,eAAW,KAAK;AAAA,EAClB;AAEA,SAAO,CAAC,OAAO,eAAe;AAChC;;;ADLI,gBAAAC,MAgEE,QAAAC,aAhEF;AAFG,IAAM,gBAAgB,CAAC,EAAE,YAAY,UAAU,MAA0B;AAC9E,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,eAAa;AAAA,MACb,WAAWE;AAAA,QACT;AAAA,QACA,EAAE,cAAc,WAAW;AAAA,QAC3B;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAwBO,IAAM,aAAaC,YAA4C,SAASC,YAAW;AAAA,EACE;AAAA,EACA,IAAI;AAAA,EACJ;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAG,KAAK;AAEhG,QAAM,cAAcC,aAAY,CAAC,aAAsB,gBAAAL,KAAC,iBAAc,YAAY,UAAS,GAAI,CAAC,CAAC;AACjG,WAAS;AAET,QAAM,cAAcM,OAAM;AAC1B,QAAM,KAAK,cAAc;AAEzB,SACE,gBAAAL;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS,MAAM,CAAC,qBAAqB,CAAC,YAAY,WAAW,CAAC,UAAU;AAAA,MAExE,WAAWC;AAAA,QACT;AAAA,QACA,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,SAAS;AAAA,QAAG;AAAA,MACzD;AAAA,MAEA;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,SAAS,MAAM,qBAAqB,CAAC,YAAY,WAAW,CAAC,UAAU;AAAA,YAEvE,WAAWC;AAAA,cACT;AAAA,cACA;AAAA,gBACE,6BAA6B,CAAC;AAAA,gBAC9B,uBAAuB,cAAc,CAAC;AAAA,gBACtC,kBAAkB,qBAAqB,CAAC;AAAA,cAC1C;AAAA,cACA;AAAA,YACF;AAAA,YAEA,iBAAe;AAAA,YACf,iBAAe,GAAG,EAAE;AAAA,YACpB,iBAAe,YAAY;AAAA,YAE1B;AAAA;AAAA,cACA,KAAK,UAAU;AAAA;AAAA;AAAA,QAClB;AAAA,QACA,gBAAAF;AAAA,UAAC;AAAA;AAAA,YACC,IAAI,GAAG,EAAE;AAAA,YACT,WAAWE;AAAA,cACT;AAAA,cACA;AAAA,gBACE,CAACA,MAAK,6CAA6C,wBAAwB,CAAC,GAAG;AAAA,gBAC/E,qCAAqC,CAAC;AAAA,cACxC;AAAA,cACA;AAAA,YACF;AAAA,YAEA,MAAK;AAAA,YAEJ;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;AAEM,IAAM,yBAAyBC,YAA4C,SAASI,wBAAuB;AAAA,EACE;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACA,KAAK;AACrH,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,qBAAqB,YAAY,QAAQ;AAErF,SACE,gBAAAP;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA;AAAA,EACZ;AAEJ,CAAC;;;AEpIM,IAAM,QAAQ,CAAwC,KAAQ,WAAyB;AAC5F,SAAO,OAAO,GAAG;AACnB;;;AHgBA,SAAS,WAAW,MAAM,aAAa;;;AIjBvC,OAAOQ,WAAU;AAwDb,SAsBoB,OAAAC,MAtBpB,QAAAC,aAAA;AAjCG,IAAM,OAAO,CAAC;AAAA,EACE;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,GAAG;AACL,MAAiB;AACpC,QAAM,eAAuB;AAAA,IAC3B,SAAS;AAAA,IACT,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,EACV,EAAE,KAAK;AAEP,QAAM,mBAA2B;AAAA,IAC/B,SAAS;AAAA,IACT,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,EACV,EAAE,KAAK;AAEP,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACA,CAAC,OAAO;AAAA,UACN,eAAe,SAAS;AAAA,UACxB,aAAa,SAAS;AAAA,UACtB,aAAa,SAAS;AAAA,QACxB,IAAI;AAAA,UACF,SAAS,SAAS;AAAA,UAClB,OAAO,SAAS;AAAA,UAChB,OAAO,SAAS;AAAA,QAClB;AAAA,QACA;AAAA,UACE,cAAc,YAAY;AAAA,UAC1B,gBAAgB,YAAY;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,QACA,gBAAiB,gBAAAC,KAAC,UAAK,WAAW,kBAAmB,wBAAa;AAAA;AAAA;AAAA,EACrE;AAEJ;;;AC/EA,SAAS,eAAAC,cAAa,aAAAC,YAAW,YAAAC,iBAAgB;;;ACH1C,IAAM,QAAQ,CAAC,OAAe,QAA0B,CAAC,GAAG,CAAC,MAAc;AAChF,QAAM,CAAC,KAAK,GAAG,IAAI;AACnB,SAAO,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG,GAAG;AAC3C;;;ADoCA,SAAS,kBAAkB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAoD;AAC7E,QAAM,EAAE,mBAAmB,qBAAqB,KAAK,cAAc,IAAI;AACvE,QAAM,cAAc,WAAW;AAC/B,QAAM,eAAe,WAAW;AAEhC,QAAM,WAAW,cAAc,IAAI;AACnC,QAAM,YAAY,eAAe,IAAI;AAErC,QAAM,QAAQ,KAAK,IAAI,cAAc,OAAO,QAAQ;AACpD,QAAM,SAAS,KAAK,IAAI,cAAc,QAAQ,SAAS;AAEvD,QAAM,iBAAiB;AAAA,IACrB,aAAa,WAAW,OAAO,QAAQ;AAAA,IACvC,YAAY,WAAW;AAAA,IACvB,QAAQ,WAAW,OAAO,WAAW,QAAQ,IAAI,QAAQ;AAAA,IACzD,WAAW,WAAW,QAAQ;AAAA,IAC9B,UAAU,WAAW,QAAQ;AAAA,EAC/B,EAAE,mBAAmB;AAErB,QAAM,gBAAgB;AAAA,IACpB,aAAa,WAAW,MAAM,SAAS;AAAA,IACvC,YAAY,WAAW;AAAA,IACvB,QAAQ,WAAW,MAAM,WAAW,SAAS,IAAI,SAAS;AAAA,IAC1D,WAAW,WAAW,SAAS;AAAA,IAC/B,UAAU,WAAW,SAAS;AAAA,EAChC,EAAE,iBAAiB;AAEnB,QAAM,OAAO,MAAM,gBAAgB;AAAA,IACjC;AAAA,IACA,cAAc,gBAAgB;AAAA,EAChC,CAAC;AAED,QAAM,MAAM,MAAM,eAAe;AAAA,IAC/B;AAAA,IACA,eAAe,gBAAgB;AAAA,EACjC,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAcO,SAAS,mBAAmB;AAAA,EACE,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,MAAM;AACR,GAA4B;AAC7D,QAAM,CAAC,OAAO,QAAQ,IAAIC,UAAwB;AAClD,QAAM,YAAY,aAAa;AAE/B,QAAM,YAAYC,aAAY,MAAM;AAClC,UAAM,gBAAgB,aAAa,QAAQ,sBAAsB;AACjE,UAAM,aAA8B,WAAW,QAAQ,sBAAsB,KAAK;AAAA,MAChF,KAAK;AAAA,MACL,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,MACN,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,QAAQ,OAAO;AAAA,IACjB;AACA,UAAM,gBAAgB,WAAW;AACjC,QAAI,aAAa,CAAC,eAAe;AAC/B,cAAQ,KAAK,+DAA+D;AAAA,IAC9E;AACA,UAAM,aAA8B,eAAe,sBAAsB,KAAK;AAE9E,UAAM,iBAAyC;AAAA,MAC7C;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,aAAS,kBAAkB,cAAc,CAAC;AAAA,EAC5C,GAAG,CAAC,WAAW,cAAc,KAAK,qBAAqB,eAAe,mBAAmB,SAAS,CAAC;AAGnG,QAAM,SAAS,aAAa,SAAS,sBAAsB,EAAE;AAC7D,QAAM,QAAQ,aAAa,SAAS,sBAAsB,EAAE;AAC5D,EAAAC,WAAU,MAAM;AACd,QAAI,UAAU,WAAW;AACvB,gBAAU;AAAA,IACZ,OAAO;AACL,eAAS,MAAS;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,WAAW,QAAQ,WAAW,QAAQ,KAAK,CAAC;AAEhD,EAAAA,WAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,SAAS;AAC3C,QAAI;AACJ,QAAI,WAAW;AACb,gBAAU,YAAY,WAAW,eAAe;AAAA,IAClD;AACA,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,SAAS;AAC9C,UAAI,SAAS;AACX,sBAAc,OAAO;AAAA,MACvB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,WAAW,WAAW,eAAe,CAAC;AAE1C,SAAO;AACT;;;ALrJA,SAAS,gBAAAC,qBAAoB;AA4RzB,gBAAAC,MAyCE,QAAAC,aAzCF;AArPJ,IAAM,2BAA8C;AAAA,EAClD,gCAAgC;AAClC;AAoBA,IAAM,gBAAgBC,eAAwC,IAAI;AAElE,SAAS,mBAAmB;AAC1B,QAAM,MAAMC,YAAW,aAAa;AACpC,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AACA,SAAO;AACT;AAmBO,IAAM,aAAa,CAAC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,iBAAiB;AACnB,MAAuB;AAChD,QAAM,aAAaC,QAAoB,IAAI;AAC3C,QAAM,cAAcC,OAAM;AAC1B,QAAM,SAAS,MAAM;AAErB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,UAAqC;AAAA,IAC7E;AAAA,IACA,SAAS,CAAC;AAAA,EACZ,CAAC;AAED,QAAM,iBAAiBC;AAAA,IAAQ,MAAM,gBAAiB,UAAU,CAAC,IAAK,CAAC,KAAK,EAAE,OAAO,OAAO;AAAA,IAC1F,CAAC,eAAe,OAAO,MAAM;AAAA,EAAC;AAChC,QAAM,kBAAkBA;AAAA,IAAQ,MAC5B,eAAe,IAAI,CAAAC,WAAS,cAAc,QAAQ,KAAK,YAAUA,WAAU,OAAO,KAAK,CAAC,EAAE,OAAO,OAAO;AAAA,IAC1G,CAAC,gBAAgB,cAAc,OAAO;AAAA,EAAC;AACzC,QAAM,QAA4B;AAAA,IAChC,GAAG;AAAA,IACH,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EACF;AAEA,QAAM,SAA8B;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AAEA,QAAM,eAAeC,aAAY,CAAC,SAA2B;AAC3D,qBAAiB,UAAQ;AACvB,YAAM,iBAAiB,CAAC,GAAG,KAAK,SAAS,IAAI;AAC7C,qBAAe,KAAK,CAAC,GAAG,MAAM;AAC5B,cAAM,MAAM,EAAE,IAAI;AAClB,cAAM,MAAM,EAAE,IAAI;AAClB,YAAI,CAAC,OAAO,CAAC,IAAK,QAAO;AACzB,eAAO,IAAI,wBAAwB,GAAG,IAAI,KAAK,8BAA8B,KAAK;AAAA,MACpF,CAAC;AACD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,iBAAiBA,aAAY,CAACD,WAAkB;AACpD,qBAAiB,UAAQ;AACvB,YAAM,iBAAiB,KAAK,QAAQ,OAAO,OAAK,EAAE,UAAUA,MAAK;AACjE,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAGL,QAAM,kBAAkB,CAACA,QAAe,eAAyB;AAC/D,QAAI,UAAU;AACZ;AAAA,IACF;AACA,UAAM,SAAS,MAAM,QAAQ,KAAK,OAAK,EAAE,UAAUA,MAAK;AACxD,QAAI,CAAC,QAAQ;AACX,cAAQ,MAAM,4BAA4BA,MAAK,YAAY;AAC3D;AAAA,IACF;AAEA,QAAI;AACJ,QAAI,eAAe;AACjB,YAAM,mBAAmB,MAAM,MAAM,SAASA,MAAK;AACnD,YAAM,kBAAkB,cAAc,CAAC;AACvC,UAAI,CAAC,iBAAiB;AACpB,mBAAW,MAAM,MAAM,OAAO,OAAK,MAAMA,MAAK;AAAA,MAChD,OAAO;AACL,mBAAW,CAAC,GAAG,MAAM,OAAOA,MAAK;AAAA,MACnC;AAAA,IACF,OAAO;AACL,iBAAW,CAACA,MAAK;AAAA,IACnB;AAEA,QAAI,CAAC,eAAe;AAClB,uBAAiB,SAAS,CAAC,CAAC;AAAA,IAC9B,OAAO;AACL,wBAAkB,QAAQ;AAAA,IAC5B;AAEA,qBAAiB,gBAAc;AAAA,MAC7B,GAAG;AAAA,MACH,kBAAkBA;AAAA,IACpB,EAAE;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAACA,WAAkB;AACvC,QAAI,UAAU;AACZ;AAAA,IACF;AACA,qBAAiB,gBAAc;AAAA,MAC7B,GAAG;AAAA,MACH,kBAAkBA;AAAA,IACpB,EAAE;AAAA,EACJ;AAEA,QAAM,kBAAkBC,aAAY,CAAC,QAAsC;AACzE,eAAW,UAAU,IAAI;AAAA,EAC3B,GAAG,CAAC,CAAC;AAEL,QAAM,oBAAoBA,aAAY,MAAM;AAC1C,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,CAAC;AAEL,QAAM,aAAa,CAACC,SAAkB,sBAA0C;AAC9E,UAAM,EAAE,+BAA+B,IAAI,EAAE,GAAG,0BAA0B,GAAG,kBAAkB;AAC/F,QAAI;AACJ,QAAI;AACJ,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,QAAQ,KAAK;AAC7C,YAAM,gBAAgB,MAAM,QAAQ,mCAAmC,UAAU,IAAI,MAAM,QAAQ,SAAS,IAAI,CAAC;AACjH,UAAI,CAAC,cAAc,UAAU;AAC3B,YAAI,CAAC,mBAAmB;AACtB,8BAAoB,cAAc;AAAA,QACpC;AACA,YAAI,eAAe,SAAS,cAAc,KAAK,GAAG;AAChD,+BAAqB,cAAc;AACnC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,qBAAiB,gBAAc;AAAA,MAC7B,GAAG;AAAA,MACH,QAAQA,WAAU,CAAC,UAAU;AAAA,MAC7B,kBAAkB,sBAAsB;AAAA,IAC1C,EAAE;AAAA,EACJ;AAEA,QAAM,uBAAuB,CAAC,UAAkB;AAC9C,QAAI,mBAAmB,MAAM,QAAQ,UAAU,CAAAF,WAASA,OAAM,UAAU,cAAc,gBAAgB;AACtG,QAAI,qBAAqB,IAAI;AAC3B,yBAAmB;AAAA,IACrB;AACA,UAAM,eAAe,MAAM,QAAQ;AACnC,UAAM,cAAc,mBAAoB,QAAQ,eAAgB,gBAAgB;AAChF,UAAM,YAAY,SAAS;AAC3B,QAAI,mBAAmB,MAAM,QAAQ,UAAU,EAAE;AACjD,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,QAAQ,KAAK;AAC7C,YAAM,SAAS,cAAc,YAAY,IAAI,CAAC,KAAK,gBAAgB;AACnE,UAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,UAAU;AAClC,2BAAmB,MAAM,QAAQ,KAAK,EAAE;AACxC;AAAA,MACF;AAAA,IACF;AAEA,qBAAiB,gBAAc;AAAA,MAC7B,GAAG;AAAA,MACH;AAAA,IACF,EAAE;AAAA,EACJ;AAEA,EAAAG,WAAU,MAAM;AACd,QAAI,CAAC,cAAc,iBAAkB;AACrC,UAAM,cAAc,cAAc,QAAQ,KAAK,CAAAH,WAASA,OAAM,UAAU,cAAc,gBAAgB;AACtG,QAAI,aAAa;AACf,kBAAY,IAAI,SAAS,eAAe,EAAE,UAAU,WAAW,OAAO,UAAU,CAAC;AAAA,IACnF,OAAO;AACL,cAAQ,MAAM,iDAAiD,cAAc,gBAAgB,GAAG;AAAA,IAClG;AAAA,EACF,GAAG,CAAC,cAAc,gBAAgB,CAAC;AAEnC,QAAM,eAAkC;AAAA,IACtC;AAAA,IACA;AAAA,IACA,MAAM;AAAA,MACJ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,KAAK;AAAA,MACL,UAAU;AAAA,MACV,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAEA,SACE,gBAAAR,KAAC,cAAc,UAAd,EAAuB,OAAO,cAC5B,UACH;AAEJ;AAYO,IAAM,eAAeY;AAAA,EAC1B,SAASC,cAAa,EAAE,UAAU,OAAO,WAAW,OAAO,gBAAgB,WAAW,GAAG,UAAU,GAAG,KAAK;AACzG,UAAM,EAAE,OAAO,QAAQ,MAAM,QAAQ,IAAI,iBAAiB;AAC1D,UAAM,EAAE,UAAU,YAAY,iBAAiB,cAAc,IAAI;AACjE,UAAM,UAAUT,QAAsB,IAAI;AAE1C,uBAAmB,OAAO;AAE1B,UAAM,QAAQ,YAAY;AAG1B,IAAAO,WAAU,MAAM;AACd,eAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK;AAAA,MACP,CAAC;AACD,aAAO,MAAM,WAAW,KAAK;AAAA,IAC/B,GAAG,CAAC,OAAO,UAAU,UAAU,YAAY,UAAU,KAAK,CAAC;AAE3D,UAAM,gBAAgB,MAAM,qBAAqB;AACjD,UAAM,aAAa,MAAM,MAAM,SAAS,KAAK;AAE7C,WACE,gBAAAV;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK,CAAC,SAAS;AACb,kBAAQ,UAAU;AAClB,cAAI,OAAO,QAAQ,WAAY,KAAI,IAAI;AAAA,mBAC9B,IAAK,CAAC,IAAqD,UAAU;AAAA,QAChF;AAAA,QACA,IAAI;AAAA,QACJ,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,oBAAkB,gBAAgB,KAAK;AAAA,QACvC,iBAAe,aAAa,KAAK;AAAA,QACjC,iBAAe,WAAW,KAAK;AAAA,QAC/B,WAAWa;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS,CAAC,UAAU;AAClB,cAAI,CAAC,UAAU;AACb,4BAAgB,KAAK;AACrB,gBAAI,CAAC,OAAO,eAAe;AACzB,sBAAQ,WAAW,KAAK;AAAA,YAC1B;AACA,sBAAU,UAAU,KAAK;AAAA,UAC3B;AAAA,QACF;AAAA,QACA,cAAc,CAAC,UAAU;AACvB,cAAI,CAAC,UAAU;AACb,0BAAc,KAAK;AACnB,sBAAU,eAAe,KAAK;AAAA,UAChC;AAAA,QACF;AAAA,QAEC;AAAA,6BAAmB,UAClB,gBAAAd;AAAA,YAAC;AAAA;AAAA,cACC,WAAWc,MAAK,WAAW,EAAE,aAAa,CAAC,cAAc,SAAS,CAAC;AAAA,cACnE,eAAa;AAAA;AAAA,UACf;AAAA,UAED;AAAA,UACA,mBAAmB,WAClB,gBAAAd;AAAA,YAAC;AAAA;AAAA,cACC,WAAWc,MAAK,WAAW,EAAE,aAAa,CAAC,cAAc,SAAS,CAAC;AAAA,cACnE,eAAa;AAAA;AAAA,UACf;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;AAUO,IAAM,eAAeF,YAAiD,SAASG,cACpF,EAAE,aAAa,iBAAiB,GAAG,MAAM,GAAG,KAC5C;AACA,QAAM,cAAc,uBAAuB;AAC3C,QAAM,EAAE,OAAO,QAAQ,IAAI,iBAAiB;AAC5C,QAAM,EAAE,UAAU,YAAY,WAAW,IAAI;AAE7C,QAAM,WAAWX,QAA0B,IAAI;AAC/C,sBAAoB,KAAK,MAAM,SAAS,OAAO;AAE/C,EAAAO,WAAU,MAAM;AACd,aAAS,QAAQ;AACjB,WAAO,MAAM,WAAW;AAAA,EAC1B,GAAG,CAAC,UAAU,UAAU,CAAC;AAEzB,QAAM,WAAW,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM;AAC9C,QAAM,UAAU,MAAM;AACtB,QAAM,WAAW,MAAM,MAAM,SAAS;AAEtC,SACE,gBAAAV;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,IAAI,MAAM;AAAA,MACV;AAAA,MAEA,SAAS,CAAC,UAAU;AAClB,cAAM,UAAU,KAAK;AACrB,mBAAW,CAAC,MAAM,MAAM;AAAA,MAC1B;AAAA,MACA,WAAW,WAAS;AAClB,cAAM,YAAY,KAAK;AACvB,gBAAQ,MAAM,KAAK;AAAA,UACjB,KAAK;AACH,uBAAW,MAAM,EAAE,gCAAgC,QAAQ,CAAC;AAC5D,kBAAM,eAAe;AACrB,kBAAM,gBAAgB;AACtB;AAAA,UACF,KAAK;AACH,uBAAW,MAAM,EAAE,gCAAgC,OAAO,CAAC;AAC3D,kBAAM,eAAe;AACrB,kBAAM,gBAAgB;AACtB;AAAA,QACJ;AAAA,MACF;AAAA,MAEA,WAAWa;AAAA,QACT;AAAA,QACA;AAAA,UACE,wCAAwC,CAAC,YAAY,CAAC,YAAY,CAAC;AAAA,UACnE,uCAAuC,YAAY,CAAC,YAAY,CAAC;AAAA,UACjE,kBAAkB,CAAC,YAAY;AAAA,UAC/B,oBAAoB,CAAC,YAAY,CAAC;AAAA,UAClC,iBAAiB,YAAY,CAAC,YAAY;AAAA,UAC1C,wCAAwC;AAAA,QAC1C;AAAA,QACA,MAAM;AAAA,MACR;AAAA,MAEA,oBAAkB,CAAC,WAAW,KAAK;AAAA,MACnC,iBAAe,WAAW,KAAK;AAAA,MAC/B,gBAAc,UAAU,KAAK;AAAA,MAE7B,gBAAc;AAAA,MACd,iBAAe;AAAA,MACf,iBAAc;AAAA,MACd,iBAAe,MAAM;AAAA,MACrB,iBAAe,MAAM,SAAS,GAAG,MAAM,EAAE,aAAa;AAAA,MAErD;AAAA,mBACC,kBAAkB,MAAM,KAAK,KAC3B,gBAAAd,KAAC,SAAI,WAAWc,MAAK,gCAAgC,GAClD,gBAAM,gBAAgB,IAAI,CAAC,EAAE,OAAO,MAAM,GAAG,UAC5C,gBAAAb,MAAC,UAAiB,WAAU,cACzB;AAAA;AAAA,UACA,QAAQ,MAAM,MAAM,SAAS,KAAM,gBAAAD,KAAC,UAAM,eAAI;AAAA,aAFtC,KAGX,CACD,GACH,IAEA,eAAe,YAAY,eAAe;AAAA,QAE9C,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,YAAY,MAAM;AAAA,YAClB,WAAWc,MAAK;AAAA,cACd,mBAAmB,CAAC,YAAY,CAAC;AAAA,cACjC,iBAAiB,CAAC,YAAY;AAAA,cAC9B,iBAAiB;AAAA,YACnB,CAAC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;AAUM,IAAM,oBAAoBF,YAAmD,SAASI,mBAC3F,EAAE,GAAG,MAAM,GAAG,KACd;AACA,QAAM,EAAE,OAAO,SAAS,KAAK,IAAI,iBAAiB;AAClD,QAAM,EAAE,UAAU,YAAY,WAAW,IAAI;AAE7C,QAAM,WAAWZ,QAAuB,IAAI;AAC5C,sBAAoB,KAAK,MAAM,SAAS,OAAO;AAE/C,EAAAO,WAAU,MAAM;AACd,aAAS,QAAQ;AACjB,WAAO,MAAM,WAAW;AAAA,EAC1B,GAAG,CAAC,UAAU,UAAU,CAAC;AAEzB,QAAM,WAAW,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM;AAC9C,QAAM,UAAU,MAAM;AAEtB,SACE,gBAAAV;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,WAAWa;AAAA,QACT;AAAA,QACA,MAAM;AAAA,MACR;AAAA,MACA,iBAAe,WAAW,KAAK;AAAA,MAC/B,gBAAc,UAAU,KAAK;AAAA,MAE7B,gBAAc;AAAA,MACd,iBAAe;AAAA,MAEd;AAAA,cAAM,gBAAgB,IAAI,CAAC,EAAE,OAAO,MAAM,MACzC,gBAAAb,MAAC,QAAiB,WAAU,WACzB;AAAA;AAAA,UACD,gBAAAD;AAAA,YAAC;AAAA;AAAA,cAEC,SAAS,MAAM;AACb,qBAAK,gBAAgB,OAAO,KAAK;AAAA,cACnC;AAAA,cACA,MAAK;AAAA,cACL,OAAM;AAAA,cACN,WAAU;AAAA,cAEV,0BAAAA,KAAC,SAAM,WAAU,WAAS;AAAA;AAAA,UAC5B;AAAA,aAZS,KAaX,CACD;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,IAAI,MAAM;AAAA,YACV,SAAS,MAAM,WAAW;AAAA,YAC1B,WAAW,WAAS;AAClB,sBAAQ,MAAM,KAAK;AAAA,gBACjB,KAAK;AACH,6BAAW,MAAM,EAAE,gCAAgC,QAAQ,CAAC;AAC5D;AAAA,gBACF,KAAK;AACH,6BAAW,MAAM,EAAE,gCAAgC,OAAO,CAAC;AAAA,cAC/D;AAAA,YACF;AAAA,YACA,MAAK;AAAA,YACL,OAAM;AAAA,YAEN,gBAAc;AAAA,YACd,iBAAe;AAAA,YACf,iBAAc;AAAA,YACd,iBAAe,MAAM;AAAA,YACrB,iBAAe,MAAM,SAAS,GAAG,MAAM,EAAE,aAAa;AAAA,YAEtD,0BAAAA,KAAC,QAAI;AAAA;AAAA,QACP;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;AAcM,IAAM,gBAAgBY;AAAA,EAC3B,SAASK,eAAc;AAAA,IACE;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,GAAG;AAAA,EACL,GAAG,KAAK;AAC7B,UAAM,WAAWb,QAAgC,IAAI;AACrD,wBAAoB,KAAK,MAAM,SAAS,OAAO;AAE/C,UAAM,EAAE,SAAS,OAAO,QAAQ,KAAK,IAAI,iBAAiB;AAE1D,UAAM,WAAW,mBAAmB;AAAA,MAClC,QAAQ,MAAM;AAAA,MACd,WAAW,QAAQ;AAAA,MACnB,cAAc;AAAA,MACd,GAAG;AAAA,IACL,CAAC;AAED,iBAAa;AAAA,MACX,WAAW;AAAA,MACX,QAAQ,MAAM,UAAU,CAAC,CAAC;AAAA,IAC5B,CAAC;AAED,WAAOc;AAAA,MACL,gBAAAjB;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,oBAAoB,MAAM,EAAE;AAAA,UAAI,WAAWa,MAAK,mCAAmC,kBAAkB;AAAA,UACzG,QAAQ,CAAC,MAAM;AAAA,UAEf;AAAA,4BAAAd;AAAA,cAAC;AAAA;AAAA,gBACC,IAAI,qBAAqB,MAAM,EAAE;AAAA,gBACjC,SAAS,MAAM,QAAQ,WAAW,KAAK;AAAA,gBACvC,WAAWc,MAAK,iCAAiC;AAAA;AAAA,YACnD;AAAA,YACA,gBAAAd;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ,IAAI,GAAG,MAAM,EAAE;AAAA,gBACf,KAAK;AAAA,gBACL,WAAW,CAAC,UAAU;AACpB,0BAAQ,MAAM,KAAK;AAAA,oBACjB,KAAK;AACH,8BAAQ,WAAW,KAAK;AACxB,4BAAM,eAAe;AACrB,4BAAM,gBAAgB;AACtB;AAAA,oBACF,KAAK,MAAM,aAAa;AAAA,sBACtB,UAAU;AAAA,sBACV,YAAY;AAAA,oBACd,CAAC;AACC,2BAAK,qBAAqB,CAAC;AAC3B,4BAAM,eAAe;AACrB;AAAA,oBACF,KAAK,MAAM,aAAa;AAAA,sBACtB,UAAU;AAAA,sBACV,YAAY;AAAA,oBACd,CAAC;AACC,2BAAK,qBAAqB,EAAE;AAC5B,4BAAM,eAAe;AACrB;AAAA,oBACF,KAAK;AAEH,4BAAM,eAAe;AACrB;AAAA,oBACF,KAAK;AAEH,4BAAM,eAAe;AACrB;AAAA,oBACF,KAAK;AAAA;AAAA,oBACL,KAAK;AACH,0BAAI,MAAM,kBAAkB;AAC1B,6BAAK,gBAAgB,MAAM,gBAAgB;AAC3C,4BAAI,CAAC,OAAO,eAAe;AACzB,kCAAQ,WAAW,KAAK;AAAA,wBAC1B;AACA,8BAAM,eAAe;AAAA,sBACvB;AACA;AAAA,kBACJ;AAAA,gBACF;AAAA,gBAEA,WAAWc,MAAK,iHAAiH,MAAM,SAAS;AAAA,gBAChJ,OAAO;AAAA,kBACL,SAAS,WAAW,SAAY;AAAA,kBAChC,UAAU;AAAA,kBACV,GAAG;AAAA,gBACL;AAAA,gBAEA,MAAK;AAAA,gBACL,wBAAsB,OAAO;AAAA,gBAC7B,oBAAkB;AAAA,gBAClB,UAAU,WAAW,IAAI;AAAA,gBAExB,gBAAM;AAAA;AAAA,YACT;AAAA;AAAA;AAAA,MACF;AAAA,MAAQ,SAAS;AAAA,IACnB;AAAA,EACF;AACF;AAUO,IAAM,SAASF,YAA2C,SAASO,QAAO;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG,KAAK;AACvF,SACE,gBAAAlB,MAAC,cAAY,GAAG,OAAO,eAAe,OACpC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAG;AAAA,QACJ,iBAAiB,YAAU;AACzB,gBAAM,QAAQ,OAAO,CAAC;AACtB,cAAI,CAAC,aAAa,gBAAiB,QAAO;AAC1C,iBAAO,YAAY,gBAAgB,KAAK;AAAA,QAC1C;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA,KAAC,iBAAe,GAAG,mBAAoB,UAAS;AAAA,KAClD;AAEJ,CAAC;AAIM,IAAM,qBAAqBY,YAAuD,SAASQ,oBAAmB;AAAA,EACE,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,GAAG,KAAK;AAC3H,QAAM,CAAC,OAAO,QAAQ,IAAI,qBAAqB,cAAc,cAAc;AAE3E,SACE,gBAAApB;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA;AAAA,EAClB;AAEJ,CAAC;AAWM,IAAM,cAAcY,YAAgD,SAASS,aAAY;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG,KAAK;AACtG,SACE,gBAAApB,MAAC,cAAY,GAAG,OAAO,eAAe,MACpC;AAAA,oBAAAD,KAAC,gBAAa,KAAW,GAAG,aAAa;AAAA,IACzC,gBAAAA,KAAC,iBAAe,GAAG,mBAAoB,UAAS;AAAA,KAClD;AAEJ,CAAC;AAIM,IAAM,0BAA0BY,YAA4D,SAASU,yBAAwB;AAAA,EACE,QAAQ;AAAA,EACR;AAAA,EACA,GAAG;AACL,GAAG,KAAK;AAC1I,QAAM,CAAC,QAAQ,SAAS,IAAI,qBAAqB,eAAe,eAAe;AAE/E,SACE,gBAAAtB;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,iBAAiB;AAAA;AAAA,EACnB;AAEJ,CAAC;AAWM,IAAM,yBAAyBY,YAAwD,SAASW,wBAAuB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG,KAAK;AACpI,SACE,gBAAAtB,MAAC,cAAY,GAAG,OAAO,eAAe,MACpC;AAAA,oBAAAD,KAAC,qBAAkB,KAAW,GAAG,kBAAkB;AAAA,IACnD,gBAAAA,KAAC,iBAAe,GAAG,mBAAoB,UAAS;AAAA,KAClD;AAEJ,CAAC;AAIM,IAAM,qCAAqCY,YAAoE,SAASY,oCAAmC;AAAA,EACE,QAAQ;AAAA,EACR;AAAA,EACA,GAAG;AACL,GAAG,KAAK;AACxK,QAAM,CAAC,QAAQ,SAAS,IAAI,qBAAqB,eAAe,eAAe;AAE/E,SACE,gBAAAxB;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,iBAAiB;AAAA;AAAA,EACnB;AAEJ,CAAC;;;AOzxBK,SAUM,OAAAyB,MAVN,QAAAC,aAAA;AAhBC,IAAM,iBAAiB,CAAC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA2B;AACxD,QAAM,EAAE,QAAQ,UAAU,IAAI,UAAU;AACxC,QAAM,cAAc,uBAAuB;AAE3C,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,cAAc,kBAAkB,YAAY,UAAU;AAAA,MACtD,aAAa,wBAAwB,YAAY,gBAAgB;AAAA,MACjE;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAC,MAAC,SAAI,WAAU,QACb;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,gBAAgB,CAAC,aAAqB,UAAU,QAAsC;AAAA,YACtF,mBAAmB,EAAE,oBAAoB,QAAQ;AAAA,YACjD,aAAa;AAAA,cACX,iBAAiB,CAAAE,YAAU,iBAAiB,oBAAoBA,OAAM;AAAA,YACxE;AAAA,YAEC,2BAAiB,OAAO,IAAI,CAAC,UAC5B,gBAAAF,KAAC,gBAAyB,OAAO,OAAQ,2BAAiB,oBAAoB,KAAK,KAAhE,KAAkE,CACtF;AAAA;AAAA,QACH;AAAA,QACA,gBAAAA,KAAC,SAAI,WAAU,+BACb,0BAAAA,KAAC,eAAY,OAAM,YAAW,SAAS,SACpC,sBAAY,MAAM,GACrB,GACF;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;","names":["useId","useEffect","useRef","useState","clsx","useState","jsx","SolidButton","jsx","IconButton","useCallback","useEffect","useState","useEffect","useState","listener","useState","useCallback","useEffect","active","useEffect","useState","jsx","jsxs","useState","useId","useRef","useEffect","clsx","createContext","forwardRef","useCallback","useContext","useEffect","useId","useMemo","useRef","useState","clsx","forwardRef","useCallback","useId","clsx","useEffect","useState","useState","useEffect","jsx","jsxs","clsx","forwardRef","Expandable","useCallback","useId","ExpandableUncontrolled","clsx","jsx","jsxs","jsxs","clsx","jsx","useCallback","useEffect","useState","useState","useCallback","useEffect","createPortal","jsx","jsxs","createContext","useContext","useRef","useId","useState","useMemo","value","useCallback","isOpen","useEffect","forwardRef","SelectOption","clsx","SelectButton","SelectChipDisplay","SelectContent","createPortal","Select","SelectUncontrolled","MultiSelect","MultiSelectUncontrolled","MultiSelectChipDisplay","MultiSelectChipDisplayUncontrolled","jsx","jsxs","locale"]}
|