@lobehub/ui 6.0.0-beta.7 → 6.0.0-beta.9
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/es/Accordion/Accordion.mjs +3 -3
- package/es/Accordion/Accordion.mjs.map +1 -1
- package/es/Accordion/atoms.mjs +2 -2
- package/es/Accordion/atoms.mjs.map +1 -1
- package/es/Accordion/style.d.mts +1 -1
- package/es/ActionIcon/ActionIcon.mjs +2 -2
- package/es/ActionIcon/ActionIcon.mjs.map +1 -1
- package/es/Alert/Alert.mjs +5 -5
- package/es/Alert/Alert.mjs.map +1 -1
- package/es/AutoComplete/AutoComplete.mjs +5 -5
- package/es/AutoComplete/AutoComplete.mjs.map +1 -1
- package/es/AutoComplete/style.mjs +2 -2
- package/es/AutoComplete/style.mjs.map +1 -1
- package/es/Avatar/Avatar.mjs +2 -2
- package/es/Avatar/Avatar.mjs.map +1 -1
- package/es/Avatar/AvatarGroup/index.mjs +2 -2
- package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
- package/es/Breadcrumb/Breadcrumb.mjs +2 -2
- package/es/Breadcrumb/Breadcrumb.mjs.map +1 -1
- package/es/Button/Button.mjs +1 -1
- package/es/Button/Button.mjs.map +1 -1
- package/es/Button/style.d.mts +8 -1
- package/es/Button/style.mjs +41 -18
- package/es/Button/style.mjs.map +1 -1
- package/es/Checkbox/Checkbox.mjs +3 -3
- package/es/Checkbox/Checkbox.mjs.map +1 -1
- package/es/CodeDiff/DiffPanel.mjs +4 -4
- package/es/CodeDiff/DiffPanel.mjs.map +1 -1
- package/es/CodeEditor/CodeEditor.mjs +4 -4
- package/es/CodeEditor/CodeEditor.mjs.map +1 -1
- package/es/ColorPicker/ColorInputs.mjs +136 -0
- package/es/ColorPicker/ColorInputs.mjs.map +1 -0
- package/es/ColorPicker/ColorPanel.mjs +145 -0
- package/es/ColorPicker/ColorPanel.mjs.map +1 -0
- package/es/ColorPicker/ColorPicker.mjs +62 -199
- package/es/ColorPicker/ColorPicker.mjs.map +1 -1
- package/es/ColorPicker/SaturationArea.mjs +2 -1
- package/es/ColorPicker/SaturationArea.mjs.map +1 -1
- package/es/ColorPicker/Swatch.mjs +24 -0
- package/es/ColorPicker/Swatch.mjs.map +1 -0
- package/es/ColorPicker/Swatches.mjs +66 -0
- package/es/ColorPicker/Swatches.mjs.map +1 -0
- package/es/ColorPicker/Trigger.mjs +112 -0
- package/es/ColorPicker/Trigger.mjs.map +1 -0
- package/es/ColorPicker/color.mjs +25 -1
- package/es/ColorPicker/color.mjs.map +1 -1
- package/es/ColorPicker/recent.mjs +25 -0
- package/es/ColorPicker/recent.mjs.map +1 -0
- package/es/ColorPicker/style.mjs +269 -70
- package/es/ColorPicker/style.mjs.map +1 -1
- package/es/ColorPicker/type.d.mts +15 -0
- package/es/ContextMenu/ContextMenuHost.mjs +2 -2
- package/es/ContextMenu/ContextMenuHost.mjs.map +1 -1
- package/es/ContextMenu/ContextMenuTrigger.mjs +2 -2
- package/es/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
- package/es/ContextMenu/renderItems.mjs +3 -3
- package/es/ContextMenu/renderItems.mjs.map +1 -1
- package/es/DatePicker/DatePicker.d.mts +9 -2
- package/es/DatePicker/DatePicker.mjs +15 -85
- package/es/DatePicker/DatePicker.mjs.map +1 -1
- package/es/DatePicker/DateRangePicker.d.mts +3 -2
- package/es/DatePicker/DateRangePicker.mjs +3 -125
- package/es/DatePicker/DateRangePicker.mjs.map +1 -1
- package/es/DatePicker/DayjsDatePicker.d.mts +12 -0
- package/es/DatePicker/DayjsDatePicker.mjs +19 -0
- package/es/DatePicker/DayjsDatePicker.mjs.map +1 -0
- package/es/DatePicker/DayjsDateRangePicker.d.mts +7 -0
- package/es/DatePicker/DayjsDateRangePicker.mjs +8 -0
- package/es/DatePicker/DayjsDateRangePicker.mjs.map +1 -0
- package/es/DatePicker/PurePanel.mjs +65 -0
- package/es/DatePicker/PurePanel.mjs.map +1 -0
- package/es/DatePicker/RangePicker.mjs +121 -0
- package/es/DatePicker/RangePicker.mjs.map +1 -0
- package/es/DatePicker/SinglePicker.mjs +134 -0
- package/es/DatePicker/SinglePicker.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/Footer.mjs +57 -0
- package/es/DatePicker/core/PickerInput/Popup/Footer.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs +57 -0
- package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs +29 -0
- package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/index.mjs +133 -0
- package/es/DatePicker/core/PickerInput/Popup/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/RangePicker.d.mts +51 -0
- package/es/DatePicker/core/PickerInput/RangePicker.mjs +343 -0
- package/es/DatePicker/core/PickerInput/RangePicker.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs +27 -0
- package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/Icon.mjs +19 -0
- package/es/DatePicker/core/PickerInput/Selector/Icon.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/Input.mjs +237 -0
- package/es/DatePicker/core/PickerInput/Selector/Input.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs +70 -0
- package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/RangeSelector.d.mts +8 -0
- package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs +136 -0
- package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs +28 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs +69 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs +111 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs +18 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs +108 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs +11 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/util.mjs +20 -0
- package/es/DatePicker/core/PickerInput/Selector/util.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/SinglePicker.d.mts +55 -0
- package/es/DatePicker/core/PickerInput/SinglePicker.mjs +318 -0
- package/es/DatePicker/core/PickerInput/SinglePicker.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/context.mjs +7 -0
- package/es/DatePicker/core/PickerInput/context.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs +30 -0
- package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs +37 -0
- package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs +18 -0
- package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs +20 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs +31 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs +98 -0
- package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs +41 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs +34 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs +35 -0
- package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs +9 -0
- package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs +36 -0
- package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs +27 -0
- package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs +18 -0
- package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs +19 -0
- package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs +20 -0
- package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs +24 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs +107 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs +144 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs +219 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs +11 -0
- package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs +131 -0
- package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs +35 -0
- package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs +84 -0
- package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs +73 -0
- package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/PanelBody.mjs +95 -0
- package/es/DatePicker/core/PickerPanel/PanelBody.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/PanelHeader.mjs +130 -0
- package/es/DatePicker/core/PickerPanel/PanelHeader.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs +64 -0
- package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs +108 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs +44 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs +157 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs +100 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs +71 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs +62 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs +200 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs +25 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs +31 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs +34 -0
- package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs +92 -0
- package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/context.mjs +48 -0
- package/es/DatePicker/core/PickerPanel/context.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/index.d.mts +1 -0
- package/es/DatePicker/core/PickerPanel/index.mjs +175 -0
- package/es/DatePicker/core/PickerPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPopup.mjs +118 -0
- package/es/DatePicker/core/PickerPopup.mjs.map +1 -0
- package/es/DatePicker/core/generate/dayjs.mjs +109 -0
- package/es/DatePicker/core/generate/dayjs.mjs.map +1 -0
- package/es/DatePicker/core/generate/index.d.mts +40 -0
- package/es/DatePicker/core/hooks/react.mjs +58 -0
- package/es/DatePicker/core/hooks/react.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useLocale.mjs +51 -0
- package/es/DatePicker/core/hooks/useLocale.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useSemantic.mjs +20 -0
- package/es/DatePicker/core/hooks/useSemantic.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useSyncState.mjs +25 -0
- package/es/DatePicker/core/hooks/useSyncState.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useTimeConfig.mjs +173 -0
- package/es/DatePicker/core/hooks/useTimeConfig.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useTimeInfo.mjs +110 -0
- package/es/DatePicker/core/hooks/useTimeInfo.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useToggleDates.mjs +21 -0
- package/es/DatePicker/core/hooks/useToggleDates.mjs.map +1 -0
- package/es/DatePicker/core/index.d.mts +5 -0
- package/es/DatePicker/core/index.mjs +9 -0
- package/es/DatePicker/core/index.mjs.map +1 -0
- package/es/DatePicker/core/interface.d.mts +325 -0
- package/es/DatePicker/core/locale/common.mjs +11 -0
- package/es/DatePicker/core/locale/common.mjs.map +1 -0
- package/es/DatePicker/core/locale/en_US.mjs +39 -0
- package/es/DatePicker/core/locale/en_US.mjs.map +1 -0
- package/es/DatePicker/core/utils/common.mjs +73 -0
- package/es/DatePicker/core/utils/common.mjs.map +1 -0
- package/es/DatePicker/core/utils/dateUtil.mjs +106 -0
- package/es/DatePicker/core/utils/dateUtil.mjs.map +1 -0
- package/es/DatePicker/core/utils/miscUtil.mjs +46 -0
- package/es/DatePicker/core/utils/miscUtil.mjs.map +1 -0
- package/es/DatePicker/core/utils/uiUtil.mjs +9 -0
- package/es/DatePicker/core/utils/uiUtil.mjs.map +1 -0
- package/es/DatePicker/dateGenerateConfig.mjs +52 -0
- package/es/DatePicker/dateGenerateConfig.mjs.map +1 -0
- package/es/DatePicker/generateConfig.mjs +12 -0
- package/es/DatePicker/generateConfig.mjs.map +1 -0
- package/es/DatePicker/generatePicker.d.mts +12 -0
- package/es/DatePicker/generatePicker.mjs +22 -0
- package/es/DatePicker/generatePicker.mjs.map +1 -0
- package/es/DatePicker/index.d.mts +8 -3
- package/es/DatePicker/index.mjs +5 -1
- package/es/DatePicker/legacyDate.mjs +58 -0
- package/es/DatePicker/legacyDate.mjs.map +1 -0
- package/es/DatePicker/locale.d.mts +15 -0
- package/es/DatePicker/locale.mjs +143 -0
- package/es/DatePicker/locale.mjs.map +1 -0
- package/es/DatePicker/semantic.mjs +29 -0
- package/es/DatePicker/semantic.mjs.map +1 -0
- package/es/DatePicker/style.mjs +3 -155
- package/es/DatePicker/style.mjs.map +1 -1
- package/es/DatePicker/type.d.mts +294 -27
- package/es/DatePicker/usePanelKeyboard.mjs +230 -0
- package/es/DatePicker/usePanelKeyboard.mjs.map +1 -0
- package/es/DatePicker/usePickerShared.mjs +106 -0
- package/es/DatePicker/usePickerShared.mjs.map +1 -0
- package/es/DatePicker/usePresetActive.mjs +49 -0
- package/es/DatePicker/usePresetActive.mjs.map +1 -0
- package/es/DraggablePanel/atoms.mjs +5 -5
- package/es/DraggablePanel/atoms.mjs.map +1 -1
- package/es/DraggableSideNav/DraggableSideNav.mjs +3 -3
- package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
- package/es/Drawer/Drawer.mjs +2 -2
- package/es/Drawer/Drawer.mjs.map +1 -1
- package/es/Drawer/atoms.mjs +6 -6
- package/es/Drawer/atoms.mjs.map +1 -1
- package/es/DropdownMenu/atoms.mjs +22 -22
- package/es/DropdownMenu/atoms.mjs.map +1 -1
- package/es/DropdownMenu/sharedStyle.mjs +2 -2
- package/es/DropdownMenu/sharedStyle.mjs.map +1 -1
- package/es/EditorSlashMenu/atoms.mjs +12 -12
- package/es/EditorSlashMenu/atoms.mjs.map +1 -1
- package/es/EmojiPicker/EmojiPicker.mjs +7 -7
- package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
- package/es/EmojiPicker/loadEmojiData.mjs +6 -0
- package/es/EmojiPicker/loadEmojiData.mjs.map +1 -0
- package/es/FloatingPanel/FloatingPanel.mjs +2 -2
- package/es/FloatingPanel/FloatingPanel.mjs.map +1 -1
- package/es/FormKit/List.mjs +2 -2
- package/es/FormKit/List.mjs.map +1 -1
- package/es/Highlighter/FullFeatured.mjs +2 -2
- package/es/Highlighter/FullFeatured.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs +2 -2
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/index.mjs +4 -4
- package/es/Highlighter/SyntaxHighlighter/index.mjs.map +1 -1
- package/es/Highlighter/style.mjs +2 -2
- package/es/Highlighter/style.mjs.map +1 -1
- package/es/HtmlPreview/HtmlPreview.mjs +2 -2
- package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
- package/es/Icon/Icon.mjs +2 -2
- package/es/Icon/Icon.mjs.map +1 -1
- package/es/List/ListRow.mjs +3 -3
- package/es/List/ListRow.mjs.map +1 -1
- package/es/Markdown/Markdown.mjs +2 -2
- package/es/Markdown/Markdown.mjs.map +1 -1
- package/es/Markdown/Typography.mjs +2 -2
- package/es/Markdown/Typography.mjs.map +1 -1
- package/es/Mermaid/FullFeatured.mjs +2 -2
- package/es/Mermaid/FullFeatured.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/index.mjs +4 -4
- package/es/Mermaid/SyntaxMermaid/index.mjs.map +1 -1
- package/es/Modal/atoms.mjs +6 -6
- package/es/Modal/atoms.mjs.map +1 -1
- package/es/Pagination/Pagination.mjs +181 -41
- package/es/Pagination/Pagination.mjs.map +1 -1
- package/es/Pagination/helpers.mjs +3 -3
- package/es/Pagination/helpers.mjs.map +1 -1
- package/es/Pagination/index.d.mts +2 -2
- package/es/Pagination/marker.stylex.mjs +9 -0
- package/es/Pagination/marker.stylex.mjs.map +1 -0
- package/es/Pagination/style.mjs +74 -4
- package/es/Pagination/style.mjs.map +1 -1
- package/es/Pagination/type.d.mts +41 -3
- package/es/Popover/PopoverInGroup.mjs +2 -2
- package/es/Popover/PopoverInGroup.mjs.map +1 -1
- package/es/Popover/atoms.mjs +6 -6
- package/es/Popover/atoms.mjs.map +1 -1
- package/es/ProTable/ProTable.d.mts +11 -0
- package/es/ProTable/ProTable.mjs +208 -0
- package/es/ProTable/ProTable.mjs.map +1 -0
- package/es/ProTable/hooks/useColumnRequest.mjs +55 -0
- package/es/ProTable/hooks/useColumnRequest.mjs.map +1 -0
- package/es/ProTable/hooks/useColumnsState.mjs +37 -0
- package/es/ProTable/hooks/useColumnsState.mjs.map +1 -0
- package/es/ProTable/hooks/useDelayedFlag.mjs +18 -0
- package/es/ProTable/hooks/useDelayedFlag.mjs.map +1 -0
- package/es/ProTable/hooks/useDensity.mjs +15 -0
- package/es/ProTable/hooks/useDensity.mjs.map +1 -0
- package/es/ProTable/hooks/useFetchData.mjs +97 -0
- package/es/ProTable/hooks/useFetchData.mjs.map +1 -0
- package/es/ProTable/hooks/useFullscreen.mjs +22 -0
- package/es/ProTable/hooks/useFullscreen.mjs.map +1 -0
- package/es/ProTable/hooks/usePageInfo.mjs +35 -0
- package/es/ProTable/hooks/usePageInfo.mjs.map +1 -0
- package/es/ProTable/hooks/useProColumns.mjs +123 -0
- package/es/ProTable/hooks/useProColumns.mjs.map +1 -0
- package/es/ProTable/hooks/useProLoading.mjs +19 -0
- package/es/ProTable/hooks/useProLoading.mjs.map +1 -0
- package/es/ProTable/hooks/useProLocale.mjs +22 -0
- package/es/ProTable/hooks/useProLocale.mjs.map +1 -0
- package/es/ProTable/hooks/useProRequest.mjs +137 -0
- package/es/ProTable/hooks/useProRequest.mjs.map +1 -0
- package/es/ProTable/hooks/useRowCache.mjs +11 -0
- package/es/ProTable/hooks/useRowCache.mjs.map +1 -0
- package/es/ProTable/hooks/useSearchForm.mjs +141 -0
- package/es/ProTable/hooks/useSearchForm.mjs.map +1 -0
- package/es/ProTable/hooks/useTableBindings.mjs +39 -0
- package/es/ProTable/hooks/useTableBindings.mjs.map +1 -0
- package/es/ProTable/hooks/useTableSelection.mjs +14 -0
- package/es/ProTable/hooks/useTableSelection.mjs.map +1 -0
- package/es/ProTable/index.d.mts +4 -0
- package/es/ProTable/index.d.ts +1 -0
- package/es/ProTable/index.js +1 -0
- package/es/ProTable/index.mjs +3 -0
- package/es/ProTable/locale.d.mts +15 -0
- package/es/ProTable/locale.mjs +66 -0
- package/es/ProTable/locale.mjs.map +1 -0
- package/es/ProTable/parts/ColumnSetting.mjs +155 -0
- package/es/ProTable/parts/ColumnSetting.mjs.map +1 -0
- package/es/ProTable/parts/FieldControl.mjs +117 -0
- package/es/ProTable/parts/FieldControl.mjs.map +1 -0
- package/es/ProTable/parts/KeywordInput.mjs +19 -0
- package/es/ProTable/parts/KeywordInput.mjs.map +1 -0
- package/es/ProTable/parts/LightFilter.mjs +70 -0
- package/es/ProTable/parts/LightFilter.mjs.map +1 -0
- package/es/ProTable/parts/OptionPopover.mjs +17 -0
- package/es/ProTable/parts/OptionPopover.mjs.map +1 -0
- package/es/ProTable/parts/SearchForm.mjs +180 -0
- package/es/ProTable/parts/SearchForm.mjs.map +1 -0
- package/es/ProTable/parts/SearchSection.mjs +33 -0
- package/es/ProTable/parts/SearchSection.mjs.map +1 -0
- package/es/ProTable/parts/TableAlert.mjs +38 -0
- package/es/ProTable/parts/TableAlert.mjs.map +1 -0
- package/es/ProTable/parts/Toolbar.mjs +50 -0
- package/es/ProTable/parts/Toolbar.mjs.map +1 -0
- package/es/ProTable/parts/ToolbarOptions.mjs +103 -0
- package/es/ProTable/parts/ToolbarOptions.mjs.map +1 -0
- package/es/ProTable/parts/renderValue.mjs +118 -0
- package/es/ProTable/parts/renderValue.mjs.map +1 -0
- package/es/ProTable/style.mjs +278 -0
- package/es/ProTable/style.mjs.map +1 -0
- package/es/ProTable/type.d.mts +397 -0
- package/es/ProTable/utils.mjs +152 -0
- package/es/ProTable/utils.mjs.map +1 -0
- package/es/Radio/Radio.mjs +3 -3
- package/es/Radio/Radio.mjs.map +1 -1
- package/es/ScrollArea/atoms.mjs +4 -4
- package/es/ScrollArea/atoms.mjs.map +1 -1
- package/es/Segmented/Segmented.mjs +3 -3
- package/es/Segmented/Segmented.mjs.map +1 -1
- package/es/Segmented/atoms.mjs +2 -2
- package/es/Segmented/atoms.mjs.map +1 -1
- package/es/Select/Select.mjs +22 -13
- package/es/Select/Select.mjs.map +1 -1
- package/es/Select/atoms.mjs +4 -4
- package/es/Select/atoms.mjs.map +1 -1
- package/es/Select/helpers.mjs +8 -1
- package/es/Select/helpers.mjs.map +1 -1
- package/es/Select/hooks.mjs +8 -4
- package/es/Select/hooks.mjs.map +1 -1
- package/es/Select/renderOptions.mjs +2 -2
- package/es/Select/renderOptions.mjs.map +1 -1
- package/es/Select/type.d.mts +7 -0
- package/es/Switch/Switch.mjs +2 -2
- package/es/Switch/Switch.mjs.map +1 -1
- package/es/Switch/atoms.mjs +2 -2
- package/es/Switch/atoms.mjs.map +1 -1
- package/es/Table/Column.d.mts +8 -0
- package/es/Table/Column.mjs +6 -0
- package/es/Table/Column.mjs.map +1 -0
- package/es/Table/ColumnGroup.d.mts +11 -0
- package/es/Table/ColumnGroup.mjs +6 -0
- package/es/Table/ColumnGroup.mjs.map +1 -0
- package/es/Table/Table.d.mts +16 -2
- package/es/Table/Table.mjs +149 -118
- package/es/Table/Table.mjs.map +1 -1
- package/es/Table/atoms/cells.d.mts +42 -0
- package/es/Table/atoms/cells.mjs +72 -0
- package/es/Table/atoms/cells.mjs.map +1 -0
- package/es/Table/atoms/index.d.mts +3 -0
- package/es/Table/atoms/layout.d.mts +44 -0
- package/es/Table/atoms/layout.mjs +62 -0
- package/es/Table/atoms/layout.mjs.map +1 -0
- package/es/Table/constants.mjs +16 -0
- package/es/Table/constants.mjs.map +1 -0
- package/es/Table/engine/fixed.d.mts +1 -0
- package/es/Table/engine/fixed.mjs +53 -0
- package/es/Table/engine/fixed.mjs.map +1 -0
- package/es/Table/engine/types.d.mts +1 -0
- package/es/Table/engine/useTableEngine.mjs +180 -0
- package/es/Table/engine/useTableEngine.mjs.map +1 -0
- package/es/Table/index.d.mts +7 -2
- package/es/Table/index.mjs +4 -1
- package/es/Table/internal.d.mts +3 -0
- package/es/Table/pipeline/columnUtils.d.mts +5 -0
- package/es/Table/pipeline/columnUtils.mjs +58 -0
- package/es/Table/pipeline/columnUtils.mjs.map +1 -0
- package/es/Table/pipeline/convertChildrenToColumns.mjs +24 -0
- package/es/Table/pipeline/convertChildrenToColumns.mjs.map +1 -0
- package/es/Table/pipeline/normalizeColumns.mjs +140 -0
- package/es/Table/pipeline/normalizeColumns.mjs.map +1 -0
- package/es/Table/pipeline/selectionUtils.d.mts +9 -0
- package/es/Table/pipeline/selectionUtils.mjs +115 -0
- package/es/Table/pipeline/selectionUtils.mjs.map +1 -0
- package/es/Table/pipeline/useBreakpoint.mjs +36 -0
- package/es/Table/pipeline/useBreakpoint.mjs.map +1 -0
- package/es/Table/pipeline/useExpandable.mjs +45 -0
- package/es/Table/pipeline/useExpandable.mjs.map +1 -0
- package/es/Table/pipeline/useFilter.mjs +52 -0
- package/es/Table/pipeline/useFilter.mjs.map +1 -0
- package/es/Table/pipeline/useSelection.mjs +302 -0
- package/es/Table/pipeline/useSelection.mjs.map +1 -0
- package/es/Table/pipeline/useSorter.mjs +146 -0
- package/es/Table/pipeline/useSorter.mjs.map +1 -0
- package/es/Table/pipeline/useTableLocale.mjs +30 -0
- package/es/Table/pipeline/useTableLocale.mjs.map +1 -0
- package/es/Table/pipeline/useTableState.mjs +118 -0
- package/es/Table/pipeline/useTableState.mjs.map +1 -0
- package/es/Table/pipeline/useVirtualLayout.mjs +80 -0
- package/es/Table/pipeline/useVirtualLayout.mjs.map +1 -0
- package/es/Table/render/Body.mjs +150 -0
- package/es/Table/render/Body.mjs.map +1 -0
- package/es/Table/render/BodyCell.mjs +87 -0
- package/es/Table/render/BodyCell.mjs.map +1 -0
- package/es/Table/render/CellShell.mjs +84 -0
- package/es/Table/render/CellShell.mjs.map +1 -0
- package/es/Table/render/ExpandIcon.mjs +28 -0
- package/es/Table/render/ExpandIcon.mjs.map +1 -0
- package/es/Table/render/FilterDropdown.mjs +139 -0
- package/es/Table/render/FilterDropdown.mjs.map +1 -0
- package/es/Table/render/FilterPanel.mjs +152 -0
- package/es/Table/render/FilterPanel.mjs.map +1 -0
- package/es/Table/render/FixedFrost.mjs +113 -0
- package/es/Table/render/FixedFrost.mjs.map +1 -0
- package/es/Table/render/FixedHolder.mjs +51 -0
- package/es/Table/render/FixedHolder.mjs.map +1 -0
- package/es/Table/render/Header.mjs +184 -0
- package/es/Table/render/Header.mjs.map +1 -0
- package/es/Table/render/LoadingSkeleton.mjs +78 -0
- package/es/Table/render/LoadingSkeleton.mjs.map +1 -0
- package/es/Table/render/PaginationBar.mjs +71 -0
- package/es/Table/render/PaginationBar.mjs.map +1 -0
- package/es/Table/render/SelectionCells.mjs +111 -0
- package/es/Table/render/SelectionCells.mjs.map +1 -0
- package/es/Table/render/StickyScrollBar.mjs +99 -0
- package/es/Table/render/StickyScrollBar.mjs.map +1 -0
- package/es/Table/render/Summary.d.mts +16 -0
- package/es/Table/render/Summary.mjs +58 -0
- package/es/Table/render/Summary.mjs.map +1 -0
- package/es/Table/render/TableView.mjs +215 -0
- package/es/Table/render/TableView.mjs.map +1 -0
- package/es/Table/render/VirtualBody.mjs +101 -0
- package/es/Table/render/VirtualBody.mjs.map +1 -0
- package/es/Table/render/context.mjs +15 -0
- package/es/Table/render/context.mjs.map +1 -0
- package/es/Table/render/filterUtils.mjs +22 -0
- package/es/Table/render/filterUtils.mjs.map +1 -0
- package/es/Table/render/tableHelpers.mjs +27 -0
- package/es/Table/render/tableHelpers.mjs.map +1 -0
- package/es/Table/render/useColGroups.mjs +23 -0
- package/es/Table/render/useColGroups.mjs.map +1 -0
- package/es/Table/render/useScrollSync.mjs +104 -0
- package/es/Table/render/useScrollSync.mjs.map +1 -0
- package/es/Table/render/useViewContexts.mjs +134 -0
- package/es/Table/render/useViewContexts.mjs.map +1 -0
- package/es/Table/semantic.mjs +45 -0
- package/es/Table/semantic.mjs.map +1 -0
- package/es/Table/store/createTableStore.d.mts +1 -0
- package/es/Table/store/createTableStore.mjs +40 -0
- package/es/Table/store/createTableStore.mjs.map +1 -0
- package/es/Table/store/hooks.mjs +24 -0
- package/es/Table/store/hooks.mjs.map +1 -0
- package/es/Table/style.mjs +175 -90
- package/es/Table/style.mjs.map +1 -1
- package/es/Table/type.d.mts +467 -37
- package/es/Table/useTableController.mjs +293 -0
- package/es/Table/useTableController.mjs.map +1 -0
- package/es/Tabs/Tabs.mjs +2 -2
- package/es/Tabs/Tabs.mjs.map +1 -1
- package/es/Tabs/atoms.mjs +2 -2
- package/es/Tabs/atoms.mjs.map +1 -1
- package/es/Tag/Tag.mjs +2 -2
- package/es/Tag/Tag.mjs.map +1 -1
- package/es/Text/Text.mjs +2 -2
- package/es/Text/Text.mjs.map +1 -1
- package/es/Text/style.d.mts +3 -3
- package/es/Text/style.mjs +3 -3
- package/es/Text/style.mjs.map +1 -1
- package/es/ToggleGroup/ToggleGroup.mjs +3 -3
- package/es/ToggleGroup/ToggleGroup.mjs.map +1 -1
- package/es/ToggleGroup/atoms.mjs +2 -2
- package/es/ToggleGroup/atoms.mjs.map +1 -1
- package/es/Tooltip/TooltipGroup.mjs +3 -3
- package/es/Tooltip/TooltipGroup.mjs.map +1 -1
- package/es/Tooltip/TooltipStandalone.mjs +3 -3
- package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
- package/es/Tree/Tree.mjs +2 -2
- package/es/Tree/Tree.mjs.map +1 -1
- package/es/Tree/TreeNode.mjs +2 -2
- package/es/Tree/TreeNode.mjs.map +1 -1
- package/es/Video/Video.mjs +2 -2
- package/es/Video/Video.mjs.map +1 -1
- package/es/awesome/Features/FeatureItem.mjs +2 -2
- package/es/awesome/Features/FeatureItem.mjs.map +1 -1
- package/es/awesome/Hero/Hero.mjs +3 -3
- package/es/awesome/Hero/Hero.mjs.map +1 -1
- package/es/awesome/InstallBanner/InstallBanner.mjs +2 -2
- package/es/awesome/InstallBanner/InstallBanner.mjs.map +1 -1
- package/es/awesome/LandingHero/LandingHero.mjs +3 -3
- package/es/awesome/LandingHero/LandingHero.mjs.map +1 -1
- package/es/awesome/LogoMarquee/LogoMarquee.mjs +2 -2
- package/es/awesome/LogoMarquee/LogoMarquee.mjs.map +1 -1
- package/es/awesome/TypewriterEffect/TypewriterEffect.mjs +4 -4
- package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
- package/es/awesome/landingActions.mjs +2 -2
- package/es/awesome/landingActions.mjs.map +1 -1
- package/es/chat/ChatItem/ChatItem.mjs +2 -2
- package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
- package/es/chat/EditableMessage/EditableMessage.mjs +3 -3
- package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
- package/es/chat/EditableMessageList/EditableMessageList.mjs +1 -1
- package/es/chat/MessageInput/MessageInput.mjs +3 -3
- package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
- package/es/dashboard/AuthLayout/AuthLayout.mjs +8 -4
- package/es/dashboard/AuthLayout/AuthLayout.mjs.map +1 -1
- package/es/dashboard/AuthLayout/style.mjs +14 -3
- package/es/dashboard/AuthLayout/style.mjs.map +1 -1
- package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs +2 -2
- package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs.map +1 -1
- package/es/dashboard/AuthTools/AuthThemeSwitch.mjs +2 -2
- package/es/dashboard/AuthTools/AuthThemeSwitch.mjs.map +1 -1
- package/es/dashboard/ConsoleNav/ConsoleNav.mjs +3 -3
- package/es/dashboard/ConsoleNav/ConsoleNav.mjs.map +1 -1
- package/es/dashboard/ConsoleNav/style.mjs +2 -2
- package/es/dashboard/ConsoleNav/style.mjs.map +1 -1
- package/es/dashboard/ConsoleShell/style.mjs +1 -1
- package/es/dashboard/ConsoleShell/style.mjs.map +1 -1
- package/es/dashboard/FilterSidebar/FilterSidebar.mjs +1 -1
- package/es/dashboard/FilterSidebar/style.mjs +2 -2
- package/es/dashboard/FilterSidebar/style.mjs.map +1 -1
- package/es/dashboard/FilterStrip/style.mjs +1 -1
- package/es/dashboard/FilterStrip/style.mjs.map +1 -1
- package/es/dashboard/MetricStrip/MetricCell.mjs +25 -14
- package/es/dashboard/MetricStrip/MetricCell.mjs.map +1 -1
- package/es/dashboard/MetricStrip/style.mjs +14 -1
- package/es/dashboard/MetricStrip/style.mjs.map +1 -1
- package/es/dashboard/MetricStrip/type.d.mts +2 -0
- package/es/dashboard/PageSkeleton/style.mjs +2 -1
- package/es/dashboard/PageSkeleton/style.mjs.map +1 -1
- package/es/dashboard/StatCard/StatCard.d.mts +1 -1
- package/es/dashboard/StatCard/StatCard.mjs +2 -1
- package/es/dashboard/StatCard/StatCard.mjs.map +1 -1
- package/es/dashboard/StatCard/type.d.mts +2 -0
- package/es/dashboard/Surface/Surface.mjs +3 -4
- package/es/dashboard/Surface/Surface.mjs.map +1 -1
- package/es/dashboard/Surface/link.mjs +1 -1
- package/es/dashboard/Surface/link.mjs.map +1 -1
- package/es/dashboard/Surface/style.mjs +15 -14
- package/es/dashboard/Surface/style.mjs.map +1 -1
- package/es/dashboard/index.mjs +2 -2
- package/es/eslint/noBaseUiSubpath.mjs +2 -1
- package/es/eslint/noBaseUiSubpath.mjs.map +1 -1
- package/es/i18n/resources/en/colorPicker.d.mts +5 -0
- package/es/i18n/resources/en/colorPicker.mjs +5 -0
- package/es/i18n/resources/en/colorPicker.mjs.map +1 -1
- package/es/i18n/resources/en/datePicker.d.mts +54 -0
- package/es/i18n/resources/en/datePicker.mjs +55 -1
- package/es/i18n/resources/en/datePicker.mjs.map +1 -1
- package/es/i18n/resources/en/index.d.mts +4 -3
- package/es/i18n/resources/en/index.mjs +3 -1
- package/es/i18n/resources/en/index.mjs.map +1 -1
- package/es/i18n/resources/en/table.d.mts +23 -0
- package/es/i18n/resources/en/table.mjs +24 -0
- package/es/i18n/resources/en/table.mjs.map +1 -0
- package/es/i18n/resources/zhCn/colorPicker.d.mts +5 -0
- package/es/i18n/resources/zhCn/colorPicker.mjs +5 -0
- package/es/i18n/resources/zhCn/colorPicker.mjs.map +1 -1
- package/es/i18n/resources/zhCn/datePicker.d.mts +54 -0
- package/es/i18n/resources/zhCn/datePicker.mjs +55 -1
- package/es/i18n/resources/zhCn/datePicker.mjs.map +1 -1
- package/es/i18n/resources/zhCn/index.d.mts +4 -3
- package/es/i18n/resources/zhCn/index.mjs +4 -2
- package/es/i18n/resources/zhCn/index.mjs.map +1 -1
- package/es/i18n/resources/zhCn/table.d.mts +23 -0
- package/es/i18n/resources/zhCn/table.mjs +24 -0
- package/es/i18n/resources/zhCn/table.mjs.map +1 -0
- package/es/i18n/types.d.mts +3 -2
- package/es/index.d.mts +15 -6
- package/es/index.mjs +12 -6
- package/es/internal/overflow/OverflowList.mjs +71 -0
- package/es/internal/overflow/OverflowList.mjs.map +1 -0
- package/es/mdx/Callout/index.mjs +2 -2
- package/es/mdx/Callout/index.mjs.map +1 -1
- package/es/mdx/Cards/Card.mjs +2 -2
- package/es/mdx/Cards/Card.mjs.map +1 -1
- package/es/mdx/Cards/index.mjs +2 -2
- package/es/mdx/Cards/index.mjs.map +1 -1
- package/es/mdx/Mdx/index.mjs +2 -2
- package/es/mdx/Mdx/index.mjs.map +1 -1
- package/es/mdx/Steps/index.mjs +2 -2
- package/es/mdx/Steps/index.mjs.map +1 -1
- package/es/mdx/mdxComponents/Pre.mjs +5 -5
- package/es/mdx/mdxComponents/Pre.mjs.map +1 -1
- package/es/storybook/StoryBook/style.mjs +2 -0
- package/es/storybook/StoryBook/style.mjs.map +1 -1
- package/es/style.css +2966 -957
- package/es/styles/stylex/props.mjs +2 -2
- package/es/styles/stylex/props.mjs.map +1 -1
- package/es/styles/theme/themeCss.mjs +15 -0
- package/es/styles/theme/themeCss.mjs.map +1 -1
- package/es/theme.css +8 -0
- package/package.json +6 -1
- package/es/DatePicker/CalendarPanel.mjs +0 -189
- package/es/DatePicker/CalendarPanel.mjs.map +0 -1
- package/es/DatePicker/PickerShell.mjs +0 -43
- package/es/DatePicker/PickerShell.mjs.map +0 -1
- package/es/DatePicker/calendar.d.mts +0 -4
- package/es/DatePicker/calendar.mjs +0 -46
- package/es/DatePicker/calendar.mjs.map +0 -1
- package/es/Table/FilterMenu.mjs +0 -45
- package/es/Table/FilterMenu.mjs.map +0 -1
- package/es/Table/TableBody.mjs +0 -67
- package/es/Table/TableBody.mjs.map +0 -1
- package/es/Table/TableHead.mjs +0 -58
- package/es/Table/TableHead.mjs.map +0 -1
- package/es/Table/features.mjs +0 -12
- package/es/Table/features.mjs.map +0 -1
- package/es/Table/fixedOffsets.mjs +0 -29
- package/es/Table/fixedOffsets.mjs.map +0 -1
- package/es/Table/marker.stylex.mjs +0 -9
- package/es/Table/marker.stylex.mjs.map +0 -1
- package/es/Table/toColumnDefs.mjs +0 -26
- package/es/Table/toColumnDefs.mjs.map +0 -1
- package/es/Table/useTableState.mjs +0 -99
- package/es/Table/useTableState.mjs.map +0 -1
|
@@ -2,26 +2,61 @@
|
|
|
2
2
|
import { styleProps } from "../styles/stylex/props.mjs";
|
|
3
3
|
import { useEventCallback } from "../hooks/useEventCallback.mjs";
|
|
4
4
|
import { useControlledState } from "../hooks/useControlledState.mjs";
|
|
5
|
+
import Input_default from "../Input/Input.mjs";
|
|
5
6
|
import Select from "../Select/Select.mjs";
|
|
6
7
|
import { clampPage, getPageCount, getPaginationItems } from "./helpers.mjs";
|
|
8
|
+
import { paginationJumpMarker } from "./marker.stylex.mjs";
|
|
7
9
|
import { styles } from "./style.mjs";
|
|
8
|
-
import { createElement, memo, useEffect, useRef, useState } from "react";
|
|
9
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import { createElement, memo, useEffect, useRef, useState, useSyncExternalStore } from "react";
|
|
11
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
import clsx$1 from "clsx";
|
|
10
13
|
import * as stylex from "@stylexjs/stylex";
|
|
11
|
-
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
14
|
+
import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from "lucide-react";
|
|
12
15
|
//#region src/Pagination/Pagination.tsx
|
|
13
|
-
const
|
|
16
|
+
const XS_QUERY = "(max-width: 575px)";
|
|
17
|
+
/** One-line dots that swap to a double chevron on hover / focus of the jump item. */
|
|
18
|
+
const JumpIcon = ({ direction }) => {
|
|
19
|
+
const Icon = direction === "prev" ? ChevronsLeft : ChevronsRight;
|
|
20
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
21
|
+
"aria-hidden": true,
|
|
22
|
+
...stylex.props(styles.ellipsisDots),
|
|
23
|
+
children: "•••"
|
|
24
|
+
}), /* @__PURE__ */ jsx(Icon, {
|
|
25
|
+
"aria-hidden": true,
|
|
26
|
+
size: 14,
|
|
27
|
+
...stylex.props(styles.ellipsisIcon)
|
|
28
|
+
})] });
|
|
29
|
+
};
|
|
30
|
+
const canMatchMedia = () => typeof window !== "undefined" && typeof window.matchMedia === "function";
|
|
31
|
+
const subscribeXs = (onChange) => {
|
|
32
|
+
if (!canMatchMedia()) return () => {};
|
|
33
|
+
const query = window.matchMedia(XS_QUERY);
|
|
34
|
+
query.addEventListener?.("change", onChange);
|
|
35
|
+
return () => query.removeEventListener?.("change", onChange);
|
|
36
|
+
};
|
|
37
|
+
const getXs = () => canMatchMedia() && window.matchMedia(XS_QUERY).matches;
|
|
38
|
+
const getServerXs = () => false;
|
|
39
|
+
/** Whether the viewport is antd's `xs` breakpoint; only tracked when `enabled`. */
|
|
40
|
+
const useIsXs = (enabled) => {
|
|
41
|
+
const isXs = useSyncExternalStore(subscribeXs, getXs, getServerXs);
|
|
42
|
+
return enabled && isXs;
|
|
43
|
+
};
|
|
44
|
+
const Pagination = memo(({ align, className, classNames, components, current, defaultCurrent = 1, defaultPageSize = 10, disabled, hideOnSinglePage, itemRender, onChange, onPageSizeChange, pageSize, pageSizeOptions = [
|
|
14
45
|
10,
|
|
15
46
|
20,
|
|
16
47
|
50,
|
|
17
48
|
100
|
|
18
|
-
], ref, showSizeChanger =
|
|
49
|
+
], ref, responsive, showLessItems, showQuickJumper, showSizeChanger, showTitle = true, showTotal, simple, size: sizeProp, style, styles: customStyles, total, totalBoundaryShowSizeChanger = 50, ...rest }) => {
|
|
19
50
|
const [mergedPageSize, setMergedPageSize] = useControlledState(defaultPageSize, { value: pageSize });
|
|
20
51
|
const pageCount = getPageCount(total, mergedPageSize);
|
|
21
52
|
const [mergedCurrent, setMergedCurrent] = useControlledState(defaultCurrent, { value: current });
|
|
22
53
|
const onChangeStable = useEventCallback((nextCurrent, nextPageSize) => {
|
|
23
54
|
onChange?.(nextCurrent, nextPageSize);
|
|
24
55
|
});
|
|
56
|
+
const isXs = useIsXs(!!responsive && !sizeProp);
|
|
57
|
+
const size = sizeProp ?? (isXs ? "small" : "middle");
|
|
58
|
+
const [jumperValue, setJumperValue] = useState("");
|
|
59
|
+
const [simpleValue, setSimpleValue] = useState(null);
|
|
25
60
|
const pendingNotifyRef = useRef(null);
|
|
26
61
|
const [prevPageCount, setPrevPageCount] = useState(pageCount);
|
|
27
62
|
if (pageCount !== prevPageCount) {
|
|
@@ -57,62 +92,167 @@ const Pagination = memo(({ className, current, defaultCurrent = 1, defaultPageSi
|
|
|
57
92
|
commitCurrent(nextCurrent, nextSize);
|
|
58
93
|
onPageSizeChange?.(nextCurrent, nextSize);
|
|
59
94
|
};
|
|
95
|
+
const jump = () => {
|
|
96
|
+
const page = Number(jumperValue);
|
|
97
|
+
setJumperValue("");
|
|
98
|
+
if (jumperValue.trim() === "" || !Number.isInteger(page)) return;
|
|
99
|
+
const nextCurrent = clampPage(page, pageCount);
|
|
100
|
+
if (nextCurrent !== displayCurrent) goTo(nextCurrent);
|
|
101
|
+
};
|
|
102
|
+
const goButton = typeof showQuickJumper === "object" ? showQuickJumper.goButton : void 0;
|
|
103
|
+
const mergedShowSizeChanger = showSizeChanger ?? total > totalBoundaryShowSizeChanger;
|
|
104
|
+
const sizeChangerProps = typeof showSizeChanger === "object" ? showSizeChanger : void 0;
|
|
105
|
+
const SizeChanger = components?.sizeChanger ?? Select;
|
|
106
|
+
const jumpStep = showLessItems ? 3 : 5;
|
|
107
|
+
const items = getPaginationItems(displayCurrent, pageCount, showLessItems ? 1 : 2);
|
|
108
|
+
const render = (page, type, element) => itemRender ? itemRender(page, type, element) : element;
|
|
109
|
+
const title = (text) => showTitle ? text : void 0;
|
|
110
|
+
const iconSize = size === "small" ? 14 : 16;
|
|
60
111
|
const buttonProps = stylex.props(styles.button, size === "small" && styles.small);
|
|
61
|
-
const
|
|
112
|
+
const jumperInputClassName = stylex.props(styles.jumperInput).className;
|
|
113
|
+
const prevButton = /* @__PURE__ */ jsx("button", {
|
|
114
|
+
"aria-label": "Previous page",
|
|
115
|
+
...buttonProps,
|
|
116
|
+
disabled: disabled || displayCurrent <= 1,
|
|
117
|
+
title: title("Previous Page"),
|
|
118
|
+
type: "button",
|
|
119
|
+
onClick: () => goTo(displayCurrent - 1),
|
|
120
|
+
children: render(Math.max(1, displayCurrent - 1), "prev", /* @__PURE__ */ jsx(ChevronLeft, { size: iconSize }))
|
|
121
|
+
});
|
|
122
|
+
const nextButton = /* @__PURE__ */ jsx("button", {
|
|
123
|
+
"aria-label": "Next page",
|
|
124
|
+
...buttonProps,
|
|
125
|
+
disabled: disabled || displayCurrent >= pageCount,
|
|
126
|
+
title: title("Next Page"),
|
|
127
|
+
type: "button",
|
|
128
|
+
onClick: () => goTo(displayCurrent + 1),
|
|
129
|
+
children: render(Math.min(pageCount, displayCurrent + 1), "next", /* @__PURE__ */ jsx(ChevronRight, { size: iconSize }))
|
|
130
|
+
});
|
|
131
|
+
const simpleConfig = simple ? typeof simple === "object" ? simple : {} : null;
|
|
132
|
+
const commitSimple = () => {
|
|
133
|
+
if (simpleValue === null) return;
|
|
134
|
+
const page = Number(simpleValue);
|
|
135
|
+
setSimpleValue(null);
|
|
136
|
+
if (simpleValue.trim() === "" || !Number.isInteger(page)) return;
|
|
137
|
+
const nextCurrent = clampPage(page, pageCount);
|
|
138
|
+
if (nextCurrent !== displayCurrent) goTo(nextCurrent);
|
|
139
|
+
};
|
|
62
140
|
const rangeStart = total === 0 ? 0 : (displayCurrent - 1) * mergedPageSize + 1;
|
|
63
141
|
const rangeEnd = Math.min(displayCurrent * mergedPageSize, total);
|
|
64
142
|
return /* @__PURE__ */ jsxs("nav", {
|
|
65
143
|
"aria-label": "Pagination",
|
|
66
144
|
ref,
|
|
67
145
|
role: "navigation",
|
|
68
|
-
...styleProps(
|
|
146
|
+
...styleProps([
|
|
147
|
+
styles.root,
|
|
148
|
+
align && styles.aligned,
|
|
149
|
+
align && styles[align]
|
|
150
|
+
], clsx$1(classNames?.root, className), {
|
|
151
|
+
...customStyles?.root,
|
|
152
|
+
...style
|
|
153
|
+
}),
|
|
69
154
|
...rest,
|
|
70
155
|
children: [
|
|
71
156
|
showTotal && /* @__PURE__ */ jsx("span", {
|
|
72
157
|
...stylex.props(styles.total),
|
|
73
158
|
children: showTotal(total, [rangeStart, rangeEnd])
|
|
74
159
|
}),
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}),
|
|
102
|
-
|
|
160
|
+
simpleConfig ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
161
|
+
prevButton,
|
|
162
|
+
/* @__PURE__ */ jsxs("span", {
|
|
163
|
+
...stylex.props(styles.simplePager),
|
|
164
|
+
title: title(`${displayCurrent}/${pageCount}`),
|
|
165
|
+
children: [
|
|
166
|
+
simpleConfig.readOnly ? displayCurrent : /* @__PURE__ */ jsx(Input_default, {
|
|
167
|
+
"aria-label": "Current page",
|
|
168
|
+
className: jumperInputClassName,
|
|
169
|
+
disabled,
|
|
170
|
+
size: size === "small" ? "small" : "middle",
|
|
171
|
+
value: simpleValue ?? String(displayCurrent),
|
|
172
|
+
onBlur: commitSimple,
|
|
173
|
+
onChange: (event) => setSimpleValue(event.currentTarget.value),
|
|
174
|
+
onKeyUp: (event) => {
|
|
175
|
+
if (event.key === "Enter") commitSimple();
|
|
176
|
+
}
|
|
177
|
+
}),
|
|
178
|
+
/* @__PURE__ */ jsx("span", {
|
|
179
|
+
...stylex.props(styles.simpleSlash),
|
|
180
|
+
children: "/"
|
|
181
|
+
}),
|
|
182
|
+
pageCount
|
|
183
|
+
]
|
|
184
|
+
}),
|
|
185
|
+
nextButton
|
|
186
|
+
] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
187
|
+
prevButton,
|
|
188
|
+
items.map((item) => typeof item === "number" ? /* @__PURE__ */ jsx("button", {
|
|
189
|
+
"aria-current": item === displayCurrent ? "page" : void 0,
|
|
190
|
+
disabled,
|
|
191
|
+
...styleProps([styles.button, size === "small" && styles.small], classNames?.item, customStyles?.item),
|
|
192
|
+
title: title(String(item)),
|
|
193
|
+
type: "button",
|
|
194
|
+
onClick: () => goTo(item),
|
|
195
|
+
children: render(item, "page", item)
|
|
196
|
+
}, item) : /* @__PURE__ */ createElement("button", {
|
|
197
|
+
...stylex.props(paginationJumpMarker, styles.ellipsis, size === "small" && styles.smallEllipsis),
|
|
198
|
+
"data-pagination-jump": item === "ellipsis-prev" ? "prev" : "next",
|
|
199
|
+
disabled,
|
|
200
|
+
key: item,
|
|
201
|
+
type: "button",
|
|
202
|
+
title: title(item === "ellipsis-prev" ? `Previous ${jumpStep} Pages` : `Next ${jumpStep} Pages`),
|
|
203
|
+
onClick: () => goTo(item === "ellipsis-prev" ? Math.max(1, displayCurrent - jumpStep) : Math.min(pageCount, displayCurrent + jumpStep))
|
|
204
|
+
}, item === "ellipsis-prev" ? render(Math.max(1, displayCurrent - jumpStep), "jump-prev", /* @__PURE__ */ jsx(JumpIcon, { direction: "prev" })) : render(Math.min(pageCount, displayCurrent + jumpStep), "jump-next", /* @__PURE__ */ jsx(JumpIcon, { direction: "next" })))),
|
|
205
|
+
nextButton
|
|
206
|
+
] }),
|
|
207
|
+
!simpleConfig && mergedShowSizeChanger && /* @__PURE__ */ jsx(SizeChanger, {
|
|
103
208
|
disabled,
|
|
104
209
|
size: size === "small" ? "small" : "middle",
|
|
105
|
-
|
|
106
|
-
flex: "none",
|
|
107
|
-
marginInlineStart: 8,
|
|
108
|
-
width: "auto"
|
|
109
|
-
},
|
|
210
|
+
...sizeChangerProps,
|
|
110
211
|
value: String(mergedPageSize),
|
|
111
212
|
options: pageSizeOptions.map((option) => ({
|
|
112
213
|
label: `${option} / page`,
|
|
113
214
|
value: String(option)
|
|
114
215
|
})),
|
|
115
|
-
|
|
216
|
+
style: {
|
|
217
|
+
flex: "none",
|
|
218
|
+
marginInlineStart: 8,
|
|
219
|
+
width: "auto",
|
|
220
|
+
...sizeChangerProps?.style
|
|
221
|
+
},
|
|
222
|
+
onChange: (value) => {
|
|
223
|
+
handlePageSizeChange(value);
|
|
224
|
+
sizeChangerProps?.onChange?.(value);
|
|
225
|
+
}
|
|
226
|
+
}),
|
|
227
|
+
!simpleConfig && showQuickJumper && /* @__PURE__ */ jsxs("span", {
|
|
228
|
+
...stylex.props(styles.jumper),
|
|
229
|
+
children: [
|
|
230
|
+
"Go to",
|
|
231
|
+
/* @__PURE__ */ jsx(Input_default, {
|
|
232
|
+
"aria-label": "Go to page",
|
|
233
|
+
className: jumperInputClassName,
|
|
234
|
+
disabled,
|
|
235
|
+
size: size === "small" ? "small" : "middle",
|
|
236
|
+
value: jumperValue,
|
|
237
|
+
onChange: (event) => setJumperValue(event.currentTarget.value),
|
|
238
|
+
onBlur: () => {
|
|
239
|
+
if (!goButton) jump();
|
|
240
|
+
},
|
|
241
|
+
onKeyUp: (event) => {
|
|
242
|
+
if (event.key === "Enter") jump();
|
|
243
|
+
}
|
|
244
|
+
}),
|
|
245
|
+
goButton === true || typeof goButton === "string" ? /* @__PURE__ */ jsx("button", {
|
|
246
|
+
...buttonProps,
|
|
247
|
+
disabled,
|
|
248
|
+
type: "button",
|
|
249
|
+
onClick: jump,
|
|
250
|
+
children: goButton === true ? "Go" : goButton
|
|
251
|
+
}) : goButton ? /* @__PURE__ */ jsx("span", {
|
|
252
|
+
onClick: jump,
|
|
253
|
+
children: goButton
|
|
254
|
+
}) : "Page"
|
|
255
|
+
]
|
|
116
256
|
})
|
|
117
257
|
]
|
|
118
258
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.mjs","names":[],"sources":["../../src/Pagination/Pagination.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { memo, useEffect, useRef, useState } from 'react';\n\nimport { useControlledState } from '@/hooks/useControlledState';\nimport { useEventCallback } from '@/hooks/useEventCallback';\nimport Select from '@/Select';\nimport { styleProps } from '@/styles/stylex/props';\n\nimport { clampPage, getPageCount, getPaginationItems } from './helpers';\nimport { styles } from './style';\nimport type { PaginationProps } from './type';\n\nconst Pagination = memo<PaginationProps>(\n ({\n className,\n current,\n defaultCurrent = 1,\n defaultPageSize = 10,\n disabled,\n hideOnSinglePage,\n onChange,\n onPageSizeChange,\n pageSize,\n pageSizeOptions = [10, 20, 50, 100],\n ref,\n showSizeChanger = false,\n showTotal,\n size = 'middle',\n style,\n total,\n ...rest\n }) => {\n const [mergedPageSize, setMergedPageSize] = useControlledState(defaultPageSize, {\n value: pageSize,\n });\n const pageCount = getPageCount(total, mergedPageSize);\n const [mergedCurrent, setMergedCurrent] = useControlledState(defaultCurrent, {\n value: current,\n });\n const onChangeStable = useEventCallback((nextCurrent: number, nextPageSize: number) => {\n onChange?.(nextCurrent, nextPageSize);\n });\n\n const pendingNotifyRef = useRef<{ current: number; pageSize: number } | null>(null);\n const [prevPageCount, setPrevPageCount] = useState(pageCount);\n\n if (pageCount !== prevPageCount) {\n setPrevPageCount(pageCount);\n\n if (mergedCurrent > pageCount && pageCount >= 1) {\n setMergedCurrent(pageCount);\n pendingNotifyRef.current = { current: pageCount, pageSize: mergedPageSize };\n }\n }\n\n useEffect(() => {\n if (!pendingNotifyRef.current) return;\n\n const { current: nextCurrent, pageSize: nextPageSize } = pendingNotifyRef.current;\n pendingNotifyRef.current = null;\n onChangeStable(nextCurrent, nextPageSize);\n });\n\n const displayCurrent = clampPage(mergedCurrent, pageCount);\n\n if (hideOnSinglePage && pageCount <= 1) return null;\n\n const commitCurrent = (nextCurrent: number, nextPageSize: number) => {\n setMergedCurrent(nextCurrent);\n onChange?.(nextCurrent, nextPageSize);\n };\n\n const goTo = (page: number) => {\n commitCurrent(clampPage(page, pageCount), mergedPageSize);\n };\n\n const handlePageSizeChange = (value: string) => {\n const nextSize = Number(value);\n const nextPageCount = getPageCount(total, nextSize);\n const nextCurrent = clampPage(displayCurrent, nextPageCount);\n\n setMergedPageSize(nextSize);\n commitCurrent(nextCurrent, nextSize);\n onPageSizeChange?.(nextCurrent, nextSize);\n };\n\n const buttonProps = stylex.props(styles.button, size === 'small' && styles.small);\n const items = getPaginationItems(displayCurrent, pageCount);\n const rangeStart = total === 0 ? 0 : (displayCurrent - 1) * mergedPageSize + 1;\n const rangeEnd = Math.min(displayCurrent * mergedPageSize, total);\n\n return (\n <nav\n aria-label=\"Pagination\"\n ref={ref}\n role=\"navigation\"\n {...styleProps(styles.root, className, style)}\n {...rest}\n >\n {showTotal && (\n <span {...stylex.props(styles.total)}>{showTotal(total, [rangeStart, rangeEnd])}</span>\n )}\n <button\n aria-label=\"Previous page\"\n {...buttonProps}\n disabled={disabled || displayCurrent <= 1}\n type=\"button\"\n onClick={() => goTo(displayCurrent - 1)}\n >\n <ChevronLeft size={size === 'small' ? 14 : 16} />\n </button>\n {items.map((item) =>\n typeof item === 'number' ? (\n <button\n aria-current={item === displayCurrent ? 'page' : undefined}\n {...buttonProps}\n disabled={disabled}\n key={item}\n type=\"button\"\n onClick={() => goTo(item)}\n >\n {item}\n </button>\n ) : (\n <span\n key={item}\n {...stylex.props(styles.ellipsis, size === 'small' && styles.smallEllipsis)}\n >\n ···\n </span>\n ),\n )}\n <button\n aria-label=\"Next page\"\n {...buttonProps}\n disabled={disabled || displayCurrent >= pageCount}\n type=\"button\"\n onClick={() => goTo(displayCurrent + 1)}\n >\n <ChevronRight size={size === 'small' ? 14 : 16} />\n </button>\n {showSizeChanger && (\n <Select\n disabled={disabled}\n size={size === 'small' ? 'small' : 'middle'}\n style={{ flex: 'none', marginInlineStart: 8, width: 'auto' }}\n value={String(mergedPageSize)}\n options={pageSizeOptions.map((option) => ({\n label: `${option} / page`,\n value: String(option),\n }))}\n onChange={handlePageSizeChange}\n />\n )}\n </nav>\n );\n },\n);\n\nPagination.displayName = 'Pagination';\n\nexport default Pagination;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.mjs","names":["clsx","Input"],"sources":["../../src/Pagination/Pagination.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\nimport {\n type KeyboardEvent,\n memo,\n type ReactNode,\n useEffect,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\n\nimport { useControlledState } from '@/hooks/useControlledState';\nimport { useEventCallback } from '@/hooks/useEventCallback';\nimport { Input } from '@/Input';\nimport Select from '@/Select';\nimport { styleProps } from '@/styles/stylex/props';\n\nimport { clampPage, getPageCount, getPaginationItems } from './helpers';\nimport { paginationJumpMarker } from './marker.stylex';\nimport { styles } from './style';\nimport type { PaginationItemType, PaginationProps } from './type';\n\nconst XS_QUERY = '(max-width: 575px)';\n\n/** One-line dots that swap to a double chevron on hover / focus of the jump item. */\nconst JumpIcon = ({ direction }: { direction: 'next' | 'prev' }) => {\n const Icon = direction === 'prev' ? ChevronsLeft : ChevronsRight;\n return (\n <>\n <span aria-hidden {...stylex.props(styles.ellipsisDots)}>\n •••\n </span>\n <Icon aria-hidden size={14} {...stylex.props(styles.ellipsisIcon)} />\n </>\n );\n};\n\nconst canMatchMedia = () =>\n typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n\nconst subscribeXs = (onChange: () => void) => {\n if (!canMatchMedia()) return () => {};\n const query = window.matchMedia(XS_QUERY);\n query.addEventListener?.('change', onChange);\n return () => query.removeEventListener?.('change', onChange);\n};\nconst getXs = () => canMatchMedia() && window.matchMedia(XS_QUERY).matches;\nconst getServerXs = () => false;\n\n/** Whether the viewport is antd's `xs` breakpoint; only tracked when `enabled`. */\nconst useIsXs = (enabled: boolean) => {\n const isXs = useSyncExternalStore(subscribeXs, getXs, getServerXs);\n return enabled && isXs;\n};\n\nconst Pagination = memo<PaginationProps>(\n ({\n align,\n className,\n classNames,\n components,\n current,\n defaultCurrent = 1,\n defaultPageSize = 10,\n disabled,\n hideOnSinglePage,\n itemRender,\n onChange,\n onPageSizeChange,\n pageSize,\n pageSizeOptions = [10, 20, 50, 100],\n ref,\n responsive,\n showLessItems,\n showQuickJumper,\n showSizeChanger,\n showTitle = true,\n showTotal,\n simple,\n size: sizeProp,\n style,\n styles: customStyles,\n total,\n totalBoundaryShowSizeChanger = 50,\n ...rest\n }) => {\n const [mergedPageSize, setMergedPageSize] = useControlledState(defaultPageSize, {\n value: pageSize,\n });\n const pageCount = getPageCount(total, mergedPageSize);\n const [mergedCurrent, setMergedCurrent] = useControlledState(defaultCurrent, {\n value: current,\n });\n const onChangeStable = useEventCallback((nextCurrent: number, nextPageSize: number) => {\n onChange?.(nextCurrent, nextPageSize);\n });\n\n const isXs = useIsXs(!!responsive && !sizeProp);\n const size = sizeProp ?? (isXs ? 'small' : 'middle');\n\n const [jumperValue, setJumperValue] = useState('');\n const [simpleValue, setSimpleValue] = useState<string | null>(null);\n const pendingNotifyRef = useRef<{ current: number; pageSize: number } | null>(null);\n const [prevPageCount, setPrevPageCount] = useState(pageCount);\n\n if (pageCount !== prevPageCount) {\n setPrevPageCount(pageCount);\n\n if (mergedCurrent > pageCount && pageCount >= 1) {\n setMergedCurrent(pageCount);\n pendingNotifyRef.current = { current: pageCount, pageSize: mergedPageSize };\n }\n }\n\n useEffect(() => {\n if (!pendingNotifyRef.current) return;\n\n const { current: nextCurrent, pageSize: nextPageSize } = pendingNotifyRef.current;\n pendingNotifyRef.current = null;\n onChangeStable(nextCurrent, nextPageSize);\n });\n\n const displayCurrent = clampPage(mergedCurrent, pageCount);\n\n if (hideOnSinglePage && pageCount <= 1) return null;\n\n const commitCurrent = (nextCurrent: number, nextPageSize: number) => {\n setMergedCurrent(nextCurrent);\n onChange?.(nextCurrent, nextPageSize);\n };\n\n const goTo = (page: number) => {\n commitCurrent(clampPage(page, pageCount), mergedPageSize);\n };\n\n const handlePageSizeChange = (value: string) => {\n const nextSize = Number(value);\n const nextPageCount = getPageCount(total, nextSize);\n const nextCurrent = clampPage(displayCurrent, nextPageCount);\n\n setMergedPageSize(nextSize);\n commitCurrent(nextCurrent, nextSize);\n onPageSizeChange?.(nextCurrent, nextSize);\n };\n\n // Like rc-pagination: invalid input is ignored, a valid page is clamped, the input is cleared.\n const jump = () => {\n const page = Number(jumperValue);\n setJumperValue('');\n if (jumperValue.trim() === '' || !Number.isInteger(page)) return;\n const nextCurrent = clampPage(page, pageCount);\n if (nextCurrent !== displayCurrent) goTo(nextCurrent);\n };\n const goButton = typeof showQuickJumper === 'object' ? showQuickJumper.goButton : undefined;\n const mergedShowSizeChanger = showSizeChanger ?? total > totalBoundaryShowSizeChanger;\n const sizeChangerProps = typeof showSizeChanger === 'object' ? showSizeChanger : undefined;\n const SizeChanger = components?.sizeChanger ?? Select;\n\n const jumpStep = showLessItems ? 3 : 5;\n const items = getPaginationItems(displayCurrent, pageCount, showLessItems ? 1 : 2);\n const render = (page: number, type: PaginationItemType, element: ReactNode) =>\n itemRender ? itemRender(page, type, element) : element;\n const title = (text: string) => (showTitle ? text : undefined);\n const iconSize = size === 'small' ? 14 : 16;\n const buttonProps = stylex.props(styles.button, size === 'small' && styles.small);\n const jumperInputClassName = stylex.props(styles.jumperInput).className;\n\n const prevButton = (\n <button\n aria-label=\"Previous page\"\n {...buttonProps}\n disabled={disabled || displayCurrent <= 1}\n title={title('Previous Page')}\n type=\"button\"\n onClick={() => goTo(displayCurrent - 1)}\n >\n {render(Math.max(1, displayCurrent - 1), 'prev', <ChevronLeft size={iconSize} />)}\n </button>\n );\n const nextButton = (\n <button\n aria-label=\"Next page\"\n {...buttonProps}\n disabled={disabled || displayCurrent >= pageCount}\n title={title('Next Page')}\n type=\"button\"\n onClick={() => goTo(displayCurrent + 1)}\n >\n {render(Math.min(pageCount, displayCurrent + 1), 'next', <ChevronRight size={iconSize} />)}\n </button>\n );\n\n const simpleConfig = simple ? (typeof simple === 'object' ? simple : {}) : null;\n const commitSimple = () => {\n if (simpleValue === null) return;\n const page = Number(simpleValue);\n setSimpleValue(null);\n if (simpleValue.trim() === '' || !Number.isInteger(page)) return;\n const nextCurrent = clampPage(page, pageCount);\n if (nextCurrent !== displayCurrent) goTo(nextCurrent);\n };\n const rangeStart = total === 0 ? 0 : (displayCurrent - 1) * mergedPageSize + 1;\n const rangeEnd = Math.min(displayCurrent * mergedPageSize, total);\n\n return (\n <nav\n aria-label=\"Pagination\"\n ref={ref}\n role=\"navigation\"\n {...styleProps(\n [styles.root, align && styles.aligned, align && styles[align]],\n clsx(classNames?.root, className),\n { ...customStyles?.root, ...style },\n )}\n {...rest}\n >\n {showTotal && (\n <span {...stylex.props(styles.total)}>{showTotal(total, [rangeStart, rangeEnd])}</span>\n )}\n {simpleConfig ? (\n <>\n {prevButton}\n <span\n {...stylex.props(styles.simplePager)}\n title={title(`${displayCurrent}/${pageCount}`)}\n >\n {simpleConfig.readOnly ? (\n displayCurrent\n ) : (\n <Input\n aria-label=\"Current page\"\n className={jumperInputClassName}\n disabled={disabled}\n size={size === 'small' ? 'small' : 'middle'}\n value={simpleValue ?? String(displayCurrent)}\n onBlur={commitSimple}\n onChange={(event) => setSimpleValue(event.currentTarget.value)}\n onKeyUp={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') commitSimple();\n }}\n />\n )}\n <span {...stylex.props(styles.simpleSlash)}>/</span>\n {pageCount}\n </span>\n {nextButton}\n </>\n ) : (\n <>\n {prevButton}\n {items.map((item) =>\n typeof item === 'number' ? (\n <button\n aria-current={item === displayCurrent ? 'page' : undefined}\n disabled={disabled}\n key={item}\n {...styleProps(\n [styles.button, size === 'small' && styles.small],\n classNames?.item,\n customStyles?.item,\n )}\n title={title(String(item))}\n type=\"button\"\n onClick={() => goTo(item)}\n >\n {render(item, 'page', item)}\n </button>\n ) : (\n <button\n {...stylex.props(\n paginationJumpMarker,\n styles.ellipsis,\n size === 'small' && styles.smallEllipsis,\n )}\n data-pagination-jump={item === 'ellipsis-prev' ? 'prev' : 'next'}\n disabled={disabled}\n key={item}\n type=\"button\"\n title={title(\n item === 'ellipsis-prev'\n ? `Previous ${jumpStep} Pages`\n : `Next ${jumpStep} Pages`,\n )}\n onClick={() =>\n goTo(\n item === 'ellipsis-prev'\n ? Math.max(1, displayCurrent - jumpStep)\n : Math.min(pageCount, displayCurrent + jumpStep),\n )\n }\n >\n {item === 'ellipsis-prev'\n ? render(\n Math.max(1, displayCurrent - jumpStep),\n 'jump-prev',\n <JumpIcon direction=\"prev\" />,\n )\n : render(\n Math.min(pageCount, displayCurrent + jumpStep),\n 'jump-next',\n <JumpIcon direction=\"next\" />,\n )}\n </button>\n ),\n )}\n {nextButton}\n </>\n )}\n {!simpleConfig && mergedShowSizeChanger && (\n <SizeChanger\n disabled={disabled}\n size={size === 'small' ? 'small' : 'middle'}\n {...sizeChangerProps}\n value={String(mergedPageSize)}\n options={pageSizeOptions.map((option) => ({\n label: `${option} / page`,\n value: String(option),\n }))}\n style={{\n flex: 'none',\n marginInlineStart: 8,\n width: 'auto',\n ...sizeChangerProps?.style,\n }}\n onChange={(value: string) => {\n handlePageSizeChange(value);\n sizeChangerProps?.onChange?.(value);\n }}\n />\n )}\n {!simpleConfig && showQuickJumper && (\n <span {...stylex.props(styles.jumper)}>\n Go to\n <Input\n aria-label=\"Go to page\"\n className={jumperInputClassName}\n disabled={disabled}\n size={size === 'small' ? 'small' : 'middle'}\n value={jumperValue}\n onChange={(event) => setJumperValue(event.currentTarget.value)}\n onBlur={() => {\n if (!goButton) jump();\n }}\n onKeyUp={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') jump();\n }}\n />\n {goButton === true || typeof goButton === 'string' ? (\n <button {...buttonProps} disabled={disabled} type=\"button\" onClick={jump}>\n {goButton === true ? 'Go' : goButton}\n </button>\n ) : goButton ? (\n <span onClick={jump}>{goButton}</span>\n ) : (\n 'Page'\n )}\n </span>\n )}\n </nav>\n );\n },\n);\n\nPagination.displayName = 'Pagination';\n\nexport default Pagination;\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,WAAW;;AAGjB,MAAM,YAAY,EAChB,gBAGI;CACJ,MAAM,OAAO,cAAc,SAAS,eAAe;CACnD,OAAO,qBAAA,YAAA,EAAA,UAAA,CACH,oBAAC,QAAD;EAAM,eAAA;EAAY,GAAI,OAAO,MAAM,OAAO,YAAY;EAAG,UAAA;CAEnD,CAAA,GACN,oBAAC,MAAD;EAAM,eAAA;EAAY,MAAM;EAAI,GAAI,OAAO,MAAM,OAAO,YAAY;CAAI,CAAA,CACpE,EAAA,CAAA;AACN;AACA,MAAM,sBAAsB,OAAO,WAAW,eAAe,OAAO,OAAO,eAAe;AAC1F,MAAM,eAAe,aAAyB;CAC5C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;CACpC,MAAM,QAAQ,OAAO,WAAW,QAAQ;CACxC,MAAM,mBAAmB,UAAU,QAAQ;CAC3C,aAAa,MAAM,sBAAsB,UAAU,QAAQ;AAC7D;AACA,MAAM,cAAc,cAAc,KAAK,OAAO,WAAW,QAAQ,CAAC,CAAC;AACnE,MAAM,oBAAoB;;AAG1B,MAAM,WAAW,YAAqB;CACpC,MAAM,OAAO,qBAAqB,aAAa,OAAO,WAAW;CACjE,OAAO,WAAW;AACpB;AACA,MAAM,aAAa,MAAuB,EACxC,OACA,WACA,YACA,YACA,SACA,iBAAiB,GACjB,kBAAkB,IAClB,UACA,kBACA,YACA,UACA,kBACA,UACA,kBAAkB;CAAC;CAAI;CAAI;CAAI;AAAG,GAClC,KACA,YACA,eACA,iBACA,iBACA,YAAY,MACZ,WACA,QACA,MAAM,UACN,OACA,QAAQ,cACR,OACA,+BAA+B,IAC/B,GAAG,WACC;CACJ,MAAM,CAAC,gBAAgB,qBAAqB,mBAAmB,iBAAiB,EAC9E,OAAO,SACT,CAAC;CACD,MAAM,YAAY,aAAa,OAAO,cAAc;CACpD,MAAM,CAAC,eAAe,oBAAoB,mBAAmB,gBAAgB,EAC3E,OAAO,QACT,CAAC;CACD,MAAM,iBAAiB,kBAAkB,aAAqB,iBAAyB;EACrF,WAAW,aAAa,YAAY;CACtC,CAAC;CACD,MAAM,OAAO,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAQ;CAC9C,MAAM,OAAO,aAAa,OAAO,UAAU;CAC3C,MAAM,CAAC,aAAa,kBAAkB,SAAS,EAAE;CACjD,MAAM,CAAC,aAAa,kBAAkB,SAAwB,IAAI;CAClE,MAAM,mBAAmB,OAGf,IAAI;CACd,MAAM,CAAC,eAAe,oBAAoB,SAAS,SAAS;CAC5D,IAAI,cAAc,eAAe;EAC/B,iBAAiB,SAAS;EAC1B,IAAI,gBAAgB,aAAa,aAAa,GAAG;GAC/C,iBAAiB,SAAS;GAC1B,iBAAiB,UAAU;IACzB,SAAS;IACT,UAAU;GACZ;EACF;CACF;CACA,gBAAgB;EACd,IAAI,CAAC,iBAAiB,SAAS;EAC/B,MAAM,EACJ,SAAS,aACT,UAAU,iBACR,iBAAiB;EACrB,iBAAiB,UAAU;EAC3B,eAAe,aAAa,YAAY;CAC1C,CAAC;CACD,MAAM,iBAAiB,UAAU,eAAe,SAAS;CACzD,IAAI,oBAAoB,aAAa,GAAG,OAAO;CAC/C,MAAM,iBAAiB,aAAqB,iBAAyB;EACnE,iBAAiB,WAAW;EAC5B,WAAW,aAAa,YAAY;CACtC;CACA,MAAM,QAAQ,SAAiB;EAC7B,cAAc,UAAU,MAAM,SAAS,GAAG,cAAc;CAC1D;CACA,MAAM,wBAAwB,UAAkB;EAC9C,MAAM,WAAW,OAAO,KAAK;EAC7B,MAAM,gBAAgB,aAAa,OAAO,QAAQ;EAClD,MAAM,cAAc,UAAU,gBAAgB,aAAa;EAC3D,kBAAkB,QAAQ;EAC1B,cAAc,aAAa,QAAQ;EACnC,mBAAmB,aAAa,QAAQ;CAC1C;CAGA,MAAM,aAAa;EACjB,MAAM,OAAO,OAAO,WAAW;EAC/B,eAAe,EAAE;EACjB,IAAI,YAAY,KAAK,MAAM,MAAM,CAAC,OAAO,UAAU,IAAI,GAAG;EAC1D,MAAM,cAAc,UAAU,MAAM,SAAS;EAC7C,IAAI,gBAAgB,gBAAgB,KAAK,WAAW;CACtD;CACA,MAAM,WAAW,OAAO,oBAAoB,WAAW,gBAAgB,WAAW,KAAA;CAClF,MAAM,wBAAwB,mBAAmB,QAAQ;CACzD,MAAM,mBAAmB,OAAO,oBAAoB,WAAW,kBAAkB,KAAA;CACjF,MAAM,cAAc,YAAY,eAAe;CAC/C,MAAM,WAAW,gBAAgB,IAAI;CACrC,MAAM,QAAQ,mBAAmB,gBAAgB,WAAW,gBAAgB,IAAI,CAAC;CACjF,MAAM,UAAU,MAAc,MAA0B,YAAuB,aAAa,WAAW,MAAM,MAAM,OAAO,IAAI;CAC9H,MAAM,SAAS,SAAiB,YAAY,OAAO,KAAA;CACnD,MAAM,WAAW,SAAS,UAAU,KAAK;CACzC,MAAM,cAAc,OAAO,MAAM,OAAO,QAAQ,SAAS,WAAW,OAAO,KAAK;CAChF,MAAM,uBAAuB,OAAO,MAAM,OAAO,WAAW,CAAC,CAAC;CAC9D,MAAM,aAAa,oBAAC,UAAD;EAAQ,cAAW;EAAgB,GAAI;EAAa,UAAU,YAAY,kBAAkB;EAAG,OAAO,MAAM,eAAe;EAAG,MAAK;EAAS,eAAe,KAAK,iBAAiB,CAAC;EAC9L,UAAA,OAAO,KAAK,IAAI,GAAG,iBAAiB,CAAC,GAAG,QAAQ,oBAAC,aAAD,EAAa,MAAM,SAAW,CAAA,CAAC;CAC1E,CAAA;CACZ,MAAM,aAAa,oBAAC,UAAD;EAAQ,cAAW;EAAY,GAAI;EAAa,UAAU,YAAY,kBAAkB;EAAW,OAAO,MAAM,WAAW;EAAG,MAAK;EAAS,eAAe,KAAK,iBAAiB,CAAC;EAC9L,UAAA,OAAO,KAAK,IAAI,WAAW,iBAAiB,CAAC,GAAG,QAAQ,oBAAC,cAAD,EAAc,MAAM,SAAW,CAAA,CAAC;CACnF,CAAA;CACZ,MAAM,eAAe,SAAS,OAAO,WAAW,WAAW,SAAS,CAAC,IAAI;CACzE,MAAM,qBAAqB;EACzB,IAAI,gBAAgB,MAAM;EAC1B,MAAM,OAAO,OAAO,WAAW;EAC/B,eAAe,IAAI;EACnB,IAAI,YAAY,KAAK,MAAM,MAAM,CAAC,OAAO,UAAU,IAAI,GAAG;EAC1D,MAAM,cAAc,UAAU,MAAM,SAAS;EAC7C,IAAI,gBAAgB,gBAAgB,KAAK,WAAW;CACtD;CACA,MAAM,aAAa,UAAU,IAAI,KAAK,iBAAiB,KAAK,iBAAiB;CAC7E,MAAM,WAAW,KAAK,IAAI,iBAAiB,gBAAgB,KAAK;CAChE,OAAO,qBAAC,OAAD;EAAK,cAAW;EAAkB;EAAK,MAAK;EAAa,GAAI,WAAW;GAAC,OAAO;GAAM,SAAS,OAAO;GAAS,SAAS,OAAO;EAAM,GAAGA,OAAK,YAAY,MAAM,SAAS,GAAG;GAChL,GAAG,cAAc;GACjB,GAAG;EACL,CAAC;EAAG,GAAI;EAHD,UAAA;GAIA,aAAa,oBAAC,QAAD;IAAM,GAAI,OAAO,MAAM,OAAO,KAAK;IAAI,UAAA,UAAU,OAAO,CAAC,YAAY,QAAQ,CAAC;GAAQ,CAAA;GACnG,eAAe,qBAAA,YAAA,EAAA,UAAA;IACX;IACD,qBAAC,QAAD;KAAM,GAAI,OAAO,MAAM,OAAO,WAAW;KAAG,OAAO,MAAM,GAAG,eAAe,GAAG,WAAW;KAAzF,UAAA;MACG,aAAa,WAAW,iBAAiB,oBAACC,eAAD;OAAO,cAAW;OAAe,WAAW;OAAgC;OAAU,MAAM,SAAS,UAAU,UAAU;OAAU,OAAO,eAAe,OAAO,cAAc;OAAG,QAAQ;OAAc,WAAU,UAAS,eAAe,MAAM,cAAc,KAAK;OAAG,UAAU,UAA2C;QACxW,IAAI,MAAM,QAAQ,SAAS,aAAa;OAC1C;MAAI,CAAA;MACE,oBAAC,QAAD;OAAM,GAAI,OAAO,MAAM,OAAO,WAAW;OAAG,UAAA;MAAO,CAAA;MAClD;KACG;;IACL;GACD,EAAA,CAAA,IAAI,qBAAA,YAAA,EAAA,UAAA;IACH;IACA,MAAM,KAAI,SAAQ,OAAO,SAAS,WAAW,oBAAC,UAAD;KAAQ,gBAAc,SAAS,iBAAiB,SAAS,KAAA;KAAqB;KAAqB,GAAI,WAAW,CAAC,OAAO,QAAQ,SAAS,WAAW,OAAO,KAAK,GAAG,YAAY,MAAM,cAAc,IAAI;KAAG,OAAO,MAAM,OAAO,IAAI,CAAC;KAAG,MAAK;KAAS,eAAe,KAAK,IAAI;KACrT,UAAA,OAAO,MAAM,QAAQ,IAAI;IACpB,GAF+H,IAE/H,IAAI,8BAAC,UAAD;KAAQ,GAAI,OAAO,MAAM,sBAAsB,OAAO,UAAU,SAAS,WAAW,OAAO,aAAa;KAAG,wBAAsB,SAAS,kBAAkB,SAAS;KAAkB;KAAU,KAAK;KAAM,MAAK;KAAS,OAAO,MAAM,SAAS,kBAAkB,YAAY,SAAS,UAAU,QAAQ,SAAS,OAAO;KAAG,eAAe,KAAK,SAAS,kBAAkB,KAAK,IAAI,GAAG,iBAAiB,QAAQ,IAAI,KAAK,IAAI,WAAW,iBAAiB,QAAQ,CAAC;IAEtc,GADL,SAAS,kBAAkB,OAAO,KAAK,IAAI,GAAG,iBAAiB,QAAQ,GAAG,aAAa,oBAAC,UAAD,EAAU,WAAU,OAAQ,CAAA,CAAC,IAAI,OAAO,KAAK,IAAI,WAAW,iBAAiB,QAAQ,GAAG,aAAa,oBAAC,UAAD,EAAU,WAAU,OAAQ,CAAA,CAAC,CACpN,CAAC;IACZ;GACD,EAAA,CAAA;GACH,CAAC,gBAAgB,yBAAyB,oBAAC,aAAD;IAAuB;IAAU,MAAM,SAAS,UAAU,UAAU;IAAU,GAAI;IAAkB,OAAO,OAAO,cAAc;IAAG,SAAS,gBAAgB,KAAI,YAAW;KACxN,OAAO,GAAG,OAAO;KACjB,OAAO,OAAO,MAAM;IACtB,EAAE;IAAG,OAAO;KACV,MAAM;KACN,mBAAmB;KACnB,OAAO;KACP,GAAG,kBAAkB;IACvB;IAAG,WAAW,UAAkB;KAC9B,qBAAqB,KAAK;KAC1B,kBAAkB,WAAW,KAAK;IACpC;GAAI,CAAA;GACC,CAAC,gBAAgB,mBAAmB,qBAAC,QAAD;IAAM,GAAI,OAAO,MAAM,OAAO,MAAM;IAApC,UAAA;KAAuC;KAExE,oBAACA,eAAD;MAAO,cAAW;MAAa,WAAW;MAAgC;MAAU,MAAM,SAAS,UAAU,UAAU;MAAU,OAAO;MAAa,WAAU,UAAS,eAAe,MAAM,cAAc,KAAK;MAAG,cAAc;OACrO,IAAI,CAAC,UAAU,KAAK;MACtB;MAAG,UAAU,UAA2C;OACtD,IAAI,MAAM,QAAQ,SAAS,KAAK;MAClC;KAAI,CAAA;KACG,aAAa,QAAQ,OAAO,aAAa,WAAW,oBAAC,UAAD;MAAQ,GAAI;MAAuB;MAAU,MAAK;MAAS,SAAS;MACpH,UAAA,aAAa,OAAO,OAAO;KACtB,CAAA,IAAI,WAAW,oBAAC,QAAD;MAAM,SAAS;MAAO,UAAA;KAAe,CAAA,IAAI;IAC9D;;EACL;;AACX,CAAC;AACD,WAAW,cAAc"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
//#region src/Pagination/helpers.ts
|
|
2
2
|
const getPageCount = (total, pageSize) => Math.max(1, Math.ceil(total / pageSize));
|
|
3
3
|
const clampPage = (page, pageCount) => Math.min(Math.max(page, 1), pageCount);
|
|
4
|
-
const getPaginationItems = (current, pageCount) => {
|
|
4
|
+
const getPaginationItems = (current, pageCount, buffer = 2) => {
|
|
5
5
|
if (pageCount <= 1) return [1];
|
|
6
6
|
const items = [1];
|
|
7
|
-
const start = Math.max(2, current -
|
|
8
|
-
const end = Math.min(pageCount - 1, current +
|
|
7
|
+
const start = Math.max(2, current - buffer);
|
|
8
|
+
const end = Math.min(pageCount - 1, current + buffer);
|
|
9
9
|
if (start > 2) items.push("ellipsis-prev");
|
|
10
10
|
for (let page = start; page <= end; page += 1) items.push(page);
|
|
11
11
|
if (end < pageCount - 1) items.push("ellipsis-next");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.mjs","names":[],"sources":["../../src/Pagination/helpers.ts"],"sourcesContent":["export type PaginationItem = number | 'ellipsis-prev' | 'ellipsis-next';\n\nexport const getPageCount = (total: number, pageSize: number) =>\n Math.max(1, Math.ceil(total / pageSize));\n\nexport const clampPage = (page: number, pageCount: number) =>\n Math.min(Math.max(page, 1), pageCount);\n\nexport const getPaginationItems = (current: number
|
|
1
|
+
{"version":3,"file":"helpers.mjs","names":[],"sources":["../../src/Pagination/helpers.ts"],"sourcesContent":["export type PaginationItem = number | 'ellipsis-prev' | 'ellipsis-next';\n\nexport const getPageCount = (total: number, pageSize: number) =>\n Math.max(1, Math.ceil(total / pageSize));\n\nexport const clampPage = (page: number, pageCount: number) =>\n Math.min(Math.max(page, 1), pageCount);\n\nexport const getPaginationItems = (\n current: number,\n pageCount: number,\n buffer = 2,\n): PaginationItem[] => {\n if (pageCount <= 1) return [1];\n\n const items: PaginationItem[] = [1];\n const start = Math.max(2, current - buffer);\n const end = Math.min(pageCount - 1, current + buffer);\n\n if (start > 2) items.push('ellipsis-prev');\n for (let page = start; page <= end; page += 1) items.push(page);\n if (end < pageCount - 1) items.push('ellipsis-next');\n\n items.push(pageCount);\n\n return items;\n};\n"],"mappings":";AAEA,MAAa,gBAAgB,OAAe,aAC1C,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,QAAQ,CAAC;AAEzC,MAAa,aAAa,MAAc,cACtC,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,GAAG,SAAS;AAEvC,MAAa,sBACX,SACA,WACA,SAAS,MACY;CACrB,IAAI,aAAa,GAAG,OAAO,CAAC,CAAC;CAE7B,MAAM,QAA0B,CAAC,CAAC;CAClC,MAAM,QAAQ,KAAK,IAAI,GAAG,UAAU,MAAM;CAC1C,MAAM,MAAM,KAAK,IAAI,YAAY,GAAG,UAAU,MAAM;CAEpD,IAAI,QAAQ,GAAG,MAAM,KAAK,eAAe;CACzC,KAAK,IAAI,OAAO,OAAO,QAAQ,KAAK,QAAQ,GAAG,MAAM,KAAK,IAAI;CAC9D,IAAI,MAAM,YAAY,GAAG,MAAM,KAAK,eAAe;CAEnD,MAAM,KAAK,SAAS;CAEpB,OAAO;AACT"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { PaginationProps, PaginationSize } from "./type.mjs";
|
|
1
|
+
import { PaginationAlign, PaginationItemType, PaginationProps, PaginationSemanticName, PaginationSize, PaginationSizeChangerProps } from "./type.mjs";
|
|
2
2
|
import Pagination from "./Pagination.mjs";
|
|
3
|
-
export { type PaginationProps, type PaginationSize, Pagination as default };
|
|
3
|
+
export { type PaginationAlign, type PaginationItemType, type PaginationProps, type PaginationSemanticName, type PaginationSize, type PaginationSizeChangerProps, Pagination as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marker.stylex.mjs","names":[],"sources":["../../src/Pagination/marker.stylex.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\n\nexport const paginationJumpMarker = stylex.defineMarker();\n"],"mappings":";AACA,MAAa,uBAAuB;CAClC,WAAW;CACX,OAAO;AACT"}
|
package/es/Pagination/style.mjs
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
//#region src/Pagination/style.ts
|
|
2
2
|
const styles = {
|
|
3
|
+
aligned: {
|
|
4
|
+
k1xSpc: "lb78zum5",
|
|
5
|
+
kzqmXN: "lbh8yej3",
|
|
6
|
+
$$css: true
|
|
7
|
+
},
|
|
3
8
|
button: {
|
|
4
9
|
kVAM5u: "lb181nr7w",
|
|
5
10
|
kaIpWk: "lb1sbi92r",
|
|
@@ -20,13 +25,60 @@ const styles = {
|
|
|
20
25
|
k7Eaqz: "lb1264ykn",
|
|
21
26
|
$$css: true
|
|
22
27
|
},
|
|
28
|
+
center: {
|
|
29
|
+
kjj79g: "lbl56j7k",
|
|
30
|
+
$$css: true
|
|
31
|
+
},
|
|
23
32
|
ellipsis: {
|
|
33
|
+
kVVagm: "lbln7xf2",
|
|
34
|
+
kmVPX3: "lb1717udv",
|
|
35
|
+
kVAM5u: "lb181nr7w",
|
|
36
|
+
kaIpWk: "lb1sbi92r",
|
|
37
|
+
ksu8eU: "lbng3xce",
|
|
38
|
+
kMzoRj: "lbfn42iu",
|
|
39
|
+
kUk6DE: "lb1okw0bk",
|
|
40
|
+
kgQiWS: "lb1ku5rj1",
|
|
41
|
+
kWkggS: "lbjbqb8w",
|
|
42
|
+
kMwMTN: "lbybvley lb1q0do8j lb8qk002",
|
|
43
|
+
kkrTdU: "lb1ypdohk lbtgyt42",
|
|
44
|
+
k1xSpc: "lbwz0xwf",
|
|
45
|
+
kLWn49: "lbo5v014",
|
|
46
|
+
khDVqt: "lbuxw1ft",
|
|
47
|
+
kZKoxP: "lb1fgtraw",
|
|
48
|
+
kzqmXN: "lbgd8bvy",
|
|
49
|
+
$$css: true
|
|
50
|
+
},
|
|
51
|
+
ellipsisDots: {
|
|
52
|
+
kBCFzs: "lbgkxs2y",
|
|
53
|
+
kbNqZ1: "lb1ms6mhf",
|
|
54
|
+
kGuDYH: "lbdzlmae",
|
|
55
|
+
kb6lSQ: "lbl5zsmt",
|
|
56
|
+
kTHuQy: "lb4gbaf0",
|
|
57
|
+
k33iCy: "lbnpuxes lb1qhljkn lb1f60oaf",
|
|
58
|
+
$$css: true
|
|
59
|
+
},
|
|
60
|
+
ellipsisIcon: {
|
|
61
|
+
kBCFzs: "lbgkxs2y",
|
|
62
|
+
kbNqZ1: "lb1ms6mhf",
|
|
63
|
+
k33iCy: "lblshs6z lbzq8171 lbowlo31",
|
|
64
|
+
$$css: true
|
|
65
|
+
},
|
|
66
|
+
end: {
|
|
67
|
+
kjj79g: "lb13a6bvl",
|
|
68
|
+
$$css: true
|
|
69
|
+
},
|
|
70
|
+
jumper: {
|
|
71
|
+
kOIVth: "lb17d4w8g",
|
|
24
72
|
kGNEyG: "lb6s0dn4",
|
|
25
|
-
kMwMTN: "
|
|
73
|
+
kMwMTN: "lbc77et8",
|
|
26
74
|
k1xSpc: "lb3nfvp2",
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
75
|
+
kGuDYH: "lb4z9k3i",
|
|
76
|
+
keTefX: "lb13fj5qh",
|
|
77
|
+
khDVqt: "lbuxw1ft",
|
|
78
|
+
$$css: true
|
|
79
|
+
},
|
|
80
|
+
jumperInput: {
|
|
81
|
+
kzqmXN: "lb1pju0fl",
|
|
30
82
|
$$css: true
|
|
31
83
|
},
|
|
32
84
|
root: {
|
|
@@ -36,6 +88,19 @@ const styles = {
|
|
|
36
88
|
kcqcaj: "lbss6m8b",
|
|
37
89
|
$$css: true
|
|
38
90
|
},
|
|
91
|
+
simplePager: {
|
|
92
|
+
kOIVth: "lb17d4w8g",
|
|
93
|
+
kGNEyG: "lb6s0dn4",
|
|
94
|
+
kMwMTN: "lbc77et8",
|
|
95
|
+
k1xSpc: "lb3nfvp2",
|
|
96
|
+
kGuDYH: "lb4z9k3i",
|
|
97
|
+
khDVqt: "lbuxw1ft",
|
|
98
|
+
$$css: true
|
|
99
|
+
},
|
|
100
|
+
simpleSlash: {
|
|
101
|
+
kMwMTN: "lbybvley",
|
|
102
|
+
$$css: true
|
|
103
|
+
},
|
|
39
104
|
small: {
|
|
40
105
|
kGuDYH: "lbfifm61",
|
|
41
106
|
kZKoxP: "lbxk0z11",
|
|
@@ -43,9 +108,14 @@ const styles = {
|
|
|
43
108
|
$$css: true
|
|
44
109
|
},
|
|
45
110
|
smallEllipsis: {
|
|
111
|
+
kZKoxP: "lbxk0z11",
|
|
46
112
|
kzqmXN: "lbvy4d1p",
|
|
47
113
|
$$css: true
|
|
48
114
|
},
|
|
115
|
+
start: {
|
|
116
|
+
kjj79g: "lb1nhvcw1",
|
|
117
|
+
$$css: true
|
|
118
|
+
},
|
|
49
119
|
total: {
|
|
50
120
|
kMwMTN: "lb53gy9q",
|
|
51
121
|
kGuDYH: "lbfifm61",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","names":[],"sources":["../../src/Pagination/style.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\n\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\n\nconst enabledHover = ':hover:not(:disabled)';\nconst currentAtRest = ':is([aria-current=\"page\"]):is(:disabled, :not(:hover))';\n\nexport const styles = stylex.create({\n button: {\n borderColor: 'currentcolor',\n borderRadius: cssVar.borderRadius,\n borderStyle: 'none',\n borderWidth: 'medium',\n paddingInline: 6,\n transition: 'background-color 0.15s',\n alignItems: 'center',\n backgroundColor: {\n [currentAtRest]: cssVar.colorFillSecondary,\n default: 'transparent',\n [enabledHover]: cssVar.colorFillTertiary,\n },\n color: {\n 'default': cssVar.colorTextSecondary,\n [enabledHover]: cssVar.colorText,\n ':disabled:not([aria-current=\"page\"])': cssVar.colorTextQuaternary,\n ':is([aria-current=\"page\"]):not(:hover:not(:disabled))': cssVar.colorText,\n },\n cursor: { 'default': 'pointer', ':disabled': 'default' },\n display: 'inline-flex',\n fontSize: 13,\n fontVariantNumeric: 'tabular-nums',\n fontWeight: { 'default': 500, ':is([aria-current=\"page\"])': 600 },\n justifyContent: 'center',\n height: 28,\n minWidth: 28,\n },\n ellipsis: {\n
|
|
1
|
+
{"version":3,"file":"style.mjs","names":[],"sources":["../../src/Pagination/style.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\n\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\n\nimport { paginationJumpMarker } from './marker.stylex';\n\nconst enabledHover = ':hover:not(:disabled)';\nconst currentAtRest = ':is([aria-current=\"page\"]):is(:disabled, :not(:hover))';\n\nexport const styles = stylex.create({\n aligned: {\n display: 'flex',\n width: '100%',\n },\n button: {\n borderColor: 'currentcolor',\n borderRadius: cssVar.borderRadius,\n borderStyle: 'none',\n borderWidth: 'medium',\n paddingInline: 6,\n transition: 'background-color 0.15s',\n alignItems: 'center',\n backgroundColor: {\n [currentAtRest]: cssVar.colorFillSecondary,\n default: 'transparent',\n [enabledHover]: cssVar.colorFillTertiary,\n },\n color: {\n 'default': cssVar.colorTextSecondary,\n [enabledHover]: cssVar.colorText,\n ':disabled:not([aria-current=\"page\"])': cssVar.colorTextQuaternary,\n ':is([aria-current=\"page\"]):not(:hover:not(:disabled))': cssVar.colorText,\n },\n cursor: { 'default': 'pointer', ':disabled': 'default' },\n display: 'inline-flex',\n fontSize: 13,\n fontVariantNumeric: 'tabular-nums',\n fontWeight: { 'default': 500, ':is([aria-current=\"page\"])': 600 },\n justifyContent: 'center',\n height: 28,\n minWidth: 28,\n },\n center: {\n justifyContent: 'center',\n },\n ellipsis: {\n font: 'inherit',\n padding: 0,\n borderColor: 'currentcolor',\n borderRadius: cssVar.borderRadius,\n borderStyle: 'none',\n borderWidth: 'medium',\n flex: 'none',\n placeItems: 'center',\n backgroundColor: 'transparent',\n color: {\n 'default': cssVar.colorTextQuaternary,\n ':focus-visible': cssVar.colorText,\n ':hover:not(:disabled)': cssVar.colorText,\n },\n cursor: { 'default': 'pointer', ':disabled': 'default' },\n display: 'inline-grid',\n lineHeight: 1,\n whiteSpace: 'nowrap',\n height: 28,\n width: 28,\n },\n ellipsisDots: {\n gridColumn: 1,\n gridRow: 1,\n fontSize: 8,\n letterSpacing: 2,\n textIndent: 2,\n visibility: {\n default: 'visible',\n [stylex.when.ancestor(':focus-visible', paginationJumpMarker)]: 'hidden',\n [stylex.when.ancestor(':hover:not(:disabled)', paginationJumpMarker)]: 'hidden',\n },\n },\n ellipsisIcon: {\n gridColumn: 1,\n gridRow: 1,\n visibility: {\n default: 'hidden',\n [stylex.when.ancestor(':focus-visible', paginationJumpMarker)]: 'visible',\n [stylex.when.ancestor(':hover:not(:disabled)', paginationJumpMarker)]: 'visible',\n },\n },\n end: {\n justifyContent: 'flex-end',\n },\n jumper: {\n gap: 6,\n alignItems: 'center',\n color: cssVar.colorTextSecondary,\n display: 'inline-flex',\n fontSize: 13,\n marginInlineStart: 8,\n whiteSpace: 'nowrap',\n },\n jumperInput: {\n width: 50,\n },\n root: {\n gap: 4,\n alignItems: 'center',\n display: 'inline-flex',\n fontVariantNumeric: 'tabular-nums',\n },\n simplePager: {\n gap: 6,\n alignItems: 'center',\n color: cssVar.colorTextSecondary,\n display: 'inline-flex',\n fontSize: 13,\n whiteSpace: 'nowrap',\n },\n simpleSlash: {\n color: cssVar.colorTextQuaternary,\n },\n small: {\n fontSize: 12,\n height: 24,\n minWidth: 24,\n },\n smallEllipsis: {\n height: 24,\n width: 24,\n },\n start: {\n justifyContent: 'flex-start',\n },\n total: {\n color: cssVar.colorTextTertiary,\n fontSize: 12,\n marginInlineEnd: 8,\n whiteSpace: 'nowrap',\n },\n});\n"],"mappings":";AAOA,MAAa,SAAS;CACpB,SAAS;EACP,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,OAAO;CACT;CACA,UAAU;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,cAAc;EACZ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,cAAc;EACZ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,KAAK;EACH,QAAQ;EACR,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,aAAa;EACX,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,aAAa;EACX,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,aAAa;EACX,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,eAAe;EACb,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;AACF"}
|
package/es/Pagination/type.d.mts
CHANGED
|
@@ -1,21 +1,59 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SelectProps } from "../Select/type.mjs";
|
|
2
|
+
import { CSSProperties, ComponentProps, ComponentType, ReactNode, Ref } from "react";
|
|
2
3
|
//#region src/Pagination/type.d.ts
|
|
3
4
|
export type PaginationSize = 'small' | 'middle';
|
|
5
|
+
/** antd `PaginationSemanticType`: `root` is the `<nav>`, `item` each page-number button. */
|
|
6
|
+
export type PaginationSemanticName = 'item' | 'root';
|
|
7
|
+
/** antd `itemRender` item types: `jump-prev` / `jump-next` are the ellipses. */
|
|
8
|
+
export type PaginationItemType = 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next';
|
|
9
|
+
export type PaginationAlign = 'start' | 'center' | 'end';
|
|
10
|
+
/** Extra props of the page-size `Select` when `showSizeChanger` is an object. */
|
|
11
|
+
export interface PaginationSizeChangerProps extends Omit<SelectProps, 'mode' | 'onChange' | 'options' | 'value'> {
|
|
12
|
+
onChange?: (value: string) => void;
|
|
13
|
+
}
|
|
4
14
|
export interface PaginationProps extends Omit<ComponentProps<'nav'>, 'onChange'> {
|
|
15
|
+
/** Lays the pager out as a full-width row aligned to `start`, `center` or `end`. */
|
|
16
|
+
align?: PaginationAlign;
|
|
17
|
+
classNames?: Partial<Record<PaginationSemanticName, string>>;
|
|
18
|
+
/** Replaces the page-size `Select`; it receives the same props. */
|
|
19
|
+
components?: {
|
|
20
|
+
sizeChanger?: ComponentType<any>;
|
|
21
|
+
};
|
|
5
22
|
current?: number;
|
|
6
23
|
defaultCurrent?: number;
|
|
7
24
|
defaultPageSize?: number;
|
|
8
25
|
disabled?: boolean;
|
|
9
26
|
hideOnSinglePage?: boolean;
|
|
27
|
+
/** Custom content of each item; `element` is the default content. */
|
|
28
|
+
itemRender?: (page: number, type: PaginationItemType, element: ReactNode) => ReactNode;
|
|
10
29
|
onChange?: (page: number, pageSize: number) => void;
|
|
11
30
|
onPageSizeChange?: (current: number, size: number) => void;
|
|
12
31
|
pageSize?: number;
|
|
13
|
-
|
|
32
|
+
/** @default [10, 20, 50, 100] */
|
|
33
|
+
pageSizeOptions?: (number | string)[];
|
|
14
34
|
ref?: Ref<HTMLElement>;
|
|
15
|
-
|
|
35
|
+
/** Use the `small` size on extra-small screens (< 576px) when `size` is not set. */
|
|
36
|
+
responsive?: boolean;
|
|
37
|
+
/** Show one page on each side of the current page instead of two. */
|
|
38
|
+
showLessItems?: boolean;
|
|
39
|
+
/** Show a "Go to" page input; `goButton` adds a confirm button (the input then applies on Enter or the button only). */
|
|
40
|
+
showQuickJumper?: boolean | {
|
|
41
|
+
goButton?: ReactNode;
|
|
42
|
+
};
|
|
43
|
+
/** Defaults to `true` when `total` is greater than `totalBoundaryShowSizeChanger`. */
|
|
44
|
+
showSizeChanger?: boolean | PaginationSizeChangerProps;
|
|
45
|
+
/** Show native `title` tooltips on the items. @default true */
|
|
46
|
+
showTitle?: boolean;
|
|
16
47
|
showTotal?: (total: number, range: [number, number]) => ReactNode;
|
|
48
|
+
/** Compact `prev [current] / pages next` mode; `readOnly` shows the current page as text. */
|
|
49
|
+
simple?: boolean | {
|
|
50
|
+
readOnly?: boolean;
|
|
51
|
+
};
|
|
17
52
|
size?: PaginationSize;
|
|
53
|
+
styles?: Partial<Record<PaginationSemanticName, CSSProperties>>;
|
|
18
54
|
total: number;
|
|
55
|
+
/** `total` above which `showSizeChanger` defaults to on. @default 50 */
|
|
56
|
+
totalBoundaryShowSizeChanger?: number;
|
|
19
57
|
}
|
|
20
58
|
//#endregion
|
|
21
59
|
//# sourceMappingURL=type.d.mts.map
|
|
@@ -7,7 +7,7 @@ import { HOVER_ONLY_TRIGGER_ATTR } from "./hoverOnlyPress.mjs";
|
|
|
7
7
|
import { useMergedPopoverProps } from "./useMergedPopoverProps.mjs";
|
|
8
8
|
import { cloneElement, isValidElement, use, useMemo } from "react";
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
10
|
-
import clsx from "clsx";
|
|
10
|
+
import clsx$1 from "clsx";
|
|
11
11
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
12
12
|
import { Popover } from "@base-ui/react/popover";
|
|
13
13
|
//#region src/Popover/PopoverInGroup.tsx
|
|
@@ -46,7 +46,7 @@ const PopoverInGroup = ({ children, ref: refProp, ...props }) => {
|
|
|
46
46
|
const mergedProps = mergeProps(children.props, resolvedProps);
|
|
47
47
|
return cloneElement(children, {
|
|
48
48
|
...mergedProps,
|
|
49
|
-
className: clsx(mergedProps.className, triggerClassName),
|
|
49
|
+
className: clsx$1(mergedProps.className, triggerClassName),
|
|
50
50
|
ref: mergeRefs([
|
|
51
51
|
children.ref,
|
|
52
52
|
renderProps.ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverInGroup.mjs","names":["BasePopover"],"sources":["../../src/Popover/PopoverInGroup.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { Popover as BasePopover } from '@base-ui/react/popover';\nimport clsx from 'clsx';\nimport { cloneElement, type FC, isValidElement, useMemo } from 'react';\nimport { use } from 'react';\n\nimport { useNativeButton } from '@/hooks/useNativeButton';\nimport { mergeRefs } from '@/utils/mergeRefs';\nimport { parseTrigger } from '@/utils/parseTrigger';\n\nimport { PopoverGroupHandleContext } from './groupContext';\nimport { HOVER_ONLY_TRIGGER_ATTR } from './hoverOnlyPress';\nimport { type PopoverProps } from './type';\nimport { useMergedPopoverProps } from './useMergedPopoverProps';\n\nexport const PopoverInGroup: FC<PopoverProps> = ({ children, ref: refProp, ...props }) => {\n const group = use(PopoverGroupHandleContext);\n const item = useMergedPopoverProps(props);\n\n const { openOnClick, openOnHover } = useMemo(\n () => parseTrigger(item.trigger ?? 'hover'),\n [item.trigger],\n );\n\n const resolvedOpenDelay = item.openDelay ?? (item.mouseEnterDelay ?? 0.1) * 1000;\n const resolvedCloseDelay = item.closeDelay ?? (item.mouseLeaveDelay ?? 0.1) * 1000;\n const disabled = Boolean(item.disabled);\n\n const { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({\n children,\n nativeButton: item.nativeButton,\n });\n\n // Don't render trigger behavior if no content\n if (!item.content) {\n return children as any;\n }\n\n const triggerProps = {\n [HOVER_ONLY_TRIGGER_ATTR]: openOnClick ? undefined : '',\n closeDelay: resolvedCloseDelay,\n delay: resolvedOpenDelay,\n disabled,\n openOnHover: openOnHover && !disabled,\n ...item.triggerProps,\n payload: item,\n };\n\n const triggerClassName = item.classNames?.trigger;\n\n if (isValidElement(children)) {\n return (\n <BasePopover.Trigger\n handle={group ?? undefined}\n {...triggerProps}\n nativeButton={resolvedNativeButton}\n render={(renderProps) => {\n // Base UI's trigger props include `type=\"button\"` by default.\n // If we render into a non-<button> element, that prop is invalid and can warn.\n const resolvedProps = (() => {\n if (isNativeButtonTriggerElement) return renderProps as any;\n // eslint-disable-next-line unused-imports/no-unused-vars\n const { type, ref: triggerRef, ...restProps } = renderProps as any;\n return restProps;\n })();\n\n const mergedProps = mergeProps((children as any).props, resolvedProps);\n return cloneElement(children as any, {\n ...mergedProps,\n className: clsx(mergedProps.className, triggerClassName),\n ref: mergeRefs([(children as any).ref, (renderProps as any).ref, refProp]),\n });\n }}\n />\n );\n }\n\n return (\n <BasePopover.Trigger\n handle={group ?? undefined}\n {...triggerProps}\n className={triggerClassName}\n nativeButton={resolvedNativeButton}\n ref={refProp}\n >\n {children}\n </BasePopover.Trigger>\n );\n};\n\nPopoverInGroup.displayName = 'PopoverInGroup';\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAa,kBAAoC,EAAE,UAAU,KAAK,SAAS,GAAG,YAAY;CACxF,MAAM,QAAQ,IAAI,yBAAyB;CAC3C,MAAM,OAAO,sBAAsB,KAAK;CAExC,MAAM,EAAE,aAAa,gBAAgB,cAC7B,aAAa,KAAK,WAAW,OAAO,GAC1C,CAAC,KAAK,OAAO,CACf;CAEA,MAAM,oBAAoB,KAAK,cAAc,KAAK,mBAAmB,MAAO;CAC5E,MAAM,qBAAqB,KAAK,eAAe,KAAK,mBAAmB,MAAO;CAC9E,MAAM,WAAW,QAAQ,KAAK,QAAQ;CAEtC,MAAM,EAAE,8BAA8B,yBAAyB,gBAAgB;EAC7E;EACA,cAAc,KAAK;CACrB,CAAC;CAGD,IAAI,CAAC,KAAK,SACR,OAAO;CAGT,MAAM,eAAe;GAClB,0BAA0B,cAAc,KAAA,IAAY;EACrD,YAAY;EACZ,OAAO;EACP;EACA,aAAa,eAAe,CAAC;EAC7B,GAAG,KAAK;EACR,SAAS;CACX;CAEA,MAAM,mBAAmB,KAAK,YAAY;CAE1C,IAAI,eAAe,QAAQ,GACzB,OACE,oBAACA,QAAY,SAAb;EACE,QAAQ,SAAS,KAAA;EACjB,GAAI;EACJ,cAAc;EACd,SAAS,gBAAgB;GAGvB,MAAM,uBAAuB;IAC3B,IAAI,8BAA8B,OAAO;IAEzC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,cAAc;IAChD,OAAO;GACT,EAAA,CAAG;GAEH,MAAM,cAAc,WAAY,SAAiB,OAAO,aAAa;GACrE,OAAO,aAAa,UAAiB;IACnC,GAAG;IACH,
|
|
1
|
+
{"version":3,"file":"PopoverInGroup.mjs","names":["BasePopover","clsx"],"sources":["../../src/Popover/PopoverInGroup.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { Popover as BasePopover } from '@base-ui/react/popover';\nimport clsx from 'clsx';\nimport { cloneElement, type FC, isValidElement, useMemo } from 'react';\nimport { use } from 'react';\n\nimport { useNativeButton } from '@/hooks/useNativeButton';\nimport { mergeRefs } from '@/utils/mergeRefs';\nimport { parseTrigger } from '@/utils/parseTrigger';\n\nimport { PopoverGroupHandleContext } from './groupContext';\nimport { HOVER_ONLY_TRIGGER_ATTR } from './hoverOnlyPress';\nimport { type PopoverProps } from './type';\nimport { useMergedPopoverProps } from './useMergedPopoverProps';\n\nexport const PopoverInGroup: FC<PopoverProps> = ({ children, ref: refProp, ...props }) => {\n const group = use(PopoverGroupHandleContext);\n const item = useMergedPopoverProps(props);\n\n const { openOnClick, openOnHover } = useMemo(\n () => parseTrigger(item.trigger ?? 'hover'),\n [item.trigger],\n );\n\n const resolvedOpenDelay = item.openDelay ?? (item.mouseEnterDelay ?? 0.1) * 1000;\n const resolvedCloseDelay = item.closeDelay ?? (item.mouseLeaveDelay ?? 0.1) * 1000;\n const disabled = Boolean(item.disabled);\n\n const { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({\n children,\n nativeButton: item.nativeButton,\n });\n\n // Don't render trigger behavior if no content\n if (!item.content) {\n return children as any;\n }\n\n const triggerProps = {\n [HOVER_ONLY_TRIGGER_ATTR]: openOnClick ? undefined : '',\n closeDelay: resolvedCloseDelay,\n delay: resolvedOpenDelay,\n disabled,\n openOnHover: openOnHover && !disabled,\n ...item.triggerProps,\n payload: item,\n };\n\n const triggerClassName = item.classNames?.trigger;\n\n if (isValidElement(children)) {\n return (\n <BasePopover.Trigger\n handle={group ?? undefined}\n {...triggerProps}\n nativeButton={resolvedNativeButton}\n render={(renderProps) => {\n // Base UI's trigger props include `type=\"button\"` by default.\n // If we render into a non-<button> element, that prop is invalid and can warn.\n const resolvedProps = (() => {\n if (isNativeButtonTriggerElement) return renderProps as any;\n // eslint-disable-next-line unused-imports/no-unused-vars\n const { type, ref: triggerRef, ...restProps } = renderProps as any;\n return restProps;\n })();\n\n const mergedProps = mergeProps((children as any).props, resolvedProps);\n return cloneElement(children as any, {\n ...mergedProps,\n className: clsx(mergedProps.className, triggerClassName),\n ref: mergeRefs([(children as any).ref, (renderProps as any).ref, refProp]),\n });\n }}\n />\n );\n }\n\n return (\n <BasePopover.Trigger\n handle={group ?? undefined}\n {...triggerProps}\n className={triggerClassName}\n nativeButton={resolvedNativeButton}\n ref={refProp}\n >\n {children}\n </BasePopover.Trigger>\n );\n};\n\nPopoverInGroup.displayName = 'PopoverInGroup';\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAa,kBAAoC,EAAE,UAAU,KAAK,SAAS,GAAG,YAAY;CACxF,MAAM,QAAQ,IAAI,yBAAyB;CAC3C,MAAM,OAAO,sBAAsB,KAAK;CAExC,MAAM,EAAE,aAAa,gBAAgB,cAC7B,aAAa,KAAK,WAAW,OAAO,GAC1C,CAAC,KAAK,OAAO,CACf;CAEA,MAAM,oBAAoB,KAAK,cAAc,KAAK,mBAAmB,MAAO;CAC5E,MAAM,qBAAqB,KAAK,eAAe,KAAK,mBAAmB,MAAO;CAC9E,MAAM,WAAW,QAAQ,KAAK,QAAQ;CAEtC,MAAM,EAAE,8BAA8B,yBAAyB,gBAAgB;EAC7E;EACA,cAAc,KAAK;CACrB,CAAC;CAGD,IAAI,CAAC,KAAK,SACR,OAAO;CAGT,MAAM,eAAe;GAClB,0BAA0B,cAAc,KAAA,IAAY;EACrD,YAAY;EACZ,OAAO;EACP;EACA,aAAa,eAAe,CAAC;EAC7B,GAAG,KAAK;EACR,SAAS;CACX;CAEA,MAAM,mBAAmB,KAAK,YAAY;CAE1C,IAAI,eAAe,QAAQ,GACzB,OACE,oBAACA,QAAY,SAAb;EACE,QAAQ,SAAS,KAAA;EACjB,GAAI;EACJ,cAAc;EACd,SAAS,gBAAgB;GAGvB,MAAM,uBAAuB;IAC3B,IAAI,8BAA8B,OAAO;IAEzC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,cAAc;IAChD,OAAO;GACT,EAAA,CAAG;GAEH,MAAM,cAAc,WAAY,SAAiB,OAAO,aAAa;GACrE,OAAO,aAAa,UAAiB;IACnC,GAAG;IACH,WAAWC,OAAK,YAAY,WAAW,gBAAgB;IACvD,KAAK,UAAU;KAAE,SAAiB;KAAM,YAAoB;KAAK;IAAO,CAAC;GAC3E,CAAC;EACH;CACD,CAAA;CAIL,OACE,oBAACD,QAAY,SAAb;EACE,QAAQ,SAAS,KAAA;EACjB,GAAI;EACJ,WAAW;EACX,cAAc;EACd,KAAK;EAEJ;CACkB,CAAA;AAEzB;AAEA,eAAe,cAAc"}
|