@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
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
import { DateType } from '@mezzanine-ui/core/calendar';
|
|
2
2
|
import { PickerTriggerProps } from '../Picker';
|
|
3
3
|
import { TimePickerPanelProps } from './TimePickerPanel';
|
|
4
|
-
export interface TimePickerProps extends Omit<TimePickerPanelProps, '
|
|
4
|
+
export interface TimePickerProps extends Omit<TimePickerPanelProps, 'anchor' | 'onChange' | 'open' | 'value'>, Omit<PickerTriggerProps, 'format' | 'inputRef' | 'onChange' | 'onClear' | 'suffix' | 'value'> {
|
|
5
5
|
/**
|
|
6
6
|
* Default value for time picker.
|
|
7
7
|
*/
|
|
8
8
|
defaultValue?: DateType;
|
|
9
9
|
/**
|
|
10
10
|
* The format for displaying time.
|
|
11
|
+
* @default 'HH:mm:ss' or 'HH:mm' based on hideSecond
|
|
11
12
|
*/
|
|
12
13
|
format?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Change handler. Takes your declared `DateType` as argument.
|
|
16
|
+
*/
|
|
17
|
+
onChange?: (target?: DateType) => void;
|
|
13
18
|
/**
|
|
14
19
|
* A function that fires when panel toggled. Receive open status in boolean format as props.
|
|
15
20
|
*/
|
|
16
21
|
onPanelToggle?: (open: boolean) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Current value of time picker.
|
|
24
|
+
*/
|
|
25
|
+
value?: DateType;
|
|
17
26
|
}
|
|
18
27
|
/**
|
|
19
28
|
* The react component for `mezzanine` time picker.
|
package/TimePicker/TimePicker.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef, useCallback, useState, useMemo, useRef } from 'react';
|
|
2
4
|
import { ClockIcon } from '@mezzanine-ui/icons';
|
|
3
|
-
import { forwardRef, useContext, useMemo, useState, useCallback, useRef } from 'react';
|
|
4
5
|
import { useComposeRefs } from '../hooks/useComposeRefs.js';
|
|
5
6
|
import TimePickerPanel from './TimePickerPanel.js';
|
|
6
7
|
import { useCalendarContext } from '../Calendar/CalendarContext.js';
|
|
@@ -8,18 +9,56 @@ import { usePickerValue } from '../Picker/usePickerValue.js';
|
|
|
8
9
|
import { usePickerDocumentEventClose } from '../Picker/usePickerDocumentEventClose.js';
|
|
9
10
|
import Icon from '../Icon/Icon.js';
|
|
10
11
|
import PickerTrigger from '../Picker/PickerTrigger.js';
|
|
11
|
-
import { FormControlContext } from '../Form/FormControlContext.js';
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Validate if a time value matches the step constraint.
|
|
15
|
+
*/
|
|
16
|
+
function isValidStep(value, step) {
|
|
17
|
+
if (step <= 1)
|
|
18
|
+
return true;
|
|
19
|
+
return value % step === 0;
|
|
20
|
+
}
|
|
13
21
|
/**
|
|
14
22
|
* The react component for `mezzanine` time picker.
|
|
15
23
|
* Notice that any component related to time-picker should be used along with `CalendarContext`.
|
|
16
24
|
*/
|
|
17
25
|
const TimePicker = forwardRef(function TimePicker(props, ref) {
|
|
18
|
-
|
|
26
|
+
var _a;
|
|
19
27
|
const { defaultTimeFormat } = useCalendarContext();
|
|
20
|
-
const { className, clearable = true,
|
|
21
|
-
|
|
22
|
-
const
|
|
28
|
+
const { className, clearable = true, defaultValue, disabled = false, error = false, fadeProps, fullWidth = false, hideHour, hideMinute, hideSecond, hourStep, inputProps, minuteStep, onChange: onChangeProp, onPanelToggle: onPanelToggleProp, placeholder, popperProps, prefix, readOnly, required = false, secondStep, size, value: valueProp, ...restTriggerProps } = props;
|
|
29
|
+
// Determine default format based on hideSecond
|
|
30
|
+
const resolvedFormat = (_a = props.format) !== null && _a !== void 0 ? _a : (hideSecond ? 'HH:mm' : defaultTimeFormat);
|
|
31
|
+
const { getHour, getMinute, getSecond } = useCalendarContext();
|
|
32
|
+
/**
|
|
33
|
+
* Validate time value against step constraints.
|
|
34
|
+
* Returns true if valid, false if the time doesn't match the step.
|
|
35
|
+
*/
|
|
36
|
+
const validateTimeStep = useCallback((isoDate) => {
|
|
37
|
+
const hour = getHour(isoDate);
|
|
38
|
+
const minute = getMinute(isoDate);
|
|
39
|
+
const second = getSecond(isoDate);
|
|
40
|
+
if (!hideHour && hourStep && !isValidStep(hour, hourStep)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (!hideMinute && minuteStep && !isValidStep(minute, minuteStep)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (!hideSecond && secondStep && !isValidStep(second, secondStep)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}, [
|
|
51
|
+
getHour,
|
|
52
|
+
getMinute,
|
|
53
|
+
getSecond,
|
|
54
|
+
hideHour,
|
|
55
|
+
hideMinute,
|
|
56
|
+
hideSecond,
|
|
57
|
+
hourStep,
|
|
58
|
+
minuteStep,
|
|
59
|
+
secondStep,
|
|
60
|
+
]);
|
|
61
|
+
const { onBlur: onBlurProp, onKeyDown: onKeyDownProp, onFocus: onFocusProp, ...restInputProp } = inputProps || {};
|
|
23
62
|
/** Panel open control */
|
|
24
63
|
const [open, setOpen] = useState(false);
|
|
25
64
|
const preventOpen = readOnly;
|
|
@@ -31,38 +70,43 @@ const TimePicker = forwardRef(function TimePicker(props, ref) {
|
|
|
31
70
|
}
|
|
32
71
|
}
|
|
33
72
|
}, [onPanelToggleProp, preventOpen]);
|
|
34
|
-
const onFocus =
|
|
35
|
-
if (
|
|
36
|
-
|
|
73
|
+
const onFocus = useMemo(() => {
|
|
74
|
+
if (readOnly) {
|
|
75
|
+
return undefined;
|
|
37
76
|
}
|
|
38
|
-
|
|
39
|
-
|
|
77
|
+
return (event) => {
|
|
78
|
+
if (onFocusProp) {
|
|
79
|
+
onFocusProp(event);
|
|
80
|
+
}
|
|
81
|
+
onPanelToggle(true);
|
|
82
|
+
};
|
|
83
|
+
}, [onPanelToggle, onFocusProp, readOnly]);
|
|
40
84
|
/** Controlling input value and bind change handler */
|
|
41
85
|
const inputRef = useRef(null);
|
|
42
86
|
const { inputValue, onBlur, onChange, onInputChange, onKeyDown, value: internalValue, } = usePickerValue({
|
|
43
87
|
defaultValue,
|
|
44
|
-
format,
|
|
45
|
-
formats,
|
|
88
|
+
format: resolvedFormat,
|
|
46
89
|
inputRef,
|
|
47
90
|
value: valueProp,
|
|
48
91
|
});
|
|
49
|
-
/**
|
|
50
|
-
const
|
|
51
|
-
if (
|
|
52
|
-
|
|
92
|
+
/** Bind close control to handlers */
|
|
93
|
+
const onPanelChange = (val) => {
|
|
94
|
+
if (val) {
|
|
95
|
+
onChange(val);
|
|
96
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(val);
|
|
53
97
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const onResolvedKeyDown = useCallback((event) => {
|
|
98
|
+
};
|
|
99
|
+
const onKeyDownWithCloseControl = useCallback((event) => {
|
|
100
|
+
onKeyDown(event);
|
|
58
101
|
if (onKeyDownProp) {
|
|
59
102
|
onKeyDownProp(event);
|
|
60
103
|
}
|
|
61
|
-
onKeyDown(event);
|
|
62
104
|
if (event.key === 'Enter') {
|
|
63
|
-
|
|
105
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(internalValue);
|
|
106
|
+
onPanelToggle(false);
|
|
64
107
|
}
|
|
65
|
-
}, [
|
|
108
|
+
}, [internalValue, onPanelToggle, onChangeProp, onKeyDown, onKeyDownProp]);
|
|
109
|
+
/** Resolve input props */
|
|
66
110
|
const onResolvedBlur = useCallback((event) => {
|
|
67
111
|
if (onBlurProp) {
|
|
68
112
|
onBlurProp(event);
|
|
@@ -71,33 +115,36 @@ const TimePicker = forwardRef(function TimePicker(props, ref) {
|
|
|
71
115
|
}, [onBlur, onBlurProp]);
|
|
72
116
|
const resolvedInputProps = {
|
|
73
117
|
...restInputProp,
|
|
74
|
-
size: inputSize,
|
|
75
118
|
onFocus,
|
|
76
|
-
onKeyDown:
|
|
119
|
+
onKeyDown: onKeyDownWithCloseControl,
|
|
77
120
|
onBlur: onResolvedBlur,
|
|
78
121
|
};
|
|
79
122
|
/** Popper positioning */
|
|
80
123
|
const anchorRef = useRef(null);
|
|
124
|
+
const triggerComposedRef = useComposeRefs([ref, anchorRef]);
|
|
81
125
|
const panelRef = useRef(null);
|
|
82
|
-
|
|
126
|
+
/** Clear handler */
|
|
127
|
+
const onClear = useCallback(() => {
|
|
128
|
+
onChange(undefined);
|
|
129
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(undefined);
|
|
130
|
+
}, [onChange, onChangeProp]);
|
|
83
131
|
/** Blur, click away and key down close */
|
|
84
132
|
const onClose = () => {
|
|
85
133
|
onChange(valueProp);
|
|
86
134
|
onPanelToggle(false);
|
|
87
135
|
};
|
|
136
|
+
const onChangeClose = () => {
|
|
137
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(internalValue);
|
|
138
|
+
onPanelToggle(false);
|
|
139
|
+
};
|
|
88
140
|
usePickerDocumentEventClose({
|
|
89
141
|
open,
|
|
90
142
|
anchorRef,
|
|
91
143
|
popperRef: panelRef,
|
|
92
144
|
lastElementRefInFlow: inputRef,
|
|
93
145
|
onClose,
|
|
94
|
-
onChangeClose
|
|
146
|
+
onChangeClose,
|
|
95
147
|
});
|
|
96
|
-
/** Bind on change to on clear */
|
|
97
|
-
const onClear = () => {
|
|
98
|
-
onChange(undefined);
|
|
99
|
-
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(undefined);
|
|
100
|
-
};
|
|
101
148
|
/** Icon */
|
|
102
149
|
const onIconClick = (e) => {
|
|
103
150
|
e.stopPropagation();
|
|
@@ -106,8 +153,12 @@ const TimePicker = forwardRef(function TimePicker(props, ref) {
|
|
|
106
153
|
}
|
|
107
154
|
onPanelToggle(!open);
|
|
108
155
|
};
|
|
109
|
-
const
|
|
110
|
-
return (jsxs(Fragment, { children: [jsx(PickerTrigger, { ref: triggerComposedRef, className: className, clearable: clearable, disabled: disabled, error: error, fullWidth: fullWidth, inputProps: resolvedInputProps, inputRef: inputRef, onChange:
|
|
156
|
+
const suffixIcon = (jsx(Icon, { "aria-label": "Open time picker", icon: ClockIcon, onClick: readOnly ? undefined : onIconClick }));
|
|
157
|
+
return (jsxs(Fragment, { children: [jsx(PickerTrigger, { ...restTriggerProps, ref: triggerComposedRef, className: className, clearable: clearable, disabled: disabled, error: error, format: resolvedFormat, fullWidth: fullWidth, inputProps: resolvedInputProps, inputRef: inputRef, onChange: (e) => {
|
|
158
|
+
onInputChange(e);
|
|
159
|
+
onPanelChange(e.target.value);
|
|
160
|
+
onPanelToggle(true);
|
|
161
|
+
}, onClear: onClear, onFocus: () => onPanelToggle(true), placeholder: placeholder, prefix: prefix, readOnly: readOnly, required: required, size: size, suffix: suffixIcon, validate: validateTimeStep, value: inputValue }), jsx(TimePickerPanel, { ref: panelRef, anchor: anchorRef, fadeProps: fadeProps, hideHour: hideHour, hideMinute: hideMinute, hideSecond: hideSecond, hourStep: hourStep, minuteStep: minuteStep, onChange: onPanelChange, open: open, popperProps: popperProps, secondStep: secondStep, value: internalValue })] }));
|
|
111
162
|
});
|
|
112
163
|
|
|
113
164
|
export { TimePicker as default };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { DateType } from '@mezzanine-ui/core/calendar';
|
|
2
2
|
import { TimePanelProps } from '../TimePanel';
|
|
3
|
-
import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
|
|
4
3
|
import { InputTriggerPopperProps } from '../_internal/InputTriggerPopper';
|
|
5
|
-
export interface TimePickerPanelProps extends
|
|
4
|
+
export interface TimePickerPanelProps extends Pick<TimePanelProps, 'className' | 'hideHour' | 'hideMinute' | 'hideSecond' | 'hourStep' | 'minuteStep' | 'secondStep' | 'style'>, Pick<InputTriggerPopperProps, 'anchor' | 'fadeProps' | 'open'> {
|
|
6
5
|
/**
|
|
7
6
|
* Change Handler. Receive `DateType` as props.
|
|
8
7
|
*/
|
|
@@ -7,8 +7,8 @@ import TimePanel from '../TimePanel/TimePanel.js';
|
|
|
7
7
|
* The react component for `mezzanine` time picker panel.
|
|
8
8
|
*/
|
|
9
9
|
const TimePickerPanel = forwardRef(function TimePickerPanel(props, ref) {
|
|
10
|
-
const { anchor,
|
|
11
|
-
return (jsx(InputTriggerPopper, { ...popperProps, ref: ref, anchor: anchor, open: open, fadeProps: fadeProps, children: jsx(TimePanel, {
|
|
10
|
+
const { anchor, className, fadeProps, hideHour, hideMinute, hideSecond, hourStep, minuteStep, onChange, open, popperProps, secondStep, style, value, } = props;
|
|
11
|
+
return (jsx(InputTriggerPopper, { ...popperProps, ref: ref, anchor: anchor, open: open, fadeProps: fadeProps, children: jsx(TimePanel, { className: className, hideHour: hideHour, hideMinute: hideMinute, hideSecond: hideSecond, hourStep: hourStep, minuteStep: minuteStep, onChange: onChange, secondStep: secondStep, style: style, value: value }) }));
|
|
12
12
|
});
|
|
13
13
|
|
|
14
14
|
export { TimePickerPanel as default };
|
package/TimePicker/index.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { default as TimePickerPanel } from './TimePickerPanel';
|
|
2
|
+
export type { TimePickerPanelProps } from './TimePickerPanel';
|
|
3
|
+
export type { TimePickerProps } from './TimePicker';
|
|
4
|
+
export { default } from './TimePicker';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChangeEventHandler } from 'react';
|
|
2
|
+
import { ToggleSize } from '@mezzanine-ui/core/toggle';
|
|
3
|
+
import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
|
|
4
|
+
export interface ToggleProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'onChange'> {
|
|
5
|
+
/**
|
|
6
|
+
* Whether the toggle is checked.
|
|
7
|
+
*/
|
|
8
|
+
checked?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the toggle is checked by default.
|
|
11
|
+
* Only used for uncontrolled.
|
|
12
|
+
*/
|
|
13
|
+
defaultChecked?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Whether the toggle is disabled.
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Since at Mezzanine we use a host element to wrap our input, most derived props will be passed to the host element.
|
|
21
|
+
* If you need direct control to the input element, use this prop to provide to it.
|
|
22
|
+
*/
|
|
23
|
+
inputProps?: Omit<NativeElementPropsWithoutKeyAndRef<'input'>, 'checked' | 'defaultChecked' | 'disabled' | 'onChange' | 'placeholder' | 'type' | 'value' | `aria-${'disabled' | 'checked'}`>;
|
|
24
|
+
/**
|
|
25
|
+
* The label text displayed beside the toggle.
|
|
26
|
+
*/
|
|
27
|
+
label?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Invoked by input change event.
|
|
30
|
+
*/
|
|
31
|
+
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
32
|
+
/**
|
|
33
|
+
* The size of toggle.
|
|
34
|
+
* @default 'main'
|
|
35
|
+
*/
|
|
36
|
+
size?: ToggleSize;
|
|
37
|
+
/**
|
|
38
|
+
* Supporting text displayed below the label.
|
|
39
|
+
*/
|
|
40
|
+
supportingText?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The react component for `mezzanine` toggle.
|
|
44
|
+
*/
|
|
45
|
+
declare const Toggle: import("react").ForwardRefExoticComponent<ToggleProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
46
|
+
export default Toggle;
|
package/Toggle/Toggle.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef, useContext } from 'react';
|
|
4
|
+
import { toggleClasses } from '@mezzanine-ui/core/toggle';
|
|
5
|
+
import { useSwitchControlValue } from '../Form/useSwitchControlValue.js';
|
|
6
|
+
import Typography from '../Typography/Typography.js';
|
|
7
|
+
import { FormControlContext } from '../Form/FormControlContext.js';
|
|
8
|
+
import cx from 'clsx';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The react component for `mezzanine` toggle.
|
|
12
|
+
*/
|
|
13
|
+
const Toggle = forwardRef(function Toggle(props, ref) {
|
|
14
|
+
const { disabled: disabledFromFormControl } = useContext(FormControlContext) || {};
|
|
15
|
+
const { checked: checkedProp, className, defaultChecked, disabled = disabledFromFormControl, inputProps, label, onChange: onChangeProp, size = 'main', supportingText, ...rest } = props;
|
|
16
|
+
const [checked, onChange] = useSwitchControlValue({
|
|
17
|
+
checked: checkedProp,
|
|
18
|
+
defaultChecked,
|
|
19
|
+
onChange: onChangeProp,
|
|
20
|
+
});
|
|
21
|
+
return (jsxs("div", { ref: ref, ...rest, className: cx(toggleClasses.host, {
|
|
22
|
+
[toggleClasses.checked]: checked,
|
|
23
|
+
[toggleClasses.disabled]: disabled,
|
|
24
|
+
[toggleClasses.main]: size === 'main',
|
|
25
|
+
[toggleClasses.sub]: size === 'sub',
|
|
26
|
+
}, className), children: [jsxs("div", { className: toggleClasses.inputContainer, children: [jsx("span", { className: toggleClasses.knob }), jsx("input", { ...inputProps, "aria-checked": checked, "aria-disabled": disabled, checked: checked, className: toggleClasses.input, disabled: disabled, onChange: onChange, type: "checkbox" })] }), label && (jsxs("div", { className: toggleClasses.textContainer, children: [jsx(Typography, { color: "text-neutral-solid", variant: "label-primary", children: label }), supportingText && (jsx(Typography, { color: "text-neutral", variant: "caption", children: supportingText }))] }))] }));
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export { Toggle as default };
|
package/Toggle/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Toggle.js';
|
package/Tooltip/Tooltip.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import { ReactElement, MouseEventHandler, ReactNode } from 'react';
|
|
2
2
|
import { PopperProps } from '../Popper';
|
|
3
|
-
export interface TooltipProps extends Omit<PopperProps, 'children' | 'title'> {
|
|
3
|
+
export interface TooltipProps extends Omit<PopperProps, 'arrow' | 'children' | 'disablePortal' | 'title'> {
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* show arrow or not
|
|
6
|
+
* @default true
|
|
7
|
+
*/
|
|
8
|
+
arrow?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* child function that can receive events and ref
|
|
6
11
|
*/
|
|
7
12
|
children(opt: {
|
|
8
13
|
onMouseEnter: MouseEventHandler;
|
|
9
14
|
onMouseLeave: MouseEventHandler;
|
|
15
|
+
ref: React.RefCallback<HTMLElement>;
|
|
10
16
|
}): ReactElement<any>;
|
|
17
|
+
/**
|
|
18
|
+
* Whether to disable portal. If true, it will be a normal component.
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
disablePortal?: boolean;
|
|
11
22
|
/**
|
|
12
23
|
* delay time to hide when mouse leave. unit: s.
|
|
13
24
|
* @default 0.1
|
package/Tooltip/Tooltip.js
CHANGED
|
@@ -1,28 +1,74 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { forwardRef, useRef } from 'react';
|
|
2
|
+
import { forwardRef, useRef, useState, useCallback } from 'react';
|
|
3
3
|
import { tooltipClasses } from '@mezzanine-ui/core/tooltip';
|
|
4
|
+
import { offset, flip, shift } from '@floating-ui/react-dom';
|
|
5
|
+
import { spacingPrefix } from '@mezzanine-ui/system/spacing';
|
|
4
6
|
import { useComposeRefs } from '../hooks/useComposeRefs.js';
|
|
5
7
|
import { useDelayMouseEnterLeave } from './useDelayMouseEnterLeave.js';
|
|
8
|
+
import { getCSSVariableValue } from '../utils/get-css-variable-value.js';
|
|
9
|
+
import { MOTION_EASING, MOTION_DURATION } from '@mezzanine-ui/system/motion';
|
|
10
|
+
import Fade from '../Transition/Fade.js';
|
|
6
11
|
import Popper from '../Popper/Popper.js';
|
|
7
12
|
import cx from 'clsx';
|
|
8
13
|
|
|
9
|
-
const offsetModifier = {
|
|
10
|
-
name: 'offset',
|
|
11
|
-
options: { offset: [0, 8] },
|
|
12
|
-
};
|
|
13
14
|
/**
|
|
14
15
|
* The react component for `mezzanine` tooltip.
|
|
15
16
|
*/
|
|
16
17
|
const Tooltip = forwardRef(function Tooltip(props, ref) {
|
|
17
|
-
const { anchor: anchorProp, children, className, mouseLeaveDelay = 0.1, open = false, options = {}, title, ...rest } = props;
|
|
18
|
-
const {
|
|
18
|
+
const { anchor: anchorProp, arrow: showArrow = true, children, className, disablePortal = true, mouseLeaveDelay = 0.1, open = false, options = {}, title, ...rest } = props;
|
|
19
|
+
const { middleware: middlewareProp = [] } = options;
|
|
19
20
|
const tooltipRef = useRef(null);
|
|
21
|
+
const [targetRef, _setTargetRef] = useState({
|
|
22
|
+
current: null,
|
|
23
|
+
});
|
|
20
24
|
const composedRef = useComposeRefs([ref, tooltipRef]);
|
|
21
|
-
const {
|
|
25
|
+
const { onLeave, onPopperEnter, onTargetEnter, visible } = useDelayMouseEnterLeave({ mouseLeaveDelay });
|
|
22
26
|
/** tooltip shown only when title existed && visible is true */
|
|
23
27
|
const isTooltipVisible = open || (visible && Boolean(title));
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
const offsetValue = Number(getCSSVariableValue(`--${spacingPrefix}-gap-base`).replace('rem', '')) * 16;
|
|
29
|
+
const placement = options.placement || 'top';
|
|
30
|
+
const isPlacementAtEdge = placement.endsWith('-start') || placement.endsWith('-end');
|
|
31
|
+
// 設置 target element,並重新渲染
|
|
32
|
+
const setTargetRef = useCallback((element) => {
|
|
33
|
+
_setTargetRef({ current: element });
|
|
34
|
+
}, []);
|
|
35
|
+
// middleware (shift, flip 會衝突,所以依照官方推薦設定 https://floating-ui.com/docs/flip#combining-with-shift)
|
|
36
|
+
const middleware = [offset({ mainAxis: offsetValue })];
|
|
37
|
+
const flipMiddleware = flip({
|
|
38
|
+
crossAxis: 'alignment',
|
|
39
|
+
fallbackAxisSideDirection: 'end',
|
|
40
|
+
});
|
|
41
|
+
const shiftMiddleware = shift();
|
|
42
|
+
if (placement.includes('-')) {
|
|
43
|
+
middleware.push(flipMiddleware, shiftMiddleware);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
middleware.push(shiftMiddleware, flipMiddleware);
|
|
47
|
+
}
|
|
48
|
+
return (jsxs(Fragment, { children: [jsx(Fade, { in: isTooltipVisible, duration: {
|
|
49
|
+
enter: MOTION_DURATION.fast,
|
|
50
|
+
exit: MOTION_DURATION.fast,
|
|
51
|
+
}, easing: {
|
|
52
|
+
enter: MOTION_EASING.standard,
|
|
53
|
+
exit: MOTION_EASING.standard,
|
|
54
|
+
}, children: jsx(Popper, { ...rest, ref: composedRef, anchor: anchorProp || targetRef.current, arrow: showArrow
|
|
55
|
+
? {
|
|
56
|
+
className: tooltipClasses.arrow,
|
|
57
|
+
enabled: true,
|
|
58
|
+
padding: isPlacementAtEdge
|
|
59
|
+
? Number(getCSSVariableValue(`--${spacingPrefix}-padding-horizontal-comfort`).replace('rem', '')) * 16
|
|
60
|
+
: 0,
|
|
61
|
+
}
|
|
62
|
+
: undefined, className: cx(tooltipClasses.host, className), disablePortal: disablePortal, onMouseEnter: onPopperEnter, onMouseLeave: onLeave, open: isTooltipVisible, options: {
|
|
63
|
+
...options,
|
|
64
|
+
placement,
|
|
65
|
+
middleware: [...middleware, ...middlewareProp],
|
|
66
|
+
}, children: title }) }), typeof children === 'function' &&
|
|
67
|
+
children({
|
|
68
|
+
onMouseEnter: onTargetEnter,
|
|
69
|
+
onMouseLeave: onLeave,
|
|
70
|
+
ref: setTargetRef,
|
|
71
|
+
})] }));
|
|
26
72
|
});
|
|
27
73
|
|
|
28
74
|
export { Tooltip as default };
|
package/Tooltip/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export type { TooltipProps } from './Tooltip';
|
|
2
|
+
export { default } from './Tooltip';
|
|
@@ -2,10 +2,9 @@ export interface UseDelayMouseEnterLeave {
|
|
|
2
2
|
mouseLeaveDelay?: number;
|
|
3
3
|
}
|
|
4
4
|
export interface DelayMouseEnterLeave {
|
|
5
|
-
anchor: HTMLButtonElement | null;
|
|
6
5
|
onLeave(v: any): void;
|
|
7
6
|
onPopperEnter(v: any): void;
|
|
8
|
-
onTargetEnter(v: React.MouseEvent<
|
|
7
|
+
onTargetEnter(v: React.MouseEvent<HTMLElement, MouseEvent>): void;
|
|
9
8
|
visible: boolean;
|
|
10
9
|
}
|
|
11
10
|
export declare function useDelayMouseEnterLeave(opt: UseDelayMouseEnterLeave): DelayMouseEnterLeave;
|
|
@@ -1,36 +1,33 @@
|
|
|
1
|
-
import { useState, useCallback } from 'react';
|
|
1
|
+
import { useState, useRef, useCallback } from 'react';
|
|
2
2
|
|
|
3
3
|
function useDelayMouseEnterLeave(opt) {
|
|
4
4
|
const { mouseLeaveDelay = 0.1 } = opt || {};
|
|
5
5
|
/** state that control tooltip visible/invisible */
|
|
6
6
|
const [visible, setVisible] = useState(false);
|
|
7
|
-
/**
|
|
8
|
-
const
|
|
9
|
-
/** timer for mouse leaving delay */
|
|
10
|
-
let timer;
|
|
7
|
+
/** timer for mouse leaving delay - use ref to persist across renders */
|
|
8
|
+
const timerRef = useRef(null);
|
|
11
9
|
const clearVisibilityDelayTimeout = useCallback(() => {
|
|
12
|
-
if (
|
|
13
|
-
clearTimeout(
|
|
10
|
+
if (timerRef.current) {
|
|
11
|
+
clearTimeout(timerRef.current);
|
|
12
|
+
timerRef.current = null;
|
|
14
13
|
}
|
|
15
14
|
}, []);
|
|
16
15
|
const onLeave = useCallback(() => {
|
|
17
|
-
|
|
16
|
+
timerRef.current = setTimeout(() => {
|
|
18
17
|
setVisible(false);
|
|
19
18
|
clearVisibilityDelayTimeout();
|
|
20
19
|
}, mouseLeaveDelay * 1000);
|
|
21
|
-
}, [mouseLeaveDelay]);
|
|
20
|
+
}, [mouseLeaveDelay, clearVisibilityDelayTimeout]);
|
|
22
21
|
const onPopperEnter = useCallback(() => {
|
|
23
22
|
clearVisibilityDelayTimeout();
|
|
24
23
|
setVisible(true);
|
|
25
|
-
}, []);
|
|
24
|
+
}, [clearVisibilityDelayTimeout]);
|
|
26
25
|
const onTargetEnter = useCallback((event) => {
|
|
27
26
|
event.stopPropagation();
|
|
28
|
-
setAnchor(event.currentTarget);
|
|
29
27
|
clearVisibilityDelayTimeout();
|
|
30
28
|
setVisible(true);
|
|
31
|
-
}, []);
|
|
29
|
+
}, [clearVisibilityDelayTimeout]);
|
|
32
30
|
return {
|
|
33
|
-
anchor,
|
|
34
31
|
onLeave,
|
|
35
32
|
onPopperEnter,
|
|
36
33
|
onTargetEnter,
|
package/Transition/Collapse.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
|
|
2
2
|
import { TransitionImplementationProps } from './Transition';
|
|
3
|
+
/** @deprecated 設計師未定義,暫時標記為 deprecated */
|
|
3
4
|
export interface CollapseProps extends TransitionImplementationProps, Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'children'> {
|
|
4
5
|
/**
|
|
5
6
|
* The height of the container while collapsed.
|
|
@@ -9,6 +10,7 @@ export interface CollapseProps extends TransitionImplementationProps, Omit<Nativ
|
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* The react component for `mezzanine` transition collapse.
|
|
13
|
+
* @deprecated 設計師未定義,暫時標記為 deprecated
|
|
12
14
|
*/
|
|
13
15
|
declare const Collapse: import("react").ForwardRefExoticComponent<CollapseProps & import("react").RefAttributes<HTMLElement>>;
|
|
14
16
|
export default Collapse;
|
package/Transition/Collapse.js
CHANGED
|
@@ -22,15 +22,16 @@ function getStyle(state, inProp, collapsedHeight) {
|
|
|
22
22
|
return style;
|
|
23
23
|
}
|
|
24
24
|
const defaultEasing = {
|
|
25
|
-
enter: MOTION_EASING.
|
|
26
|
-
exit: MOTION_EASING.
|
|
25
|
+
enter: MOTION_EASING.entrance,
|
|
26
|
+
exit: MOTION_EASING.exit,
|
|
27
27
|
};
|
|
28
28
|
/**
|
|
29
29
|
* The react component for `mezzanine` transition collapse.
|
|
30
|
+
* @deprecated 設計師未定義,暫時標記為 deprecated
|
|
30
31
|
*/
|
|
31
32
|
const Collapse = forwardRef(function Collapse(props, ref) {
|
|
32
33
|
const { appear, children, collapsedHeight: collapsedHeightProp = 0, delay = 0, duration = 'auto', easing = defaultEasing, in: inProp = false, lazyMount, keepMount, onEnter, onEntered, onEntering, onExit, onExiting, onExited, style, ...rest } = props;
|
|
33
|
-
const {
|
|
34
|
+
const { autoTransitionDurationRef, addEndListener } = useAutoTransitionDuration(duration);
|
|
34
35
|
const nodeRef = useRef(null);
|
|
35
36
|
const wrapperRef = useRef(null);
|
|
36
37
|
const collapsedHeight = typeof collapsedHeightProp === 'number'
|
|
@@ -44,7 +45,7 @@ const Collapse = forwardRef(function Collapse(props, ref) {
|
|
|
44
45
|
properties: ['height'],
|
|
45
46
|
resolveAutoDuration: () => {
|
|
46
47
|
const autoSizeDuration = getAutoSizeDuration(getWrapperHeight());
|
|
47
|
-
|
|
48
|
+
autoTransitionDurationRef.current = autoSizeDuration;
|
|
48
49
|
return autoSizeDuration;
|
|
49
50
|
},
|
|
50
51
|
}, style);
|
|
@@ -57,7 +58,6 @@ const Collapse = forwardRef(function Collapse(props, ref) {
|
|
|
57
58
|
lazyMount,
|
|
58
59
|
keepMount: collapsedHeight !== '0px' ? true : keepMount,
|
|
59
60
|
nodeRef,
|
|
60
|
-
/* eslint-disable no-param-reassign */
|
|
61
61
|
onEnter(node, isAppearing) {
|
|
62
62
|
node.style.height = collapsedHeight;
|
|
63
63
|
reflow(node);
|
|
@@ -99,7 +99,6 @@ const Collapse = forwardRef(function Collapse(props, ref) {
|
|
|
99
99
|
onExited(node);
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
|
-
/* eslint-enable no-param-reassign */
|
|
103
102
|
};
|
|
104
103
|
return (jsx(Transition, { ...transitionProps, children: (state) => (jsx("div", { ...rest, ref: composedNodeRef, style: { ...getStyle(state, inProp, collapsedHeight), ...style }, children: jsx("div", { ref: wrapperRef, style: { display: 'flex', width: '100%' }, children: jsx("div", { style: { width: '100%' }, children: children }) }) })) }));
|
|
105
104
|
});
|
package/Transition/Fade.js
CHANGED
|
@@ -19,12 +19,12 @@ function getStyle(state, inProp) {
|
|
|
19
19
|
return style;
|
|
20
20
|
}
|
|
21
21
|
const defaultDuration = {
|
|
22
|
-
enter: MOTION_DURATION.
|
|
23
|
-
exit: MOTION_DURATION.
|
|
22
|
+
enter: MOTION_DURATION.moderate,
|
|
23
|
+
exit: MOTION_DURATION.moderate,
|
|
24
24
|
};
|
|
25
25
|
const defaultEasing = {
|
|
26
|
-
enter: MOTION_EASING.
|
|
27
|
-
exit: MOTION_EASING.
|
|
26
|
+
enter: MOTION_EASING.entrance,
|
|
27
|
+
exit: MOTION_EASING.exit,
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
30
|
* The react component for `mezzanine` transition fade.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
export interface RotateProps {
|
|
3
|
+
/**
|
|
4
|
+
* The child element to rotate.
|
|
5
|
+
*/
|
|
6
|
+
children: ReactElement;
|
|
7
|
+
/**
|
|
8
|
+
* The rotation degrees when `open` is true.
|
|
9
|
+
* Common use case: arrow indicators in Select, Accordion, etc.
|
|
10
|
+
* @default 180
|
|
11
|
+
*/
|
|
12
|
+
degrees?: number;
|
|
13
|
+
/**
|
|
14
|
+
* The duration of the rotation transition in milliseconds.
|
|
15
|
+
* @default MOTION_DURATION.fast (150ms)
|
|
16
|
+
*/
|
|
17
|
+
duration?: number;
|
|
18
|
+
/**
|
|
19
|
+
* The easing function for the rotation transition.
|
|
20
|
+
* @default MOTION_EASING.standard
|
|
21
|
+
*/
|
|
22
|
+
easing?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the element should be in the rotated state.
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
in?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* The transform origin for child element.
|
|
30
|
+
* @default 'center'
|
|
31
|
+
*/
|
|
32
|
+
transformOrigin?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The react component for `mezzanine` transition rotate.
|
|
36
|
+
* Unlike other transition components, Rotate does not unmount the element.
|
|
37
|
+
* It simply rotates the element based on the `in` state.
|
|
38
|
+
*
|
|
39
|
+
* Common use case: arrow indicators that rotate to indicate expand/collapse state.
|
|
40
|
+
*/
|
|
41
|
+
declare const Rotate: import("react").ForwardRefExoticComponent<RotateProps & import("react").RefAttributes<HTMLElement>>;
|
|
42
|
+
export default Rotate;
|