@vonage/vivid 5.24.0 → 5.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/accordion/index.cjs +1 -1
- package/accordion/index.js +8 -8
- package/accordion-item/index.cjs +1 -1
- package/action-group/index.cjs +3 -3
- package/action-group/index.js +10 -5
- package/alert/index.cjs +7 -7
- package/alert/index.js +47 -35
- package/audio-player/index.cjs +18 -18
- package/audio-player/index.js +15 -11
- package/avatar/index.cjs +10 -10
- package/avatar/index.js +29 -19
- package/badge/index.cjs +1 -1
- package/banner/index.cjs +5 -5
- package/banner/index.js +33 -27
- package/breadcrumb/index.cjs +1 -1
- package/breadcrumb/index.js +5 -1
- package/breadcrumb-item/index.cjs +9 -5
- package/breadcrumb-item/index.js +15 -10
- package/bundled/affix.cjs +3 -3
- package/bundled/affix.js +2 -2
- package/bundled/anchored.cjs +2 -2
- package/bundled/anchored.js +13 -1
- package/bundled/aria-binding-directive.cjs +1 -1
- package/bundled/aria-binding-directive.js +2 -2
- package/bundled/aria.cjs +1 -1
- package/bundled/base-color-picker.cjs +2 -2
- package/bundled/base-color-picker.js +1 -1
- package/bundled/base-progress.cjs +1 -1
- package/bundled/breadcrumb-item.cjs +1 -1
- package/bundled/button.cjs +1 -1
- package/bundled/calendar-event.cjs +1 -1
- package/bundled/calendar-event.js +17 -4
- package/bundled/calendar-picker.template.cjs +5 -5
- package/bundled/calendar-picker.template.js +53 -55
- package/bundled/char-count.cjs +2 -2
- package/bundled/children.cjs +1 -1
- package/bundled/children.js +1 -1
- package/bundled/class-names.cjs +1 -1
- package/bundled/component-enum.cjs +1 -0
- package/bundled/component-enum.js +9 -0
- package/bundled/data-grid.options.cjs +1 -1
- package/bundled/data-grid.options.js +7 -6
- package/bundled/decorate.cjs +1 -1
- package/bundled/decorate.js +1 -1
- package/bundled/definition.cjs +1 -1
- package/bundled/definition10.cjs +10 -19
- package/bundled/definition10.js +23 -71
- package/bundled/definition11.cjs +74 -10
- package/bundled/definition11.js +194 -23
- package/bundled/definition12.cjs +18 -70
- package/bundled/definition12.js +48 -185
- package/bundled/definition13.cjs +5 -22
- package/bundled/definition13.js +9 -58
- package/bundled/definition14.cjs +1 -5
- package/bundled/definition14.js +9 -9
- package/bundled/definition15.cjs +6 -6
- package/bundled/definition15.js +19 -18
- package/bundled/definition16.cjs +3 -3
- package/bundled/definition16.js +23 -17
- package/bundled/definition17.cjs +7 -7
- package/bundled/definition17.js +22 -109
- package/bundled/definition18.cjs +3 -3
- package/bundled/definition18.js +9 -31
- package/bundled/definition19.cjs +21 -21
- package/bundled/definition19.js +68 -62
- package/bundled/definition2.cjs +13 -1
- package/bundled/definition2.js +22 -185
- package/bundled/definition20.cjs +3 -3
- package/bundled/definition20.js +6 -7
- package/bundled/definition21.cjs +9 -9
- package/bundled/definition21.js +25 -25
- package/bundled/definition22.cjs +5 -5
- package/bundled/definition22.js +27 -27
- package/bundled/definition23.cjs +3 -3
- package/bundled/definition23.js +26 -8
- package/bundled/definition24.cjs +4 -4
- package/bundled/definition24.js +4 -3
- package/bundled/definition25.cjs +7 -7
- package/bundled/definition25.js +37 -28
- package/bundled/definition3.cjs +25 -12
- package/bundled/definition3.js +83 -44
- package/bundled/definition4.cjs +29 -25
- package/bundled/definition4.js +50 -88
- package/bundled/definition5.cjs +28 -29
- package/bundled/definition5.js +143 -45
- package/bundled/definition6.cjs +6 -29
- package/bundled/definition6.js +20 -129
- package/bundled/definition7.cjs +14 -6
- package/bundled/definition7.js +159 -20
- package/bundled/definition8.cjs +22 -14
- package/bundled/definition8.js +88 -144
- package/bundled/definition9.cjs +20 -16
- package/bundled/definition9.js +59 -62
- package/bundled/delegates-aria.cjs +1 -1
- package/bundled/delegates-aria.js +3 -2
- package/bundled/dialog.cjs +1 -1
- package/bundled/dialog.js +1 -1
- package/bundled/divider.cjs +1 -1
- package/bundled/divider.js +9 -9
- package/bundled/dom.cjs +1 -1
- package/bundled/enums.cjs +1 -1
- package/bundled/extractOptions.cjs +1 -1
- package/bundled/extractOptions.js +2 -2
- package/bundled/feedback-message.cjs +8 -0
- package/bundled/feedback-message.js +41 -0
- package/bundled/floating-ui.dom.cjs +1 -1
- package/bundled/floating-ui.dom.js +163 -197
- package/bundled/form-associated.cjs +1 -1
- package/bundled/form-associated.js +3 -4
- package/bundled/form-element.cjs +1 -1
- package/bundled/host-semantics.cjs +1 -1
- package/bundled/icon.cjs +1 -0
- package/bundled/icon.js +34 -0
- package/bundled/kbd-shortcut.cjs +1 -1
- package/bundled/key-codes.cjs +1 -1
- package/bundled/linkable.cjs +2 -2
- package/bundled/listbox.cjs +1 -1
- package/bundled/listbox.js +8 -7
- package/bundled/localized.cjs +1 -1
- package/bundled/localized.js +33 -32
- package/bundled/mixins.cjs +9 -16
- package/bundled/mixins.js +23 -56
- package/bundled/numberConverter.cjs +2 -2
- package/bundled/numberConverter.js +1 -1
- package/bundled/numbers.cjs +1 -1
- package/bundled/optgroup.cjs +1 -0
- package/bundled/optgroup.js +27 -0
- package/bundled/option.cjs +1 -0
- package/bundled/option.js +95 -0
- package/bundled/picker-field.template.cjs +2 -2
- package/bundled/picker-field.template.js +8 -8
- package/bundled/platform.cjs +1 -1
- package/bundled/playbackRates.cjs +1 -1
- package/bundled/ref.cjs +1 -1
- package/bundled/ref.js +1 -1
- package/bundled/render-in-light-dom.cjs +1 -1
- package/bundled/render-in-light-dom.js +1 -1
- package/bundled/repeat.cjs +1 -1
- package/bundled/repeat.js +16 -15
- package/bundled/scrollIntoView.cjs +1 -1
- package/bundled/scrollIntoView.js +1 -3
- package/bundled/single-date-picker.cjs +1 -1
- package/bundled/single-value-picker.cjs +1 -1
- package/bundled/single-value-picker.js +1 -1
- package/bundled/slider.template.cjs +12 -12
- package/bundled/slider.template.js +209 -32
- package/bundled/slottable-request.cjs +3 -3
- package/bundled/slottable-request.js +26 -17
- package/bundled/slotted.cjs +1 -1
- package/bundled/slotted.js +1 -1
- package/bundled/text-field.cjs +1 -1
- package/bundled/text-field.js +1 -1
- package/bundled/time-selection-picker.template.cjs +4 -4
- package/bundled/time-selection-picker.template.js +10 -7
- package/bundled/trapped-focus.cjs +1 -1
- package/bundled/utils.cjs +1 -1
- package/bundled/vivid-element.cjs +3 -3
- package/bundled/vivid-element.js +397 -358
- package/bundled/when.cjs +1 -1
- package/bundled/when.js +1 -1
- package/bundled/with-contextual-help.cjs +1 -1
- package/bundled/with-contextual-help.js +1 -1
- package/bundled/with-error-text.cjs +1 -1
- package/bundled/with-success-text.cjs +1 -1
- package/button/index.cjs +1 -1
- package/button/index.js +1 -1
- package/calendar/index.cjs +1 -1
- package/calendar/index.js +7 -7
- package/calendar-event/index.cjs +2 -2
- package/calendar-event/index.js +10 -8
- package/card/index.cjs +24 -22
- package/card/index.js +14 -8
- package/checkbox/index.cjs +1 -1
- package/color-picker/index.cjs +13 -13
- package/color-picker/index.js +22 -19
- package/combobox/index.cjs +9 -9
- package/combobox/index.js +46 -42
- package/contextual-help/index.cjs +1 -1
- package/contextual-help/index.js +1 -1
- package/country/index.cjs +1 -1
- package/country-group/index.cjs +1 -1
- package/country-group/index.js +8 -4
- package/custom-elements.json +4208 -3828
- package/data-grid/index.cjs +28 -28
- package/data-grid/index.js +92 -98
- package/date-picker/index.cjs +1 -1
- package/date-picker/index.js +10 -6
- package/date-range-picker/index.cjs +1 -1
- package/date-range-picker/index.js +13 -9
- package/date-time-picker/index.cjs +1 -1
- package/date-time-picker/index.js +11 -7
- package/dial-pad/index.cjs +24 -23
- package/dial-pad/index.js +17 -11
- package/dialog/index.cjs +14 -14
- package/dialog/index.js +12 -8
- package/divider/index.cjs +1 -1
- package/elevation/definition.cjs +1 -0
- package/elevation/definition.js +2 -2
- package/elevation/index.cjs +1 -1
- package/elevation/index.js +1 -1
- package/empty-state/index.cjs +4 -4
- package/empty-state/index.js +20 -7
- package/fab/index.cjs +3 -3
- package/fab/index.js +14 -6
- package/file-picker/index.cjs +11 -13
- package/file-picker/index.js +28 -24
- package/flag/index.cjs +1 -1
- package/flag/index.js +7 -3
- package/form-field/definition.cjs +5 -0
- package/form-field/definition.js +2 -0
- package/form-field/index.cjs +29 -0
- package/form-field/index.js +57 -0
- package/header/definition.cjs +1 -1
- package/header/definition.js +1 -1
- package/header/index.cjs +1 -1
- package/header/index.js +9 -5
- package/icon/definition.cjs +2 -1
- package/icon/definition.js +2 -1
- package/icon/index.cjs +1 -1
- package/icon/index.js +1 -1
- package/index.cjs +166 -154
- package/index.js +48 -42
- package/kbd-key/definition.cjs +1 -1
- package/kbd-key/definition.js +1 -1
- package/kbd-key/index.cjs +3 -3
- package/kbd-key/index.js +22 -13
- package/kbd-shortcut/definition.cjs +1 -1
- package/kbd-shortcut/definition.js +1 -1
- package/kbd-shortcut/index.cjs +1 -1
- package/kbd-shortcut/index.js +6 -6
- package/layout/definition.cjs +1 -1
- package/layout/definition.js +1 -1
- package/layout/index.cjs +1 -1
- package/layout/index.js +7 -3
- package/lib/accordion-item/accordion-item.d.ts +12 -6
- package/lib/action-group/action-group.d.ts +10 -5
- package/lib/alert/alert.d.ts +15 -18
- package/lib/avatar/avatar.d.ts +16 -7
- package/lib/badge/badge.d.ts +17 -7
- package/lib/banner/banner.d.ts +18 -20
- package/lib/button/button.d.ts +25 -16
- package/lib/calendar-event/calendar-event.d.ts +14 -7
- package/lib/checkbox/checkbox.d.ts +31 -28
- package/lib/combobox/combobox.d.ts +38 -33
- package/lib/components.d.ts +2 -0
- package/lib/data-grid/data-grid.options.d.ts +6 -1
- package/lib/dial-pad/dial-pad.d.ts +0 -1
- package/lib/dial-pad/locale.d.ts +1 -0
- package/lib/divider/divider.d.ts +9 -6
- package/lib/elevation/definition.d.ts +2 -0
- package/lib/empty-state/empty-state.d.ts +7 -2
- package/lib/fab/fab.d.ts +3 -2
- package/lib/form-field/definition.d.ts +4 -0
- package/lib/form-field/form-field.d.ts +6 -0
- package/lib/form-field/form-field.template.d.ts +3 -0
- package/lib/kbd-key/kbd-key.d.ts +7 -2
- package/lib/listbox/definition.d.ts +3 -0
- package/lib/listbox/listbox.d.ts +1303 -0
- package/lib/listbox/listbox.template.d.ts +3 -0
- package/lib/menu/menu.d.ts +0 -1
- package/lib/menu-item/menu-item.d.ts +17 -14
- package/lib/nav-disclosure/nav-disclosure.d.ts +18 -11
- package/lib/nav-item/nav-item.d.ts +19 -12
- package/lib/note/note.d.ts +10 -6
- package/lib/number-field/number-field.d.ts +45 -41
- package/lib/option/option.d.ts +13 -10
- package/lib/popup/definition.d.ts +2 -0
- package/lib/progress/progress.d.ts +10 -5
- package/lib/progress-ring/progress-ring.d.ts +9 -5
- package/lib/radio/radio.d.ts +18 -15
- package/lib/range-slider/range-slider.d.ts +19 -15
- package/lib/rich-text-editor/rich-text-editor.d.ts +9 -5
- package/lib/rich-text-editor/rte/features/base.d.ts +1 -0
- package/lib/rich-text-editor/rte/utils/default-textblock.d.ts +2 -2
- package/lib/rich-text-editor/rte/utils/ui.d.ts +2 -1
- package/lib/searchable-select/option-tag.d.ts +12 -7
- package/lib/searchable-select/searchable-select.d.ts +7 -2
- package/lib/select/select.d.ts +45 -40
- package/lib/selectable-box/selectable-box.d.ts +9 -5
- package/lib/slider/slider.d.ts +18 -14
- package/lib/split-button/split-button.d.ts +24 -15
- package/lib/status/status.d.ts +10 -7
- package/lib/switch/switch.d.ts +13 -9
- package/lib/tab/tab.d.ts +19 -14
- package/lib/tabs/tabs.d.ts +6 -3
- package/lib/tag/tag.d.ts +24 -15
- package/lib/tag-name-map.d.ts +3 -1
- package/lib/text-field/text-field.d.ts +47 -41
- package/lib/toggletip/toggletip.d.ts +1 -0
- package/lib/tooltip/tooltip.d.ts +1 -0
- package/lib/video-player/__tests__/video-fixtures.d.ts +3 -0
- package/listbox/definition.cjs +5 -0
- package/listbox/definition.js +2 -0
- package/listbox/index.cjs +13 -0
- package/listbox/index.js +554 -0
- package/locales/de-DE.cjs +34 -33
- package/locales/de-DE.js +34 -33
- package/locales/en-GB.cjs +34 -33
- package/locales/en-GB.js +34 -33
- package/locales/ja-JP.cjs +35 -33
- package/locales/ja-JP.js +35 -33
- package/locales/zh-CN.cjs +34 -33
- package/locales/zh-CN.js +34 -33
- package/menu/index.cjs +1 -1
- package/menu-item/index.cjs +1 -1
- package/nav/definition.cjs +1 -1
- package/nav/definition.js +1 -1
- package/nav/index.cjs +1 -1
- package/nav/index.js +6 -4
- package/nav-disclosure/definition.cjs +1 -1
- package/nav-disclosure/definition.js +1 -1
- package/nav-disclosure/index.cjs +5 -5
- package/nav-disclosure/index.js +15 -9
- package/nav-item/definition.cjs +1 -1
- package/nav-item/definition.js +1 -1
- package/nav-item/index.cjs +2 -2
- package/nav-item/index.js +15 -10
- package/note/definition.cjs +1 -1
- package/note/definition.js +1 -1
- package/note/index.cjs +6 -4
- package/note/index.js +22 -9
- package/number-field/definition.cjs +1 -1
- package/number-field/definition.js +1 -1
- package/number-field/index.cjs +11 -11
- package/number-field/index.js +41 -36
- package/optgroup/definition.cjs +2 -1
- package/optgroup/definition.js +2 -1
- package/optgroup/index.cjs +1 -1
- package/option/definition.cjs +2 -1
- package/option/definition.js +2 -1
- package/option/index.cjs +1 -1
- package/package.json +32 -38
- package/pagination/definition.cjs +1 -1
- package/pagination/definition.js +1 -1
- package/pagination/index.cjs +1 -1
- package/pagination/index.js +9 -9
- package/platform-switch/definition.cjs +1 -1
- package/platform-switch/definition.js +1 -1
- package/platform-switch/index.cjs +1 -1
- package/platform-switch/index.js +6 -2
- package/popover/definition.cjs +1 -1
- package/popover/definition.js +1 -1
- package/popover/index.cjs +5 -5
- package/popover/index.js +46 -37
- package/popup/definition.cjs +1 -0
- package/popup/definition.js +2 -2
- package/popup/index.cjs +1 -1
- package/popup/index.js +1 -1
- package/progress/definition.cjs +1 -1
- package/progress/definition.js +1 -1
- package/progress/index.cjs +7 -7
- package/progress/index.js +21 -11
- package/progress-ring/index.cjs +1 -1
- package/progress-ring/index.js +1 -1
- package/radio/definition.cjs +1 -1
- package/radio/definition.js +1 -1
- package/radio/index.cjs +1 -1
- package/radio-group/definition.cjs +1 -1
- package/radio-group/definition.js +1 -1
- package/radio-group/index.cjs +2 -2
- package/radio-group/index.js +14 -9
- package/range-slider/definition.cjs +1 -1
- package/range-slider/definition.js +1 -1
- package/range-slider/index.cjs +8 -8
- package/range-slider/index.js +31 -32
- package/rich-text-editor/definition.cjs +1 -1
- package/rich-text-editor/definition.js +1 -1
- package/rich-text-editor/index.cjs +17 -14
- package/rich-text-editor/index.js +1955 -1721
- package/rich-text-view/definition.cjs +1 -1
- package/rich-text-view/definition.js +1 -1
- package/rich-text-view/index.cjs +1 -1
- package/rich-text-view/index.js +6 -4
- package/searchable-select/definition.cjs +1 -1
- package/searchable-select/definition.js +1 -1
- package/searchable-select/index.cjs +26 -26
- package/searchable-select/index.js +97 -90
- package/select/definition.cjs +1 -1
- package/select/definition.js +1 -1
- package/select/index.cjs +1 -1
- package/selectable-box/definition.cjs +1 -1
- package/selectable-box/definition.js +1 -1
- package/selectable-box/index.cjs +8 -8
- package/selectable-box/index.js +24 -20
- package/shared/listbox/commands.d.ts +17 -0
- package/shared/listbox/move.d.ts +6 -0
- package/shared/listbox/options.d.ts +12 -0
- package/shared/listbox/selection.d.ts +28 -0
- package/shared/listbox/state.d.ts +26 -0
- package/shared/listbox/typeahead.d.ts +8 -0
- package/shared/listbox/with-options-filter.d.ts +440 -0
- package/shared/listbox/with-options.d.ts +862 -0
- package/shared/patterns/anchored.d.ts +2 -0
- package/shared/styles/appearance.d.ts +2 -0
- package/shared/styles/connotation.d.ts +2 -0
- package/shared/styles/connotationOverrides.d.ts +1 -0
- package/shared/utils/component-enum.d.ts +7 -0
- package/side-drawer/definition.cjs +1 -1
- package/side-drawer/definition.js +1 -1
- package/side-drawer/index.cjs +1 -1
- package/side-drawer/index.js +10 -7
- package/simple-color-picker/definition.cjs +1 -1
- package/simple-color-picker/definition.js +1 -1
- package/simple-color-picker/index.cjs +6 -6
- package/simple-color-picker/index.js +22 -21
- package/slider/definition.cjs +2 -1
- package/slider/definition.js +2 -1
- package/slider/index.cjs +1 -1
- package/slider/index.js +1 -1
- package/split-button/definition.cjs +1 -1
- package/split-button/definition.js +1 -1
- package/split-button/index.cjs +9 -7
- package/split-button/index.js +58 -37
- package/status/definition.cjs +1 -1
- package/status/definition.js +1 -1
- package/status/index.cjs +5 -5
- package/status/index.js +22 -13
- package/switch/definition.cjs +1 -1
- package/switch/definition.js +1 -1
- package/switch/index.cjs +3 -3
- package/switch/index.js +22 -11
- package/tab/definition.cjs +1 -1
- package/tab/definition.js +1 -1
- package/tab/index.cjs +1 -1
- package/tab/index.js +1 -1
- package/tab-panel/definition.cjs +1 -1
- package/tab-panel/definition.js +1 -1
- package/tab-panel/index.cjs +1 -1
- package/tab-panel/index.js +1 -1
- package/table/definition.cjs +1 -1
- package/table/definition.js +1 -1
- package/table/index.cjs +16 -14
- package/table/index.js +14 -11
- package/tabs/definition.cjs +1 -1
- package/tabs/definition.js +1 -1
- package/tabs/index.cjs +4 -4
- package/tabs/index.js +32 -30
- package/tag/definition.cjs +1 -1
- package/tag/definition.js +1 -1
- package/tag/index.cjs +11 -11
- package/tag/index.js +31 -14
- package/tag-group/definition.cjs +1 -1
- package/tag-group/definition.js +1 -1
- package/tag-group/index.cjs +1 -1
- package/tag-group/index.js +6 -4
- package/text-area/definition.cjs +1 -1
- package/text-area/definition.js +1 -1
- package/text-area/index.cjs +5 -5
- package/text-area/index.js +18 -15
- package/text-field/index.cjs +1 -1
- package/text-field/index.js +1 -1
- package/time-picker/definition.cjs +1 -1
- package/time-picker/definition.js +1 -1
- package/time-picker/index.cjs +1 -1
- package/time-picker/index.js +9 -6
- package/toggletip/index.cjs +1 -1
- package/toggletip/index.js +1 -1
- package/tooltip/index.cjs +1 -1
- package/tooltip/index.js +1 -1
- package/tree-item/definition.cjs +1 -1
- package/tree-item/definition.js +1 -1
- package/tree-item/index.cjs +1 -1
- package/tree-item/index.js +1 -1
- package/tree-view/definition.cjs +1 -1
- package/tree-view/definition.js +1 -1
- package/tree-view/index.cjs +1 -1
- package/tree-view/index.js +7 -5
- package/unbundled/affix.cjs +2 -3
- package/unbundled/affix.js +1 -1
- package/unbundled/anchored.cjs +39 -1
- package/unbundled/anchored.js +28 -1
- package/unbundled/aria-binding-directive.cjs +2 -2
- package/unbundled/aria-binding-directive.js +2 -1
- package/unbundled/base-color-picker.cjs +0 -1
- package/unbundled/base-progress.cjs +1 -2
- package/unbundled/base-progress.js +1 -1
- package/unbundled/breadcrumb-item.cjs +0 -1
- package/unbundled/button.cjs +2 -3
- package/unbundled/button.js +2 -2
- package/unbundled/calendar-event.cjs +29 -1
- package/unbundled/calendar-event.js +18 -1
- package/unbundled/calendar-picker.template.cjs +109 -91
- package/unbundled/calendar-picker.template.js +109 -90
- package/unbundled/char-count.cjs +0 -1
- package/unbundled/component-enum.cjs +18 -0
- package/unbundled/component-enum.js +13 -0
- package/unbundled/data-grid.options.cjs +8 -0
- package/unbundled/data-grid.options.js +3 -1
- package/unbundled/decorate.cjs +1 -1
- package/unbundled/decorate.js +1 -1
- package/unbundled/definition.cjs +3 -67
- package/unbundled/definition.js +5 -62
- package/unbundled/definition10.cjs +2 -343
- package/unbundled/definition10.js +4 -338
- package/unbundled/definition11.cjs +10 -10
- package/unbundled/definition11.js +9 -8
- package/unbundled/definition12.cjs +7 -6
- package/unbundled/definition12.js +8 -6
- package/unbundled/definition13.cjs +2 -2
- package/unbundled/definition13.js +2 -1
- package/unbundled/definition14.cjs +13 -4
- package/unbundled/definition14.js +13 -3
- package/unbundled/definition15.cjs +26 -5
- package/unbundled/definition15.js +26 -4
- package/unbundled/definition16.cjs +20 -14
- package/unbundled/definition16.js +20 -13
- package/unbundled/definition17.cjs +9 -5
- package/unbundled/definition17.js +9 -4
- package/unbundled/definition18.cjs +4 -3
- package/unbundled/definition18.js +4 -2
- package/unbundled/definition19.cjs +2 -3
- package/unbundled/definition19.js +9 -8
- package/unbundled/definition2.cjs +15 -5
- package/unbundled/definition2.js +16 -5
- package/unbundled/definition20.cjs +1 -2
- package/unbundled/definition20.js +7 -6
- package/unbundled/definition21.cjs +6 -4
- package/unbundled/definition21.js +6 -3
- package/unbundled/definition22.cjs +0 -1
- package/unbundled/definition23.cjs +14 -7
- package/unbundled/definition23.js +13 -5
- package/unbundled/definition24.cjs +10 -8
- package/unbundled/definition24.js +11 -8
- package/unbundled/definition25.cjs +4 -4
- package/unbundled/definition25.js +4 -3
- package/unbundled/definition26.cjs +13 -8
- package/unbundled/definition26.js +12 -6
- package/unbundled/definition27.cjs +41 -7
- package/unbundled/definition27.js +42 -7
- package/unbundled/definition28.cjs +7 -6
- package/unbundled/definition28.js +6 -4
- package/unbundled/definition29.cjs +5 -169
- package/unbundled/definition29.js +11 -162
- package/unbundled/definition3.cjs +5 -6
- package/unbundled/definition3.js +5 -5
- package/unbundled/definition30.cjs +2 -64
- package/unbundled/definition30.js +5 -54
- package/unbundled/definition31.cjs +20 -16
- package/unbundled/definition31.js +19 -14
- package/unbundled/definition32.cjs +2 -2
- package/unbundled/definition32.js +2 -1
- package/unbundled/definition33.cjs +0 -1
- package/unbundled/definition34.cjs +0 -1
- package/unbundled/definition35.cjs +41 -52
- package/unbundled/definition35.js +42 -52
- package/unbundled/definition36.cjs +2 -3
- package/unbundled/definition36.js +9 -8
- package/unbundled/definition37.cjs +1 -2
- package/unbundled/definition37.js +1 -1
- package/unbundled/definition38.cjs +0 -1
- package/unbundled/definition39.cjs +1 -2
- package/unbundled/definition39.js +1 -1
- package/unbundled/definition4.cjs +4 -3
- package/unbundled/definition4.js +11 -6
- package/unbundled/definition40.cjs +9 -6
- package/unbundled/definition40.js +9 -5
- package/unbundled/definition41.cjs +11 -7
- package/unbundled/definition41.js +11 -6
- package/unbundled/definition42.cjs +16 -7
- package/unbundled/definition42.js +16 -6
- package/unbundled/definition43.cjs +7 -3
- package/unbundled/definition43.js +7 -2
- package/unbundled/definition44.cjs +15 -13
- package/unbundled/definition44.js +14 -11
- package/unbundled/definition45.cjs +73 -52
- package/unbundled/definition45.js +69 -47
- package/unbundled/definition46.cjs +53 -46
- package/unbundled/definition46.js +49 -41
- package/unbundled/definition47.cjs +40 -165
- package/unbundled/definition47.js +36 -160
- package/unbundled/definition48.cjs +177 -32
- package/unbundled/definition48.js +174 -22
- package/unbundled/definition49.cjs +30 -90
- package/unbundled/definition49.js +27 -86
- package/unbundled/definition5.cjs +9 -3
- package/unbundled/definition5.js +15 -7
- package/unbundled/definition50.cjs +617 -48
- package/unbundled/definition50.js +615 -47
- package/unbundled/definition51.cjs +93 -22
- package/unbundled/definition51.js +91 -16
- package/unbundled/definition52.cjs +52 -33
- package/unbundled/definition52.js +49 -29
- package/unbundled/definition53.cjs +22 -324
- package/unbundled/definition53.js +18 -319
- package/unbundled/definition54.cjs +44 -213
- package/unbundled/definition54.js +40 -208
- package/unbundled/definition55.cjs +321 -42
- package/unbundled/definition55.js +317 -37
- package/unbundled/definition56.cjs +199 -254
- package/unbundled/definition56.js +193 -247
- package/unbundled/definition57.cjs +45 -54
- package/unbundled/definition57.js +42 -49
- package/unbundled/definition58.cjs +271 -134
- package/unbundled/definition58.js +269 -128
- package/unbundled/definition59.cjs +59 -246
- package/unbundled/definition59.js +58 -244
- package/unbundled/definition6.cjs +22 -7
- package/unbundled/definition6.js +22 -6
- package/unbundled/definition60.cjs +129 -445
- package/unbundled/definition60.js +127 -442
- package/unbundled/definition61.cjs +230 -3746
- package/unbundled/definition61.js +224 -3576
- package/unbundled/definition62.cjs +428 -742
- package/unbundled/definition62.js +426 -739
- package/unbundled/definition63.cjs +3776 -103
- package/unbundled/definition63.js +3607 -97
- package/unbundled/definition64.cjs +693 -906
- package/unbundled/definition64.js +685 -894
- package/unbundled/definition65.cjs +104 -109
- package/unbundled/definition65.js +100 -104
- package/unbundled/definition66.cjs +1004 -66
- package/unbundled/definition66.js +1003 -58
- package/unbundled/definition67.cjs +107 -156
- package/unbundled/definition67.js +103 -151
- package/unbundled/definition68.cjs +71 -123
- package/unbundled/definition68.js +67 -118
- package/unbundled/definition69.cjs +163 -52
- package/unbundled/definition69.js +159 -47
- package/unbundled/definition7.cjs +0 -1
- package/unbundled/definition7.js +10 -4
- package/unbundled/definition70.cjs +146 -76
- package/unbundled/definition70.js +145 -71
- package/unbundled/definition71.cjs +66 -22
- package/unbundled/definition71.js +63 -15
- package/unbundled/definition72.cjs +88 -76
- package/unbundled/definition72.js +85 -72
- package/unbundled/definition73.cjs +20 -306
- package/unbundled/definition73.js +16 -229
- package/unbundled/definition74.cjs +77 -316
- package/unbundled/definition74.js +76 -307
- package/unbundled/definition75.cjs +310 -31
- package/unbundled/definition75.js +233 -24
- package/unbundled/definition76.cjs +316 -110
- package/unbundled/definition76.js +307 -106
- package/unbundled/definition77.cjs +26 -251
- package/unbundled/definition77.js +22 -246
- package/unbundled/definition78.cjs +147 -27
- package/unbundled/definition78.js +139 -25
- package/unbundled/definition79.cjs +230 -117
- package/unbundled/definition79.js +227 -107
- package/unbundled/definition8.cjs +17 -10
- package/unbundled/definition8.js +17 -9
- package/unbundled/definition80.cjs +28 -203
- package/unbundled/definition80.js +26 -193
- package/unbundled/definition81.cjs +125 -477
- package/unbundled/definition81.js +118 -473
- package/unbundled/definition82.cjs +220 -0
- package/unbundled/definition82.js +203 -0
- package/unbundled/definition83.cjs +517 -0
- package/unbundled/definition83.js +498 -0
- package/unbundled/definition9.cjs +4 -3
- package/unbundled/definition9.js +4 -2
- package/unbundled/delegates-aria.cjs +4 -2
- package/unbundled/delegates-aria.js +4 -2
- package/unbundled/divider.cjs +8 -3
- package/unbundled/divider.js +3 -3
- package/unbundled/en-US.cjs +34 -33
- package/unbundled/en-US.js +34 -33
- package/unbundled/extractOptions.cjs +5 -5
- package/unbundled/extractOptions.js +2 -2
- package/unbundled/feedback-message.cjs +59 -0
- package/unbundled/feedback-message.js +48 -0
- package/unbundled/form-associated.cjs +1 -4
- package/unbundled/form-associated.js +1 -3
- package/unbundled/form-element.cjs +0 -1
- package/unbundled/icon.cjs +66 -0
- package/unbundled/icon.js +61 -0
- package/unbundled/kbd-shortcut.cjs +0 -1
- package/unbundled/linkable.cjs +1 -2
- package/unbundled/linkable.js +1 -1
- package/unbundled/listbox.cjs +8 -5
- package/unbundled/listbox.js +7 -3
- package/unbundled/localized.cjs +0 -1
- package/unbundled/mixins.cjs +3 -53
- package/unbundled/mixins.js +3 -46
- package/unbundled/numberConverter.cjs +8 -3
- package/unbundled/numberConverter.js +8 -3
- package/unbundled/optgroup.cjs +65 -0
- package/unbundled/optgroup.js +54 -0
- package/unbundled/option.cjs +183 -0
- package/unbundled/option.js +166 -0
- package/unbundled/picker-field.template.cjs +1 -2
- package/unbundled/picker-field.template.js +1 -1
- package/unbundled/randomId.cjs +0 -1
- package/unbundled/{chunk.cjs → rolldown-runtime.cjs} +1 -1
- package/unbundled/scrollIntoView.cjs +0 -1
- package/unbundled/scrollIntoView.js +0 -1
- package/unbundled/slider.template.cjs +340 -2
- package/unbundled/slider.template.js +338 -5
- package/unbundled/text-field.cjs +1 -1
- package/unbundled/text-field.js +1 -1
- package/unbundled/time-selection-picker.template.cjs +3 -4
- package/unbundled/time-selection-picker.template.js +3 -3
- package/unbundled/vivid-element.cjs +63 -4
- package/unbundled/vivid-element.js +63 -3
- package/unbundled/with-contextual-help.cjs +0 -1
- package/unbundled/with-error-text.cjs +0 -1
- package/unbundled/with-success-text.cjs +0 -1
- package/video-player/definition.cjs +1 -1
- package/video-player/definition.js +1 -1
- package/video-player/index.cjs +31 -31
- package/video-player/index.js +2094 -2085
- package/visually-hidden/index.cjs +1 -1
- package/vivid.api.json +807 -1341
- package/lib/action-group/variations.browser-spec.d.ts +0 -1
- package/lib/alert/variations.browser-spec.d.ts +0 -1
- package/lib/audio-player/variations.browser-spec.d.ts +0 -1
- package/lib/avatar/variations.browser-spec.d.ts +0 -1
- package/lib/badge/variations.browser-spec.d.ts +0 -1
- package/lib/banner/variations.browser-spec.d.ts +0 -1
- package/lib/breadcrumb-item/variations.browser-spec.d.ts +0 -1
- package/lib/button/variations.browser-spec.d.ts +0 -1
- package/lib/calendar/variations.browser-spec.d.ts +0 -1
- package/lib/calendar-event/variations.browser-spec.d.ts +0 -1
- package/lib/card/variations.browser-spec.d.ts +0 -1
- package/lib/checkbox/variations.browser-spec.d.ts +0 -1
- package/lib/color-picker/variations.browser-spec.d.ts +0 -1
- package/lib/combobox/variations.browser-spec.d.ts +0 -1
- package/lib/contextual-help/variations.browser-spec.d.ts +0 -1
- package/lib/country/variations.browser-spec.d.ts +0 -1
- package/lib/data-grid/variations.browser-spec.d.ts +0 -1
- package/lib/date-picker/variations.browser-spec.d.ts +0 -1
- package/lib/date-range-picker/variations.browser-spec.d.ts +0 -1
- package/lib/date-time-picker/variations.browser-spec.d.ts +0 -1
- package/lib/dial-pad/variations.browser-spec.d.ts +0 -1
- package/lib/dialog/variations.browser-spec.d.ts +0 -1
- package/lib/divider/variations.browser-spec.d.ts +0 -1
- package/lib/empty-state/variations.browser-spec.d.ts +0 -1
- package/lib/fab/variations.browser-spec.d.ts +0 -1
- package/lib/file-picker/variations.browser-spec.d.ts +0 -1
- package/lib/flag/variations.browser-spec.d.ts +0 -1
- package/lib/header/variations.browser-spec.d.ts +0 -1
- package/lib/icon/variations.browser-spec.d.ts +0 -1
- package/lib/kbd-key/variations.browser-spec.d.ts +0 -1
- package/lib/kbd-shortcut/variations.browser-spec.d.ts +0 -1
- package/lib/layout/variations.browser-spec.d.ts +0 -1
- package/lib/menu/variations.browser-spec.d.ts +0 -1
- package/lib/menu-item/variations.browser-spec.d.ts +0 -1
- package/lib/nav/variations.browser-spec.d.ts +0 -1
- package/lib/nav-disclosure/variations.browser-spec.d.ts +0 -1
- package/lib/nav-item/variations.browser-spec.d.ts +0 -1
- package/lib/note/variations.browser-spec.d.ts +0 -1
- package/lib/number-field/variations.browser-spec.d.ts +0 -1
- package/lib/optgroup/variations.browser-spec.d.ts +0 -1
- package/lib/option/variations.browser-spec.d.ts +0 -1
- package/lib/pagination/variations.browser-spec.d.ts +0 -1
- package/lib/popover/variations.browser-spec.d.ts +0 -1
- package/lib/progress/variations.browser-spec.d.ts +0 -1
- package/lib/progress-ring/variations.browser-spec.d.ts +0 -1
- package/lib/radio/variations.browser-spec.d.ts +0 -1
- package/lib/radio-group/variations.browser-spec.d.ts +0 -1
- package/lib/range-slider/variations.browser-spec.d.ts +0 -1
- package/lib/rich-text-editor/variations.browser-spec.d.ts +0 -1
- package/lib/rich-text-view/variations.browser-spec.d.ts +0 -1
- package/lib/searchable-select/variations.browser-spec.d.ts +0 -1
- package/lib/select/variations.browser-spec.d.ts +0 -1
- package/lib/selectable-box/variations.browser-spec.d.ts +0 -1
- package/lib/side-drawer/variations.browser-spec.d.ts +0 -1
- package/lib/simple-color-picker/variations.browser-spec.d.ts +0 -1
- package/lib/slider/variations.browser-spec.d.ts +0 -1
- package/lib/split-button/variations.browser-spec.d.ts +0 -1
- package/lib/status/variations.browser-spec.d.ts +0 -1
- package/lib/switch/variations.browser-spec.d.ts +0 -1
- package/lib/table/variations.browser-spec.d.ts +0 -1
- package/lib/tabs/variations.browser-spec.d.ts +0 -1
- package/lib/tag/variations.browser-spec.d.ts +0 -1
- package/lib/text-area/variations.browser-spec.d.ts +0 -1
- package/lib/text-field/variations.browser-spec.d.ts +0 -1
- package/lib/time-picker/variations.browser-spec.d.ts +0 -1
- package/lib/toggletip/variations.browser-spec.d.ts +0 -1
- package/lib/tooltip/variations.browser-spec.d.ts +0 -1
- package/lib/tree-item/variations.browser-spec.d.ts +0 -1
- package/lib/video-player/variations.browser-spec.d.ts +0 -1
- /package/lib/{accordion-item/variations.browser-spec.d.ts → form-field/index.d.ts} +0 -0
- /package/lib/{accordion/variations.browser-spec.d.ts → listbox/index.d.ts} +0 -0
- /package/unbundled/{chunk.js → rolldown-runtime.js} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const e=require("../bundled/vivid-element.cjs"),t=require("../bundled/slotted.cjs"),n=require("../bundled/when.cjs"),r=require("../bundled/decorate.cjs"),i=require("../bundled/aria-binding-directive.cjs"),a=require("../bundled/host-semantics.cjs"),o=require("../bundled/option.cjs"),s=require("../bundled/optgroup.cjs"),c=require("../bundled/extractOptions.cjs");function l(e,t,n,r){let i=[];for(let t of e){t._vvdSearchText=r;let e=!r||n(t,r);t._isNotMatching=!e,!t.hidden&&!t.disabled&&e&&i.push(t)}for(let e of t)if(s.n(e)){let t=Array.from(e.children).some(e=>o.n(e)&&!e._isNotMatching&&!e.hidden);e.style.display=t?``:`none`}return i}var u=t=>{class n extends t{constructor(...e){super(...e),this.searchText=``,this._filteredOptions=[]}_slottedOptionsChanged(){super._slottedOptionsChanged(),this._updateFilter()}searchTextChanged(){this._updateFilter()}optionFilterChanged(){this._updateFilter()}_updateFilter(){this._filteredOptions=l(this._slottedOptions,this._slottedElements,this.optionFilter??((e,t)=>e.text.toLowerCase().includes(t.toLowerCase())),this.searchText)}}return r.t([e.m({attribute:`search-text`,mode:`fromView`})],n.prototype,`searchText`,void 0),r.t([e.A],n.prototype,`optionFilter`,void 0),r.t([e.A],n.prototype,`_filteredOptions`,void 0),n},d=t=>{class n extends t{constructor(...e){super(...e),this._slottedElements=[],this.#e=()=>{this._slottedElementsChanged()},this._slottedOptions=[]}_slottedElementsChanged(){this._slottedOptions=c.t(this._slottedElements)}#e;connectedCallback(){super.connectedCallback(),this.addEventListener(`optgroup-change`,this.#e)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`optgroup-change`,this.#e)}_slottedOptionsChanged(){for(let e of this._slottedOptions)e.id||=i.r(`option-`)}}return r.t([e.A],n.prototype,`_slottedElements`,void 0),r.t([e.A],n.prototype,`_slottedOptions`,void 0),n},f=e.p`<slot
|
|
2
|
+
${t.t({filter:(e=>o.n(e)||s.n(e)),flatten:!0,property:`_slottedElements`})}
|
|
3
|
+
>
|
|
4
|
+
</slot>`,p=e=>{let t=e.ctrlKey||e.metaKey;return e.shiftKey&&t?`ShiftMod`:e.shiftKey?`Shift`:t?`Mod`:null},m=(e,t,n,r)=>{if(n.amount===`step`&&r===`Mod`)return null;if(t.selectionMode===`multiple`){if(n.amount===`step`&&r===`Shift`)return{action:{type:`extend-from-anchor`,anchorIndex:e.rangeAnchorIndex??e.activeIndex},replaceExisting:!1};if(n.amount===`limit`&&r===`ShiftMod`)return{action:{type:`select-from-current`},replaceExisting:!1}}return t.selectionBehavior===`replace`?{action:{type:`select`},replaceExisting:!0}:null},h=(e,t)=>t===`Shift`?{action:{type:`select-from-most-recent`},replaceExisting:e.selectionBehavior===`replace`}:t===`Mod`?{action:{type:`toggle`},replaceExisting:!1}:e.selectionBehavior===`replace`?{action:{type:`select`},replaceExisting:!0}:{action:{type:`toggle`},replaceExisting:!1};function g(e,t,n,r){let i=new Set(e),[a,o]=[n,r].sort((e,t)=>e-t),s=[...e];for(let e=a;e<=o;e++){let n=t.selectable.optionValue(e);i.has(n)||s.push(n)}return s}function _(e,t,n,r,i){let a=new Set(e),[o,,s]=[n,r,i].sort((e,t)=>e-t),c=[...e];for(let e=o;e<=s;e++){let i=t.selectable.optionValue(e);e<n&&e<r||e>n&&e>r?a.has(i)&&(c=c.filter(e=>e!==i)):a.has(i)||c.push(i)}return c}function v(e,t){let n=e.values;for(let e=n.length-1;e>=0;e--){let r=t.selectable.optionIndex(n[e]);if(r!==null)return r}return null}function y(e,t,n){let r=t=>({...e,values:t.values??e.values,activeIndex:t.activeIndex??e.activeIndex,rangeAnchorIndex:t.rangeAnchorIndex??null});if(n.type!==`action`)return r({});let i=e.values,{targetIndex:a,selection:o}=n,s=e=>t.selectionMode===`single`&&e.length>1?[e[e.length-1]]:t.requiredSelection!==`none`&&(e.length===0||t.requiredSelection===`selectable`&&!e.some(e=>t.selectable.optionIndex(e)!==null))?i:e,c=t.selectable.optionValue(a),l=o?.replaceExisting?[]:i;switch(o?.action.type){case void 0:return r({activeIndex:a});case`select`:return r({activeIndex:a,values:s(i.includes(c)?i:[...l,c])});case`toggle`:return r({activeIndex:a,values:s(i.includes(c)?l.filter(e=>e!==c):[...l,c])});case`select-from-current`:return r({activeIndex:a,values:s(g(l,t,e.activeIndex,a))});case`select-from-most-recent`:return r({activeIndex:a,values:s(g(l,t,v(e,t)??0,a))});case`extend-from-anchor`:return r({values:s(_(l,t,o.action.anchorIndex,a,e.activeIndex)),activeIndex:a,rangeAnchorIndex:o.action.anchorIndex})}}var b=2e3;function x(e,t,n,r){let i=e.typeahead&&e.typeahead.lastInputMs>r-b?e.typeahead:null;return n.length===1&&!(n===` `&&!i)?{buffer:(i?.buffer??``)+n,lastInputMs:r}:null}function S(e,t,n){if(n.type!==`typeahead`)return{...e,typeahead:null};let r=n.typeahead;for(let i=(e.activeIndex+1)%t.selectable.numOptions;i!==e.activeIndex;i=(i+1)%t.selectable.numOptions)if(t.selectable.optionText(i).toLowerCase().startsWith(r.buffer.toLowerCase()))return{...y(e,t,{type:`action`,targetIndex:i,selection:n.selection}),typeahead:r};return{...e,typeahead:r}}var C=e=>({numOptions:e.length,optionValue:t=>e[t].value,optionText:t=>e[t].text,optionIndex:t=>{let n=e.findIndex(e=>e.value===t);return n===-1?null:n},isEq:t=>e===t});function w(e,t,n){let r=t.filter(e=>e.selected||n.includes(e.value)).map(e=>e.value),i=e.selectionMode===`single`?1:1/0;return D(e,r.slice(0,i),i)}function T(e){return`activeIndex`in e}function E(e,t,n){let r=n.filter(e=>t.all.optionIndex(e)!==null),i=t.selectionMode===`single`?1:1/0,a=r.slice(0,i);return a=D(t,a,i),{...e,values:a}}function D(e,t,n){return e.requiredSelection===`none`||e.selectable.numOptions===0?t:t.length===0?[e.selectable.optionValue(0)]:e.requiredSelection===`selectable`&&!t.some(t=>e.selectable.optionIndex(t)!==null)?n===1?[e.selectable.optionValue(0)]:[...t,e.selectable.optionValue(0)]:t}function O(e,t,n){let r=w(e,t,n);if(e.selectable.numOptions===0)return k(r);let i=0;for(let t of r){let n=e.selectable.optionIndex(t);if(n!==null){i=n;break}}return{values:r,activeIndex:i,typeahead:null,rangeAnchorIndex:null}}function k(e){return{values:e}}function A(e){switch(e){case`Home`:return{direction:`backward`,amount:`limit`};case`End`:return{direction:`forward`,amount:`limit`};case`PageUp`:return{direction:`backward`,amount:`page`};case`PageDown`:return{direction:`forward`,amount:`page`};case`ArrowUp`:return{direction:`backward`,amount:`step`};case`ArrowDown`:return{direction:`forward`,amount:`step`}}return null}function j(e,t,n,r){let i={backward:0,forward:t-1},a={backward:-1,forward:1},o={step:1,page:n};switch(r.amount){case`limit`:return i[r.direction];case`page`:case`step`:return Math.min(i.forward,Math.max(i.backward,e+a[r.direction]*o[r.amount]))}}var M=10;function N(e,t,n,r){if(!T(e))return null;let i=x(e,t,n.key,r);if(i)return{type:`typeahead`,typeahead:i,selection:t.selectionBehavior===`replace`?{action:{type:`select`},replaceExisting:!0}:null};let a=A(n.key);return a?{type:`action`,targetIndex:j(e.activeIndex,t.selectable.numOptions,M,a),selection:m(e,t,a,p(n))}:n.key===` `?{type:`action`,targetIndex:e.activeIndex,selection:h(t,p(n))}:null}function P(e,t,n,r){return{type:`action`,targetIndex:r,selection:h(t,p(n))}}function F(e,t,n){return e=S(e,t,n),e=y(e,t,n),e}var I=e=>typeof e==`object`&&!!e&&e.nodeType===1,L=(e,t)=>(!t||e!==`hidden`)&&e!==`visible`&&e!==`clip`,R=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){let n=getComputedStyle(e,null);return L(n.overflowY,t)||L(n.overflowX,t)||(e=>{let t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch{return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},z=(e,t,n,r,i,a,o,s)=>a<e&&o>t||a>e&&o<t?0:a<=e&&s<=n||o>=t&&s>=n?a-e-r:o>t&&s<n||a<e&&s>n?o-t+i:0,B=e=>e.parentElement??(e.getRootNode().host||null),V=(e,t)=>{if(typeof document>`u`)return[];let{scrollMode:n,block:r,inline:i,boundary:a,skipOverflowHiddenElements:o}=t,s=typeof a==`function`?a:e=>e!==a;if(!I(e))throw TypeError(`Invalid target`);let c=document.scrollingElement||document.documentElement,l=[],u=e;for(;I(u)&&s(u);){if(u=B(u),u===c){l.push(u);break}u!=null&&u===document.body&&R(u)&&!R(document.documentElement)||u!=null&&R(u,o)&&l.push(u)}let d=window.visualViewport?.width??innerWidth,f=window.visualViewport?.height??innerHeight,{scrollX:p,scrollY:m}=window,{height:h,width:g,top:_,right:v,bottom:y,left:b}=e.getBoundingClientRect(),{top:x,right:S,bottom:C,left:w}=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e),T=r===`start`||r===`nearest`?_-x:r===`end`?y+C:_+h/2-x+C,E=i===`center`?b+g/2-w+S:i===`end`?v+S:b-w,D=[];for(let e=0;e<l.length;e++){let t=l[e],{height:a,width:o,top:s,right:u,bottom:x,left:S}=t.getBoundingClientRect();if(n===`if-needed`&&_>=0&&b>=0&&y<=f&&v<=d&&(t===c&&!R(t)||_>=s&&y<=x&&b>=S&&v<=u))return D;let C=getComputedStyle(t),w=parseInt(C.borderLeftWidth,10),O=parseInt(C.borderTopWidth,10),k=parseInt(C.borderRightWidth,10),A=parseInt(C.borderBottomWidth,10),j=0,M=0,N=`offsetWidth`in t?t.offsetWidth-t.clientWidth-w-k:0,P=`offsetHeight`in t?t.offsetHeight-t.clientHeight-O-A:0,F=`offsetWidth`in t?t.offsetWidth===0?0:o/t.offsetWidth:0,I=`offsetHeight`in t?t.offsetHeight===0?0:a/t.offsetHeight:0;if(c===t)j=r===`start`?T:r===`end`?T-f:r===`nearest`?z(m,m+f,f,O,A,m+T,m+T+h,h):T-f/2,M=i===`start`?E:i===`center`?E-d/2:i===`end`?E-d:z(p,p+d,d,w,k,p+E,p+E+g,g),j=Math.max(0,j+m),M=Math.max(0,M+p);else{j=r===`start`?T-s-O:r===`end`?T-x+A+P:r===`nearest`?z(s,x,a,O,A+P,T,T+h,h):T-(s+a/2)+P/2,M=i===`start`?E-S-w:i===`center`?E-(S+o/2)+N/2:i===`end`?E-u+k+N:z(S,u,o,w,k+N,E,E+g,g);let{scrollLeft:e,scrollTop:n}=t;j=I===0?0:Math.max(0,Math.min(n+j/I,t.scrollHeight-a/I+P)),M=F===0?0:Math.max(0,Math.min(e+M/F,t.scrollWidth-o/F+N)),T+=n-j,E+=e-M}D.push({el:t,top:j,left:M})}return D},H=e=>!1===e?{block:`end`,inline:`nearest`}:(e=>e===Object(e)&&Object.keys(e).length!==0)(e)?e:{block:`start`,inline:`nearest`};function U(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let n=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if((e=>typeof e==`object`&&typeof e.behavior==`function`)(t))return t.behavior(V(e,t));let r=typeof t==`boolean`||t==null?void 0:t.behavior;for(let{el:i,top:a,left:o}of V(e,H(t))){let e=a-n.top+n.bottom,t=o-n.left+n.right;i.scroll({top:e,left:t,behavior:r})}}var W=(e,t)=>JSON.stringify(e)===JSON.stringify(t),G=class extends u(d(a.t(e.t))){constructor(...e){super(...e),this.selectionMode=`single`,this.selectionBehavior=`toggle`,this.requiredSelection=`none`,this._hasNoMatches=!1,this._showNoMatchesMessage=!1,this._activeDescendantId=null,this.values=[],this._state=k([]),this._ctx={selectionMode:`single`,selectionBehavior:`toggle`,requiredSelection:`none`,selectable:C([]),all:C([])},this._externalChangeQueued=!1}selectionModeChanged(){this._registerExternalChange()}selectionBehaviorChanged(){this._registerExternalChange()}requiredSelectionChanged(){this._registerExternalChange()}_filteredOptionsChanged(){this._registerExternalChange(),this._updateNoMatchesMessage()}_updateNoMatchesMessage(){this._hasNoMatches=this.searchText!==``&&!this._slottedOptions.some(e=>!e.hidden&&!e._isNotMatching),clearTimeout(this._noMatchesTimer),this._hasNoMatches?this._showNoMatchesMessage||(this._noMatchesTimer=setTimeout(()=>{this._showNoMatchesMessage=!0},10)):this._showNoMatchesMessage=!1}disconnectedCallback(){super.disconnectedCallback(),clearTimeout(this._noMatchesTimer)}valuesChanged(){this._state&&!W(this._state.values,this.values)&&this._registerExternalChange()}get value(){return this.values[0]??null}set value(e){this.values=e===null?[]:[e]}_registerExternalChange(){this._externalChangeQueued||(this._externalChangeQueued=!0,queueMicrotask(()=>this._applyPendingExternalChanges()))}_applyPendingExternalChanges(){if(this._externalChangeQueued=!1,!this._ctx.all.isEq(this._slottedOptions)||!this._ctx.selectable.isEq(this._filteredOptions)){this._initializeState();return}let e={...this._ctx,selectionMode:this.selectionMode,selectionBehavior:this.selectionBehavior,requiredSelection:this.requiredSelection};this._ctx=e,this._applyNewState(E(this._state,e,this.values))}_initializeState(){if(this._ctx={selectionMode:this.selectionMode,selectionBehavior:this.selectionBehavior,requiredSelection:this.requiredSelection,selectable:C(this._filteredOptions),all:C(this._slottedOptions)},!this._slottedOptions?.length){this._state=k([]),this._activeDescendantId=null;return}this._applyNewState(O(this._ctx,this._slottedOptions,this.values))}_applyNewState(e){if(T(e)){let t=this._filteredOptions[e.activeIndex];this._activeDescendantId=t.id,U(t,{block:`nearest`,scrollMode:`if-needed`})}else this._activeDescendantId=null;let t=!W(this.values,e.values);this._state=e,this.values=[...e.values],this._updateSlottedOptions(),t&&this.$emit(`change`,void 0,{bubbles:!1,composed:!1})}_updateSlottedOptions(){for(let e of this._slottedOptions)e.selected=this.values.includes(e.value),e._highlighted=!!(this._activeDescendantId&&e.id===this._activeDescendantId)}_onKeydown(e){let t=N(this._state,this._ctx,e,Date.now());return!t||(this._applyNewState(F(this._state,this._ctx,t)),!1)}_onClick(e){let t=e.target.closest(`[data-vvd-component=option]`),n=t?this._filteredOptions.indexOf(t):-1;if(n===-1)return!0;let r=this._state;return this._applyNewState(F(r,this._ctx,P(r,this._ctx,e,n))),!1}};r.t([e.m({attribute:`selection-mode`,mode:`fromView`})],G.prototype,`selectionMode`,void 0),r.t([e.m({attribute:`selection-behavior`,mode:`fromView`})],G.prototype,`selectionBehavior`,void 0),r.t([e.m({attribute:`required-selection`,mode:`fromView`})],G.prototype,`requiredSelection`,void 0),r.t([e.A],G.prototype,`_hasNoMatches`,void 0),r.t([e.A],G.prototype,`_showNoMatchesMessage`,void 0),r.t([e.A],G.prototype,`_activeDescendantId`,void 0),r.t([e.A],G.prototype,`values`,void 0);var K=`:host{outline:none;flex-direction:column;gap:2px;display:flex}:host(:not(:focus-visible)){--_suppressable-focus-shadow:none;--_suppressable-focus-outline:none;--_suppressable-focus-outline-offset:0}.no-matches{padding:8px 16px}`,q=e=>e._hasNoMatches,J=e.u(`listbox`,G,t=>e.p`<template
|
|
5
|
+
tabindex="0"
|
|
6
|
+
${a.n({role:e=>q(e)?void 0:`listbox`,ariaMultiSelectable:e=>!q(e)&&e.selectionMode===`multiple`?`true`:void 0})}
|
|
7
|
+
aria-activedescendant="${e=>e._activeDescendantId}"
|
|
8
|
+
@click="${(e,t)=>e._onClick(t.event)}"
|
|
9
|
+
@keydown="${(e,t)=>e._onKeydown(t.event)}"
|
|
10
|
+
>${f}${n.t(q,e.p`<div role="status" aria-live="polite" class="no-matches">
|
|
11
|
+
${n.t(e=>e._showNoMatchesMessage,e.p`<slot name="no-matches"></slot>`)}
|
|
12
|
+
</div>`)}</template
|
|
13
|
+
>`,[],{styles:K});e.d(J)();
|
package/listbox/index.js
ADDED
|
@@ -0,0 +1,554 @@
|
|
|
1
|
+
import { A as e, d as t, m as n, p as r, t as i, u as a } from "../bundled/vivid-element.js";
|
|
2
|
+
import { t as o } from "../bundled/slotted.js";
|
|
3
|
+
import { t as s } from "../bundled/when.js";
|
|
4
|
+
import { t as c } from "../bundled/decorate.js";
|
|
5
|
+
import { r as l } from "../bundled/aria-binding-directive.js";
|
|
6
|
+
import { n as u, t as d } from "../bundled/host-semantics.js";
|
|
7
|
+
import { n as f } from "../bundled/option.js";
|
|
8
|
+
import { n as p } from "../bundled/optgroup.js";
|
|
9
|
+
import { t as m } from "../bundled/extractOptions.js";
|
|
10
|
+
//#region src/shared/listbox/with-options-filter.ts
|
|
11
|
+
function h(e, t, n, r) {
|
|
12
|
+
let i = [];
|
|
13
|
+
for (let t of e) {
|
|
14
|
+
t._vvdSearchText = r;
|
|
15
|
+
let e = !r || n(t, r);
|
|
16
|
+
t._isNotMatching = !e, !t.hidden && !t.disabled && e && i.push(t);
|
|
17
|
+
}
|
|
18
|
+
for (let e of t) if (p(e)) {
|
|
19
|
+
let t = Array.from(e.children).some((e) => f(e) && !e._isNotMatching && !e.hidden);
|
|
20
|
+
e.style.display = t ? "" : "none";
|
|
21
|
+
}
|
|
22
|
+
return i;
|
|
23
|
+
}
|
|
24
|
+
var g = (t) => {
|
|
25
|
+
class r extends t {
|
|
26
|
+
constructor(...e) {
|
|
27
|
+
super(...e), this.searchText = "", this._filteredOptions = [];
|
|
28
|
+
}
|
|
29
|
+
_slottedOptionsChanged() {
|
|
30
|
+
super._slottedOptionsChanged(), this._updateFilter();
|
|
31
|
+
}
|
|
32
|
+
searchTextChanged() {
|
|
33
|
+
this._updateFilter();
|
|
34
|
+
}
|
|
35
|
+
optionFilterChanged() {
|
|
36
|
+
this._updateFilter();
|
|
37
|
+
}
|
|
38
|
+
_updateFilter() {
|
|
39
|
+
this._filteredOptions = h(this._slottedOptions, this._slottedElements, this.optionFilter ?? ((e, t) => e.text.toLowerCase().includes(t.toLowerCase())), this.searchText);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return c([n({
|
|
43
|
+
attribute: "search-text",
|
|
44
|
+
mode: "fromView"
|
|
45
|
+
})], r.prototype, "searchText", void 0), c([e], r.prototype, "optionFilter", void 0), c([e], r.prototype, "_filteredOptions", void 0), r;
|
|
46
|
+
}, _ = (t) => {
|
|
47
|
+
class n extends t {
|
|
48
|
+
constructor(...e) {
|
|
49
|
+
super(...e), this._slottedElements = [], this.#e = () => {
|
|
50
|
+
this._slottedElementsChanged();
|
|
51
|
+
}, this._slottedOptions = [];
|
|
52
|
+
}
|
|
53
|
+
_slottedElementsChanged() {
|
|
54
|
+
this._slottedOptions = m(this._slottedElements);
|
|
55
|
+
}
|
|
56
|
+
#e;
|
|
57
|
+
connectedCallback() {
|
|
58
|
+
super.connectedCallback(), this.addEventListener("optgroup-change", this.#e);
|
|
59
|
+
}
|
|
60
|
+
disconnectedCallback() {
|
|
61
|
+
super.disconnectedCallback(), this.removeEventListener("optgroup-change", this.#e);
|
|
62
|
+
}
|
|
63
|
+
_slottedOptionsChanged() {
|
|
64
|
+
for (let e of this._slottedOptions) e.id ||= l("option-");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return c([e], n.prototype, "_slottedElements", void 0), c([e], n.prototype, "_slottedOptions", void 0), n;
|
|
68
|
+
}, v = r`<slot
|
|
69
|
+
${o({
|
|
70
|
+
filter: ((e) => f(e) || p(e)),
|
|
71
|
+
flatten: !0,
|
|
72
|
+
property: "_slottedElements"
|
|
73
|
+
})}
|
|
74
|
+
>
|
|
75
|
+
</slot>`, y = (e) => {
|
|
76
|
+
let t = e.ctrlKey || e.metaKey;
|
|
77
|
+
return e.shiftKey && t ? "ShiftMod" : e.shiftKey ? "Shift" : t ? "Mod" : null;
|
|
78
|
+
}, b = (e, t, n, r) => {
|
|
79
|
+
if (n.amount === "step" && r === "Mod") return null;
|
|
80
|
+
if (t.selectionMode === "multiple") {
|
|
81
|
+
if (n.amount === "step" && r === "Shift") return {
|
|
82
|
+
action: {
|
|
83
|
+
type: "extend-from-anchor",
|
|
84
|
+
anchorIndex: e.rangeAnchorIndex ?? e.activeIndex
|
|
85
|
+
},
|
|
86
|
+
replaceExisting: !1
|
|
87
|
+
};
|
|
88
|
+
if (n.amount === "limit" && r === "ShiftMod") return {
|
|
89
|
+
action: { type: "select-from-current" },
|
|
90
|
+
replaceExisting: !1
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return t.selectionBehavior === "replace" ? {
|
|
94
|
+
action: { type: "select" },
|
|
95
|
+
replaceExisting: !0
|
|
96
|
+
} : null;
|
|
97
|
+
}, x = (e, t) => t === "Shift" ? {
|
|
98
|
+
action: { type: "select-from-most-recent" },
|
|
99
|
+
replaceExisting: e.selectionBehavior === "replace"
|
|
100
|
+
} : t === "Mod" ? {
|
|
101
|
+
action: { type: "toggle" },
|
|
102
|
+
replaceExisting: !1
|
|
103
|
+
} : e.selectionBehavior === "replace" ? {
|
|
104
|
+
action: { type: "select" },
|
|
105
|
+
replaceExisting: !0
|
|
106
|
+
} : {
|
|
107
|
+
action: { type: "toggle" },
|
|
108
|
+
replaceExisting: !1
|
|
109
|
+
};
|
|
110
|
+
function S(e, t, n, r) {
|
|
111
|
+
let i = new Set(e), [a, o] = [n, r].sort((e, t) => e - t), s = [...e];
|
|
112
|
+
for (let e = a; e <= o; e++) {
|
|
113
|
+
let n = t.selectable.optionValue(e);
|
|
114
|
+
i.has(n) || s.push(n);
|
|
115
|
+
}
|
|
116
|
+
return s;
|
|
117
|
+
}
|
|
118
|
+
function C(e, t, n, r, i) {
|
|
119
|
+
let a = new Set(e), [o, , s] = [
|
|
120
|
+
n,
|
|
121
|
+
r,
|
|
122
|
+
i
|
|
123
|
+
].sort((e, t) => e - t), c = [...e];
|
|
124
|
+
for (let e = o; e <= s; e++) {
|
|
125
|
+
let i = t.selectable.optionValue(e);
|
|
126
|
+
e < n && e < r || e > n && e > r ? a.has(i) && (c = c.filter((e) => e !== i)) : a.has(i) || c.push(i);
|
|
127
|
+
}
|
|
128
|
+
return c;
|
|
129
|
+
}
|
|
130
|
+
function w(e, t) {
|
|
131
|
+
let n = e.values;
|
|
132
|
+
for (let e = n.length - 1; e >= 0; e--) {
|
|
133
|
+
let r = t.selectable.optionIndex(n[e]);
|
|
134
|
+
if (r !== null) return r;
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
function T(e, t, n) {
|
|
139
|
+
let r = (t) => ({
|
|
140
|
+
...e,
|
|
141
|
+
values: t.values ?? e.values,
|
|
142
|
+
activeIndex: t.activeIndex ?? e.activeIndex,
|
|
143
|
+
rangeAnchorIndex: t.rangeAnchorIndex ?? null
|
|
144
|
+
});
|
|
145
|
+
if (n.type !== "action") return r({});
|
|
146
|
+
let i = e.values, { targetIndex: a, selection: o } = n, s = (e) => t.selectionMode === "single" && e.length > 1 ? [e[e.length - 1]] : t.requiredSelection !== "none" && (e.length === 0 || t.requiredSelection === "selectable" && !e.some((e) => t.selectable.optionIndex(e) !== null)) ? i : e, c = t.selectable.optionValue(a), l = o?.replaceExisting ? [] : i;
|
|
147
|
+
switch (o?.action.type) {
|
|
148
|
+
case void 0: return r({ activeIndex: a });
|
|
149
|
+
case "select": return r({
|
|
150
|
+
activeIndex: a,
|
|
151
|
+
values: s(i.includes(c) ? i : [...l, c])
|
|
152
|
+
});
|
|
153
|
+
case "toggle": return r({
|
|
154
|
+
activeIndex: a,
|
|
155
|
+
values: s(i.includes(c) ? l.filter((e) => e !== c) : [...l, c])
|
|
156
|
+
});
|
|
157
|
+
case "select-from-current": return r({
|
|
158
|
+
activeIndex: a,
|
|
159
|
+
values: s(S(l, t, e.activeIndex, a))
|
|
160
|
+
});
|
|
161
|
+
case "select-from-most-recent": return r({
|
|
162
|
+
activeIndex: a,
|
|
163
|
+
values: s(S(l, t, w(e, t) ?? 0, a))
|
|
164
|
+
});
|
|
165
|
+
case "extend-from-anchor": return r({
|
|
166
|
+
values: s(C(l, t, o.action.anchorIndex, a, e.activeIndex)),
|
|
167
|
+
activeIndex: a,
|
|
168
|
+
rangeAnchorIndex: o.action.anchorIndex
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//#endregion
|
|
173
|
+
//#region src/shared/listbox/typeahead.ts
|
|
174
|
+
var E = 2e3;
|
|
175
|
+
function D(e, t, n, r) {
|
|
176
|
+
let i = e.typeahead && e.typeahead.lastInputMs > r - E ? e.typeahead : null;
|
|
177
|
+
return n.length === 1 && !(n === " " && !i) ? {
|
|
178
|
+
buffer: (i?.buffer ?? "") + n,
|
|
179
|
+
lastInputMs: r
|
|
180
|
+
} : null;
|
|
181
|
+
}
|
|
182
|
+
function O(e, t, n) {
|
|
183
|
+
if (n.type !== "typeahead") return {
|
|
184
|
+
...e,
|
|
185
|
+
typeahead: null
|
|
186
|
+
};
|
|
187
|
+
let r = n.typeahead;
|
|
188
|
+
for (let i = (e.activeIndex + 1) % t.selectable.numOptions; i !== e.activeIndex; i = (i + 1) % t.selectable.numOptions) if (t.selectable.optionText(i).toLowerCase().startsWith(r.buffer.toLowerCase())) return {
|
|
189
|
+
...T(e, t, {
|
|
190
|
+
type: "action",
|
|
191
|
+
targetIndex: i,
|
|
192
|
+
selection: n.selection
|
|
193
|
+
}),
|
|
194
|
+
typeahead: r
|
|
195
|
+
};
|
|
196
|
+
return {
|
|
197
|
+
...e,
|
|
198
|
+
typeahead: r
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
//#endregion
|
|
202
|
+
//#region src/shared/listbox/options.ts
|
|
203
|
+
var k = (e) => ({
|
|
204
|
+
numOptions: e.length,
|
|
205
|
+
optionValue: (t) => e[t].value,
|
|
206
|
+
optionText: (t) => e[t].text,
|
|
207
|
+
optionIndex: (t) => {
|
|
208
|
+
let n = e.findIndex((e) => e.value === t);
|
|
209
|
+
return n === -1 ? null : n;
|
|
210
|
+
},
|
|
211
|
+
isEq: (t) => e === t
|
|
212
|
+
});
|
|
213
|
+
function A(e, t, n) {
|
|
214
|
+
let r = t.filter((e) => e.selected || n.includes(e.value)).map((e) => e.value), i = e.selectionMode === "single" ? 1 : Infinity;
|
|
215
|
+
return N(e, r.slice(0, i), i);
|
|
216
|
+
}
|
|
217
|
+
//#endregion
|
|
218
|
+
//#region src/shared/listbox/state.ts
|
|
219
|
+
function j(e) {
|
|
220
|
+
return "activeIndex" in e;
|
|
221
|
+
}
|
|
222
|
+
function M(e, t, n) {
|
|
223
|
+
let r = n.filter((e) => t.all.optionIndex(e) !== null), i = t.selectionMode === "single" ? 1 : Infinity, a = r.slice(0, i);
|
|
224
|
+
return a = N(t, a, i), {
|
|
225
|
+
...e,
|
|
226
|
+
values: a
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
function N(e, t, n) {
|
|
230
|
+
return e.requiredSelection === "none" || e.selectable.numOptions === 0 ? t : t.length === 0 ? [e.selectable.optionValue(0)] : e.requiredSelection === "selectable" && !t.some((t) => e.selectable.optionIndex(t) !== null) ? n === 1 ? [e.selectable.optionValue(0)] : [...t, e.selectable.optionValue(0)] : t;
|
|
231
|
+
}
|
|
232
|
+
function P(e, t, n) {
|
|
233
|
+
let r = A(e, t, n);
|
|
234
|
+
if (e.selectable.numOptions === 0) return F(r);
|
|
235
|
+
let i = 0;
|
|
236
|
+
for (let t of r) {
|
|
237
|
+
let n = e.selectable.optionIndex(t);
|
|
238
|
+
if (n !== null) {
|
|
239
|
+
i = n;
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
values: r,
|
|
245
|
+
activeIndex: i,
|
|
246
|
+
typeahead: null,
|
|
247
|
+
rangeAnchorIndex: null
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
function F(e) {
|
|
251
|
+
return { values: e };
|
|
252
|
+
}
|
|
253
|
+
//#endregion
|
|
254
|
+
//#region src/shared/listbox/move.ts
|
|
255
|
+
function I(e) {
|
|
256
|
+
switch (e) {
|
|
257
|
+
case "Home": return {
|
|
258
|
+
direction: "backward",
|
|
259
|
+
amount: "limit"
|
|
260
|
+
};
|
|
261
|
+
case "End": return {
|
|
262
|
+
direction: "forward",
|
|
263
|
+
amount: "limit"
|
|
264
|
+
};
|
|
265
|
+
case "PageUp": return {
|
|
266
|
+
direction: "backward",
|
|
267
|
+
amount: "page"
|
|
268
|
+
};
|
|
269
|
+
case "PageDown": return {
|
|
270
|
+
direction: "forward",
|
|
271
|
+
amount: "page"
|
|
272
|
+
};
|
|
273
|
+
case "ArrowUp": return {
|
|
274
|
+
direction: "backward",
|
|
275
|
+
amount: "step"
|
|
276
|
+
};
|
|
277
|
+
case "ArrowDown": return {
|
|
278
|
+
direction: "forward",
|
|
279
|
+
amount: "step"
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
function L(e, t, n, r) {
|
|
285
|
+
let i = {
|
|
286
|
+
backward: 0,
|
|
287
|
+
forward: t - 1
|
|
288
|
+
}, a = {
|
|
289
|
+
backward: -1,
|
|
290
|
+
forward: 1
|
|
291
|
+
}, o = {
|
|
292
|
+
step: 1,
|
|
293
|
+
page: n
|
|
294
|
+
};
|
|
295
|
+
switch (r.amount) {
|
|
296
|
+
case "limit": return i[r.direction];
|
|
297
|
+
case "page":
|
|
298
|
+
case "step": return Math.min(i.forward, Math.max(i.backward, e + a[r.direction] * o[r.amount]));
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
//#endregion
|
|
302
|
+
//#region src/shared/listbox/commands.ts
|
|
303
|
+
var R = 10;
|
|
304
|
+
function z(e, t, n, r) {
|
|
305
|
+
if (!j(e)) return null;
|
|
306
|
+
let i = D(e, t, n.key, r);
|
|
307
|
+
if (i) return {
|
|
308
|
+
type: "typeahead",
|
|
309
|
+
typeahead: i,
|
|
310
|
+
selection: t.selectionBehavior === "replace" ? {
|
|
311
|
+
action: { type: "select" },
|
|
312
|
+
replaceExisting: !0
|
|
313
|
+
} : null
|
|
314
|
+
};
|
|
315
|
+
let a = I(n.key);
|
|
316
|
+
return a ? {
|
|
317
|
+
type: "action",
|
|
318
|
+
targetIndex: L(e.activeIndex, t.selectable.numOptions, R, a),
|
|
319
|
+
selection: b(e, t, a, y(n))
|
|
320
|
+
} : n.key === " " ? {
|
|
321
|
+
type: "action",
|
|
322
|
+
targetIndex: e.activeIndex,
|
|
323
|
+
selection: x(t, y(n))
|
|
324
|
+
} : null;
|
|
325
|
+
}
|
|
326
|
+
function B(e, t, n, r) {
|
|
327
|
+
return {
|
|
328
|
+
type: "action",
|
|
329
|
+
targetIndex: r,
|
|
330
|
+
selection: x(t, y(n))
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
function V(e, t, n) {
|
|
334
|
+
return e = O(e, t, n), e = T(e, t, n), e;
|
|
335
|
+
}
|
|
336
|
+
//#endregion
|
|
337
|
+
//#region ../../node_modules/.pnpm/compute-scroll-into-view@3.1.1/node_modules/compute-scroll-into-view/dist/index.js
|
|
338
|
+
var H = (e) => typeof e == "object" && !!e && e.nodeType === 1, U = (e, t) => (!t || e !== "hidden") && e !== "visible" && e !== "clip", W = (e, t) => {
|
|
339
|
+
if (e.clientHeight < e.scrollHeight || e.clientWidth < e.scrollWidth) {
|
|
340
|
+
let n = getComputedStyle(e, null);
|
|
341
|
+
return U(n.overflowY, t) || U(n.overflowX, t) || ((e) => {
|
|
342
|
+
let t = ((e) => {
|
|
343
|
+
if (!e.ownerDocument || !e.ownerDocument.defaultView) return null;
|
|
344
|
+
try {
|
|
345
|
+
return e.ownerDocument.defaultView.frameElement;
|
|
346
|
+
} catch {
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
})(e);
|
|
350
|
+
return !!t && (t.clientHeight < e.scrollHeight || t.clientWidth < e.scrollWidth);
|
|
351
|
+
})(e);
|
|
352
|
+
}
|
|
353
|
+
return !1;
|
|
354
|
+
}, G = (e, t, n, r, i, a, o, s) => a < e && o > t || a > e && o < t ? 0 : a <= e && s <= n || o >= t && s >= n ? a - e - r : o > t && s < n || a < e && s > n ? o - t + i : 0, K = (e) => e.parentElement ?? (e.getRootNode().host || null), q = (e, t) => {
|
|
355
|
+
if (typeof document > "u") return [];
|
|
356
|
+
let { scrollMode: n, block: r, inline: i, boundary: a, skipOverflowHiddenElements: o } = t, s = typeof a == "function" ? a : (e) => e !== a;
|
|
357
|
+
if (!H(e)) throw TypeError("Invalid target");
|
|
358
|
+
let c = document.scrollingElement || document.documentElement, l = [], u = e;
|
|
359
|
+
for (; H(u) && s(u);) {
|
|
360
|
+
if (u = K(u), u === c) {
|
|
361
|
+
l.push(u);
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
u != null && u === document.body && W(u) && !W(document.documentElement) || u != null && W(u, o) && l.push(u);
|
|
365
|
+
}
|
|
366
|
+
let d = window.visualViewport?.width ?? innerWidth, f = window.visualViewport?.height ?? innerHeight, { scrollX: p, scrollY: m } = window, { height: h, width: g, top: _, right: v, bottom: y, left: b } = e.getBoundingClientRect(), { top: x, right: S, bottom: C, left: w } = ((e) => {
|
|
367
|
+
let t = window.getComputedStyle(e);
|
|
368
|
+
return {
|
|
369
|
+
top: parseFloat(t.scrollMarginTop) || 0,
|
|
370
|
+
right: parseFloat(t.scrollMarginRight) || 0,
|
|
371
|
+
bottom: parseFloat(t.scrollMarginBottom) || 0,
|
|
372
|
+
left: parseFloat(t.scrollMarginLeft) || 0
|
|
373
|
+
};
|
|
374
|
+
})(e), T = r === "start" || r === "nearest" ? _ - x : r === "end" ? y + C : _ + h / 2 - x + C, E = i === "center" ? b + g / 2 - w + S : i === "end" ? v + S : b - w, D = [];
|
|
375
|
+
for (let e = 0; e < l.length; e++) {
|
|
376
|
+
let t = l[e], { height: a, width: o, top: s, right: u, bottom: x, left: S } = t.getBoundingClientRect();
|
|
377
|
+
if (n === "if-needed" && _ >= 0 && b >= 0 && y <= f && v <= d && (t === c && !W(t) || _ >= s && y <= x && b >= S && v <= u)) return D;
|
|
378
|
+
let C = getComputedStyle(t), w = parseInt(C.borderLeftWidth, 10), O = parseInt(C.borderTopWidth, 10), k = parseInt(C.borderRightWidth, 10), A = parseInt(C.borderBottomWidth, 10), j = 0, M = 0, N = "offsetWidth" in t ? t.offsetWidth - t.clientWidth - w - k : 0, P = "offsetHeight" in t ? t.offsetHeight - t.clientHeight - O - A : 0, F = "offsetWidth" in t ? t.offsetWidth === 0 ? 0 : o / t.offsetWidth : 0, I = "offsetHeight" in t ? t.offsetHeight === 0 ? 0 : a / t.offsetHeight : 0;
|
|
379
|
+
if (c === t) j = r === "start" ? T : r === "end" ? T - f : r === "nearest" ? G(m, m + f, f, O, A, m + T, m + T + h, h) : T - f / 2, M = i === "start" ? E : i === "center" ? E - d / 2 : i === "end" ? E - d : G(p, p + d, d, w, k, p + E, p + E + g, g), j = Math.max(0, j + m), M = Math.max(0, M + p);
|
|
380
|
+
else {
|
|
381
|
+
j = r === "start" ? T - s - O : r === "end" ? T - x + A + P : r === "nearest" ? G(s, x, a, O, A + P, T, T + h, h) : T - (s + a / 2) + P / 2, M = i === "start" ? E - S - w : i === "center" ? E - (S + o / 2) + N / 2 : i === "end" ? E - u + k + N : G(S, u, o, w, k + N, E, E + g, g);
|
|
382
|
+
let { scrollLeft: e, scrollTop: n } = t;
|
|
383
|
+
j = I === 0 ? 0 : Math.max(0, Math.min(n + j / I, t.scrollHeight - a / I + P)), M = F === 0 ? 0 : Math.max(0, Math.min(e + M / F, t.scrollWidth - o / F + N)), T += n - j, E += e - M;
|
|
384
|
+
}
|
|
385
|
+
D.push({
|
|
386
|
+
el: t,
|
|
387
|
+
top: j,
|
|
388
|
+
left: M
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
return D;
|
|
392
|
+
}, J = (e) => !1 === e ? {
|
|
393
|
+
block: "end",
|
|
394
|
+
inline: "nearest"
|
|
395
|
+
} : ((e) => e === Object(e) && Object.keys(e).length !== 0)(e) ? e : {
|
|
396
|
+
block: "start",
|
|
397
|
+
inline: "nearest"
|
|
398
|
+
};
|
|
399
|
+
function Y(e, t) {
|
|
400
|
+
if (!e.isConnected || !((e) => {
|
|
401
|
+
let t = e;
|
|
402
|
+
for (; t && t.parentNode;) {
|
|
403
|
+
if (t.parentNode === document) return !0;
|
|
404
|
+
t = t.parentNode instanceof ShadowRoot ? t.parentNode.host : t.parentNode;
|
|
405
|
+
}
|
|
406
|
+
return !1;
|
|
407
|
+
})(e)) return;
|
|
408
|
+
let n = ((e) => {
|
|
409
|
+
let t = window.getComputedStyle(e);
|
|
410
|
+
return {
|
|
411
|
+
top: parseFloat(t.scrollMarginTop) || 0,
|
|
412
|
+
right: parseFloat(t.scrollMarginRight) || 0,
|
|
413
|
+
bottom: parseFloat(t.scrollMarginBottom) || 0,
|
|
414
|
+
left: parseFloat(t.scrollMarginLeft) || 0
|
|
415
|
+
};
|
|
416
|
+
})(e);
|
|
417
|
+
if (((e) => typeof e == "object" && typeof e.behavior == "function")(t)) return t.behavior(q(e, t));
|
|
418
|
+
let r = typeof t == "boolean" || t == null ? void 0 : t.behavior;
|
|
419
|
+
for (let { el: i, top: a, left: o } of q(e, J(t))) {
|
|
420
|
+
let e = a - n.top + n.bottom, t = o - n.left + n.right;
|
|
421
|
+
i.scroll({
|
|
422
|
+
top: e,
|
|
423
|
+
left: t,
|
|
424
|
+
behavior: r
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
//#endregion
|
|
429
|
+
//#region src/lib/listbox/listbox.ts
|
|
430
|
+
var X = (e, t) => JSON.stringify(e) === JSON.stringify(t), Z = class extends g(_(d(i))) {
|
|
431
|
+
constructor(...e) {
|
|
432
|
+
super(...e), this.selectionMode = "single", this.selectionBehavior = "toggle", this.requiredSelection = "none", this._hasNoMatches = !1, this._showNoMatchesMessage = !1, this._activeDescendantId = null, this.values = [], this._state = F([]), this._ctx = {
|
|
433
|
+
selectionMode: "single",
|
|
434
|
+
selectionBehavior: "toggle",
|
|
435
|
+
requiredSelection: "none",
|
|
436
|
+
selectable: k([]),
|
|
437
|
+
all: k([])
|
|
438
|
+
}, this._externalChangeQueued = !1;
|
|
439
|
+
}
|
|
440
|
+
selectionModeChanged() {
|
|
441
|
+
this._registerExternalChange();
|
|
442
|
+
}
|
|
443
|
+
selectionBehaviorChanged() {
|
|
444
|
+
this._registerExternalChange();
|
|
445
|
+
}
|
|
446
|
+
requiredSelectionChanged() {
|
|
447
|
+
this._registerExternalChange();
|
|
448
|
+
}
|
|
449
|
+
_filteredOptionsChanged() {
|
|
450
|
+
this._registerExternalChange(), this._updateNoMatchesMessage();
|
|
451
|
+
}
|
|
452
|
+
_updateNoMatchesMessage() {
|
|
453
|
+
this._hasNoMatches = this.searchText !== "" && !this._slottedOptions.some((e) => !e.hidden && !e._isNotMatching), clearTimeout(this._noMatchesTimer), this._hasNoMatches ? this._showNoMatchesMessage || (this._noMatchesTimer = setTimeout(() => {
|
|
454
|
+
this._showNoMatchesMessage = !0;
|
|
455
|
+
}, 10)) : this._showNoMatchesMessage = !1;
|
|
456
|
+
}
|
|
457
|
+
disconnectedCallback() {
|
|
458
|
+
super.disconnectedCallback(), clearTimeout(this._noMatchesTimer);
|
|
459
|
+
}
|
|
460
|
+
valuesChanged() {
|
|
461
|
+
this._state && !X(this._state.values, this.values) && this._registerExternalChange();
|
|
462
|
+
}
|
|
463
|
+
get value() {
|
|
464
|
+
return this.values[0] ?? null;
|
|
465
|
+
}
|
|
466
|
+
set value(e) {
|
|
467
|
+
this.values = e === null ? [] : [e];
|
|
468
|
+
}
|
|
469
|
+
_registerExternalChange() {
|
|
470
|
+
this._externalChangeQueued || (this._externalChangeQueued = !0, queueMicrotask(() => this._applyPendingExternalChanges()));
|
|
471
|
+
}
|
|
472
|
+
_applyPendingExternalChanges() {
|
|
473
|
+
if (this._externalChangeQueued = !1, !this._ctx.all.isEq(this._slottedOptions) || !this._ctx.selectable.isEq(this._filteredOptions)) {
|
|
474
|
+
this._initializeState();
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
let e = {
|
|
478
|
+
...this._ctx,
|
|
479
|
+
selectionMode: this.selectionMode,
|
|
480
|
+
selectionBehavior: this.selectionBehavior,
|
|
481
|
+
requiredSelection: this.requiredSelection
|
|
482
|
+
};
|
|
483
|
+
this._ctx = e, this._applyNewState(M(this._state, e, this.values));
|
|
484
|
+
}
|
|
485
|
+
_initializeState() {
|
|
486
|
+
if (this._ctx = {
|
|
487
|
+
selectionMode: this.selectionMode,
|
|
488
|
+
selectionBehavior: this.selectionBehavior,
|
|
489
|
+
requiredSelection: this.requiredSelection,
|
|
490
|
+
selectable: k(this._filteredOptions),
|
|
491
|
+
all: k(this._slottedOptions)
|
|
492
|
+
}, !this._slottedOptions?.length) {
|
|
493
|
+
this._state = F([]), this._activeDescendantId = null;
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
this._applyNewState(P(this._ctx, this._slottedOptions, this.values));
|
|
497
|
+
}
|
|
498
|
+
_applyNewState(e) {
|
|
499
|
+
if (j(e)) {
|
|
500
|
+
let t = this._filteredOptions[e.activeIndex];
|
|
501
|
+
this._activeDescendantId = t.id, Y(t, {
|
|
502
|
+
block: "nearest",
|
|
503
|
+
scrollMode: "if-needed"
|
|
504
|
+
});
|
|
505
|
+
} else this._activeDescendantId = null;
|
|
506
|
+
let t = !X(this.values, e.values);
|
|
507
|
+
this._state = e, this.values = [...e.values], this._updateSlottedOptions(), t && this.$emit("change", void 0, {
|
|
508
|
+
bubbles: !1,
|
|
509
|
+
composed: !1
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
_updateSlottedOptions() {
|
|
513
|
+
for (let e of this._slottedOptions) e.selected = this.values.includes(e.value), e._highlighted = !!(this._activeDescendantId && e.id === this._activeDescendantId);
|
|
514
|
+
}
|
|
515
|
+
_onKeydown(e) {
|
|
516
|
+
let t = z(this._state, this._ctx, e, Date.now());
|
|
517
|
+
return !t || (this._applyNewState(V(this._state, this._ctx, t)), !1);
|
|
518
|
+
}
|
|
519
|
+
_onClick(e) {
|
|
520
|
+
let t = e.target.closest("[data-vvd-component=option]"), n = t ? this._filteredOptions.indexOf(t) : -1;
|
|
521
|
+
if (n === -1) return !0;
|
|
522
|
+
let r = this._state;
|
|
523
|
+
return this._applyNewState(V(r, this._ctx, B(r, this._ctx, e, n))), !1;
|
|
524
|
+
}
|
|
525
|
+
};
|
|
526
|
+
c([n({
|
|
527
|
+
attribute: "selection-mode",
|
|
528
|
+
mode: "fromView"
|
|
529
|
+
})], Z.prototype, "selectionMode", void 0), c([n({
|
|
530
|
+
attribute: "selection-behavior",
|
|
531
|
+
mode: "fromView"
|
|
532
|
+
})], Z.prototype, "selectionBehavior", void 0), c([n({
|
|
533
|
+
attribute: "required-selection",
|
|
534
|
+
mode: "fromView"
|
|
535
|
+
})], Z.prototype, "requiredSelection", void 0), c([e], Z.prototype, "_hasNoMatches", void 0), c([e], Z.prototype, "_showNoMatchesMessage", void 0), c([e], Z.prototype, "_activeDescendantId", void 0), c([e], Z.prototype, "values", void 0);
|
|
536
|
+
//#endregion
|
|
537
|
+
//#region src/lib/listbox/listbox.scss?inline
|
|
538
|
+
var Q = ":host{outline:none;flex-direction:column;gap:2px;display:flex}:host(:not(:focus-visible)){--_suppressable-focus-shadow:none;--_suppressable-focus-outline:none;--_suppressable-focus-outline-offset:0}.no-matches{padding:8px 16px}", $ = (e) => e._hasNoMatches, ee = a("listbox", Z, (e) => r`<template
|
|
539
|
+
tabindex="0"
|
|
540
|
+
${u({
|
|
541
|
+
role: (e) => $(e) ? void 0 : "listbox",
|
|
542
|
+
ariaMultiSelectable: (e) => !$(e) && e.selectionMode === "multiple" ? "true" : void 0
|
|
543
|
+
})}
|
|
544
|
+
aria-activedescendant="${(e) => e._activeDescendantId}"
|
|
545
|
+
@click="${(e, t) => e._onClick(t.event)}"
|
|
546
|
+
@keydown="${(e, t) => e._onKeydown(t.event)}"
|
|
547
|
+
>${v}${s($, r`<div role="status" aria-live="polite" class="no-matches">
|
|
548
|
+
${s((e) => e._showNoMatchesMessage, r`<slot name="no-matches"></slot>`)}
|
|
549
|
+
</div>`)}</template
|
|
550
|
+
>`, [], { styles: Q });
|
|
551
|
+
//#endregion
|
|
552
|
+
//#region src/lib/listbox/index.ts
|
|
553
|
+
t(ee)();
|
|
554
|
+
//#endregion
|