@nanoporetech-digital/components 1.15.6 → 2.1.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/CHANGELOG.md +70 -0
- package/dist/cjs/active-element-2f9bf0aa.js +21 -0
- package/dist/cjs/active-element-2f9bf0aa.js.map +1 -0
- package/dist/cjs/{algoliasearch.umd-0ccd70ce.js → algoliasearch.umd-79e17a1a.js} +3 -3
- package/dist/cjs/{algoliasearch.umd-0ccd70ce.js.map → algoliasearch.umd-79e17a1a.js.map} +1 -1
- package/dist/cjs/{dom-5f3fae1a.js → dom-52f9b8b7.js} +25 -6
- package/dist/cjs/dom-52f9b8b7.js.map +1 -0
- package/dist/cjs/form-control-3bc82e3e.js +80 -0
- package/dist/cjs/form-control-3bc82e3e.js.map +1 -0
- package/dist/cjs/{index-117f36a4.js → index-53d02e05.js} +12 -27
- package/dist/cjs/index-53d02e05.js.map +1 -0
- package/dist/cjs/index-cb62df44.js +12 -12
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{modal-01eed1bf.js → modal-f09e431f.js} +2 -2
- package/dist/cjs/{modal-01eed1bf.js.map → modal-f09e431f.js.map} +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +2 -4
- package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +6 -6
- package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-algolia.cjs.entry.js +9 -5
- package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +4 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-components.cjs.js +1 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js +790 -0
- package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -0
- package/dist/cjs/nano-date-input.cjs.entry.js +9 -5
- package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-date-picker_2.cjs.entry.js → nano-date-picker.cjs.entry.js} +2 -274
- package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/nano-details.cjs.entry.js +2 -2
- package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +5 -5
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
- package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +307 -0
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -0
- package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
- package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +19 -24
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +200 -115
- package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-grid_3.cjs.entry.js +15 -7
- package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +13 -5
- package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +80 -75
- package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
- package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-nav-item_2.cjs.entry.js +287 -533
- package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +2 -2
- package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +2 -2
- package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +3 -3
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +72 -36
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab.cjs.entry.js +9 -2
- package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/{popover-d033efa2.js → popover-86f1775c.js} +10 -1
- package/dist/cjs/popover-86f1775c.js.map +1 -0
- package/dist/cjs/{scroll-d7753eed.js → scroll-6b9e6870.js} +2 -2
- package/dist/cjs/{scroll-d7753eed.js.map → scroll-6b9e6870.js.map} +1 -1
- package/dist/cjs/{tabbable-615c30e1.js → tabbable-de4c23d8.js} +8 -6
- package/dist/cjs/tabbable-de4c23d8.js.map +1 -0
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/accordion/accordion.css +3 -0
- package/dist/collection/components/accordion/accordion.js +2 -5
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/alert/alert.css +5 -6
- package/dist/collection/components/alert/alert.helpers.js +2 -2
- package/dist/collection/components/alert/alert.helpers.js.map +1 -1
- package/dist/collection/components/alert/alert.js +1 -1
- package/dist/collection/components/algolia/algolia-filter.css +3 -0
- package/dist/collection/components/algolia/algolia-filter.js +2 -2
- package/dist/collection/components/algolia/algolia-input.js +5 -5
- package/dist/collection/components/algolia/algolia-results.js +1 -1
- package/dist/collection/components/algolia/algolia.css +3 -0
- package/dist/collection/components/algolia/algolia.js +6 -6
- package/dist/collection/components/aspect-ratio/aspect-ratio.css +3 -0
- package/dist/collection/components/checkbox/checkbox-group.css +3 -0
- package/dist/collection/components/checkbox/checkbox-group.js +5 -2
- package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +3 -0
- package/dist/collection/components/checkbox/checkbox.js +3 -3
- package/dist/collection/components/datalist/datalist.css +55 -0
- package/dist/collection/components/datalist/datalist.js +796 -0
- package/dist/collection/components/datalist/datalist.js.map +1 -0
- package/dist/collection/components/date-input/date-input.css +3 -0
- package/dist/collection/components/date-input/date-input.js +18 -10
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.css +3 -0
- package/dist/collection/components/date-picker/date-picker.js +5 -5
- package/dist/collection/components/details/details.css +3 -0
- package/dist/collection/components/details/details.js +2 -3
- package/dist/collection/components/details/details.js.map +1 -1
- package/dist/collection/components/dialog/dialog.css +4 -1
- package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
- package/dist/collection/components/dialog/dialog.js +1 -1
- package/dist/collection/components/drawer/drawer.css +3 -0
- package/dist/collection/components/dropdown/dropdown.css +19 -2
- package/dist/collection/components/dropdown/dropdown.js +56 -39
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload.css +5 -2
- package/dist/collection/components/file-upload/file-upload.js +4 -4
- package/dist/collection/components/form-control/form-control.js +73 -0
- package/dist/collection/components/form-control/form-control.js.map +1 -0
- package/dist/collection/components/global-nav/global-nav.css +43 -37
- package/dist/collection/components/global-nav/global-nav.js +21 -26
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/global-search-results/global-search-results.css +299 -18
- package/dist/collection/components/global-search-results/global-search-results.js +200 -113
- package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
- package/dist/collection/components/grid/grid-item.css +3 -0
- package/dist/collection/components/grid/grid-item.js +1 -1
- package/dist/collection/components/grid/grid.css +3 -0
- package/dist/collection/components/grid/grid.js +37 -6
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/hero/hero.css +13 -5
- package/dist/collection/components/hero/hero.js +32 -22
- package/dist/collection/components/hero/hero.js.map +1 -1
- package/dist/collection/components/icon/icon.css +3 -0
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/icon-button/icon-button.css +6 -1
- package/dist/collection/components/icon-button/icon-button.js +1 -1
- package/dist/collection/components/icon-button/icon-button.js.map +1 -1
- package/dist/collection/components/img/img.css +3 -0
- package/dist/collection/components/input/input.css +242 -232
- package/dist/collection/components/input/input.js +111 -114
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/menu/menu.css +27 -35
- package/dist/collection/components/menu/menu.js +222 -48
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/menu-drawer/menu-drawer.css +3 -0
- package/dist/collection/components/nav-item/nav-item.css +3 -0
- package/dist/collection/components/nav-item/nav-item.js +5 -5
- package/dist/collection/components/nav-item/nav-item.js.map +1 -1
- package/dist/collection/components/option/option-interface.js +5 -0
- package/dist/collection/components/option/option-interface.js.map +1 -0
- package/dist/collection/components/option/option.css +187 -0
- package/dist/collection/components/option/option.js +242 -0
- package/dist/collection/components/option/option.js.map +1 -0
- package/dist/collection/components/range/range.css +3 -0
- package/dist/collection/components/range/range.js +4 -4
- package/dist/collection/components/rating/rating.css +3 -0
- package/dist/collection/components/resize-observe/resize-observe.js +1 -1
- package/dist/collection/components/select/select.css +458 -391
- package/dist/collection/components/select/select.js +367 -607
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/skeleton/skeleton.css +3 -0
- package/dist/collection/components/slides/slide.css +3 -0
- package/dist/collection/components/slides/slides.css +3 -0
- package/dist/collection/components/slides/slides.js +7 -7
- package/dist/collection/components/spinner/spinner.css +3 -0
- package/dist/collection/components/sticky/sticker.css +3 -0
- package/dist/collection/components/tabs/tab-content.css +3 -0
- package/dist/collection/components/tabs/tab-content.js +3 -3
- package/dist/collection/components/tabs/tab-content.js.map +1 -1
- package/dist/collection/components/tabs/tab-group.css +16 -5
- package/dist/collection/components/tabs/tab-group.js +137 -41
- package/dist/collection/components/tabs/tab-group.js.map +1 -1
- package/dist/collection/components/tabs/tab.css +36 -6
- package/dist/collection/components/tabs/tab.js +45 -2
- package/dist/collection/components/tabs/tab.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.css +3 -0
- package/dist/collection/utils/active-element.js +16 -0
- package/dist/collection/utils/active-element.js.map +1 -0
- package/dist/collection/utils/dom.js +24 -5
- package/dist/collection/utils/dom.js.map +1 -1
- package/dist/collection/utils/index.js +13 -13
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/popover.js +9 -0
- package/dist/collection/utils/popover.js.map +1 -1
- package/dist/collection/utils/tabbable.js +7 -5
- package/dist/collection/utils/tabbable.js.map +1 -1
- package/dist/collection/utils/template.js +5 -1
- package/dist/collection/utils/template.js.map +1 -1
- package/dist/collection/utils/testing/index.js +11 -1
- package/dist/collection/utils/testing/index.js.map +1 -1
- package/dist/components/ResizeObserver.es.js +933 -0
- package/dist/components/ResizeObserver.es.js.map +1 -0
- package/dist/components/_commonjsHelpers.js +41 -0
- package/dist/components/_commonjsHelpers.js.map +1 -0
- package/dist/components/active-element.js +19 -0
- package/dist/components/active-element.js.map +1 -0
- package/dist/components/algolia-data.js +49 -0
- package/dist/components/algolia-data.js.map +1 -0
- package/dist/components/algolia.js +906 -0
- package/dist/components/algolia.js.map +1 -0
- package/dist/components/algoliasearch.umd.js +13 -0
- package/dist/components/algoliasearch.umd.js.map +1 -0
- package/dist/components/component-store.js +2234 -0
- package/dist/components/component-store.js.map +1 -0
- package/dist/components/datalist.js +557 -0
- package/dist/components/datalist.js.map +1 -0
- package/dist/components/date-picker.js +624 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/{esm/dom-a791b223.js → components/dom.js} +25 -6
- package/dist/components/dom.js.map +1 -0
- package/dist/components/dropdown.js +332 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/focus-visible.js +66 -0
- package/dist/components/focus-visible.js.map +1 -0
- package/dist/components/form-control.js +77 -0
- package/dist/components/form-control.js.map +1 -0
- package/dist/components/grid-item.js +112 -0
- package/dist/components/grid-item.js.map +1 -0
- package/dist/components/grid.js +276 -0
- package/dist/components/grid.js.map +1 -0
- package/dist/components/icon-button.js +70 -0
- package/dist/components/icon-button.js.map +1 -0
- package/dist/components/icon.js +269 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/img.js +184 -0
- package/dist/components/img.js.map +1 -0
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.js +251 -0
- package/dist/components/index.js.map +1 -0
- package/dist/{esm/index-f41ae118.js → components/index2.js} +13 -27
- package/dist/components/index2.js.map +1 -0
- package/dist/components/index3.js +1075 -0
- package/dist/components/index3.js.map +1 -0
- package/dist/components/index4.js +637 -0
- package/dist/components/index4.js.map +1 -0
- package/dist/components/input.js +474 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/intersection-observer.js +985 -0
- package/dist/components/intersection-observer.js.map +1 -0
- package/dist/components/local-my-account.js +353 -0
- package/dist/components/local-my-account.js.map +1 -0
- package/dist/components/menu.js +235 -0
- package/dist/components/menu.js.map +1 -0
- package/dist/components/modal.js +48 -0
- package/dist/components/modal.js.map +1 -0
- package/dist/components/nano-accordion.d.ts +11 -0
- package/dist/components/nano-accordion.js +63 -0
- package/dist/components/nano-accordion.js.map +1 -0
- package/dist/components/nano-alert.d.ts +11 -0
- package/dist/components/nano-alert.js +296 -0
- package/dist/components/nano-alert.js.map +1 -0
- package/dist/components/nano-algolia-filter.d.ts +11 -0
- package/dist/components/nano-algolia-filter.js +317 -0
- package/dist/components/nano-algolia-filter.js.map +1 -0
- package/dist/components/nano-algolia-input.d.ts +11 -0
- package/dist/components/nano-algolia-input.js +224 -0
- package/dist/components/nano-algolia-input.js.map +1 -0
- package/dist/components/nano-algolia-pagination.d.ts +11 -0
- package/dist/components/nano-algolia-pagination.js +104 -0
- package/dist/components/nano-algolia-pagination.js.map +1 -0
- package/dist/components/nano-algolia-results.d.ts +11 -0
- package/dist/components/nano-algolia-results.js +224 -0
- package/dist/components/nano-algolia-results.js.map +1 -0
- package/dist/components/nano-algolia.d.ts +11 -0
- package/dist/components/nano-algolia.js +11 -0
- package/dist/components/nano-algolia.js.map +1 -0
- package/dist/components/nano-aspect-ratio.d.ts +11 -0
- package/dist/components/nano-aspect-ratio.js +74 -0
- package/dist/components/nano-aspect-ratio.js.map +1 -0
- package/dist/components/nano-checkbox-group.d.ts +11 -0
- package/dist/components/nano-checkbox-group.js +235 -0
- package/dist/components/nano-checkbox-group.js.map +1 -0
- package/dist/components/nano-checkbox.d.ts +11 -0
- package/dist/components/nano-checkbox.js +231 -0
- package/dist/components/nano-checkbox.js.map +1 -0
- package/dist/components/nano-datalist.d.ts +11 -0
- package/dist/components/nano-datalist.js +11 -0
- package/dist/components/nano-datalist.js.map +1 -0
- package/dist/components/nano-date-input.d.ts +11 -0
- package/dist/components/nano-date-input.js +408 -0
- package/dist/components/nano-date-input.js.map +1 -0
- package/dist/components/nano-date-picker.d.ts +11 -0
- package/dist/components/nano-date-picker.js +11 -0
- package/dist/components/nano-date-picker.js.map +1 -0
- package/dist/components/nano-details.d.ts +11 -0
- package/dist/components/nano-details.js +162 -0
- package/dist/components/nano-details.js.map +1 -0
- package/dist/components/nano-dialog.d.ts +11 -0
- package/dist/components/nano-dialog.js +231 -0
- package/dist/components/nano-dialog.js.map +1 -0
- package/dist/components/nano-drawer.d.ts +11 -0
- package/dist/components/nano-drawer.js +217 -0
- package/dist/components/nano-drawer.js.map +1 -0
- package/dist/components/nano-dropdown.d.ts +11 -0
- package/dist/components/nano-dropdown.js +11 -0
- package/dist/components/nano-dropdown.js.map +1 -0
- package/dist/components/nano-file-upload.d.ts +11 -0
- package/dist/components/nano-file-upload.js +421 -0
- package/dist/components/nano-file-upload.js.map +1 -0
- package/dist/components/nano-global-nav.d.ts +11 -0
- package/dist/components/nano-global-nav.js +1221 -0
- package/dist/components/nano-global-nav.js.map +1 -0
- package/dist/components/nano-global-search-results.d.ts +11 -0
- package/dist/components/nano-global-search-results.js +608 -0
- package/dist/components/nano-global-search-results.js.map +1 -0
- package/dist/components/nano-grid-item.d.ts +11 -0
- package/dist/components/nano-grid-item.js +11 -0
- package/dist/components/nano-grid-item.js.map +1 -0
- package/dist/components/nano-grid.d.ts +11 -0
- package/dist/components/nano-grid.js +11 -0
- package/dist/components/nano-grid.js.map +1 -0
- package/dist/components/nano-hero.d.ts +11 -0
- package/dist/components/nano-hero.js +187 -0
- package/dist/components/nano-hero.js.map +1 -0
- package/dist/components/nano-icon-button.d.ts +11 -0
- package/dist/components/nano-icon-button.js +11 -0
- package/dist/components/nano-icon-button.js.map +1 -0
- package/dist/components/nano-icon.d.ts +11 -0
- package/dist/components/nano-icon.js +11 -0
- package/dist/components/nano-icon.js.map +1 -0
- package/dist/components/nano-img.d.ts +11 -0
- package/dist/components/nano-img.js +11 -0
- package/dist/components/nano-img.js.map +1 -0
- package/dist/components/nano-input.d.ts +11 -0
- package/dist/components/nano-input.js +11 -0
- package/dist/components/nano-input.js.map +1 -0
- package/dist/components/nano-menu-drawer.d.ts +11 -0
- package/dist/components/nano-menu-drawer.js +221 -0
- package/dist/components/nano-menu-drawer.js.map +1 -0
- package/dist/components/nano-menu.d.ts +11 -0
- package/dist/components/nano-menu.js +11 -0
- package/dist/components/nano-menu.js.map +1 -0
- package/dist/components/nano-nav-item.d.ts +11 -0
- package/dist/components/nano-nav-item.js +11 -0
- package/dist/components/nano-nav-item.js.map +1 -0
- package/dist/components/nano-option.d.ts +11 -0
- package/dist/components/nano-option.js +11 -0
- package/dist/components/nano-option.js.map +1 -0
- package/dist/components/nano-range.d.ts +11 -0
- package/dist/components/nano-range.js +430 -0
- package/dist/components/nano-range.js.map +1 -0
- package/dist/components/nano-rating.d.ts +11 -0
- package/dist/components/nano-rating.js +240 -0
- package/dist/components/nano-rating.js.map +1 -0
- package/dist/components/nano-resize-observe.d.ts +11 -0
- package/dist/components/nano-resize-observe.js +11 -0
- package/dist/components/nano-resize-observe.js.map +1 -0
- package/dist/components/nano-select.d.ts +11 -0
- package/dist/components/nano-select.js +11 -0
- package/dist/components/nano-select.js.map +1 -0
- package/dist/components/nano-skeleton.d.ts +11 -0
- package/dist/components/nano-skeleton.js +11 -0
- package/dist/components/nano-skeleton.js.map +1 -0
- package/dist/components/nano-slide.d.ts +11 -0
- package/dist/components/nano-slide.js +66 -0
- package/dist/components/nano-slide.js.map +1 -0
- package/dist/components/nano-slides.d.ts +11 -0
- package/dist/components/nano-slides.js +4335 -0
- package/dist/components/nano-slides.js.map +1 -0
- package/dist/components/nano-spinner.d.ts +11 -0
- package/dist/components/nano-spinner.js +11 -0
- package/dist/components/nano-spinner.js.map +1 -0
- package/dist/components/nano-sticker.d.ts +11 -0
- package/dist/components/nano-sticker.js +11 -0
- package/dist/components/nano-sticker.js.map +1 -0
- package/dist/components/nano-tab-content.d.ts +11 -0
- package/dist/components/nano-tab-content.js +49 -0
- package/dist/components/nano-tab-content.js.map +1 -0
- package/dist/components/nano-tab-group.d.ts +11 -0
- package/dist/components/nano-tab-group.js +460 -0
- package/dist/components/nano-tab-group.js.map +1 -0
- package/dist/components/nano-tab.d.ts +11 -0
- package/dist/components/nano-tab.js +86 -0
- package/dist/components/nano-tab.js.map +1 -0
- package/dist/components/nano-tooltip.d.ts +11 -0
- package/dist/components/nano-tooltip.js +11 -0
- package/dist/components/nano-tooltip.js.map +1 -0
- package/dist/components/nav-item.js +327 -0
- package/dist/components/nav-item.js.map +1 -0
- package/dist/components/option.js +120 -0
- package/dist/components/option.js.map +1 -0
- package/dist/{esm/popover-2c7b2326.js → components/popover.js} +10 -1
- package/dist/components/popover.js.map +1 -0
- package/dist/components/resize-observe.js +162 -0
- package/dist/components/resize-observe.js.map +1 -0
- package/dist/{esm/scroll-5cd0ab13.js → components/scroll.js} +2 -2
- package/dist/components/scroll.js.map +1 -0
- package/dist/components/select.js +670 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/skeleton.js +43 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slot.js +48 -0
- package/dist/components/slot.js.map +1 -0
- package/dist/components/spinner.js +49 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/sticker.js +665 -0
- package/dist/components/sticker.js.map +1 -0
- package/dist/{esm/tabbable-e21f860a.js → components/tabbable.js} +8 -6
- package/dist/components/tabbable.js.map +1 -0
- package/dist/components/theme.js +29 -0
- package/dist/components/theme.js.map +1 -0
- package/dist/components/throttle.js +55 -0
- package/dist/components/throttle.js.map +1 -0
- package/dist/components/tooltip.js +216 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/custom-elements/index.d.ts +12 -6
- package/dist/custom-elements/index.js +1745 -1116
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/active-element-75b7c8a0.js +19 -0
- package/dist/esm/active-element-75b7c8a0.js.map +1 -0
- package/dist/esm/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-6d09b727.js} +3 -3
- package/dist/esm/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-6d09b727.js.map} +1 -1
- package/dist/esm/dom-faa69d29.js +75 -0
- package/dist/esm/dom-faa69d29.js.map +1 -0
- package/dist/esm/form-control-67eeb108.js +77 -0
- package/dist/esm/form-control-67eeb108.js.map +1 -0
- package/dist/esm/index-5f8d16e7.js +12 -12
- package/dist/esm/index-bf53664b.js +74 -0
- package/dist/esm/{index-f41ae118.js.map → index-bf53664b.js.map} +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
- package/dist/esm/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +1 -1
- package/dist/esm/nano-accordion.entry.js +2 -4
- package/dist/esm/nano-accordion.entry.js.map +1 -1
- package/dist/esm/nano-alert.entry.js +6 -6
- package/dist/esm/nano-alert.entry.js.map +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +1 -1
- package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm/nano-algolia-input.entry.js +1 -1
- package/dist/esm/nano-algolia.entry.js +9 -5
- package/dist/esm/nano-algolia.entry.js.map +1 -1
- package/dist/esm/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm/nano-aspect-ratio.entry.js.map +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +4 -1
- package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm/nano-checkbox.entry.js +1 -1
- package/dist/esm/nano-checkbox.entry.js.map +1 -1
- package/dist/esm/nano-components.js +1 -1
- package/dist/esm/nano-datalist_3.entry.js +784 -0
- package/dist/esm/nano-datalist_3.entry.js.map +1 -0
- package/dist/esm/nano-date-input.entry.js +9 -5
- package/dist/esm/nano-date-input.entry.js.map +1 -1
- package/dist/esm/{nano-date-picker_2.entry.js → nano-date-picker.entry.js} +3 -274
- package/dist/esm/nano-date-picker.entry.js.map +1 -0
- package/dist/esm/nano-details.entry.js +2 -2
- package/dist/esm/nano-details.entry.js.map +1 -1
- package/dist/esm/nano-dialog.entry.js +5 -5
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +5 -5
- package/dist/esm/nano-drawer.entry.js.map +1 -1
- package/dist/esm/nano-dropdown.entry.js +303 -0
- package/dist/esm/nano-dropdown.entry.js.map +1 -0
- package/dist/esm/nano-file-upload.entry.js +1 -1
- package/dist/esm/nano-file-upload.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +19 -24
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +200 -115
- package/dist/esm/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm/nano-grid_3.entry.js +16 -8
- package/dist/esm/nano-grid_3.entry.js.map +1 -1
- package/dist/esm/nano-hero.entry.js +14 -6
- package/dist/esm/nano-hero.entry.js.map +1 -1
- package/dist/esm/nano-icon-button.entry.js +2 -2
- package/dist/esm/nano-icon-button.entry.js.map +1 -1
- package/dist/esm/nano-icon.entry.js +1 -1
- package/dist/esm/nano-icon.entry.js.map +1 -1
- package/dist/esm/nano-input.entry.js +80 -75
- package/dist/esm/nano-input.entry.js.map +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +2 -2
- package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm/nano-nav-item_2.entry.js +287 -533
- package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +2 -2
- package/dist/esm/nano-range.entry.js.map +1 -1
- package/dist/esm/nano-rating.entry.js +2 -2
- package/dist/esm/nano-rating.entry.js.map +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
- package/dist/esm/nano-slide.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js.map +1 -1
- package/dist/esm/nano-slides.entry.js +1 -1
- package/dist/esm/nano-slides.entry.js.map +1 -1
- package/dist/esm/nano-spinner.entry.js +1 -1
- package/dist/esm/nano-spinner.entry.js.map +1 -1
- package/dist/esm/nano-sticker.entry.js +3 -3
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-content.entry.js +2 -2
- package/dist/esm/nano-tab-content.entry.js.map +1 -1
- package/dist/esm/nano-tab-group.entry.js +72 -36
- package/dist/esm/nano-tab-group.entry.js.map +1 -1
- package/dist/esm/nano-tab.entry.js +10 -3
- package/dist/esm/nano-tab.entry.js.map +1 -1
- package/dist/esm/nano-tooltip.entry.js +2 -2
- package/dist/esm/nano-tooltip.entry.js.map +1 -1
- package/dist/esm/popover-db86a392.js +1893 -0
- package/dist/esm/popover-db86a392.js.map +1 -0
- package/dist/esm/scroll-881feb46.js +76 -0
- package/dist/esm/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +1 -1
- package/dist/esm/tabbable-614f515e.js +94 -0
- package/dist/esm/tabbable-614f515e.js.map +1 -0
- package/dist/esm-es5/active-element-75b7c8a0.js +5 -0
- package/dist/esm-es5/active-element-75b7c8a0.js.map +1 -0
- package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-6d09b727.js} +3 -3
- package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-6d09b727.js.map} +1 -1
- package/dist/esm-es5/dom-faa69d29.js +5 -0
- package/dist/esm-es5/dom-faa69d29.js.map +1 -0
- package/dist/esm-es5/form-control-67eeb108.js +5 -0
- package/dist/esm-es5/form-control-67eeb108.js.map +1 -0
- package/dist/esm-es5/index-5f8d16e7.js +1 -1
- package/dist/esm-es5/index-bf53664b.js +5 -0
- package/dist/esm-es5/index-bf53664b.js.map +1 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/index.js.map +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
- package/dist/esm-es5/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +0 -0
- package/dist/esm-es5/nano-accordion.entry.js +1 -1
- package/dist/esm-es5/nano-accordion.entry.js.map +1 -1
- package/dist/esm-es5/nano-alert.entry.js +1 -1
- package/dist/esm-es5/nano-alert.entry.js.map +1 -1
- package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
- package/dist/esm-es5/nano-algolia.entry.js +1 -1
- package/dist/esm-es5/nano-algolia.entry.js.map +1 -1
- package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm-es5/nano-aspect-ratio.entry.js.map +1 -1
- package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
- package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm-es5/nano-checkbox.entry.js +1 -1
- package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
- package/dist/esm-es5/nano-components.js +1 -1
- package/dist/esm-es5/nano-components.js.map +1 -1
- package/dist/esm-es5/nano-datalist_3.entry.js +5 -0
- package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -0
- package/dist/esm-es5/nano-date-input.entry.js +1 -1
- package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
- package/dist/esm-es5/nano-date-picker.entry.js +5 -0
- package/dist/esm-es5/nano-date-picker.entry.js.map +1 -0
- package/dist/esm-es5/nano-details.entry.js +1 -1
- package/dist/esm-es5/nano-details.entry.js.map +1 -1
- package/dist/esm-es5/nano-dialog.entry.js +1 -1
- package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
- package/dist/esm-es5/nano-drawer.entry.js +1 -1
- package/dist/esm-es5/nano-drawer.entry.js.map +1 -1
- package/dist/esm-es5/nano-dropdown.entry.js +5 -0
- package/dist/esm-es5/nano-dropdown.entry.js.map +1 -0
- package/dist/esm-es5/nano-file-upload.entry.js +1 -1
- package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
- package/dist/esm-es5/nano-global-nav.entry.js +1 -1
- package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
- package/dist/esm-es5/nano-global-search-results.entry.js +2 -2
- package/dist/esm-es5/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm-es5/nano-grid_3.entry.js +1 -1
- package/dist/esm-es5/nano-grid_3.entry.js.map +1 -1
- package/dist/esm-es5/nano-hero.entry.js +1 -1
- package/dist/esm-es5/nano-hero.entry.js.map +1 -1
- package/dist/esm-es5/nano-icon-button.entry.js +1 -1
- package/dist/esm-es5/nano-icon-button.entry.js.map +1 -1
- package/dist/esm-es5/nano-icon.entry.js +1 -1
- package/dist/esm-es5/nano-icon.entry.js.map +1 -1
- package/dist/esm-es5/nano-input.entry.js +2 -2
- package/dist/esm-es5/nano-input.entry.js.map +1 -1
- package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
- package/dist/esm-es5/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
- package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm-es5/nano-range.entry.js +1 -1
- package/dist/esm-es5/nano-range.entry.js.map +1 -1
- package/dist/esm-es5/nano-rating.entry.js +1 -1
- package/dist/esm-es5/nano-rating.entry.js.map +1 -1
- package/dist/esm-es5/nano-resize-observe_2.entry.js +2 -2
- package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
- package/dist/esm-es5/nano-slide.entry.js +1 -1
- package/dist/esm-es5/nano-slide.entry.js.map +1 -1
- package/dist/esm-es5/nano-slides.entry.js +1 -1
- package/dist/esm-es5/nano-slides.entry.js.map +1 -1
- package/dist/esm-es5/nano-spinner.entry.js +1 -1
- package/dist/esm-es5/nano-spinner.entry.js.map +1 -1
- package/dist/esm-es5/nano-sticker.entry.js +1 -1
- package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
- package/dist/esm-es5/nano-tab-content.entry.js +1 -1
- package/dist/esm-es5/nano-tab-content.entry.js.map +1 -1
- package/dist/esm-es5/nano-tab-group.entry.js +2 -2
- package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
- package/dist/esm-es5/nano-tab.entry.js +2 -2
- package/dist/esm-es5/nano-tab.entry.js.map +1 -1
- package/dist/esm-es5/nano-tooltip.entry.js +1 -1
- package/dist/esm-es5/nano-tooltip.entry.js.map +1 -1
- package/dist/esm-es5/{popover-2c7b2326.js → popover-db86a392.js} +2 -2
- package/dist/esm-es5/popover-db86a392.js.map +1 -0
- package/dist/esm-es5/{scroll-5cd0ab13.js → scroll-881feb46.js} +2 -2
- package/dist/esm-es5/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +0 -0
- package/dist/esm-es5/tabbable-614f515e.js +5 -0
- package/dist/esm-es5/tabbable-614f515e.js.map +1 -0
- package/dist/nano-components/index.esm.js +1 -1
- package/dist/nano-components/index.esm.js.map +1 -1
- package/dist/nano-components/nano-components.css +1 -1
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/{p-2f21a443.system.entry.js → p-033296c7.system.entry.js} +2 -2
- package/dist/nano-components/{p-2f21a443.system.entry.js.map → p-033296c7.system.entry.js.map} +1 -1
- package/dist/nano-components/p-040b6cda.entry.js +5 -0
- package/dist/nano-components/{p-61565b5a.entry.js.map → p-040b6cda.entry.js.map} +1 -1
- package/dist/nano-components/p-05c7bde1.system.entry.js +5 -0
- package/dist/nano-components/{p-30df44d9.system.entry.js.map → p-05c7bde1.system.entry.js.map} +1 -1
- package/dist/nano-components/p-07bdf44d.entry.js +5 -0
- package/dist/nano-components/{p-88bcf55b.entry.js.map → p-07bdf44d.entry.js.map} +1 -1
- package/dist/nano-components/p-09066701.system.entry.js +5 -0
- package/dist/nano-components/p-09066701.system.entry.js.map +1 -0
- package/dist/nano-components/p-090f22a9.system.entry.js +5 -0
- package/dist/nano-components/{p-854df906.system.entry.js.map → p-090f22a9.system.entry.js.map} +1 -1
- package/dist/nano-components/p-096682d9.system.js +1 -1
- package/dist/nano-components/p-096682d9.system.js.map +1 -1
- package/dist/nano-components/p-09d2d944.system.js +5 -0
- package/dist/nano-components/p-09d2d944.system.js.map +1 -0
- package/dist/nano-components/{p-bfc12324.system.entry.js → p-0bee6fe6.system.entry.js} +2 -2
- package/dist/nano-components/{p-bfc12324.system.entry.js.map → p-0bee6fe6.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-21c2a9a5.system.entry.js → p-173bae15.system.entry.js} +2 -2
- package/dist/nano-components/{p-21c2a9a5.system.entry.js.map → p-173bae15.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-731935b1.js → p-1805d59a.js} +2 -2
- package/dist/nano-components/{p-731935b1.js.map → p-1805d59a.js.map} +0 -0
- package/dist/nano-components/p-1a293bd0.entry.js +5 -0
- package/dist/nano-components/{p-8b7f8ef4.entry.js.map → p-1a293bd0.entry.js.map} +1 -1
- package/dist/nano-components/p-1c216ca4.system.js +5 -0
- package/dist/{esm-es5/index-f41ae118.js.map → nano-components/p-1c216ca4.system.js.map} +1 -1
- package/dist/nano-components/p-1d13dbdf.system.js +5 -0
- package/dist/nano-components/p-1d13dbdf.system.js.map +1 -0
- package/dist/nano-components/p-1e974cad.entry.js +5 -0
- package/dist/nano-components/{p-7e60c331.entry.js.map → p-1e974cad.entry.js.map} +1 -1
- package/dist/nano-components/p-20387cde.system.entry.js +5 -0
- package/dist/nano-components/{p-91778977.system.entry.js.map → p-20387cde.system.entry.js.map} +1 -1
- package/dist/nano-components/p-20db18f3.entry.js +5 -0
- package/dist/nano-components/{p-a9dd7cf9.entry.js.map → p-20db18f3.entry.js.map} +1 -1
- package/dist/nano-components/p-22884654.system.entry.js +5 -0
- package/dist/nano-components/{p-3d0fbd0e.system.entry.js.map → p-22884654.system.entry.js.map} +1 -1
- package/dist/nano-components/p-2559e9c1.entry.js +5 -0
- package/dist/nano-components/p-2559e9c1.entry.js.map +1 -0
- package/dist/nano-components/p-289aa03f.js +5 -0
- package/dist/nano-components/p-289aa03f.js.map +1 -0
- package/dist/nano-components/p-2e6c55e2.entry.js +5 -0
- package/dist/nano-components/{p-6f3d20fe.entry.js.map → p-2e6c55e2.entry.js.map} +1 -1
- package/dist/nano-components/{p-60c9b580.system.js → p-3258c568.system.js} +2 -2
- package/dist/nano-components/p-3258c568.system.js.map +1 -0
- package/dist/nano-components/p-3456db01.entry.js +5 -0
- package/dist/nano-components/p-3456db01.entry.js.map +1 -0
- package/dist/nano-components/p-346588cc.entry.js +5 -0
- package/dist/nano-components/p-346588cc.entry.js.map +1 -0
- package/dist/nano-components/p-394c3c19.entry.js +5 -0
- package/dist/nano-components/{p-217f71aa.entry.js.map → p-394c3c19.entry.js.map} +1 -1
- package/dist/nano-components/p-3a13948a.system.entry.js +5 -0
- package/dist/nano-components/p-3a13948a.system.entry.js.map +1 -0
- package/dist/nano-components/p-3a725f1f.system.entry.js +5 -0
- package/dist/nano-components/p-3a725f1f.system.entry.js.map +1 -0
- package/dist/nano-components/p-3aa1d07d.entry.js +5 -0
- package/dist/nano-components/{p-6a1c69d3.entry.js.map → p-3aa1d07d.entry.js.map} +1 -1
- package/dist/nano-components/p-3ad1d5aa.system.entry.js +5 -0
- package/dist/nano-components/p-3ad1d5aa.system.entry.js.map +1 -0
- package/dist/nano-components/p-3ef30ded.system.entry.js +5 -0
- package/dist/nano-components/{p-9bf4a6e0.system.entry.js.map → p-3ef30ded.system.entry.js.map} +1 -1
- package/dist/nano-components/p-3fc52f19.system.entry.js +5 -0
- package/dist/nano-components/p-3fc52f19.system.entry.js.map +1 -0
- package/dist/nano-components/p-4429caac.system.entry.js +5 -0
- package/dist/nano-components/p-4429caac.system.entry.js.map +1 -0
- package/dist/nano-components/p-4535e3bb.entry.js +5 -0
- package/dist/nano-components/{p-143bca0d.entry.js.map → p-4535e3bb.entry.js.map} +1 -1
- package/dist/nano-components/p-462ad4f1.entry.js +5 -0
- package/dist/nano-components/p-462ad4f1.entry.js.map +1 -0
- package/dist/nano-components/p-46d0bb7b.entry.js +5 -0
- package/dist/nano-components/p-46d0bb7b.entry.js.map +1 -0
- package/dist/nano-components/p-5066e563.system.entry.js +5 -0
- package/dist/nano-components/{p-006f2fd3.system.entry.js.map → p-5066e563.system.entry.js.map} +1 -1
- package/dist/nano-components/p-52ab579e.system.entry.js +5 -0
- package/dist/nano-components/p-52ab579e.system.entry.js.map +1 -0
- package/dist/nano-components/p-531d5275.system.entry.js +5 -0
- package/dist/nano-components/{p-b79dc23a.system.entry.js.map → p-531d5275.system.entry.js.map} +1 -1
- package/dist/nano-components/p-5653961d.system.entry.js +5 -0
- package/dist/nano-components/{p-18f49ebf.system.entry.js.map → p-5653961d.system.entry.js.map} +1 -1
- package/dist/nano-components/p-56ba0d63.entry.js +5 -0
- package/dist/nano-components/p-56ba0d63.entry.js.map +1 -0
- package/dist/nano-components/p-593de29b.system.entry.js +5 -0
- package/dist/nano-components/{p-76b13c27.system.entry.js.map → p-593de29b.system.entry.js.map} +1 -1
- package/dist/nano-components/p-5a476bba.system.entry.js +5 -0
- package/dist/nano-components/p-5a476bba.system.entry.js.map +1 -0
- package/dist/nano-components/{p-8a608e6d.entry.js → p-5e7c7d3d.entry.js} +2 -2
- package/dist/nano-components/{p-8a608e6d.entry.js.map → p-5e7c7d3d.entry.js.map} +1 -1
- package/dist/nano-components/p-672e5547.js +5 -0
- package/dist/nano-components/p-672e5547.js.map +1 -0
- package/dist/nano-components/{p-a16651a6.system.js → p-67cc0d9b.system.js} +3 -3
- package/dist/nano-components/{p-a16651a6.system.js.map → p-67cc0d9b.system.js.map} +1 -1
- package/dist/nano-components/p-69439aa1.system.entry.js +5 -0
- package/dist/nano-components/p-69439aa1.system.entry.js.map +1 -0
- package/dist/nano-components/p-6ade3290.entry.js +5 -0
- package/dist/nano-components/{p-1e03f9bf.entry.js.map → p-6ade3290.entry.js.map} +1 -1
- package/dist/nano-components/p-70dec19f.entry.js +5 -0
- package/dist/nano-components/{p-d0e9b177.entry.js.map → p-70dec19f.entry.js.map} +1 -1
- package/dist/nano-components/p-71c26ace.entry.js +5 -0
- package/dist/nano-components/p-71c26ace.entry.js.map +1 -0
- package/dist/nano-components/p-7232c046.system.entry.js +5 -0
- package/dist/nano-components/{p-92b3f99b.system.entry.js.map → p-7232c046.system.entry.js.map} +1 -1
- package/dist/nano-components/p-730f60ea.entry.js +5 -0
- package/dist/nano-components/{p-78cf9d39.entry.js.map → p-730f60ea.entry.js.map} +1 -1
- package/dist/nano-components/p-74a7fc4f.js +5 -0
- package/dist/nano-components/p-74a7fc4f.js.map +1 -0
- package/dist/nano-components/p-774e090b.system.entry.js +5 -0
- package/dist/nano-components/p-774e090b.system.entry.js.map +1 -0
- package/dist/nano-components/{p-d31761c8.system.js → p-7be6b7f3.system.js} +2 -2
- package/dist/nano-components/p-7be6b7f3.system.js.map +1 -0
- package/dist/nano-components/p-7d2e2685.entry.js +5 -0
- package/dist/nano-components/p-7d2e2685.entry.js.map +1 -0
- package/dist/nano-components/p-820d9e23.system.entry.js +5 -0
- package/dist/nano-components/p-820d9e23.system.entry.js.map +1 -0
- package/dist/nano-components/p-8278c5d2.system.entry.js +5 -0
- package/dist/nano-components/{p-badf69ee.system.entry.js.map → p-8278c5d2.system.entry.js.map} +1 -1
- package/dist/nano-components/p-82f4b071.entry.js +5 -0
- package/dist/nano-components/p-82f4b071.entry.js.map +1 -0
- package/dist/nano-components/p-88f17c86.system.entry.js +5 -0
- package/dist/nano-components/p-88f17c86.system.entry.js.map +1 -0
- package/dist/nano-components/p-8a8f893b.system.entry.js +5 -0
- package/dist/nano-components/{p-cc668975.system.entry.js.map → p-8a8f893b.system.entry.js.map} +1 -1
- package/dist/nano-components/p-93448bcd.system.entry.js +5 -0
- package/dist/nano-components/{p-02e82e14.system.entry.js.map → p-93448bcd.system.entry.js.map} +1 -1
- package/dist/nano-components/p-94593617.system.entry.js +5 -0
- package/dist/nano-components/{p-2442eda0.system.entry.js.map → p-94593617.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-56113dd3.js → p-9a385481.js} +2 -2
- package/dist/nano-components/p-9a385481.js.map +1 -0
- package/dist/nano-components/{p-8134c14e.system.js → p-9de508a5.system.js} +2 -2
- package/dist/nano-components/p-9de508a5.system.js.map +1 -0
- package/dist/nano-components/p-a315ed2c.entry.js +5 -0
- package/dist/nano-components/{p-13801651.entry.js.map → p-a315ed2c.entry.js.map} +1 -1
- package/dist/nano-components/p-a4075d49.entry.js +5 -0
- package/dist/nano-components/p-a4075d49.entry.js.map +1 -0
- package/dist/nano-components/p-b19e0775.system.entry.js +5 -0
- package/dist/nano-components/p-b19e0775.system.entry.js.map +1 -0
- package/dist/nano-components/{p-18411914.system.js → p-b370e3ef.system.js} +2 -2
- package/dist/nano-components/{p-18411914.system.js.map → p-b370e3ef.system.js.map} +0 -0
- package/dist/nano-components/p-b59d2bd5.entry.js +5 -0
- package/dist/nano-components/p-b59d2bd5.entry.js.map +1 -0
- package/dist/nano-components/p-b619500f.js +5 -0
- package/dist/nano-components/p-b619500f.js.map +1 -0
- package/dist/nano-components/{p-23f65b34.entry.js → p-ba13bb56.entry.js} +2 -2
- package/dist/nano-components/{p-23f65b34.entry.js.map → p-ba13bb56.entry.js.map} +1 -1
- package/dist/nano-components/p-c0ddb4c3.entry.js +5 -0
- package/dist/nano-components/{p-78569d39.entry.js.map → p-c0ddb4c3.entry.js.map} +1 -1
- package/dist/nano-components/p-c954c040.entry.js +5 -0
- package/dist/nano-components/p-c954c040.entry.js.map +1 -0
- package/dist/nano-components/p-c9c1a345.system.entry.js +5 -0
- package/dist/nano-components/{p-38a3e791.system.entry.js.map → p-c9c1a345.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-8c8963f6.js → p-cb79d1ec.js} +2 -2
- package/dist/nano-components/{p-8c8963f6.js.map → p-cb79d1ec.js.map} +0 -0
- package/dist/nano-components/p-d6569144.entry.js +5 -0
- package/dist/nano-components/{p-c7b7f7ab.entry.js.map → p-d6569144.entry.js.map} +1 -1
- package/dist/nano-components/{p-2d1a856e.system.js → p-d84ef175.system.js} +2 -2
- package/dist/nano-components/{p-2d1a856e.system.js.map → p-d84ef175.system.js.map} +0 -0
- package/dist/nano-components/p-d9c7909e.js +5 -0
- package/dist/nano-components/p-d9c7909e.js.map +1 -0
- package/dist/nano-components/p-e11bd40d.entry.js +5 -0
- package/dist/nano-components/{p-a21d90aa.entry.js.map → p-e11bd40d.entry.js.map} +1 -1
- package/dist/nano-components/p-e15be516.system.entry.js +5 -0
- package/dist/nano-components/p-e15be516.system.entry.js.map +1 -0
- package/dist/nano-components/p-e2ae11d2.entry.js +5 -0
- package/dist/nano-components/p-e2ae11d2.entry.js.map +1 -0
- package/dist/nano-components/{p-8757b4eb.js → p-e3583b00.js} +3 -3
- package/dist/nano-components/{p-8757b4eb.js.map → p-e3583b00.js.map} +1 -1
- package/dist/nano-components/p-e35eac75.entry.js +5 -0
- package/dist/nano-components/p-e35eac75.entry.js.map +1 -0
- package/dist/nano-components/p-e562bffd.entry.js +5 -0
- package/dist/nano-components/p-e562bffd.entry.js.map +1 -0
- package/dist/nano-components/p-e6f41b97.entry.js +5 -0
- package/dist/nano-components/p-e6f41b97.entry.js.map +1 -0
- package/dist/nano-components/p-e6f8f9f7.system.entry.js +5 -0
- package/dist/nano-components/p-e6f8f9f7.system.entry.js.map +1 -0
- package/dist/nano-components/p-ea5eb591.system.js +5 -0
- package/dist/nano-components/p-ea5eb591.system.js.map +1 -0
- package/dist/nano-components/p-ef4e0912.system.entry.js +5 -0
- package/dist/nano-components/{p-2aed806d.system.entry.js.map → p-ef4e0912.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-981cc614.entry.js → p-f1bf1099.entry.js} +2 -2
- package/dist/nano-components/{p-981cc614.entry.js.map → p-f1bf1099.entry.js.map} +0 -0
- package/dist/nano-components/p-f2e7d2f9.system.entry.js +5 -0
- package/dist/nano-components/p-f2e7d2f9.system.entry.js.map +1 -0
- package/dist/nano-components/p-f3bf942d.entry.js +5 -0
- package/dist/nano-components/p-f3bf942d.entry.js.map +1 -0
- package/dist/nano-components/p-f53989c3.system.entry.js +5 -0
- package/dist/nano-components/{p-6621e4f1.system.entry.js.map → p-f53989c3.system.entry.js.map} +1 -1
- package/dist/themes/nanopore.css +1 -1
- package/dist/themes/nanopore.css.map +1 -1
- package/dist/types/components/accordion/accordion.d.ts +0 -1
- package/dist/types/components/checkbox/checkbox-group.d.ts +1 -0
- package/dist/types/components/datalist/datalist.d.ts +98 -0
- package/dist/types/components/date-input/date-input.d.ts +2 -0
- package/dist/types/components/dialog/dialog.helpers.d.ts +2 -2
- package/dist/types/components/dropdown/dropdown.d.ts +8 -4
- package/dist/types/components/form-control/form-control.d.ts +35 -0
- package/dist/types/components/global-search-results/global-search-results.d.ts +1 -0
- package/dist/types/components/grid/grid.d.ts +7 -1
- package/dist/types/components/hero/hero.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +13 -9
- package/dist/types/components/menu/menu.d.ts +22 -8
- package/dist/types/components/option/option-interface.d.ts +7 -0
- package/dist/types/components/option/option.d.ts +45 -0
- package/dist/types/components/select/select.d.ts +43 -49
- package/dist/types/components/tabs/tab-group.d.ts +32 -6
- package/dist/types/components/tabs/tab.d.ts +6 -1
- package/dist/types/components.d.ts +241 -70
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/utils/active-element.d.ts +1 -0
- package/dist/types/utils/dom.d.ts +9 -1
- package/dist/types/utils/index.d.ts +2 -1
- package/dist/types/utils/tabbable.d.ts +2 -2
- package/dist/types/utils/testing/index.d.ts +3 -2
- package/docs-json.json +1244 -262
- package/docs-vscode.json +102 -33
- package/package.json +5 -5
- package/dist/cjs/dom-5f3fae1a.js.map +0 -1
- package/dist/cjs/index-117f36a4.js.map +0 -1
- package/dist/cjs/nano-date-picker_2.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-menu.cjs.entry.js +0 -156
- package/dist/cjs/nano-menu.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-select-option.cjs.entry.js +0 -43
- package/dist/cjs/nano-select-option.cjs.entry.js.map +0 -1
- package/dist/cjs/popover-d033efa2.js.map +0 -1
- package/dist/cjs/tabbable-615c30e1.js.map +0 -1
- package/dist/collection/components/select/select-option.css +0 -15
- package/dist/collection/components/select/select-option.js +0 -127
- package/dist/collection/components/select/select-option.js.map +0 -1
- package/dist/esm/dom-a791b223.js.map +0 -1
- package/dist/esm/nano-date-picker_2.entry.js.map +0 -1
- package/dist/esm/nano-menu.entry.js +0 -152
- package/dist/esm/nano-menu.entry.js.map +0 -1
- package/dist/esm/nano-select-option.entry.js +0 -39
- package/dist/esm/nano-select-option.entry.js.map +0 -1
- package/dist/esm/popover-2c7b2326.js.map +0 -1
- package/dist/esm/tabbable-e21f860a.js.map +0 -1
- package/dist/esm-es5/dom-a791b223.js +0 -5
- package/dist/esm-es5/dom-a791b223.js.map +0 -1
- package/dist/esm-es5/index-f41ae118.js +0 -5
- package/dist/esm-es5/nano-date-picker_2.entry.js +0 -5
- package/dist/esm-es5/nano-date-picker_2.entry.js.map +0 -1
- package/dist/esm-es5/nano-menu.entry.js +0 -5
- package/dist/esm-es5/nano-menu.entry.js.map +0 -1
- package/dist/esm-es5/nano-select-option.entry.js +0 -5
- package/dist/esm-es5/nano-select-option.entry.js.map +0 -1
- package/dist/esm-es5/popover-2c7b2326.js.map +0 -1
- package/dist/esm-es5/tabbable-e21f860a.js +0 -5
- package/dist/esm-es5/tabbable-e21f860a.js.map +0 -1
- package/dist/nano-components/p-006f2fd3.system.entry.js +0 -5
- package/dist/nano-components/p-02e82e14.system.entry.js +0 -5
- package/dist/nano-components/p-05a8014a.entry.js +0 -5
- package/dist/nano-components/p-05a8014a.entry.js.map +0 -1
- package/dist/nano-components/p-13801651.entry.js +0 -5
- package/dist/nano-components/p-13fa75fc.entry.js +0 -5
- package/dist/nano-components/p-13fa75fc.entry.js.map +0 -1
- package/dist/nano-components/p-143bca0d.entry.js +0 -5
- package/dist/nano-components/p-18f49ebf.system.entry.js +0 -5
- package/dist/nano-components/p-19428228.system.entry.js +0 -5
- package/dist/nano-components/p-19428228.system.entry.js.map +0 -1
- package/dist/nano-components/p-1e03f9bf.entry.js +0 -5
- package/dist/nano-components/p-217f71aa.entry.js +0 -5
- package/dist/nano-components/p-2442eda0.system.entry.js +0 -5
- package/dist/nano-components/p-2946bd70.system.entry.js +0 -5
- package/dist/nano-components/p-2946bd70.system.entry.js.map +0 -1
- package/dist/nano-components/p-2aed806d.system.entry.js +0 -5
- package/dist/nano-components/p-30df44d9.system.entry.js +0 -5
- package/dist/nano-components/p-38a3e791.system.entry.js +0 -5
- package/dist/nano-components/p-3a49ceab.entry.js +0 -5
- package/dist/nano-components/p-3a49ceab.entry.js.map +0 -1
- package/dist/nano-components/p-3d0fbd0e.system.entry.js +0 -5
- package/dist/nano-components/p-3f00179c.js +0 -5
- package/dist/nano-components/p-3f00179c.js.map +0 -1
- package/dist/nano-components/p-48e6bea3.entry.js +0 -5
- package/dist/nano-components/p-48e6bea3.entry.js.map +0 -1
- package/dist/nano-components/p-4d62ec32.system.js +0 -5
- package/dist/nano-components/p-4d62ec32.system.js.map +0 -1
- package/dist/nano-components/p-4e451498.entry.js +0 -5
- package/dist/nano-components/p-4e451498.entry.js.map +0 -1
- package/dist/nano-components/p-51d9570d.entry.js +0 -5
- package/dist/nano-components/p-51d9570d.entry.js.map +0 -1
- package/dist/nano-components/p-51fa04a6.entry.js +0 -5
- package/dist/nano-components/p-51fa04a6.entry.js.map +0 -1
- package/dist/nano-components/p-55189485.system.entry.js +0 -5
- package/dist/nano-components/p-55189485.system.entry.js.map +0 -1
- package/dist/nano-components/p-56113dd3.js.map +0 -1
- package/dist/nano-components/p-5bbd6c81.entry.js +0 -5
- package/dist/nano-components/p-5bbd6c81.entry.js.map +0 -1
- package/dist/nano-components/p-5e9170ae.entry.js +0 -5
- package/dist/nano-components/p-5e9170ae.entry.js.map +0 -1
- package/dist/nano-components/p-60c9b580.system.js.map +0 -1
- package/dist/nano-components/p-61565b5a.entry.js +0 -5
- package/dist/nano-components/p-621750cc.js +0 -5
- package/dist/nano-components/p-621750cc.js.map +0 -1
- package/dist/nano-components/p-6621e4f1.system.entry.js +0 -5
- package/dist/nano-components/p-6a1c69d3.entry.js +0 -5
- package/dist/nano-components/p-6ab8d211.system.entry.js +0 -5
- package/dist/nano-components/p-6ab8d211.system.entry.js.map +0 -1
- package/dist/nano-components/p-6e9b3d60.system.entry.js +0 -5
- package/dist/nano-components/p-6e9b3d60.system.entry.js.map +0 -1
- package/dist/nano-components/p-6f3d20fe.entry.js +0 -5
- package/dist/nano-components/p-6feac35e.entry.js +0 -5
- package/dist/nano-components/p-6feac35e.entry.js.map +0 -1
- package/dist/nano-components/p-723c212f.system.entry.js +0 -5
- package/dist/nano-components/p-723c212f.system.entry.js.map +0 -1
- package/dist/nano-components/p-76b13c27.system.entry.js +0 -5
- package/dist/nano-components/p-78569d39.entry.js +0 -5
- package/dist/nano-components/p-78cf9d39.entry.js +0 -5
- package/dist/nano-components/p-7e60c331.entry.js +0 -5
- package/dist/nano-components/p-8134c14e.system.js.map +0 -1
- package/dist/nano-components/p-81b4ed2a.system.entry.js +0 -5
- package/dist/nano-components/p-81b4ed2a.system.entry.js.map +0 -1
- package/dist/nano-components/p-854df906.system.entry.js +0 -5
- package/dist/nano-components/p-88bcf55b.entry.js +0 -5
- package/dist/nano-components/p-8b7f8ef4.entry.js +0 -5
- package/dist/nano-components/p-8c3993ff.entry.js +0 -5
- package/dist/nano-components/p-8c3993ff.entry.js.map +0 -1
- package/dist/nano-components/p-91778977.system.entry.js +0 -5
- package/dist/nano-components/p-92b3f99b.system.entry.js +0 -5
- package/dist/nano-components/p-9bd73d1d.js +0 -5
- package/dist/nano-components/p-9bd73d1d.js.map +0 -1
- package/dist/nano-components/p-9bf4a6e0.system.entry.js +0 -5
- package/dist/nano-components/p-9df226fd.system.entry.js +0 -5
- package/dist/nano-components/p-9df226fd.system.entry.js.map +0 -1
- package/dist/nano-components/p-a0b55c38.system.entry.js +0 -5
- package/dist/nano-components/p-a0b55c38.system.entry.js.map +0 -1
- package/dist/nano-components/p-a21d90aa.entry.js +0 -5
- package/dist/nano-components/p-a9dd7cf9.entry.js +0 -5
- package/dist/nano-components/p-ad069ba4.entry.js +0 -5
- package/dist/nano-components/p-ad069ba4.entry.js.map +0 -1
- package/dist/nano-components/p-b246a7bb.entry.js +0 -5
- package/dist/nano-components/p-b246a7bb.entry.js.map +0 -1
- package/dist/nano-components/p-b45d4be9.entry.js +0 -5
- package/dist/nano-components/p-b45d4be9.entry.js.map +0 -1
- package/dist/nano-components/p-b79dc23a.system.entry.js +0 -5
- package/dist/nano-components/p-b86fc6b7.system.js +0 -5
- package/dist/nano-components/p-b86fc6b7.system.js.map +0 -1
- package/dist/nano-components/p-badf69ee.system.entry.js +0 -5
- package/dist/nano-components/p-bde0deae.system.entry.js +0 -5
- package/dist/nano-components/p-bde0deae.system.entry.js.map +0 -1
- package/dist/nano-components/p-be3df2e8.system.entry.js +0 -5
- package/dist/nano-components/p-be3df2e8.system.entry.js.map +0 -1
- package/dist/nano-components/p-c39c1e8d.entry.js +0 -5
- package/dist/nano-components/p-c39c1e8d.entry.js.map +0 -1
- package/dist/nano-components/p-c7b7f7ab.entry.js +0 -5
- package/dist/nano-components/p-c82ccbc8.entry.js +0 -5
- package/dist/nano-components/p-c82ccbc8.entry.js.map +0 -1
- package/dist/nano-components/p-cc668975.system.entry.js +0 -5
- package/dist/nano-components/p-cfd4c9de.system.entry.js +0 -5
- package/dist/nano-components/p-cfd4c9de.system.entry.js.map +0 -1
- package/dist/nano-components/p-d0e9b177.entry.js +0 -5
- package/dist/nano-components/p-d31761c8.system.js.map +0 -1
- package/dist/nano-components/p-d47d297b.system.entry.js +0 -5
- package/dist/nano-components/p-d47d297b.system.entry.js.map +0 -1
- package/dist/nano-components/p-e48a53f5.system.entry.js +0 -5
- package/dist/nano-components/p-e48a53f5.system.entry.js.map +0 -1
- package/dist/nano-components/p-e5f01860.entry.js +0 -5
- package/dist/nano-components/p-e5f01860.entry.js.map +0 -1
- package/dist/nano-components/p-f2b2cd38.system.entry.js +0 -5
- package/dist/nano-components/p-f2b2cd38.system.entry.js.map +0 -1
- package/dist/nano-components/p-fcb5ffaf.system.entry.js +0 -5
- package/dist/nano-components/p-fcb5ffaf.system.entry.js.map +0 -1
- package/dist/types/components/select/select-option.d.ts +0 -23
@@ -0,0 +1,790 @@
|
|
1
|
+
/*!
|
2
|
+
* Web Components for Nanopore digital Web Apps
|
3
|
+
*/
|
4
|
+
'use strict';
|
5
|
+
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
7
|
+
|
8
|
+
const index = require('./index-cb62df44.js');
|
9
|
+
const index$1 = require('./index-53d02e05.js');
|
10
|
+
const throttle = require('./throttle-3c97f7c6.js');
|
11
|
+
const dom = require('./dom-52f9b8b7.js');
|
12
|
+
const slot = require('./slot-9f5a87b6.js');
|
13
|
+
const activeElement = require('./active-element-2f9bf0aa.js');
|
14
|
+
|
15
|
+
const datalistCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--padding-top:var(--nano-spacing-small, 8px);--padding-bottom:var(--nano-spacing-small, 8px);--padding-start:var(--nano-spacing-xlarge, 24px);--padding-end:var(--nano-spacing-xlarge, 24px);--font-size:0.8em;--color:#b5aea7;color:var(--color)}.dlist--isfiltered ::slotted(*:not(nano-option):not([slot=no-result]):not([slot=list-top]):not([slot=list-bottom])){display:none !important}.dlist__dropdown{--min-width:100%;--overflow:auto}.dlist__status{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.dlist__menu{--padding-top:inherit;--padding-bottom:inherit;--padding-start:inherit;--padding-end:inherit;--font-size:inherit}";
|
16
|
+
|
17
|
+
function findLabel(formCtrl) {
|
18
|
+
let foundLabel;
|
19
|
+
if (formCtrl.id) {
|
20
|
+
foundLabel = document.querySelector(`label[for='${formCtrl.id}']`);
|
21
|
+
}
|
22
|
+
if (!foundLabel) {
|
23
|
+
foundLabel = formCtrl.closest('label');
|
24
|
+
}
|
25
|
+
return foundLabel;
|
26
|
+
}
|
27
|
+
let listIds = 0;
|
28
|
+
let DataList = class {
|
29
|
+
constructor(hostRef) {
|
30
|
+
index.registerInstance(this, hostRef);
|
31
|
+
this.nanoSelect = index.createEvent(this, "nanoSelect", 7);
|
32
|
+
this.nanoDeselect = index.createEvent(this, "nanoDeselect", 7);
|
33
|
+
this.nanoOptionsUpdated = index.createEvent(this, "nanoOptionsUpdated", 7);
|
34
|
+
// Private State
|
35
|
+
this.isNanoInput = false;
|
36
|
+
this.typeToSelect = '';
|
37
|
+
this.listId = `nano-datalist-${listIds++}`;
|
38
|
+
this.isFiltered = false;
|
39
|
+
this.shouldFocus = false;
|
40
|
+
this._allOptEles = [];
|
41
|
+
// active option eles that are not hidden.
|
42
|
+
this.actvOptEles = [];
|
43
|
+
this.canOpen = true;
|
44
|
+
this.optionIds = [];
|
45
|
+
// Public API
|
46
|
+
/** By default, items in the list will appear 'selected' when the value in the linked input control matches.
|
47
|
+
* However you can add other selected options via the the selected prop. */
|
48
|
+
this.selected = [];
|
49
|
+
this._dropDownConfig = {
|
50
|
+
skidding: -1,
|
51
|
+
};
|
52
|
+
/** Provide an option list.
|
53
|
+
* Options can be defined declaratively by nesting `<nano-option>` elements or imperatively using this prop */
|
54
|
+
this.options = [];
|
55
|
+
/** Tweaks the datalist behaviour and linked control semantics and behaviour.
|
56
|
+
* e.g. 'select' will make the linked input control readonly.
|
57
|
+
*/
|
58
|
+
this.type = 'input';
|
59
|
+
/** Force datalist open */
|
60
|
+
this.open = false;
|
61
|
+
/** Use this option to disable to default filtering. This is useful if filtering happens
|
62
|
+
* externally via another method (e.g. via ajax)
|
63
|
+
*/
|
64
|
+
this.disableFilter = false;
|
65
|
+
/** Activate / deactivate the datalist control */
|
66
|
+
this.disabled = false;
|
67
|
+
// a new option has been picked
|
68
|
+
this.optSelected = (e) => {
|
69
|
+
e.stopPropagation();
|
70
|
+
this.changeInputValue(e.detail);
|
71
|
+
index$1.raf(() => this.inputChange());
|
72
|
+
if (this.type === 'select')
|
73
|
+
this.shouldOpen = false;
|
74
|
+
};
|
75
|
+
// sets focus immediately on open when 'select' - mirroring native behaviour
|
76
|
+
this.handleShow = async () => {
|
77
|
+
if (this.type === 'select' || this.shouldFocus) {
|
78
|
+
this.shouldFocus = false;
|
79
|
+
this.listBox.setFocus();
|
80
|
+
}
|
81
|
+
};
|
82
|
+
this.inputClick = () => {
|
83
|
+
this.shouldOpen = true;
|
84
|
+
// open dropdown if possible
|
85
|
+
this.manageDropdownDisplay();
|
86
|
+
};
|
87
|
+
this.inputKeydown = (e) => {
|
88
|
+
const ignoreKeys = [
|
89
|
+
'Shift',
|
90
|
+
'ArrowRight',
|
91
|
+
'ArrowLeft',
|
92
|
+
'Escape',
|
93
|
+
'Enter',
|
94
|
+
'Tab',
|
95
|
+
];
|
96
|
+
if (ignoreKeys.includes(e.key)) {
|
97
|
+
if (e.key === 'Tab')
|
98
|
+
this.shouldOpen = false;
|
99
|
+
return;
|
100
|
+
}
|
101
|
+
// When select, mirror native select behaviour. Search on closed list
|
102
|
+
if (this.type === 'select' &&
|
103
|
+
!['ArrowDown', 'ArrowUp'].includes(e.key) &&
|
104
|
+
(e.key !== ' ' || this.typeToSelectTimeout)) {
|
105
|
+
if (e.key === ' ' || /^[a-z0-9]+$/i.test(e.key)) {
|
106
|
+
clearTimeout(this.typeToSelectTimeout);
|
107
|
+
this.typeToSelectTimeout = window.setTimeout(() => {
|
108
|
+
this.typeToSelect = '';
|
109
|
+
this.typeToSelectTimeout = 0;
|
110
|
+
}, 750);
|
111
|
+
this.typeToSelect += e.key;
|
112
|
+
this.setOptStartsWith();
|
113
|
+
}
|
114
|
+
return;
|
115
|
+
}
|
116
|
+
this.shouldOpen = true;
|
117
|
+
// open dropdown if possible
|
118
|
+
this.manageDropdownDisplay();
|
119
|
+
if (['ArrowDown', 'ArrowUp'].includes(e.key))
|
120
|
+
this.shouldFocus = true;
|
121
|
+
};
|
122
|
+
// handles key down on options. Either 'picks'
|
123
|
+
// an option or passes event back to input for search / filter
|
124
|
+
this.optionKeyDown = (e) => {
|
125
|
+
const ignoreKeys = [
|
126
|
+
'Shift',
|
127
|
+
'ArrowUp',
|
128
|
+
'ArrowDown',
|
129
|
+
'Escape',
|
130
|
+
'Enter',
|
131
|
+
'Tab',
|
132
|
+
'Space',
|
133
|
+
'PageUp',
|
134
|
+
'PageDown',
|
135
|
+
'Home',
|
136
|
+
'End',
|
137
|
+
' ',
|
138
|
+
];
|
139
|
+
if (ignoreKeys.includes(e.key)) {
|
140
|
+
if (e.key === 'Escape')
|
141
|
+
this.connectedInput.focus();
|
142
|
+
return;
|
143
|
+
}
|
144
|
+
const deleteKeys = ['Delete', 'Backspace'];
|
145
|
+
// this passes whatever's typed back to our input control
|
146
|
+
if (this.type !== 'select' &&
|
147
|
+
(!this.exactMatch || deleteKeys.includes(e.key))) {
|
148
|
+
this.connectedInput.focus();
|
149
|
+
}
|
150
|
+
};
|
151
|
+
this.inputChange = throttle.debounce(this.inputChange.bind(this), 50);
|
152
|
+
}
|
153
|
+
// all potential option eles. Set via slot or `options` prop.
|
154
|
+
// Some may get hidden due to filtering
|
155
|
+
get allOptEles() {
|
156
|
+
return this._allOptEles;
|
157
|
+
}
|
158
|
+
set allOptEles(opts) {
|
159
|
+
var _a;
|
160
|
+
// when allOptEles are initially set (on slot change / options) -
|
161
|
+
// add options to 'selected' and fire selected event *if*
|
162
|
+
// value isn't set on the input
|
163
|
+
this._allOptEles = opts;
|
164
|
+
if ((_a = this.connectedInput) === null || _a === void 0 ? void 0 : _a.value)
|
165
|
+
return;
|
166
|
+
opts.forEach((opt) => {
|
167
|
+
if (opt.selected && !this.selected.includes(opt.value)) {
|
168
|
+
this.changeInputValue(opt);
|
169
|
+
}
|
170
|
+
});
|
171
|
+
}
|
172
|
+
/** nano-dropdown config options you can pass to the nested dropdown component */
|
173
|
+
get dropDownConfig() {
|
174
|
+
return this._dropDownConfig;
|
175
|
+
}
|
176
|
+
set dropDownConfig(ddc) {
|
177
|
+
this._dropDownConfig = Object.assign(Object.assign({}, this._dropDownConfig), ddc);
|
178
|
+
}
|
179
|
+
/** return all the active options currently within the datalist. Can be useful for validation */
|
180
|
+
get activeOptions() {
|
181
|
+
return this.allOptEles;
|
182
|
+
}
|
183
|
+
openWatcher() {
|
184
|
+
index.writeTask(() => {
|
185
|
+
this.nanoDropdown.open = this.open;
|
186
|
+
this.connectedInput.setAttribute('aria-expanded', this.open.toString());
|
187
|
+
});
|
188
|
+
}
|
189
|
+
// State change watchers
|
190
|
+
async watchInputChange() {
|
191
|
+
let nanoInput;
|
192
|
+
if ((nanoInput = this.host.closest('nano-input'))) {
|
193
|
+
this.isNanoInput = true;
|
194
|
+
this.connectedInput = await nanoInput.getInputElement();
|
195
|
+
}
|
196
|
+
else if (this.input &&
|
197
|
+
typeof this.input === 'string' &&
|
198
|
+
(nanoInput = document.querySelector(this.input))) {
|
199
|
+
this.isNanoInput = false;
|
200
|
+
this.connectedInput = nanoInput;
|
201
|
+
}
|
202
|
+
else if (this.input instanceof HTMLElement) {
|
203
|
+
this.connectedInput = this.input;
|
204
|
+
}
|
205
|
+
}
|
206
|
+
manageSlotChangeListener() {
|
207
|
+
var _a;
|
208
|
+
if (!this.host)
|
209
|
+
return;
|
210
|
+
// we're not using `options` - setup new MO
|
211
|
+
if ((!this.options || !this.options.length) && !this.mo) {
|
212
|
+
{
|
213
|
+
const mo = (this.mo = new MutationObserver(() => this.processSlottedContent()));
|
214
|
+
mo.observe(this.host, { childList: true, subtree: true });
|
215
|
+
}
|
216
|
+
this.processSlottedContent();
|
217
|
+
return;
|
218
|
+
}
|
219
|
+
// we're using `options` - trash current MO
|
220
|
+
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) {
|
221
|
+
if (!!this.mo) {
|
222
|
+
this.mo.disconnect();
|
223
|
+
this.mo = undefined;
|
224
|
+
}
|
225
|
+
// add imperative `options`
|
226
|
+
index.writeTask(() => {
|
227
|
+
var _a;
|
228
|
+
this.allOptEles = this.options.flatMap((option, i) => {
|
229
|
+
if (option.value || option.label) {
|
230
|
+
const opt = Object.assign(document.createElement('nano-option'), {
|
231
|
+
label: option.label,
|
232
|
+
value: option.value,
|
233
|
+
ariaPosinset: i,
|
234
|
+
ariaSetsize: this.options.length,
|
235
|
+
selected: option.selected,
|
236
|
+
id: this.listId + '-option-' + i,
|
237
|
+
textContent: option.label ? option.label : option.value,
|
238
|
+
slot: 'internal-opts',
|
239
|
+
});
|
240
|
+
this.host.append(opt);
|
241
|
+
return opt;
|
242
|
+
}
|
243
|
+
});
|
244
|
+
if (((_a = this.connectedInput) === null || _a === void 0 ? void 0 : _a.value.length) && this.type !== 'select') {
|
245
|
+
this.inputChange();
|
246
|
+
}
|
247
|
+
else
|
248
|
+
this.actvOptEles = [...this.allOptEles];
|
249
|
+
});
|
250
|
+
}
|
251
|
+
// forceUpdate(this.host);
|
252
|
+
}
|
253
|
+
watchTypeChange() {
|
254
|
+
if (!this.connectedInput)
|
255
|
+
return;
|
256
|
+
let dwConfig = { closeOnSelect: false };
|
257
|
+
let autocompleteType = 'both';
|
258
|
+
let readonly = false;
|
259
|
+
switch (this.type) {
|
260
|
+
case 'selctMulti':
|
261
|
+
// dwConfig.closeOnSelect = false;
|
262
|
+
break;
|
263
|
+
case 'select':
|
264
|
+
autocompleteType = 'list';
|
265
|
+
readonly = true;
|
266
|
+
break;
|
267
|
+
}
|
268
|
+
if (!this.isNanoInput) {
|
269
|
+
dwConfig.tetherTo = this.connectedInput;
|
270
|
+
}
|
271
|
+
this.dropDownConfig = Object.assign(Object.assign({}, this.dropDownConfig), dwConfig);
|
272
|
+
this.connectedInput.setAttribute('aria-autocomplete', autocompleteType);
|
273
|
+
this.connectedInput.readOnly = readonly;
|
274
|
+
}
|
275
|
+
manageInputEvents(newInput, oldInput) {
|
276
|
+
var _a;
|
277
|
+
if (!!oldInput) {
|
278
|
+
const nanoInput = oldInput.closest('nano-input');
|
279
|
+
if (nanoInput) {
|
280
|
+
nanoInput.removeEventListener('nanoChange', this.inputChange);
|
281
|
+
}
|
282
|
+
oldInput.removeEventListener('change', this.inputChange);
|
283
|
+
oldInput.removeEventListener('click', this.inputClick);
|
284
|
+
oldInput.removeEventListener('keydown', this.inputKeydown);
|
285
|
+
oldInput.removeEventListener('input', this.inputChange);
|
286
|
+
this.inputLabel = null;
|
287
|
+
index.writeTask(() => {
|
288
|
+
oldInput.removeAttribute('role');
|
289
|
+
oldInput.removeAttribute('aria-expanded');
|
290
|
+
oldInput.removeAttribute('aria-controls');
|
291
|
+
oldInput.removeAttribute('aria-owns');
|
292
|
+
oldInput.removeAttribute('aria-haspopup');
|
293
|
+
oldInput.removeAttribute('aria-autocomplete');
|
294
|
+
oldInput.removeAttribute('autocomplete');
|
295
|
+
});
|
296
|
+
}
|
297
|
+
if (!!newInput) {
|
298
|
+
const nanoInput = newInput.closest('nano-input');
|
299
|
+
if (nanoInput) {
|
300
|
+
nanoInput.addEventListener('nanoChange', this.inputChange);
|
301
|
+
}
|
302
|
+
newInput.addEventListener('change', this.inputChange);
|
303
|
+
newInput.addEventListener('click', this.inputClick);
|
304
|
+
newInput.addEventListener('keydown', this.inputKeydown);
|
305
|
+
newInput.addEventListener('input', this.inputChange);
|
306
|
+
this.listId = this.host.id || this.listId;
|
307
|
+
this.inputLabel = ((_a = newInput === null || newInput === void 0 ? void 0 : newInput.labels) === null || _a === void 0 ? void 0 : _a.item(0)) || findLabel(newInput);
|
308
|
+
index.writeTask(() => {
|
309
|
+
this.host.id = this.listId;
|
310
|
+
newInput.setAttribute('role', 'combobox');
|
311
|
+
newInput.setAttribute('aria-expanded', 'false');
|
312
|
+
newInput.setAttribute('aria-controls', this.listId);
|
313
|
+
newInput.setAttribute('aria-owns', this.listId);
|
314
|
+
newInput.setAttribute('aria-haspopup', 'listbox');
|
315
|
+
newInput.setAttribute('autocomplete', 'off');
|
316
|
+
});
|
317
|
+
}
|
318
|
+
}
|
319
|
+
watchActvOptChange() {
|
320
|
+
var _a;
|
321
|
+
let c = 0;
|
322
|
+
const val = ((_a = this.connectedInput) === null || _a === void 0 ? void 0 : _a.value) || '';
|
323
|
+
const optIds = [];
|
324
|
+
index.writeTask(() => {
|
325
|
+
this.allOptEles.forEach((opt, i) => {
|
326
|
+
if (this.actvOptEles.includes(opt)) {
|
327
|
+
c++;
|
328
|
+
opt.setAttribute('aria-posinset', c + '');
|
329
|
+
opt.setAttribute('aria-setsize', this.actvOptEles.length + '');
|
330
|
+
opt.hidden = false;
|
331
|
+
this.isSelected(opt, val);
|
332
|
+
}
|
333
|
+
else {
|
334
|
+
opt.removeAttribute('aria-posinset');
|
335
|
+
opt.removeAttribute('aria-setsize');
|
336
|
+
opt.hidden = true;
|
337
|
+
opt.selected = false;
|
338
|
+
}
|
339
|
+
opt.id = this.listId + '-option-' + i;
|
340
|
+
optIds.push(opt.id);
|
341
|
+
});
|
342
|
+
this.optionIds = optIds;
|
343
|
+
});
|
344
|
+
}
|
345
|
+
manageCanOpen() {
|
346
|
+
if (this.actvOptEles.length || this.hasNoResult)
|
347
|
+
this.canOpen = true;
|
348
|
+
else
|
349
|
+
this.canOpen = false;
|
350
|
+
}
|
351
|
+
/**
|
352
|
+
* Opens the dropdown if it can, it should and there are items to display.
|
353
|
+
*/
|
354
|
+
manageDropdownDisplay() {
|
355
|
+
if (this.shouldOpen && this.canOpen && !this.disabled)
|
356
|
+
this.open = true;
|
357
|
+
if (!this.shouldOpen || !this.canOpen)
|
358
|
+
this.open = false;
|
359
|
+
}
|
360
|
+
fireActiveOptsEvent() {
|
361
|
+
this.nanoOptionsUpdated.emit(this.actvOptEles);
|
362
|
+
}
|
363
|
+
// Private logic
|
364
|
+
isSelected(opt, val) {
|
365
|
+
if (val === opt.value || this.selected.includes(opt.value)) {
|
366
|
+
opt.selected = true;
|
367
|
+
}
|
368
|
+
else
|
369
|
+
opt.selected = false;
|
370
|
+
}
|
371
|
+
get dropwdownOpen() {
|
372
|
+
if (!this.nanoDropdown || !this.open)
|
373
|
+
return false;
|
374
|
+
return true;
|
375
|
+
}
|
376
|
+
get exactMatch() {
|
377
|
+
return this.allOptEles.find((opt) => this.connectedInput.value === opt.value);
|
378
|
+
}
|
379
|
+
/** reflect value back to the connected input unless the event is cancelled */
|
380
|
+
changeInputValue(opt) {
|
381
|
+
var _a;
|
382
|
+
let nanoSelected;
|
383
|
+
if (this.selected.includes(opt.value)) {
|
384
|
+
// deselect option
|
385
|
+
this.selected = this.selected.filter((val) => val !== opt.value);
|
386
|
+
nanoSelected = this.nanoDeselect.emit(opt);
|
387
|
+
}
|
388
|
+
else {
|
389
|
+
// select new option
|
390
|
+
this.selected = [...this.selected];
|
391
|
+
nanoSelected = this.nanoSelect.emit(opt);
|
392
|
+
}
|
393
|
+
if (!nanoSelected.defaultPrevented) {
|
394
|
+
if (this.connectedInput)
|
395
|
+
this.connectedInput.value = opt.value;
|
396
|
+
const event = new window.Event('change');
|
397
|
+
(_a = this.connectedInput) === null || _a === void 0 ? void 0 : _a.dispatchEvent(event);
|
398
|
+
}
|
399
|
+
}
|
400
|
+
// this is for type="select" only.
|
401
|
+
// Filter options that start with text - aggregates letters (as opposed to getting the value from input)
|
402
|
+
setOptStartsWith() {
|
403
|
+
const attrFind = (toFind) => toFind.toLowerCase().substring(0, this.typeToSelect.length) ===
|
404
|
+
this.typeToSelect;
|
405
|
+
const foundEle = this.allOptEles.find((opt) => opt.value.trim().length > 0 &&
|
406
|
+
!opt.disabled &&
|
407
|
+
(attrFind(opt.textContent) ||
|
408
|
+
attrFind(opt.value) ||
|
409
|
+
attrFind(opt.label) ||
|
410
|
+
attrFind(opt.filterMeta)));
|
411
|
+
if (foundEle)
|
412
|
+
this.changeInputValue(foundEle);
|
413
|
+
}
|
414
|
+
// Event handlers
|
415
|
+
processSlottedContent() {
|
416
|
+
index$1.raf(() => {
|
417
|
+
var _a;
|
418
|
+
this.allOptEles = Array.from(this.host.querySelectorAll('nano-option'));
|
419
|
+
this.hasNoResult = !!this.host.querySelector('[slot="no-result"]');
|
420
|
+
if (((_a = this.connectedInput) === null || _a === void 0 ? void 0 : _a.value.length) && this.type !== 'select') {
|
421
|
+
this.inputChange();
|
422
|
+
}
|
423
|
+
else
|
424
|
+
this.actvOptEles = this.allOptEles;
|
425
|
+
});
|
426
|
+
}
|
427
|
+
// any changes to the connected input value will filter the list of active options
|
428
|
+
inputChange() {
|
429
|
+
if (this.disableFilter) {
|
430
|
+
this.actvOptEles = this.allOptEles;
|
431
|
+
return;
|
432
|
+
}
|
433
|
+
const val = this.connectedInput.value;
|
434
|
+
const valStr = val.trim().toLowerCase();
|
435
|
+
let exactMatch = false;
|
436
|
+
const activeEles = [];
|
437
|
+
const attrFind = (toFind) => toFind.toLowerCase().indexOf(valStr) > -1;
|
438
|
+
this.allOptEles.forEach((opt) => {
|
439
|
+
if ((val === opt.value || val === opt.label) &&
|
440
|
+
this.type !== 'selctMulti') {
|
441
|
+
opt.selected = true;
|
442
|
+
exactMatch = true;
|
443
|
+
}
|
444
|
+
else
|
445
|
+
this.isSelected(opt, val);
|
446
|
+
});
|
447
|
+
this.allOptEles.forEach((opt) => {
|
448
|
+
if (!valStr.length || exactMatch) {
|
449
|
+
activeEles.push(opt);
|
450
|
+
}
|
451
|
+
else if (opt.value.trim().length > 0 &&
|
452
|
+
!opt.disabled &&
|
453
|
+
(attrFind(opt.textContent) ||
|
454
|
+
attrFind(opt.value) ||
|
455
|
+
attrFind(opt.label) ||
|
456
|
+
attrFind(opt.filterMeta))) {
|
457
|
+
activeEles.push(opt);
|
458
|
+
}
|
459
|
+
});
|
460
|
+
this.isFiltered = valStr.length && !exactMatch;
|
461
|
+
this.actvOptEles = activeEles;
|
462
|
+
}
|
463
|
+
// Component lifecycle
|
464
|
+
connectedCallback() {
|
465
|
+
this.watchInputChange();
|
466
|
+
}
|
467
|
+
componentDidLoad() {
|
468
|
+
this.manageSlotChangeListener();
|
469
|
+
this.openWatcher();
|
470
|
+
}
|
471
|
+
componentDidRender() {
|
472
|
+
setTimeout(() => {
|
473
|
+
if (!this.connectedInput)
|
474
|
+
console.warn('no `nano-input` found. `nano-datalist` should be nested within an `nano-input` or linked via `input` prop', this.host);
|
475
|
+
}, 500);
|
476
|
+
}
|
477
|
+
render() {
|
478
|
+
return (index.h(index.Host, { role: "listbox", "aria-owns": this.optionIds.join(' '), "aria-label": "Select options from the list below" }, index.h("nano-dropdown", Object.assign({}, this.dropDownConfig, { ref: (el) => (this.nanoDropdown = el), dialogTitle: "Select options from the list below", class: {
|
479
|
+
dlist__dropdown: true,
|
480
|
+
'dlist--isfiltered': this.isFiltered,
|
481
|
+
}, onNanoAfterShow: this.handleShow, onNanoAfterHide: (_) => (this.open = false) }), index.h("nano-menu", { hidden: !this.actvOptEles.length, type: "listbox", label: this.inputLabel ? this.inputLabel.textContent : undefined, class: {
|
482
|
+
dlist__menu: true,
|
483
|
+
'dlist__menu--open': this.dropwdownOpen,
|
484
|
+
}, tabIndex: -1, onNanoSelect: this.optSelected, onKeyDown: this.optionKeyDown, ref: (el) => (this.listBox = el) }, index.h("slot", { name: "list-top" }), !this.options.length && index.h("slot", null), !!this.options.length && index.h("slot", { name: "internal-opts" }), index.h("slot", { name: "list-bottom" })), index.h("nano-menu", { type: "listbox", label: "No results found", hidden: !!this.actvOptEles.length, class: {
|
485
|
+
dlist__menu: true,
|
486
|
+
'dlist__menu--open': this.dropwdownOpen,
|
487
|
+
} }, index.h("slot", { name: "no-result" })), !!this.actvOptEles && (index.h("div", { "aria-live": "polite", role: "status", class: "dlist__status" }, this.actvOptEles.length, " result", this.actvOptEles.length > 1 ? 's' : '', " available.")))));
|
488
|
+
}
|
489
|
+
get host() { return index.getElement(this); }
|
490
|
+
static get watchers() { return {
|
491
|
+
"open": ["openWatcher"],
|
492
|
+
"input": ["watchInputChange"],
|
493
|
+
"options": ["manageSlotChangeListener"],
|
494
|
+
"type": ["watchTypeChange"],
|
495
|
+
"connectedInput": ["watchTypeChange", "manageInputEvents"],
|
496
|
+
"selected": ["watchActvOptChange"],
|
497
|
+
"actvOptEles": ["watchActvOptChange", "manageCanOpen", "fireActiveOptsEvent"],
|
498
|
+
"hasNoResult": ["manageCanOpen"],
|
499
|
+
"shouldOpen": ["manageDropdownDisplay"],
|
500
|
+
"canOpen": ["manageDropdownDisplay"]
|
501
|
+
}; }
|
502
|
+
};
|
503
|
+
DataList.style = datalistCss;
|
504
|
+
|
505
|
+
const menuCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--padding-start:var(--nano-spacing-medium, 16px);--padding-end:var(--nano-spacing-medium, 16px);--padding-top:var(--nano-spacing-small, 8px);--padding-bottom:var(--nano-spacing-small, 8px);--secondary-padding-top:0;--secondary-padding-bottom:0;--bg-color-hover:#f2f7f9;--bg-color-focus:#f2f7f9;--bg-color-selected:#f2f7f9;--color-hover:#007495;--color-selected:#007495;--color-focus:#007495;--focus-outline:none;--font-size:0.9em;display:block}.menu{font-size:var(--font-size, 0.9em);-ms-scroll-chaining:none;overscroll-behavior:none;min-width:var(--width);position:relative}.menu:focus{outline:none}::slotted(*:not(nano-nav-item):not(nano-option):not(hr):not(slot)){padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:block}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(*:not(nano-nav-item):not(nano-option):not(hr):not(slot)){padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}";
|
506
|
+
|
507
|
+
const CANSHADOW = !!document.head.attachShadow;
|
508
|
+
let Menu = class {
|
509
|
+
constructor(hostRef) {
|
510
|
+
index.registerInstance(this, hostRef);
|
511
|
+
this.nanoFocus = index.createEvent(this, "nanoFocus", 7);
|
512
|
+
this.nanoBlur = index.createEvent(this, "nanoBlur", 7);
|
513
|
+
this.nanoSelect = index.createEvent(this, "nanoSelect", 7);
|
514
|
+
this.ignoreMouseEvents = false;
|
515
|
+
this.typeToSelect = '';
|
516
|
+
this._hasFocus = false;
|
517
|
+
/** changes the role of the underlying control - sometimes required for semantics */
|
518
|
+
this.type = 'menu';
|
519
|
+
this.handleFocus = () => {
|
520
|
+
this.setActiveFocusItem(this.selectedItem || this.getItems[0]);
|
521
|
+
this._hasFocus = true;
|
522
|
+
this.nanoFocus.emit();
|
523
|
+
};
|
524
|
+
this.handleClick = (event) => {
|
525
|
+
const target = event.target;
|
526
|
+
const item = target.closest('nano-nav-item');
|
527
|
+
if (item && !item.disabled) {
|
528
|
+
this.nanoSelect.emit(item);
|
529
|
+
}
|
530
|
+
};
|
531
|
+
this.handleKeyDown = (event) => {
|
532
|
+
// When keying through the menu, if the mouse happens to be hovering over a menu item and the menu scrolls, the
|
533
|
+
// mouseout/mouseover event will fire causing the selection to be different than what the user expects. This gives
|
534
|
+
// us a way to temporarily ignore mouse events while the user is interacting with a keyboard.
|
535
|
+
clearTimeout(this.ignoreMouseTimeout);
|
536
|
+
this.ignoreMouseTimeout = setTimeout(() => (this.ignoreMouseEvents = false), 500);
|
537
|
+
this.ignoreMouseEvents = true;
|
538
|
+
// Make a selection when pressing enter
|
539
|
+
switch (event.key) {
|
540
|
+
case ' ':
|
541
|
+
if (this.activeItem)
|
542
|
+
this.activeItem.click();
|
543
|
+
break;
|
544
|
+
case 'ArrowDown':
|
545
|
+
case 'ArrowUp':
|
546
|
+
case 'PageDown':
|
547
|
+
case 'PageUp':
|
548
|
+
case 'Home':
|
549
|
+
case 'End':
|
550
|
+
const items = this.getItems;
|
551
|
+
const selectedItem = this.activeItem;
|
552
|
+
let index = items.indexOf(selectedItem);
|
553
|
+
if (items.length) {
|
554
|
+
event.preventDefault();
|
555
|
+
if (event.key === 'ArrowDown') {
|
556
|
+
index++;
|
557
|
+
}
|
558
|
+
else if (event.key === 'ArrowUp') {
|
559
|
+
index--;
|
560
|
+
}
|
561
|
+
else if (event.key === 'Home' || event.key === 'PageUp') {
|
562
|
+
index = 0;
|
563
|
+
}
|
564
|
+
else if (event.key === 'End' || event.key === 'PageDown') {
|
565
|
+
index = items.length - 1;
|
566
|
+
}
|
567
|
+
if (index < 0)
|
568
|
+
index = items.length - 1;
|
569
|
+
if (index > items.length - 1)
|
570
|
+
index = 0;
|
571
|
+
this.setActiveFocusItem(items[index]);
|
572
|
+
if (items[index])
|
573
|
+
items[index].scrollIntoView({ block: 'nearest' });
|
574
|
+
return;
|
575
|
+
}
|
576
|
+
break;
|
577
|
+
}
|
578
|
+
// Handle type-to-search behavior when non-control characters are entered
|
579
|
+
if (event.key === ' ' || /^[a-z0-9]+$/i.test(event.key)) {
|
580
|
+
clearTimeout(this.typeToSelectTimeout);
|
581
|
+
this.typeToSelectTimeout = setTimeout(() => (this.typeToSelect = ''), 750);
|
582
|
+
this.typeToSelect += event.key;
|
583
|
+
const items = this.getItems;
|
584
|
+
for (const item of items) {
|
585
|
+
const slot$1 = item.shadowRoot.querySelector('slot:not([name])');
|
586
|
+
const label = slot.getTextContent(slot$1).toLowerCase().trim();
|
587
|
+
if (label.substring(0, this.typeToSelect.length) === this.typeToSelect) {
|
588
|
+
this.setActiveFocusItem(item);
|
589
|
+
break;
|
590
|
+
}
|
591
|
+
}
|
592
|
+
}
|
593
|
+
};
|
594
|
+
this.handleMouseOver = (event) => {
|
595
|
+
const target = event.target;
|
596
|
+
const item = target.closest('nano-nav-item') || target.closest('nano-option');
|
597
|
+
if (item && !this.ignoreMouseEvents) {
|
598
|
+
this.setActiveFocusItem(item);
|
599
|
+
}
|
600
|
+
};
|
601
|
+
}
|
602
|
+
// Public API
|
603
|
+
/** get the focus state of the menu @readonly */
|
604
|
+
get hasFocus() {
|
605
|
+
return this._hasFocus;
|
606
|
+
}
|
607
|
+
// Public Methods
|
608
|
+
/** Sets focus on the menu. */
|
609
|
+
async setFocus() {
|
610
|
+
var _a;
|
611
|
+
if ((_a = this.menu) === null || _a === void 0 ? void 0 : _a.focus)
|
612
|
+
this.menu.focus({ preventScroll: true });
|
613
|
+
}
|
614
|
+
/** Removes focus from the menu. */
|
615
|
+
async removeFocus() {
|
616
|
+
var _a;
|
617
|
+
if ((_a = this.menu) === null || _a === void 0 ? void 0 : _a.blur)
|
618
|
+
this.menu.blur();
|
619
|
+
}
|
620
|
+
/** Sets the current active item */
|
621
|
+
async showActiveElement() {
|
622
|
+
if (this.selectedItem)
|
623
|
+
this.selectedItem.scrollIntoView({ block: 'nearest' });
|
624
|
+
}
|
625
|
+
/** Removes any active item's state */
|
626
|
+
async resetActiveItem() {
|
627
|
+
this.getItems
|
628
|
+
.filter((i) => i.tagName.toLowerCase() === 'nano-option')
|
629
|
+
.map((i) => i.setAttribute('tabindex', '-1'));
|
630
|
+
}
|
631
|
+
// Private methods
|
632
|
+
get getItems() {
|
633
|
+
let items;
|
634
|
+
let opened = this.el.querySelectorAll('nano-nav-item.secondary-open');
|
635
|
+
if (opened.length) {
|
636
|
+
const ctx = opened[opened.length - 1];
|
637
|
+
items = Array.from(ctx.querySelectorAll('nano-nav-item, nano-option'));
|
638
|
+
}
|
639
|
+
else {
|
640
|
+
items = dom.getDirectChildren(this.el, 'nano-nav-item, nano-option', 'slot');
|
641
|
+
}
|
642
|
+
return items.filter((el) => !el.disabled && !el.hidden);
|
643
|
+
}
|
644
|
+
get activeItem() {
|
645
|
+
const activeElement$1 = activeElement.getActiveElement();
|
646
|
+
return this.getItems.find((i) => i.getAttribute('tabindex') === '0' ||
|
647
|
+
i === activeElement$1 ||
|
648
|
+
i.classList.contains('has-focus'));
|
649
|
+
}
|
650
|
+
get selectedItem() {
|
651
|
+
const activeElement$1 = activeElement.getActiveElement();
|
652
|
+
return this.getItems.find((i) => i.selected || i === activeElement$1);
|
653
|
+
}
|
654
|
+
async setActiveFocusItem(item, focus = true) {
|
655
|
+
const items = this.getItems;
|
656
|
+
let activeItem = !item || item.disabled ? items.find((i) => i.selected) || items[0] : item;
|
657
|
+
items
|
658
|
+
.filter((i) => i.tagName.toLowerCase() === 'nano-option')
|
659
|
+
.map((i) => i.setAttribute('tabindex', i === activeItem ? '0' : '-1'));
|
660
|
+
if (!focus)
|
661
|
+
return;
|
662
|
+
if (activeItem) {
|
663
|
+
activeItem.setFocus
|
664
|
+
? activeItem.setFocus()
|
665
|
+
: activeItem.focus();
|
666
|
+
}
|
667
|
+
else
|
668
|
+
this.menu.focus();
|
669
|
+
}
|
670
|
+
// Event Handlers
|
671
|
+
handleBlur(e) {
|
672
|
+
if (!this.hasFocus)
|
673
|
+
return;
|
674
|
+
const kev = e;
|
675
|
+
let found;
|
676
|
+
if (kev.key) {
|
677
|
+
if (kev.key !== 'Tab')
|
678
|
+
return;
|
679
|
+
found =
|
680
|
+
activeElement.getActiveElement() &&
|
681
|
+
activeElement.getActiveElement().closest(this.el.tagName.toLowerCase()) === this.el;
|
682
|
+
}
|
683
|
+
else
|
684
|
+
found = !!e.composedPath().find((el) => el === this.el);
|
685
|
+
if (!found) {
|
686
|
+
this.resetActiveItem();
|
687
|
+
this._hasFocus = false;
|
688
|
+
this.nanoBlur.emit();
|
689
|
+
}
|
690
|
+
}
|
691
|
+
// Component Lifecycle
|
692
|
+
render() {
|
693
|
+
return (index.h(index.Host, { class: {
|
694
|
+
legacy: !CANSHADOW,
|
695
|
+
} }, index.h("div", { onClick: this.handleClick, onKeyDown: this.handleKeyDown, onMouseOver: this.handleMouseOver, onFocus: this.handleFocus, "aria-label": this.label ? this.label : undefined, role: this.type, ref: (el) => (this.menu = el), part: "base", class: {
|
696
|
+
menu: true,
|
697
|
+
['menu--' + this.type]: true,
|
698
|
+
'menu--has-focus': this.hasFocus,
|
699
|
+
}, tabIndex: -1 }, index.h("slot", null))));
|
700
|
+
}
|
701
|
+
get el() { return index.getElement(this); }
|
702
|
+
};
|
703
|
+
Menu.style = menuCss;
|
704
|
+
|
705
|
+
const optionCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--bg:none;--bg-selected:var(--nano-select-opt-bg, #f2f7f9);--bg-focus:var(--nano-color-base, var(--nano-color-primary-tint, #2689a5));--bg-disabled:none;--color:var(--input-text-color, var(--nano-input-text-color, #4a4a4a));--color-selected:var(--nano-color-base, var(--nano-color-primary, #007495));--color-focus:var(--nano-color-contrast, var(--nano-color-primary-contrast, #fff));--color-disabled:#b5aea7;--opt-icon-size:1.6em;display:block;color:var(--color);overflow:hidden;font-size:14px;font-size:clamp(12px, .9em, 16px)}:host(:focus){outline:none}.option{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%;background:var(--bg);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.option{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(:focus) .option:not(.option--disabled),:host .option.option--selected{outline:none;background:var(--bg-selected);color:var(--color-selected)}:host(:focus) .option:not(.option--disabled){background:var(--bg-focus);color:var(--color-focus)}.option.option--disabled{outline:none;color:var(--color-disabled);cursor:not-allowed;background:var(--bg-disabled)}.option.option--novalue{font-style:italic;opacity:0.7}.option__label{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.option__start{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.option__start ::slotted(nano-icon){font-size:var(--opt-icon-size)}.option__start ::slotted(:last-child){margin-right:0.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.option__start ::slotted(:last-child){margin-right:unset;-webkit-margin-end:0.5em;margin-inline-end:0.5em}}.option__end{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.option__end ::slotted(nano-icon){font-size:var(--opt-icon-size)}.option__end ::slotted(:first-child){margin-left:0.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.option__end ::slotted(:first-child){margin-left:unset;-webkit-margin-start:0.5em;margin-inline-start:0.5em;}}.option__check{visibility:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;left:0.6em;top:calc(50% - 0.6em);-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:0.9em}.option--selected:not(.option--novalue) .option__check{visibility:visible}";
|
706
|
+
|
707
|
+
let optIds = 0;
|
708
|
+
let Option = class {
|
709
|
+
constructor(hostRef) {
|
710
|
+
index.registerInstance(this, hostRef);
|
711
|
+
this.nanoSelect = index.createEvent(this, "nanoSelect", 7);
|
712
|
+
this.optId = `nano-option-${optIds++}`;
|
713
|
+
this.hasFocus = false;
|
714
|
+
// Public API
|
715
|
+
/**
|
716
|
+
* Value of the option
|
717
|
+
*/
|
718
|
+
this.value = '';
|
719
|
+
/**
|
720
|
+
* Label of the option
|
721
|
+
*/
|
722
|
+
this.label = '';
|
723
|
+
/**
|
724
|
+
* Whether this option is selected
|
725
|
+
*/
|
726
|
+
this.selected = false;
|
727
|
+
/**
|
728
|
+
* Whether this option should be disabled
|
729
|
+
*/
|
730
|
+
this.disabled = false;
|
731
|
+
/** You can add extra meta for this option. When displayed in a list, users
|
732
|
+
* search / filter via extra related terms. Another usecase is 'endonyms'
|
733
|
+
*/
|
734
|
+
this.filterMeta = '';
|
735
|
+
this.handleClick = throttle.debounce(this.handleClick.bind(this), 5);
|
736
|
+
}
|
737
|
+
valueChanged() {
|
738
|
+
if (!this.value || !this.value.length)
|
739
|
+
this.value = this.labelContent;
|
740
|
+
}
|
741
|
+
labelChanged() {
|
742
|
+
if (!this.label || !this.label.length)
|
743
|
+
this.label = this.labelContent.length ? this.labelContent : this.value;
|
744
|
+
}
|
745
|
+
// Event handlers
|
746
|
+
// stop scrolling on select
|
747
|
+
handleKeyDown(e) {
|
748
|
+
if (e.key !== ' ' && e.key !== 'Enter')
|
749
|
+
return;
|
750
|
+
e.preventDefault();
|
751
|
+
this.nanoSelect.emit(this.host);
|
752
|
+
}
|
753
|
+
handleClick() {
|
754
|
+
if (this.disabled)
|
755
|
+
return;
|
756
|
+
this.nanoSelect.emit(this.host);
|
757
|
+
}
|
758
|
+
// Private logic
|
759
|
+
get labelContent() {
|
760
|
+
return dom.getDirectChildren(this.host, '*:not([slot])', false)
|
761
|
+
.map((el) => el.textContent)
|
762
|
+
.join(' ')
|
763
|
+
.trim();
|
764
|
+
}
|
765
|
+
// Component lifecycle
|
766
|
+
componentWillLoad() {
|
767
|
+
this.valueChanged();
|
768
|
+
this.labelChanged();
|
769
|
+
}
|
770
|
+
render() {
|
771
|
+
return (index.h(index.Host, { role: "option", "aria-selected": this.selected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, index.h("div", { onMouseDown: this.handleClick, id: this.optId, class: {
|
772
|
+
option: true,
|
773
|
+
'option--selected': this.selected,
|
774
|
+
'option--disabled': this.disabled,
|
775
|
+
'option--novalue': !this.value,
|
776
|
+
} }, index.h("div", { part: "check-icon", class: "option__check" }, index.h("slot", { name: "check-icon" }, index.h("nano-icon", { name: "light/check", "aria-hidden": "true" }))), index.h("div", { part: "start", class: "option__start" }, index.h("slot", { name: "start" })), index.h("div", { part: "label", class: "option__label" }, index.h("slot", null, this.label || this.value)), index.h("div", { part: "end", class: "option__end" }, index.h("slot", { name: "end" })))));
|
777
|
+
}
|
778
|
+
get host() { return index.getElement(this); }
|
779
|
+
static get watchers() { return {
|
780
|
+
"value": ["valueChanged"],
|
781
|
+
"label": ["labelChanged"]
|
782
|
+
}; }
|
783
|
+
};
|
784
|
+
Option.style = optionCss;
|
785
|
+
|
786
|
+
exports.nano_datalist = DataList;
|
787
|
+
exports.nano_menu = Menu;
|
788
|
+
exports.nano_option = Option;
|
789
|
+
|
790
|
+
//# sourceMappingURL=nano-datalist_3.cjs.entry.js.map
|