@povio/ui 2.1.14 → 2.1.15
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 +74 -0
- package/dist/AclGuard.js +12 -0
- package/dist/ActionModal.js +51 -0
- package/dist/Alert.js +46 -0
- package/dist/AlignCenter.js +13 -0
- package/dist/AlignLeft.js +13 -0
- package/dist/AlignLeftRight.js +13 -0
- package/dist/AlignRight.js +13 -0
- package/dist/ArrowDropDown.js +13 -0
- package/dist/ArrowDropUp.js +13 -0
- package/dist/ArrowLeft.js +13 -0
- package/dist/ArrowRight.js +13 -0
- package/dist/AuthGuard.js +22 -0
- package/dist/Autocomplete.js +28 -0
- package/dist/Bold.js +13 -0
- package/dist/BottomSheet.js +191 -0
- package/dist/BulletedList.js +13 -0
- package/dist/Button.js +54 -0
- package/dist/ButtonContent.js +28 -0
- package/dist/Calendar.js +15 -0
- package/dist/Calendar2.js +54 -0
- package/dist/CalendarCell.js +130 -0
- package/dist/CalendarGrid.js +50 -0
- package/dist/CalendarHeader.js +75 -0
- package/dist/CalendarSelectHeader.js +170 -0
- package/dist/Can.js +13 -0
- package/dist/CellText.js +13 -0
- package/dist/Check.js +15 -0
- package/dist/CheckCircle.js +13 -0
- package/dist/CheckContent.js +16 -0
- package/dist/Checkbox.js +61 -0
- package/dist/CheckboxCheckmark.js +16 -0
- package/dist/CheckboxCheckmark2.js +25 -0
- package/dist/CheckboxIndeterminate.js +16 -0
- package/dist/ChevronDown.js +15 -0
- package/dist/ChevronLeft.js +15 -0
- package/dist/ChevronRight.js +15 -0
- package/dist/ChevronUp.js +15 -0
- package/dist/ChevronsLeft.js +15 -0
- package/dist/ChevronsRight.js +15 -0
- package/dist/Clock.js +13 -0
- package/dist/Close.js +13 -0
- package/dist/ColorPicker.js +16 -0
- package/dist/ColorPickerDropdown.js +51 -0
- package/dist/ColumnConfig.js +81 -0
- package/dist/DateField.js +89 -0
- package/dist/DatePicker.js +191 -0
- package/dist/DatePickerInput.js +158 -0
- package/dist/DateRangePicker.js +601 -0
- package/dist/DateSegmentItem.js +29 -0
- package/dist/DateTime.js +18 -0
- package/dist/DateTimeDialog.js +49 -0
- package/dist/DateTimeDialogFooter.js +25 -0
- package/dist/DateTimePicker.js +200 -0
- package/dist/Drag.js +13 -0
- package/dist/Drawer.js +43 -0
- package/dist/File.js +15 -0
- package/dist/FileCard.js +50 -0
- package/dist/FileCardList.js +17 -0
- package/dist/FileUpload.js +189 -0
- package/dist/FileUploadContainer.js +12 -0
- package/dist/FileUploadContent.js +61 -0
- package/dist/FileUploadContentEmpty.js +54 -0
- package/dist/FileUploadContentError.js +109 -0
- package/dist/FileUploadContentFilled.js +112 -0
- package/dist/FileUploadContentLoading.js +76 -0
- package/dist/Form.js +42 -0
- package/dist/FormField.js +35 -0
- package/dist/FormFieldError.js +11 -0
- package/dist/FormFieldHeader.js +36 -0
- package/dist/FormFieldHeaderClose.js +15 -0
- package/dist/FormFieldLabel.js +32 -0
- package/dist/HeaderText.js +10 -0
- package/dist/Highlight.js +13 -0
- package/dist/HighlightOn.js +19 -0
- package/dist/HyperlinkAction.js +70 -0
- package/dist/IconButton.js +12 -0
- package/dist/InfiniteTable.js +31 -0
- package/dist/Info.js +18 -0
- package/dist/InlineIconButton.js +13 -0
- package/dist/InputClear.js +19 -0
- package/dist/InputContent.js +94 -0
- package/dist/InputItem.js +54 -0
- package/dist/InputUpload.js +111 -0
- package/dist/InputUploadContent.js +52 -0
- package/dist/InputUploadFilled.js +26 -0
- package/dist/Inputs.js +15 -0
- package/dist/Italic.js +13 -0
- package/dist/Link.js +13 -0
- package/dist/Link2.js +19 -0
- package/dist/Loader.js +32 -0
- package/dist/Menu.js +13 -0
- package/dist/Menu2.js +9 -0
- package/dist/MenuDesktop.js +53 -0
- package/dist/MenuItem.js +21 -0
- package/dist/MenuMobile.js +64 -0
- package/dist/MenuPopover.js +30 -0
- package/dist/Modal.js +49 -0
- package/dist/MonthPicker.js +56 -0
- package/dist/NumberInput.js +132 -0
- package/dist/NumberedList.js +13 -0
- package/dist/PaginatedTable.js +26 -0
- package/dist/Pagination.js +43 -0
- package/dist/PaginationList.js +105 -0
- package/dist/PasswordInput.js +21 -0
- package/dist/PillButton.js +37 -0
- package/dist/PointerHorizontal.js +13 -0
- package/dist/PointerVertical.js +13 -0
- package/dist/ProgressBar.js +25 -0
- package/dist/QueryAutocomplete.js +18 -0
- package/dist/RadioGroup.js +81 -0
- package/dist/RangeCalendar.js +96 -0
- package/dist/ResponsivePopover.js +41 -0
- package/dist/Segment.js +82 -0
- package/dist/SegmentItem.js +23 -0
- package/dist/Select.js +24 -0
- package/dist/SelectBase.js +28 -0
- package/dist/SelectDesktop.js +147 -0
- package/dist/SelectInput.js +159 -0
- package/dist/SelectInputTags.js +29 -0
- package/dist/SelectListBox.js +73 -0
- package/dist/SelectListBoxItem.js +48 -0
- package/dist/SelectListBoxItemSelectAll.js +31 -0
- package/dist/SelectListBoxLoadingItem.js +41 -0
- package/dist/SelectListBoxSelectionBar.js +25 -0
- package/dist/SelectMobile.js +111 -0
- package/dist/Send.js +15 -0
- package/dist/Slider.js +93 -0
- package/dist/SplitButton.js +36 -0
- package/dist/Strikethrough.js +13 -0
- package/dist/Table.js +248 -0
- package/dist/Tag.js +42 -0
- package/dist/TextAlignSelect.js +44 -0
- package/dist/TextArea.js +120 -0
- package/dist/TextButton.js +13 -0
- package/dist/TextColor.js +16 -0
- package/dist/TextColorSelect.js +22 -0
- package/dist/TextEditor.js +143 -0
- package/dist/TextEditorToolbar.js +30 -0
- package/dist/TextHighlightSelect.js +24 -0
- package/dist/TextInput.js +125 -0
- package/dist/TextListActions.js +42 -0
- package/dist/TextMarksActions.js +67 -0
- package/dist/TextStyleSelect.js +52 -0
- package/dist/TimeField.js +17 -0
- package/dist/TimePicker.js +158 -0
- package/dist/TimePickerForm.js +158 -0
- package/dist/TimePickerInput.js +92 -0
- package/dist/Toast.js +58 -0
- package/dist/Today.js +13 -0
- package/dist/Toggle.js +60 -0
- package/dist/ToggleButton.js +13 -0
- package/dist/Tooltip.js +49 -0
- package/dist/TooltipEllipsis.js +18 -0
- package/dist/TooltipWrapper.js +19 -0
- package/dist/Typography.js +14 -0
- package/dist/Underlined.js +15 -0
- package/dist/Upload.js +16 -0
- package/dist/View.js +13 -0
- package/dist/ViewOff.js +13 -0
- package/dist/WarningFilled.js +15 -0
- package/dist/YearPicker.js +64 -0
- package/dist/ability.context.js +35 -0
- package/dist/alert.cva.js +62 -0
- package/dist/array.utils.js +8 -0
- package/dist/auth.context.js +37 -0
- package/dist/auth.js +6 -12
- package/dist/button.cva.js +656 -0
- package/dist/buttonContent.cva.js +10 -0
- package/dist/checkbox.cva.js +47 -0
- package/dist/components/inputs/Checkbox/Checkbox.d.ts +1 -0
- package/dist/components/inputs/Checkbox/CheckboxCheckmark.d.ts +2 -2
- package/dist/components/inputs/Checkbox/checkbox.cva.d.ts +5 -0
- package/dist/components/inputs/DateTime/DatePicker/DatePicker.d.ts +3 -1
- package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.d.ts +3 -1
- package/dist/components/inputs/DateTime/TimePicker/TimePicker.d.ts +1 -0
- package/dist/components/inputs/DateTime/shared/DateField.d.ts +1 -0
- package/dist/components/inputs/DateTime/shared/DatePickerInput.d.ts +8 -2
- package/dist/components/inputs/DateTime/shared/TimePickerInput.d.ts +2 -1
- package/dist/components/inputs/File/fileUpload.types.d.ts +1 -0
- package/dist/components/inputs/FormField/FormField.d.ts +4 -1
- package/dist/components/inputs/Input/NumberInput/NumberInput.d.ts +4 -2
- package/dist/components/inputs/Input/TextArea/TextArea.d.ts +1 -0
- package/dist/components/inputs/Input/TextInput/TextInput.d.ts +2 -1
- package/dist/components/inputs/Input/shared/InputContent.d.ts +4 -3
- package/dist/components/inputs/RadioGroup/RadioGroup.d.ts +3 -0
- package/dist/components/inputs/TextEditor/TextEditor.d.ts +1 -0
- package/dist/components/inputs/Toggle/Toggle.d.ts +2 -0
- package/dist/components/inputs/shared/CheckContent.d.ts +2 -1
- package/dist/compoundMapper.js +11 -0
- package/dist/config/uiStyle.context.d.ts +2 -1
- package/dist/confirmation.context.js +78 -0
- package/dist/date-time.utils.js +50 -0
- package/dist/date.utils.js +17 -0
- package/dist/dom.utils.js +17 -0
- package/dist/dynamicColumns.js +272 -0
- package/dist/dynamicInputs.js +186 -0
- package/dist/error-handling.js +87 -0
- package/dist/file.utils.js +43 -0
- package/dist/fileUpload.cva.js +49 -0
- package/dist/i18n.js +8 -0
- package/dist/index.js +136 -278
- package/dist/input.cva.js +210 -0
- package/dist/inputUploadButton.cva.js +27 -0
- package/dist/isEqual.js +57 -0
- package/dist/label.cva.js +104 -0
- package/dist/link.context.js +17 -0
- package/dist/link.cva.js +7 -0
- package/dist/loader.cva.js +16 -0
- package/dist/logger.js +17 -0
- package/dist/menu.cva.js +27 -0
- package/dist/minWidth.cva.js +9 -0
- package/dist/modal.cva.js +31 -0
- package/dist/object.utils.js +36 -0
- package/dist/outline.clsx.js +4 -0
- package/dist/pillButton.cva.js +254 -0
- package/dist/queries.utils.js +7 -0
- package/dist/radio.cva.js +42 -0
- package/dist/react.js +6 -0
- package/dist/rest-interceptor.js +22 -0
- package/dist/rest.utils.js +31 -0
- package/dist/rolldown_runtime.js +16 -0
- package/dist/router.context.js +37 -0
- package/dist/routing.utils.js +9 -0
- package/dist/segment.cva.js +25 -0
- package/dist/select.context.js +190 -0
- package/dist/status.cva.js +57 -0
- package/dist/string.utils.js +10 -0
- package/dist/table.cva.js +35 -0
- package/dist/tag.cva.js +50 -0
- package/dist/text-editor.js +2 -4
- package/dist/textEditor.types.js +38 -0
- package/dist/theme.context.js +65 -0
- package/dist/toast.cva.js +158 -0
- package/dist/toggle.cva.js +27 -0
- package/dist/tooltip.cva.js +30 -0
- package/dist/translation.js +147 -0
- package/dist/translation2.js +145 -0
- package/dist/typography.cva.js +124 -0
- package/dist/uiConfig.context.js +58 -0
- package/dist/uiStyle.context.js +16 -0
- package/dist/useAutosave.js +62 -0
- package/dist/useBreakpoint.js +28 -0
- package/dist/useDebounceCallback.js +23 -0
- package/dist/useDeepCompare.js +21 -0
- package/dist/useFilters.js +121 -0
- package/dist/useForm.js +12 -0
- package/dist/useFormAutosave.js +52 -0
- package/dist/useIntersectionObserver.js +23 -0
- package/dist/useLocalStorage.js +35 -0
- package/dist/useLongPressRepeat.js +27 -0
- package/dist/usePagination.js +26 -0
- package/dist/useScrollableListBox.js +24 -0
- package/dist/useSelectItems.js +82 -0
- package/dist/useSorting.js +34 -0
- package/dist/useStateAndRef.js +15 -0
- package/dist/useTableColumnConfig.js +38 -0
- package/dist/useTableNav.js +279 -0
- package/dist/useToast.js +63 -0
- package/dist/useTranslationMemo.js +10 -0
- package/dist/zod.utils.js +17 -0
- package/package.json +14 -14
- package/dist/assets/icons/AlignCenter.js +0 -21
- package/dist/assets/icons/AlignLeft.js +0 -21
- package/dist/assets/icons/AlignLeftRight.js +0 -21
- package/dist/assets/icons/AlignRight.js +0 -21
- package/dist/assets/icons/ArrowDropDown.js +0 -21
- package/dist/assets/icons/ArrowDropUp.js +0 -21
- package/dist/assets/icons/ArrowLeft.js +0 -21
- package/dist/assets/icons/ArrowRight.js +0 -21
- package/dist/assets/icons/Bold.js +0 -21
- package/dist/assets/icons/BulletedList.js +0 -21
- package/dist/assets/icons/Calendar.js +0 -23
- package/dist/assets/icons/Check.js +0 -23
- package/dist/assets/icons/CheckCircle.js +0 -21
- package/dist/assets/icons/CheckboxCheckmark.js +0 -24
- package/dist/assets/icons/CheckboxIndeterminate.js +0 -24
- package/dist/assets/icons/ChevronDown.js +0 -23
- package/dist/assets/icons/ChevronLeft.js +0 -23
- package/dist/assets/icons/ChevronRight.js +0 -23
- package/dist/assets/icons/ChevronUp.js +0 -23
- package/dist/assets/icons/ChevronsLeft.js +0 -23
- package/dist/assets/icons/ChevronsRight.js +0 -23
- package/dist/assets/icons/Clock.js +0 -21
- package/dist/assets/icons/Close.js +0 -21
- package/dist/assets/icons/DateTime.js +0 -32
- package/dist/assets/icons/Drag.js +0 -21
- package/dist/assets/icons/File.js +0 -23
- package/dist/assets/icons/Highlight.js +0 -21
- package/dist/assets/icons/HighlightOn.js +0 -30
- package/dist/assets/icons/Info.js +0 -32
- package/dist/assets/icons/Italic.js +0 -21
- package/dist/assets/icons/Link.js +0 -21
- package/dist/assets/icons/Menu.js +0 -21
- package/dist/assets/icons/NumberedList.js +0 -21
- package/dist/assets/icons/PointerHorizontal.js +0 -21
- package/dist/assets/icons/PointerVertical.js +0 -21
- package/dist/assets/icons/Send.js +0 -23
- package/dist/assets/icons/Strikethrough.js +0 -21
- package/dist/assets/icons/TextColor.js +0 -30
- package/dist/assets/icons/Today.js +0 -21
- package/dist/assets/icons/Underlined.js +0 -23
- package/dist/assets/icons/Upload.js +0 -30
- package/dist/assets/icons/View.js +0 -18
- package/dist/assets/icons/ViewOff.js +0 -18
- package/dist/assets/icons/WarningFilled.js +0 -23
- package/dist/assets/locales/en/translation.json.js +0 -14
- package/dist/assets/locales/sl/translation.json.js +0 -14
- package/dist/components/Menu/Menu.js +0 -14
- package/dist/components/Menu/MenuDesktop.js +0 -74
- package/dist/components/Menu/MenuItem.js +0 -27
- package/dist/components/Menu/MenuMobile.js +0 -83
- package/dist/components/Menu/MenuPopover.js +0 -43
- package/dist/components/Menu/menu.cva.js +0 -45
- package/dist/components/buttons/Button/Button.js +0 -73
- package/dist/components/buttons/Button/button.cva.js +0 -666
- package/dist/components/buttons/IconButton/IconButton.js +0 -17
- package/dist/components/buttons/InlineIconButton/InlineIconButton.js +0 -18
- package/dist/components/buttons/PillButton/PillButton.js +0 -44
- package/dist/components/buttons/PillButton/pillButton.cva.js +0 -268
- package/dist/components/buttons/SplitButton/SplitButton.js +0 -65
- package/dist/components/buttons/TextButton/TextButton.js +0 -18
- package/dist/components/buttons/ToggleButton/ToggleButton.js +0 -21
- package/dist/components/buttons/shared/ButtonContent.js +0 -53
- package/dist/components/buttons/shared/buttonContent.cva.js +0 -16
- package/dist/components/inputs/Checkbox/Checkbox.js +0 -81
- package/dist/components/inputs/Checkbox/CheckboxCheckmark.js +0 -32
- package/dist/components/inputs/Checkbox/checkbox.cva.js +0 -51
- package/dist/components/inputs/DateTime/DatePicker/DatePicker.js +0 -251
- package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.js +0 -689
- package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.js +0 -265
- package/dist/components/inputs/DateTime/TimePicker/TimePicker.js +0 -217
- package/dist/components/inputs/DateTime/shared/Calendar.js +0 -85
- package/dist/components/inputs/DateTime/shared/CalendarCell.js +0 -160
- package/dist/components/inputs/DateTime/shared/CalendarGrid.js +0 -67
- package/dist/components/inputs/DateTime/shared/CalendarHeader.js +0 -89
- package/dist/components/inputs/DateTime/shared/CalendarSelectHeader.js +0 -203
- package/dist/components/inputs/DateTime/shared/DateField.js +0 -77
- package/dist/components/inputs/DateTime/shared/DatePickerInput.js +0 -206
- package/dist/components/inputs/DateTime/shared/DateSegmentItem.js +0 -55
- package/dist/components/inputs/DateTime/shared/DateTimeDialog.js +0 -76
- package/dist/components/inputs/DateTime/shared/DateTimeDialogFooter.js +0 -47
- package/dist/components/inputs/DateTime/shared/MonthPicker.js +0 -82
- package/dist/components/inputs/DateTime/shared/RangeCalendar.js +0 -133
- package/dist/components/inputs/DateTime/shared/TimeField.js +0 -26
- package/dist/components/inputs/DateTime/shared/TimePickerForm.js +0 -186
- package/dist/components/inputs/DateTime/shared/TimePickerInput.js +0 -125
- package/dist/components/inputs/DateTime/shared/YearPicker.js +0 -89
- package/dist/components/inputs/File/FileUpload.js +0 -257
- package/dist/components/inputs/File/FileUploadContainer.js +0 -17
- package/dist/components/inputs/File/InputUpload.js +0 -174
- package/dist/components/inputs/File/shared/FileCard.js +0 -67
- package/dist/components/inputs/File/shared/FileCardList.js +0 -20
- package/dist/components/inputs/File/shared/FileUploadContent.js +0 -92
- package/dist/components/inputs/File/shared/FileUploadContentEmpty.js +0 -92
- package/dist/components/inputs/File/shared/FileUploadContentError.js +0 -167
- package/dist/components/inputs/File/shared/FileUploadContentFilled.js +0 -173
- package/dist/components/inputs/File/shared/FileUploadContentLoading.js +0 -128
- package/dist/components/inputs/File/shared/InputUploadContent.js +0 -73
- package/dist/components/inputs/File/shared/InputUploadFilled.js +0 -45
- package/dist/components/inputs/File/shared/ProgressBar.js +0 -42
- package/dist/components/inputs/File/shared/fileUpload.cva.js +0 -58
- package/dist/components/inputs/File/shared/inputUploadButton.cva.js +0 -49
- package/dist/components/inputs/FormField/FormField.js +0 -54
- package/dist/components/inputs/FormField/FormFieldError.js +0 -16
- package/dist/components/inputs/FormField/FormFieldHeader.js +0 -57
- package/dist/components/inputs/FormField/FormFieldHeaderClose.js +0 -20
- package/dist/components/inputs/FormField/FormFieldLabel.js +0 -37
- package/dist/components/inputs/Input/NumberInput/NumberInput.js +0 -166
- package/dist/components/inputs/Input/PasswordInput/PasswordInput.js +0 -26
- package/dist/components/inputs/Input/TextArea/TextArea.js +0 -155
- package/dist/components/inputs/Input/TextInput/TextInput.js +0 -162
- package/dist/components/inputs/Input/shared/InputContent.js +0 -114
- package/dist/components/inputs/Inputs/Form.js +0 -68
- package/dist/components/inputs/Inputs/InputItem.js +0 -61
- package/dist/components/inputs/Inputs/Inputs.js +0 -32
- package/dist/components/inputs/RadioGroup/RadioGroup.js +0 -103
- package/dist/components/inputs/RadioGroup/radio.cva.js +0 -57
- package/dist/components/inputs/Selection/Autocomplete/Autocomplete.js +0 -39
- package/dist/components/inputs/Selection/Autocomplete/QueryAutocomplete.js +0 -25
- package/dist/components/inputs/Selection/Select/Select.js +0 -32
- package/dist/components/inputs/Selection/shared/SelectBase.js +0 -27
- package/dist/components/inputs/Selection/shared/SelectDesktop.js +0 -223
- package/dist/components/inputs/Selection/shared/SelectInput.js +0 -234
- package/dist/components/inputs/Selection/shared/SelectInputTags.js +0 -49
- package/dist/components/inputs/Selection/shared/SelectListBox.js +0 -127
- package/dist/components/inputs/Selection/shared/SelectListBoxItem.js +0 -78
- package/dist/components/inputs/Selection/shared/SelectListBoxItemSelectAll.js +0 -45
- package/dist/components/inputs/Selection/shared/SelectListBoxLoadingItem.js +0 -47
- package/dist/components/inputs/Selection/shared/SelectListBoxSelectionBar.js +0 -42
- package/dist/components/inputs/Selection/shared/SelectMobile.js +0 -165
- package/dist/components/inputs/Selection/shared/select.context.js +0 -244
- package/dist/components/inputs/Selection/shared/useSelectItems.js +0 -94
- package/dist/components/inputs/Slider/Slider.js +0 -137
- package/dist/components/inputs/TextEditor/TextEditor.js +0 -223
- package/dist/components/inputs/TextEditor/Toolbar/ColorPicker.js +0 -34
- package/dist/components/inputs/TextEditor/Toolbar/ColorPickerDropdown.js +0 -80
- package/dist/components/inputs/TextEditor/Toolbar/HyperlinkAction.js +0 -92
- package/dist/components/inputs/TextEditor/Toolbar/TextAlignSelect.js +0 -56
- package/dist/components/inputs/TextEditor/Toolbar/TextColorSelect.js +0 -33
- package/dist/components/inputs/TextEditor/Toolbar/TextEditorToolbar.js +0 -31
- package/dist/components/inputs/TextEditor/Toolbar/TextHighlightSelect.js +0 -37
- package/dist/components/inputs/TextEditor/Toolbar/TextListActions.js +0 -51
- package/dist/components/inputs/TextEditor/Toolbar/TextMarksActions.js +0 -73
- package/dist/components/inputs/TextEditor/Toolbar/TextStyleSelect.js +0 -61
- package/dist/components/inputs/TextEditor/textEditor.types.js +0 -40
- package/dist/components/inputs/Toggle/Toggle.js +0 -65
- package/dist/components/inputs/Toggle/toggle.cva.js +0 -44
- package/dist/components/inputs/shared/CheckContent.js +0 -22
- package/dist/components/inputs/shared/InputClear.js +0 -27
- package/dist/components/inputs/shared/TooltipWrapper.js +0 -23
- package/dist/components/inputs/shared/input.cva.js +0 -174
- package/dist/components/inputs/shared/label.cva.js +0 -128
- package/dist/components/outline.clsx.js +0 -11
- package/dist/components/overlays/ActionModal/ActionModal.js +0 -80
- package/dist/components/overlays/BottomSheet/BottomSheet.js +0 -261
- package/dist/components/overlays/Drawer/Drawer.js +0 -84
- package/dist/components/overlays/Modal/Modal.js +0 -64
- package/dist/components/overlays/Modal/modal.cva.js +0 -53
- package/dist/components/overlays/ResponsivePopover/ResponsivePopover.js +0 -71
- package/dist/components/overlays/Tooltip/Tooltip.js +0 -92
- package/dist/components/overlays/Tooltip/TooltipEllipsis.js +0 -27
- package/dist/components/overlays/Tooltip/tooltip.cva.js +0 -60
- package/dist/components/segment/Segment.js +0 -118
- package/dist/components/segment/SegmentItem.js +0 -35
- package/dist/components/segment/segment.cva.js +0 -35
- package/dist/components/shared/pagination/Pagination.js +0 -75
- package/dist/components/shared/pagination/PaginationList.js +0 -145
- package/dist/components/shared/pagination/minWidth.cva.js +0 -15
- package/dist/components/status/Alert/Alert.js +0 -41
- package/dist/components/status/Alert/alert.cva.js +0 -64
- package/dist/components/status/Loader/Loader.js +0 -37
- package/dist/components/status/Loader/loader.cva.js +0 -27
- package/dist/components/status/Toast/Toast.js +0 -65
- package/dist/components/status/Toast/toast.cva.js +0 -150
- package/dist/components/status/Toast/useToast.js +0 -94
- package/dist/components/status/shared/status.cva.js +0 -62
- package/dist/components/table/CellText.js +0 -18
- package/dist/components/table/ColumnConfig.js +0 -124
- package/dist/components/table/HeaderText.js +0 -15
- package/dist/components/table/InfiniteTable.js +0 -40
- package/dist/components/table/PaginatedTable.js +0 -33
- package/dist/components/table/Table.js +0 -370
- package/dist/components/table/table.cva.js +0 -63
- package/dist/components/text/Link/Link.js +0 -24
- package/dist/components/text/Link/link.cva.js +0 -18
- package/dist/components/text/Tag/Tag.js +0 -49
- package/dist/components/text/Tag/tag.cva.js +0 -59
- package/dist/components/text/Typography/Typography.js +0 -22
- package/dist/components/text/Typography/typography.cva.js +0 -100
- package/dist/config/confirmation.context.js +0 -107
- package/dist/config/i18n.js +0 -15
- package/dist/config/link.context.js +0 -19
- package/dist/config/router.context.js +0 -39
- package/dist/config/theme.context.js +0 -73
- package/dist/config/uiConfig.context.js +0 -69
- package/dist/config/uiStyle.context.js +0 -16
- package/dist/helpers/dynamicColumns.js +0 -359
- package/dist/helpers/dynamicInputs.js +0 -212
- package/dist/hooks/useAutosave.js +0 -83
- package/dist/hooks/useBreakpoint.js +0 -33
- package/dist/hooks/useDebounceCallback.js +0 -29
- package/dist/hooks/useDeepCompare.js +0 -25
- package/dist/hooks/useFilters.js +0 -160
- package/dist/hooks/useForm.js +0 -22
- package/dist/hooks/useFormAutosave.js +0 -67
- package/dist/hooks/useIntersectionObserver.js +0 -27
- package/dist/hooks/useLocalStorage.js +0 -54
- package/dist/hooks/useLongPressRepeat.js +0 -33
- package/dist/hooks/usePagination.js +0 -35
- package/dist/hooks/useScrollableListBox.js +0 -30
- package/dist/hooks/useSorting.js +0 -32
- package/dist/hooks/useStateAndRef.js +0 -17
- package/dist/hooks/useTableColumnConfig.js +0 -63
- package/dist/hooks/useTableNav.js +0 -394
- package/dist/hooks/useTranslationMemo.js +0 -14
- package/dist/utils/array.utils.js +0 -12
- package/dist/utils/compoundMapper.js +0 -14
- package/dist/utils/date-time.utils.js +0 -77
- package/dist/utils/date.utils.js +0 -23
- package/dist/utils/dom.utils.js +0 -13
- package/dist/utils/file.utils.js +0 -63
- package/dist/utils/isEqual.js +0 -95
- package/dist/utils/logger.js +0 -19
- package/dist/utils/object.utils.js +0 -53
- package/dist/utils/queries.utils.js +0 -9
- package/dist/utils/rest.utils.js +0 -51
- package/dist/utils/routing.utils.js +0 -15
- package/dist/utils/string.utils.js +0 -12
- package/dist/utils/vendor/acl/AclGuard.js +0 -14
- package/dist/utils/vendor/acl/Can.js +0 -18
- package/dist/utils/vendor/acl/ability.context.js +0 -37
- package/dist/utils/vendor/auth/AuthGuard.js +0 -26
- package/dist/utils/vendor/auth/auth.context.js +0 -41
- package/dist/utils/vendor/error-handling.js +0 -119
- package/dist/utils/vendor/rest-interceptor.js +0 -21
- package/dist/utils/zod.utils.js +0 -21
package/dist/Table.js
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { ChevronDownIcon } from "./ChevronDown.js";
|
|
2
|
+
import { ChevronUpIcon } from "./ChevronUp.js";
|
|
3
|
+
import { UIStyle } from "./uiStyle.context.js";
|
|
4
|
+
import { InlineIconButton } from "./InlineIconButton.js";
|
|
5
|
+
import { CellText } from "./CellText.js";
|
|
6
|
+
import { DragIcon } from "./Drag.js";
|
|
7
|
+
import { HeaderText } from "./HeaderText.js";
|
|
8
|
+
import { useTableNav } from "./useTableNav.js";
|
|
9
|
+
import { tableData, tableHeadData, tableHeadRow, tableRow } from "./table.cva.js";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { clsx } from "clsx";
|
|
12
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
13
|
+
import i18next from "i18next";
|
|
14
|
+
import { DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, useSensor, useSensors } from "@dnd-kit/core";
|
|
15
|
+
import { restrictToVerticalAxis } from "@dnd-kit/modifiers";
|
|
16
|
+
import { SortableContext, arrayMove, useSortable, verticalListSortingStrategy } from "@dnd-kit/sortable";
|
|
17
|
+
import { CSS } from "@dnd-kit/utilities";
|
|
18
|
+
import { flexRender, getCoreRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
|
|
19
|
+
var CustomCellContext = (context) => {
|
|
20
|
+
return {
|
|
21
|
+
...context,
|
|
22
|
+
original: context.row.original,
|
|
23
|
+
data: context.row.original,
|
|
24
|
+
value: context.getValue()
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
var CellRender = (Comp, props) => {
|
|
28
|
+
const rendered = typeof Comp === "function" ? Comp(props) : Comp;
|
|
29
|
+
return typeof rendered === "string" ? /* @__PURE__ */ jsx(CellText, { children: rendered }) : rendered;
|
|
30
|
+
};
|
|
31
|
+
const RowDragHandleCell = ({ rowId }) => {
|
|
32
|
+
const { attributes, listeners } = useSortable({ id: rowId });
|
|
33
|
+
return /* @__PURE__ */ jsx(InlineIconButton, {
|
|
34
|
+
...attributes,
|
|
35
|
+
...listeners,
|
|
36
|
+
className: "cursor-move p-1",
|
|
37
|
+
label: "Drag handle",
|
|
38
|
+
icon: DragIcon
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
var AutoDragHandleCell = ({ row }) => /* @__PURE__ */ jsx(RowDragHandleCell, { rowId: row.id });
|
|
42
|
+
var DraggableRow = ({ row, showCellBorder, onRowClick, onDoubleClick, tableRowCva, tableDataCva, hasOnClick,...props }) => {
|
|
43
|
+
const { transform, transition, setNodeRef, isDragging } = useSortable({ id: row.id });
|
|
44
|
+
return /* @__PURE__ */ jsx("tr", {
|
|
45
|
+
ref: setNodeRef,
|
|
46
|
+
style: {
|
|
47
|
+
transform: CSS.Transform.toString(transform),
|
|
48
|
+
transition,
|
|
49
|
+
opacity: isDragging ? .8 : 1,
|
|
50
|
+
zIndex: isDragging ? 1 : 0,
|
|
51
|
+
position: "relative"
|
|
52
|
+
},
|
|
53
|
+
"data-clickable": hasOnClick,
|
|
54
|
+
"data-selected": row.getIsSelected() || void 0,
|
|
55
|
+
className: clsx(tableRowCva(props)),
|
|
56
|
+
onClick: () => {
|
|
57
|
+
row.toggleSelected();
|
|
58
|
+
onRowClick?.(row.original);
|
|
59
|
+
},
|
|
60
|
+
onDoubleClick: () => onDoubleClick?.(row.original),
|
|
61
|
+
children: row.getVisibleCells().map((cell, cellIndex) => {
|
|
62
|
+
const columnMeta = cell.column.columnDef.meta ?? {};
|
|
63
|
+
return /* @__PURE__ */ jsx("td", {
|
|
64
|
+
tabIndex: -1,
|
|
65
|
+
className: clsx(tableDataCva({ hasRightBorder: cellIndex > 0 && showCellBorder }), columnMeta.cellClass, columnMeta.width),
|
|
66
|
+
children: CellRender(cell.column.columnDef.cell, CustomCellContext(cell.getContext()))
|
|
67
|
+
}, cell.id);
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
const Table = ({ items, showCellBorder, columns, onRowClick, onDoubleClick, className, sorting, setSorting, columnOrder, setColumnOrder, columnVisibility, setColumnVisibility, bulkSelectionActions: ActionHeader, enableDragDrop = false, onDragEnd, onReorder, getRowId, enableRowSelection, enableMultiRowSelection = false, defaultSelectedRows, onRowSelectionChange,...props }) => {
|
|
72
|
+
const uiStyle = UIStyle.useConfig();
|
|
73
|
+
const tableRowCva = uiStyle?.table?.rowCva ?? tableRow;
|
|
74
|
+
const tableHeadRowCva = uiStyle?.table?.headRowCva ?? tableHeadRow;
|
|
75
|
+
const tableHeadDataCva = uiStyle?.table?.headDataCva ?? tableHeadData;
|
|
76
|
+
const tableDataCva = uiStyle?.table?.dataCva ?? tableData;
|
|
77
|
+
const ref = useRef(null);
|
|
78
|
+
const { listeners } = useTableNav();
|
|
79
|
+
const getCoreRowModelCallback = useCallback(getCoreRowModel, []);
|
|
80
|
+
const getSortedRowModelCallback = useCallback(getSortedRowModel, []);
|
|
81
|
+
const getPaginationRowModelCallback = useCallback(getPaginationRowModel, []);
|
|
82
|
+
const data = useMemo(() => items ?? [], [items]);
|
|
83
|
+
const [internalSelectedRows, setInternalSelectedRows] = useState({});
|
|
84
|
+
const { rowSelection, handleRowSelectionChange } = useMemo(() => {
|
|
85
|
+
const hasExternalRowSelection = defaultSelectedRows !== void 0 && onRowSelectionChange !== void 0;
|
|
86
|
+
return {
|
|
87
|
+
rowSelection: hasExternalRowSelection ? defaultSelectedRows : internalSelectedRows,
|
|
88
|
+
handleRowSelectionChange: hasExternalRowSelection ? onRowSelectionChange : setInternalSelectedRows
|
|
89
|
+
};
|
|
90
|
+
}, [
|
|
91
|
+
defaultSelectedRows,
|
|
92
|
+
onRowSelectionChange,
|
|
93
|
+
internalSelectedRows
|
|
94
|
+
]);
|
|
95
|
+
const baseColumns = useMemo(() => typeof columns === "function" ? columns(i18next.t) : columns, [columns]);
|
|
96
|
+
const table = useReactTable({
|
|
97
|
+
data,
|
|
98
|
+
columns: useMemo(() => {
|
|
99
|
+
if (enableDragDrop && getRowId) return [{
|
|
100
|
+
id: "drag-handle",
|
|
101
|
+
header: "",
|
|
102
|
+
meta: { width: "w-12" },
|
|
103
|
+
cell: AutoDragHandleCell,
|
|
104
|
+
enableSorting: false
|
|
105
|
+
}, ...baseColumns];
|
|
106
|
+
return baseColumns;
|
|
107
|
+
}, [
|
|
108
|
+
baseColumns,
|
|
109
|
+
enableDragDrop,
|
|
110
|
+
getRowId
|
|
111
|
+
]),
|
|
112
|
+
state: {
|
|
113
|
+
sorting,
|
|
114
|
+
columnOrder,
|
|
115
|
+
columnVisibility,
|
|
116
|
+
rowSelection
|
|
117
|
+
},
|
|
118
|
+
rowCount: items.length,
|
|
119
|
+
getCoreRowModel: getCoreRowModelCallback(),
|
|
120
|
+
getSortedRowModel: getSortedRowModelCallback(),
|
|
121
|
+
getPaginationRowModel: getPaginationRowModelCallback(),
|
|
122
|
+
manualPagination: true,
|
|
123
|
+
onColumnOrderChange: setColumnOrder,
|
|
124
|
+
onColumnVisibilityChange: setColumnVisibility,
|
|
125
|
+
onSortingChange: setSorting,
|
|
126
|
+
onRowSelectionChange: handleRowSelectionChange,
|
|
127
|
+
manualSorting: true,
|
|
128
|
+
autoResetPageIndex: false,
|
|
129
|
+
autoResetExpanded: false,
|
|
130
|
+
defaultColumn: { sortDescFirst: true },
|
|
131
|
+
enableRowSelection,
|
|
132
|
+
enableMultiRowSelection,
|
|
133
|
+
getRowId: getRowId ? (row) => String(getRowId(row)) : void 0
|
|
134
|
+
});
|
|
135
|
+
const dataIds = useMemo(() => {
|
|
136
|
+
if (!enableDragDrop || !getRowId) return [];
|
|
137
|
+
return data.map((item) => getRowId(item));
|
|
138
|
+
}, [
|
|
139
|
+
data,
|
|
140
|
+
enableDragDrop,
|
|
141
|
+
getRowId
|
|
142
|
+
]);
|
|
143
|
+
const handleDragEnd = useCallback((event) => {
|
|
144
|
+
const { active, over } = event;
|
|
145
|
+
if (!active || !over || active.id === over.id) return;
|
|
146
|
+
if (getRowId && (onReorder || onDragEnd)) {
|
|
147
|
+
if (onReorder) {
|
|
148
|
+
const oldIndex = items.findIndex((item) => getRowId(item) === active.id);
|
|
149
|
+
const newIndex = items.findIndex((item) => getRowId(item) === over.id);
|
|
150
|
+
if (oldIndex !== -1 && newIndex !== -1) onReorder(arrayMove(items, oldIndex, newIndex));
|
|
151
|
+
}
|
|
152
|
+
onDragEnd?.(event);
|
|
153
|
+
}
|
|
154
|
+
}, [
|
|
155
|
+
onDragEnd,
|
|
156
|
+
onReorder,
|
|
157
|
+
items,
|
|
158
|
+
getRowId
|
|
159
|
+
]);
|
|
160
|
+
const sensors = useSensors(useSensor(MouseSensor, {}), useSensor(TouchSensor, {}), useSensor(KeyboardSensor, {}));
|
|
161
|
+
const selectedRows = table.getSelectedRowModel().rows;
|
|
162
|
+
const columnCount = table.getHeaderGroups()[0].headers.length;
|
|
163
|
+
const isAnyRowSelected = selectedRows.length > 0 && !!ActionHeader;
|
|
164
|
+
const hasOnClick = !!onRowClick || !!onDoubleClick;
|
|
165
|
+
const tableElement = /* @__PURE__ */ jsxs("table", {
|
|
166
|
+
className: clsx("w-full", className),
|
|
167
|
+
...listeners,
|
|
168
|
+
children: [/* @__PURE__ */ jsx("thead", {
|
|
169
|
+
className: "sticky top-0 z-10 bg-elevation-fill-default-1 shadow-2",
|
|
170
|
+
children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx("tr", {
|
|
171
|
+
className: clsx(tableHeadRowCva({})),
|
|
172
|
+
children: headerGroup.headers.filter((header) => {
|
|
173
|
+
if (isAnyRowSelected && header.index > 0) return false;
|
|
174
|
+
return header.column.getIsVisible();
|
|
175
|
+
}).map((header, index) => {
|
|
176
|
+
const columnMeta = header.column.columnDef.meta ?? {};
|
|
177
|
+
return /* @__PURE__ */ jsx("th", {
|
|
178
|
+
colSpan: isAnyRowSelected ? columnCount : header.colSpan,
|
|
179
|
+
tabIndex: -1,
|
|
180
|
+
className: clsx(tableHeadDataCva({ hasRightBorder: index > 0 && showCellBorder }), columnMeta.headerClass, columnMeta.width),
|
|
181
|
+
children: isAnyRowSelected ? /* @__PURE__ */ jsx(ActionHeader, { table }) : /* @__PURE__ */ jsxs("button", {
|
|
182
|
+
type: "button",
|
|
183
|
+
"aria-label": "Sort column",
|
|
184
|
+
className: clsx("flex select-none items-center gap-1 text-text-default-1", header.column.getCanSort() ? "h-6 cursor-pointer rounded-xs px-1 hover:bg-elevation-fill-default-2" : "cursor-default", columnMeta.sortClass),
|
|
185
|
+
onClick: header.column.getToggleSortingHandler(),
|
|
186
|
+
children: [typeof header.column.columnDef.header === "function" ? flexRender(header.column.columnDef.header, header.getContext()) : /* @__PURE__ */ jsx(HeaderText, { children: header.column.columnDef.header }), {
|
|
187
|
+
asc: /* @__PURE__ */ jsx(ChevronUpIcon, {
|
|
188
|
+
width: 18,
|
|
189
|
+
height: 18
|
|
190
|
+
}),
|
|
191
|
+
desc: /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
192
|
+
width: 18,
|
|
193
|
+
height: 18
|
|
194
|
+
})
|
|
195
|
+
}[header.column.getIsSorted()] ?? null]
|
|
196
|
+
})
|
|
197
|
+
}, header.id);
|
|
198
|
+
})
|
|
199
|
+
}, headerGroup.id))
|
|
200
|
+
}), /* @__PURE__ */ jsx("tbody", {
|
|
201
|
+
ref,
|
|
202
|
+
className: "relative",
|
|
203
|
+
children: enableDragDrop ? /* @__PURE__ */ jsx(SortableContext, {
|
|
204
|
+
items: dataIds,
|
|
205
|
+
strategy: verticalListSortingStrategy,
|
|
206
|
+
children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(DraggableRow, {
|
|
207
|
+
row,
|
|
208
|
+
showCellBorder,
|
|
209
|
+
onRowClick,
|
|
210
|
+
onDoubleClick,
|
|
211
|
+
tableRowCva,
|
|
212
|
+
tableHeadDataCva,
|
|
213
|
+
tableDataCva,
|
|
214
|
+
hasOnClick,
|
|
215
|
+
...props
|
|
216
|
+
}, row.id))
|
|
217
|
+
}) : table.getRowModel().rows.map((row) => {
|
|
218
|
+
return /* @__PURE__ */ jsx("tr", {
|
|
219
|
+
className: clsx(tableRowCva({ ...props })),
|
|
220
|
+
onClick: () => {
|
|
221
|
+
row.toggleSelected();
|
|
222
|
+
onRowClick?.(row.original);
|
|
223
|
+
},
|
|
224
|
+
onDoubleClick: () => onDoubleClick?.(row.original),
|
|
225
|
+
"data-clickable": hasOnClick,
|
|
226
|
+
"data-selected": row.getIsSelected() || void 0,
|
|
227
|
+
children: row.getVisibleCells().map((cell, cellIndex) => {
|
|
228
|
+
const columnMeta = cell.column.columnDef.meta ?? {};
|
|
229
|
+
return /* @__PURE__ */ jsx("td", {
|
|
230
|
+
tabIndex: -1,
|
|
231
|
+
className: clsx(tableDataCva({ hasRightBorder: cellIndex > 0 && showCellBorder }), columnMeta.cellClass, columnMeta.width),
|
|
232
|
+
children: CellRender(cell.column.columnDef.cell, CustomCellContext(cell.getContext()))
|
|
233
|
+
}, cell.id);
|
|
234
|
+
})
|
|
235
|
+
}, row.id);
|
|
236
|
+
})
|
|
237
|
+
})]
|
|
238
|
+
});
|
|
239
|
+
if (enableDragDrop) return /* @__PURE__ */ jsx(DndContext, {
|
|
240
|
+
collisionDetection: closestCenter,
|
|
241
|
+
modifiers: [restrictToVerticalAxis],
|
|
242
|
+
onDragEnd: handleDragEnd,
|
|
243
|
+
sensors,
|
|
244
|
+
children: tableElement
|
|
245
|
+
});
|
|
246
|
+
return tableElement;
|
|
247
|
+
};
|
|
248
|
+
export { Table };
|
package/dist/Tag.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { CloseIcon } from "./Close.js";
|
|
2
|
+
import { UIStyle } from "./uiStyle.context.js";
|
|
3
|
+
import { Typography } from "./Typography.js";
|
|
4
|
+
import { TooltipEllipsis } from "./TooltipEllipsis.js";
|
|
5
|
+
import { ns } from "./i18n.js";
|
|
6
|
+
import { tag } from "./tag.cva.js";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { clsx } from "clsx";
|
|
9
|
+
import { Button } from "react-aria-components";
|
|
10
|
+
import { useTranslation } from "react-i18next";
|
|
11
|
+
const Tag = ({ className, children, dismissable, isDisabled, onDismiss,...props }) => {
|
|
12
|
+
const tagCva = UIStyle.useConfig()?.tag?.cva ?? tag;
|
|
13
|
+
const { t } = useTranslation("ui");
|
|
14
|
+
const buttonProps = {
|
|
15
|
+
isDisabled,
|
|
16
|
+
onPress: onDismiss,
|
|
17
|
+
label: t(($) => $.ui.tag.dismiss),
|
|
18
|
+
...props
|
|
19
|
+
};
|
|
20
|
+
return /* @__PURE__ */ jsx(TooltipEllipsis, {
|
|
21
|
+
text: children,
|
|
22
|
+
children: (onContentRef) => /* @__PURE__ */ jsxs("div", {
|
|
23
|
+
className: tagCva({
|
|
24
|
+
...props,
|
|
25
|
+
className: clsx("pointer-events-none", className)
|
|
26
|
+
}),
|
|
27
|
+
children: [/* @__PURE__ */ jsx(Typography, {
|
|
28
|
+
ref: onContentRef,
|
|
29
|
+
variant: "default",
|
|
30
|
+
size: "label-2",
|
|
31
|
+
as: "span",
|
|
32
|
+
className: "truncate",
|
|
33
|
+
children
|
|
34
|
+
}), dismissable && /* @__PURE__ */ jsx(Button, {
|
|
35
|
+
...buttonProps,
|
|
36
|
+
className: "pointer-events-auto shrink-0",
|
|
37
|
+
children: /* @__PURE__ */ jsx(CloseIcon, { className: "size-4" })
|
|
38
|
+
})]
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
export { Tag };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AlignCenterIcon } from "./AlignCenter.js";
|
|
2
|
+
import { AlignLeftIcon } from "./AlignLeft.js";
|
|
3
|
+
import { AlignLeftRightIcon } from "./AlignLeftRight.js";
|
|
4
|
+
import { AlignRightIcon } from "./AlignRight.js";
|
|
5
|
+
import { ns } from "./i18n.js";
|
|
6
|
+
import { Select } from "./Select.js";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
import { useTranslation } from "react-i18next";
|
|
9
|
+
const TextAlignSelect = ({ editor }) => {
|
|
10
|
+
const { t } = useTranslation("ui");
|
|
11
|
+
if (!!!editor.extensionManager.extensions.find((extension) => extension.name === "textAlign")) return null;
|
|
12
|
+
const onChange = (val) => {
|
|
13
|
+
if (val) editor.chain().focus().setTextAlign(val).run();
|
|
14
|
+
else editor.chain().focus().unsetTextAlign().run();
|
|
15
|
+
};
|
|
16
|
+
const getItem = (id, Icon) => {
|
|
17
|
+
return {
|
|
18
|
+
id,
|
|
19
|
+
label: t(($) => $.ui.textEditor.textAlign[id]),
|
|
20
|
+
content: /* @__PURE__ */ jsx(Icon, { className: "size-6" }),
|
|
21
|
+
isActive: editor.isActive({ textAlign: id }),
|
|
22
|
+
can: editor.can().setTextAlign(id)
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
const enabledItems = [
|
|
26
|
+
getItem("left", AlignLeftIcon),
|
|
27
|
+
getItem("center", AlignCenterIcon),
|
|
28
|
+
getItem("right", AlignRightIcon),
|
|
29
|
+
getItem("justify", AlignLeftRightIcon)
|
|
30
|
+
].filter((item) => item.can);
|
|
31
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
32
|
+
as: "inline",
|
|
33
|
+
label: t(($) => $.ui.textEditor.textAlign.label),
|
|
34
|
+
placeholder: t(($) => $.ui.textEditor.textAlign.label),
|
|
35
|
+
hideLabel: true,
|
|
36
|
+
ignoreTriggerWidth: true,
|
|
37
|
+
showSelectionContent: true,
|
|
38
|
+
onChange,
|
|
39
|
+
items: enabledItems,
|
|
40
|
+
value: enabledItems.find((item) => item.isActive)?.id || "left",
|
|
41
|
+
isDisabled: !editor.isEditable
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
export { TextAlignSelect };
|
package/dist/TextArea.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { UIStyle } from "./uiStyle.context.js";
|
|
2
|
+
import { UIConfig } from "./uiConfig.context.js";
|
|
3
|
+
import { inputSize, useInputCva } from "./input.cva.js";
|
|
4
|
+
import { FormFieldLabel } from "./FormFieldLabel.js";
|
|
5
|
+
import { InputClear } from "./InputClear.js";
|
|
6
|
+
import { FormField } from "./FormField.js";
|
|
7
|
+
import { TooltipWrapper } from "./TooltipWrapper.js";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { clsx } from "clsx";
|
|
10
|
+
import { TextArea } from "react-aria-components";
|
|
11
|
+
import { useRef } from "react";
|
|
12
|
+
import { useTextField } from "react-aria";
|
|
13
|
+
import { mergeRefs } from "@react-aria/utils";
|
|
14
|
+
import { Controller } from "react-hook-form";
|
|
15
|
+
var TextAreaBase = (props) => {
|
|
16
|
+
const ui = UIConfig.useConfig();
|
|
17
|
+
const inputCva = useInputCva();
|
|
18
|
+
const inputSizeCva = UIStyle.useConfig()?.input?.sizeCva ?? inputSize;
|
|
19
|
+
const { ref, className, inputClassName, error, label, tooltipText, helperText, isRequired, rightContent, isDisabled, isDirty, headerClassName, errorClassName, isHeaderHidden, value, onChange, onBlur, as = ui.input.as, hideLabel = ui.input.hideLabel, variant = ui.input.variant, isClearable = ui.input.isClearable,...rest } = props;
|
|
20
|
+
const textFieldRef = useRef(null);
|
|
21
|
+
const { labelProps, inputProps } = useTextField({
|
|
22
|
+
...rest,
|
|
23
|
+
label,
|
|
24
|
+
isDisabled,
|
|
25
|
+
isInvalid: !!error,
|
|
26
|
+
isRequired,
|
|
27
|
+
value,
|
|
28
|
+
onChange,
|
|
29
|
+
onBlur
|
|
30
|
+
}, textFieldRef);
|
|
31
|
+
const formFieldProps = {
|
|
32
|
+
error,
|
|
33
|
+
label,
|
|
34
|
+
tooltipText,
|
|
35
|
+
helperText,
|
|
36
|
+
isRequired,
|
|
37
|
+
rightContent,
|
|
38
|
+
isHeaderHidden: isHeaderHidden || as === "inline" || as === "filter" || as === "floating",
|
|
39
|
+
hideLabel,
|
|
40
|
+
isDisabled,
|
|
41
|
+
headerClassName,
|
|
42
|
+
errorClassName
|
|
43
|
+
};
|
|
44
|
+
const headerProps = {
|
|
45
|
+
label,
|
|
46
|
+
tooltipText,
|
|
47
|
+
helperText,
|
|
48
|
+
isRequired,
|
|
49
|
+
rightContent,
|
|
50
|
+
isHeaderHidden: hideLabel || isHeaderHidden,
|
|
51
|
+
isDisabled,
|
|
52
|
+
className: headerClassName,
|
|
53
|
+
labelProps
|
|
54
|
+
};
|
|
55
|
+
const showClear = isClearable && value != null && value !== "";
|
|
56
|
+
return /* @__PURE__ */ jsx(TooltipWrapper, {
|
|
57
|
+
as,
|
|
58
|
+
error,
|
|
59
|
+
triggerTabIndex: as === "inline" ? -1 : void 0,
|
|
60
|
+
children: /* @__PURE__ */ jsx(FormField, {
|
|
61
|
+
...formFieldProps,
|
|
62
|
+
as,
|
|
63
|
+
labelProps,
|
|
64
|
+
className: clsx("w-full", className),
|
|
65
|
+
tabIndex: as === "inline" ? -1 : void 0,
|
|
66
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
67
|
+
className: "group/text-area relative h-full",
|
|
68
|
+
"data-text-area": true,
|
|
69
|
+
children: [
|
|
70
|
+
as === "floating" && headerProps && /* @__PURE__ */ jsx(FormFieldLabel, {
|
|
71
|
+
as,
|
|
72
|
+
...headerProps
|
|
73
|
+
}),
|
|
74
|
+
/* @__PURE__ */ jsx(TextArea, {
|
|
75
|
+
...inputProps,
|
|
76
|
+
"data-is-dirty": isDirty || void 0,
|
|
77
|
+
"data-is-required": isRequired || void 0,
|
|
78
|
+
"data-is-empty": value?.trim() === "" || value === null || value === void 0 || void 0,
|
|
79
|
+
placeholder: as === "floating" ? "" : inputProps.placeholder,
|
|
80
|
+
className: inputCva({
|
|
81
|
+
variant,
|
|
82
|
+
as,
|
|
83
|
+
...rest,
|
|
84
|
+
className: clsx("block h-full min-h-8", inputClassName)
|
|
85
|
+
}),
|
|
86
|
+
ref
|
|
87
|
+
}),
|
|
88
|
+
showClear && /* @__PURE__ */ jsx("span", {
|
|
89
|
+
className: clsx("absolute top-0 right-0", inputSizeCva({ size: "default" })),
|
|
90
|
+
children: /* @__PURE__ */ jsx(InputClear, { onClear: () => {
|
|
91
|
+
onChange?.("");
|
|
92
|
+
onBlur?.(null);
|
|
93
|
+
} })
|
|
94
|
+
})
|
|
95
|
+
]
|
|
96
|
+
})
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
const TextArea$1 = (props) => {
|
|
101
|
+
if ("formControl" in props && props.formControl) {
|
|
102
|
+
const { formControl, ref,...innerProps } = props;
|
|
103
|
+
return /* @__PURE__ */ jsx(Controller, {
|
|
104
|
+
control: formControl.control,
|
|
105
|
+
name: formControl.name,
|
|
106
|
+
render: ({ field, fieldState: { error, isDirty } }) => /* @__PURE__ */ jsx(TextAreaBase, {
|
|
107
|
+
...innerProps,
|
|
108
|
+
ref: mergeRefs(ref, field.ref),
|
|
109
|
+
value: field.value ?? "",
|
|
110
|
+
onChange: field.onChange,
|
|
111
|
+
onBlur: field.onBlur,
|
|
112
|
+
isDirty,
|
|
113
|
+
isDisabled: field.disabled || props.isDisabled,
|
|
114
|
+
error: props.error ?? error?.message
|
|
115
|
+
})
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return /* @__PURE__ */ jsx(TextAreaBase, { ...props });
|
|
119
|
+
};
|
|
120
|
+
export { TextArea$1 as TextArea };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Button } from "./Button.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
const TextButton = ({ children,...props }) => {
|
|
4
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
5
|
+
...props,
|
|
6
|
+
variant: "text",
|
|
7
|
+
size: "none",
|
|
8
|
+
width: props.width ?? "hug",
|
|
9
|
+
disableTooltip: props.disableTooltip,
|
|
10
|
+
children
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
export { TextButton };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
const TextColorIcon = ({ textColor,...props }) => /* @__PURE__ */ jsxs("svg", {
|
|
3
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4
|
+
fill: "none",
|
|
5
|
+
viewBox: "0 0 25 24",
|
|
6
|
+
className: "fill-current",
|
|
7
|
+
...props,
|
|
8
|
+
children: [/* @__PURE__ */ jsx("path", {
|
|
9
|
+
d: "M7.40305 17C7.11588 17 6.8903 16.8807 6.7263 16.6423C6.56213 16.4039 6.53072 16.1495 6.63205 15.879L11.282 4.01925C11.3397 3.86292 11.4365 3.73725 11.5723 3.64225C11.7083 3.54742 11.8577 3.5 12.0205 3.5H12.651C12.8242 3.5 12.9762 3.54742 13.107 3.64225C13.2377 3.73725 13.3319 3.86292 13.3896 4.01925L18.0453 15.8655C18.1466 16.1423 18.1136 16.4007 17.9463 16.6405C17.779 16.8802 17.5517 17 17.2646 17C17.0891 17 16.9269 16.951 16.778 16.853C16.6294 16.7548 16.523 16.6179 16.4588 16.4423L15.3205 13.3808H9.34355L8.1743 16.4672C8.11013 16.6366 8.00947 16.7677 7.8723 16.8605C7.73513 16.9535 7.57872 17 7.40305 17ZM9.8703 11.9H14.7628L12.3858 5.6H12.2666L9.8703 11.9Z",
|
|
10
|
+
fill: "currentColor"
|
|
11
|
+
}), /* @__PURE__ */ jsx("path", {
|
|
12
|
+
d: "M3.09457 23.741C3.2669 23.9135 3.48198 23.9998 3.73982 23.9998H20.9318C21.1896 23.9998 21.4047 23.9135 21.5771 23.741C21.7496 23.5687 21.8358 23.3537 21.8358 23.096V21.1728C21.8358 20.9151 21.7496 20.7001 21.5771 20.5278C21.4047 20.3553 21.1896 20.269 20.9318 20.269H3.73982C3.48198 20.269 3.2669 20.3553 3.09457 20.5278C2.92207 20.7001 2.83582 20.9151 2.83582 21.1728V23.096C2.83582 23.3537 2.92207 23.5687 3.09457 23.741Z",
|
|
13
|
+
fill: textColor || "black"
|
|
14
|
+
})]
|
|
15
|
+
});
|
|
16
|
+
export { TextColorIcon };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TextColorIcon } from "./TextColor.js";
|
|
2
|
+
import { ColorPickerDropdown } from "./ColorPickerDropdown.js";
|
|
3
|
+
import { defaultColors } from "./textEditor.types.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
const TextColorSelect = ({ editor }) => {
|
|
6
|
+
if (!editor.extensionManager.extensions.some((extension) => extension.name === "color")) return null;
|
|
7
|
+
const onChange = (color) => {
|
|
8
|
+
editor.chain().focus().setColor(color).run();
|
|
9
|
+
};
|
|
10
|
+
const textColor = editor.getAttributes("textStyle").color || "#000000";
|
|
11
|
+
return /* @__PURE__ */ jsx(ColorPickerDropdown, {
|
|
12
|
+
value: textColor,
|
|
13
|
+
onChange,
|
|
14
|
+
colors: defaultColors,
|
|
15
|
+
isDisabled: !editor.isEditable,
|
|
16
|
+
children: /* @__PURE__ */ jsx(TextColorIcon, {
|
|
17
|
+
className: "size-6",
|
|
18
|
+
textColor
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
export { TextColorSelect };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { uiOutlineClass } from "./outline.clsx.js";
|
|
2
|
+
import { isEqual } from "./isEqual.js";
|
|
3
|
+
import { FormFieldLabel } from "./FormFieldLabel.js";
|
|
4
|
+
import { FormField } from "./FormField.js";
|
|
5
|
+
import { TextEditorToolbar } from "./TextEditorToolbar.js";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { clsx } from "clsx";
|
|
8
|
+
import { useEffect, useRef, useState } from "react";
|
|
9
|
+
import { useFocusVisible, useFocusWithin, useHover, useLabel } from "react-aria";
|
|
10
|
+
import { mergeRefs } from "@react-aria/utils";
|
|
11
|
+
import { Controller } from "react-hook-form";
|
|
12
|
+
import { Color } from "@tiptap/extension-color";
|
|
13
|
+
import { Highlight } from "@tiptap/extension-highlight";
|
|
14
|
+
import { Link } from "@tiptap/extension-link";
|
|
15
|
+
import { Placeholder } from "@tiptap/extension-placeholder";
|
|
16
|
+
import { TextAlign } from "@tiptap/extension-text-align";
|
|
17
|
+
import { TextStyle } from "@tiptap/extension-text-style";
|
|
18
|
+
import { Underline } from "@tiptap/extension-underline";
|
|
19
|
+
import { EditorContent, useEditor } from "@tiptap/react";
|
|
20
|
+
import { StarterKit } from "@tiptap/starter-kit";
|
|
21
|
+
var extensions = [
|
|
22
|
+
StarterKit.configure({ heading: { levels: [
|
|
23
|
+
1,
|
|
24
|
+
2,
|
|
25
|
+
3
|
|
26
|
+
] } }),
|
|
27
|
+
TextAlign.configure({ types: ["heading", "paragraph"] }),
|
|
28
|
+
Underline,
|
|
29
|
+
TextStyle,
|
|
30
|
+
Color,
|
|
31
|
+
Highlight.configure({ multicolor: true }),
|
|
32
|
+
Link.configure({
|
|
33
|
+
openOnClick: false,
|
|
34
|
+
defaultProtocol: "https"
|
|
35
|
+
})
|
|
36
|
+
];
|
|
37
|
+
var TextEditorBase = ({ ref, as = "default", placeholder, label, hideLabel, tooltipText, helperText, isRequired, rightContent, isDisabled, headerClassName, errorClassName, isHeaderHidden, error, value, className, editorClassName, onChange, onBlur }) => {
|
|
38
|
+
const contentRef = useRef(null);
|
|
39
|
+
const { hoverProps, isHovered } = useHover({ isDisabled });
|
|
40
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
41
|
+
const { focusWithinProps } = useFocusWithin({ onFocusWithinChange: setIsFocused });
|
|
42
|
+
const { isFocusVisible } = useFocusVisible();
|
|
43
|
+
const formFieldProps = {
|
|
44
|
+
error,
|
|
45
|
+
label,
|
|
46
|
+
tooltipText,
|
|
47
|
+
helperText,
|
|
48
|
+
isRequired,
|
|
49
|
+
rightContent,
|
|
50
|
+
isHeaderHidden: isHeaderHidden || as === "filter" || as === "floating",
|
|
51
|
+
hideLabel,
|
|
52
|
+
isDisabled,
|
|
53
|
+
headerClassName,
|
|
54
|
+
errorClassName
|
|
55
|
+
};
|
|
56
|
+
const { labelProps, fieldProps } = useLabel({ label });
|
|
57
|
+
const editor = useEditor({
|
|
58
|
+
extensions: [...extensions, Placeholder.configure({ placeholder: as === "floating" ? "" : placeholder })],
|
|
59
|
+
editorProps: { attributes: { class: clsx("min-h-40 rounded-b-sm p-2 outline-none", editorClassName) } },
|
|
60
|
+
onUpdate: (event) => {
|
|
61
|
+
onChange?.({
|
|
62
|
+
json: event.editor.getJSON(),
|
|
63
|
+
html: event.editor.getHTML()
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
immediatelyRender: false,
|
|
67
|
+
editable: !isDisabled,
|
|
68
|
+
onBlur
|
|
69
|
+
}, [isDisabled, editorClassName]);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
const content = value?.json ?? null;
|
|
72
|
+
if (editor) {
|
|
73
|
+
if (!isEqual(content, editor.getJSON())) editor.commands.setContent(content);
|
|
74
|
+
} else if (!isEqual(content, contentRef.current)) contentRef.current = content ?? null;
|
|
75
|
+
}, [value]);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (editor && contentRef.current) {
|
|
78
|
+
editor.commands.setContent(contentRef.current);
|
|
79
|
+
contentRef.current = null;
|
|
80
|
+
}
|
|
81
|
+
}, [editor]);
|
|
82
|
+
const headerProps = {
|
|
83
|
+
label,
|
|
84
|
+
tooltipText,
|
|
85
|
+
helperText,
|
|
86
|
+
isRequired,
|
|
87
|
+
rightContent,
|
|
88
|
+
isHeaderHidden: hideLabel || isHeaderHidden,
|
|
89
|
+
isDisabled,
|
|
90
|
+
className: headerClassName,
|
|
91
|
+
labelProps
|
|
92
|
+
};
|
|
93
|
+
return /* @__PURE__ */ jsx(FormField, {
|
|
94
|
+
...formFieldProps,
|
|
95
|
+
ref,
|
|
96
|
+
as,
|
|
97
|
+
labelProps,
|
|
98
|
+
className: clsx("w-full", className),
|
|
99
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
100
|
+
className: clsx("group/text-editor relative", "h-full w-full rounded-sm border border-elevation-outline-default-2 border-solid bg-elevation-fill-default-1", uiOutlineClass, "focus-within:border focus-within:border-input-outlined-outline-active", "focus-visible:outline-interactive-contained-primary-focus", "hover:border hover:border-input-outlined-outline-hover"),
|
|
101
|
+
"data-text-editor": true,
|
|
102
|
+
"data-rac": "",
|
|
103
|
+
"data-hovered": isHovered || void 0,
|
|
104
|
+
"data-disabled": isDisabled || void 0,
|
|
105
|
+
"data-focus-within": isFocused || void 0,
|
|
106
|
+
"data-focus-visible": isFocused && isFocusVisible || void 0,
|
|
107
|
+
"data-is-filled": !editor?.isEmpty,
|
|
108
|
+
...hoverProps,
|
|
109
|
+
...focusWithinProps,
|
|
110
|
+
...fieldProps,
|
|
111
|
+
children: [/* @__PURE__ */ jsx(TextEditorToolbar, { editor }), /* @__PURE__ */ jsxs("div", {
|
|
112
|
+
className: clsx("relative overflow-auto", as === "floating" && "pt-3"),
|
|
113
|
+
children: [as === "floating" && headerProps && /* @__PURE__ */ jsx(FormFieldLabel, {
|
|
114
|
+
as,
|
|
115
|
+
...headerProps
|
|
116
|
+
}), /* @__PURE__ */ jsx(EditorContent, {
|
|
117
|
+
editor,
|
|
118
|
+
placeholder: as === "floating" ? "" : placeholder,
|
|
119
|
+
className: clsx(as === "floating" && editor?.isEmpty && "[&_p:before]:opacity-0")
|
|
120
|
+
})]
|
|
121
|
+
})]
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
const TextEditor = (props) => {
|
|
126
|
+
if ("formControl" in props && props.formControl) {
|
|
127
|
+
const { formControl, ref,...innerProps } = props;
|
|
128
|
+
return /* @__PURE__ */ jsx(Controller, {
|
|
129
|
+
control: formControl.control,
|
|
130
|
+
name: formControl.name,
|
|
131
|
+
render: ({ field }) => /* @__PURE__ */ jsx(TextEditorBase, {
|
|
132
|
+
...innerProps,
|
|
133
|
+
ref: mergeRefs(ref, field.ref),
|
|
134
|
+
value: field.value,
|
|
135
|
+
onChange: field.onChange,
|
|
136
|
+
onBlur: field.onBlur,
|
|
137
|
+
isDisabled: field.disabled || props.isDisabled
|
|
138
|
+
})
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return /* @__PURE__ */ jsx(TextEditorBase, { ...props });
|
|
142
|
+
};
|
|
143
|
+
export { TextEditor };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { HyperlinkAction } from "./HyperlinkAction.js";
|
|
2
|
+
import { TextAlignSelect } from "./TextAlignSelect.js";
|
|
3
|
+
import { TextColorSelect } from "./TextColorSelect.js";
|
|
4
|
+
import { TextHighlightSelect } from "./TextHighlightSelect.js";
|
|
5
|
+
import { TextListActions } from "./TextListActions.js";
|
|
6
|
+
import { TextMarksActions } from "./TextMarksActions.js";
|
|
7
|
+
import { TextStyleSelect } from "./TextStyleSelect.js";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
const TextEditorToolbar = ({ editor }) => {
|
|
10
|
+
if (!editor) return null;
|
|
11
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
12
|
+
className: "flex w-full flex-wrap items-center gap-x-7 gap-y-1 border-elevation-outline-default-2 border-b border-solid p-2",
|
|
13
|
+
children: [
|
|
14
|
+
/* @__PURE__ */ jsxs("div", {
|
|
15
|
+
className: "flex flex-wrap gap-1",
|
|
16
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
17
|
+
className: "flex items-center gap-1",
|
|
18
|
+
children: [/* @__PURE__ */ jsx(TextStyleSelect, { editor }), /* @__PURE__ */ jsx(TextAlignSelect, { editor })]
|
|
19
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
20
|
+
className: "flex items-center gap-1",
|
|
21
|
+
children: [/* @__PURE__ */ jsx(TextColorSelect, { editor }), /* @__PURE__ */ jsx(TextHighlightSelect, { editor })]
|
|
22
|
+
})]
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ jsx(TextMarksActions, { editor }),
|
|
25
|
+
/* @__PURE__ */ jsx(TextListActions, { editor }),
|
|
26
|
+
/* @__PURE__ */ jsx(HyperlinkAction, { editor })
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
export { TextEditorToolbar };
|