@nanoporetech-digital/components 1.13.21 → 1.15.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 +653 -14
- package/README.md +3 -2
- package/dist/cjs/{algolia-data-771a61ea.js → algolia-data-a98ccf4f.js} +2 -2
- package/dist/cjs/algolia-data-a98ccf4f.js.map +1 -0
- package/dist/cjs/algoliasearch.umd-5dc661c5.js +12 -0
- package/dist/cjs/algoliasearch.umd-5dc661c5.js.map +1 -0
- package/dist/cjs/{component-store-c8440fd7.js → component-store-8d99743e.js} +2 -2
- package/dist/cjs/{component-store-c8440fd7.js.map → component-store-8d99743e.js.map} +1 -1
- package/dist/cjs/{css-shim-208c6c2d.js → css-shim-8983f2ba.js} +2 -2
- package/dist/cjs/{css-shim-208c6c2d.js.map → css-shim-8983f2ba.js.map} +1 -1
- package/dist/cjs/{dom-1b5e30a5.js → dom-28d4395c.js} +2 -2
- package/dist/cjs/{dom-1b5e30a5.js.map → dom-28d4395c.js.map} +1 -1
- package/dist/cjs/{global-befb7a64.js → global-aa92d50f.js} +5 -3
- package/dist/cjs/global-aa92d50f.js.map +1 -0
- package/dist/cjs/{utils-e9e37c80.js → index-e517a673.js} +1 -1
- package/dist/cjs/{utils-e9e37c80.js.map → index-e517a673.js.map} +1 -1
- package/dist/cjs/{index-43791691.js → index-f12395b8.js} +10 -3
- package/dist/cjs/index-f12395b8.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -4
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +7 -7
- package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
- package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-input.cjs.entry.js +5 -5
- package/dist/cjs/nano-algolia-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia.cjs.entry.js +5 -5
- package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js +12 -4
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +31 -16
- package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +33 -15
- package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-components.cjs.js +5 -5
- package/dist/cjs/nano-components.cjs.js.map +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js +45 -13
- package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-date-picker_2.cjs.entry.js +117 -72
- package/dist/cjs/nano-date-picker_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-details.cjs.entry.js +16 -10
- package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +5 -9
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +1 -1
- package/dist/cjs/nano-file-upload.cjs.entry.js +7 -14
- package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +6 -6
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +2 -2
- package/dist/cjs/nano-grid_3.cjs.entry.js +1 -1
- package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +3 -3
- 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.cjs.entry.js +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +12 -2
- package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-menu.cjs.entry.js +2 -2
- package/dist/cjs/nano-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-nav-item_2.cjs.entry.js +6 -6
- package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +11 -11
- package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +3 -3
- 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-select-option.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js +2 -2
- package/dist/cjs/nano-spinner.cjs.entry.js +2 -2
- package/dist/cjs/nano-sticker.cjs.entry.js +9 -9
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +6 -6
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab.cjs.entry.js +2 -2
- package/dist/cjs/nano-tooltip.cjs.entry.js +49 -35
- package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/{popover-eccc07bd.js → popover-9289f217.js} +32 -32
- package/dist/cjs/popover-9289f217.js.map +1 -0
- package/dist/cjs/{shadow-css-c5dce0c8.js → shadow-css-a482ec93.js} +2 -2
- package/dist/cjs/shadow-css-a482ec93.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/accordion/accordion.js +2 -2
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/alert/alert.css +3 -3
- package/dist/collection/components/alert/alert.helpers.js +1 -1
- package/dist/collection/components/alert/alert.helpers.js.map +1 -1
- package/dist/collection/components/alert/alert.js +2 -2
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/algolia/algolia-data.js.map +1 -1
- package/dist/collection/components/algolia/algolia-filter.js +3 -3
- package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
- package/dist/collection/components/algolia/algolia-input.js +7 -7
- package/dist/collection/components/algolia/algolia-input.js.map +1 -1
- package/dist/collection/components/algolia/algolia-results.js +1 -1
- package/dist/collection/components/algolia/algolia.js +8 -8
- package/dist/collection/components/algolia/algolia.js.map +1 -1
- package/dist/collection/components/aspect-ratio/aspect-ratio.js +9 -1
- package/dist/collection/components/aspect-ratio/aspect-ratio.js.map +1 -1
- package/dist/collection/components/checkbox/__tests__/__fixtures__/checkbox-templates.js +117 -0
- package/dist/collection/components/checkbox/__tests__/__fixtures__/checkbox-templates.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox-group.css +3 -3
- package/dist/collection/components/checkbox/checkbox-group.js +39 -26
- package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +13 -2
- package/dist/collection/components/checkbox/checkbox.js +63 -28
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/date-input/date-input.css +2 -4
- package/dist/collection/components/date-input/date-input.js +81 -29
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.css +15 -4
- package/dist/collection/components/date-picker/date-picker.js +45 -17
- package/dist/collection/components/date-picker/date-picker.js.map +1 -1
- package/dist/collection/components/details/details.css +3 -3
- package/dist/collection/components/details/details.js +14 -8
- package/dist/collection/components/details/details.js.map +1 -1
- package/dist/collection/components/dialog/dialog.css +2 -3
- package/dist/collection/components/dialog/dialog.js +6 -10
- package/dist/collection/components/dialog/dialog.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +134 -85
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload-interface.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload.css +9 -17
- package/dist/collection/components/file-upload/file-upload.js +17 -20
- package/dist/collection/components/file-upload/file-upload.js.map +1 -1
- package/dist/collection/components/global-nav/global-nav.css +2 -2
- package/dist/collection/components/global-nav/global-nav.js +5 -5
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/global-search-results/global-search-results.css +3 -3
- package/dist/collection/components/grid/grid-item.js +1 -1
- package/dist/collection/components/grid/grid.js +1 -1
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/hero/hero.js +1 -1
- package/dist/collection/components/hero/hero.js.map +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/icon-button/icon-button.css +2 -2
- package/dist/collection/components/input/input.css +9 -11
- package/dist/collection/components/input/input.js +26 -7
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/menu/menu.css +7 -7
- package/dist/collection/components/menu/menu.js +1 -1
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/menu-drawer/menu-drawer.js +1 -1
- package/dist/collection/components/menu-drawer/menu-drawer.js.map +1 -1
- 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/range/range.css +4 -4
- package/dist/collection/components/range/range.js +5 -5
- package/dist/collection/components/range/range.js.map +1 -1
- package/dist/collection/components/rating/rating.js +1 -1
- package/dist/collection/components/rating/rating.js.map +1 -1
- package/dist/collection/components/resize-observe/resize-observe.js +2 -2
- package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
- package/dist/collection/components/select/select.css +4 -4
- package/dist/collection/components/select/select.js +6 -6
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/slides/slides.css +2 -2
- package/dist/collection/components/slides/slides.js +7 -7
- package/dist/collection/components/spinner/spinner.css +2 -2
- package/dist/collection/components/sticky/sticker.js +1 -1
- package/dist/collection/components/sticky/sticker.js.map +1 -1
- package/dist/collection/components/tabs/tab-group.css +6 -6
- package/dist/collection/components/tabs/tab-group.js +3 -3
- package/dist/collection/components/tabs/tab-group.js.map +1 -1
- package/dist/collection/components/tabs/tab.css +2 -2
- package/dist/collection/components/tooltip/tooltip.css +15 -13
- package/dist/collection/components/tooltip/tooltip.js +50 -34
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/global/script/global.js +4 -2
- package/dist/collection/global/script/global.js.map +1 -1
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/gesture/swipe-back.js +1 -1
- package/dist/collection/utils/gesture/swipe-back.js.map +1 -1
- package/dist/collection/utils/{utils.js → index.js} +1 -1
- package/dist/collection/utils/{utils.js.map → index.js.map} +1 -1
- package/dist/collection/utils/store/component-store.js +1 -1
- package/dist/collection/utils/store/component-store.js.map +1 -1
- package/dist/collection/utils/testing/index.js +242 -0
- package/dist/collection/utils/testing/index.js.map +1 -0
- package/dist/custom-elements/index.js +374 -228
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/{algolia-data-a84aeef1.js → algolia-data-b31a9800.js} +2 -2
- package/dist/esm/algolia-data-b31a9800.js.map +1 -0
- package/dist/esm/algoliasearch.umd-7ecbe0e9.js +10 -0
- package/dist/esm/algoliasearch.umd-7ecbe0e9.js.map +1 -0
- package/dist/esm/{component-store-182d1931.js → component-store-93172454.js} +2 -2
- package/dist/esm/{component-store-182d1931.js.map → component-store-93172454.js.map} +1 -1
- package/dist/esm/{css-shim-f12af614.js → css-shim-4e602522.js} +2 -2
- package/dist/esm/{css-shim-f12af614.js.map → css-shim-4e602522.js.map} +1 -1
- package/dist/esm/{dom-2f25dd5a.js → dom-acc01cc2.js} +2 -2
- package/dist/esm/{dom-2f25dd5a.js.map → dom-acc01cc2.js.map} +1 -1
- package/dist/esm/{global-c85d24a2.js → global-118ae701.js} +5 -3
- package/dist/esm/global-118ae701.js.map +1 -0
- package/dist/esm/{utils-fd1ada22.js → index-269c88a9.js} +1 -1
- package/dist/esm/{utils-fd1ada22.js.map → index-269c88a9.js.map} +1 -1
- package/dist/esm/{index-20becda2.js → index-912ef959.js} +10 -3
- package/dist/esm/index-912ef959.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +5 -5
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/nano-accordion.entry.js +1 -1
- package/dist/esm/nano-accordion.entry.js.map +1 -1
- package/dist/esm/nano-alert.entry.js +3 -3
- package/dist/esm/nano-alert.entry.js.map +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +3 -3
- package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm/nano-algolia-input.entry.js +5 -5
- package/dist/esm/nano-algolia-input.entry.js.map +1 -1
- package/dist/esm/nano-algolia-pagination.entry.js +2 -2
- package/dist/esm/nano-algolia-results.entry.js +2 -2
- package/dist/esm/nano-algolia.entry.js +5 -5
- package/dist/esm/nano-algolia.entry.js.map +1 -1
- package/dist/esm/nano-aspect-ratio.entry.js +12 -4
- package/dist/esm/nano-aspect-ratio.entry.js.map +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +31 -16
- package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm/nano-checkbox.entry.js +33 -15
- package/dist/esm/nano-checkbox.entry.js.map +1 -1
- package/dist/esm/nano-components.js +5 -5
- package/dist/esm/nano-components.js.map +1 -1
- package/dist/esm/nano-date-input.entry.js +45 -13
- package/dist/esm/nano-date-input.entry.js.map +1 -1
- package/dist/esm/nano-date-picker_2.entry.js +116 -71
- package/dist/esm/nano-date-picker_2.entry.js.map +1 -1
- package/dist/esm/nano-details.entry.js +15 -9
- package/dist/esm/nano-details.entry.js.map +1 -1
- package/dist/esm/nano-dialog.entry.js +5 -9
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +1 -1
- package/dist/esm/nano-file-upload.entry.js +7 -14
- package/dist/esm/nano-file-upload.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +5 -5
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +2 -2
- package/dist/esm/nano-grid_3.entry.js +1 -1
- package/dist/esm/nano-grid_3.entry.js.map +1 -1
- package/dist/esm/nano-hero.entry.js +2 -2
- 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.entry.js +1 -1
- package/dist/esm/nano-input.entry.js +12 -2
- package/dist/esm/nano-input.entry.js.map +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +1 -1
- package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm/nano-menu.entry.js +2 -2
- package/dist/esm/nano-menu.entry.js.map +1 -1
- package/dist/esm/nano-nav-item_2.entry.js +4 -4
- package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +3 -3
- 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-select-option.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js +1 -1
- package/dist/esm/nano-slides.entry.js +2 -2
- package/dist/esm/nano-spinner.entry.js +2 -2
- package/dist/esm/nano-sticker.entry.js +2 -2
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-content.entry.js +1 -1
- package/dist/esm/nano-tab-group.entry.js +4 -4
- package/dist/esm/nano-tab-group.entry.js.map +1 -1
- package/dist/esm/nano-tab.entry.js +2 -2
- package/dist/esm/nano-tooltip.entry.js +49 -35
- package/dist/esm/nano-tooltip.entry.js.map +1 -1
- package/dist/esm/{popover-05f61b5f.js → popover-a57d8413.js} +32 -32
- package/dist/esm/popover-a57d8413.js.map +1 -0
- package/dist/esm/{shadow-css-70953e54.js → shadow-css-460f0f5c.js} +2 -2
- package/dist/esm/shadow-css-460f0f5c.js.map +1 -0
- package/dist/esm-es5/{algolia-data-a84aeef1.js → algolia-data-b31a9800.js} +2 -2
- package/dist/esm-es5/algolia-data-b31a9800.js.map +1 -0
- package/dist/esm-es5/algoliasearch.umd-7ecbe0e9.js +4 -0
- package/dist/esm-es5/algoliasearch.umd-7ecbe0e9.js.map +1 -0
- package/dist/esm-es5/{component-store-182d1931.js → component-store-93172454.js} +2 -2
- package/dist/esm-es5/{component-store-182d1931.js.map → component-store-93172454.js.map} +1 -1
- package/dist/esm-es5/{css-shim-f12af614.js → css-shim-4e602522.js} +1 -1
- package/dist/esm-es5/{css-shim-f12af614.js.map → css-shim-4e602522.js.map} +1 -1
- package/dist/esm-es5/{dom-2f25dd5a.js → dom-acc01cc2.js} +1 -1
- package/dist/esm-es5/{dom-2f25dd5a.js.map → dom-acc01cc2.js.map} +1 -1
- package/dist/esm-es5/{global-c85d24a2.js → global-118ae701.js} +2 -2
- package/dist/esm-es5/global-118ae701.js.map +1 -0
- package/dist/esm-es5/{utils-fd1ada22.js → index-269c88a9.js} +1 -1
- package/dist/esm-es5/{utils-fd1ada22.js.map → index-269c88a9.js.map} +1 -1
- package/dist/esm-es5/index-912ef959.js +2 -0
- package/dist/esm-es5/index-912ef959.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/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-input.entry.js.map +1 -1
- package/dist/esm-es5/nano-algolia-pagination.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-results.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-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_2.entry.js +1 -1
- package/dist/esm-es5/nano-date-picker_2.entry.js.map +1 -1
- 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-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 +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.entry.js +1 -1
- package/dist/esm-es5/nano-input.entry.js +1 -1
- 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-menu.entry.js +1 -1
- package/dist/esm-es5/nano-menu.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 +1 -1
- package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
- package/dist/esm-es5/nano-select-option.entry.js +1 -1
- package/dist/esm-es5/nano-slide.entry.js +1 -1
- package/dist/esm-es5/nano-slides.entry.js +2 -2
- package/dist/esm-es5/nano-spinner.entry.js +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-group.entry.js +1 -1
- package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
- package/dist/esm-es5/nano-tab.entry.js +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-a57d8413.js +2 -0
- package/dist/{esm/popover-05f61b5f.js.map → esm-es5/popover-a57d8413.js.map} +1 -1
- package/dist/esm-es5/{shadow-css-70953e54.js → shadow-css-460f0f5c.js} +1 -1
- package/dist/esm-es5/shadow-css-460f0f5c.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.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/nano-components.js +1 -1
- package/dist/nano-components/{p-c8ff45ab.system.entry.js → p-007c6041.system.entry.js} +2 -2
- package/dist/nano-components/{p-c8ff45ab.system.entry.js.map → p-007c6041.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-1ce90ea4.entry.js → p-02177814.entry.js} +2 -2
- package/dist/nano-components/p-02177814.entry.js.map +1 -0
- package/dist/nano-components/{p-9b9ca075.system.entry.js → p-046af455.system.entry.js} +2 -2
- package/dist/nano-components/p-046af455.system.entry.js.map +1 -0
- package/dist/nano-components/p-05c062ae.js +4 -0
- package/dist/nano-components/p-05c062ae.js.map +1 -0
- package/dist/nano-components/{p-4365edc6.js → p-0c9eb057.js} +1 -1
- package/dist/nano-components/{p-4365edc6.js.map → p-0c9eb057.js.map} +1 -1
- package/dist/nano-components/{p-dce1f547.entry.js → p-104a9d64.entry.js} +2 -2
- package/dist/nano-components/p-104a9d64.entry.js.map +1 -0
- package/dist/nano-components/{p-8611e764.system.entry.js → p-10f24f67.system.entry.js} +2 -2
- package/dist/nano-components/{p-8611e764.system.entry.js.map → p-10f24f67.system.entry.js.map} +0 -0
- package/dist/nano-components/p-1477b91d.system.js +2 -0
- package/dist/nano-components/p-1477b91d.system.js.map +1 -0
- package/dist/nano-components/{p-461c539f.system.entry.js → p-1c7614c4.system.entry.js} +2 -2
- package/dist/nano-components/p-1c7614c4.system.entry.js.map +1 -0
- package/dist/nano-components/{p-8a41ccd9.system.entry.js → p-1d16e897.system.entry.js} +2 -2
- package/dist/nano-components/{p-8a41ccd9.system.entry.js.map → p-1d16e897.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-4042379b.system.entry.js → p-21a6f295.system.entry.js} +2 -2
- package/dist/nano-components/p-21a6f295.system.entry.js.map +1 -0
- package/dist/nano-components/{p-9a456956.system.js → p-2671d998.system.js} +2 -2
- package/dist/nano-components/p-2671d998.system.js.map +1 -0
- package/dist/nano-components/{p-7367dfd5.system.entry.js → p-273b19b0.system.entry.js} +2 -2
- package/dist/nano-components/{p-7367dfd5.system.entry.js.map → p-273b19b0.system.entry.js.map} +0 -0
- package/dist/nano-components/p-28123e6e.entry.js +2 -0
- package/dist/nano-components/p-28123e6e.entry.js.map +1 -0
- package/dist/nano-components/{p-7b3de191.entry.js → p-2ae39fa1.entry.js} +2 -2
- package/dist/nano-components/p-2ae39fa1.entry.js.map +1 -0
- package/dist/nano-components/{p-47d2a49e.system.js → p-2d0b8da6.system.js} +1 -1
- package/dist/nano-components/{p-47d2a49e.system.js.map → p-2d0b8da6.system.js.map} +1 -1
- package/dist/nano-components/{p-6a9fe61f.system.entry.js → p-2edaf0eb.system.entry.js} +3 -3
- package/dist/nano-components/{p-6a9fe61f.system.entry.js.map → p-2edaf0eb.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-be430309.system.entry.js → p-2f876f68.system.entry.js} +2 -2
- package/dist/nano-components/{p-be430309.system.entry.js.map → p-2f876f68.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-e1429ff0.system.entry.js → p-305ba54b.system.entry.js} +2 -2
- package/dist/nano-components/p-305ba54b.system.entry.js.map +1 -0
- package/dist/nano-components/{p-e142f6b6.system.entry.js → p-30a22cd0.system.entry.js} +2 -2
- package/dist/nano-components/p-30a22cd0.system.entry.js.map +1 -0
- package/dist/nano-components/{p-a897cfae.system.entry.js → p-31c52d0a.system.entry.js} +2 -2
- package/dist/nano-components/p-31c52d0a.system.entry.js.map +1 -0
- package/dist/nano-components/{p-f578998d.system.entry.js → p-325f32b3.system.entry.js} +2 -2
- package/dist/nano-components/p-325f32b3.system.entry.js.map +1 -0
- package/dist/nano-components/{p-bc09eba8.entry.js → p-3b2ea5fd.entry.js} +2 -2
- package/dist/nano-components/p-3b2ea5fd.entry.js.map +1 -0
- package/dist/nano-components/{p-0283a2ec.js → p-4370f8ae.js} +2 -2
- package/dist/nano-components/p-4370f8ae.js.map +1 -0
- package/dist/nano-components/{p-d7eb8c22.system.js → p-4647a31f.system.js} +2 -2
- package/dist/nano-components/{p-d7eb8c22.system.js.map → p-4647a31f.system.js.map} +1 -1
- package/dist/nano-components/{p-79e11525.system.entry.js → p-491096f0.system.entry.js} +2 -2
- package/dist/nano-components/p-491096f0.system.entry.js.map +1 -0
- package/dist/nano-components/{p-fb8aa0a7.system.entry.js → p-4e21bfe1.system.entry.js} +2 -2
- package/dist/nano-components/{p-fb8aa0a7.system.entry.js.map → p-4e21bfe1.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-847ce50c.entry.js → p-4fa0b560.entry.js} +2 -2
- package/dist/nano-components/{p-847ce50c.entry.js.map → p-4fa0b560.entry.js.map} +0 -0
- package/dist/nano-components/{p-1bd92497.system.entry.js → p-4fbc3c8b.system.entry.js} +2 -2
- package/dist/nano-components/{p-1bd92497.system.entry.js.map → p-4fbc3c8b.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-5198e4c6.system.js → p-508484f8.system.js} +2 -2
- package/dist/nano-components/p-508484f8.system.js.map +1 -0
- package/dist/nano-components/p-5672ebbb.system.entry.js +2 -0
- package/dist/nano-components/p-5672ebbb.system.entry.js.map +1 -0
- package/dist/nano-components/{p-405d92a0.entry.js → p-574143b5.entry.js} +2 -2
- package/dist/nano-components/{p-405d92a0.entry.js.map → p-574143b5.entry.js.map} +0 -0
- package/dist/nano-components/{p-346f0d8c.system.entry.js → p-57434dc5.system.entry.js} +2 -2
- package/dist/nano-components/{p-346f0d8c.system.entry.js.map → p-57434dc5.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-7b94cd1c.entry.js → p-574f1393.entry.js} +2 -2
- package/dist/nano-components/p-574f1393.entry.js.map +1 -0
- package/dist/nano-components/{p-6b22f5db.entry.js → p-580eac05.entry.js} +2 -2
- package/dist/nano-components/p-580eac05.entry.js.map +1 -0
- package/dist/nano-components/{p-fa884269.entry.js → p-59aba360.entry.js} +2 -2
- package/dist/nano-components/{p-fa884269.entry.js.map → p-59aba360.entry.js.map} +0 -0
- package/dist/nano-components/{p-e886b71e.system.js → p-698a8ab3.system.js} +2 -2
- package/dist/nano-components/p-698a8ab3.system.js.map +1 -0
- package/dist/nano-components/{p-6ba91d36.entry.js → p-6a3eee01.entry.js} +2 -2
- package/dist/nano-components/p-6a3eee01.entry.js.map +1 -0
- package/dist/nano-components/{p-1ed74370.entry.js → p-6aab52a0.entry.js} +2 -2
- package/dist/nano-components/p-6aab52a0.entry.js.map +1 -0
- package/dist/nano-components/{p-e5a19e7f.entry.js → p-6dc59ae8.entry.js} +2 -2
- package/dist/nano-components/{p-e5a19e7f.entry.js.map → p-6dc59ae8.entry.js.map} +0 -0
- package/dist/nano-components/{p-c171b273.entry.js → p-6eba639a.entry.js} +3 -3
- package/dist/nano-components/{p-c171b273.entry.js.map → p-6eba639a.entry.js.map} +0 -0
- package/dist/nano-components/{p-4739c706.system.entry.js → p-73d969d0.system.entry.js} +2 -2
- package/dist/nano-components/{p-4739c706.system.entry.js.map → p-73d969d0.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-a50ca06f.system.entry.js → p-7dc79f13.system.entry.js} +2 -2
- package/dist/nano-components/{p-a50ca06f.system.entry.js.map → p-7dc79f13.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-ba59977d.entry.js → p-7df31b1c.entry.js} +2 -2
- package/dist/nano-components/{p-ba59977d.entry.js.map → p-7df31b1c.entry.js.map} +0 -0
- package/dist/nano-components/{p-60b2ba81.system.entry.js → p-7e208086.system.entry.js} +2 -2
- package/dist/nano-components/p-7e208086.system.entry.js.map +1 -0
- package/dist/nano-components/{p-63cc5e0d.system.entry.js → p-7e4129b4.system.entry.js} +2 -2
- package/dist/nano-components/{p-63cc5e0d.system.entry.js.map → p-7e4129b4.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-7fdff708.entry.js → p-7e68796f.entry.js} +2 -2
- package/dist/nano-components/p-7e68796f.entry.js.map +1 -0
- package/dist/nano-components/{p-027c5ed7.entry.js → p-81d7fd45.entry.js} +2 -2
- package/dist/nano-components/{p-027c5ed7.entry.js.map → p-81d7fd45.entry.js.map} +0 -0
- package/dist/nano-components/{p-d795cbd4.entry.js → p-82571543.entry.js} +2 -2
- package/dist/nano-components/p-82571543.entry.js.map +1 -0
- package/dist/nano-components/{p-7a0e9c6f.system.entry.js → p-844a1134.system.entry.js} +2 -2
- package/dist/nano-components/{p-7a0e9c6f.system.entry.js.map → p-844a1134.system.entry.js.map} +0 -0
- package/dist/nano-components/p-8535a942.entry.js +2 -0
- package/dist/nano-components/p-8535a942.entry.js.map +1 -0
- package/dist/nano-components/{p-c6796f75.entry.js → p-8c1d85ae.entry.js} +2 -2
- package/dist/nano-components/p-8c1d85ae.entry.js.map +1 -0
- package/dist/nano-components/{p-b6f5e5ef.system.js → p-8d24287e.system.js} +1 -1
- package/dist/nano-components/{p-b6f5e5ef.system.js.map → p-8d24287e.system.js.map} +1 -1
- package/dist/nano-components/{p-20ad4e90.system.entry.js → p-8ed6acea.system.entry.js} +2 -2
- package/dist/nano-components/{p-20ad4e90.system.entry.js.map → p-8ed6acea.system.entry.js.map} +0 -0
- package/dist/nano-components/p-9164e5e2.system.entry.js +2 -0
- package/dist/nano-components/p-9164e5e2.system.entry.js.map +1 -0
- package/dist/nano-components/{p-9920e725.system.js → p-9348c301.system.js} +1 -1
- package/dist/nano-components/p-9348c301.system.js.map +1 -0
- package/dist/nano-components/p-9371d81b.system.entry.js +2 -0
- package/dist/nano-components/p-9371d81b.system.entry.js.map +1 -0
- package/dist/nano-components/{p-89a5c54a.system.js → p-94f03788.system.js} +1 -1
- package/dist/nano-components/{p-89a5c54a.system.js.map → p-94f03788.system.js.map} +1 -1
- package/dist/nano-components/{p-fa926d02.system.entry.js → p-95a4c3f2.system.entry.js} +2 -2
- package/dist/nano-components/p-95a4c3f2.system.entry.js.map +1 -0
- package/dist/nano-components/p-96ba0d00.entry.js +2 -0
- package/dist/nano-components/p-96ba0d00.entry.js.map +1 -0
- package/dist/nano-components/p-99637978.entry.js +2 -0
- package/dist/nano-components/p-99637978.entry.js.map +1 -0
- package/dist/nano-components/{p-f5f76780.entry.js → p-9ccd832b.entry.js} +2 -2
- package/dist/nano-components/p-9ccd832b.entry.js.map +1 -0
- package/dist/nano-components/{p-e1fd68eb.js → p-a1680208.js} +2 -2
- package/dist/nano-components/{p-e1fd68eb.js.map → p-a1680208.js.map} +1 -1
- package/dist/nano-components/{p-fb7ae92c.entry.js → p-a53a193c.entry.js} +2 -2
- package/dist/nano-components/p-a53a193c.entry.js.map +1 -0
- package/dist/nano-components/p-a7ac7964.system.entry.js +2 -0
- package/dist/nano-components/p-a7ac7964.system.entry.js.map +1 -0
- package/dist/nano-components/{p-ec01a0ad.system.entry.js → p-aadd8c31.system.entry.js} +2 -2
- package/dist/nano-components/p-aadd8c31.system.entry.js.map +1 -0
- package/dist/nano-components/p-ab666582.entry.js +2 -0
- package/dist/nano-components/p-ab666582.entry.js.map +1 -0
- package/dist/nano-components/p-acd5d0f0.system.entry.js +2 -0
- package/dist/nano-components/p-acd5d0f0.system.entry.js.map +1 -0
- package/dist/nano-components/p-af9f6453.system.js +2 -0
- package/dist/nano-components/p-af9f6453.system.js.map +1 -0
- package/dist/nano-components/p-b1d3ab54.system.entry.js +2 -0
- package/dist/nano-components/p-b1d3ab54.system.entry.js.map +1 -0
- package/dist/nano-components/{p-27520572.entry.js → p-b3131821.entry.js} +2 -2
- package/dist/nano-components/{p-27520572.entry.js.map → p-b3131821.entry.js.map} +0 -0
- package/dist/nano-components/{p-e24d3e8a.entry.js → p-b7a58722.entry.js} +2 -2
- package/dist/nano-components/p-b7a58722.entry.js.map +1 -0
- package/dist/nano-components/p-bb0619e6.js +2 -0
- package/dist/nano-components/p-bb0619e6.js.map +1 -0
- package/dist/nano-components/{p-d0c501a0.entry.js → p-c3f861c5.entry.js} +2 -2
- package/dist/nano-components/{p-d0c501a0.entry.js.map → p-c3f861c5.entry.js.map} +1 -1
- package/dist/nano-components/{p-21f484a3.system.entry.js → p-c655e010.system.entry.js} +2 -2
- package/dist/nano-components/{p-21f484a3.system.entry.js.map → p-c655e010.system.entry.js.map} +1 -1
- package/dist/nano-components/p-c72b22be.entry.js +2 -0
- package/dist/nano-components/p-c72b22be.entry.js.map +1 -0
- package/dist/nano-components/p-d112948c.js +2 -0
- package/dist/nano-components/p-d112948c.js.map +1 -0
- package/dist/nano-components/{p-09b702fb.entry.js → p-d250987a.entry.js} +2 -2
- package/dist/nano-components/{p-09b702fb.entry.js.map → p-d250987a.entry.js.map} +0 -0
- package/dist/nano-components/p-d393d10a.system.entry.js +2 -0
- package/dist/nano-components/p-d393d10a.system.entry.js.map +1 -0
- package/dist/nano-components/p-db271541.entry.js +2 -0
- package/dist/nano-components/p-db271541.entry.js.map +1 -0
- package/dist/nano-components/p-dccd86ec.system.js +4 -0
- package/dist/nano-components/p-dccd86ec.system.js.map +1 -0
- package/dist/nano-components/p-e0cc37fb.entry.js +2 -0
- package/dist/nano-components/{p-2e1f6c4a.entry.js.map → p-e0cc37fb.entry.js.map} +1 -1
- package/dist/nano-components/{p-76bf0452.system.entry.js → p-e28536b4.system.entry.js} +2 -2
- package/dist/nano-components/p-e28536b4.system.entry.js.map +1 -0
- package/dist/nano-components/{p-acfe1b68.entry.js → p-ebf34764.entry.js} +2 -2
- package/dist/nano-components/{p-acfe1b68.entry.js.map → p-ebf34764.entry.js.map} +0 -0
- package/dist/nano-components/{p-e33dd8b9.js → p-ed174626.js} +1 -1
- package/dist/nano-components/p-ed174626.js.map +1 -0
- package/dist/nano-components/{p-c930d4f5.js → p-ed2efbeb.js} +1 -1
- package/dist/nano-components/{p-c930d4f5.js.map → p-ed2efbeb.js.map} +1 -1
- package/dist/nano-components/p-edddeaae.system.js +2 -0
- package/dist/nano-components/p-edddeaae.system.js.map +1 -0
- package/dist/nano-components/p-ef5d9308.entry.js +2 -0
- package/dist/nano-components/p-ef5d9308.entry.js.map +1 -0
- package/dist/nano-components/p-f234e064.system.entry.js +2 -0
- package/dist/nano-components/p-f234e064.system.entry.js.map +1 -0
- package/dist/nano-components/{p-507490fc.system.entry.js → p-f27c9429.system.entry.js} +2 -2
- package/dist/nano-components/{p-507490fc.system.entry.js.map → p-f27c9429.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-372ce425.entry.js → p-f3688bce.entry.js} +2 -2
- package/dist/nano-components/{p-372ce425.entry.js.map → p-f3688bce.entry.js.map} +0 -0
- package/dist/nano-components/{p-35eb8352.system.entry.js → p-f86db7c0.system.entry.js} +2 -2
- package/dist/nano-components/{p-35eb8352.system.entry.js.map → p-f86db7c0.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-6747f517.system.entry.js → p-fa86645d.system.entry.js} +2 -2
- package/dist/nano-components/p-fa86645d.system.entry.js.map +1 -0
- package/dist/nano-components/{p-9c26b459.js → p-fd0fca23.js} +1 -1
- package/dist/nano-components/{p-9c26b459.js.map → p-fd0fca23.js.map} +1 -1
- package/dist/nano-components/p-fdfa03d7.entry.js +2 -0
- package/dist/nano-components/p-fdfa03d7.entry.js.map +1 -0
- package/dist/nano-components/p-ff2ff5b0.js +2 -0
- package/dist/nano-components/p-ff2ff5b0.js.map +1 -0
- package/dist/nano-components/p-ff5890b4.entry.js +2 -0
- package/dist/nano-components/p-ff5890b4.entry.js.map +1 -0
- package/dist/nano-components/{p-23e9f09e.entry.js → p-ffab923c.entry.js} +2 -2
- package/dist/nano-components/p-ffab923c.entry.js.map +1 -0
- package/dist/themes/nanopore.css +1 -1
- package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +1 -1
- package/dist/types/components/checkbox/__tests__/__fixtures__/checkbox-templates.d.ts +8 -0
- package/dist/types/components/checkbox/checkbox-group.d.ts +4 -2
- package/dist/types/components/checkbox/checkbox.d.ts +9 -5
- package/dist/types/components/date-input/date-input.d.ts +9 -0
- package/dist/types/components/date-picker/date-picker.d.ts +9 -4
- package/dist/types/components/details/details.d.ts +1 -0
- package/dist/types/components/dropdown/dropdown.d.ts +21 -14
- package/dist/types/components/file-upload/file-upload-interface.d.ts +4 -3
- package/dist/types/components/file-upload/file-upload.d.ts +2 -12
- package/dist/types/components/input/input.d.ts +2 -1
- package/dist/types/components/tooltip/tooltip.d.ts +10 -7
- package/dist/types/components.d.ts +40 -14
- package/dist/types/index.d.ts +1 -1
- package/dist/types/utils/{utils.d.ts → index.d.ts} +0 -0
- package/dist/types/utils/testing/index.d.ts +49 -0
- package/docs-json.json +125 -47
- package/docs-vscode.json +9 -1
- package/package.json +10 -8
- package/dist/cjs/algolia-data-771a61ea.js.map +0 -1
- package/dist/cjs/algoliasearch.umd-51f0001d.js +0 -12
- package/dist/cjs/algoliasearch.umd-51f0001d.js.map +0 -1
- package/dist/cjs/global-befb7a64.js.map +0 -1
- package/dist/cjs/index-43791691.js.map +0 -1
- package/dist/cjs/popover-eccc07bd.js.map +0 -1
- package/dist/cjs/shadow-css-c5dce0c8.js.map +0 -1
- package/dist/collection/utils/testing-utils.js +0 -156
- package/dist/collection/utils/testing-utils.js.map +0 -1
- package/dist/esm/algolia-data-a84aeef1.js.map +0 -1
- package/dist/esm/algoliasearch.umd-2c129faa.js +0 -10
- package/dist/esm/algoliasearch.umd-2c129faa.js.map +0 -1
- package/dist/esm/global-c85d24a2.js.map +0 -1
- package/dist/esm/index-20becda2.js.map +0 -1
- package/dist/esm/shadow-css-70953e54.js.map +0 -1
- package/dist/esm-es5/algolia-data-a84aeef1.js.map +0 -1
- package/dist/esm-es5/algoliasearch.umd-2c129faa.js +0 -4
- package/dist/esm-es5/algoliasearch.umd-2c129faa.js.map +0 -1
- package/dist/esm-es5/global-c85d24a2.js.map +0 -1
- package/dist/esm-es5/index-20becda2.js +0 -2
- package/dist/esm-es5/index-20becda2.js.map +0 -1
- package/dist/esm-es5/popover-05f61b5f.js +0 -2
- package/dist/esm-es5/popover-05f61b5f.js.map +0 -1
- package/dist/esm-es5/shadow-css-70953e54.js.map +0 -1
- package/dist/nano-components/p-0283a2ec.js.map +0 -1
- package/dist/nano-components/p-1ce90ea4.entry.js.map +0 -1
- package/dist/nano-components/p-1ed74370.entry.js.map +0 -1
- package/dist/nano-components/p-1f7502fa.js +0 -2
- package/dist/nano-components/p-1f7502fa.js.map +0 -1
- package/dist/nano-components/p-1fd60eec.system.js +0 -2
- package/dist/nano-components/p-1fd60eec.system.js.map +0 -1
- package/dist/nano-components/p-201b5f5b.entry.js +0 -2
- package/dist/nano-components/p-201b5f5b.entry.js.map +0 -1
- package/dist/nano-components/p-214ad382.entry.js +0 -2
- package/dist/nano-components/p-214ad382.entry.js.map +0 -1
- package/dist/nano-components/p-23da4de5.js +0 -4
- package/dist/nano-components/p-23da4de5.js.map +0 -1
- package/dist/nano-components/p-23e9f09e.entry.js.map +0 -1
- package/dist/nano-components/p-2d59dda3.system.js +0 -2
- package/dist/nano-components/p-2d59dda3.system.js.map +0 -1
- package/dist/nano-components/p-2e1f6c4a.entry.js +0 -2
- package/dist/nano-components/p-4042379b.system.entry.js.map +0 -1
- package/dist/nano-components/p-45e06083.system.entry.js +0 -2
- package/dist/nano-components/p-45e06083.system.entry.js.map +0 -1
- package/dist/nano-components/p-461c539f.system.entry.js.map +0 -1
- package/dist/nano-components/p-4bca8761.entry.js +0 -2
- package/dist/nano-components/p-4bca8761.entry.js.map +0 -1
- package/dist/nano-components/p-4ee095f3.js +0 -2
- package/dist/nano-components/p-4ee095f3.js.map +0 -1
- package/dist/nano-components/p-5198e4c6.system.js.map +0 -1
- package/dist/nano-components/p-568be88a.entry.js +0 -2
- package/dist/nano-components/p-568be88a.entry.js.map +0 -1
- package/dist/nano-components/p-5918ac51.entry.js +0 -2
- package/dist/nano-components/p-5918ac51.entry.js.map +0 -1
- package/dist/nano-components/p-5f716719.system.entry.js +0 -2
- package/dist/nano-components/p-5f716719.system.entry.js.map +0 -1
- package/dist/nano-components/p-60b2ba81.system.entry.js.map +0 -1
- package/dist/nano-components/p-6747f517.system.entry.js.map +0 -1
- package/dist/nano-components/p-6b22f5db.entry.js.map +0 -1
- package/dist/nano-components/p-6ba91d36.entry.js.map +0 -1
- package/dist/nano-components/p-76bf0452.system.entry.js.map +0 -1
- package/dist/nano-components/p-79e11525.system.entry.js.map +0 -1
- package/dist/nano-components/p-7b3de191.entry.js.map +0 -1
- package/dist/nano-components/p-7b94cd1c.entry.js.map +0 -1
- package/dist/nano-components/p-7f3b4f80.entry.js +0 -2
- package/dist/nano-components/p-7f3b4f80.entry.js.map +0 -1
- package/dist/nano-components/p-7fdff708.entry.js.map +0 -1
- package/dist/nano-components/p-8fe04c5c.system.entry.js +0 -2
- package/dist/nano-components/p-8fe04c5c.system.entry.js.map +0 -1
- package/dist/nano-components/p-93b1eeea.system.js +0 -2
- package/dist/nano-components/p-93b1eeea.system.js.map +0 -1
- package/dist/nano-components/p-9920e725.system.js.map +0 -1
- package/dist/nano-components/p-9a456956.system.js.map +0 -1
- package/dist/nano-components/p-9b9ca075.system.entry.js.map +0 -1
- package/dist/nano-components/p-a897cfae.system.entry.js.map +0 -1
- package/dist/nano-components/p-bc09eba8.entry.js.map +0 -1
- package/dist/nano-components/p-c3401b82.entry.js +0 -2
- package/dist/nano-components/p-c3401b82.entry.js.map +0 -1
- package/dist/nano-components/p-c4edcfc5.system.entry.js +0 -2
- package/dist/nano-components/p-c4edcfc5.system.entry.js.map +0 -1
- package/dist/nano-components/p-c6796f75.entry.js.map +0 -1
- package/dist/nano-components/p-c8792b54.system.entry.js +0 -2
- package/dist/nano-components/p-c8792b54.system.entry.js.map +0 -1
- package/dist/nano-components/p-cb750e49.system.js +0 -4
- package/dist/nano-components/p-cb750e49.system.js.map +0 -1
- package/dist/nano-components/p-cc5080df.entry.js +0 -2
- package/dist/nano-components/p-cc5080df.entry.js.map +0 -1
- package/dist/nano-components/p-d2ae5ac1.entry.js +0 -2
- package/dist/nano-components/p-d2ae5ac1.entry.js.map +0 -1
- package/dist/nano-components/p-d795cbd4.entry.js.map +0 -1
- package/dist/nano-components/p-da9f75d2.system.entry.js +0 -2
- package/dist/nano-components/p-da9f75d2.system.entry.js.map +0 -1
- package/dist/nano-components/p-dce1f547.entry.js.map +0 -1
- package/dist/nano-components/p-dd66cc74.entry.js +0 -2
- package/dist/nano-components/p-dd66cc74.entry.js.map +0 -1
- package/dist/nano-components/p-e1429ff0.system.entry.js.map +0 -1
- package/dist/nano-components/p-e142f6b6.system.entry.js.map +0 -1
- package/dist/nano-components/p-e24d3e8a.entry.js.map +0 -1
- package/dist/nano-components/p-e2848c8a.system.entry.js +0 -2
- package/dist/nano-components/p-e2848c8a.system.entry.js.map +0 -1
- package/dist/nano-components/p-e33dd8b9.js.map +0 -1
- package/dist/nano-components/p-e886b71e.system.js.map +0 -1
- package/dist/nano-components/p-e8a97250.system.entry.js +0 -2
- package/dist/nano-components/p-e8a97250.system.entry.js.map +0 -1
- package/dist/nano-components/p-ec01a0ad.system.entry.js.map +0 -1
- package/dist/nano-components/p-f55560d3.js +0 -2
- package/dist/nano-components/p-f55560d3.js.map +0 -1
- package/dist/nano-components/p-f578998d.system.entry.js.map +0 -1
- package/dist/nano-components/p-f5f76780.entry.js.map +0 -1
- package/dist/nano-components/p-fa926d02.system.entry.js.map +0 -1
- package/dist/nano-components/p-fb7ae92c.entry.js.map +0 -1
- package/dist/types/utils/testing-utils.d.ts +0 -41
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Component, Element, Event, Method, Prop, Watch, h, Listen, } from '@stencil/core';
|
2
2
|
import Popover from '../../utils/popover';
|
3
|
-
import { transitionDone } from '../../utils
|
3
|
+
import { transitionDone } from '../../utils';
|
4
4
|
import { getNearestTabbableElement } from '../../utils/tabbable';
|
5
5
|
/**
|
6
6
|
* Dropdowns show additional content in a panel.
|
@@ -18,15 +18,20 @@ export class Dropdown {
|
|
18
18
|
this.autoOpen = true;
|
19
19
|
/** Indicates whether or not the dropdown is open. You can use this in lieu of the show/hide methods. */
|
20
20
|
this.open = false;
|
21
|
+
/**
|
22
|
+
* Determines whether the dropdown should hide when a menu item is selected.
|
23
|
+
*/
|
24
|
+
this.closeOnSelect = true;
|
25
|
+
/**
|
26
|
+
* If you don't want to use the trigger slot, you can use this to 'tether' the dropdown to another element.
|
27
|
+
* And you will still need to control when the component is opened (using show() / hide() or the `open` prop)
|
28
|
+
*/
|
29
|
+
this.tetherTo = null;
|
21
30
|
/**
|
22
31
|
* The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel
|
23
32
|
* inside of the viewport.
|
24
33
|
*/
|
25
34
|
this.placement = 'bottom-start';
|
26
|
-
/**
|
27
|
-
* Determines whether the dropdown should hide when a menu item is selected.
|
28
|
-
*/
|
29
|
-
this.closeOnSelect = true;
|
30
35
|
/**
|
31
36
|
* The distance in pixels from which to offset the panel away from its trigger.
|
32
37
|
*/
|
@@ -40,10 +45,11 @@ export class Dropdown {
|
|
40
45
|
* `overflow: auto|scroll`.
|
41
46
|
*/
|
42
47
|
this.hoist = false;
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
48
|
+
this.togglePanel = () => {
|
49
|
+
if (!this.autoOpen)
|
50
|
+
return;
|
51
|
+
this.open ? this.hide() : this.show();
|
52
|
+
};
|
47
53
|
this.handleTriggerKeyDown = (event) => {
|
48
54
|
// Open the panel when pressing down or up while focused on the trigger
|
49
55
|
if (!this.open && ['ArrowDown', 'ArrowUp', ' '].includes(event.key)) {
|
@@ -55,11 +61,6 @@ export class Dropdown {
|
|
55
61
|
this.handleTriggerSlotChange = () => {
|
56
62
|
this.updateAccessibleTrigger();
|
57
63
|
};
|
58
|
-
this.togglePanel = () => {
|
59
|
-
if (!this.autoOpen)
|
60
|
-
return;
|
61
|
-
this.open ? this.hide() : this.show();
|
62
|
-
};
|
63
64
|
}
|
64
65
|
handleOpenChange() {
|
65
66
|
if (!this.ignoreOpenWatcher) {
|
@@ -67,6 +68,10 @@ export class Dropdown {
|
|
67
68
|
this.updateAccessibleTrigger();
|
68
69
|
}
|
69
70
|
}
|
71
|
+
handleTetherToChange() {
|
72
|
+
this.createPopover();
|
73
|
+
this.updateAccessibleTrigger();
|
74
|
+
}
|
70
75
|
handlePopoverOptionsChange() {
|
71
76
|
this.popover.setOptions({
|
72
77
|
strategy: this.hoist ? 'fixed' : 'absolute',
|
@@ -75,6 +80,7 @@ export class Dropdown {
|
|
75
80
|
distance: this.distance,
|
76
81
|
});
|
77
82
|
}
|
83
|
+
// Listeners
|
78
84
|
menuFocus(ev) {
|
79
85
|
let target = ev.target;
|
80
86
|
if (!target ||
|
@@ -101,38 +107,13 @@ export class Dropdown {
|
|
101
107
|
this.panel.style.minHeight =
|
102
108
|
ev.target.parentElement.scrollHeight + 'px';
|
103
109
|
}
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
this.
|
108
|
-
|
109
|
-
this.containingElement = this.host;
|
110
|
-
}
|
111
|
-
componentDidLoad() {
|
112
|
-
this.popover = new Popover(this.trigger, this.positioner, {
|
113
|
-
strategy: this.hoist ? 'fixed' : 'absolute',
|
114
|
-
placement: this.placement,
|
115
|
-
distance: this.distance,
|
116
|
-
skidding: this.skidding,
|
117
|
-
transitionElement: this.panel,
|
118
|
-
onAfterHide: () => this.nanoAfterHide.emit(),
|
119
|
-
onAfterShow: () => this.nanoAfterShow.emit(),
|
120
|
-
onTransitionEnd: () => {
|
121
|
-
if (!this.open) {
|
122
|
-
this.panel.scrollTop = 0;
|
123
|
-
}
|
124
|
-
},
|
125
|
-
});
|
126
|
-
// Show on init if open
|
127
|
-
if (this.open) {
|
128
|
-
this.show();
|
129
|
-
}
|
130
|
-
}
|
131
|
-
disconnectedCallback() {
|
132
|
-
this.hide();
|
133
|
-
if (this.popover)
|
134
|
-
this.popover.destroy();
|
110
|
+
handlePanelSelect(event) {
|
111
|
+
const target = event.target;
|
112
|
+
// Hide the dropdown when a menu item is selected
|
113
|
+
if (this.closeOnSelect && target.tagName.toLowerCase() === 'nano-menu')
|
114
|
+
this.hide();
|
135
115
|
}
|
116
|
+
// Methods
|
136
117
|
/** Shows the dropdown panel */
|
137
118
|
async show() {
|
138
119
|
this.ignoreOpenWatcher = true;
|
@@ -165,9 +146,28 @@ export class Dropdown {
|
|
165
146
|
document.removeEventListener('keydown', this.handleDocumentKeyDown);
|
166
147
|
this.menuFocused = false;
|
167
148
|
}
|
149
|
+
// Private methods
|
168
150
|
getMenu() {
|
169
151
|
return this.host.querySelector('nano-menu');
|
170
152
|
}
|
153
|
+
// Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and
|
154
|
+
// `aria-expanded`. These must be applied to the "accessible trigger" (the tabbable portion of the trigger element
|
155
|
+
// that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,
|
156
|
+
updateAccessibleTrigger() {
|
157
|
+
let accessibleTrigger;
|
158
|
+
if (!this.tetherTo) {
|
159
|
+
const assignedElements = Array.from(this.host.querySelectorAll('[slot="trigger"]'));
|
160
|
+
accessibleTrigger = assignedElements.map(getNearestTabbableElement)[0];
|
161
|
+
}
|
162
|
+
else {
|
163
|
+
accessibleTrigger = this.tetherTo;
|
164
|
+
}
|
165
|
+
if (accessibleTrigger) {
|
166
|
+
accessibleTrigger.setAttribute('aria-haspopup', 'true');
|
167
|
+
accessibleTrigger.setAttribute('aria-expanded', this.open ? 'true' : 'false');
|
168
|
+
}
|
169
|
+
}
|
170
|
+
// Handlers
|
171
171
|
handleDocumentKeyDown(event) {
|
172
172
|
// Close when escape is pressed
|
173
173
|
if (event.key === 'Escape') {
|
@@ -208,23 +208,48 @@ export class Dropdown {
|
|
208
208
|
return;
|
209
209
|
}
|
210
210
|
}
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
this.
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
211
|
+
createPopover() {
|
212
|
+
if (this.popover) {
|
213
|
+
if (this.open)
|
214
|
+
this.hide();
|
215
|
+
this.popover.destroy();
|
216
|
+
this.popover = null;
|
217
|
+
}
|
218
|
+
this.popover = new Popover(this.tetherTo || this.trigger, this.positioner, {
|
219
|
+
strategy: this.hoist ? 'fixed' : 'absolute',
|
220
|
+
placement: this.placement,
|
221
|
+
distance: this.distance,
|
222
|
+
skidding: this.skidding,
|
223
|
+
transitionElement: this.panel,
|
224
|
+
onAfterHide: () => this.nanoAfterHide.emit(),
|
225
|
+
onAfterShow: () => this.nanoAfterShow.emit(),
|
226
|
+
onTransitionEnd: () => {
|
227
|
+
if (!this.open) {
|
228
|
+
this.panel.scrollTop = 0;
|
229
|
+
}
|
230
|
+
},
|
231
|
+
});
|
232
|
+
// Show on init if open
|
233
|
+
if (this.open) {
|
234
|
+
this.show();
|
226
235
|
}
|
227
236
|
}
|
237
|
+
// Stencil hooks
|
238
|
+
connectedCallback() {
|
239
|
+
this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
|
240
|
+
this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
|
241
|
+
this.handlePanelSelect = this.handlePanelSelect.bind(this);
|
242
|
+
if (!this.containingElement)
|
243
|
+
this.containingElement = this.host;
|
244
|
+
}
|
245
|
+
componentDidLoad() {
|
246
|
+
this.createPopover();
|
247
|
+
}
|
248
|
+
disconnectedCallback() {
|
249
|
+
this.hide();
|
250
|
+
if (this.popover)
|
251
|
+
this.popover.destroy();
|
252
|
+
}
|
228
253
|
render() {
|
229
254
|
return (h("div", { part: "base", id: this.dropdownId, class: {
|
230
255
|
dropdown: true,
|
@@ -286,26 +311,6 @@ export class Dropdown {
|
|
286
311
|
"reflect": true,
|
287
312
|
"defaultValue": "false"
|
288
313
|
},
|
289
|
-
"placement": {
|
290
|
-
"type": "string",
|
291
|
-
"mutable": false,
|
292
|
-
"complexType": {
|
293
|
-
"original": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'",
|
294
|
-
"resolved": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
|
295
|
-
"references": {}
|
296
|
-
},
|
297
|
-
"required": false,
|
298
|
-
"optional": false,
|
299
|
-
"docs": {
|
300
|
-
"tags": [],
|
301
|
-
"text": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport."
|
302
|
-
},
|
303
|
-
"getter": false,
|
304
|
-
"setter": false,
|
305
|
-
"attribute": "placement",
|
306
|
-
"reflect": false,
|
307
|
-
"defaultValue": "'bottom-start'"
|
308
|
-
},
|
309
314
|
"closeOnSelect": {
|
310
315
|
"type": "boolean",
|
311
316
|
"mutable": false,
|
@@ -328,7 +333,7 @@ export class Dropdown {
|
|
328
333
|
},
|
329
334
|
"containingElement": {
|
330
335
|
"type": "unknown",
|
331
|
-
"mutable":
|
336
|
+
"mutable": true,
|
332
337
|
"complexType": {
|
333
338
|
"original": "HTMLElement",
|
334
339
|
"resolved": "HTMLElement",
|
@@ -347,6 +352,48 @@ export class Dropdown {
|
|
347
352
|
"getter": false,
|
348
353
|
"setter": false
|
349
354
|
},
|
355
|
+
"tetherTo": {
|
356
|
+
"type": "unknown",
|
357
|
+
"mutable": false,
|
358
|
+
"complexType": {
|
359
|
+
"original": "HTMLElement",
|
360
|
+
"resolved": "HTMLElement",
|
361
|
+
"references": {
|
362
|
+
"HTMLElement": {
|
363
|
+
"location": "global"
|
364
|
+
}
|
365
|
+
}
|
366
|
+
},
|
367
|
+
"required": false,
|
368
|
+
"optional": false,
|
369
|
+
"docs": {
|
370
|
+
"tags": [],
|
371
|
+
"text": "If you don't want to use the trigger slot, you can use this to 'tether' the dropdown to another element.\nAnd you will still need to control when the component is opened (using show() / hide() or the `open` prop)"
|
372
|
+
},
|
373
|
+
"getter": false,
|
374
|
+
"setter": false,
|
375
|
+
"defaultValue": "null"
|
376
|
+
},
|
377
|
+
"placement": {
|
378
|
+
"type": "string",
|
379
|
+
"mutable": false,
|
380
|
+
"complexType": {
|
381
|
+
"original": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'",
|
382
|
+
"resolved": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
|
383
|
+
"references": {}
|
384
|
+
},
|
385
|
+
"required": false,
|
386
|
+
"optional": false,
|
387
|
+
"docs": {
|
388
|
+
"tags": [],
|
389
|
+
"text": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport."
|
390
|
+
},
|
391
|
+
"getter": false,
|
392
|
+
"setter": false,
|
393
|
+
"attribute": "placement",
|
394
|
+
"reflect": false,
|
395
|
+
"defaultValue": "'bottom-start'"
|
396
|
+
},
|
350
397
|
"distance": {
|
351
398
|
"type": "number",
|
352
399
|
"mutable": false,
|
@@ -411,11 +458,11 @@ export class Dropdown {
|
|
411
458
|
"type": "string",
|
412
459
|
"mutable": false,
|
413
460
|
"complexType": {
|
414
|
-
"original": "string
|
461
|
+
"original": "string",
|
415
462
|
"resolved": "string",
|
416
463
|
"references": {}
|
417
464
|
},
|
418
|
-
"required":
|
465
|
+
"required": true,
|
419
466
|
"optional": false,
|
420
467
|
"docs": {
|
421
468
|
"tags": [],
|
@@ -424,8 +471,7 @@ export class Dropdown {
|
|
424
471
|
"getter": false,
|
425
472
|
"setter": false,
|
426
473
|
"attribute": "dialog-title",
|
427
|
-
"reflect": false
|
428
|
-
"defaultValue": "null"
|
474
|
+
"reflect": false
|
429
475
|
}
|
430
476
|
}; }
|
431
477
|
static get events() { return [{
|
@@ -527,6 +573,9 @@ export class Dropdown {
|
|
527
573
|
static get watchers() { return [{
|
528
574
|
"propName": "open",
|
529
575
|
"methodName": "handleOpenChange"
|
576
|
+
}, {
|
577
|
+
"propName": "tetherTo",
|
578
|
+
"methodName": "handleTetherToChange"
|
530
579
|
}, {
|
531
580
|
"propName": "placement",
|
532
581
|
"methodName": "handlePopoverOptionsChange"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n Watch,\n h,\n Listen,\n ComponentInterface,\n} from '@stencil/core';\nimport Popover from '../../utils/popover';\nimport { transitionDone } from '../../utils/utils';\nimport { NavItemEventDetail } from '../../interface';\nimport { getNearestTabbableElement } from '../../utils/tabbable';\n\n/**\n * Dropdowns show additional content in a panel.\n * Designed to work well with nano-menu components to provide a list of options (works well with nano-nav-items).\n * @slot trigger - The dropdown's trigger.\n * @slot - The dropdown's content.\n */\n@Component({\n tag: 'nano-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n private dropdownId = `dropdown-${dropDownIds++}`;\n private labelId = this.dropdownId + '-title';\n private ignoreOpenWatcher = false;\n private panel: HTMLElement;\n private popover: Popover;\n private trigger: HTMLElement;\n private positioner: HTMLElement;\n private menuFocused: boolean = false;\n\n @Element() host: HTMLNanoDropdownElement;\n\n /** Determines if the dropdown should open automatically when the trigger is clicked */\n @Prop() autoOpen = true;\n\n /** Indicates whether or not the dropdown is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /**\n * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\n * inside of the viewport.\n */\n @Prop() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'bottom-start';\n\n /**\n * Determines whether the dropdown should hide when a menu item is selected.\n */\n @Prop() closeOnSelect = true;\n\n /**\n * The dropdown will close when the user interacts outside of this element (e.g. clicking).\n */\n @Prop() containingElement: HTMLElement;\n\n /**\n * The distance in pixels from which to offset the panel away from its trigger.\n */\n @Prop() distance = 2;\n\n /**\n * The distance in pixels from which to offset the panel along its trigger.\n */\n @Prop() skidding = 0;\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n /**\n * Title used to describe the dropdown content for accessibility\n */\n @Prop() dialogTitle: string | null = null;\n\n /**\n * Emitted when the dropdown opens. Calling `event.preventDefault()` will prevent it from being opened.\n */\n @Event() nanoShow: EventEmitter;\n\n /**\n * Emitted after the dropdown opens and all transitions are complete.\n */\n @Event() nanoAfterShow: EventEmitter;\n\n /**\n * Emitted when the dropdown closes. Calling `event.preventDefault()` will prevent it from being closed.\n */\n @Event() nanoHide: EventEmitter;\n\n /**\n * Emitted after the dropdown closes and all transitions are complete.\n */\n @Event() nanoAfterHide: EventEmitter;\n\n @Watch('open')\n handleOpenChange() {\n if (!this.ignoreOpenWatcher) {\n this.open ? this.show() : this.hide();\n this.updateAccessibleTrigger();\n }\n }\n\n @Watch('placement')\n @Watch('distance')\n @Watch('skidding')\n @Watch('hoist')\n handlePopoverOptionsChange() {\n this.popover.setOptions({\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n skidding: this.skidding,\n distance: this.distance,\n });\n }\n\n @Listen('nanoFocus')\n menuFocus(ev: CustomEvent) {\n let target = ev.target as HTMLElement;\n if (\n !target ||\n !target.tagName ||\n target.tagName.toLowerCase() !== 'nano-menu'\n )\n return;\n this.menuFocused = true;\n }\n\n @Listen('nanoOpen')\n secondaryOpen(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n\n this.panel.classList.add('loading');\n transitionDone(this.panel).then(() =>\n this.panel.classList.remove('loading')\n );\n this.panel.style.minHeight =\n (ev.detail as NavItemEventDetail).secondaryMenu.scrollHeight + 'px';\n }\n\n @Listen('nanoClose')\n secondaryClose(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n if (!(ev.target as HTMLElement).parentElement) return;\n this.panel.style.minHeight =\n (ev.target as HTMLElement).parentElement.scrollHeight + 'px';\n }\n\n connectedCallback() {\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handlePanelSelect = this.handlePanelSelect.bind(this);\n\n if (!this.containingElement) this.containingElement = this.host;\n }\n\n componentDidLoad() {\n this.popover = new Popover(this.trigger, this.positioner, {\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n transitionElement: this.panel,\n onAfterHide: () => this.nanoAfterHide.emit(),\n onAfterShow: () => this.nanoAfterShow.emit(),\n onTransitionEnd: () => {\n if (!this.open) {\n this.panel.scrollTop = 0;\n }\n },\n });\n\n // Show on init if open\n if (this.open) {\n this.show();\n }\n }\n\n disconnectedCallback() {\n this.hide();\n if (this.popover) this.popover.destroy();\n }\n\n /** Shows the dropdown panel */\n @Method()\n async show() {\n this.ignoreOpenWatcher = true;\n this.open = true;\n\n const nanoShow = this.nanoShow.emit();\n\n if (nanoShow.defaultPrevented) {\n this.open = false;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n this.popover.show();\n this.ignoreOpenWatcher = false;\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n /** Hides the dropdown panel */\n @Method()\n async hide() {\n this.ignoreOpenWatcher = true;\n this.open = false;\n\n const nanoHide = this.nanoHide.emit();\n\n if (nanoHide.defaultPrevented) {\n this.open = true;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n if (this.popover) this.popover.hide();\n this.ignoreOpenWatcher = false;\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n\n this.menuFocused = false;\n }\n\n private getMenu() {\n return this.host.querySelector('nano-menu') as HTMLNanoMenuElement;\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\n // Close when escape is pressed\n if (event.key === 'Escape') {\n this.hide();\n return;\n }\n\n // Close when tabbing results in the focus leaving the close element\n if (event.key === 'Tab') {\n setTimeout(() => {\n if (\n document.activeElement &&\n document.activeElement.closest(\n this.containingElement.tagName.toLowerCase()\n ) !== this.containingElement\n ) {\n this.hide();\n return;\n }\n });\n }\n\n const menu = this.getMenu();\n\n // If a menu is present, focus on it when certain keys are pressed\n if (menu && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\n if (!this.open || this.menuFocused) return;\n event.preventDefault();\n menu.setFocus();\n return;\n }\n\n // All other keys focus the menu and pass the event through to menu (necessary for type-to-search to work)\n if (menu && event.target !== menu) {\n menu.dispatchEvent(new KeyboardEvent(event.type, event));\n return;\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement;\n\n // Close when clicking outside of the close element\n if (\n target.closest(this.containingElement.tagName.toLowerCase()) !==\n this.containingElement\n ) {\n this.hide();\n return;\n }\n }\n\n @Listen('nanoSelect')\n handlePanelSelect(event: CustomEvent) {\n const target = event.target as HTMLElement;\n\n // Hide the dropdown when a menu item is selected\n if (this.closeOnSelect && target.tagName.toLowerCase() === 'nano-menu')\n this.hide();\n }\n\n private handleTriggerKeyDown = (event: KeyboardEvent) => {\n // Open the panel when pressing down or up while focused on the trigger\n if (!this.open && ['ArrowDown', 'ArrowUp', ' '].includes(event.key)) {\n this.show();\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n private handleTriggerSlotChange = () => {\n this.updateAccessibleTrigger();\n };\n\n private togglePanel = () => {\n if (!this.autoOpen) return;\n this.open ? this.hide() : this.show();\n };\n\n // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and\n // `aria-expanded`. These must be applied to the \"accessible trigger\" (the tabbable portion of the trigger element\n // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,\n private updateAccessibleTrigger() {\n const assignedElements = Array.from(\n this.host.querySelectorAll('[slot=\"trigger\"]')\n );\n const accessibleTrigger = assignedElements.map(\n getNearestTabbableElement\n )[0];\n\n if (accessibleTrigger) {\n accessibleTrigger.setAttribute('aria-haspopup', 'true');\n accessibleTrigger.setAttribute(\n 'aria-expanded',\n this.open ? 'true' : 'false'\n );\n }\n }\n\n render() {\n return (\n <div\n part=\"base\"\n id={this.dropdownId}\n class={{\n dropdown: true,\n 'dropdown--open': this.open,\n }}\n aria-expanded={this.open ? 'true' : 'false'}\n aria-haspopup=\"true\"\n >\n <span\n part=\"trigger\"\n class=\"dropdown__trigger\"\n ref={(el) => (this.trigger = el)}\n onKeyDown={this.handleTriggerKeyDown}\n onClick={this.togglePanel}\n >\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange} />\n </span>\n\n <div ref={(el) => (this.positioner = el)} class=\"dropdown__positioner\">\n <div\n ref={(el) => (this.panel = el)}\n part=\"panel\"\n class={`dropdown__panel ${this.placement.split('-').join(' ')}`}\n aria-hidden={!this.open}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.dialogTitle ? this.labelId : undefined}\n >\n {this.dialogTitle && (\n <h2\n id={this.labelId}\n class=\"dropdown__accessible-title\"\n aria-live=\"polite\"\n >\n {this.dialogTitle}\n </h2>\n )}\n <slot />\n </div>\n </div>\n </div>\n );\n }\n}\n\nlet dropDownIds = 0;\n"]}
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n Watch,\n h,\n Listen,\n ComponentInterface,\n} from '@stencil/core';\nimport Popover from '../../utils/popover';\nimport { transitionDone } from '../../utils';\nimport { NavItemEventDetail } from '../../interface';\nimport { getNearestTabbableElement } from '../../utils/tabbable';\n\n/**\n * Dropdowns show additional content in a panel.\n * Designed to work well with nano-menu components to provide a list of options (works well with nano-nav-items).\n * @slot trigger - The dropdown's trigger.\n * @slot - The dropdown's content.\n */\n@Component({\n tag: 'nano-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n private dropdownId = `dropdown-${dropDownIds++}`;\n private labelId = this.dropdownId + '-title';\n private ignoreOpenWatcher = false;\n private panel: HTMLElement;\n private popover: Popover;\n private trigger: HTMLElement;\n private positioner: HTMLElement;\n private menuFocused: boolean = false;\n\n @Element() host: HTMLNanoDropdownElement;\n\n /** Determines if the dropdown should open automatically when the trigger is clicked */\n @Prop() autoOpen = true;\n\n /** Indicates whether or not the dropdown is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n @Watch('open')\n handleOpenChange() {\n if (!this.ignoreOpenWatcher) {\n this.open ? this.show() : this.hide();\n this.updateAccessibleTrigger();\n }\n }\n\n /**\n * Determines whether the dropdown should hide when a menu item is selected.\n */\n @Prop() closeOnSelect = true;\n\n /**\n * The dropdown will close when the user interacts outside of this element (e.g. clicking).\n */\n @Prop({ mutable: true }) containingElement: HTMLElement;\n\n /**\n * If you don't want to use the trigger slot, you can use this to 'tether' the dropdown to another element.\n * And you will still need to control when the component is opened (using show() / hide() or the `open` prop)\n */\n @Prop() tetherTo: HTMLElement = null;\n\n @Watch('tetherTo')\n handleTetherToChange() {\n this.createPopover();\n this.updateAccessibleTrigger();\n }\n\n /**\n * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\n * inside of the viewport.\n */\n @Prop() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'bottom-start';\n\n /**\n * The distance in pixels from which to offset the panel away from its trigger.\n */\n @Prop() distance = 2;\n\n /**\n * The distance in pixels from which to offset the panel along its trigger.\n */\n @Prop() skidding = 0;\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n @Watch('placement')\n @Watch('distance')\n @Watch('skidding')\n @Watch('hoist')\n handlePopoverOptionsChange() {\n this.popover.setOptions({\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n skidding: this.skidding,\n distance: this.distance,\n });\n }\n\n /**\n * Title used to describe the dropdown content for accessibility\n */\n @Prop() dialogTitle!: string;\n\n // Events\n\n /**\n * Emitted when the dropdown opens. Calling `event.preventDefault()` will prevent it from being opened.\n */\n @Event() nanoShow: EventEmitter;\n\n /**\n * Emitted after the dropdown opens and all transitions are complete.\n */\n @Event() nanoAfterShow: EventEmitter;\n\n /**\n * Emitted when the dropdown closes. Calling `event.preventDefault()` will prevent it from being closed.\n */\n @Event() nanoHide: EventEmitter;\n\n /**\n * Emitted after the dropdown closes and all transitions are complete.\n */\n @Event() nanoAfterHide: EventEmitter;\n\n // Listeners\n\n @Listen('nanoFocus')\n menuFocus(ev: CustomEvent) {\n let target = ev.target as HTMLElement;\n if (\n !target ||\n !target.tagName ||\n target.tagName.toLowerCase() !== 'nano-menu'\n )\n return;\n this.menuFocused = true;\n }\n\n @Listen('nanoOpen')\n secondaryOpen(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n\n this.panel.classList.add('loading');\n transitionDone(this.panel).then(() =>\n this.panel.classList.remove('loading')\n );\n this.panel.style.minHeight =\n (ev.detail as NavItemEventDetail).secondaryMenu.scrollHeight + 'px';\n }\n\n @Listen('nanoClose')\n secondaryClose(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n if (!(ev.target as HTMLElement).parentElement) return;\n this.panel.style.minHeight =\n (ev.target as HTMLElement).parentElement.scrollHeight + 'px';\n }\n\n @Listen('nanoSelect')\n handlePanelSelect(event: CustomEvent) {\n const target = event.target as HTMLElement;\n\n // Hide the dropdown when a menu item is selected\n if (this.closeOnSelect && target.tagName.toLowerCase() === 'nano-menu')\n this.hide();\n }\n\n // Methods\n\n /** Shows the dropdown panel */\n @Method()\n async show() {\n this.ignoreOpenWatcher = true;\n this.open = true;\n\n const nanoShow = this.nanoShow.emit();\n\n if (nanoShow.defaultPrevented) {\n this.open = false;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n this.popover.show();\n this.ignoreOpenWatcher = false;\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n /** Hides the dropdown panel */\n @Method()\n async hide() {\n this.ignoreOpenWatcher = true;\n this.open = false;\n\n const nanoHide = this.nanoHide.emit();\n\n if (nanoHide.defaultPrevented) {\n this.open = true;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n if (this.popover) this.popover.hide();\n this.ignoreOpenWatcher = false;\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n\n this.menuFocused = false;\n }\n\n // Private methods\n\n private getMenu() {\n return this.host.querySelector('nano-menu') as HTMLNanoMenuElement;\n }\n\n private togglePanel = () => {\n if (!this.autoOpen) return;\n this.open ? this.hide() : this.show();\n };\n\n // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and\n // `aria-expanded`. These must be applied to the \"accessible trigger\" (the tabbable portion of the trigger element\n // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,\n private updateAccessibleTrigger() {\n let accessibleTrigger: HTMLElement;\n if (!this.tetherTo) {\n const assignedElements = Array.from(\n this.host.querySelectorAll('[slot=\"trigger\"]')\n );\n accessibleTrigger = assignedElements.map(getNearestTabbableElement)[0];\n } else {\n accessibleTrigger = this.tetherTo;\n }\n\n if (accessibleTrigger) {\n accessibleTrigger.setAttribute('aria-haspopup', 'true');\n accessibleTrigger.setAttribute(\n 'aria-expanded',\n this.open ? 'true' : 'false'\n );\n }\n }\n\n // Handlers\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\n // Close when escape is pressed\n if (event.key === 'Escape') {\n this.hide();\n return;\n }\n\n // Close when tabbing results in the focus leaving the close element\n if (event.key === 'Tab') {\n setTimeout(() => {\n if (\n document.activeElement &&\n document.activeElement.closest(\n this.containingElement.tagName.toLowerCase()\n ) !== this.containingElement\n ) {\n this.hide();\n return;\n }\n });\n }\n\n const menu = this.getMenu();\n\n // If a menu is present, focus on it when certain keys are pressed\n if (menu && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\n if (!this.open || this.menuFocused) return;\n event.preventDefault();\n menu.setFocus();\n return;\n }\n\n // All other keys focus the menu and pass the event through to menu (necessary for type-to-search to work)\n if (menu && event.target !== menu) {\n menu.dispatchEvent(new KeyboardEvent(event.type, event));\n return;\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement;\n\n // Close when clicking outside of the close element\n if (\n target.closest(this.containingElement.tagName.toLowerCase()) !==\n this.containingElement\n ) {\n this.hide();\n return;\n }\n }\n\n private handleTriggerKeyDown = (event: KeyboardEvent) => {\n // Open the panel when pressing down or up while focused on the trigger\n if (!this.open && ['ArrowDown', 'ArrowUp', ' '].includes(event.key)) {\n this.show();\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n private handleTriggerSlotChange = () => {\n this.updateAccessibleTrigger();\n };\n\n private createPopover() {\n if (this.popover) {\n if (this.open) this.hide();\n this.popover.destroy();\n this.popover = null;\n }\n\n this.popover = new Popover(this.tetherTo || this.trigger, this.positioner, {\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n transitionElement: this.panel,\n onAfterHide: () => this.nanoAfterHide.emit(),\n onAfterShow: () => this.nanoAfterShow.emit(),\n onTransitionEnd: () => {\n if (!this.open) {\n this.panel.scrollTop = 0;\n }\n },\n });\n // Show on init if open\n if (this.open) {\n this.show();\n }\n }\n\n // Stencil hooks\n\n connectedCallback() {\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handlePanelSelect = this.handlePanelSelect.bind(this);\n\n if (!this.containingElement) this.containingElement = this.host;\n }\n\n componentDidLoad() {\n this.createPopover();\n }\n\n disconnectedCallback() {\n this.hide();\n if (this.popover) this.popover.destroy();\n }\n\n render() {\n return (\n <div\n part=\"base\"\n id={this.dropdownId}\n class={{\n dropdown: true,\n 'dropdown--open': this.open,\n }}\n aria-expanded={this.open ? 'true' : 'false'}\n aria-haspopup=\"true\"\n >\n <span\n part=\"trigger\"\n class=\"dropdown__trigger\"\n ref={(el) => (this.trigger = el)}\n onKeyDown={this.handleTriggerKeyDown}\n onClick={this.togglePanel}\n >\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange} />\n </span>\n\n <div ref={(el) => (this.positioner = el)} class=\"dropdown__positioner\">\n <div\n ref={(el) => (this.panel = el)}\n part=\"panel\"\n class={`dropdown__panel ${this.placement.split('-').join(' ')}`}\n aria-hidden={!this.open}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.dialogTitle ? this.labelId : undefined}\n >\n {this.dialogTitle && (\n <h2\n id={this.labelId}\n class=\"dropdown__accessible-title\"\n aria-live=\"polite\"\n >\n {this.dialogTitle}\n </h2>\n )}\n <slot />\n </div>\n </div>\n </div>\n );\n }\n}\n\nlet dropDownIds = 0;\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file-upload-interface.js","sourceRoot":"","sources":["../../../src/components/file-upload/file-upload-interface.ts"],"names":[],"mappings":"","sourcesContent":["interface
|
1
|
+
{"version":3,"file":"file-upload-interface.js","sourceRoot":"","sources":["../../../src/components/file-upload/file-upload-interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface FileWithUrl extends File {\n objectURL: string;\n lastModifiedDate?: Date;\n webkitRelativePath: string;\n}\n\nexport interface FileInputChangeEventDetail {\n value: string | undefined | null;\n files: FileWithUrl[];\n}\n"]}
|
@@ -12,7 +12,7 @@
|
|
12
12
|
* @prop --invalid-msg-color: Default value var(--nano-color-danger, #ef4135);
|
13
13
|
* @prop --invalid-msg-font-size: Default value var(--nano-input-help-font-size, 0.75em);
|
14
14
|
|
15
|
-
* @prop --help-msg-color: Default value var(--nano-input-help-color, #
|
15
|
+
* @prop --help-msg-color: Default value var(--nano-input-help-color, #616d6e);
|
16
16
|
|
17
17
|
* @prop --label-color: Default value var(--nano-input-label-color, "currentColor");
|
18
18
|
* @prop --label-color--invalid: Default value var(--nano-input-label-color-invalid, "currentColor");
|
@@ -23,13 +23,13 @@
|
|
23
23
|
* @prop --drop-bg: Default value #f2f7f9;
|
24
24
|
* @prop --drop-text: Default value #918b86;
|
25
25
|
* @prop --drop-height: Default value 3.5em;
|
26
|
-
* @prop --drop-border-tint: Default value var(--nano-color-primary-rgb, 0,
|
26
|
+
* @prop --drop-border-tint: Default value var(--nano-color-primary-rgb, 0, 116, 149);
|
27
27
|
* @prop --drop-border-width: Default value 2px;
|
28
28
|
* @prop --drop-border-radius: Default value 5px;
|
29
29
|
* @prop --drop-bg--invalid: Default value var(--nano-input-background-color, #fee8de);
|
30
30
|
* @prop --drop-border--invalid: Default value var(--nano-color-danger-rgb, 239, 65, 53);
|
31
31
|
|
32
|
-
* @prop --btn-bg: Default value var(--nano-color-primary, #
|
32
|
+
* @prop --btn-bg: Default value var(--nano-color-primary, #007495);
|
33
33
|
* @prop --btn-text: Default value var(--nano-color-primary-contrast, #fff);
|
34
34
|
* @prop --btn-icon-size: Default value var(--nano-btn-icon-size, 1.4em);
|
35
35
|
* @prop --btn-padding-top: Default value var(--nano-btn-padding-top, .5em);
|
@@ -41,20 +41,20 @@
|
|
41
41
|
display: block;
|
42
42
|
--invalid-msg-color: var(--nano-color-danger, #ef4135);
|
43
43
|
--invalid-msg-font-size: var(--nano-input-help-font-size, 0.75em);
|
44
|
-
--help-msg-color: var(--nano-input-help-color, #
|
44
|
+
--help-msg-color: var(--nano-input-help-color, #616d6e);
|
45
45
|
--label-color: var(--nano-input-label-color, "currentColor");
|
46
46
|
--label-font-size: var(--nano-input-label-color, 1em);
|
47
47
|
--label-padding: var(--nano-input-padding-bottom, var(--nano-input-padding, 8px));
|
48
48
|
--label-color--invalid: var(--nano-input-label-color-invalid, "currentColor");
|
49
49
|
--drop-bg: #f2f7f9;
|
50
|
-
--drop-text: #
|
50
|
+
--drop-text: #756f6a;
|
51
51
|
--drop-height: 3.5em;
|
52
|
-
--drop-border-tint: var(--nano-color-primary-rgb, 0,
|
52
|
+
--drop-border-tint: var(--nano-color-primary-rgb, 0, 116, 149);
|
53
53
|
--drop-border-width: 2px;
|
54
54
|
--drop-border-radius: 5px;
|
55
55
|
--drop-bg--invalid: var(--nano-input-background-color, #fee8de);
|
56
56
|
--drop-border--invalid: var(--nano-color-danger-rgb, 239, 65, 53);
|
57
|
-
--btn-bg: var(--nano-color-primary, #
|
57
|
+
--btn-bg: var(--nano-color-primary, #007495);
|
58
58
|
--btn-text: var(--nano-color-primary-contrast, #fff);
|
59
59
|
--btn-icon-size: var(--nano-btn-icon-size, 1.4em);
|
60
60
|
--btn-padding-top: var(--nano-btn-padding-top, 0.5em);
|
@@ -85,15 +85,7 @@
|
|
85
85
|
color: var(--label-color--invalid);
|
86
86
|
}
|
87
87
|
.file-upload__input {
|
88
|
-
|
89
|
-
-webkit-clip-path: inset(50%);
|
90
|
-
clip-path: inset(50%);
|
91
|
-
height: 1px;
|
92
|
-
width: 1px;
|
93
|
-
margin: -1px;
|
94
|
-
overflow: hidden;
|
95
|
-
padding: 0;
|
96
|
-
position: absolute;
|
88
|
+
display: none;
|
97
89
|
}
|
98
90
|
.file-upload__error, .file-upload__help, .file-upload__more, .file-upload__label {
|
99
91
|
display: block;
|
@@ -455,7 +447,7 @@
|
|
455
447
|
cursor: default;
|
456
448
|
}
|
457
449
|
.file-upload__button:hover:not(.button--disabled):not(:disabled), .file-upload__button.button--active {
|
458
|
-
background-color: var(--nano-color-primary-shade, #
|
450
|
+
background-color: var(--nano-color-primary-shade, #00637f);
|
459
451
|
color: var(--btn-text);
|
460
452
|
}
|
461
453
|
.file-upload__button:hover:not(.button--disabled):not(:disabled).button--keyline, .file-upload__button.button--active.button--keyline {
|
@@ -202,8 +202,8 @@ export class FileUpload {
|
|
202
202
|
h("span", { class: "list-title" }, file.file.name),
|
203
203
|
!file.valid && (h("nano-tooltip", { content: file.validationMessage, placement: "left" },
|
204
204
|
h("nano-icon-button", { class: "list-button list-error", iconName: "light/exclamation-triangle", label: "File error" }))),
|
205
|
-
this.canChangeFileList && (h("nano-icon-button", { class: "list-button", type: "button", iconName: "light/eye", label: "View file", target: "_blank", href: file.location })),
|
206
|
-
this.canChangeFileList && (h("nano-icon-button", { onClick: (e) => this.onFileRemoveFileClick(e, file), class: "list-button", iconName: "light/times", label: "Remove file" }))));
|
205
|
+
this.canChangeFileList && (h("nano-icon-button", { class: "list-button list-button--view", type: "button", iconName: "light/eye", label: "View file", target: "_blank", href: file.location })),
|
206
|
+
this.canChangeFileList && (h("nano-icon-button", { onClick: (e) => this.onFileRemoveFileClick(e, file), class: "list-button list-button--remove", iconName: "light/times", label: "Remove file" }))));
|
207
207
|
})))),
|
208
208
|
];
|
209
209
|
};
|
@@ -233,20 +233,10 @@ export class FileUpload {
|
|
233
233
|
* containing an object URL that can be used to reference the contents of the specified source
|
234
234
|
* This list has no more than one member unless the multiple attribute is specified. @readonly */
|
235
235
|
get files() {
|
236
|
-
File;
|
237
236
|
return this.inputEl
|
238
237
|
? Array.from(this.inputEl.files).map((file) => {
|
239
|
-
|
240
|
-
|
241
|
-
type: file.type,
|
242
|
-
name: file.name,
|
243
|
-
size: file.size,
|
244
|
-
objectURL: URL.createObjectURL(file),
|
245
|
-
arrayBuffer: file.arrayBuffer,
|
246
|
-
slice: file.slice,
|
247
|
-
stream: file.stream,
|
248
|
-
text: file.text,
|
249
|
-
};
|
238
|
+
file.objectURL = URL.createObjectURL(file);
|
239
|
+
return file;
|
250
240
|
})
|
251
241
|
: [];
|
252
242
|
}
|
@@ -315,6 +305,8 @@ export class FileUpload {
|
|
315
305
|
return size / 1000000 <= this.maxFileSize;
|
316
306
|
}
|
317
307
|
checkFileType(type) {
|
308
|
+
if (!this.accept)
|
309
|
+
return true;
|
318
310
|
return this.accept.match(type) && this.accept.match(type).length > 0;
|
319
311
|
}
|
320
312
|
slotChangeObserver() {
|
@@ -655,9 +647,14 @@ export class FileUpload {
|
|
655
647
|
"type": "unknown",
|
656
648
|
"mutable": false,
|
657
649
|
"complexType": {
|
658
|
-
"original": "
|
659
|
-
"resolved": "
|
660
|
-
"references": {
|
650
|
+
"original": "FileWithUrl[]",
|
651
|
+
"resolved": "FileWithUrl[]",
|
652
|
+
"references": {
|
653
|
+
"FileWithUrl": {
|
654
|
+
"location": "import",
|
655
|
+
"path": "/builds/Xi7NpFYo/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
656
|
+
}
|
657
|
+
}
|
661
658
|
},
|
662
659
|
"required": false,
|
663
660
|
"optional": false,
|
@@ -713,7 +710,7 @@ export class FileUpload {
|
|
713
710
|
"references": {
|
714
711
|
"FileInputChangeEventDetail": {
|
715
712
|
"location": "import",
|
716
|
-
"path": "/builds/
|
713
|
+
"path": "/builds/Xi7NpFYo/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
717
714
|
}
|
718
715
|
}
|
719
716
|
}
|
@@ -766,7 +763,7 @@ export class FileUpload {
|
|
766
763
|
"references": {
|
767
764
|
"ControlValidityEventDetail": {
|
768
765
|
"location": "import",
|
769
|
-
"path": "/builds/
|
766
|
+
"path": "/builds/Xi7NpFYo/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
770
767
|
}
|
771
768
|
}
|
772
769
|
}
|
@@ -788,7 +785,7 @@ export class FileUpload {
|
|
788
785
|
},
|
789
786
|
"ControlValidity": {
|
790
787
|
"location": "import",
|
791
|
-
"path": "/builds/
|
788
|
+
"path": "/builds/Xi7NpFYo/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
792
789
|
}
|
793
790
|
},
|
794
791
|
"return": "Promise<ControlValidity>"
|