@choice-ui/react 1.4.3 → 1.4.6
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/dist/components/alert-dialog/dist/index.d.ts +20 -41
- package/dist/components/alert-dialog/dist/index.js +497 -0
- package/dist/components/alert-dialog/src/alert-dialog.js +1 -1
- package/dist/components/alert-dialog/src/hooks/use-alert-dialog.d.ts +1 -1
- package/dist/components/alert-dialog/src/index.d.ts +4 -5
- package/dist/components/alert-dialog/src/types.d.ts +11 -11
- package/dist/components/avatar/dist/index.js +4 -4
- package/dist/components/avatar/src/avatar.js +4 -4
- package/dist/components/badge/src/badge.js +2 -2
- package/dist/components/badge/src/index.d.ts +2 -1
- package/dist/components/button/dist/index.js +4 -4
- package/dist/components/button/src/button.js +4 -4
- package/dist/components/calendar/dist/index.d.ts +296 -296
- package/dist/components/calendar/dist/index.js +57 -56
- package/dist/components/calendar/src/date-range-input/date-range-input.d.ts +5 -5
- package/dist/components/calendar/src/time-calendar/time-calendar.d.ts +3 -3
- package/dist/components/calendar/src/time-calendar/time-calendar.js +2 -2
- package/dist/components/calendar/src/time-input/time-input.d.ts +9 -9
- package/dist/components/calendar/src/time-input/time-input.js +4 -4
- package/dist/components/calendar/src/types.d.ts +165 -165
- package/dist/components/calendar/src/utils/constants.js +32 -31
- package/dist/components/calendar/src/utils/date-comparisons.d.ts +34 -34
- package/dist/components/calendar/src/utils/locale.d.ts +12 -12
- package/dist/components/calendar/src/utils/month.d.ts +3 -3
- package/dist/components/calendar/src/utils/month.js +1 -1
- package/dist/components/calendar/src/utils/parsers/month-names.js +3 -3
- package/dist/components/calendar/src/utils/parsers/numeric-utils.d.ts +20 -20
- package/dist/components/calendar/src/utils/parsers/numeric-utils.js +8 -8
- package/dist/components/calendar/src/utils/parsers/parsers.d.ts +17 -17
- package/dist/components/calendar/src/utils/parsers/parsers.js +2 -2
- package/dist/components/calendar/src/utils/parsers/prediction.d.ts +7 -7
- package/dist/components/calendar/src/utils/parsers/relative-dates.js +6 -6
- package/dist/components/calendar/src/utils/quarter.d.ts +13 -13
- package/dist/components/calendar/src/utils/quarter.js +6 -6
- package/dist/components/calendar/src/utils/time.d.ts +8 -8
- package/dist/components/calendar/src/utils/year.d.ts +3 -3
- package/dist/components/calendar/src/utils/year.js +3 -3
- package/dist/components/checkbox/dist/index.d.ts +1 -12
- package/dist/components/checkbox/dist/index.js +9 -9
- package/dist/components/checkbox/src/checkbox-label.js +2 -2
- package/dist/components/checkbox/src/checkbox.js +6 -5
- package/dist/components/checkbox/src/context.js +1 -1
- package/dist/components/checkbox/src/index.d.ts +0 -3
- package/dist/components/chip/dist/index.js +6 -6
- package/dist/components/chip/src/chip.js +6 -6
- package/dist/components/chip/src/index.d.ts +2 -1
- package/dist/components/chips-input/dist/index.js +270 -0
- package/dist/components/chips-input/src/index.d.ts +2 -1
- package/dist/components/code-block/dist/index.d.ts +14 -32
- package/dist/components/code-block/dist/index.js +211 -147
- package/dist/components/code-block/src/code-block.d.ts +8 -1
- package/dist/components/code-block/src/code-block.js +14 -3
- package/dist/components/code-block/src/components/code-block-code.js +31 -5
- package/dist/components/code-block/src/components/code-block-header.js +45 -10
- package/dist/components/code-block/src/index.d.ts +3 -9
- package/dist/components/combobox/dist/index.d.ts +21 -2
- package/dist/components/combobox/dist/index.js +16 -13
- package/dist/components/combobox/src/combobox-trigger.d.ts +1 -1
- package/dist/components/combobox/src/combobox-trigger.js +7 -4
- package/dist/components/combobox/src/combobox.d.ts +20 -1
- package/dist/components/combobox/src/combobox.js +10 -10
- package/dist/components/command/dist/index.d.ts +65 -4
- package/dist/components/command/src/command.js +6 -5
- package/dist/components/command/src/components/command-divider.d.ts +4 -1
- package/dist/components/command/src/components/command-group.d.ts +16 -1
- package/dist/components/command/src/components/command-group.js +56 -54
- package/dist/components/command/src/components/command-input.js +3 -3
- package/dist/components/command/src/components/command-item.d.ts +1 -1
- package/dist/components/command/src/components/command-item.js +117 -115
- package/dist/components/command/src/components/command-loading.d.ts +8 -0
- package/dist/components/command/src/components/command-loading.js +1 -1
- package/dist/components/command/src/context/create-command-context.js +1 -1
- package/dist/components/command/src/hooks/use-schedule-layout-effect.d.ts +1 -1
- package/dist/components/command/src/hooks/use-value.js +2 -2
- package/dist/components/command/src/index.d.ts +16 -8
- package/dist/components/command/src/tv.d.ts +30 -0
- package/dist/components/command/src/tv.js +10 -0
- package/dist/components/command/src/types.d.ts +8 -0
- package/dist/components/command/src/utils/constants.d.ts +1 -1
- package/dist/components/command/src/utils/constants.js +1 -1
- package/dist/components/command/src/utils/helpers.d.ts +0 -1
- package/dist/components/command/src/utils/helpers.js +1 -3
- package/dist/components/command/src/utils/index.d.ts +1 -0
- package/dist/components/comments/src/comment-input/components/comment-input-mention-popover.js +4 -2
- package/dist/components/comments/src/comments.js +1 -1
- package/dist/components/context-input/dist/index.d.ts +47 -251
- package/dist/components/context-input/src/components/mention-menu.d.ts +5 -4
- package/dist/components/context-input/src/components/mention-menu.js +19 -4
- package/dist/components/context-input/src/components/mention.d.ts +2 -2
- package/dist/components/context-input/src/components/slate-editor.js +4 -2
- package/dist/components/context-input/src/context-input.js +31 -16
- package/dist/components/context-input/src/extensions/with-mentions.d.ts +1 -1
- package/dist/components/context-input/src/extensions/with-mentions.js +10 -9
- package/dist/components/context-input/src/hooks/use-context-input.js +87 -46
- package/dist/components/context-input/src/hooks/use-mentions.d.ts +11 -10
- package/dist/components/context-input/src/hooks/use-mentions.js +147 -128
- package/dist/components/context-input/src/index.d.ts +4 -5
- package/dist/components/context-input/src/types.d.ts +12 -12
- package/dist/components/context-input/src/utils/mention-spacing.d.ts +16 -16
- package/dist/components/context-input/src/utils/slate-converters.d.ts +6 -6
- package/dist/components/context-input/src/utils/slate-converters.js +2 -2
- package/dist/components/context-input/src/utils/text-extraction.js +7 -1
- package/dist/components/context-menu/src/context-menu.js +10 -4
- package/dist/components/dialog/dist/index.js +1 -2
- package/dist/components/dialog/src/dialog.js +0 -1
- package/dist/components/dialog/src/hooks/use-floating-dialog.js +1 -1
- package/dist/components/dialog/src/index.d.ts +3 -2
- package/dist/components/dropdown/dist/index.d.ts +1 -2
- package/dist/components/dropdown/dist/index.js +23 -8
- package/dist/components/dropdown/src/dropdown.d.ts +1 -2
- package/dist/components/dropdown/src/dropdown.js +23 -8
- package/dist/components/emoji-picker/dist/index.d.ts +33 -1
- package/dist/components/emoji-picker/dist/index.js +3 -1
- package/dist/components/emoji-picker/src/emoji-picker.d.ts +1 -1
- package/dist/components/emoji-picker/src/emoji-picker.js +3 -1
- package/dist/components/emoji-picker/src/index.d.ts +3 -1
- package/dist/components/form/dist/index.d.ts +93 -98
- package/dist/components/form/src/adapters/base-adapter.d.ts +3 -3
- package/dist/components/form/src/adapters/checkbox-adapter.d.ts +1 -1
- package/dist/components/form/src/adapters/chips-input-adapter.d.ts +9 -0
- package/dist/components/form/src/adapters/chips-input-adapter.js +38 -0
- package/dist/components/form/src/adapters/index.d.ts +8 -7
- package/dist/components/form/src/adapters/input-adapter.d.ts +1 -1
- package/dist/components/form/src/adapters/multi-select-adapter.d.ts +1 -1
- package/dist/components/form/src/adapters/numeric-input-adapter.d.ts +1 -1
- package/dist/components/form/src/adapters/raido-group-adapter.d.ts +1 -7
- package/dist/components/form/src/adapters/range-adapter.d.ts +1 -7
- package/dist/components/form/src/adapters/segmented-adapter.d.ts +1 -7
- package/dist/components/form/src/adapters/select-adapter.d.ts +1 -1
- package/dist/components/form/src/adapters/switch-adapter.d.ts +1 -1
- package/dist/components/form/src/adapters/textarea-adapter.d.ts +1 -1
- package/dist/components/form/src/index.d.ts +18 -16
- package/dist/components/form/src/index.js +16 -13
- package/dist/components/form/src/types.d.ts +58 -51
- package/dist/components/hint/dist/index.d.ts +10 -54
- package/dist/components/hint/src/components/info-content.d.ts +3 -5
- package/dist/components/hint/src/components/info-content.js +14 -6
- package/dist/components/hint/src/components/info-trigger.d.ts +2 -3
- package/dist/components/hint/src/components/info-trigger.js +4 -2
- package/dist/components/hint/src/context/hint-context.d.ts +2 -0
- package/dist/components/hint/src/context/hint-context.js +1 -1
- package/dist/components/hint/src/hint.d.ts +7 -7
- package/dist/components/hint/src/hint.js +24 -29
- package/dist/components/hint/src/hooks/use-hint.d.ts +4 -2
- package/dist/components/hint/src/hooks/use-hint.js +12 -4
- package/dist/components/hint/src/index.d.ts +3 -3
- package/dist/components/hint/src/tv.d.ts +33 -0
- package/dist/components/hint/src/tv.js +11 -0
- package/dist/components/icon-button/dist/index.js +2 -2
- package/dist/components/icon-button/src/icon-button.js +2 -2
- package/dist/components/index.d.ts +3 -0
- package/dist/components/input/dist/index.js +4 -4
- package/dist/components/input/src/input.js +3 -3
- package/dist/components/input/src/tv.js +1 -1
- package/dist/components/kbd/dist/index.js +4 -4
- package/dist/components/kbd/src/kbd.js +4 -4
- package/dist/components/label/dist/index.js +3 -3
- package/dist/components/label/src/tv.js +3 -3
- package/dist/components/link-button/dist/index.js +3 -3
- package/dist/components/link-button/src/link-button.js +3 -3
- package/dist/components/list/src/components/list-content.js +2 -2
- package/dist/components/list/src/components/list-divider.js +3 -3
- package/dist/components/list/src/components/list-item.js +5 -5
- package/dist/components/list/src/components/list-label.js +2 -2
- package/dist/components/list/src/components/list-sub-trigger.js +4 -4
- package/dist/components/list/src/list.js +2 -2
- package/dist/components/md-input/dist/index.d.ts +8 -104
- package/dist/components/md-input/src/components/extensions/md-input-mention.d.ts +6 -4
- package/dist/components/md-input/src/components/extensions/md-input-mention.js +23 -6
- package/dist/components/md-input/src/components/md-input-container.js +1 -0
- package/dist/components/md-input/src/components/md-input-editor.js +4 -1
- package/dist/components/md-input/src/components/md-input-footer.js +5 -1
- package/dist/components/md-input/src/components/toolbar/default-actions.d.ts +2 -2
- package/dist/components/md-input/src/components/toolbar/toolbar-button.d.ts +1 -0
- package/dist/components/md-input/src/components/toolbar/toolbar-button.js +1 -7
- package/dist/components/md-input/src/components/toolbar/toolbar.d.ts +2 -2
- package/dist/components/md-input/src/hooks/use-markdown-mentions.d.ts +5 -4
- package/dist/components/md-input/src/hooks/use-markdown-mentions.js +31 -4
- package/dist/components/md-input/src/index.d.ts +1 -4
- package/dist/components/md-input/src/md-input.js +18 -14
- package/dist/components/md-input/src/tv.d.ts +3 -0
- package/dist/components/md-input/src/tv.js +2 -1
- package/dist/components/md-input/src/types.d.ts +18 -16
- package/dist/components/md-render/dist/index.d.ts +1 -4
- package/dist/components/md-render/dist/index.js +8 -9
- package/dist/components/md-render/src/components/markdown-components.js +3 -3
- package/dist/components/md-render/src/index.d.ts +0 -1
- package/dist/components/md-render/src/md-render.js +5 -4
- package/dist/components/md-render/src/tv.js +1 -1
- package/dist/components/menubar/dist/index.d.ts +50 -0
- package/dist/components/menubar/src/components/index.d.ts +3 -0
- package/dist/components/menubar/src/components/menubar-divider.d.ts +8 -0
- package/dist/components/menubar/src/components/menubar-divider.js +24 -0
- package/dist/components/menubar/src/components/menubar-item.d.ts +8 -0
- package/dist/components/menubar/src/components/menubar-item.js +195 -0
- package/dist/components/menubar/src/components/menubar-trigger.d.ts +8 -0
- package/dist/components/menubar/src/components/menubar-trigger.js +45 -0
- package/dist/components/menubar/src/context/index.d.ts +1 -0
- package/dist/components/menubar/src/context/menubar-context.d.ts +34 -0
- package/dist/components/menubar/src/context/menubar-context.js +13 -0
- package/dist/components/menubar/src/index.d.ts +3 -0
- package/dist/components/menubar/src/menubar.d.ts +22 -0
- package/dist/components/menubar/src/menubar.js +177 -0
- package/dist/components/menubar/src/tv.d.ts +108 -0
- package/dist/components/menubar/src/tv.js +72 -0
- package/dist/components/menubar/tsup.config.d.ts +2 -0
- package/dist/components/menus/dist/index.d.ts +144 -143
- package/dist/components/menus/dist/index.js +50 -49
- package/dist/components/menus/src/components/menu-button.js +2 -2
- package/dist/components/menus/src/components/menu-checkbox.d.ts +1 -2
- package/dist/components/menus/src/components/menu-checkbox.js +2 -2
- package/dist/components/menus/src/components/menu-divider.js +3 -3
- package/dist/components/menus/src/components/menu-item.js +5 -5
- package/dist/components/menus/src/components/menu-label.js +2 -2
- package/dist/components/menus/src/components/menu-scroll-arrow.d.ts +2 -2
- package/dist/components/menus/src/components/menu-scroll-arrow.js +13 -3
- package/dist/components/menus/src/components/menu-search.js +3 -3
- package/dist/components/menus/src/components/menu-trigger.js +4 -4
- package/dist/components/menus/src/context/menu-context-item.d.ts +6 -6
- package/dist/components/menus/src/context/menu-context-item.js +2 -2
- package/dist/components/menus/src/context/menu-context-sub-trigger.js +4 -19
- package/dist/components/menus/src/context/menu-context.d.ts +2 -2
- package/dist/components/menus/src/hooks/use-menu-base-refs.d.ts +12 -12
- package/dist/components/menus/src/hooks/use-menu-children.d.ts +16 -16
- package/dist/components/menus/src/hooks/use-menu-floating.d.ts +22 -22
- package/dist/components/menus/src/hooks/use-menu-refs.d.ts +8 -8
- package/dist/components/menus/src/hooks/use-menu-refs.js +2 -2
- package/dist/components/menus/src/hooks/use-menu-scroll-height.d.ts +11 -11
- package/dist/components/menus/src/hooks/use-menu-scroll.d.ts +18 -18
- package/dist/components/menus/src/hooks/use-menu-selection.d.ts +21 -21
- package/dist/components/menus/src/hooks/use-menu-state.d.ts +11 -11
- package/dist/components/menus/src/hooks/use-menu-state.js +4 -4
- package/dist/components/menus/src/hooks/use-menu-touch.d.ts +11 -11
- package/dist/components/menus/src/hooks/use-menu-tree.d.ts +15 -15
- package/dist/components/menus/src/index.d.ts +5 -0
- package/dist/components/menus/src/menus.js +2 -2
- package/dist/components/menus/src/tv.d.ts +15 -0
- package/dist/components/menus/src/tv.js +8 -2
- package/dist/components/modal/dist/index.d.ts +3 -1
- package/dist/components/modal/dist/index.js +18 -11
- package/dist/components/modal/src/components/modal-content.js +2 -2
- package/dist/components/modal/src/components/modal-footer.js +2 -2
- package/dist/components/modal/src/components/modal-header.d.ts +3 -1
- package/dist/components/modal/src/components/modal-header.js +12 -5
- package/dist/components/modal/src/modal.js +2 -2
- package/dist/components/multi-select/dist/index.js +13 -11
- package/dist/components/multi-select/src/components/multi-select-trigger.js +8 -8
- package/dist/components/multi-select/src/multi-select.js +5 -3
- package/dist/components/numeric-input/dist/index.d.ts +10 -117
- package/dist/components/numeric-input/dist/index.js +18 -24
- package/dist/components/numeric-input/src/components/numeric-input-element.js +2 -2
- package/dist/components/numeric-input/src/components/numeric-input-menu-trigger.d.ts +1 -1
- package/dist/components/numeric-input/src/components/numeric-input-menu-trigger.js +2 -2
- package/dist/components/numeric-input/src/components/numeric-input-variable.d.ts +1 -2
- package/dist/components/numeric-input/src/components/numeric-input-variable.js +3 -3
- package/dist/components/numeric-input/src/hooks/use-input-interactions.d.ts +3 -3
- package/dist/components/numeric-input/src/hooks/use-numeric-input.d.ts +3 -3
- package/dist/components/numeric-input/src/hooks/use-numeric-value-processing.d.ts +3 -3
- package/dist/components/numeric-input/src/hooks/use-step-calculation.d.ts +6 -6
- package/dist/components/numeric-input/src/index.d.ts +5 -4
- package/dist/components/numeric-input/src/numeric-input.js +9 -9
- package/dist/components/numeric-input/src/utils/error-handler.d.ts +8 -8
- package/dist/components/numeric-input/src/utils/expression-evaluator.d.ts +11 -11
- package/dist/components/numeric-input/src/utils/input-parser.d.ts +8 -8
- package/dist/components/numeric-input/src/utils/numeric-value-processor.d.ts +6 -6
- package/dist/components/numeric-input/src/utils/pattern-parser.d.ts +7 -7
- package/dist/components/numeric-input/src/utils/value-comparator.d.ts +16 -16
- package/dist/components/numeric-input/src/utils/value-processor.d.ts +14 -14
- package/dist/components/pagination/src/components/pagination-items-per-page.js +1 -1
- package/dist/components/pagination/src/components/pagination-navigation.js +5 -5
- package/dist/components/pagination/src/components/pagination-root.js +3 -3
- package/dist/components/pagination/src/components/pagination-spinner.js +20 -19
- package/dist/components/pagination/src/context/index.d.ts +1 -0
- package/dist/components/popover/dist/index.d.ts +2 -4
- package/dist/components/popover/dist/index.js +25 -33
- package/dist/components/popover/src/components/popover-header.js +1 -1
- package/dist/components/popover/src/hooks/use-drag.d.ts +3 -3
- package/dist/components/popover/src/hooks/use-floating-popover.d.ts +0 -2
- package/dist/components/popover/src/hooks/use-floating-popover.js +16 -13
- package/dist/components/popover/src/index.d.ts +2 -1
- package/dist/components/popover/src/popover.d.ts +1 -2
- package/dist/components/popover/src/popover.js +11 -21
- package/dist/components/progress/src/index.d.ts +4 -2
- package/dist/components/radio/dist/index.d.ts +1 -17
- package/dist/components/radio/dist/index.js +7 -10
- package/dist/components/radio/src/context.js +1 -1
- package/dist/components/radio/src/index.d.ts +0 -4
- package/dist/components/radio/src/radio-label.js +2 -2
- package/dist/components/radio/src/radio.js +4 -4
- package/dist/components/range/dist/index.js +16 -16
- package/dist/components/range/src/index.d.ts +4 -2
- package/dist/components/range/src/range-tuple.js +10 -10
- package/dist/components/range/src/range.js +6 -6
- package/dist/components/rich-input/dist/index.d.ts +12 -366
- package/dist/components/rich-input/src/components/rich-input-editable-component.d.ts +2 -2
- package/dist/components/rich-input/src/components/rich-input-viewport.d.ts +2 -2
- package/dist/components/rich-input/src/hooks/use-editor-config.d.ts +1 -1
- package/dist/components/rich-input/src/hooks/use-editor-effects.js +3 -0
- package/dist/components/rich-input/src/hooks/use-floating-ui.js +1 -1
- package/dist/components/rich-input/src/hooks/use-keyboard-shortcuts.d.ts +9 -9
- package/dist/components/rich-input/src/hooks/use-rich-input.d.ts +2 -2
- package/dist/components/rich-input/src/hooks/use-rich-input.js +40 -17
- package/dist/components/rich-input/src/hooks/use-selection-events.js +1 -2
- package/dist/components/rich-input/src/index.d.ts +3 -5
- package/dist/components/rich-input/src/rich-input-base.js +1 -1
- package/dist/components/rich-input/src/utils/custom-options.js +1 -1
- package/dist/components/rich-input/src/utils/editor-utils.js +1 -1
- package/dist/components/rich-input/src/utils/markdown-to-slate.d.ts +2 -2
- package/dist/components/rich-input/src/utils/slate-to-markdown.d.ts +1 -1
- package/dist/components/rich-input/src/utils/slate-to-markdown.js +9 -0
- package/dist/components/scroll-area/dist/index.d.ts +19 -19
- package/dist/components/scroll-area/dist/index.js +24 -24
- package/dist/components/scroll-area/src/components/scroll-area-corner.js +2 -2
- package/dist/components/scroll-area/src/components/scroll-area-root.js +3 -3
- package/dist/components/scroll-area/src/components/scroll-area-scrollbar.js +2 -2
- package/dist/components/scroll-area/src/components/scroll-area-thumb.js +2 -2
- package/dist/components/scroll-area/src/hooks/use-scroll-performance-monitor.d.ts +6 -6
- package/dist/components/scroll-area/src/hooks/use-scroll-performance-monitor.js +3 -3
- package/dist/components/scroll-area/src/hooks/use-scroll-state-and-visibility.d.ts +1 -1
- package/dist/components/scroll-area/src/hooks/use-scroll-state-and-visibility.js +3 -3
- package/dist/components/scroll-area/src/hooks/use-scrollbar.d.ts +2 -2
- package/dist/components/scroll-area/src/hooks/use-thumb.d.ts +2 -2
- package/dist/components/scroll-area/src/tv.d.ts +18 -18
- package/dist/components/scroll-area/src/tv.js +12 -12
- package/dist/components/scroll-area/src/types.d.ts +8 -8
- package/dist/components/scroll-area/src/utils/index.d.ts +3 -3
- package/dist/components/search-input/dist/index.js +3 -3
- package/dist/components/search-input/src/index.d.ts +2 -1
- package/dist/components/search-input/src/search-input.js +3 -3
- package/dist/components/segmented/dist/index.js +5 -5
- package/dist/components/segmented/src/segmented-item.js +3 -3
- package/dist/components/segmented/src/segmented.js +2 -2
- package/dist/components/select/dist/index.js +4 -4
- package/dist/components/select/src/select.js +4 -4
- package/dist/components/separator/dist/index.d.ts +26 -0
- package/dist/components/separator/src/index.d.ts +2 -0
- package/dist/components/separator/src/separator.d.ts +22 -0
- package/dist/components/separator/src/separator.js +33 -0
- package/dist/components/separator/src/tv.d.ts +76 -0
- package/dist/components/separator/src/tv.js +25 -0
- package/dist/components/separator/tsup.config.d.ts +2 -0
- package/dist/components/skeleton/dist/index.d.ts +1 -28
- package/dist/components/skeleton/src/context/skeleton-context.js +1 -1
- package/dist/components/skeleton/src/hooks/use-skeleton.d.ts +1 -2
- package/dist/components/skeleton/src/hooks/use-skeleton.js +1 -1
- package/dist/components/skeleton/src/index.d.ts +1 -3
- package/dist/components/skeleton/src/skeleton.d.ts +0 -13
- package/dist/components/skeleton/src/skeleton.js +4 -6
- package/dist/components/skeleton/src/tv.d.ts +18 -12
- package/dist/components/skeleton/src/tv.js +10 -6
- package/dist/components/slot/dist/index.d.ts +10 -10
- package/dist/components/slot/dist/index.js +4 -2
- package/dist/components/slot/src/slot.d.ts +12 -12
- package/dist/components/slot/src/slot.js +6 -3
- package/dist/components/stackflow/src/context.js +1 -1
- package/dist/components/stackflow/src/index.d.ts +2 -1
- package/dist/components/switch/dist/index.d.ts +2 -2
- package/dist/components/switch/dist/index.js +6 -7
- package/dist/components/switch/src/index.d.ts +2 -1
- package/dist/components/switch/src/switch.js +6 -6
- package/dist/components/table/dist/index.d.ts +679 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/src/components/column-resizer.d.ts +8 -0
- package/dist/components/table/src/components/column-resizer.js +58 -0
- package/dist/components/table/src/components/drag-guide.d.ts +6 -0
- package/dist/components/table/src/components/drag-guide.js +64 -0
- package/dist/components/table/src/components/index.d.ts +12 -0
- package/dist/components/table/src/components/resize-guide.d.ts +5 -0
- package/dist/components/table/src/components/resize-guide.js +25 -0
- package/dist/components/table/src/components/table-body.d.ts +6 -0
- package/dist/components/table/src/components/table-body.js +335 -0
- package/dist/components/table/src/components/table-cell.d.ts +6 -0
- package/dist/components/table/src/components/table-cell.js +89 -0
- package/dist/components/table/src/components/table-column.d.ts +5 -0
- package/dist/components/table/src/components/table-column.js +269 -0
- package/dist/components/table/src/components/table-empty.d.ts +8 -0
- package/dist/components/table/src/components/table-empty.js +10 -0
- package/dist/components/table/src/components/table-footer.d.ts +7 -0
- package/dist/components/table/src/components/table-footer.js +15 -0
- package/dist/components/table/src/components/table-header.d.ts +3 -0
- package/dist/components/table/src/components/table-header.js +88 -0
- package/dist/components/table/src/components/table-root.d.ts +3 -0
- package/dist/components/table/src/components/table-root.js +317 -0
- package/dist/components/table/src/components/table-row.d.ts +23 -0
- package/dist/components/table/src/components/table-row.js +166 -0
- package/dist/components/table/src/components/table-value.d.ts +6 -0
- package/dist/components/table/src/components/table-value.js +8 -0
- package/dist/components/table/src/context.d.ts +121 -0
- package/dist/components/table/src/context.js +63 -0
- package/dist/components/table/src/hooks/index.d.ts +4 -0
- package/dist/components/table/src/hooks/use-column-order.d.ts +26 -0
- package/dist/components/table/src/hooks/use-column-order.js +95 -0
- package/dist/components/table/src/hooks/use-column-resize.d.ts +17 -0
- package/dist/components/table/src/hooks/use-column-resize.js +75 -0
- package/dist/components/table/src/hooks/use-consecutive-selection-style.d.ts +12 -0
- package/dist/components/table/src/hooks/use-consecutive-selection-style.js +28 -0
- package/dist/components/table/src/hooks/use-table.d.ts +35 -0
- package/dist/components/table/src/hooks/use-table.js +245 -0
- package/dist/components/table/src/index.d.ts +4 -0
- package/dist/components/table/src/table.d.ts +88 -0
- package/dist/components/table/src/table.js +24 -0
- package/dist/components/table/src/tv.d.ts +176 -0
- package/dist/components/table/src/tv.js +97 -0
- package/dist/components/table/src/types.d.ts +292 -0
- package/dist/components/table/tsup.config.d.ts +2 -0
- package/dist/components/tabs/dist/index.js +4 -3
- package/dist/components/tabs/src/tabs.d.ts +2 -2
- package/dist/components/tabs/src/tabs.js +5 -4
- package/dist/components/text-field/dist/index.d.ts +1 -1
- package/dist/components/text-field/dist/index.js +10 -10
- package/dist/components/text-field/src/components/field-addon.d.ts +1 -2
- package/dist/components/text-field/src/index.d.ts +3 -1
- package/dist/components/text-field/src/text-field.js +10 -10
- package/dist/components/textarea/dist/index.d.ts +33 -5
- package/dist/components/textarea/dist/index.js +32 -7
- package/dist/components/textarea/src/components/autosize/index.d.ts +6 -1
- package/dist/components/textarea/src/components/autosize/index.js +31 -6
- package/dist/components/textarea/src/textarea.js +1 -1
- package/dist/components/textarea/src/types.d.ts +33 -5
- package/dist/components/toggle-button/dist/index.d.ts +26 -2
- package/dist/components/toggle-button/src/context.d.ts +11 -0
- package/dist/components/toggle-button/src/context.js +13 -0
- package/dist/components/toggle-button/src/index.d.ts +2 -0
- package/dist/components/toggle-button/src/toggle-button.js +4 -4
- package/dist/components/toggle-button/src/toggle-group.d.ts +26 -0
- package/dist/components/toggle-button/src/toggle-group.js +156 -0
- package/dist/components/toggle-button/src/tv.d.ts +67 -3
- package/dist/components/toggle-button/src/tv.js +45 -14
- package/dist/components/tooltip/dist/index.d.ts +10 -43
- package/dist/components/tooltip/dist/index.js +35 -33
- package/dist/components/tooltip/src/components/tooltip-arrow.js +1 -1
- package/dist/components/tooltip/src/components/tooltip-content.js +5 -4
- package/dist/components/tooltip/src/context/index.d.ts +1 -0
- package/dist/components/tooltip/src/hooks/use-tooltip.js +3 -3
- package/dist/components/tooltip/src/index.d.ts +2 -4
- package/dist/components/tooltip/src/tooltip.d.ts +7 -1
- package/dist/components/tooltip/src/tooltip.js +6 -1
- package/dist/components/tooltip/src/tv.js +1 -1
- package/dist/components/virtualized-grid/dist/index.d.ts +2 -2
- package/dist/components/virtualized-grid/src/use-item-pool.js +14 -26
- package/dist/components/virtualized-grid/src/use-virtualized-grid.d.ts +1 -1
- package/dist/components/virtualized-grid/src/use-virtualized-grid.js +14 -8
- package/dist/components/virtualized-grid/src/utility.d.ts +1 -1
- package/dist/components/virtualized-grid/src/utility.js +37 -31
- package/dist/components/virtualized-grid/src/virtualized-grid.js +27 -17
- package/dist/context/choice-ui-provider.d.ts +35 -0
- package/dist/context/choice-ui-provider.js +14 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +53 -177
- package/package.json +1 -1
- package/dist/components/code-block/src/index.js +0 -15
- package/dist/components/rich-input/src/hooks/use-mouse-events.js +0 -113
- package/dist/components/rich-input/src/hooks/use-validation.js +0 -80
- package/dist/components/rich-input/src/utils/markdown-to-slate.js +0 -219
- /package/dist/components/command/src/{command-score.d.ts → utils/command-score.d.ts} +0 -0
- /package/dist/components/command/src/{command-score.js → utils/command-score.js} +0 -0
- /package/dist/components/pagination/src/{components → context}/pagination-context.d.ts +0 -0
- /package/dist/components/pagination/src/{components → context}/pagination-context.js +0 -0
|
@@ -47,89 +47,90 @@ const naturalLanguageMap = {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
const relativeDatePatterns = [
|
|
50
|
-
//
|
|
50
|
+
// Number + day/day
|
|
51
51
|
{ pattern: /(\d+)\s*天[后前]?/g, type: "day", multiplier: 1 },
|
|
52
52
|
{ pattern: /(\d+)\s*日[后前]?/g, type: "day", multiplier: 1 },
|
|
53
53
|
{ pattern: /(\d+)\s*days?\s*(later|ago)?/gi, type: "day", multiplier: 1 },
|
|
54
|
-
//
|
|
54
|
+
// Number + week/week
|
|
55
55
|
{ pattern: /(\d+)\s*周[后前]?/g, type: "week", multiplier: 1 },
|
|
56
56
|
{ pattern: /(\d+)\s*星期[后前]?/g, type: "week", multiplier: 1 },
|
|
57
57
|
{ pattern: /(\d+)\s*weeks?\s*(later|ago)?/gi, type: "week", multiplier: 1 },
|
|
58
|
-
//
|
|
58
|
+
// Number + month
|
|
59
59
|
{ pattern: /(\d+)\s*个?月[后前]?/g, type: "month", multiplier: 1 },
|
|
60
60
|
{ pattern: /(\d+)\s*months?\s*(later|ago)?/gi, type: "month", multiplier: 1 },
|
|
61
|
-
//
|
|
61
|
+
// Number + year
|
|
62
62
|
{ pattern: /(\d+)\s*年[后前]?/g, type: "year", multiplier: 1 },
|
|
63
63
|
{ pattern: /(\d+)\s*years?\s*(later|ago)?/gi, type: "year", multiplier: 1 }
|
|
64
64
|
];
|
|
65
65
|
const commonDateFormats = [
|
|
66
66
|
"yyyy-MM-dd",
|
|
67
|
-
//
|
|
67
|
+
// Most commonly used ISO format
|
|
68
68
|
"MM/dd/yyyy",
|
|
69
|
-
//
|
|
69
|
+
// American format
|
|
70
70
|
"dd/MM/yyyy",
|
|
71
|
-
//
|
|
71
|
+
// European format
|
|
72
72
|
"yyyy/MM/dd",
|
|
73
|
-
//
|
|
73
|
+
// Japanese format
|
|
74
74
|
"yyyyMMdd",
|
|
75
|
-
//
|
|
75
|
+
// Compact format
|
|
76
76
|
"yyyy-M-d",
|
|
77
|
-
//
|
|
77
|
+
// Loose format
|
|
78
78
|
"yyyy/M/d",
|
|
79
79
|
"M/d/yyyy",
|
|
80
80
|
"d/M/yyyy",
|
|
81
|
+
// German format
|
|
81
82
|
"dd.MM.yyyy",
|
|
82
|
-
//
|
|
83
|
+
// German format
|
|
83
84
|
"yyyy.MM.dd"
|
|
84
85
|
];
|
|
85
86
|
const commonTimeFormats = [
|
|
86
87
|
"HH:mm",
|
|
87
|
-
// 24
|
|
88
|
+
// 24 hour format (most commonly used)
|
|
88
89
|
"H:mm",
|
|
89
|
-
// 24
|
|
90
|
+
// 24 hour format without zero padding
|
|
90
91
|
"HH:mm:ss",
|
|
91
|
-
//
|
|
92
|
+
// With seconds
|
|
92
93
|
"h:mm a",
|
|
93
|
-
// 12
|
|
94
|
+
// 12 hour format without zero padding
|
|
94
95
|
"hh:mm a",
|
|
95
|
-
// 12
|
|
96
|
+
// 12 hour format with zero padding
|
|
96
97
|
"h:mm aa",
|
|
97
98
|
"HHmm",
|
|
98
|
-
//
|
|
99
|
+
// Compact format
|
|
99
100
|
"Hmm"
|
|
100
101
|
];
|
|
101
102
|
const parserConfig = {
|
|
102
|
-
//
|
|
103
|
+
// Parser priority (number越小优先级越高)
|
|
103
104
|
priority: {
|
|
104
105
|
digits: 1,
|
|
105
|
-
//
|
|
106
|
+
// Pure numeric parsing (fastest)
|
|
106
107
|
shortcuts: 2,
|
|
107
|
-
//
|
|
108
|
+
// Shortcut parsing
|
|
108
109
|
standardFormat: 3,
|
|
109
|
-
//
|
|
110
|
+
// Standard format parsing
|
|
110
111
|
naturalLanguage: 4,
|
|
111
|
-
//
|
|
112
|
+
// Natural language parsing
|
|
112
113
|
relativeDate: 5,
|
|
113
|
-
//
|
|
114
|
+
// Relative date parsing
|
|
114
115
|
englishDate: 6,
|
|
115
|
-
//
|
|
116
|
+
// English date parsing
|
|
116
117
|
fuzzyMatch: 7
|
|
117
|
-
//
|
|
118
|
+
// Fuzzy matching (slowest)
|
|
118
119
|
},
|
|
119
|
-
//
|
|
120
|
+
// Cache configuration
|
|
120
121
|
cache: {
|
|
121
122
|
enabled: true,
|
|
122
123
|
maxSize: 100,
|
|
123
|
-
//
|
|
124
|
+
// Maximum cache entries
|
|
124
125
|
ttl: 6e4
|
|
125
|
-
//
|
|
126
|
+
// Cache time (ms)
|
|
126
127
|
},
|
|
127
|
-
//
|
|
128
|
+
// Performance threshold
|
|
128
129
|
performance: {
|
|
129
130
|
maxParseTime: 50,
|
|
130
|
-
//
|
|
131
|
+
// Maximum parse time (ms)
|
|
131
132
|
enableProfiling: false
|
|
132
|
-
//
|
|
133
|
+
// Whether to enable performance analysis
|
|
133
134
|
}
|
|
134
135
|
};
|
|
135
136
|
class SimpleCache {
|
|
@@ -1,70 +1,70 @@
|
|
|
1
1
|
import { TZDate } from '@date-fns/tz';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* - 'exact-time':
|
|
5
|
-
* - 'date-only':
|
|
3
|
+
* Date comparison precision mode
|
|
4
|
+
* - 'exact-time': Exact time comparison (includes hours, minutes, seconds, milliseconds)
|
|
5
|
+
* - 'date-only': Date only comparison (ignores time part, compares year, month, day)
|
|
6
6
|
*/
|
|
7
7
|
export type DateComparisonMode = "exact-time" | "date-only";
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Time zone aware date parts
|
|
10
10
|
*/
|
|
11
11
|
export interface DateParts {
|
|
12
|
-
/**
|
|
12
|
+
/** Day (1-31) */
|
|
13
13
|
day: number;
|
|
14
|
-
/**
|
|
14
|
+
/** Month (0-11) */
|
|
15
15
|
month: number;
|
|
16
|
-
/**
|
|
16
|
+
/** Weekday (0-6, 0 is Sunday) */
|
|
17
17
|
weekday: number;
|
|
18
|
-
/**
|
|
18
|
+
/** Year */
|
|
19
19
|
year: number;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* Create time zone context options (for date-fns 4.0+)
|
|
23
23
|
*/
|
|
24
24
|
export declare function createTimeZoneContext(timeZone?: string): {
|
|
25
25
|
in: (value: Date | number | string) => TZDate;
|
|
26
26
|
} | undefined;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Time zone aware date comparison (only compares date part)
|
|
29
29
|
*
|
|
30
|
-
* @param date1
|
|
31
|
-
* @param date2
|
|
32
|
-
* @param timeZone
|
|
33
|
-
* @returns
|
|
30
|
+
* @param date1 First date
|
|
31
|
+
* @param date2 Second date
|
|
32
|
+
* @param timeZone Time zone (optional, default uses local timezone)
|
|
33
|
+
* @returns Whether they are the same day
|
|
34
34
|
*
|
|
35
35
|
* @example
|
|
36
36
|
* ```typescript
|
|
37
37
|
* const date1 = new Date('2025-01-15T23:30:00Z') // UTC
|
|
38
|
-
* const date2 = new Date('2025-01-16T08:30:00+09:00') // JST (
|
|
38
|
+
* const date2 = new Date('2025-01-16T08:30:00+09:00') // JST (same day)
|
|
39
39
|
* isSameDayInTimeZone(date1, date2, 'Asia/Tokyo') // true
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
42
|
export declare function isSameDayInTimeZone(date1: Date, date2: Date, timeZone?: string): boolean;
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
44
|
+
* Time zone aware month comparison
|
|
45
45
|
*/
|
|
46
46
|
export declare function isSameMonthInTimeZone(date1: Date, date2: Date, timeZone?: string): boolean;
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
48
|
+
* Time zone aware year comparison
|
|
49
49
|
*/
|
|
50
50
|
export declare function isSameYearInTimeZone(date1: Date, date2: Date, timeZone?: string): boolean;
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
52
|
+
* Time zone aware week comparison
|
|
53
53
|
*/
|
|
54
54
|
export declare function isSameWeekInTimeZone(date1: Date, date2: Date, timeZone?: string): boolean;
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* Time zone aware today check
|
|
57
57
|
*/
|
|
58
58
|
export declare function isTodayInTimeZone(date: Date, timeZone?: string): boolean;
|
|
59
59
|
/**
|
|
60
|
-
*
|
|
60
|
+
* Check if date is within specified range (supports time zone and comparison mode)
|
|
61
61
|
*
|
|
62
|
-
* @param date
|
|
63
|
-
* @param rangeStart
|
|
64
|
-
* @param rangeEnd
|
|
65
|
-
* @param timeZone
|
|
66
|
-
* @param mode
|
|
67
|
-
* @returns
|
|
62
|
+
* @param date Date to check
|
|
63
|
+
* @param rangeStart Range start date
|
|
64
|
+
* @param rangeEnd Range end date
|
|
65
|
+
* @param timeZone Time zone (optional)
|
|
66
|
+
* @param mode Comparison mode (default is date-only)
|
|
67
|
+
* @returns Whether it is within the range
|
|
68
68
|
*
|
|
69
69
|
* @example
|
|
70
70
|
* ```typescript
|
|
@@ -77,16 +77,16 @@ export declare function isTodayInTimeZone(date: Date, timeZone?: string): boolea
|
|
|
77
77
|
*/
|
|
78
78
|
export declare function isWithinRange(date: Date, rangeStart: Date, rangeEnd: Date, timeZone?: string, mode?: DateComparisonMode): boolean;
|
|
79
79
|
/**
|
|
80
|
-
*
|
|
80
|
+
* Get time zone aware detailed date parts
|
|
81
81
|
*/
|
|
82
82
|
export declare function getDateParts(date: Date, timeZone?: string): DateParts;
|
|
83
83
|
/**
|
|
84
|
-
*
|
|
84
|
+
* Get the unique key of the date (for Map/Set etc. data structures)
|
|
85
85
|
*
|
|
86
|
-
* @param date
|
|
87
|
-
* @param timeZone
|
|
88
|
-
* @param includeTime
|
|
89
|
-
* @returns
|
|
86
|
+
* @param date Date object
|
|
87
|
+
* @param timeZone Time zone (optional)
|
|
88
|
+
* @param includeTime Whether to include time part (default is false)
|
|
89
|
+
* @returns Formatted date key
|
|
90
90
|
*
|
|
91
91
|
* @example
|
|
92
92
|
* ```typescript
|
|
@@ -96,10 +96,10 @@ export declare function getDateParts(date: Date, timeZone?: string): DateParts;
|
|
|
96
96
|
*/
|
|
97
97
|
export declare function getDateKey(date: Date, timeZone?: string, includeTime?: boolean): string;
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* Batch compare date arrays for equality (time zone aware)
|
|
100
100
|
*/
|
|
101
101
|
export declare function areDatesEqual(dates1: Date[], dates2: Date[], timeZone?: string, mode?: DateComparisonMode): boolean;
|
|
102
102
|
/**
|
|
103
|
-
*
|
|
103
|
+
* Clear time zone date cache (for testing or memory management)
|
|
104
104
|
*/
|
|
105
105
|
export declare function clearTimeZoneCache(): void;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Locale } from 'date-fns';
|
|
2
2
|
export declare const LOCALE_MAP: Record<string, Locale>;
|
|
3
3
|
/**
|
|
4
|
-
* 🔧
|
|
4
|
+
* 🔧 Safe locale parsing function
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* - Locale
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
6
|
+
* Supports the following input formats:
|
|
7
|
+
* - Locale object: return directly
|
|
8
|
+
* - String: automatically map to the corresponding Locale object
|
|
9
|
+
* - Invalid value: return Chinese locale (zhCN)
|
|
10
10
|
*
|
|
11
|
-
* @param locale -
|
|
12
|
-
* @returns
|
|
11
|
+
* @param locale - Can be a Locale object or string
|
|
12
|
+
* @returns Parsed Locale object
|
|
13
13
|
*
|
|
14
14
|
* @example
|
|
15
15
|
* ```ts
|
|
@@ -21,13 +21,13 @@ export declare const LOCALE_MAP: Record<string, Locale>;
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function resolveLocale(locale: Locale | string | undefined | null): Locale;
|
|
23
23
|
/**
|
|
24
|
-
* 🔍
|
|
25
|
-
* @returns
|
|
24
|
+
* 🔍 Get all supported locale list
|
|
25
|
+
* @returns Supported locale string array
|
|
26
26
|
*/
|
|
27
27
|
export declare function getSupportedLocales(): string[];
|
|
28
28
|
/**
|
|
29
|
-
* 🎯
|
|
30
|
-
* @param locale - Locale
|
|
31
|
-
* @returns
|
|
29
|
+
* 🎯 Check if it is a Chinese locale
|
|
30
|
+
* @param locale - Locale object or string
|
|
31
|
+
* @returns Whether it is a Chinese locale
|
|
32
32
|
*/
|
|
33
33
|
export declare function isChineseLocale(locale: Locale | string | undefined | null): boolean;
|
|
@@ -16,14 +16,14 @@ export declare function generateCalendarDays(currentMonth: Date, weekStartsOn?:
|
|
|
16
16
|
export declare function formatMonthTitle(date: Date, locale?: Locale | string): string;
|
|
17
17
|
export declare function calculateWeekNumbers(calendarDays: Date[], locale?: Locale | string): number[];
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Infer selection mode based on value type
|
|
20
20
|
*/
|
|
21
21
|
export declare function inferSelectionMode(value: CalendarValue): SelectionMode;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Infer month from CalendarValue
|
|
24
24
|
*/
|
|
25
25
|
export declare function inferMonthFromValue(value: CalendarValue): Date | null;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Compare two CalendarValue for equality (supports time zone aware and comparison precision)
|
|
28
28
|
*/
|
|
29
29
|
export declare function isCalendarValueEqual(a: CalendarValue, b: CalendarValue, timeZone?: string, dateComparisonMode?: "exact-time" | "date-only"): boolean;
|
|
@@ -53,7 +53,7 @@ function calculateWeekNumbers(calendarDays, locale = zhCN) {
|
|
|
53
53
|
const weekNumber = getWeek(weekFirstDay, {
|
|
54
54
|
locale: safeLocale,
|
|
55
55
|
weekStartsOn: 1
|
|
56
|
-
// ISO
|
|
56
|
+
// ISO week number standard, week starts on Monday
|
|
57
57
|
});
|
|
58
58
|
weekNumbers.push(weekNumber);
|
|
59
59
|
}
|
|
@@ -17,8 +17,8 @@ function getEnglishMonths() {
|
|
|
17
17
|
if (!englishMonthsCache) {
|
|
18
18
|
englishMonthsCache = {
|
|
19
19
|
...generateMonthMapping(enUS, ["MMMM", "MMM", "MMM."]),
|
|
20
|
-
//
|
|
21
|
-
//
|
|
20
|
+
// Full name, abbreviation, dot abbreviation
|
|
21
|
+
// Common variations
|
|
22
22
|
sept: 9,
|
|
23
23
|
"sept.": 9
|
|
24
24
|
};
|
|
@@ -29,7 +29,7 @@ function getChineseMonths() {
|
|
|
29
29
|
if (!chineseMonthsCache) {
|
|
30
30
|
chineseMonthsCache = {
|
|
31
31
|
...generateMonthMapping(zhCN, ["MMMM", "M月"])
|
|
32
|
-
//
|
|
32
|
+
// Chinese month name and number month
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
return chineseMonthsCache;
|
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Unified numeric parsing tool functions
|
|
3
|
+
* Used to eliminate duplicate code in parsers
|
|
4
4
|
*/
|
|
5
|
-
/**
|
|
5
|
+
/** Extract pure numeric string */
|
|
6
6
|
export declare function extractDigits(input: string): string;
|
|
7
|
-
/**
|
|
7
|
+
/** Numeric segment extractor */
|
|
8
8
|
export declare class DigitExtractor {
|
|
9
9
|
private digits;
|
|
10
10
|
constructor(digits: string);
|
|
11
|
-
/**
|
|
11
|
+
/** Extract number at specified position */
|
|
12
12
|
extract(start: number, length: number): number;
|
|
13
|
-
/**
|
|
13
|
+
/** Extract year (first 2 digits) */
|
|
14
14
|
getYear2(): number;
|
|
15
|
-
/**
|
|
15
|
+
/** Extract year (first 4 digits) */
|
|
16
16
|
getYear4(): number;
|
|
17
|
-
/**
|
|
17
|
+
/** Extract month (first 2 digits) */
|
|
18
18
|
getMonth(): number;
|
|
19
|
-
/**
|
|
19
|
+
/** Extract date (3-4th digits) */
|
|
20
20
|
getDay(): number;
|
|
21
|
-
/**
|
|
21
|
+
/** Extract each part of 6 digits (YYMMDD format) */
|
|
22
22
|
getYYMMDD(): {
|
|
23
23
|
day: number;
|
|
24
24
|
month: number;
|
|
25
25
|
year: number;
|
|
26
26
|
};
|
|
27
|
-
/**
|
|
27
|
+
/** Extract each part of 8 digits (YYYYMMDD format) */
|
|
28
28
|
getYYYYMMDD(): {
|
|
29
29
|
day: number;
|
|
30
30
|
month: number;
|
|
31
31
|
year: number;
|
|
32
32
|
};
|
|
33
|
-
/**
|
|
33
|
+
/** Extract each part of 3 digits */
|
|
34
34
|
get3DigitParts(): {
|
|
35
35
|
first: number;
|
|
36
36
|
lastTwo: number;
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
/**
|
|
39
|
+
/** Year conversion tool */
|
|
40
40
|
export declare function convertTwoDigitYear(year: number): number;
|
|
41
|
-
/**
|
|
41
|
+
/** Check if it is a valid month and day combination */
|
|
42
42
|
export declare function isValidMonthDay(month: number, day: number): boolean;
|
|
43
|
-
/**
|
|
43
|
+
/** Check if 3 digits can be interpreted as month and day */
|
|
44
44
|
export declare function canBeMonthDay(firstDigit: number, lastTwoDigits: number): boolean;
|
|
45
|
-
/**
|
|
45
|
+
/** Check if it is a reasonable year */
|
|
46
46
|
export declare function isReasonableYear(year: number): boolean;
|
|
47
|
-
/**
|
|
47
|
+
/** Numeric parsing result */
|
|
48
48
|
export interface NumericParseResult {
|
|
49
49
|
day: number;
|
|
50
50
|
formatted: string;
|
|
51
51
|
month: number;
|
|
52
52
|
year: number;
|
|
53
53
|
}
|
|
54
|
-
/**
|
|
54
|
+
/** General 6-digit parser (YYMMDD) */
|
|
55
55
|
export declare function parseYYMMDD(digits: string, targetFormat: string): NumericParseResult | null;
|
|
56
|
-
/**
|
|
56
|
+
/** General 8-digit parser (YYYYMMDD) */
|
|
57
57
|
export declare function parseYYYYMMDD(digits: string, targetFormat: string): NumericParseResult | null;
|
|
58
|
-
/**
|
|
58
|
+
/** Intelligent 3-digit parser */
|
|
59
59
|
export declare function parse3Digits(digits: string, currentYear: number, targetFormat: string): NumericParseResult | null;
|
|
@@ -6,27 +6,27 @@ class DigitExtractor {
|
|
|
6
6
|
constructor(digits) {
|
|
7
7
|
this.digits = digits;
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
9
|
+
/** Extract number at specified position */
|
|
10
10
|
extract(start, length) {
|
|
11
11
|
return parseInt(this.digits.substring(start, start + length), 10);
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
13
|
+
/** Extract year (first 2 digits) */
|
|
14
14
|
getYear2() {
|
|
15
15
|
return this.extract(0, 2);
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
17
|
+
/** Extract year (first 4 digits) */
|
|
18
18
|
getYear4() {
|
|
19
19
|
return this.extract(0, 4);
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
21
|
+
/** Extract month (first 2 digits) */
|
|
22
22
|
getMonth() {
|
|
23
23
|
return this.extract(0, 2);
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
25
|
+
/** Extract date (3-4th digits) */
|
|
26
26
|
getDay() {
|
|
27
27
|
return this.extract(2, 2);
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
29
|
+
/** Extract each part of 6 digits (YYMMDD format) */
|
|
30
30
|
getYYMMDD() {
|
|
31
31
|
return {
|
|
32
32
|
year: this.extract(0, 2),
|
|
@@ -34,7 +34,7 @@ class DigitExtractor {
|
|
|
34
34
|
day: this.extract(4, 2)
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
37
|
+
/** Extract each part of 8 digits (YYYYMMDD format) */
|
|
38
38
|
getYYYYMMDD() {
|
|
39
39
|
return {
|
|
40
40
|
year: this.extract(0, 4),
|
|
@@ -42,7 +42,7 @@ class DigitExtractor {
|
|
|
42
42
|
day: this.extract(6, 2)
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
/**
|
|
45
|
+
/** Extract each part of 3 digits */
|
|
46
46
|
get3DigitParts() {
|
|
47
47
|
return {
|
|
48
48
|
first: this.extract(0, 1),
|
|
@@ -3,33 +3,33 @@ import { DateInputValue, DateParserOptions, DateDataFormat } from '../../types';
|
|
|
3
3
|
export type ParseResult = Date | null;
|
|
4
4
|
export type DetailedParseResult = DateInputValue;
|
|
5
5
|
export interface ParseOptions {
|
|
6
|
-
/**
|
|
6
|
+
/** Whether to return detailed information */
|
|
7
7
|
detailed?: boolean;
|
|
8
|
-
/**
|
|
8
|
+
/** Whether to enable natural language parsing */
|
|
9
9
|
enableNaturalLanguage?: boolean;
|
|
10
|
-
/**
|
|
10
|
+
/** Whether to enable relative date parsing */
|
|
11
11
|
enableRelativeDate?: boolean;
|
|
12
|
-
/**
|
|
12
|
+
/** Whether to enable smart correction */
|
|
13
13
|
enableSmartCorrection?: boolean;
|
|
14
|
-
/**
|
|
14
|
+
/** Target format */
|
|
15
15
|
format?: DateDataFormat;
|
|
16
|
-
/**
|
|
16
|
+
/** Language environment */
|
|
17
17
|
locale?: Locale;
|
|
18
|
-
/**
|
|
18
|
+
/** Whether to strict mode */
|
|
19
19
|
strict?: boolean;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* Unified date parser - merged the original tryRelaxedParsing and smartParseDate
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
* 1.
|
|
26
|
-
* 2.
|
|
27
|
-
* 3.
|
|
28
|
-
* 4.
|
|
29
|
-
* 5.
|
|
30
|
-
* 6.
|
|
31
|
-
* 7.
|
|
32
|
-
* 8.
|
|
24
|
+
* Parsing strategy sorted by priority (corrected to correct priority):
|
|
25
|
+
* 1. Standard format parsing - strictly parse according to the specified format
|
|
26
|
+
* 2. Intelligent numeric parsing (core function) - intelligent guess of pure numeric input [most important]
|
|
27
|
+
* 3. Shortcut parsing - today, tomorrow, yesterday, etc.
|
|
28
|
+
* 4. Extended relative date parsing - "3 days ago", "next week", etc.
|
|
29
|
+
* 5. Natural language parsing - "today", "tomorrow", "next Wednesday", etc.
|
|
30
|
+
* 6. Relative date parsing - "+3d", "-1w", etc. short format
|
|
31
|
+
* 7. English date parsing - "Jan 15, 2024", "March 3rd", etc.
|
|
32
|
+
* 8. Common format attempt - try other commonly used date formats
|
|
33
33
|
*/
|
|
34
34
|
export declare function parseDate(input: string, options: ParseOptions & {
|
|
35
35
|
detailed: true;
|
|
@@ -193,7 +193,7 @@ function buildYYYYMMDDFormat(digitOnlyInput, length, currentYear, currentMonth,
|
|
|
193
193
|
return `${year}-${monthTens}-${currentDay}`;
|
|
194
194
|
} else if (length === 6) {
|
|
195
195
|
const result = parseYYMMDD(digitOnlyInput, "yyyy-MM-dd");
|
|
196
|
-
return (result == null ? void 0 : result.formatted) || //
|
|
196
|
+
return (result == null ? void 0 : result.formatted) || // Degrade to intelligent correction, force using YYMMDD format
|
|
197
197
|
(() => {
|
|
198
198
|
const yymmddYear = parseInt(digitOnlyInput.substring(0, 2), 10);
|
|
199
199
|
const yymmddMonth = parseInt(digitOnlyInput.substring(2, 4), 10);
|
|
@@ -210,7 +210,7 @@ function buildYYYYMMDDFormat(digitOnlyInput, length, currentYear, currentMonth,
|
|
|
210
210
|
return `${year}-${validMonth}-${dayTens}`;
|
|
211
211
|
} else if (length === 8) {
|
|
212
212
|
const result = parseYYYYMMDD(digitOnlyInput, "yyyy-MM-dd");
|
|
213
|
-
return (result == null ? void 0 : result.formatted) || //
|
|
213
|
+
return (result == null ? void 0 : result.formatted) || // Degrade to intelligent correction
|
|
214
214
|
(() => {
|
|
215
215
|
const year = parseInt(digitOnlyInput.substring(0, 4), 10);
|
|
216
216
|
const month = parseInt(digitOnlyInput.substring(4, 6), 10);
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { DateDataFormat } from '../../types';
|
|
2
2
|
export interface PredictionResult {
|
|
3
|
-
/**
|
|
3
|
+
/** Confidence (0-1) */
|
|
4
4
|
confidence: number;
|
|
5
|
-
/**
|
|
5
|
+
/** Description */
|
|
6
6
|
description: string;
|
|
7
|
-
/**
|
|
7
|
+
/** Predicted date string */
|
|
8
8
|
prediction: string;
|
|
9
|
-
/**
|
|
9
|
+
/** Prediction type */
|
|
10
10
|
type: "numeric" | "shortcut" | "relative" | "parsed";
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* Enhanced intelligent prediction function
|
|
14
|
+
* Directly use parseDate function, ensure prediction result is 100% consistent with actual formatting
|
|
15
15
|
*/
|
|
16
16
|
export declare function getEnhancedPrediction(input: string, targetFormat?: DateDataFormat): PredictionResult | null;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Backward compatible getPredictionInfo function
|
|
19
19
|
*/
|
|
20
20
|
export declare function getPredictionInfo(input: string, targetFormat: DateDataFormat): {
|
|
21
21
|
description: string;
|
|
@@ -25,17 +25,17 @@ function parseRelativeDate(input) {
|
|
|
25
25
|
function parseExtendedRelativeDate(input) {
|
|
26
26
|
const now = /* @__PURE__ */ new Date();
|
|
27
27
|
const patterns = [
|
|
28
|
-
//
|
|
28
|
+
// +number (days)
|
|
29
29
|
{
|
|
30
30
|
regex: /^\+(\d+)$/,
|
|
31
31
|
handler: (match) => addDays(now, parseInt(match[1], 10))
|
|
32
32
|
},
|
|
33
|
-
//
|
|
33
|
+
// -number (days)
|
|
34
34
|
{
|
|
35
35
|
regex: /^-(\d+)$/,
|
|
36
36
|
handler: (match) => subDays(now, parseInt(match[1], 10))
|
|
37
37
|
},
|
|
38
|
-
// w
|
|
38
|
+
// w+number (weeks)
|
|
39
39
|
{
|
|
40
40
|
regex: /^w\+(\d+)$/i,
|
|
41
41
|
handler: (match) => addWeeks(now, parseInt(match[1], 10))
|
|
@@ -44,7 +44,7 @@ function parseExtendedRelativeDate(input) {
|
|
|
44
44
|
regex: /^w-(\d+)$/i,
|
|
45
45
|
handler: (match) => subWeeks(now, parseInt(match[1], 10))
|
|
46
46
|
},
|
|
47
|
-
// m
|
|
47
|
+
// m+number (months)
|
|
48
48
|
{
|
|
49
49
|
regex: /^m\+(\d+)$/i,
|
|
50
50
|
handler: (match) => addMonths(now, parseInt(match[1], 10))
|
|
@@ -53,7 +53,7 @@ function parseExtendedRelativeDate(input) {
|
|
|
53
53
|
regex: /^m-(\d+)$/i,
|
|
54
54
|
handler: (match) => subMonths(now, parseInt(match[1], 10))
|
|
55
55
|
},
|
|
56
|
-
// y
|
|
56
|
+
// y+number (years)
|
|
57
57
|
{
|
|
58
58
|
regex: /^y\+(\d+)$/i,
|
|
59
59
|
handler: (match) => addYears(now, parseInt(match[1], 10))
|
|
@@ -62,7 +62,7 @@ function parseExtendedRelativeDate(input) {
|
|
|
62
62
|
regex: /^y-(\d+)$/i,
|
|
63
63
|
handler: (match) => subYears(now, parseInt(match[1], 10))
|
|
64
64
|
},
|
|
65
|
-
//
|
|
65
|
+
// Chinese relative expression
|
|
66
66
|
{
|
|
67
67
|
regex: /^(\d+)天后$/,
|
|
68
68
|
handler: (match) => addDays(now, parseInt(match[1], 10))
|