@choice-ui/react 1.4.3 → 1.4.5
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 +15 -340
- 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 +2 -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/mention-spacing.js +1 -27
- package/dist/components/context-input/src/utils/slate-converters.d.ts +6 -6
- package/dist/components/context-input/src/utils/slate-converters.js +3 -69
- 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 +50 -195
- 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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RichInputViewportProps } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
* RichInput.Viewport -
|
|
4
|
-
*
|
|
3
|
+
* RichInput.Viewport - Rich text input viewport container
|
|
4
|
+
* Uses ScrollArea for scrolling functionality
|
|
5
5
|
*/
|
|
6
6
|
export declare const RichInputViewport: import('react').ForwardRefExoticComponent<RichInputViewportProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
7
7
|
export default RichInputViewport;
|
|
@@ -2,7 +2,7 @@ import { default as React } from 'react';
|
|
|
2
2
|
import { ElementRenderProps } from '../components';
|
|
3
3
|
import { CustomEditor, UseEditorConfigProps } from '../types';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Editor Config Hook - Separates editor creation and event handling logic
|
|
6
6
|
*/
|
|
7
7
|
export declare const useEditorConfig: (props: UseEditorConfigProps) => {
|
|
8
8
|
editor: CustomEditor;
|
|
@@ -36,6 +36,9 @@ const useEditorEffects = (props) => {
|
|
|
36
36
|
};
|
|
37
37
|
}, [editor, isCharactersStyleOpen, setSwitchUrlInput]);
|
|
38
38
|
useEffect(() => {
|
|
39
|
+
if (!value || !Array.isArray(value) || value.length === 0) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
39
42
|
const firstNode = value[0];
|
|
40
43
|
if (Element.isElement(firstNode) && firstNode.children.length > 0) {
|
|
41
44
|
const firstChild = firstNode.children[0];
|
|
@@ -72,7 +72,7 @@ const useFloatingUI = (options = {}) => {
|
|
|
72
72
|
whileElementsMounted: autoUpdate
|
|
73
73
|
});
|
|
74
74
|
const charactersDismiss = useDismiss(charactersContext, {
|
|
75
|
-
//
|
|
75
|
+
// Allow clicking internal elements without closing
|
|
76
76
|
bubbles: false
|
|
77
77
|
});
|
|
78
78
|
const { getFloatingProps: getCharactersFloatingProps } = useInteractions([charactersDismiss]);
|
|
@@ -6,16 +6,16 @@ interface UseKeyboardShortcutsProps {
|
|
|
6
6
|
setIsParagraphExpanded?: (value: boolean) => void;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Keyboard Shortcuts Management Hook
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
14
|
-
* -
|
|
15
|
-
* -
|
|
16
|
-
* -
|
|
17
|
-
* - ESC:
|
|
18
|
-
* - Tab:
|
|
11
|
+
* Shortcuts:
|
|
12
|
+
* - Code mode: Meta + /
|
|
13
|
+
* - Headings H1-H6: Meta + 1/2/3/4/5/6
|
|
14
|
+
* - Bold: Meta + B
|
|
15
|
+
* - Italic: Meta + I
|
|
16
|
+
* - Underline: Meta + U
|
|
17
|
+
* - ESC: Close paragraph menu
|
|
18
|
+
* - Tab: Disable focus switch based on config
|
|
19
19
|
*/
|
|
20
20
|
export declare const useKeyboardShortcuts: (props: UseKeyboardShortcutsProps) => {
|
|
21
21
|
handleKeyDown: (event: import('react').KeyboardEvent<Element>) => void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Descendant } from 'slate';
|
|
2
2
|
import { UseRichInputProps } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
* Rich Input
|
|
5
|
-
*
|
|
4
|
+
* Rich Input controlled component logic
|
|
5
|
+
* Based on context-input implementation to solve Slate uncontrolled component issues
|
|
6
6
|
*/
|
|
7
7
|
export declare const useRichInput: ({ value, onChange, editor, autoFocus, autoMoveToEnd, }: UseRichInputProps) => {
|
|
8
8
|
slateValue: Descendant[];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useRef, useState, useEffect, useMemo, useCallback } from "react";
|
|
1
|
+
import { useRef, useState, useEffect, useCallback } from "react";
|
|
3
2
|
import { Editor, Transforms } from "slate";
|
|
4
3
|
import { ReactEditor } from "slate-react";
|
|
5
4
|
import { useEventCallback } from "usehooks-ts";
|
|
5
|
+
const EMPTY_PARAGRAPH = [{ type: "paragraph", children: [{ text: "" }] }];
|
|
6
6
|
const useRichInput = ({
|
|
7
7
|
value,
|
|
8
8
|
onChange,
|
|
@@ -11,35 +11,58 @@ const useRichInput = ({
|
|
|
11
11
|
autoMoveToEnd
|
|
12
12
|
}) => {
|
|
13
13
|
const isUpdatingRef = useRef(false);
|
|
14
|
+
const debounceTimerRef = useRef(null);
|
|
14
15
|
const [slateValue, setSlateValue] = useState(() => {
|
|
15
|
-
return value
|
|
16
|
+
return value && Array.isArray(value) && value.length > 0 ? value : EMPTY_PARAGRAPH;
|
|
16
17
|
});
|
|
17
18
|
useEffect(() => {
|
|
18
|
-
if (!editor || !value || isUpdatingRef.current) {
|
|
19
|
+
if (!editor || !value || !Array.isArray(value) || isUpdatingRef.current) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
22
|
const needsUpdate = JSON.stringify(editor.children) !== JSON.stringify(value);
|
|
22
23
|
if (needsUpdate) {
|
|
23
|
-
|
|
24
|
-
editor
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
try {
|
|
25
|
+
Editor.withoutNormalizing(editor, () => {
|
|
26
|
+
editor.children = value;
|
|
27
|
+
if (autoMoveToEnd) {
|
|
28
|
+
try {
|
|
29
|
+
const endPoint = Editor.end(editor, []);
|
|
30
|
+
Transforms.select(editor, endPoint);
|
|
31
|
+
} catch {
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
;
|
|
35
|
+
editor.onChange();
|
|
36
|
+
});
|
|
37
|
+
} catch {
|
|
38
|
+
}
|
|
31
39
|
if (autoFocus) {
|
|
32
40
|
setTimeout(() => {
|
|
33
|
-
|
|
41
|
+
try {
|
|
42
|
+
ReactEditor.focus(editor);
|
|
43
|
+
} catch {
|
|
44
|
+
}
|
|
34
45
|
}, 0);
|
|
35
46
|
}
|
|
36
47
|
setSlateValue(value);
|
|
37
48
|
}
|
|
38
49
|
}, [value, editor, autoFocus, autoMoveToEnd]);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
return () => {
|
|
52
|
+
if (debounceTimerRef.current) {
|
|
53
|
+
clearTimeout(debounceTimerRef.current);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}, []);
|
|
57
|
+
const debouncedOnChange = useCallback(
|
|
58
|
+
(newValue) => {
|
|
59
|
+
if (debounceTimerRef.current) {
|
|
60
|
+
clearTimeout(debounceTimerRef.current);
|
|
61
|
+
}
|
|
62
|
+
debounceTimerRef.current = setTimeout(() => {
|
|
63
|
+
onChange == null ? void 0 : onChange(newValue);
|
|
64
|
+
}, 100);
|
|
65
|
+
},
|
|
43
66
|
[onChange]
|
|
44
67
|
);
|
|
45
68
|
const handleChange = useCallback(
|
|
@@ -12,8 +12,7 @@ const useSelectionEvents = (props) => {
|
|
|
12
12
|
setIsCharactersStyleOpen,
|
|
13
13
|
setIsParagraphStyleOpen,
|
|
14
14
|
setIsUrlOpen,
|
|
15
|
-
setCharactersUrl
|
|
16
|
-
isParagraphExpanded
|
|
15
|
+
setCharactersUrl
|
|
17
16
|
} = props;
|
|
18
17
|
const isDraggingRef = useRef(false);
|
|
19
18
|
const selectionTimeoutRef = useRef(null);
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export * from './components';
|
|
5
|
-
export * from './context/rich-input-context';
|
|
1
|
+
export { RichInput } from './rich-input';
|
|
2
|
+
export type { RichInputProps } from './types';
|
|
3
|
+
export { slateToMarkdown } from './utils';
|
|
@@ -176,7 +176,7 @@ const RichInputBase = forwardRef((props, ref) => {
|
|
|
176
176
|
orientation: "vertical",
|
|
177
177
|
onScroll: updateFloating,
|
|
178
178
|
children: children ? children : (
|
|
179
|
-
//
|
|
179
|
+
// Default render - backward compatible
|
|
180
180
|
/* @__PURE__ */ jsx(RichInputViewport, { children: /* @__PURE__ */ jsx(RichInputEditableComponent, {}) })
|
|
181
181
|
)
|
|
182
182
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ParagraphPilcrow, ParagraphQuote, ParagraphCode, ParagraphHeading1, ParagraphHeading2, ParagraphHeading3, ParagraphListOrdered, ParagraphList, ParagraphListTodo, ParagraphBold, ParagraphItalic, ParagraphUnderline, ParagraphStrikethrough } from "@choiceform/icons-react";
|
|
2
2
|
import React from "react";
|
|
3
3
|
const charactersOptions = [
|
|
4
4
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Descendant } from 'slate';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* Convert Markdown text to Slate.js node format
|
|
4
|
+
* A simplified implementation supporting basic Markdown syntax
|
|
5
5
|
*/
|
|
6
6
|
export declare function markdownToSlate(markdown: string): Descendant[];
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { Text } from "slate";
|
|
2
2
|
function slateToMarkdown(nodes) {
|
|
3
|
+
if (!nodes || !Array.isArray(nodes)) {
|
|
4
|
+
return "";
|
|
5
|
+
}
|
|
3
6
|
return nodes.map((node) => serializeNode(node)).join("\n");
|
|
4
7
|
}
|
|
5
8
|
function serializeNode(node) {
|
|
9
|
+
if (!node) {
|
|
10
|
+
return "";
|
|
11
|
+
}
|
|
6
12
|
if (Text.isText(node)) {
|
|
7
13
|
return serializeText(node);
|
|
8
14
|
}
|
|
@@ -51,6 +57,9 @@ function serializeNode(node) {
|
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
59
|
function serializeChildren(children) {
|
|
60
|
+
if (!children || !Array.isArray(children)) {
|
|
61
|
+
return "";
|
|
62
|
+
}
|
|
54
63
|
return children.map((child) => serializeNode(child)).join("");
|
|
55
64
|
}
|
|
56
65
|
function serializeText(text) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
|
|
3
3
|
type ScrollbarVisibilityType = "auto" | "always" | "scroll" | "hover";
|
|
4
|
-
type ScrollbarMode = "default" | "
|
|
4
|
+
type ScrollbarMode = "default" | "padding-y" | "padding-x" | "padding-b" | "padding-t" | "padding-l" | "padding-r";
|
|
5
5
|
type ScrollAreaVariant = "default" | "light" | "dark";
|
|
6
6
|
type ScrollOrientation = "vertical" | "horizontal" | "both";
|
|
7
7
|
type HoverBoundary = "none" | "hover";
|
|
@@ -14,24 +14,24 @@ interface ScrollState {
|
|
|
14
14
|
scrollWidth: number;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Scroll position information - simplified version, only providing core data
|
|
18
18
|
*/
|
|
19
19
|
interface ScrollPosition {
|
|
20
|
-
/**
|
|
20
|
+
/** Horizontal scroll position (0-1) */
|
|
21
21
|
left: number;
|
|
22
|
-
/**
|
|
22
|
+
/** Vertical scroll position (0-1) */
|
|
23
23
|
top: number;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Render prop
|
|
26
|
+
* Render prop function type
|
|
27
27
|
*/
|
|
28
28
|
type ScrollAreaRenderProp = (position: ScrollPosition) => React.ReactNode;
|
|
29
29
|
interface ScrollAreaProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
|
|
30
|
-
/**
|
|
30
|
+
/** Accessible name */
|
|
31
31
|
"aria-label"?: string;
|
|
32
|
-
/**
|
|
32
|
+
/** Reference to the element ID providing the label */
|
|
33
33
|
"aria-labelledby"?: string;
|
|
34
|
-
/**
|
|
34
|
+
/** Standard children or render prop function */
|
|
35
35
|
children?: React.ReactNode | ScrollAreaRenderProp;
|
|
36
36
|
hoverBoundary?: HoverBoundary;
|
|
37
37
|
orientation?: ScrollOrientation;
|
|
@@ -56,7 +56,7 @@ declare const ScrollArea: react.ForwardRefExoticComponent<ScrollAreaProps & reac
|
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* Merged scroll state and visibility management hook - avoid duplicate scroll event listening
|
|
60
60
|
*/
|
|
61
61
|
declare function useScrollStateAndVisibility(viewport: HTMLDivElement | null): {
|
|
62
62
|
scrollState: ScrollState;
|
|
@@ -67,7 +67,7 @@ declare function useScrollStateAndVisibility(viewport: HTMLDivElement | null): {
|
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* Cached thumb style calculation hook
|
|
71
71
|
*/
|
|
72
72
|
declare function useThumbStyle(scrollState: ScrollState, orientation: "vertical" | "horizontal"): {
|
|
73
73
|
height: string;
|
|
@@ -81,7 +81,7 @@ declare function useThumbStyle(scrollState: ScrollState, orientation: "vertical"
|
|
|
81
81
|
top?: undefined;
|
|
82
82
|
};
|
|
83
83
|
/**
|
|
84
|
-
* 🚀
|
|
84
|
+
* 🚀 High-performance thumb drag hook - optimize drag responsiveness and performance
|
|
85
85
|
*/
|
|
86
86
|
declare function useThumbDrag(viewport: HTMLDivElement | null, scrollState: ScrollState, orientation: "vertical" | "horizontal"): {
|
|
87
87
|
isDragging: boolean;
|
|
@@ -89,11 +89,11 @@ declare function useThumbDrag(viewport: HTMLDivElement | null, scrollState: Scro
|
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
|
-
*
|
|
92
|
+
* Cached overflow check hook
|
|
93
93
|
*/
|
|
94
94
|
declare function useHasOverflow(scrollState: ScrollState, orientation: "vertical" | "horizontal"): boolean;
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
96
|
+
* Cached scrollbar display judgment hook
|
|
97
97
|
*/
|
|
98
98
|
declare function useScrollbarShouldShow(type: ScrollbarVisibilityType, hasOverflow: boolean, isScrolling: boolean, isHovering: boolean): boolean;
|
|
99
99
|
|
|
@@ -110,13 +110,13 @@ interface PerformanceMonitorOptions {
|
|
|
110
110
|
logInterval?: number;
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
113
|
-
* 🔍 ScrollArea
|
|
113
|
+
* 🔍 ScrollArea performance monitoring Hook
|
|
114
114
|
*
|
|
115
|
-
*
|
|
116
|
-
* -
|
|
117
|
-
* -
|
|
118
|
-
* -
|
|
119
|
-
* -
|
|
115
|
+
* Used to monitor and diagnose scroll performance issues, including:
|
|
116
|
+
* - Frame rate monitoring
|
|
117
|
+
* - Event frequency statistics
|
|
118
|
+
* - Performance bottleneck detection
|
|
119
|
+
* - Real-time performance reporting
|
|
120
120
|
*/
|
|
121
121
|
declare function useScrollPerformanceMonitor(viewport: HTMLDivElement | null, options?: PerformanceMonitorOptions): PerformanceMetrics | null;
|
|
122
122
|
|
|
@@ -102,7 +102,7 @@ function useScrollStateAndVisibility(viewport) {
|
|
|
102
102
|
passive: true,
|
|
103
103
|
signal,
|
|
104
104
|
capture: false
|
|
105
|
-
//
|
|
105
|
+
// Avoid unnecessary event capture
|
|
106
106
|
});
|
|
107
107
|
window.addEventListener("resize", handleResize, {
|
|
108
108
|
passive: true,
|
|
@@ -144,10 +144,10 @@ function useScrollStateAndVisibility(viewport) {
|
|
|
144
144
|
subtree: true,
|
|
145
145
|
attributes: true,
|
|
146
146
|
attributeFilter: ["style", "class"],
|
|
147
|
-
//
|
|
147
|
+
// Only listen to attributes that affect layout
|
|
148
148
|
characterData: true,
|
|
149
149
|
characterDataOldValue: false,
|
|
150
|
-
//
|
|
150
|
+
// No need for old value, improve performance
|
|
151
151
|
attributeOldValue: false
|
|
152
152
|
});
|
|
153
153
|
}
|
|
@@ -387,12 +387,12 @@ var ScrollTv = tcv({
|
|
|
387
387
|
default: {
|
|
388
388
|
scrollbar: "p-0.5"
|
|
389
389
|
},
|
|
390
|
-
"
|
|
391
|
-
"
|
|
392
|
-
"
|
|
393
|
-
"
|
|
394
|
-
"
|
|
395
|
-
"
|
|
390
|
+
"padding-y": {},
|
|
391
|
+
"padding-t": {},
|
|
392
|
+
"padding-b": {},
|
|
393
|
+
"padding-x": {},
|
|
394
|
+
"padding-l": {},
|
|
395
|
+
"padding-r": {}
|
|
396
396
|
},
|
|
397
397
|
hoverBoundary: {
|
|
398
398
|
none: {},
|
|
@@ -451,42 +451,42 @@ var ScrollTv = tcv({
|
|
|
451
451
|
},
|
|
452
452
|
{
|
|
453
453
|
orientation: "vertical",
|
|
454
|
-
scrollbarMode: "
|
|
454
|
+
scrollbarMode: "padding-y",
|
|
455
455
|
class: {
|
|
456
456
|
scrollbar: "px-0.5 py-2"
|
|
457
457
|
}
|
|
458
458
|
},
|
|
459
459
|
{
|
|
460
460
|
orientation: "vertical",
|
|
461
|
-
scrollbarMode: "
|
|
461
|
+
scrollbarMode: "padding-t",
|
|
462
462
|
class: {
|
|
463
463
|
scrollbar: "px-0.5 pt-2"
|
|
464
464
|
}
|
|
465
465
|
},
|
|
466
466
|
{
|
|
467
467
|
orientation: "vertical",
|
|
468
|
-
scrollbarMode: "
|
|
468
|
+
scrollbarMode: "padding-b",
|
|
469
469
|
class: {
|
|
470
470
|
scrollbar: "px-0.5 pb-2"
|
|
471
471
|
}
|
|
472
472
|
},
|
|
473
473
|
{
|
|
474
474
|
orientation: "horizontal",
|
|
475
|
-
scrollbarMode: "
|
|
475
|
+
scrollbarMode: "padding-x",
|
|
476
476
|
class: {
|
|
477
477
|
scrollbar: "px-2 py-0.5"
|
|
478
478
|
}
|
|
479
479
|
},
|
|
480
480
|
{
|
|
481
481
|
orientation: "horizontal",
|
|
482
|
-
scrollbarMode: "
|
|
482
|
+
scrollbarMode: "padding-l",
|
|
483
483
|
class: {
|
|
484
484
|
scrollbar: "py-0.5 pl-2"
|
|
485
485
|
}
|
|
486
486
|
},
|
|
487
487
|
{
|
|
488
488
|
orientation: "horizontal",
|
|
489
|
-
scrollbarMode: "
|
|
489
|
+
scrollbarMode: "padding-r",
|
|
490
490
|
class: {
|
|
491
491
|
scrollbar: "py-0.5 pr-2"
|
|
492
492
|
}
|
|
@@ -559,7 +559,7 @@ function shouldShowCorner(scrollState) {
|
|
|
559
559
|
var ScrollAreaCorner = forwardRef(
|
|
560
560
|
({ className, ...props }, ref) => {
|
|
561
561
|
const { scrollState, scrollbarMode, variant } = useScrollAreaContext();
|
|
562
|
-
const
|
|
562
|
+
const tv = useMemo(
|
|
563
563
|
() => ScrollTv({
|
|
564
564
|
variant,
|
|
565
565
|
scrollbarMode,
|
|
@@ -582,7 +582,7 @@ var ScrollAreaCorner = forwardRef(
|
|
|
582
582
|
"div",
|
|
583
583
|
{
|
|
584
584
|
ref,
|
|
585
|
-
className: tcx(
|
|
585
|
+
className: tcx(tv.corner(), className),
|
|
586
586
|
style: cornerStyle,
|
|
587
587
|
role: "presentation",
|
|
588
588
|
"aria-hidden": "true",
|
|
@@ -629,7 +629,7 @@ var ScrollAreaScrollbar = forwardRef(
|
|
|
629
629
|
},
|
|
630
630
|
[viewport, scrollState, orientation]
|
|
631
631
|
);
|
|
632
|
-
const
|
|
632
|
+
const tv = useMemo(
|
|
633
633
|
() => ScrollTv({
|
|
634
634
|
variant,
|
|
635
635
|
scrollbarMode,
|
|
@@ -660,7 +660,7 @@ var ScrollAreaScrollbar = forwardRef(
|
|
|
660
660
|
{
|
|
661
661
|
ref: setRef,
|
|
662
662
|
id: scrollbarId,
|
|
663
|
-
className: tcx(
|
|
663
|
+
className: tcx(tv.scrollbar(), className),
|
|
664
664
|
style: getScrollbarPositionStyle(orientation),
|
|
665
665
|
onClick: handleTrackClick,
|
|
666
666
|
role: "scrollbar",
|
|
@@ -682,7 +682,7 @@ var ScrollAreaThumb = forwardRef(
|
|
|
682
682
|
const { viewport, scrollState, scrollbarMode, variant, setThumbX, setThumbY } = useScrollAreaContext();
|
|
683
683
|
const { handleMouseDown } = useThumbDrag(viewport, scrollState, orientation);
|
|
684
684
|
const thumbStyle = useThumbStyle(scrollState, orientation);
|
|
685
|
-
const
|
|
685
|
+
const tv = useMemo(
|
|
686
686
|
() => ScrollTv({
|
|
687
687
|
variant,
|
|
688
688
|
scrollbarMode,
|
|
@@ -709,7 +709,7 @@ var ScrollAreaThumb = forwardRef(
|
|
|
709
709
|
"div",
|
|
710
710
|
{
|
|
711
711
|
ref: setRef,
|
|
712
|
-
className: tcx(
|
|
712
|
+
className: tcx(tv.thumb(), className),
|
|
713
713
|
style: thumbStyle,
|
|
714
714
|
onMouseDown: handleMouseDown,
|
|
715
715
|
role: "button",
|
|
@@ -779,7 +779,7 @@ var ScrollAreaRoot = forwardRef(
|
|
|
779
779
|
type: staticConfig.type,
|
|
780
780
|
isHovering,
|
|
781
781
|
isScrolling,
|
|
782
|
-
//
|
|
782
|
+
// Add ID-related values
|
|
783
783
|
rootId,
|
|
784
784
|
viewportId,
|
|
785
785
|
scrollbarXId,
|
|
@@ -802,7 +802,7 @@ var ScrollAreaRoot = forwardRef(
|
|
|
802
802
|
scrollbarYId
|
|
803
803
|
]
|
|
804
804
|
);
|
|
805
|
-
const
|
|
805
|
+
const tv = useMemo(
|
|
806
806
|
() => ScrollTv({
|
|
807
807
|
variant,
|
|
808
808
|
scrollbarMode,
|
|
@@ -864,7 +864,7 @@ var ScrollAreaRoot = forwardRef(
|
|
|
864
864
|
{
|
|
865
865
|
ref,
|
|
866
866
|
id: rootId,
|
|
867
|
-
className: tcx(
|
|
867
|
+
className: tcx(tv.root(), className),
|
|
868
868
|
onMouseEnter: handleMouseEnter,
|
|
869
869
|
onMouseLeave: handleMouseLeave,
|
|
870
870
|
"aria-label": ariaLabel,
|
|
@@ -7,7 +7,7 @@ import { tcx } from "../../../../shared/utils/tcx/tcx.js";
|
|
|
7
7
|
const ScrollAreaCorner = forwardRef(
|
|
8
8
|
({ className, ...props }, ref) => {
|
|
9
9
|
const { scrollState, scrollbarMode, variant } = useScrollAreaContext();
|
|
10
|
-
const
|
|
10
|
+
const tv = useMemo(
|
|
11
11
|
() => ScrollTv({
|
|
12
12
|
variant,
|
|
13
13
|
scrollbarMode,
|
|
@@ -30,7 +30,7 @@ const ScrollAreaCorner = forwardRef(
|
|
|
30
30
|
"div",
|
|
31
31
|
{
|
|
32
32
|
ref,
|
|
33
|
-
className: tcx(
|
|
33
|
+
className: tcx(tv.corner(), className),
|
|
34
34
|
style: cornerStyle,
|
|
35
35
|
role: "presentation",
|
|
36
36
|
"aria-hidden": "true",
|
|
@@ -65,7 +65,7 @@ const ScrollAreaRoot = forwardRef(
|
|
|
65
65
|
type: staticConfig.type,
|
|
66
66
|
isHovering,
|
|
67
67
|
isScrolling,
|
|
68
|
-
//
|
|
68
|
+
// Add ID-related values
|
|
69
69
|
rootId,
|
|
70
70
|
viewportId,
|
|
71
71
|
scrollbarXId,
|
|
@@ -88,7 +88,7 @@ const ScrollAreaRoot = forwardRef(
|
|
|
88
88
|
scrollbarYId
|
|
89
89
|
]
|
|
90
90
|
);
|
|
91
|
-
const
|
|
91
|
+
const tv = useMemo(
|
|
92
92
|
() => ScrollTv({
|
|
93
93
|
variant,
|
|
94
94
|
scrollbarMode,
|
|
@@ -150,7 +150,7 @@ const ScrollAreaRoot = forwardRef(
|
|
|
150
150
|
{
|
|
151
151
|
ref,
|
|
152
152
|
id: rootId,
|
|
153
|
-
className: tcx(
|
|
153
|
+
className: tcx(tv.root(), className),
|
|
154
154
|
onMouseEnter: handleMouseEnter,
|
|
155
155
|
onMouseLeave: handleMouseLeave,
|
|
156
156
|
"aria-label": ariaLabel,
|
|
@@ -42,7 +42,7 @@ const ScrollAreaScrollbar = forwardRef(
|
|
|
42
42
|
},
|
|
43
43
|
[viewport, scrollState, orientation]
|
|
44
44
|
);
|
|
45
|
-
const
|
|
45
|
+
const tv = useMemo(
|
|
46
46
|
() => ScrollTv({
|
|
47
47
|
variant,
|
|
48
48
|
scrollbarMode,
|
|
@@ -73,7 +73,7 @@ const ScrollAreaScrollbar = forwardRef(
|
|
|
73
73
|
{
|
|
74
74
|
ref: setRef,
|
|
75
75
|
id: scrollbarId,
|
|
76
|
-
className: tcx(
|
|
76
|
+
className: tcx(tv.scrollbar(), className),
|
|
77
77
|
style: getScrollbarPositionStyle(orientation),
|
|
78
78
|
onClick: handleTrackClick,
|
|
79
79
|
role: "scrollbar",
|
|
@@ -9,7 +9,7 @@ const ScrollAreaThumb = forwardRef(
|
|
|
9
9
|
const { viewport, scrollState, scrollbarMode, variant, setThumbX, setThumbY } = useScrollAreaContext();
|
|
10
10
|
const { handleMouseDown } = useThumbDrag(viewport, scrollState, orientation);
|
|
11
11
|
const thumbStyle = useThumbStyle(scrollState, orientation);
|
|
12
|
-
const
|
|
12
|
+
const tv = useMemo(
|
|
13
13
|
() => ScrollTv({
|
|
14
14
|
variant,
|
|
15
15
|
scrollbarMode,
|
|
@@ -36,7 +36,7 @@ const ScrollAreaThumb = forwardRef(
|
|
|
36
36
|
"div",
|
|
37
37
|
{
|
|
38
38
|
ref: setRef,
|
|
39
|
-
className: tcx(
|
|
39
|
+
className: tcx(tv.thumb(), className),
|
|
40
40
|
style: thumbStyle,
|
|
41
41
|
onMouseDown: handleMouseDown,
|
|
42
42
|
role: "button",
|
|
@@ -11,13 +11,13 @@ interface PerformanceMonitorOptions {
|
|
|
11
11
|
logInterval?: number;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
* 🔍 ScrollArea
|
|
14
|
+
* 🔍 ScrollArea performance monitoring Hook
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
* -
|
|
18
|
-
* -
|
|
19
|
-
* -
|
|
20
|
-
* -
|
|
16
|
+
* Used to monitor and diagnose scroll performance issues, including:
|
|
17
|
+
* - Frame rate monitoring
|
|
18
|
+
* - Event frequency statistics
|
|
19
|
+
* - Performance bottleneck detection
|
|
20
|
+
* - Real-time performance reporting
|
|
21
21
|
*/
|
|
22
22
|
export declare function useScrollPerformanceMonitor(viewport: HTMLDivElement | null, options?: PerformanceMonitorOptions): PerformanceMetrics | null;
|
|
23
23
|
export {};
|
|
@@ -2,11 +2,11 @@ import { useState, useRef, useEffect } from "react";
|
|
|
2
2
|
function useScrollPerformanceMonitor(viewport, options = {}) {
|
|
3
3
|
const {
|
|
4
4
|
enabled = false,
|
|
5
|
-
//
|
|
5
|
+
// Default disabled, only enabled in development
|
|
6
6
|
logInterval = 5e3,
|
|
7
|
-
// 5
|
|
7
|
+
// Report every 5 seconds
|
|
8
8
|
frameTimeThreshold = 16.67
|
|
9
|
-
// 60fps
|
|
9
|
+
// 60fps threshold
|
|
10
10
|
} = options;
|
|
11
11
|
const [metrics, setMetrics] = useState({
|
|
12
12
|
averageFrameTime: 0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ScrollState } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Merged scroll state and visibility management hook - avoid duplicate scroll event listening
|
|
4
4
|
*/
|
|
5
5
|
export declare function useScrollStateAndVisibility(viewport: HTMLDivElement | null): {
|
|
6
6
|
scrollState: ScrollState;
|