wcs-core 4.2.0 → 5.0.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/dist/cjs/{accessibility-e99b032d.js → accessibility-c0c4e648.js} +8 -2
- package/dist/cjs/accessibility-c0c4e648.js.map +1 -0
- package/dist/cjs/button-interface-044a8a8a.js +12 -0
- package/dist/cjs/button-interface-044a8a8a.js.map +1 -0
- package/dist/cjs/grid-pagination-3511fdfa.js +111 -0
- package/dist/cjs/grid-pagination-3511fdfa.js.map +1 -0
- package/dist/cjs/{helpers-4a14051a.js → helpers-6280db6e.js} +75 -2
- package/dist/cjs/helpers-6280db6e.js.map +1 -0
- package/dist/cjs/{index-ca67a6dc.js → index-749d999e.js} +4 -1
- package/dist/cjs/index-749d999e.js.map +1 -0
- package/dist/cjs/{isEqual-9ea7ee49.js → keyboard-event-1cad4036.js} +77 -1
- package/dist/cjs/keyboard-event-1cad4036.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{select-arrow-c9583ea9.js → select-arrow-8169c0cb.js} +2 -2
- package/dist/cjs/{select-arrow-c9583ea9.js.map → select-arrow-8169c0cb.js.map} +1 -1
- package/dist/cjs/wcs-accordion-content.cjs.entry.js +1 -1
- package/dist/cjs/wcs-accordion-header.cjs.entry.js +1 -1
- package/dist/cjs/wcs-accordion-panel.cjs.entry.js +2 -2
- package/dist/cjs/wcs-accordion.cjs.entry.js +1 -1
- package/dist/cjs/wcs-action-bar.cjs.entry.js +1 -1
- package/dist/cjs/wcs-app.cjs.entry.js +1 -1
- package/dist/cjs/wcs-badge.cjs.entry.js +3 -2
- package/dist/cjs/wcs-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/{wcs-button.cjs.entry.js → wcs-button_2.cjs.entry.js} +21 -12
- package/dist/cjs/wcs-button_2.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-card-body.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card.cjs.entry.js +1 -1
- package/dist/cjs/wcs-checkbox.cjs.entry.js +5 -2
- package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav-category.cjs.entry.js +2 -2
- package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +2 -2
- package/dist/cjs/wcs-com-nav.cjs.entry.js +2 -2
- package/dist/cjs/wcs-counter.cjs.entry.js +16 -6
- package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
- package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
- package/dist/cjs/wcs-dropdown-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
- package/dist/cjs/wcs-dropdown-header.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-dropdown-item.cjs.entry.js +2 -2
- package/dist/cjs/wcs-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-dropdown.cjs.entry.js +12 -6
- package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-editable-field.cjs.entry.js +18 -3
- package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-error_2.cjs.entry.js +36 -2
- package/dist/cjs/wcs-error_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
- package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
- package/dist/cjs/wcs-field.cjs.entry.js +1 -1
- package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
- package/dist/cjs/wcs-galactic-menu.cjs.entry.js +2 -2
- package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid-column.cjs.entry.js +25 -4
- package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
- package/dist/cjs/wcs-grid.cjs.entry.js +320 -65
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-header.cjs.entry.js +1 -1
- package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
- package/dist/cjs/wcs-icon.cjs.entry.js +1 -1
- package/dist/cjs/wcs-input.cjs.entry.js +15 -15
- package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-label.cjs.entry.js +1 -1
- package/dist/cjs/wcs-label.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
- package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
- package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-mat-icon.cjs.entry.js +2 -2
- package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-modal.cjs.entry.js +35 -5
- package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-native-select.cjs.entry.js +6 -3
- package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-nav-item.cjs.entry.js +2 -2
- package/dist/cjs/wcs-nav.cjs.entry.js +1 -1
- package/dist/cjs/wcs-progress-bar.cjs.entry.js +4 -6
- package/dist/cjs/wcs-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-progress-radial.cjs.entry.js +14 -6
- package/dist/cjs/wcs-progress-radial.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-radio-group.cjs.entry.js +22 -15
- package/dist/cjs/wcs-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-radio.cjs.entry.js +14 -7
- package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-select_2.cjs.entry.js +603 -111
- package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
- package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
- package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
- package/dist/cjs/wcs-switch.cjs.entry.js +5 -2
- package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tab.cjs.entry.js +4 -1
- package/dist/cjs/wcs-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tabs.cjs.entry.js +4 -4
- package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-textarea.cjs.entry.js +13 -11
- package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/wcs.cjs.js +2 -2
- package/dist/collection/components/badge/badge-interface.js.map +1 -1
- package/dist/collection/components/badge/badge.css +19 -1
- package/dist/collection/components/badge/badge.js +24 -0
- package/dist/collection/components/badge/badge.js.map +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/checkbox/checkbox.js +34 -1
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/counter/counter.css +6 -1
- package/dist/collection/components/counter/counter.js +61 -3
- package/dist/collection/components/counter/counter.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.css +15 -4
- package/dist/collection/components/dropdown/dropdown.js +37 -1
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/dropdown-divider/dropdown-divider.js +3 -0
- package/dist/collection/components/dropdown-divider/dropdown-divider.js.map +1 -1
- package/dist/collection/components/dropdown-header/dropdown-header.js +4 -0
- package/dist/collection/components/dropdown-header/dropdown-header.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.js +5 -1
- package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
- package/dist/collection/components/editable-field/editable-field.js +17 -2
- package/dist/collection/components/editable-field/editable-field.js.map +1 -1
- package/dist/collection/components/error/error.js +1 -1
- package/dist/collection/components/error/error.js.map +1 -1
- package/dist/collection/components/form-field/form-field.js +31 -0
- package/dist/collection/components/form-field/form-field.js.map +1 -1
- package/dist/collection/components/grid/grid-interface.js.map +1 -1
- package/dist/collection/components/grid/grid-keyboard-event.js +52 -0
- package/dist/collection/components/grid/grid-keyboard-event.js.map +1 -0
- package/dist/collection/components/grid/grid.css +5 -0
- package/dist/collection/components/grid/grid.js +265 -29
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/grid-column/grid-column.css +5 -0
- package/dist/collection/components/grid-column/grid-column.js +60 -1
- package/dist/collection/components/grid-column/grid-column.js.map +1 -1
- package/dist/collection/components/grid-column/grid-sort-arrow.js +1 -1
- package/dist/collection/components/grid-column/grid-sort-arrow.js.map +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination-arrow.js +32 -23
- package/dist/collection/components/grid-pagination/grid-pagination-arrow.js.map +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.css +17 -0
- package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
- package/dist/collection/components/input/input.js +64 -28
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/label/label.js.map +1 -1
- package/dist/collection/components/mat-icon/mat-icon.js +1 -1
- package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
- package/dist/collection/components/modal/modal.css +2 -2
- package/dist/collection/components/modal/modal.js +73 -2
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/native-select/native-select.css +6 -5
- package/dist/collection/components/native-select/native-select.js +29 -0
- package/dist/collection/components/native-select/native-select.js.map +1 -1
- package/dist/collection/components/progress-bar/progress-bar.css +12 -11
- package/dist/collection/components/progress-bar/progress-bar.js +22 -13
- package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
- package/dist/collection/components/progress-radial/progress-radial.css +5 -0
- package/dist/collection/components/progress-radial/progress-radial.js +18 -7
- package/dist/collection/components/progress-radial/progress-radial.js.map +1 -1
- package/dist/collection/components/radio/radio.css +8 -16
- package/dist/collection/components/radio/radio.js +12 -5
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/radio-group/radio-group.js +50 -13
- package/dist/collection/components/radio-group/radio-group.js.map +1 -1
- package/dist/collection/components/select/select-interface.js +10 -0
- package/dist/collection/components/select/select-interface.js.map +1 -1
- package/dist/collection/components/select/select-keyboard-event.js +306 -0
- package/dist/collection/components/select/select-keyboard-event.js.map +1 -0
- package/dist/collection/components/select/select.css +59 -6
- package/dist/collection/components/select/select.js +435 -111
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-option/select-option.css +15 -0
- package/dist/collection/components/select-option/select-option.js +30 -5
- package/dist/collection/components/select-option/select-option.js.map +1 -1
- package/dist/collection/components/switch/switch.js +34 -1
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/tab/tab.css +7 -0
- package/dist/collection/components/tab/tab.js +11 -1
- package/dist/collection/components/tab/tab.js.map +1 -1
- package/dist/collection/components/tabs/tabs.js +7 -3
- package/dist/collection/components/tabs/tabs.js.map +1 -1
- package/dist/collection/components/textarea/textarea.css +8 -3
- package/dist/collection/components/textarea/textarea.js +41 -12
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/utils/accessibility.js +7 -1
- package/dist/collection/utils/accessibility.js.map +1 -1
- package/dist/collection/utils/helpers.js +76 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/keyboard-event.js +74 -0
- package/dist/collection/utils/keyboard-event.js.map +1 -0
- package/dist/collection/utils/mutable-aria-attribute.js +4 -0
- package/dist/collection/utils/mutable-aria-attribute.js.map +1 -0
- package/dist/esm/{accessibility-ffa12842.js → accessibility-64feea8a.js} +8 -2
- package/dist/esm/accessibility-64feea8a.js.map +1 -0
- package/dist/esm/button-interface-c21c265f.js +9 -0
- package/dist/esm/button-interface-c21c265f.js.map +1 -0
- package/dist/esm/grid-pagination-f7b01e2e.js +109 -0
- package/dist/esm/grid-pagination-f7b01e2e.js.map +1 -0
- package/dist/esm/{helpers-1d55b67f.js → helpers-a21ae7d0.js} +75 -3
- package/dist/esm/helpers-a21ae7d0.js.map +1 -0
- package/dist/esm/{index-dc4d96d4.js → index-4f282598.js} +4 -1
- package/dist/esm/index-4f282598.js.map +1 -0
- package/dist/esm/{isEqual-20881bca.js → keyboard-event-ba3d20e7.js} +77 -2
- package/dist/esm/keyboard-event-ba3d20e7.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{select-arrow-81d069f7.js → select-arrow-28e8687b.js} +2 -2
- package/dist/esm/{select-arrow-81d069f7.js.map → select-arrow-28e8687b.js.map} +1 -1
- package/dist/esm/wcs-accordion-content.entry.js +1 -1
- package/dist/esm/wcs-accordion-header.entry.js +1 -1
- package/dist/esm/wcs-accordion-panel.entry.js +2 -2
- package/dist/esm/wcs-accordion.entry.js +1 -1
- package/dist/esm/wcs-action-bar.entry.js +1 -1
- package/dist/esm/wcs-app.entry.js +1 -1
- package/dist/esm/wcs-badge.entry.js +3 -2
- package/dist/esm/wcs-badge.entry.js.map +1 -1
- package/dist/esm/{wcs-button.entry.js → wcs-button_2.entry.js} +19 -11
- package/dist/esm/wcs-button_2.entry.js.map +1 -0
- package/dist/esm/wcs-card-body.entry.js +1 -1
- package/dist/esm/wcs-card.entry.js +1 -1
- package/dist/esm/wcs-checkbox.entry.js +5 -2
- package/dist/esm/wcs-checkbox.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav-category.entry.js +2 -2
- package/dist/esm/wcs-com-nav-submenu.entry.js +2 -2
- package/dist/esm/wcs-com-nav.entry.js +2 -2
- package/dist/esm/wcs-counter.entry.js +16 -6
- package/dist/esm/wcs-counter.entry.js.map +1 -1
- package/dist/esm/wcs-divider.entry.js +1 -1
- package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
- package/dist/esm/wcs-dropdown-divider.entry.js.map +1 -1
- package/dist/esm/wcs-dropdown-header.entry.js +1 -1
- package/dist/esm/wcs-dropdown-header.entry.js.map +1 -1
- package/dist/esm/wcs-dropdown-item.entry.js +2 -2
- package/dist/esm/wcs-dropdown-item.entry.js.map +1 -1
- package/dist/esm/wcs-dropdown.entry.js +12 -6
- package/dist/esm/wcs-dropdown.entry.js.map +1 -1
- package/dist/esm/wcs-editable-field.entry.js +18 -3
- package/dist/esm/wcs-editable-field.entry.js.map +1 -1
- package/dist/esm/wcs-error_2.entry.js +36 -2
- package/dist/esm/wcs-error_2.entry.js.map +1 -1
- package/dist/esm/wcs-field-content.entry.js +1 -1
- package/dist/esm/wcs-field-label.entry.js +1 -1
- package/dist/esm/wcs-field.entry.js +1 -1
- package/dist/esm/wcs-footer.entry.js +1 -1
- package/dist/esm/wcs-galactic-menu.entry.js +2 -2
- package/dist/esm/wcs-galactic.entry.js +1 -1
- package/dist/esm/wcs-grid-column.entry.js +25 -4
- package/dist/esm/wcs-grid-column.entry.js.map +1 -1
- package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
- package/dist/esm/wcs-grid-pagination.entry.js +2 -2
- package/dist/esm/wcs-grid.entry.js +282 -27
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-header.entry.js +1 -1
- package/dist/esm/wcs-hint.entry.js +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
- package/dist/esm/wcs-icon.entry.js +1 -1
- package/dist/esm/wcs-input.entry.js +15 -15
- package/dist/esm/wcs-input.entry.js.map +1 -1
- package/dist/esm/wcs-label.entry.js +1 -1
- package/dist/esm/wcs-label.entry.js.map +1 -1
- package/dist/esm/wcs-list-item-properties.entry.js +1 -1
- package/dist/esm/wcs-list-item-property.entry.js +1 -1
- package/dist/esm/wcs-list-item.entry.js +1 -1
- package/dist/esm/wcs-mat-icon.entry.js +2 -2
- package/dist/esm/wcs-mat-icon.entry.js.map +1 -1
- package/dist/esm/wcs-modal.entry.js +35 -5
- package/dist/esm/wcs-modal.entry.js.map +1 -1
- package/dist/esm/wcs-native-select.entry.js +6 -3
- package/dist/esm/wcs-native-select.entry.js.map +1 -1
- package/dist/esm/wcs-nav-item.entry.js +2 -2
- package/dist/esm/wcs-nav.entry.js +1 -1
- package/dist/esm/wcs-progress-bar.entry.js +4 -6
- package/dist/esm/wcs-progress-bar.entry.js.map +1 -1
- package/dist/esm/wcs-progress-radial.entry.js +14 -6
- package/dist/esm/wcs-progress-radial.entry.js.map +1 -1
- package/dist/esm/wcs-radio-group.entry.js +22 -15
- package/dist/esm/wcs-radio-group.entry.js.map +1 -1
- package/dist/esm/wcs-radio.entry.js +14 -7
- package/dist/esm/wcs-radio.entry.js.map +1 -1
- package/dist/esm/wcs-select_2.entry.js +602 -110
- package/dist/esm/wcs-select_2.entry.js.map +1 -1
- package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
- package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
- package/dist/esm/wcs-skeleton-text.entry.js +1 -1
- package/dist/esm/wcs-switch.entry.js +5 -2
- package/dist/esm/wcs-switch.entry.js.map +1 -1
- package/dist/esm/wcs-tab.entry.js +4 -1
- package/dist/esm/wcs-tab.entry.js.map +1 -1
- package/dist/esm/wcs-tabs.entry.js +4 -4
- package/dist/esm/wcs-tabs.entry.js.map +1 -1
- package/dist/esm/wcs-textarea.entry.js +13 -11
- package/dist/esm/wcs-textarea.entry.js.map +1 -1
- package/dist/esm/wcs-tooltip.entry.js +1 -1
- package/dist/esm/wcs.js +3 -3
- package/dist/types/components/badge/badge-interface.d.ts +2 -0
- package/dist/types/components/badge/badge.d.ts +5 -1
- package/dist/types/components/checkbox/checkbox.d.ts +4 -1
- package/dist/types/components/counter/counter.d.ts +8 -1
- package/dist/types/components/dropdown/dropdown.d.ts +10 -1
- package/dist/types/components/dropdown-divider/dropdown-divider.d.ts +3 -0
- package/dist/types/components/dropdown-header/dropdown-header.d.ts +4 -0
- package/dist/types/components/dropdown-item/dropdown-item.d.ts +7 -0
- package/dist/types/components/editable-field/editable-field.d.ts +7 -0
- package/dist/types/components/form-field/form-field.d.ts +4 -0
- package/dist/types/components/grid/grid-interface.d.ts +14 -2
- package/dist/types/components/grid/grid-keyboard-event.d.ts +16 -0
- package/dist/types/components/grid/grid.d.ts +59 -4
- package/dist/types/components/grid-column/grid-column.d.ts +17 -0
- package/dist/types/components/input/input.d.ts +40 -17
- package/dist/types/components/modal/modal.d.ts +37 -1
- package/dist/types/components/native-select/native-select.d.ts +3 -1
- package/dist/types/components/progress-bar/progress-bar.d.ts +8 -3
- package/dist/types/components/progress-radial/progress-radial.d.ts +12 -0
- package/dist/types/components/radio/radio.d.ts +3 -0
- package/dist/types/components/radio-group/radio-group.d.ts +3 -1
- package/dist/types/components/select/select-interface.d.ts +12 -0
- package/dist/types/components/select/select-keyboard-event.d.ts +38 -0
- package/dist/types/components/select/select.d.ts +76 -15
- package/dist/types/components/select-option/select-option.d.ts +10 -4
- package/dist/types/components/switch/switch.d.ts +4 -1
- package/dist/types/components/tab/tab.d.ts +3 -0
- package/dist/types/components/tabs/tabs.d.ts +4 -0
- package/dist/types/components/textarea/textarea.d.ts +8 -4
- package/dist/types/components.d.ts +357 -55
- package/dist/types/utils/accessibility.d.ts +4 -0
- package/dist/types/utils/helpers.d.ts +12 -1
- package/dist/types/utils/keyboard-event.d.ts +13 -0
- package/dist/types/utils/mutable-aria-attribute.d.ts +5 -0
- package/dist/wcs/{p-7a3f70da.entry.js → p-00f6a79a.entry.js} +2 -2
- package/dist/wcs/{p-ee453b6e.entry.js → p-016e4dd9.entry.js} +2 -2
- package/dist/wcs/p-0ae177cf.js +2 -0
- package/dist/wcs/p-0ae177cf.js.map +1 -0
- package/dist/wcs/{p-f06f48f3.entry.js → p-0d02d9e4.entry.js} +2 -2
- package/dist/wcs/p-0d02d9e4.entry.js.map +1 -0
- package/dist/wcs/{p-30d8f9c3.entry.js → p-11ab4ffc.entry.js} +2 -2
- package/dist/wcs/p-13548191.entry.js +2 -0
- package/dist/wcs/p-13548191.entry.js.map +1 -0
- package/dist/wcs/p-13ffe5f3.entry.js +2 -0
- package/dist/wcs/p-13ffe5f3.entry.js.map +1 -0
- package/dist/wcs/{p-dfddec76.entry.js → p-17442a2f.entry.js} +2 -2
- package/dist/wcs/p-1d49a02e.entry.js +2 -0
- package/dist/wcs/p-1d49a02e.entry.js.map +1 -0
- package/dist/wcs/{p-d6c3e615.js → p-24611014.js} +2 -2
- package/dist/wcs/p-250b3794.entry.js +2 -0
- package/dist/wcs/{p-91b3e4b5.entry.js.map → p-250b3794.entry.js.map} +1 -1
- package/dist/wcs/{p-292ca644.entry.js → p-2d62b3dd.entry.js} +2 -2
- package/dist/wcs/{p-d6b3f742.entry.js → p-33a5594d.entry.js} +2 -2
- package/dist/wcs/p-33a570ee.js +2 -0
- package/dist/wcs/p-33a570ee.js.map +1 -0
- package/dist/wcs/{p-e86c6cbb.entry.js → p-34079054.entry.js} +2 -2
- package/dist/wcs/{p-e86c6cbb.entry.js.map → p-34079054.entry.js.map} +1 -1
- package/dist/wcs/{p-257b15b9.entry.js → p-36e83879.entry.js} +2 -2
- package/dist/wcs/p-44410e32.entry.js +2 -0
- package/dist/wcs/p-44410e32.entry.js.map +1 -0
- package/dist/wcs/{p-7269272f.entry.js → p-46184d47.entry.js} +2 -2
- package/dist/wcs/p-46975b1e.entry.js +2 -0
- package/dist/wcs/p-46975b1e.entry.js.map +1 -0
- package/dist/wcs/{p-4a9f8e94.entry.js → p-46d56c4e.entry.js} +3 -3
- package/dist/wcs/{p-fc3f5b53.entry.js → p-4820154c.entry.js} +2 -2
- package/dist/wcs/p-49b0de03.entry.js +2 -0
- package/dist/wcs/p-49b0de03.entry.js.map +1 -0
- package/dist/wcs/{p-ff9967eb.entry.js → p-4af68f13.entry.js} +2 -2
- package/dist/wcs/{p-1f8c73eb.entry.js → p-5f0ab1dc.entry.js} +2 -2
- package/dist/wcs/p-5f0ab1dc.entry.js.map +1 -0
- package/dist/wcs/p-5f3e6b0c.entry.js +2 -0
- package/dist/wcs/p-5f3e6b0c.entry.js.map +1 -0
- package/dist/wcs/{p-50dce764.entry.js → p-61b934a7.entry.js} +2 -2
- package/dist/wcs/p-64855188.js +2 -0
- package/dist/wcs/p-64855188.js.map +1 -0
- package/dist/wcs/p-680b107c.entry.js +2 -0
- package/dist/wcs/p-68d654da.js +2 -0
- package/dist/wcs/p-68d654da.js.map +1 -0
- package/dist/wcs/p-69d1223c.js +3 -0
- package/dist/wcs/p-69d1223c.js.map +1 -0
- package/dist/wcs/p-6f538b67.entry.js +2 -0
- package/dist/wcs/p-6f538b67.entry.js.map +1 -0
- package/dist/wcs/p-7c145ed0.entry.js +2 -0
- package/dist/wcs/p-7c145ed0.entry.js.map +1 -0
- package/dist/wcs/p-8724a296.entry.js +2 -0
- package/dist/wcs/p-8724a296.entry.js.map +1 -0
- package/dist/wcs/{p-d084dd61.entry.js → p-88b1cdfe.entry.js} +2 -2
- package/dist/wcs/{p-c7494651.entry.js → p-8ff7e463.entry.js} +2 -2
- package/dist/wcs/p-90a7fd68.entry.js +2 -0
- package/dist/wcs/p-90a7fd68.entry.js.map +1 -0
- package/dist/wcs/{p-cfcacc44.entry.js → p-914aa964.entry.js} +2 -2
- package/dist/wcs/p-93fcef08.entry.js +2 -0
- package/dist/wcs/p-93fcef08.entry.js.map +1 -0
- package/dist/wcs/{p-429bd9fb.entry.js → p-9b1c73b3.entry.js} +2 -2
- package/dist/wcs/p-9cc48d75.js +2 -0
- package/dist/wcs/p-9cc48d75.js.map +1 -0
- package/dist/wcs/p-a3518f66.entry.js +2 -0
- package/dist/wcs/p-a361d9f1.entry.js +2 -0
- package/dist/wcs/{p-31a8d23f.entry.js → p-a85208ca.entry.js} +2 -2
- package/dist/wcs/{p-d3f1cafe.entry.js → p-b91323fc.entry.js} +2 -2
- package/dist/wcs/{p-47d8ece5.entry.js → p-bd4029f8.entry.js} +2 -2
- package/dist/wcs/{p-e348058b.entry.js → p-bed4e3ce.entry.js} +2 -2
- package/dist/wcs/{p-f489793d.entry.js → p-c261353f.entry.js} +2 -2
- package/dist/wcs/p-c261353f.entry.js.map +1 -0
- package/dist/wcs/p-c3227f01.entry.js +2 -0
- package/dist/wcs/p-c3227f01.entry.js.map +1 -0
- package/dist/wcs/{p-810aff71.entry.js → p-c38adf4b.entry.js} +2 -2
- package/dist/wcs/{p-2185bf8b.entry.js → p-c6a8c6f9.entry.js} +2 -2
- package/dist/wcs/p-c9478849.entry.js +2 -0
- package/dist/wcs/p-c9478849.entry.js.map +1 -0
- package/dist/wcs/p-ce3ef5d0.entry.js +2 -0
- package/dist/wcs/p-ce3ef5d0.entry.js.map +1 -0
- package/dist/wcs/{p-54e29233.entry.js → p-ce40b012.entry.js} +2 -2
- package/dist/wcs/{p-54e29233.entry.js.map → p-ce40b012.entry.js.map} +1 -1
- package/dist/wcs/p-d6c482fc.entry.js +2 -0
- package/dist/wcs/p-d6c482fc.entry.js.map +1 -0
- package/dist/wcs/{p-1e43122f.entry.js → p-d84cee70.entry.js} +2 -2
- package/dist/wcs/p-d895b92c.entry.js +16 -0
- package/dist/wcs/p-d895b92c.entry.js.map +1 -0
- package/dist/wcs/p-dca2f42c.entry.js +2 -0
- package/dist/wcs/{p-7519a270.entry.js → p-e0d5908a.entry.js} +2 -2
- package/dist/wcs/{p-a5cd4c07.entry.js → p-e487ff2c.entry.js} +2 -2
- package/dist/wcs/p-e487ff2c.entry.js.map +1 -0
- package/dist/wcs/{p-3b1fc676.entry.js → p-e52c11e4.entry.js} +2 -2
- package/dist/wcs/{p-0ede0c37.entry.js → p-e7661047.entry.js} +2 -2
- package/dist/wcs/p-ea6e33ee.entry.js +2 -0
- package/dist/wcs/{p-cc03627c.entry.js → p-f7ce4e0d.entry.js} +2 -2
- package/dist/wcs/{p-b6160b7c.entry.js → p-faf04401.entry.js} +2 -2
- package/dist/wcs/p-fc1767ae.entry.js +2 -0
- package/dist/wcs/p-fc1767ae.entry.js.map +1 -0
- package/dist/wcs/p-feebc469.entry.js +2 -0
- package/dist/wcs/p-feebc469.entry.js.map +1 -0
- package/dist/wcs/wcs.css +1 -1
- package/dist/wcs/wcs.esm.js +1 -1
- package/dist/wcs/wcs.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/accessibility-e99b032d.js.map +0 -1
- package/dist/cjs/grid-pagination-4b55c908.js +0 -101
- package/dist/cjs/grid-pagination-4b55c908.js.map +0 -1
- package/dist/cjs/helpers-4a14051a.js.map +0 -1
- package/dist/cjs/index-ca67a6dc.js.map +0 -1
- package/dist/cjs/isEqual-9ea7ee49.js.map +0 -1
- package/dist/cjs/wcs-button.cjs.entry.js.map +0 -1
- package/dist/cjs/wcs-spinner.cjs.entry.js +0 -22
- package/dist/cjs/wcs-spinner.cjs.entry.js.map +0 -1
- package/dist/esm/accessibility-ffa12842.js.map +0 -1
- package/dist/esm/grid-pagination-41354861.js +0 -99
- package/dist/esm/grid-pagination-41354861.js.map +0 -1
- package/dist/esm/helpers-1d55b67f.js.map +0 -1
- package/dist/esm/index-dc4d96d4.js.map +0 -1
- package/dist/esm/isEqual-20881bca.js.map +0 -1
- package/dist/esm/wcs-button.entry.js.map +0 -1
- package/dist/esm/wcs-spinner.entry.js +0 -18
- package/dist/esm/wcs-spinner.entry.js.map +0 -1
- package/dist/wcs/p-02b95dbf.entry.js +0 -2
- package/dist/wcs/p-02b95dbf.entry.js.map +0 -1
- package/dist/wcs/p-0f8db386.js +0 -2
- package/dist/wcs/p-0f8db386.js.map +0 -1
- package/dist/wcs/p-17630eea.entry.js +0 -2
- package/dist/wcs/p-1f8c73eb.entry.js.map +0 -1
- package/dist/wcs/p-269d244c.entry.js +0 -2
- package/dist/wcs/p-269d244c.entry.js.map +0 -1
- package/dist/wcs/p-2f63d6c5.entry.js +0 -2
- package/dist/wcs/p-2f63d6c5.entry.js.map +0 -1
- package/dist/wcs/p-39821dd2.entry.js +0 -2
- package/dist/wcs/p-39821dd2.entry.js.map +0 -1
- package/dist/wcs/p-3dc6b507.js +0 -2
- package/dist/wcs/p-3dc6b507.js.map +0 -1
- package/dist/wcs/p-463667c9.entry.js +0 -2
- package/dist/wcs/p-475ac7c5.js +0 -2
- package/dist/wcs/p-475ac7c5.js.map +0 -1
- package/dist/wcs/p-4ffe4539.entry.js +0 -2
- package/dist/wcs/p-4ffe4539.entry.js.map +0 -1
- package/dist/wcs/p-57560d7d.entry.js +0 -2
- package/dist/wcs/p-57560d7d.entry.js.map +0 -1
- package/dist/wcs/p-61cab06f.entry.js +0 -2
- package/dist/wcs/p-61cab06f.entry.js.map +0 -1
- package/dist/wcs/p-627bbb6a.entry.js +0 -2
- package/dist/wcs/p-627bbb6a.entry.js.map +0 -1
- package/dist/wcs/p-6de70331.entry.js +0 -2
- package/dist/wcs/p-6de70331.entry.js.map +0 -1
- package/dist/wcs/p-747a5962.entry.js +0 -2
- package/dist/wcs/p-8181f8cd.js +0 -2
- package/dist/wcs/p-8181f8cd.js.map +0 -1
- package/dist/wcs/p-8c4ed883.entry.js +0 -2
- package/dist/wcs/p-8c4ed883.entry.js.map +0 -1
- package/dist/wcs/p-8d57835f.entry.js +0 -2
- package/dist/wcs/p-8fed8b1c.entry.js +0 -2
- package/dist/wcs/p-8fed8b1c.entry.js.map +0 -1
- package/dist/wcs/p-91b3e4b5.entry.js +0 -2
- package/dist/wcs/p-9910fedd.entry.js +0 -2
- package/dist/wcs/p-9910fedd.entry.js.map +0 -1
- package/dist/wcs/p-9d798de4.entry.js +0 -2
- package/dist/wcs/p-9d798de4.entry.js.map +0 -1
- package/dist/wcs/p-9ecdeaf9.entry.js +0 -2
- package/dist/wcs/p-9ecdeaf9.entry.js.map +0 -1
- package/dist/wcs/p-a2df3a49.js +0 -3
- package/dist/wcs/p-a2df3a49.js.map +0 -1
- package/dist/wcs/p-a5cd4c07.entry.js.map +0 -1
- package/dist/wcs/p-ac106663.entry.js +0 -2
- package/dist/wcs/p-ac106663.entry.js.map +0 -1
- package/dist/wcs/p-cb90bc3a.entry.js +0 -2
- package/dist/wcs/p-cb90bc3a.entry.js.map +0 -1
- package/dist/wcs/p-cdd172b4.entry.js +0 -2
- package/dist/wcs/p-d5a0e271.entry.js +0 -2
- package/dist/wcs/p-d5a0e271.entry.js.map +0 -1
- package/dist/wcs/p-ec84d6fd.entry.js +0 -16
- package/dist/wcs/p-ec84d6fd.entry.js.map +0 -1
- package/dist/wcs/p-ed3132be.entry.js +0 -2
- package/dist/wcs/p-ed3132be.entry.js.map +0 -1
- package/dist/wcs/p-f06f48f3.entry.js.map +0 -1
- package/dist/wcs/p-f20b9024.entry.js +0 -2
- package/dist/wcs/p-f20b9024.entry.js.map +0 -1
- package/dist/wcs/p-f489793d.entry.js.map +0 -1
- /package/dist/wcs/{p-7a3f70da.entry.js.map → p-00f6a79a.entry.js.map} +0 -0
- /package/dist/wcs/{p-ee453b6e.entry.js.map → p-016e4dd9.entry.js.map} +0 -0
- /package/dist/wcs/{p-30d8f9c3.entry.js.map → p-11ab4ffc.entry.js.map} +0 -0
- /package/dist/wcs/{p-dfddec76.entry.js.map → p-17442a2f.entry.js.map} +0 -0
- /package/dist/wcs/{p-d6c3e615.js.map → p-24611014.js.map} +0 -0
- /package/dist/wcs/{p-292ca644.entry.js.map → p-2d62b3dd.entry.js.map} +0 -0
- /package/dist/wcs/{p-d6b3f742.entry.js.map → p-33a5594d.entry.js.map} +0 -0
- /package/dist/wcs/{p-257b15b9.entry.js.map → p-36e83879.entry.js.map} +0 -0
- /package/dist/wcs/{p-7269272f.entry.js.map → p-46184d47.entry.js.map} +0 -0
- /package/dist/wcs/{p-4a9f8e94.entry.js.map → p-46d56c4e.entry.js.map} +0 -0
- /package/dist/wcs/{p-fc3f5b53.entry.js.map → p-4820154c.entry.js.map} +0 -0
- /package/dist/wcs/{p-ff9967eb.entry.js.map → p-4af68f13.entry.js.map} +0 -0
- /package/dist/wcs/{p-50dce764.entry.js.map → p-61b934a7.entry.js.map} +0 -0
- /package/dist/wcs/{p-17630eea.entry.js.map → p-680b107c.entry.js.map} +0 -0
- /package/dist/wcs/{p-d084dd61.entry.js.map → p-88b1cdfe.entry.js.map} +0 -0
- /package/dist/wcs/{p-c7494651.entry.js.map → p-8ff7e463.entry.js.map} +0 -0
- /package/dist/wcs/{p-cfcacc44.entry.js.map → p-914aa964.entry.js.map} +0 -0
- /package/dist/wcs/{p-429bd9fb.entry.js.map → p-9b1c73b3.entry.js.map} +0 -0
- /package/dist/wcs/{p-8d57835f.entry.js.map → p-a3518f66.entry.js.map} +0 -0
- /package/dist/wcs/{p-463667c9.entry.js.map → p-a361d9f1.entry.js.map} +0 -0
- /package/dist/wcs/{p-31a8d23f.entry.js.map → p-a85208ca.entry.js.map} +0 -0
- /package/dist/wcs/{p-d3f1cafe.entry.js.map → p-b91323fc.entry.js.map} +0 -0
- /package/dist/wcs/{p-47d8ece5.entry.js.map → p-bd4029f8.entry.js.map} +0 -0
- /package/dist/wcs/{p-e348058b.entry.js.map → p-bed4e3ce.entry.js.map} +0 -0
- /package/dist/wcs/{p-810aff71.entry.js.map → p-c38adf4b.entry.js.map} +0 -0
- /package/dist/wcs/{p-2185bf8b.entry.js.map → p-c6a8c6f9.entry.js.map} +0 -0
- /package/dist/wcs/{p-1e43122f.entry.js.map → p-d84cee70.entry.js.map} +0 -0
- /package/dist/wcs/{p-747a5962.entry.js.map → p-dca2f42c.entry.js.map} +0 -0
- /package/dist/wcs/{p-7519a270.entry.js.map → p-e0d5908a.entry.js.map} +0 -0
- /package/dist/wcs/{p-3b1fc676.entry.js.map → p-e52c11e4.entry.js.map} +0 -0
- /package/dist/wcs/{p-0ede0c37.entry.js.map → p-e7661047.entry.js.map} +0 -0
- /package/dist/wcs/{p-cdd172b4.entry.js.map → p-ea6e33ee.entry.js.map} +0 -0
- /package/dist/wcs/{p-cc03627c.entry.js.map → p-f7ce4e0d.entry.js.map} +0 -0
- /package/dist/wcs/{p-b6160b7c.entry.js.map → p-faf04401.entry.js.map} +0 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { keyboardShortcutFromKeyboardEvent } from "../../utils/keyboard-event";
|
|
2
|
+
/**
|
|
3
|
+
* We follow this https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/
|
|
4
|
+
* @param event
|
|
5
|
+
* @param currentState
|
|
6
|
+
* @param type
|
|
7
|
+
*/
|
|
8
|
+
export function getActionForKeyboardEvent(event, currentState, type) {
|
|
9
|
+
const keyboardShortcut = keyboardShortcutFromKeyboardEvent(event);
|
|
10
|
+
if (keyboardShortcut === 'UNKNOWN') {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
switch (currentState) {
|
|
14
|
+
case "closed":
|
|
15
|
+
// We handle every available shortcut for the closed state
|
|
16
|
+
switch (keyboardShortcut) {
|
|
17
|
+
case "MAJ+TAB":
|
|
18
|
+
switch (type) {
|
|
19
|
+
case "unique":
|
|
20
|
+
case "multiple":
|
|
21
|
+
return [];
|
|
22
|
+
case "autocomplete_unique":
|
|
23
|
+
case "autocomplete_multiple":
|
|
24
|
+
// We need to move focus to previous focusable element in order to ignore the wcs-select component
|
|
25
|
+
return [{ kind: 'MoveFocus', target: 'previous' }];
|
|
26
|
+
default:
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
break;
|
|
30
|
+
case 'DOWN_ARROW':
|
|
31
|
+
switch (type) {
|
|
32
|
+
case "unique":
|
|
33
|
+
return [{ kind: 'SelectOption', target: 'next' }];
|
|
34
|
+
case "autocomplete_multiple":
|
|
35
|
+
case "autocomplete_unique":
|
|
36
|
+
return [{ kind: 'OpenSelect' }, { kind: 'HighlightOption', target: 'first' }];
|
|
37
|
+
case "multiple":
|
|
38
|
+
return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'first' }];
|
|
39
|
+
default:
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
case 'RIGHT_ARROW':
|
|
44
|
+
switch (type) {
|
|
45
|
+
case "autocomplete_unique":
|
|
46
|
+
case "autocomplete_multiple":
|
|
47
|
+
// Do nothing, we navigate between characters inside input field
|
|
48
|
+
return [];
|
|
49
|
+
case "unique":
|
|
50
|
+
return [{ kind: 'SelectOption', target: 'next' }];
|
|
51
|
+
case "multiple":
|
|
52
|
+
return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'first' }];
|
|
53
|
+
default:
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
break;
|
|
57
|
+
case 'UP_ARROW':
|
|
58
|
+
switch (type) {
|
|
59
|
+
case "autocomplete_unique":
|
|
60
|
+
case "autocomplete_multiple":
|
|
61
|
+
return [{ kind: 'OpenSelect' }, { kind: 'HighlightOption', target: 'last' }];
|
|
62
|
+
case "multiple":
|
|
63
|
+
break;
|
|
64
|
+
case "unique":
|
|
65
|
+
return [{ kind: 'SelectOption', target: 'previous' }];
|
|
66
|
+
default:
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
case 'LEFT_ARROW':
|
|
71
|
+
switch (type) {
|
|
72
|
+
case "autocomplete_unique":
|
|
73
|
+
case "autocomplete_multiple":
|
|
74
|
+
// Do nothing, we navigate between characters inside input field
|
|
75
|
+
return [];
|
|
76
|
+
case "unique":
|
|
77
|
+
return [{ kind: 'SelectOption', target: 'previous' }];
|
|
78
|
+
case "multiple":
|
|
79
|
+
break;
|
|
80
|
+
default:
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
break;
|
|
84
|
+
case 'ALT+DOWN_ARROW':
|
|
85
|
+
case 'ALT+UP_ARROW':
|
|
86
|
+
switch (type) {
|
|
87
|
+
case "unique":
|
|
88
|
+
return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'first' }];
|
|
89
|
+
case "autocomplete_unique":
|
|
90
|
+
case "autocomplete_multiple":
|
|
91
|
+
case "multiple":
|
|
92
|
+
return [{ kind: 'OpenSelect' }];
|
|
93
|
+
default:
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case 'SPACE':
|
|
98
|
+
case 'ENTER':
|
|
99
|
+
switch (type) {
|
|
100
|
+
case "autocomplete_unique":
|
|
101
|
+
case "autocomplete_multiple":
|
|
102
|
+
return [];
|
|
103
|
+
case "unique":
|
|
104
|
+
case "multiple":
|
|
105
|
+
return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'lastFocused' }];
|
|
106
|
+
default:
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
case 'ESCAPE':
|
|
111
|
+
switch (type) {
|
|
112
|
+
case "autocomplete_unique":
|
|
113
|
+
case "autocomplete_multiple":
|
|
114
|
+
return [{ kind: 'ClearAutocompleteInput' }];
|
|
115
|
+
case 'unique':
|
|
116
|
+
case 'multiple':
|
|
117
|
+
return [];
|
|
118
|
+
default:
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
case 'PAGE_UP':
|
|
123
|
+
switch (type) {
|
|
124
|
+
case "autocomplete_unique":
|
|
125
|
+
return [];
|
|
126
|
+
case "autocomplete_multiple":
|
|
127
|
+
return [];
|
|
128
|
+
case "unique":
|
|
129
|
+
return [{ kind: 'SelectOption', target: 'first' }];
|
|
130
|
+
case "multiple":
|
|
131
|
+
return [];
|
|
132
|
+
default:
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
case 'PAGE_DOWN':
|
|
137
|
+
switch (type) {
|
|
138
|
+
case "autocomplete_unique":
|
|
139
|
+
return [];
|
|
140
|
+
case "autocomplete_multiple":
|
|
141
|
+
return [];
|
|
142
|
+
case "unique":
|
|
143
|
+
return [{ kind: 'SelectOption', target: 'last' }];
|
|
144
|
+
case "multiple":
|
|
145
|
+
return [];
|
|
146
|
+
default:
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
default:
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
case 'opened':
|
|
155
|
+
// We handle every available shortcut for the opened state
|
|
156
|
+
switch (keyboardShortcut) {
|
|
157
|
+
case 'ESCAPE':
|
|
158
|
+
switch (type) {
|
|
159
|
+
case 'unique':
|
|
160
|
+
case 'multiple':
|
|
161
|
+
case 'autocomplete_unique':
|
|
162
|
+
case 'autocomplete_multiple':
|
|
163
|
+
return [{ kind: 'CloseSelect', shouldBlur: false }];
|
|
164
|
+
default:
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
case 'ALT+UP_ARROW':
|
|
169
|
+
switch (type) {
|
|
170
|
+
case 'unique':
|
|
171
|
+
case 'multiple':
|
|
172
|
+
return [{ kind: 'CloseSelect', shouldBlur: false }];
|
|
173
|
+
case 'autocomplete_unique':
|
|
174
|
+
case 'autocomplete_multiple':
|
|
175
|
+
// We must keep select autocomplete opened
|
|
176
|
+
return [];
|
|
177
|
+
default:
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
break;
|
|
181
|
+
case 'TAB':
|
|
182
|
+
switch (type) {
|
|
183
|
+
case "autocomplete_unique":
|
|
184
|
+
return [{ kind: 'SelectOption', target: 'lastHighlighted' }, { kind: 'CloseSelect', shouldBlur: false }];
|
|
185
|
+
case "autocomplete_multiple":
|
|
186
|
+
return [{ kind: 'CloseSelect', shouldBlur: false }];
|
|
187
|
+
case "unique":
|
|
188
|
+
case "multiple":
|
|
189
|
+
return [{ kind: 'CloseSelect', shouldBlur: true }];
|
|
190
|
+
default:
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
break;
|
|
194
|
+
case 'MAJ+TAB':
|
|
195
|
+
switch (type) {
|
|
196
|
+
case "autocomplete_unique":
|
|
197
|
+
// We don't blur the select when we close it because we move the focus manually just after closing it.
|
|
198
|
+
return [{ kind: 'SelectOption', target: 'lastHighlighted' }, { kind: 'CloseSelect', shouldBlur: false }, { kind: 'MoveFocus', target: 'previous' }];
|
|
199
|
+
case "autocomplete_multiple":
|
|
200
|
+
// We don't blur the select when we close it because we move the focus manually just after closing it.
|
|
201
|
+
return [{ kind: 'CloseSelect', shouldBlur: false }, { kind: 'MoveFocus', target: 'previous' }];
|
|
202
|
+
case "unique":
|
|
203
|
+
case "multiple":
|
|
204
|
+
return [{ kind: 'CloseSelect', shouldBlur: true }];
|
|
205
|
+
default:
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
break;
|
|
209
|
+
case 'UP_ARROW':
|
|
210
|
+
switch (type) {
|
|
211
|
+
case "autocomplete_unique":
|
|
212
|
+
case "autocomplete_multiple":
|
|
213
|
+
return [{ kind: 'HighlightOption', target: 'previous' }];
|
|
214
|
+
case "unique":
|
|
215
|
+
case "multiple":
|
|
216
|
+
return [{ kind: 'FocusOption', target: 'previous' }];
|
|
217
|
+
default:
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
break;
|
|
221
|
+
case 'LEFT_ARROW':
|
|
222
|
+
switch (type) {
|
|
223
|
+
case "autocomplete_unique":
|
|
224
|
+
case "autocomplete_multiple":
|
|
225
|
+
// We do nothing (navigate between characters in input field)
|
|
226
|
+
return [];
|
|
227
|
+
case "unique":
|
|
228
|
+
case "multiple":
|
|
229
|
+
return [{ kind: 'FocusOption', target: 'previous' }];
|
|
230
|
+
default:
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
break;
|
|
234
|
+
case 'DOWN_ARROW':
|
|
235
|
+
switch (type) {
|
|
236
|
+
case "autocomplete_unique":
|
|
237
|
+
case "autocomplete_multiple":
|
|
238
|
+
return [{ kind: 'HighlightOption', target: 'next' }];
|
|
239
|
+
case "unique":
|
|
240
|
+
case "multiple":
|
|
241
|
+
return [{ kind: 'FocusOption', target: 'next' }];
|
|
242
|
+
default:
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
break;
|
|
246
|
+
case 'RIGHT_ARROW':
|
|
247
|
+
switch (type) {
|
|
248
|
+
case "autocomplete_unique":
|
|
249
|
+
case "autocomplete_multiple":
|
|
250
|
+
// We do nothing (navigate between characters in input field)
|
|
251
|
+
return [];
|
|
252
|
+
case "unique":
|
|
253
|
+
case "multiple":
|
|
254
|
+
return [{ kind: 'FocusOption', target: 'next' }];
|
|
255
|
+
default:
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
break;
|
|
259
|
+
case "PAGE_UP":
|
|
260
|
+
switch (type) {
|
|
261
|
+
case "autocomplete_unique":
|
|
262
|
+
case "autocomplete_multiple":
|
|
263
|
+
return [{ kind: 'HighlightOption', target: 'first' }];
|
|
264
|
+
case "unique":
|
|
265
|
+
case "multiple":
|
|
266
|
+
return [{ kind: 'FocusOption', target: 'first' }];
|
|
267
|
+
default:
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
break;
|
|
271
|
+
case "PAGE_DOWN":
|
|
272
|
+
switch (type) {
|
|
273
|
+
case "autocomplete_unique":
|
|
274
|
+
case "autocomplete_multiple":
|
|
275
|
+
return [{ kind: 'HighlightOption', target: 'last' }];
|
|
276
|
+
case "unique":
|
|
277
|
+
case "multiple":
|
|
278
|
+
return [{ kind: 'FocusOption', target: 'last' }];
|
|
279
|
+
default:
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
break;
|
|
283
|
+
case "ENTER":
|
|
284
|
+
switch (type) {
|
|
285
|
+
case "autocomplete_unique":
|
|
286
|
+
return [{ kind: 'SelectOption', target: 'lastHighlighted' }];
|
|
287
|
+
case "autocomplete_multiple":
|
|
288
|
+
return [{ kind: 'SelectOption', target: 'lastHighlighted' }];
|
|
289
|
+
case "unique":
|
|
290
|
+
case "multiple":
|
|
291
|
+
// Do nothing, let's select option emit an event
|
|
292
|
+
break;
|
|
293
|
+
default:
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
break;
|
|
297
|
+
default:
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
break;
|
|
301
|
+
default:
|
|
302
|
+
throw Error('Unknown error');
|
|
303
|
+
}
|
|
304
|
+
return [];
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=select-keyboard-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-keyboard-event.js","sourceRoot":"","sources":["../../../src/components/select/select-keyboard-event.ts"],"names":[],"mappings":"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","sourcesContent":["import { keyboardShortcutFromKeyboardEvent } from \"../../utils/keyboard-event\";\n\n// Possibles Shortcut\n// ALT+DOWN_ARROW : open the listbox\n// ALT+UP_ARROW : open the listbox\n\n// MAJ+TAB : close the listbox, blur\n\n// UP_ARROW : focus / highlight the previous option\n// DOWN_ARROW : focus / highlight the next option\n// LEFT_ARROW : (unique) focus / highlight the previous option\n// RIGHT_ARROW : (unique) focus / highlight the previous option\n\n// HOME : select first option\n// END : select last option\n\n// PAGE_UP : select first option\n// PAGE_DOWN : select last option\n\n// ENTER : select currently focused / highlighted option\n// SPACE : select currently focused / highlighted option\n\n// TAB : close the listbox, blur\n// ESCAPE : close the listbox, if autocomplete mode also clears the textbox\n\nexport type KeyboardEventAssociatedAction = OpenSelect\n | CloseSelect\n | ClearAutocompleteInput\n | ClearHighlight\n | HighlightOption\n | FocusOption\n | MoveFocus\n | SelectOption;\n\ntype OpenSelect = {kind: 'OpenSelect'};\ntype CloseSelect = {kind: 'CloseSelect', shouldBlur: boolean};\n\ntype ClearAutocompleteInput = {kind: 'ClearAutocompleteInput'};\n\ntype ClearHighlight = {kind: 'ClearHighlight'};\ntype HighlightOption = {kind: 'HighlightOption', target: 'next' | 'previous' | 'first' | 'last'};\n\ntype SelectOption = {kind: 'SelectOption', target: 'next' | 'previous' | 'first' | 'last' | 'lastHighlighted'};\n\ntype MoveFocus = {kind: 'MoveFocus', target: 'previous'};\n\ntype FocusOption = {kind: 'FocusOption', target: 'next' | 'previous' | 'first' | 'last' | 'lastFocused'};\n\n/**\n * We follow this https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/\n * @param event\n * @param currentState\n * @param type\n */\nexport function getActionForKeyboardEvent(event: KeyboardEvent, currentState: 'closed' | 'opened', type: 'autocomplete_unique' | 'autocomplete_multiple' | 'unique' | 'multiple'): KeyboardEventAssociatedAction[] {\n const keyboardShortcut = keyboardShortcutFromKeyboardEvent(event);\n\n if(keyboardShortcut === 'UNKNOWN') {\n return [];\n }\n\n switch (currentState) {\n case \"closed\":\n // We handle every available shortcut for the closed state\n switch (keyboardShortcut) {\n case \"MAJ+TAB\":\n switch (type) {\n case \"unique\":\n case \"multiple\":\n return [];\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // We need to move focus to previous focusable element in order to ignore the wcs-select component\n return [{kind: 'MoveFocus', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'DOWN_ARROW':\n switch (type) {\n case \"unique\":\n return [{kind: 'SelectOption', target: 'next'}];\n case \"autocomplete_multiple\":\n case \"autocomplete_unique\":\n return [{kind: 'OpenSelect'}, {kind: 'HighlightOption', target: 'first'}];\n case \"multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'first'}];\n default:\n break;\n }\n break;\n case 'RIGHT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // Do nothing, we navigate between characters inside input field\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'next'}];\n case \"multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'first'}];\n default:\n break;\n }\n break;\n case 'UP_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'HighlightOption', target: 'last'}];\n case \"multiple\":\n break;\n case \"unique\":\n return [{kind: 'SelectOption', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'LEFT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // Do nothing, we navigate between characters inside input field\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'previous'}];\n case \"multiple\":\n break;\n default:\n break;\n }\n break;\n case 'ALT+DOWN_ARROW':\n case 'ALT+UP_ARROW':\n switch (type) {\n case \"unique\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'first'}]\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n case \"multiple\":\n return [{kind: 'OpenSelect'}];\n default:\n break;\n }\n break;\n case 'SPACE':\n case 'ENTER':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'lastFocused'}];\n default:\n break;\n }\n break;\n case 'ESCAPE':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'ClearAutocompleteInput'}];\n case 'unique':\n case 'multiple':\n return [];\n default:\n break;\n }\n break;\n case 'PAGE_UP':\n switch (type) {\n case \"autocomplete_unique\":\n return [];\n case \"autocomplete_multiple\":\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'first'}];\n case \"multiple\":\n return [];\n default:\n break;\n }\n break;\n case 'PAGE_DOWN':\n switch (type) {\n case \"autocomplete_unique\":\n return [];\n case \"autocomplete_multiple\":\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'last'}];\n case \"multiple\":\n return [];\n default:\n break;\n }\n break;\n default:\n break;\n }\n break;\n case 'opened':\n // We handle every available shortcut for the opened state\n switch (keyboardShortcut) {\n case 'ESCAPE':\n switch (type) {\n case 'unique':\n case 'multiple':\n case 'autocomplete_unique':\n case 'autocomplete_multiple':\n return [{kind: 'CloseSelect', shouldBlur: false}];\n default:\n break;\n }\n break;\n case 'ALT+UP_ARROW':\n switch (type) {\n case 'unique':\n case 'multiple':\n return [{kind: 'CloseSelect', shouldBlur: false}];\n case 'autocomplete_unique':\n case 'autocomplete_multiple':\n // We must keep select autocomplete opened\n return [];\n default:\n break;\n }\n break;\n case 'TAB':\n switch (type) {\n case \"autocomplete_unique\":\n return [{kind: 'SelectOption', target: 'lastHighlighted'}, {kind: 'CloseSelect', shouldBlur: false}];\n case \"autocomplete_multiple\":\n return [{kind: 'CloseSelect', shouldBlur: false}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'CloseSelect', shouldBlur: true}];\n default:\n break;\n }\n break;\n case 'MAJ+TAB':\n switch (type) {\n case \"autocomplete_unique\":\n // We don't blur the select when we close it because we move the focus manually just after closing it.\n return [{kind: 'SelectOption', target: 'lastHighlighted'}, {kind: 'CloseSelect', shouldBlur: false}, {kind: 'MoveFocus', target: 'previous'}];\n case \"autocomplete_multiple\":\n // We don't blur the select when we close it because we move the focus manually just after closing it.\n return [{kind: 'CloseSelect', shouldBlur: false}, {kind: 'MoveFocus', target: 'previous'}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'CloseSelect', shouldBlur: true}];\n default:\n break;\n }\n break;\n case 'UP_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'previous'}]\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'LEFT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // We do nothing (navigate between characters in input field)\n return [];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'DOWN_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'next'}]\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'next'}];\n default:\n break;\n }\n break;\n case 'RIGHT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // We do nothing (navigate between characters in input field)\n return [];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'next'}];\n default:\n break;\n }\n break;\n case \"PAGE_UP\":\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'first'}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'first'}];\n default:\n break;\n }\n break;\n case \"PAGE_DOWN\":\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'last'}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'last'}];\n default:\n break;\n }\n break;\n case \"ENTER\":\n switch (type) {\n case \"autocomplete_unique\":\n return [{kind: 'SelectOption', target: 'lastHighlighted'}];\n case \"autocomplete_multiple\":\n return [{kind: 'SelectOption', target: 'lastHighlighted'}];\n case \"unique\":\n case \"multiple\":\n // Do nothing, let's select option emit an event\n break;\n default:\n break;\n }\n break;\n default:\n break;\n }\n break;\n default:\n throw Error('Unknown error');\n }\n return [];\n}\n"]}
|
|
@@ -207,13 +207,9 @@
|
|
|
207
207
|
display: block;
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
:host(:not(.expanded):focus) .wcs-select-control {
|
|
211
|
-
border: var(--wcs-primary) solid 1px;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
210
|
:host(:not(.expanded):focus-visible) .wcs-select-control {
|
|
215
211
|
outline: 2px dashed var(--wcs-primary);
|
|
216
|
-
outline-offset:
|
|
212
|
+
outline-offset: 0;
|
|
217
213
|
border-radius: var(--wcs-select-border-radius);
|
|
218
214
|
}
|
|
219
215
|
|
|
@@ -233,7 +229,7 @@
|
|
|
233
229
|
}
|
|
234
230
|
|
|
235
231
|
label {
|
|
236
|
-
padding-left: calc(var(--wcs-padding) - var(--wcs-select-border-width));
|
|
232
|
+
padding-left: calc(var(--wcs-padding) / 2 - var(--wcs-select-border-width));
|
|
237
233
|
padding-right: calc(var(--wcs-padding) - var(--wcs-select-border-width));
|
|
238
234
|
font-weight: 500;
|
|
239
235
|
cursor: pointer;
|
|
@@ -247,18 +243,34 @@ label {
|
|
|
247
243
|
:host([size=m]) {
|
|
248
244
|
min-height: var(--wcs-size-m);
|
|
249
245
|
--wcs-select-font-size: 1rem;
|
|
246
|
+
--wcs-internal-select-chip-size: calc(var(--wcs-size-s) - 2px);
|
|
250
247
|
}
|
|
251
248
|
:host([size=m]) .wcs-select-control {
|
|
252
249
|
min-height: var(--wcs-size-m);
|
|
253
250
|
}
|
|
251
|
+
:host([size=m]):host([autocomplete]) .autocomplete-field {
|
|
252
|
+
height: calc(var(--wcs-size-s) - 2px);
|
|
253
|
+
}
|
|
254
|
+
:host([size=m]):host([autocomplete]) .wcs-select-value-container {
|
|
255
|
+
padding-top: calc((var(--wcs-size-m) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
|
|
256
|
+
padding-bottom: calc((var(--wcs-size-m) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
|
|
257
|
+
}
|
|
254
258
|
|
|
255
259
|
:host([size=l]) {
|
|
256
260
|
min-height: var(--wcs-size-l);
|
|
257
261
|
--wcs-select-font-size: 1.0625rem;
|
|
262
|
+
--wcs-internal-select-chip-size: var(--wcs-size-s);
|
|
258
263
|
}
|
|
259
264
|
:host([size=l]) .wcs-select-control {
|
|
260
265
|
min-height: var(--wcs-size-l);
|
|
261
266
|
}
|
|
267
|
+
:host([size=l]):host([autocomplete]) .autocomplete-field {
|
|
268
|
+
height: var(--wcs-size-s);
|
|
269
|
+
}
|
|
270
|
+
:host([size=l]):host([autocomplete]) .wcs-select-value-container {
|
|
271
|
+
padding-top: calc((var(--wcs-size-l) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
|
|
272
|
+
padding-bottom: calc((var(--wcs-size-l) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
|
|
273
|
+
}
|
|
262
274
|
|
|
263
275
|
:host([chips]) .wcs-select-control {
|
|
264
276
|
flex-wrap: wrap;
|
|
@@ -392,6 +404,8 @@ label {
|
|
|
392
404
|
}
|
|
393
405
|
|
|
394
406
|
.wcs-select-chip {
|
|
407
|
+
box-sizing: border-box;
|
|
408
|
+
height: var(--wcs-internal-select-chip-size);
|
|
395
409
|
line-height: 1.375;
|
|
396
410
|
color: var(--wcs-contrast);
|
|
397
411
|
background-color: var(--wcs-base);
|
|
@@ -400,6 +414,7 @@ label {
|
|
|
400
414
|
align-items: center;
|
|
401
415
|
padding: calc((var(--wcs-padding) - 8px) / 2) var(--wcs-padding);
|
|
402
416
|
overflow: initial;
|
|
417
|
+
z-index: 1;
|
|
403
418
|
}
|
|
404
419
|
|
|
405
420
|
.wcs-select-options {
|
|
@@ -413,4 +428,42 @@ label {
|
|
|
413
428
|
width: calc(100% - 2 * var(--wcs-select-border-width));
|
|
414
429
|
background-color: var(--wcs-white);
|
|
415
430
|
color: var(--wcs-text-medium);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
:host([autocomplete]) .wcs-select-value-container {
|
|
434
|
+
margin: 0;
|
|
435
|
+
width: 100%;
|
|
436
|
+
padding-left: var(--wcs-padding-m);
|
|
437
|
+
}
|
|
438
|
+
:host([autocomplete]) input {
|
|
439
|
+
border-radius: var(--wcs-border-radius);
|
|
440
|
+
font: unset;
|
|
441
|
+
background-color: transparent;
|
|
442
|
+
outline: none;
|
|
443
|
+
border: none;
|
|
444
|
+
padding: 0 var(--wcs-margin);
|
|
445
|
+
color: var(--wcs-primary);
|
|
446
|
+
font-weight: var(--wcs-font-weight-form-value) !important;
|
|
447
|
+
font-size: var(--wcs-select-font-size);
|
|
448
|
+
line-height: 1.5;
|
|
449
|
+
}
|
|
450
|
+
:host([autocomplete]) input:focus-within {
|
|
451
|
+
outline: 2px dashed var(--wcs-primary);
|
|
452
|
+
outline-offset: 0;
|
|
453
|
+
border-radius: var(--wcs-border-radius);
|
|
454
|
+
}
|
|
455
|
+
:host([autocomplete]) input::placeholder {
|
|
456
|
+
font-style: italic;
|
|
457
|
+
font-weight: 400;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.autocomplete-field {
|
|
461
|
+
width: 0;
|
|
462
|
+
min-width: 50px;
|
|
463
|
+
border-radius: var(--wcs-border-radius);
|
|
464
|
+
flex-grow: 1;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.noresult-container {
|
|
468
|
+
margin: var(--wcs-margin);
|
|
416
469
|
}
|