@mezzanine-ui/react 0.16.0 → 1.0.0-beta.0
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/Accordion/AccordionControlContext.js +1 -0
- package/Accordion/AccordionDetails.js +1 -0
- package/Accordion/AccordionSummary.js +10 -10
- package/Accordion/index.d.ts +6 -3
- package/Alert/index.d.ts +3 -2
- package/AlertBanner/AlertBanner.d.ts +93 -0
- package/AlertBanner/AlertBanner.js +154 -0
- package/AlertBanner/index.d.ts +2 -0
- package/AlertBanner/index.js +1 -0
- package/Anchor/Anchor.js +1 -1
- package/Anchor/index.d.ts +2 -1
- package/AppBar/index.d.ts +8 -4
- package/{Overlay/Overlay.d.ts → Backdrop/Backdrop.d.ts} +12 -16
- package/Backdrop/Backdrop.js +40 -0
- package/Backdrop/index.d.ts +2 -0
- package/Backdrop/index.js +1 -0
- package/Badge/Badge.d.ts +20 -14
- package/Badge/Badge.js +14 -16
- package/Badge/BadgeContainer.d.ts +1 -1
- package/Badge/BadgeContainer.js +1 -1
- package/Badge/index.d.ts +3 -2
- package/Badge/typings.d.ts +48 -0
- package/Breadcrumb/Breadcrumb.d.ts +6 -0
- package/Breadcrumb/Breadcrumb.js +53 -0
- package/Breadcrumb/BreadcrumbItem.d.ts +4 -0
- package/Breadcrumb/BreadcrumbItem.js +45 -0
- package/Breadcrumb/index.d.ts +2 -0
- package/Breadcrumb/index.js +1 -0
- package/Breadcrumb/typings.d.ts +75 -0
- package/Button/Button.js +24 -19
- package/Button/ButtonGroup.d.ts +6 -28
- package/Button/ButtonGroup.js +7 -16
- package/Button/index.d.ts +4 -10
- package/Button/index.js +2 -3
- package/Button/typings.d.ts +11 -26
- package/Calendar/Calendar.d.ts +31 -2
- package/Calendar/Calendar.js +74 -19
- package/Calendar/CalendarCell.d.ts +4 -0
- package/Calendar/CalendarCell.js +3 -3
- package/Calendar/CalendarConfigProviderDayjs.d.ts +21 -0
- package/Calendar/CalendarConfigProviderDayjs.js +15 -0
- package/Calendar/CalendarConfigProviderLuxon.d.ts +21 -0
- package/Calendar/CalendarConfigProviderLuxon.js +15 -0
- package/Calendar/CalendarConfigProviderMoment.d.ts +21 -0
- package/Calendar/CalendarConfigProviderMoment.js +15 -0
- package/Calendar/CalendarContext.d.ts +14 -7
- package/Calendar/CalendarContext.js +8 -13
- package/Calendar/CalendarControls.d.ts +16 -0
- package/Calendar/CalendarControls.js +3 -7
- package/Calendar/CalendarDayOfWeek.js +4 -3
- package/Calendar/CalendarDays.d.ts +9 -1
- package/Calendar/CalendarDays.js +63 -38
- package/Calendar/CalendarFooterActions.d.ts +13 -0
- package/Calendar/CalendarFooterActions.js +14 -0
- package/Calendar/CalendarFooterControl.d.ts +16 -0
- package/Calendar/CalendarFooterControl.js +14 -0
- package/Calendar/CalendarHalfYears.d.ts +39 -0
- package/Calendar/CalendarHalfYears.js +62 -0
- package/Calendar/CalendarMonths.js +16 -4
- package/Calendar/CalendarQuarters.d.ts +37 -0
- package/Calendar/CalendarQuarters.js +64 -0
- package/Calendar/CalendarQuickSelect.d.ts +21 -0
- package/Calendar/CalendarQuickSelect.js +15 -0
- package/Calendar/CalendarWeeks.d.ts +1 -1
- package/Calendar/CalendarWeeks.js +89 -44
- package/Calendar/CalendarYears.js +13 -3
- package/Calendar/RangeCalendar.d.ts +59 -0
- package/Calendar/RangeCalendar.js +232 -0
- package/Calendar/index.d.ts +33 -10
- package/Calendar/index.js +7 -0
- package/Calendar/useCalendarControlModifiers.d.ts +4 -4
- package/Calendar/useCalendarControlModifiers.js +40 -8
- package/Calendar/useCalendarControls.d.ts +2 -0
- package/Calendar/useCalendarControls.js +19 -2
- package/Calendar/useCalendarModeStack.js +1 -0
- package/Calendar/useRangeCalendarControls.d.ts +18 -0
- package/Calendar/useRangeCalendarControls.js +115 -0
- package/Card/CardActions.js +1 -1
- package/Card/index.d.ts +4 -2
- package/Checkbox/CheckAll.d.ts +16 -6
- package/Checkbox/CheckAll.js +40 -26
- package/Checkbox/Checkbox.d.ts +100 -22
- package/Checkbox/Checkbox.js +73 -16
- package/Checkbox/CheckboxGroup.d.ts +100 -18
- package/Checkbox/CheckboxGroup.js +169 -24
- package/Checkbox/CheckboxGroupContext.d.ts +0 -2
- package/Checkbox/CheckboxGroupContext.js +1 -0
- package/Checkbox/index.d.ts +16 -4
- package/Checkbox/index.js +6 -2
- package/Checkbox/typings.d.ts +37 -0
- package/ClearActions/ClearActions.d.ts +41 -0
- package/ClearActions/ClearActions.js +23 -0
- package/ClearActions/index.d.ts +3 -0
- package/ClearActions/index.js +5 -0
- package/ConfirmActions/ConfirmActions.d.ts +2 -1
- package/ConfirmActions/index.d.ts +2 -1
- package/DatePicker/DatePicker.d.ts +12 -1
- package/DatePicker/DatePicker.js +41 -9
- package/DatePicker/DatePickerCalendar.d.ts +2 -5
- package/DatePicker/DatePickerCalendar.js +37 -37
- package/DatePicker/index.d.ts +4 -2
- package/DateRangePicker/DateRangePicker.d.ts +18 -2
- package/DateRangePicker/DateRangePicker.js +143 -100
- package/DateRangePicker/DateRangePickerCalendar.d.ts +13 -9
- package/DateRangePicker/DateRangePickerCalendar.js +7 -94
- package/DateRangePicker/index.d.ts +6 -3
- package/DateRangePicker/useDateRangeCalendarControls.js +11 -6
- package/DateRangePicker/useDateRangePickerValue.d.ts +38 -15
- package/DateRangePicker/useDateRangePickerValue.js +142 -63
- package/DateTimePicker/DateTimePicker.d.ts +31 -10
- package/DateTimePicker/DateTimePicker.js +179 -94
- package/DateTimePicker/index.d.ts +2 -2
- package/DateTimePicker/index.js +0 -1
- package/Drawer/Drawer.d.ts +47 -6
- package/Drawer/Drawer.js +36 -11
- package/Drawer/index.d.ts +2 -1
- package/Dropdown/Dropdown.js +12 -22
- package/Dropdown/index.d.ts +2 -1
- package/Empty/Empty.d.ts +1 -16
- package/Empty/Empty.js +59 -7
- package/Empty/icons/EmptyMainInitialDataIcon.d.ts +4 -0
- package/Empty/icons/EmptyMainInitialDataIcon.js +9 -0
- package/Empty/icons/EmptyMainResultIcon.d.ts +4 -0
- package/Empty/icons/EmptyMainResultIcon.js +9 -0
- package/Empty/icons/EmptyMainSystemIcon.d.ts +4 -0
- package/Empty/icons/EmptyMainSystemIcon.js +9 -0
- package/Empty/index.d.ts +2 -1
- package/Empty/typings.d.ts +61 -0
- package/Form/FormControlContext.js +1 -0
- package/Form/FormHintText.d.ts +18 -0
- package/Form/FormHintText.js +17 -0
- package/Form/FormLabel.js +1 -0
- package/Form/index.d.ts +9 -5
- package/Form/index.js +1 -1
- package/Form/useAutoCompleteValueControl.js +2 -0
- package/Form/useCheckboxControlValue.js +0 -1
- package/Form/useSelectValueControl.js +2 -0
- package/InlineMessage/InlineMessage.d.ts +33 -0
- package/InlineMessage/InlineMessage.js +42 -0
- package/InlineMessage/InlineMessageGroup.d.ts +24 -0
- package/InlineMessage/InlineMessageGroup.js +21 -0
- package/InlineMessage/index.d.ts +4 -0
- package/InlineMessage/index.js +2 -0
- package/Input/ActionButton/ActionButton.d.ts +26 -0
- package/Input/ActionButton/ActionButton.js +14 -0
- package/Input/ActionButton/index.d.ts +2 -0
- package/Input/ActionButton/index.js +1 -0
- package/Input/Input.d.ts +147 -42
- package/Input/Input.js +195 -27
- package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.d.ts +31 -0
- package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.js +18 -0
- package/Input/PasswordStrengthIndicator/index.d.ts +2 -0
- package/Input/PasswordStrengthIndicator/index.js +1 -0
- package/Input/SelectButton/SelectButton.d.ts +20 -0
- package/Input/SelectButton/SelectButton.js +21 -0
- package/Input/SelectButton/index.d.ts +2 -0
- package/Input/SelectButton/index.js +1 -0
- package/Input/SpinnerButton/SpinnerButton.d.ts +19 -0
- package/Input/SpinnerButton/SpinnerButton.js +14 -0
- package/Input/SpinnerButton/index.d.ts +2 -0
- package/Input/SpinnerButton/index.js +1 -0
- package/Input/index.d.ts +3 -2
- package/Menu/Menu.js +1 -0
- package/Menu/index.d.ts +8 -4
- package/Message/Message.d.ts +6 -4
- package/Message/Message.js +86 -9
- package/Message/MessageTimerController.d.ts +14 -0
- package/Message/MessageTimerController.js +27 -0
- package/Message/index.d.ts +3 -2
- package/Modal/Modal.js +2 -2
- package/Modal/ModalActions.js +1 -0
- package/Modal/ModalControl.js +1 -0
- package/Modal/ModalHeader.js +1 -0
- package/Modal/index.d.ts +10 -5
- package/Modal/useModalContainer.d.ts +1 -1
- package/Modal/useModalContainer.js +2 -4
- package/Navigation/Navigation.js +37 -34
- package/Navigation/NavigationContext.js +1 -0
- package/Navigation/NavigationItem.js +1 -0
- package/Navigation/NavigationSubMenu.js +16 -26
- package/Navigation/index.d.ts +8 -4
- package/Notification/Notification.js +0 -1
- package/Notification/index.d.ts +3 -2
- package/Notifier/NotifierManager.d.ts +15 -2
- package/Notifier/NotifierManager.js +60 -18
- package/Notifier/createNotifier.d.ts +9 -0
- package/Notifier/createNotifier.js +3 -2
- package/Notifier/typings.d.ts +3 -1
- package/OverflowTooltip/OverflowCounterTag.d.ts +12 -0
- package/OverflowTooltip/OverflowCounterTag.js +48 -0
- package/OverflowTooltip/OverflowTooltip.d.ts +34 -0
- package/OverflowTooltip/OverflowTooltip.js +53 -0
- package/OverflowTooltip/index.d.ts +2 -0
- package/OverflowTooltip/index.js +2 -0
- package/PageFooter/PageFooter.d.ts +73 -8
- package/PageFooter/PageFooter.js +34 -3
- package/PageFooter/index.d.ts +2 -1
- package/PageHeader/PageHeader.d.ts +40 -0
- package/PageHeader/PageHeader.js +70 -0
- package/PageHeader/index.d.ts +2 -0
- package/PageHeader/index.js +1 -0
- package/PageToolbar/PageToolbar.d.ts +114 -0
- package/PageToolbar/PageToolbar.js +23 -0
- package/PageToolbar/index.d.ts +2 -0
- package/PageToolbar/index.js +1 -0
- package/PageToolbar/utils.d.ts +23 -0
- package/PageToolbar/utils.js +165 -0
- package/Pagination/Pagination.d.ts +23 -29
- package/Pagination/Pagination.js +3 -4
- package/Pagination/PaginationItem.d.ts +1 -1
- package/Pagination/PaginationItem.js +4 -3
- package/Pagination/PaginationJumper.d.ts +7 -9
- package/Pagination/PaginationJumper.js +3 -5
- package/Pagination/PaginationPageSize.d.ts +8 -11
- package/Pagination/PaginationPageSize.js +5 -4
- package/Pagination/index.d.ts +8 -4
- package/Pagination/usePagination.d.ts +3 -1
- package/Pagination/usePagination.js +12 -21
- package/Picker/FormattedInput.d.ts +17 -0
- package/Picker/FormattedInput.js +74 -0
- package/Picker/MaskFormat.d.ts +39 -0
- package/Picker/MaskFormat.js +94 -0
- package/Picker/PickerTrigger.d.ts +13 -3
- package/Picker/PickerTrigger.js +17 -2
- package/Picker/PickerTriggerWithSeparator.d.ts +124 -0
- package/Picker/PickerTriggerWithSeparator.js +80 -0
- package/Picker/RangePickerTrigger.d.ts +55 -4
- package/Picker/RangePickerTrigger.js +65 -7
- package/Picker/formatUtils.d.ts +34 -0
- package/Picker/formatUtils.js +124 -0
- package/Picker/index.d.ts +17 -6
- package/Picker/index.js +4 -1
- package/Picker/useDateInputFormatter.d.ts +52 -0
- package/Picker/useDateInputFormatter.js +382 -0
- package/Picker/usePickerValue.d.ts +1 -2
- package/Picker/usePickerValue.js +8 -13
- package/Popconfirm/Popconfirm.js +1 -1
- package/Popconfirm/index.d.ts +2 -1
- package/Popover/Popover.js +4 -8
- package/Popover/index.d.ts +2 -1
- package/Popper/Popper.d.ts +15 -10
- package/Popper/Popper.js +88 -17
- package/Popper/index.d.ts +2 -1
- package/Portal/Portal.d.ts +13 -5
- package/Portal/Portal.js +25 -10
- package/Portal/index.d.ts +4 -1
- package/Portal/index.js +1 -0
- package/Portal/portalRegistry.d.ts +17 -0
- package/Portal/portalRegistry.js +92 -0
- package/Progress/Progress.d.ts +23 -30
- package/Progress/Progress.js +71 -21
- package/Progress/index.d.ts +3 -2
- package/Provider/ConfigProvider.d.ts +1 -0
- package/Provider/ConfigProvider.js +1 -0
- package/Provider/context.js +1 -0
- package/Radio/Radio.d.ts +37 -4
- package/Radio/Radio.js +23 -12
- package/Radio/RadioGroup.d.ts +37 -8
- package/Radio/RadioGroup.js +6 -5
- package/Radio/RadioGroupContext.d.ts +2 -1
- package/Radio/RadioGroupContext.js +1 -0
- package/Radio/index.d.ts +5 -3
- package/ResultState/ResultState.d.ts +52 -0
- package/ResultState/ResultState.js +24 -0
- package/ResultState/index.d.ts +2 -0
- package/ResultState/index.js +1 -0
- package/Select/AutoComplete.d.ts +1 -1
- package/Select/AutoComplete.js +2 -1
- package/Select/Option.js +1 -0
- package/Select/Select.d.ts +1 -1
- package/Select/Select.js +2 -1
- package/Select/SelectControlContext.js +1 -0
- package/Select/SelectTrigger.d.ts +1 -87
- package/Select/SelectTrigger.js +26 -21
- package/Select/SelectTriggerTags.d.ts +1 -1
- package/Select/SelectTriggerTags.js +47 -18
- package/Select/TreeSelect.d.ts +1 -1
- package/Select/TreeSelect.js +2 -1
- package/Select/index.d.ts +14 -7
- package/Select/typings.d.ts +99 -0
- package/Select/useSelectTriggerTags.d.ts +15 -8
- package/Select/useSelectTriggerTags.js +83 -44
- package/Selection/Selection.d.ts +98 -0
- package/Selection/Selection.js +46 -0
- package/Selection/index.d.ts +12 -0
- package/Selection/index.js +5 -0
- package/Skeleton/Skeleton.d.ts +10 -3
- package/Skeleton/Skeleton.js +12 -4
- package/Skeleton/index.d.ts +2 -1
- package/Slider/Slider.d.ts +44 -7
- package/Slider/Slider.js +17 -13
- package/Slider/index.d.ts +5 -3
- package/Spin/Spin.d.ts +39 -0
- package/{Loading/Loading.js → Spin/Spin.js} +9 -9
- package/Spin/index.d.ts +2 -0
- package/Spin/index.js +1 -0
- package/Stepper/Step.d.ts +1 -35
- package/Stepper/Step.js +43 -8
- package/Stepper/Stepper.d.ts +1 -14
- package/Stepper/Stepper.js +49 -15
- package/Stepper/index.d.ts +5 -2
- package/Stepper/index.js +1 -0
- package/Stepper/typings.d.ts +77 -0
- package/Stepper/useStepDistance.d.ts +10 -0
- package/Stepper/useStepDistance.js +81 -0
- package/Stepper/useStepper.d.ts +21 -0
- package/Stepper/useStepper.js +26 -0
- package/Tab/Tab.d.ts +32 -0
- package/Tab/Tab.js +57 -0
- package/Tab/TabItem.d.ts +27 -0
- package/Tab/TabItem.js +18 -0
- package/Tab/index.d.ts +4 -0
- package/Tab/index.js +2 -0
- package/Table/Table.d.ts +75 -94
- package/Table/Table.js +216 -161
- package/Table/TableContext.d.ts +114 -51
- package/Table/TableContext.js +22 -3
- package/Table/components/TableBody.d.ts +5 -0
- package/Table/components/TableBody.js +102 -0
- package/Table/components/TableCell.d.ts +17 -0
- package/Table/components/TableCell.js +74 -0
- package/Table/components/TableColGroup.d.ts +4 -0
- package/Table/components/TableColGroup.js +206 -0
- package/Table/components/TableDragHandleCell.d.ts +9 -0
- package/Table/components/TableDragHandleCell.js +37 -0
- package/Table/components/TableExpandCell.d.ts +11 -0
- package/Table/components/TableExpandCell.js +44 -0
- package/Table/components/TableExpandedRow.d.ts +9 -0
- package/Table/components/TableExpandedRow.js +46 -0
- package/Table/components/TableHeader.d.ts +4 -0
- package/Table/components/TableHeader.js +125 -0
- package/Table/components/TablePagination.d.ts +3 -0
- package/Table/components/TablePagination.js +11 -0
- package/Table/components/TableResizeHandle.d.ts +13 -0
- package/Table/components/TableResizeHandle.js +115 -0
- package/Table/components/TableRow.d.ts +12 -0
- package/Table/components/TableRow.js +126 -0
- package/Table/components/TableSelectionCell.d.ts +13 -0
- package/Table/components/TableSelectionCell.js +35 -0
- package/Table/components/index.d.ts +10 -0
- package/Table/components/index.js +10 -0
- package/Table/hooks/index.d.ts +9 -0
- package/Table/hooks/index.js +8 -0
- package/Table/hooks/typings.d.ts +14 -0
- package/Table/hooks/useTableColumns.d.ts +8 -0
- package/Table/hooks/useTableColumns.js +91 -0
- package/Table/hooks/useTableDataSource.d.ts +57 -0
- package/Table/hooks/useTableDataSource.js +183 -0
- package/Table/hooks/useTableExpansion.d.ts +7 -0
- package/Table/hooks/useTableExpansion.js +52 -0
- package/Table/hooks/useTableFixedOffsets.d.ts +29 -0
- package/Table/hooks/useTableFixedOffsets.js +241 -0
- package/Table/hooks/useTableScroll.d.ts +12 -0
- package/Table/hooks/useTableScroll.js +58 -0
- package/Table/hooks/useTableSelection.d.ts +7 -0
- package/Table/hooks/useTableSelection.js +94 -0
- package/Table/hooks/useTableSorting.d.ts +6 -0
- package/Table/hooks/useTableSorting.js +32 -0
- package/Table/hooks/useTableVirtualization.d.ts +22 -0
- package/Table/hooks/useTableVirtualization.js +115 -0
- package/Table/index.d.ts +7 -7
- package/Table/index.js +22 -6
- package/Table/utils/index.d.ts +2 -0
- package/Table/utils/index.js +1 -0
- package/Table/utils/useTableRowSelection.d.ts +18 -0
- package/Table/utils/useTableRowSelection.js +63 -0
- package/Tag/Tag.d.ts +2 -25
- package/Tag/Tag.js +23 -13
- package/Tag/TagGroup.d.ts +12 -0
- package/Tag/TagGroup.js +41 -0
- package/Tag/index.d.ts +2 -1
- package/Tag/typings.d.ts +78 -0
- package/TextField/TextField.d.ts +78 -19
- package/TextField/TextField.js +58 -22
- package/TextField/index.d.ts +2 -1
- package/Textarea/Textarea.d.ts +19 -51
- package/Textarea/Textarea.js +13 -19
- package/Textarea/index.d.ts +2 -2
- package/TimePanel/TimePanel.d.ts +1 -22
- package/TimePanel/TimePanel.js +31 -26
- package/TimePanel/TimePanelAction.d.ts +2 -8
- package/TimePanel/TimePanelAction.js +2 -2
- package/TimePanel/TimePanelColumn.d.ts +0 -13
- package/TimePanel/TimePanelColumn.js +9 -11
- package/TimePanel/index.d.ts +6 -3
- package/TimePicker/TimePicker.d.ts +10 -1
- package/TimePicker/TimePicker.js +86 -35
- package/TimePicker/TimePickerPanel.d.ts +1 -2
- package/TimePicker/TimePickerPanel.js +2 -2
- package/TimePicker/index.d.ts +4 -2
- package/Toggle/Toggle.d.ts +46 -0
- package/Toggle/Toggle.js +29 -0
- package/Toggle/index.d.ts +3 -0
- package/Toggle/index.js +1 -0
- package/Tooltip/Tooltip.d.ts +13 -2
- package/Tooltip/Tooltip.js +56 -10
- package/Tooltip/index.d.ts +2 -1
- package/Tooltip/useDelayMouseEnterLeave.d.ts +1 -2
- package/Tooltip/useDelayMouseEnterLeave.js +10 -13
- package/Transition/Collapse.d.ts +2 -0
- package/Transition/Collapse.js +5 -6
- package/Transition/Fade.js +4 -4
- package/Transition/Rotate.d.ts +42 -0
- package/Transition/Rotate.js +30 -0
- package/Transition/Scale.d.ts +13 -0
- package/Transition/{Grow.js → Scale.js} +19 -16
- package/Transition/Slide.d.ts +7 -0
- package/Transition/{Zoom.js → Slide.js} +14 -12
- package/Transition/SlideFade.d.ts +3 -0
- package/Transition/SlideFade.js +5 -4
- package/Transition/Transition.d.ts +2 -2
- package/Transition/Translate.d.ts +14 -0
- package/Transition/Translate.js +94 -0
- package/Transition/index.d.ts +16 -6
- package/Transition/index.js +4 -2
- package/Transition/useAutoTransitionDuration.d.ts +1 -1
- package/Transition/useAutoTransitionDuration.js +3 -3
- package/Transition/useSetNodeTransition.js +0 -2
- package/Tree/TreeNode.js +7 -6
- package/Tree/index.d.ts +10 -5
- package/Typography/Typography.d.ts +6 -9
- package/Typography/Typography.js +7 -9
- package/Typography/index.d.ts +2 -5
- package/Upload/Upload.d.ts +175 -0
- package/Upload/Upload.js +279 -0
- package/Upload/UploadItem.d.ts +82 -0
- package/Upload/UploadItem.js +118 -0
- package/Upload/UploadPictureCard.d.ts +110 -0
- package/Upload/UploadPictureCard.js +101 -0
- package/Upload/Uploader.d.ts +161 -0
- package/Upload/Uploader.js +120 -0
- package/Upload/index.d.ts +8 -6
- package/Upload/index.js +4 -5
- package/Upload/upload-utils.d.ts +41 -0
- package/Upload/upload-utils.js +65 -0
- package/_internal/InputCheck/InputCheck.d.ts +15 -1
- package/_internal/InputCheck/InputCheck.js +6 -2
- package/_internal/InputCheck/InputCheckGroup.d.ts +11 -1
- package/_internal/InputCheck/InputCheckGroup.js +4 -2
- package/_internal/InputCheck/index.d.ts +4 -2
- package/_internal/InputTriggerPopper/InputTriggerPopper.js +15 -25
- package/_internal/InputTriggerPopper/index.d.ts +2 -1
- package/_internal/SlideFadeOverlay/SlideFadeOverlay.d.ts +3 -3
- package/_internal/SlideFadeOverlay/SlideFadeOverlay.js +5 -28
- package/_internal/SlideFadeOverlay/index.d.ts +2 -1
- package/_internal/SlideFadeOverlay/useTopStack.js +1 -0
- package/dayjs.d.ts +21 -0
- package/dayjs.js +2 -0
- package/hooks/useComposeRefs.js +1 -1
- package/hooks/useLastCallback.js +3 -1
- package/hooks/useScrollLock.d.ts +28 -0
- package/hooks/useScrollLock.js +134 -0
- package/index.d.ts +128 -58
- package/index.js +90 -80
- package/luxon.d.ts +21 -0
- package/luxon.js +2 -0
- package/moment.d.ts +21 -0
- package/moment.js +2 -0
- package/package.json +14 -17
- package/utils/composeRefs.js +0 -1
- package/utils/flatten-children.d.ts +12 -0
- package/utils/flatten-children.js +37 -0
- package/utils/get-css-variable-value.d.ts +2 -0
- package/utils/get-css-variable-value.js +12 -0
- package/Button/IconButton.d.ts +0 -21
- package/Button/IconButton.js +0 -13
- package/DateTimePicker/DateTimePickerPanel.d.ts +0 -28
- package/DateTimePicker/DateTimePickerPanel.js +0 -49
- package/Form/FormMessage.d.ts +0 -7
- package/Form/FormMessage.js +0 -18
- package/Form/useInputWithTagsModeValue.js +0 -86
- package/Loading/Loading.d.ts +0 -33
- package/Loading/index.d.ts +0 -1
- package/Loading/index.js +0 -1
- package/Overlay/Overlay.js +0 -31
- package/Overlay/index.d.ts +0 -1
- package/Overlay/index.js +0 -1
- package/Picker/useRangePickerValue.d.ts +0 -23
- package/Picker/useRangePickerValue.js +0 -99
- package/Switch/Switch.d.ts +0 -43
- package/Switch/Switch.js +0 -28
- package/Switch/index.d.ts +0 -2
- package/Switch/index.js +0 -1
- package/Table/TableBody.d.ts +0 -10
- package/Table/TableBody.js +0 -30
- package/Table/TableBodyRow.d.ts +0 -11
- package/Table/TableBodyRow.js +0 -64
- package/Table/TableCell.d.ts +0 -19
- package/Table/TableCell.js +0 -24
- package/Table/TableExpandedTable.d.ts +0 -11
- package/Table/TableExpandedTable.js +0 -28
- package/Table/TableHeader.d.ts +0 -3
- package/Table/TableHeader.js +0 -35
- package/Table/draggable/useTableDraggable.d.ts +0 -14
- package/Table/draggable/useTableDraggable.js +0 -64
- package/Table/editable/TableEditRenderWrapper.d.ts +0 -7
- package/Table/editable/TableEditRenderWrapper.js +0 -15
- package/Table/expandable/TableExpandable.d.ts +0 -27
- package/Table/expandable/TableExpandable.js +0 -24
- package/Table/pagination/TablePagination.d.ts +0 -10
- package/Table/pagination/TablePagination.js +0 -25
- package/Table/pagination/useTablePagination.d.ts +0 -8
- package/Table/pagination/useTablePagination.js +0 -29
- package/Table/refresh/TableRefresh.d.ts +0 -10
- package/Table/refresh/TableRefresh.js +0 -20
- package/Table/rowSelection/TableRowSelection.d.ts +0 -18
- package/Table/rowSelection/TableRowSelection.js +0 -92
- package/Table/rowSelection/useTableRowSelection.d.ts +0 -6
- package/Table/rowSelection/useTableRowSelection.js +0 -53
- package/Table/sorting/TableSortingIcon.d.ts +0 -10
- package/Table/sorting/TableSortingIcon.js +0 -32
- package/Table/sorting/useTableSorting.d.ts +0 -11
- package/Table/sorting/useTableSorting.js +0 -120
- package/Table/useTableFetchMore.d.ts +0 -10
- package/Table/useTableFetchMore.js +0 -50
- package/Table/useTableLoading.d.ts +0 -5
- package/Table/useTableLoading.js +0 -19
- package/Table/useTableScroll.d.ts +0 -596
- package/Table/useTableScroll.js +0 -294
- package/Tabs/Tab.d.ts +0 -18
- package/Tabs/Tab.js +0 -16
- package/Tabs/TabPane.d.ts +0 -14
- package/Tabs/TabPane.js +0 -18
- package/Tabs/Tabs.d.ts +0 -39
- package/Tabs/Tabs.js +0 -47
- package/Tabs/index.d.ts +0 -3
- package/Tabs/index.js +0 -3
- package/Tabs/useTabsOverflow.d.ts +0 -8
- package/Tabs/useTabsOverflow.js +0 -61
- package/Transition/Grow.d.ts +0 -12
- package/Transition/Zoom.d.ts +0 -7
- package/Upload/UploadButton.d.ts +0 -9
- package/Upload/UploadButton.js +0 -23
- package/Upload/UploadInput.d.ts +0 -20
- package/Upload/UploadInput.js +0 -24
- package/Upload/UploadPicture.d.ts +0 -49
- package/Upload/UploadPicture.js +0 -51
- package/Upload/UploadPictureBlock.d.ts +0 -20
- package/Upload/UploadPictureBlock.js +0 -81
- package/Upload/UploadPictureWall.d.ts +0 -81
- package/Upload/UploadPictureWall.js +0 -168
- package/Upload/UploadPictureWallItem.d.ts +0 -15
- package/Upload/UploadPictureWallItem.js +0 -18
- package/Upload/UploadResult.d.ts +0 -35
- package/Upload/UploadResult.js +0 -29
- package/utils/scroll-lock.d.ts +0 -2
- package/utils/scroll-lock.js +0 -24
package/Select/index.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
export * from './typings';
|
|
2
2
|
export { SelectControlContext } from './SelectControlContext';
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
3
|
+
export { default as SelectTrigger } from './SelectTrigger';
|
|
4
|
+
export type { SelectTriggerProps, SelectTriggerInputProps, } from './SelectTrigger';
|
|
5
|
+
export { default as SelectTriggerTags } from './SelectTriggerTags';
|
|
6
|
+
export type { SelectTriggerTagsProps } from './SelectTriggerTags';
|
|
7
|
+
export type { SelectProps } from './Select';
|
|
8
|
+
export { default } from './Select';
|
|
9
|
+
export { default as Option } from './Option';
|
|
10
|
+
export type { OptionProps } from './Option';
|
|
11
|
+
export { default as OptionGroup } from '../Menu/MenuItemGroup';
|
|
12
|
+
export type { MenuItemGroupProps as OptionGroupProps } from '../Menu/MenuItemGroup';
|
|
13
|
+
export type { TreeSelectProps } from './TreeSelect';
|
|
14
|
+
export { default as TreeSelect } from './TreeSelect';
|
|
15
|
+
export type { AutoCompleteProps } from './AutoComplete';
|
|
16
|
+
export { default as AutoComplete } from './AutoComplete';
|
package/Select/typings.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { ReactElement, Ref } from 'react';
|
|
2
|
+
import Icon, { IconProps } from '../Icon';
|
|
3
|
+
import { SelectTriggerType } from '@mezzanine-ui/core/select';
|
|
4
|
+
import { TextFieldProps } from '../TextField';
|
|
5
|
+
import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
|
|
1
6
|
export interface SelectValue<T = string> {
|
|
2
7
|
id: T;
|
|
3
8
|
name: string;
|
|
@@ -10,3 +15,97 @@ export interface SelectControl<T = string> {
|
|
|
10
15
|
value: SelectValue<T>[] | SelectValue<T> | null;
|
|
11
16
|
onChange: (v: SelectValue<T> | null) => SelectValue<T>[] | SelectValue<T> | null;
|
|
12
17
|
}
|
|
18
|
+
export type SelectTriggerInputProps = Omit<NativeElementPropsWithoutKeyAndRef<'input'>, 'autoComplete' | 'children' | 'defaultValue' | 'disabled' | 'required' | 'type' | 'value' | `aria-${'autocomplete' | 'disabled' | 'haspopup' | 'multiline' | 'required'}`>;
|
|
19
|
+
export interface SelectTriggerBaseProps extends Omit<TextFieldProps, 'active' | 'children' | 'defaultChecked' | 'suffix' | 'typing' | 'disabled' | 'readonly'> {
|
|
20
|
+
/**
|
|
21
|
+
* Controls the chevron icon layout.
|
|
22
|
+
*/
|
|
23
|
+
active?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the input is disabled.
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* force hide suffixAction icons
|
|
31
|
+
*/
|
|
32
|
+
forceHideSuffixActionIcon?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The ref for SelectTrigger root.
|
|
35
|
+
*/
|
|
36
|
+
innerRef?: Ref<HTMLDivElement>;
|
|
37
|
+
/**
|
|
38
|
+
* Other props you may provide to input element.
|
|
39
|
+
*/
|
|
40
|
+
inputProps?: SelectTriggerInputProps;
|
|
41
|
+
/**
|
|
42
|
+
* The ref object for input element.
|
|
43
|
+
*/
|
|
44
|
+
inputRef?: Ref<HTMLInputElement>;
|
|
45
|
+
/**
|
|
46
|
+
* The click handler for the cross icon on tags
|
|
47
|
+
*/
|
|
48
|
+
onTagClose?: (target: SelectValue) => void;
|
|
49
|
+
/** Placeholder text when not selected */
|
|
50
|
+
placeholder?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the input is readonly.
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
readOnly?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the input is required.
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
required?: boolean;
|
|
61
|
+
searchText?: string;
|
|
62
|
+
showTextInputAfterTags?: boolean;
|
|
63
|
+
/** Suffix icon click event handler */
|
|
64
|
+
suffixAction?: VoidFunction;
|
|
65
|
+
/** Customize suffix icon */
|
|
66
|
+
suffixActionIcon?: ReactElement<IconProps, typeof Icon>;
|
|
67
|
+
/** Type default/error of the SelectTrigger */
|
|
68
|
+
type?: SelectTriggerType;
|
|
69
|
+
}
|
|
70
|
+
export type SelectTriggerSingleProps = SelectTriggerBaseProps & {
|
|
71
|
+
/**
|
|
72
|
+
* Controls the layout of trigger.
|
|
73
|
+
* @default single
|
|
74
|
+
*/
|
|
75
|
+
mode?: 'single';
|
|
76
|
+
/**
|
|
77
|
+
* Only available on multiple selector
|
|
78
|
+
*/
|
|
79
|
+
overflowStrategy?: never;
|
|
80
|
+
/**
|
|
81
|
+
* The value of selection.
|
|
82
|
+
* @default undefined
|
|
83
|
+
*/
|
|
84
|
+
value?: SelectValue;
|
|
85
|
+
/**
|
|
86
|
+
* Provide if you have a customize value rendering logic.
|
|
87
|
+
* By default will have a comma between values.
|
|
88
|
+
*/
|
|
89
|
+
renderValue?: (value?: SelectValue | null) => string;
|
|
90
|
+
};
|
|
91
|
+
export type SelectTriggerMultipleProps = SelectTriggerBaseProps & {
|
|
92
|
+
/**
|
|
93
|
+
* Controls the layout of trigger.
|
|
94
|
+
* @default single
|
|
95
|
+
*/
|
|
96
|
+
mode: 'multiple';
|
|
97
|
+
/**
|
|
98
|
+
* Tag overflow strategy:
|
|
99
|
+
* - counter: collapse extra tags into a counter tag showing the remaining count.
|
|
100
|
+
* - wrap: wrap to new lines to display all tags.
|
|
101
|
+
* @default counter
|
|
102
|
+
*/
|
|
103
|
+
overflowStrategy?: 'counter' | 'wrap';
|
|
104
|
+
/**
|
|
105
|
+
* The value of selection.
|
|
106
|
+
* @default undefined
|
|
107
|
+
*/
|
|
108
|
+
value?: SelectValue[];
|
|
109
|
+
};
|
|
110
|
+
export type SelectTriggerComponentProps = SelectTriggerSingleProps | SelectTriggerMultipleProps;
|
|
111
|
+
export type SelectTriggerProps = Omit<SelectTriggerComponentProps, 'innerRef'>;
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JSX, RefObject } from 'react';
|
|
2
2
|
import { TagSize } from '@mezzanine-ui/core/tag';
|
|
3
3
|
import { SelectValue } from './typings';
|
|
4
4
|
export interface UseSelectTriggerTagsProps {
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Enable ellipsis calculation.
|
|
7
|
+
*/
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The ref for wrapper that defines available width.
|
|
11
|
+
*/
|
|
12
|
+
containerRef: RefObject<HTMLDivElement | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Container ref of the visible tags list.
|
|
15
|
+
*/
|
|
16
|
+
tagsRef: RefObject<HTMLDivElement | null>;
|
|
6
17
|
size?: TagSize;
|
|
7
18
|
value?: SelectValue[];
|
|
8
19
|
}
|
|
9
20
|
export interface UseSelectTriggerTagsValue {
|
|
21
|
+
overflowSelections: SelectValue[];
|
|
10
22
|
renderFakeTags: () => JSX.Element | null;
|
|
11
23
|
takeCount: number;
|
|
24
|
+
visibleSelections: SelectValue[];
|
|
12
25
|
}
|
|
13
|
-
export declare function calcTakeCount({ tagsWidths, maxWidth, ellipsisTagWidth, setTakeCount, }: {
|
|
14
|
-
tagsWidths: number[];
|
|
15
|
-
maxWidth: number;
|
|
16
|
-
ellipsisTagWidth: number;
|
|
17
|
-
setTakeCount: (count: number) => void;
|
|
18
|
-
}): void;
|
|
19
26
|
export declare function useSelectTriggerTags(props: UseSelectTriggerTagsProps): UseSelectTriggerTagsValue;
|
|
@@ -1,58 +1,97 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useState, useEffect } from 'react';
|
|
3
|
-
import
|
|
2
|
+
import { useState, useRef, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
3
|
+
import { selectClasses } from '@mezzanine-ui/core/select';
|
|
4
4
|
import Tag from '../Tag/Tag.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
targetCount -= 1;
|
|
15
|
-
}
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
setTakeCount(targetCount);
|
|
6
|
+
const fakeTagClassName = 'mzn-select-trigger__fake-tag';
|
|
7
|
+
const fakeEllipsisClassName = 'mzn-select-trigger__fake-ellipsis';
|
|
8
|
+
function getFullWidth(element) {
|
|
9
|
+
const rect = element.getBoundingClientRect();
|
|
10
|
+
const style = window.getComputedStyle(element);
|
|
11
|
+
const marginStart = parseFloat(style.marginInlineStart || style.marginLeft || '0') || 0;
|
|
12
|
+
const marginEnd = parseFloat(style.marginInlineEnd || style.marginRight || '0') || 0;
|
|
13
|
+
return rect.width + marginStart + marginEnd;
|
|
20
14
|
}
|
|
21
15
|
function useSelectTriggerTags(props) {
|
|
22
|
-
const {
|
|
23
|
-
const [
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const ellipsisTagElement = (_b = controlRef.current) === null || _b === void 0 ? void 0 : _b.getElementsByClassName(mznFakeEllipsisTagClassName)[0];
|
|
31
|
-
if ((elements === null || elements === void 0 ? void 0 : elements.length) && ellipsisTagElement) {
|
|
32
|
-
const tagsWidthsArray = Array.from(elements).map((e) => e.clientWidth);
|
|
33
|
-
const parentWidth = ((_c = controlRef.current) === null || _c === void 0 ? void 0 : _c.clientWidth) || 0;
|
|
34
|
-
const maxWidth = parentWidth * 0.7;
|
|
35
|
-
const ellipsisTagWidth = ellipsisTagElement.clientWidth;
|
|
36
|
-
setTagsWidths(tagsWidthsArray);
|
|
37
|
-
calcTakeCount({
|
|
38
|
-
tagsWidths: tagsWidthsArray,
|
|
39
|
-
maxWidth,
|
|
40
|
-
ellipsisTagWidth,
|
|
41
|
-
setTakeCount,
|
|
42
|
-
});
|
|
16
|
+
const { containerRef, tagsRef, value = [], size, enabled = false } = props;
|
|
17
|
+
const [takeCount, setTakeCount] = useState(value.length);
|
|
18
|
+
const fakeContainerRef = useRef(null);
|
|
19
|
+
const measure = useCallback(() => {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
if (!enabled) {
|
|
22
|
+
setTakeCount(value.length);
|
|
23
|
+
return;
|
|
43
24
|
}
|
|
44
|
-
|
|
25
|
+
const container = (_a = containerRef.current) !== null && _a !== void 0 ? _a : tagsRef.current;
|
|
26
|
+
const fakeContainer = fakeContainerRef.current;
|
|
27
|
+
if (!container || !fakeContainer) {
|
|
28
|
+
setTakeCount(value.length);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const fakeTags = Array.from(fakeContainer.getElementsByClassName(fakeTagClassName));
|
|
32
|
+
const fakeEllipsis = fakeContainer.getElementsByClassName(fakeEllipsisClassName)[0];
|
|
33
|
+
if (!fakeTags.length) {
|
|
34
|
+
setTakeCount(0);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const computedStyleTarget = (_b = tagsRef.current) !== null && _b !== void 0 ? _b : container;
|
|
38
|
+
const containerWidth = container.clientWidth;
|
|
39
|
+
const style = computedStyleTarget
|
|
40
|
+
? window.getComputedStyle(computedStyleTarget)
|
|
41
|
+
: null;
|
|
42
|
+
const paddingLeft = style ? parseFloat(style.paddingLeft) || 0 : 0;
|
|
43
|
+
const paddingRight = style ? parseFloat(style.paddingRight) || 0 : 0;
|
|
44
|
+
const maxWidth = containerWidth - paddingLeft - paddingRight;
|
|
45
|
+
const ellipsisWidth = fakeEllipsis ? getFullWidth(fakeEllipsis) : 0;
|
|
46
|
+
let nextCount = fakeTags.length;
|
|
47
|
+
let consumedWidth = 0;
|
|
48
|
+
for (let i = 0; i < fakeTags.length; i += 1) {
|
|
49
|
+
const tagWidth = getFullWidth(fakeTags[i]);
|
|
50
|
+
const hasOverflow = fakeTags.length - (i + 1) > 0;
|
|
51
|
+
const reservedWidth = hasOverflow ? ellipsisWidth : 0;
|
|
52
|
+
if (consumedWidth + tagWidth + reservedWidth > maxWidth) {
|
|
53
|
+
nextCount = i;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
consumedWidth += tagWidth;
|
|
57
|
+
nextCount = i + 1;
|
|
58
|
+
}
|
|
59
|
+
setTakeCount(nextCount);
|
|
60
|
+
}, [containerRef, enabled, tagsRef, value.length]);
|
|
61
|
+
useLayoutEffect(() => {
|
|
62
|
+
measure();
|
|
63
|
+
}, [value, size, enabled, measure]);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (!enabled)
|
|
66
|
+
return;
|
|
67
|
+
const container = tagsRef.current;
|
|
68
|
+
if (!container)
|
|
69
|
+
return;
|
|
70
|
+
const observer = new ResizeObserver(() => {
|
|
71
|
+
measure();
|
|
72
|
+
});
|
|
73
|
+
observer.observe(container);
|
|
74
|
+
return () => observer.disconnect();
|
|
75
|
+
}, [enabled, containerRef, tagsRef, value.length, measure]);
|
|
45
76
|
const renderFakeTags = () => {
|
|
46
|
-
if (
|
|
77
|
+
if (!enabled || !value.length)
|
|
47
78
|
return null;
|
|
48
|
-
return (jsxs("div", { style: {
|
|
79
|
+
return (jsxs("div", { "aria-hidden": true, className: selectClasses.triggerTags, ref: fakeContainerRef, style: {
|
|
49
80
|
position: 'absolute',
|
|
50
|
-
visibility: 'hidden',
|
|
51
81
|
pointerEvents: 'none',
|
|
82
|
+
visibility: 'hidden',
|
|
52
83
|
opacity: 0,
|
|
53
|
-
|
|
84
|
+
inset: 0,
|
|
85
|
+
}, children: [value.map((selection) => (jsx("span", { className: fakeTagClassName, children: jsx(Tag, { disabled: true, label: selection.name, onClose: () => { }, size: size, type: "dismissable" }) }, `fake-${selection.id}`))), jsx("span", { className: fakeEllipsisClassName, children: jsx(Tag, { count: 99, size: size, type: "overflow-counter" }) })] }));
|
|
86
|
+
};
|
|
87
|
+
const visibleSelections = value.slice(0, takeCount);
|
|
88
|
+
const overflowSelections = value.slice(takeCount);
|
|
89
|
+
return {
|
|
90
|
+
overflowSelections,
|
|
91
|
+
renderFakeTags,
|
|
92
|
+
takeCount,
|
|
93
|
+
visibleSelections,
|
|
54
94
|
};
|
|
55
|
-
return { renderFakeTags, takeCount };
|
|
56
95
|
}
|
|
57
96
|
|
|
58
|
-
export {
|
|
97
|
+
export { useSelectTriggerTags };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { ChangeEventHandler, MouseEvent, Ref } from 'react';
|
|
2
|
+
import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
|
|
3
|
+
import { SelectionDirection, SelectionImageObjectFit, SelectionType } from '@mezzanine-ui/core/selection';
|
|
4
|
+
import type { IconDefinition } from '@mezzanine-ui/icons';
|
|
5
|
+
export interface SelectionPropsBase extends Omit<NativeElementPropsWithoutKeyAndRef<'label'>, 'onChange'> {
|
|
6
|
+
/**
|
|
7
|
+
* Whether the selection is checked.
|
|
8
|
+
*/
|
|
9
|
+
checked?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the selection is checked by default.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
defaultChecked?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The type of selection.
|
|
17
|
+
* @default 'radio'
|
|
18
|
+
*/
|
|
19
|
+
selector: SelectionType;
|
|
20
|
+
/**
|
|
21
|
+
* If true, selection will be disabled
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The direction of selection.
|
|
27
|
+
* @default 'horizontal'
|
|
28
|
+
*/
|
|
29
|
+
direction?: SelectionDirection;
|
|
30
|
+
/**
|
|
31
|
+
* The image of selection. Supports image URL.
|
|
32
|
+
*/
|
|
33
|
+
image?: string;
|
|
34
|
+
/**
|
|
35
|
+
* The object fit of selection image.
|
|
36
|
+
* @default 'cover'
|
|
37
|
+
*/
|
|
38
|
+
imageObjectFit?: SelectionImageObjectFit;
|
|
39
|
+
/**
|
|
40
|
+
* The custom icon of selection.
|
|
41
|
+
*/
|
|
42
|
+
customIcon?: IconDefinition;
|
|
43
|
+
/**
|
|
44
|
+
* The name of selection.
|
|
45
|
+
*
|
|
46
|
+
* @important When using with react-hook-form or inside a RadioGroup/CheckboxGroup, this prop is recommended.
|
|
47
|
+
*/
|
|
48
|
+
name?: string;
|
|
49
|
+
/**
|
|
50
|
+
* The id of the input element.
|
|
51
|
+
*/
|
|
52
|
+
id?: string;
|
|
53
|
+
/**
|
|
54
|
+
* The accessible text of selection.
|
|
55
|
+
*/
|
|
56
|
+
text: string;
|
|
57
|
+
/**
|
|
58
|
+
* The accessible description of selection.
|
|
59
|
+
*/
|
|
60
|
+
supportingText?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Whether the selection is readonly.
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
readonly?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* The value of selection.
|
|
68
|
+
*
|
|
69
|
+
* @important This prop is required when selection is inside a RadioGroup/CheckboxGroup.
|
|
70
|
+
* It is also recommended when integrating with react-hook-form.
|
|
71
|
+
*/
|
|
72
|
+
value?: string;
|
|
73
|
+
/**
|
|
74
|
+
* The react ref passed to input element.
|
|
75
|
+
*
|
|
76
|
+
* @important When using with react-hook-form's `register`, pass the ref through this prop:
|
|
77
|
+
* ```tsx
|
|
78
|
+
* const { register } = useForm();
|
|
79
|
+
* <Selection inputRef={register('fieldName').ref} name="fieldName" />
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
inputRef?: Ref<HTMLInputElement>;
|
|
83
|
+
/**
|
|
84
|
+
* Invoked by input change event.
|
|
85
|
+
*/
|
|
86
|
+
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
87
|
+
}
|
|
88
|
+
export interface SelectionProps extends SelectionPropsBase {
|
|
89
|
+
/**
|
|
90
|
+
* Callback when the selection is clicked.
|
|
91
|
+
*/
|
|
92
|
+
onClick?: (event: MouseEvent<HTMLLabelElement>) => void;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The react component for `mezzanine` selection.
|
|
96
|
+
*/
|
|
97
|
+
declare const Selection: import("react").ForwardRefExoticComponent<SelectionProps & import("react").RefAttributes<HTMLLabelElement>>;
|
|
98
|
+
export default Selection;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef, useId, useMemo } from 'react';
|
|
4
|
+
import Typography from '../Typography/Typography.js';
|
|
5
|
+
import { selectionClasses } from '@mezzanine-ui/core/selection';
|
|
6
|
+
import { FileIcon } from '@mezzanine-ui/icons';
|
|
7
|
+
import Icon from '../Icon/Icon.js';
|
|
8
|
+
import cx from 'clsx';
|
|
9
|
+
|
|
10
|
+
// Icon size constant for Selection component
|
|
11
|
+
// Note: This value is component-specific and doesn't have a corresponding design token
|
|
12
|
+
const SELECTION_ICON_SIZE = 26;
|
|
13
|
+
/**
|
|
14
|
+
* The react component for `mezzanine` selection.
|
|
15
|
+
*/
|
|
16
|
+
const Selection = forwardRef(function Selection(props, ref) {
|
|
17
|
+
const { checked: checkedProp, className, defaultChecked = false, disabled = false, direction = 'horizontal', id, image, imageObjectFit = 'cover', inputRef: inputRefProp, name, onChange: onChangeProp, readonly = false, selector = 'radio', supportingText, text, value, customIcon, onClick, ...rest } = props;
|
|
18
|
+
const generatedId = useId();
|
|
19
|
+
const inputId = id !== null && id !== void 0 ? id : generatedId;
|
|
20
|
+
const textId = useMemo(() => `${inputId}-text`, [inputId]);
|
|
21
|
+
const supportingTextId = useMemo(() => `${inputId}-supporting-text`, [inputId]);
|
|
22
|
+
const isRadioOrCheckbox = selector === 'radio' || selector === 'checkbox';
|
|
23
|
+
const onInputChange = (event) => {
|
|
24
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(event);
|
|
25
|
+
};
|
|
26
|
+
const haveImage = useMemo(() => Boolean(image && typeof image === 'string' && image.trim().length > 0), [image]);
|
|
27
|
+
if (!text) {
|
|
28
|
+
console.error('Selection: `text` (title) is required.');
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
if (!supportingText) {
|
|
32
|
+
console.warn('Selection: `supportingText` is optional but strongly recommended for better accessibility.');
|
|
33
|
+
}
|
|
34
|
+
return (jsxs("label", { ...rest, ref: ref, htmlFor: inputId, className: cx(selectionClasses.host, selectionClasses.direction(direction), {
|
|
35
|
+
[selectionClasses.disabled]: disabled,
|
|
36
|
+
[selectionClasses.readonly]: readonly,
|
|
37
|
+
}, className), ...(disabled && { 'aria-disabled': true }), ...(onClick && { onClick }), children: [jsxs("div", { className: selectionClasses.container, children: [haveImage
|
|
38
|
+
? jsx("img", { src: image, alt: text, className: selectionClasses.selectionImage, style: { objectFit: imageObjectFit } })
|
|
39
|
+
: jsx(Icon, { "aria-hidden": "true", className: selectionClasses.icon, color: "neutral-solid", icon: customIcon || FileIcon, size: SELECTION_ICON_SIZE }), jsxs("div", { className: selectionClasses.content, children: [jsx(Typography, { id: textId, color: "text-neutral-solid", variant: "body-highlight", className: selectionClasses.text, children: text }), supportingText && (jsx(Typography, { id: supportingTextId, color: "text-neutral", variant: "caption", className: selectionClasses.supportingText, children: supportingText }))] })] }), !readonly && (jsx("input", { ref: inputRefProp, type: selector, name: name, id: inputId, className: selectionClasses.input, disabled: disabled, ...(checkedProp !== undefined
|
|
40
|
+
? { checked: checkedProp }
|
|
41
|
+
: { defaultChecked }), value: value, onChange: onInputChange, ...(isRadioOrCheckbox && checkedProp !== undefined
|
|
42
|
+
? { 'aria-checked': checkedProp }
|
|
43
|
+
: {}), "aria-labelledby": textId, "aria-describedby": supportingText ? supportingTextId : undefined }))] }));
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export { Selection as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PropsWithoutRef, ReactElement, RefAttributes } from 'react';
|
|
2
|
+
import Selection, { SelectionProps, SelectionPropsBase } from './Selection';
|
|
3
|
+
export type { SelectionDirection, SelectionType, } from '@mezzanine-ui/core/selection';
|
|
4
|
+
export type { SelectionProps, SelectionPropsBase };
|
|
5
|
+
/**
|
|
6
|
+
* @remark
|
|
7
|
+
* Add type alias here for parsable to react docgen typescript.
|
|
8
|
+
*/
|
|
9
|
+
type GenericSelection = (props: PropsWithoutRef<SelectionProps> & RefAttributes<HTMLLabelElement>) => ReactElement<any>;
|
|
10
|
+
export { Selection };
|
|
11
|
+
declare const _default: GenericSelection;
|
|
12
|
+
export default _default;
|
package/Skeleton/Skeleton.d.ts
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
|
|
2
|
+
import { TypographySemanticType } from '../Typography';
|
|
2
3
|
export interface SkeletonProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'children'> {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the skeleton should be circular.
|
|
6
|
+
*/
|
|
7
|
+
circle?: boolean;
|
|
3
8
|
/**
|
|
4
9
|
* Height of the skeleton.
|
|
10
|
+
* @default 100%
|
|
5
11
|
*/
|
|
6
12
|
height?: number | string;
|
|
7
13
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
14
|
+
* Typography variant for strip skeleton height calculation.
|
|
15
|
+
* Only effective when circle and height are not set.
|
|
10
16
|
*/
|
|
11
|
-
|
|
17
|
+
variant?: TypographySemanticType;
|
|
12
18
|
/**
|
|
13
19
|
* Width of the skeleton.
|
|
20
|
+
* @default 100%
|
|
14
21
|
*/
|
|
15
22
|
width?: number | string;
|
|
16
23
|
}
|
package/Skeleton/Skeleton.js
CHANGED
|
@@ -7,12 +7,20 @@ import cx from 'clsx';
|
|
|
7
7
|
* The react component for `mezzanine` Skeleton.
|
|
8
8
|
*/
|
|
9
9
|
const Skeleton = forwardRef(function Skeleton(props, ref) {
|
|
10
|
-
const { className, height: skeletonHeight, style: skeletonStyle,
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const { circle, className, height: skeletonHeight, style: skeletonStyle, variant, width: skeletonWidth, ...rest } = props;
|
|
11
|
+
// strip type
|
|
12
|
+
if (!skeletonHeight && !circle && variant) {
|
|
13
|
+
return (jsx("div", { ...rest, ref: ref, className: cx(skeletonClasses.host, skeletonClasses.type(variant), className), style: {
|
|
14
|
+
width: skeletonWidth,
|
|
15
|
+
...skeletonStyle,
|
|
16
|
+
}, children: jsx("span", { className: skeletonClasses.bg }) }));
|
|
17
|
+
}
|
|
18
|
+
// circle / square type
|
|
19
|
+
return (jsx("div", { ...rest, ref: ref, className: cx(skeletonClasses.host, skeletonClasses.bg, circle && skeletonClasses.circle, className), style: {
|
|
13
20
|
height: skeletonHeight,
|
|
21
|
+
width: skeletonWidth,
|
|
14
22
|
...skeletonStyle,
|
|
15
|
-
}
|
|
23
|
+
} }));
|
|
16
24
|
});
|
|
17
25
|
|
|
18
26
|
export { Skeleton as default };
|
package/Skeleton/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { SkeletonProps
|
|
1
|
+
export type { SkeletonProps } from './Skeleton';
|
|
2
|
+
export { default } from './Skeleton';
|
package/Slider/Slider.d.ts
CHANGED
|
@@ -2,12 +2,17 @@ import { Ref } from 'react';
|
|
|
2
2
|
import { RangeSliderValue, SingleSliderValue } from '@mezzanine-ui/core/slider';
|
|
3
3
|
import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
|
|
4
4
|
import { UseRangeSliderProps, UseSingleSliderProps } from './useSlider';
|
|
5
|
+
import { IconDefinition } from '@mezzanine-ui/icons';
|
|
5
6
|
export interface SliderBaseProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'defaultChecked' | 'defaultValue' | 'onChange'> {
|
|
6
7
|
/**
|
|
7
8
|
* Whether the slider is disabled.
|
|
8
9
|
* @default false
|
|
9
10
|
*/
|
|
10
11
|
disabled?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The ref for Slider root.
|
|
14
|
+
*/
|
|
15
|
+
innerRef?: Ref<HTMLDivElement>;
|
|
11
16
|
/**
|
|
12
17
|
* The maximum permitted value
|
|
13
18
|
* @default 100
|
|
@@ -24,20 +29,52 @@ export interface SliderBaseProps extends Omit<NativeElementPropsWithoutKeyAndRef
|
|
|
24
29
|
*/
|
|
25
30
|
step?: number;
|
|
26
31
|
/**
|
|
27
|
-
*
|
|
32
|
+
* Whether to show tick marks on the slider.
|
|
33
|
+
* If a number is given, it represents the number of equally spaced segments between min and max to display tick marks (excluding min and max).
|
|
34
|
+
* If a number array is given, the values represent the actual slider values at which to show the tick marks (not percentages).
|
|
35
|
+
* @example
|
|
36
|
+
* 3 // means show tick marks at values 25, 50, and 75 (for min=0, max=100)
|
|
37
|
+
* [20, 50, 80] // means show tick marks at values 20, 50, and 80
|
|
28
38
|
*/
|
|
29
|
-
|
|
39
|
+
withTick?: number | number[];
|
|
40
|
+
}
|
|
41
|
+
export type SliderWithInputProps = SliderBaseProps & {
|
|
42
|
+
prefixIcon?: never;
|
|
43
|
+
suffixIcon?: never;
|
|
30
44
|
/**
|
|
31
|
-
*
|
|
45
|
+
* Whether to show input box to allow user to input value.
|
|
32
46
|
*/
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
export type
|
|
47
|
+
withInput: true;
|
|
48
|
+
};
|
|
49
|
+
export type SliderWithIconProps = SliderBaseProps & {
|
|
50
|
+
/**
|
|
51
|
+
* Set prefix icon.
|
|
52
|
+
*/
|
|
53
|
+
prefixIcon: IconDefinition;
|
|
54
|
+
/**
|
|
55
|
+
* Set suffix icon.
|
|
56
|
+
*/
|
|
57
|
+
suffixIcon: IconDefinition;
|
|
58
|
+
withInput?: never;
|
|
59
|
+
};
|
|
60
|
+
export type SliderWithoutAddonsProps = SliderBaseProps & {
|
|
61
|
+
prefixIcon?: never;
|
|
62
|
+
suffixIcon?: never;
|
|
63
|
+
withInput?: never;
|
|
64
|
+
};
|
|
65
|
+
export type SliderAddonProps = SliderWithInputProps | SliderWithIconProps | SliderWithoutAddonsProps;
|
|
66
|
+
export type SingleSliderProps = SliderAddonProps & {
|
|
36
67
|
onChange?: (value: SingleSliderValue) => void;
|
|
68
|
+
/**
|
|
69
|
+
* The value of the slider.
|
|
70
|
+
*/
|
|
37
71
|
value: UseSingleSliderProps['value'];
|
|
38
72
|
};
|
|
39
|
-
export type RangeSliderProps =
|
|
73
|
+
export type RangeSliderProps = SliderAddonProps & {
|
|
40
74
|
onChange?: (value: RangeSliderValue) => void;
|
|
75
|
+
/**
|
|
76
|
+
* The value of the slider.
|
|
77
|
+
*/
|
|
41
78
|
value: UseRangeSliderProps['value'];
|
|
42
79
|
};
|
|
43
80
|
export type SliderComponentProps = SingleSliderProps | RangeSliderProps;
|