@nanoporetech-digital/components 2.7.0 → 2.10.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 +58 -0
- package/dist/cjs/{algoliasearch.umd-dcf18a4a.js → algoliasearch.umd-7ee60729.js} +3 -3
- package/dist/cjs/{algoliasearch.umd-dcf18a4a.js.map → algoliasearch.umd-7ee60729.js.map} +1 -1
- package/dist/cjs/{component-store-722032a5.js → component-store-19844199.js} +37 -25
- package/dist/cjs/component-store-19844199.js.map +1 -0
- package/dist/cjs/{form-control-8f530f7d.js → form-control-d54a847f.js} +26 -19
- package/dist/cjs/form-control-d54a847f.js.map +1 -0
- package/dist/cjs/index-cb62df44.js +5 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
- package/dist/cjs/nano-algolia-input.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia.cjs.entry.js +2 -2
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +58 -20
- package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +27 -15
- 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 +4 -3
- package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js +17 -4
- package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +13 -2
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/nano-field-validator.cjs.entry.js +529 -0
- package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -0
- package/dist/cjs/nano-file-upload.cjs.entry.js +59 -36
- package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +46 -41
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +36 -20
- package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-nav-item_2.cjs.entry.js +53 -23
- package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +6 -4
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +2 -2
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/{popover-8c86d338.js → popover-5f152a19.js} +3 -8
- package/dist/cjs/{popover-8c86d338.js.map → popover-5f152a19.js.map} +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/accordion/accordion.js +1 -1
- package/dist/collection/components/alert/alert.js +1 -1
- 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.js +6 -6
- package/dist/collection/components/checkbox/checkbox-group.css +9 -6
- package/dist/collection/components/checkbox/checkbox-group.js +119 -25
- package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +1 -1
- package/dist/collection/components/checkbox/checkbox.js +83 -22
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/datalist/datalist.js +4 -2
- package/dist/collection/components/datalist/datalist.js.map +1 -1
- package/dist/collection/components/date-input/date-input.js +44 -12
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.js +5 -5
- package/dist/collection/components/details/details.js +1 -1
- package/dist/collection/components/dialog/dialog.js +34 -1
- package/dist/collection/components/dialog/dialog.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +1 -1
- package/dist/collection/components/field-validator/field-validator.js +577 -0
- package/dist/collection/components/field-validator/field-validator.js.map +1 -0
- package/dist/collection/components/file-upload/file-upload.css +17 -5
- package/dist/collection/components/file-upload/file-upload.js +111 -44
- package/dist/collection/components/file-upload/file-upload.js.map +1 -1
- package/dist/collection/components/form-control/form-control.js +25 -18
- package/dist/collection/components/form-control/form-control.js.map +1 -1
- package/dist/collection/components/global-nav/global-nav.js +73 -45
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/grid/grid-item.js +1 -1
- package/dist/collection/components/icon/icon.js +2 -2
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/input/input.css +56 -5
- package/dist/collection/components/input/input.js +65 -29
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/menu/menu.js +1 -2
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/nav-item/nav-item.js +4 -4
- package/dist/collection/components/range/range.js +4 -4
- package/dist/collection/components/resize-observe/resize-observe.js +7 -6
- package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
- package/dist/collection/components/select/select.css +61 -7
- package/dist/collection/components/select/select.js +88 -32
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/slides/slides.js +7 -7
- package/dist/collection/components/{sticky → sticker}/sticker.css +0 -0
- package/dist/collection/components/{sticky → sticker}/sticker.js +2 -2
- package/dist/collection/components/sticker/sticker.js.map +1 -0
- package/dist/collection/components/tabs/tab-group.js +2 -2
- package/dist/collection/utils/popover.js +2 -7
- package/dist/collection/utils/popover.js.map +1 -1
- package/dist/collection/utils/store/component-store.js +4 -13
- package/dist/collection/utils/store/component-store.js.map +1 -1
- package/dist/collection/utils/store/get-set.js +15 -1
- package/dist/collection/utils/store/get-set.js.map +1 -1
- package/dist/components/algoliasearch.umd.js +2 -2
- package/dist/components/algoliasearch.umd.js.map +1 -1
- package/dist/components/component-store.js +36 -24
- package/dist/components/component-store.js.map +1 -1
- package/dist/components/datalist.js +3 -1
- package/dist/components/datalist.js.map +1 -1
- package/dist/components/form-control.js +25 -18
- package/dist/components/form-control.js.map +1 -1
- package/dist/components/icon.js.map +1 -1
- package/dist/components/input.js +39 -21
- package/dist/components/input.js.map +1 -1
- package/dist/components/menu.js +1 -2
- package/dist/components/menu.js.map +1 -1
- package/dist/components/nano-checkbox-group.js +62 -21
- package/dist/components/nano-checkbox-group.js.map +1 -1
- package/dist/components/nano-checkbox.js +31 -17
- package/dist/components/nano-checkbox.js.map +1 -1
- package/dist/components/nano-date-input.js +18 -4
- package/dist/components/nano-date-input.js.map +1 -1
- package/dist/components/nano-dialog.js +13 -1
- package/dist/components/nano-dialog.js.map +1 -1
- package/dist/components/nano-field-validator.d.ts +11 -0
- package/dist/components/nano-field-validator.js +557 -0
- package/dist/components/nano-field-validator.js.map +1 -0
- package/dist/components/nano-file-upload.js +62 -37
- package/dist/components/nano-file-upload.js.map +1 -1
- package/dist/components/nano-global-nav.js +45 -39
- package/dist/components/nano-global-nav.js.map +1 -1
- package/dist/components/popover.js +2 -7
- package/dist/components/popover.js.map +1 -1
- package/dist/components/resize-observe.js +6 -4
- package/dist/components/resize-observe.js.map +1 -1
- package/dist/components/select.js +57 -24
- package/dist/components/select.js.map +1 -1
- package/dist/components/sticker.js +2 -2
- package/dist/components/sticker.js.map +1 -1
- package/dist/custom-elements/index.d.ts +6 -0
- package/dist/custom-elements/index.js +2606 -705
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
- package/dist/esm/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +1 -1
- package/dist/esm/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
- package/dist/esm/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
- package/dist/esm/{component-store-b6fbfa35.js → component-store-d238fee4.js} +38 -26
- package/dist/esm/component-store-d238fee4.js.map +1 -0
- package/dist/esm/{form-control-c52b6256.js → form-control-ad05507c.js} +27 -20
- package/dist/esm/form-control-ad05507c.js.map +1 -0
- package/dist/esm/{index-5f8d16e7.js → index-c42becad.js} +7 -2
- package/dist/esm/{index-5f8d16e7.js.map → index-c42becad.js.map} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/nano-accordion.entry.js +1 -1
- package/dist/esm/nano-alert.entry.js +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +3 -3
- package/dist/esm/nano-algolia-input.entry.js +4 -4
- 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 +4 -4
- package/dist/esm/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +59 -21
- package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm/nano-checkbox.entry.js +28 -16
- package/dist/esm/nano-checkbox.entry.js.map +1 -1
- package/dist/esm/nano-components.js +2 -2
- package/dist/esm/nano-datalist_3.entry.js +5 -4
- package/dist/esm/nano-datalist_3.entry.js.map +1 -1
- package/dist/esm/nano-date-input.entry.js +18 -5
- package/dist/esm/nano-date-input.entry.js.map +1 -1
- package/dist/esm/nano-date-picker.entry.js +1 -1
- package/dist/esm/nano-details.entry.js +1 -1
- package/dist/esm/nano-dialog.entry.js +14 -3
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +1 -1
- package/dist/esm/nano-dropdown.entry.js +2 -2
- package/dist/esm/nano-field-validator.entry.js +525 -0
- package/dist/esm/nano-field-validator.entry.js.map +1 -0
- package/dist/esm/nano-file-upload.entry.js +60 -37
- package/dist/esm/nano-file-upload.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +47 -42
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +1 -1
- package/dist/esm/nano-grid_3.entry.js +1 -1
- package/dist/esm/nano-hero.entry.js +1 -1
- package/dist/esm/nano-icon-button.entry.js +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 +38 -22
- package/dist/esm/nano-input.entry.js.map +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +1 -1
- package/dist/esm/nano-nav-item_2.entry.js +55 -25
- package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +1 -1
- package/dist/esm/nano-rating.entry.js +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +7 -5
- 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-slides.entry.js +1 -1
- package/dist/esm/nano-spinner.entry.js +1 -1
- package/dist/esm/nano-split-pane.entry.js +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 +1 -1
- package/dist/esm/nano-tab-group.entry.js +2 -2
- package/dist/esm/nano-tab.entry.js +1 -1
- package/dist/esm/nano-tooltip.entry.js +2 -2
- package/dist/esm/{popover-7639005b.js → popover-a03563f3.js} +3 -8
- package/dist/esm/{popover-7639005b.js.map → popover-a03563f3.js.map} +1 -1
- package/dist/esm-es5/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
- package/dist/esm-es5/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +0 -0
- package/dist/esm-es5/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
- package/dist/esm-es5/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
- package/dist/esm-es5/component-store-d238fee4.js +5 -0
- package/dist/esm-es5/component-store-d238fee4.js.map +1 -0
- package/dist/esm-es5/form-control-ad05507c.js +5 -0
- package/dist/esm-es5/form-control-ad05507c.js.map +1 -0
- package/dist/esm-es5/{index-5f8d16e7.js → index-c42becad.js} +2 -2
- package/dist/esm-es5/{index-5f8d16e7.js.map → index-c42becad.js.map} +0 -0
- 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-alert.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-input.entry.js +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-aspect-ratio.entry.js +1 -1
- package/dist/esm-es5/nano-checkbox-group.entry.js +2 -2
- 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 +1 -1
- package/dist/esm-es5/nano-datalist_3.entry.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.entry.js +1 -1
- package/dist/esm-es5/nano-details.entry.js +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-dropdown.entry.js +1 -1
- package/dist/esm-es5/nano-field-validator.entry.js +5 -0
- package/dist/esm-es5/nano-field-validator.entry.js.map +1 -0
- package/dist/esm-es5/nano-file-upload.entry.js +2 -2
- 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-hero.entry.js +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-icon.entry.js.map +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-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-rating.entry.js +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-slides.entry.js +1 -1
- package/dist/esm-es5/nano-spinner.entry.js +1 -1
- package/dist/esm-es5/nano-split-pane.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.entry.js +2 -2
- package/dist/esm-es5/nano-tooltip.entry.js +1 -1
- package/dist/esm-es5/{popover-7639005b.js → popover-a03563f3.js} +2 -2
- package/dist/esm-es5/popover-a03563f3.js.map +1 -0
- 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/nano-components.js +1 -1
- package/dist/nano-components/p-00eaa36a.entry.js +5 -0
- package/dist/nano-components/p-00eaa36a.entry.js.map +1 -0
- package/dist/nano-components/{p-4429caac.system.entry.js → p-0c6c2141.system.entry.js} +2 -2
- package/dist/nano-components/{p-4429caac.system.entry.js.map → p-0c6c2141.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-7232c046.system.entry.js → p-0d0dfc06.system.entry.js} +2 -2
- package/dist/nano-components/{p-7232c046.system.entry.js.map → p-0d0dfc06.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-e562bffd.entry.js → p-0e2e3f4a.entry.js} +2 -2
- package/dist/nano-components/{p-e562bffd.entry.js.map → p-0e2e3f4a.entry.js.map} +0 -0
- package/dist/nano-components/{p-56ba0d63.entry.js → p-1030797a.entry.js} +2 -2
- package/dist/nano-components/{p-56ba0d63.entry.js.map → p-1030797a.entry.js.map} +0 -0
- package/dist/nano-components/p-11451a4b.system.entry.js +5 -0
- package/dist/nano-components/p-11451a4b.system.entry.js.map +1 -0
- package/dist/nano-components/p-129e2b4b.system.js +5 -0
- package/dist/nano-components/p-129e2b4b.system.js.map +1 -0
- package/dist/nano-components/{p-c0ddb4c3.entry.js → p-166ade3e.entry.js} +2 -2
- package/dist/nano-components/{p-c0ddb4c3.entry.js.map → p-166ade3e.entry.js.map} +0 -0
- package/dist/nano-components/{p-5653961d.system.entry.js → p-1a30dfdd.system.entry.js} +2 -2
- package/dist/nano-components/p-1a30dfdd.system.entry.js.map +1 -0
- package/dist/nano-components/p-1b120f53.entry.js +5 -0
- package/dist/nano-components/p-1b120f53.entry.js.map +1 -0
- package/dist/nano-components/{p-7d351076.system.entry.js → p-21af2a5e.system.entry.js} +2 -2
- package/dist/nano-components/{p-7d351076.system.entry.js.map → p-21af2a5e.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-346588cc.entry.js → p-222d8095.entry.js} +2 -2
- package/dist/nano-components/{p-346588cc.entry.js.map → p-222d8095.entry.js.map} +0 -0
- package/dist/nano-components/p-241d90eb.system.entry.js +5 -0
- package/dist/nano-components/p-241d90eb.system.entry.js.map +1 -0
- package/dist/nano-components/{p-040b6cda.entry.js → p-2649fc8e.entry.js} +2 -2
- package/dist/nano-components/{p-040b6cda.entry.js.map → p-2649fc8e.entry.js.map} +0 -0
- package/dist/nano-components/{p-3456db01.entry.js → p-27efac97.entry.js} +2 -2
- package/dist/nano-components/{p-3456db01.entry.js.map → p-27efac97.entry.js.map} +0 -0
- package/dist/nano-components/{p-462ad4f1.entry.js → p-2c8d7273.entry.js} +2 -2
- package/dist/nano-components/{p-462ad4f1.entry.js.map → p-2c8d7273.entry.js.map} +0 -0
- package/dist/nano-components/{p-2e6c55e2.entry.js → p-2d53d1a0.entry.js} +2 -2
- package/dist/nano-components/{p-2e6c55e2.entry.js.map → p-2d53d1a0.entry.js.map} +0 -0
- package/dist/nano-components/{p-1f99d776.entry.js → p-3093915f.entry.js} +2 -2
- package/dist/nano-components/{p-1f99d776.entry.js.map → p-3093915f.entry.js.map} +0 -0
- package/dist/nano-components/{p-8a8f893b.system.entry.js → p-316f83a9.system.entry.js} +2 -2
- package/dist/nano-components/{p-8a8f893b.system.entry.js.map → p-316f83a9.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-7246bef5.entry.js → p-325c1cad.entry.js} +2 -2
- package/dist/nano-components/{p-7246bef5.entry.js.map → p-325c1cad.entry.js.map} +0 -0
- package/dist/nano-components/{p-ec39b143.system.entry.js → p-32f396c0.system.entry.js} +2 -2
- package/dist/nano-components/{p-ec39b143.system.entry.js.map → p-32f396c0.system.entry.js.map} +0 -0
- package/dist/nano-components/p-32f4516e.js +5 -0
- package/dist/nano-components/p-32f4516e.js.map +1 -0
- package/dist/nano-components/{p-43543d18.entry.js → p-333237e8.entry.js} +2 -2
- package/dist/nano-components/{p-43543d18.entry.js.map → p-333237e8.entry.js.map} +0 -0
- package/dist/nano-components/{p-e7fdc62d.entry.js → p-35108e08.entry.js} +2 -2
- package/dist/nano-components/{p-e7fdc62d.entry.js.map → p-35108e08.entry.js.map} +0 -0
- package/dist/nano-components/{p-a898bf92.system.entry.js → p-379e21d9.system.entry.js} +2 -2
- package/dist/nano-components/{p-a898bf92.system.entry.js.map → p-379e21d9.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-3ad1d5aa.system.entry.js → p-39d36fd1.system.entry.js} +2 -2
- package/dist/nano-components/{p-3ad1d5aa.system.entry.js.map → p-39d36fd1.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-41a2e2e4.system.js → p-3a00de47.system.js} +2 -2
- package/dist/nano-components/{p-41a2e2e4.system.js.map → p-3a00de47.system.js.map} +0 -0
- package/dist/nano-components/{p-6afdb510.system.entry.js → p-3ccb176c.system.entry.js} +2 -2
- package/dist/nano-components/{p-6afdb510.system.entry.js.map → p-3ccb176c.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-178c34e3.js → p-3de7735c.js} +2 -2
- package/dist/nano-components/p-3de7735c.js.map +1 -0
- package/dist/nano-components/{p-08b43111.entry.js → p-3e930ac7.entry.js} +2 -2
- package/dist/nano-components/{p-08b43111.entry.js.map → p-3e930ac7.entry.js.map} +0 -0
- package/dist/nano-components/{p-d8d8bac6.system.entry.js → p-42cebbfe.system.entry.js} +2 -2
- package/dist/nano-components/{p-d8d8bac6.system.entry.js.map → p-42cebbfe.system.entry.js.map} +0 -0
- package/dist/nano-components/p-45070c8f.entry.js +5 -0
- package/dist/nano-components/p-45070c8f.entry.js.map +1 -0
- package/dist/nano-components/{p-3ef30ded.system.entry.js → p-48874481.system.entry.js} +2 -2
- package/dist/nano-components/{p-3ef30ded.system.entry.js.map → p-48874481.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-08ffc9a1.entry.js → p-4e2c0abb.entry.js} +2 -2
- package/dist/nano-components/{p-08ffc9a1.entry.js.map → p-4e2c0abb.entry.js.map} +0 -0
- package/dist/nano-components/{p-090f22a9.system.entry.js → p-5100ae70.system.entry.js} +2 -2
- package/dist/nano-components/{p-090f22a9.system.entry.js.map → p-5100ae70.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-593de29b.system.entry.js → p-52769304.system.entry.js} +2 -2
- package/dist/nano-components/{p-593de29b.system.entry.js.map → p-52769304.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-8278c5d2.system.entry.js → p-56f86047.system.entry.js} +2 -2
- package/dist/nano-components/{p-8278c5d2.system.entry.js.map → p-56f86047.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-3c475740.system.entry.js → p-5b66bb8f.system.entry.js} +2 -2
- package/dist/nano-components/p-5b66bb8f.system.entry.js.map +1 -0
- package/dist/nano-components/{p-033296c7.system.entry.js → p-5d17cfbb.system.entry.js} +2 -2
- package/dist/nano-components/{p-033296c7.system.entry.js.map → p-5d17cfbb.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-88f17c86.system.entry.js → p-5d5ea4ab.system.entry.js} +2 -2
- package/dist/nano-components/{p-88f17c86.system.entry.js.map → p-5d5ea4ab.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-20387cde.system.entry.js → p-6b4dd158.system.entry.js} +2 -2
- package/dist/nano-components/{p-20387cde.system.entry.js.map → p-6b4dd158.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-d24811c8.system.js → p-6b5760b1.system.js} +3 -3
- package/dist/nano-components/{p-d24811c8.system.js.map → p-6b5760b1.system.js.map} +1 -1
- package/dist/nano-components/p-6d138abf.entry.js +5 -0
- package/dist/nano-components/p-6d138abf.entry.js.map +1 -0
- package/dist/nano-components/{p-5066e563.system.entry.js → p-6dad332b.system.entry.js} +2 -2
- package/dist/nano-components/{p-5066e563.system.entry.js.map → p-6dad332b.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-730f60ea.entry.js → p-6ddb51e4.entry.js} +2 -2
- package/dist/nano-components/p-6ddb51e4.entry.js.map +1 -0
- package/dist/nano-components/p-71bbb7ba.entry.js +5 -0
- package/dist/nano-components/p-71bbb7ba.entry.js.map +1 -0
- package/dist/nano-components/p-71e9fa33.js +5 -0
- package/dist/nano-components/p-71e9fa33.js.map +1 -0
- package/dist/nano-components/p-72ed603c.system.entry.js +5 -0
- package/dist/nano-components/p-72ed603c.system.entry.js.map +1 -0
- package/dist/nano-components/{p-c9d09839.entry.js → p-73985eda.entry.js} +2 -2
- package/dist/nano-components/{p-c9d09839.entry.js.map → p-73985eda.entry.js.map} +0 -0
- package/dist/nano-components/{p-58d7f10f.entry.js → p-76c903db.entry.js} +2 -2
- package/dist/nano-components/{p-58d7f10f.entry.js.map → p-76c903db.entry.js.map} +0 -0
- package/dist/nano-components/{p-3aa1d07d.entry.js → p-76d9d1d4.entry.js} +2 -2
- package/dist/nano-components/p-76d9d1d4.entry.js.map +1 -0
- package/dist/nano-components/{p-f53989c3.system.entry.js → p-7aa7425d.system.entry.js} +2 -2
- package/dist/nano-components/{p-f53989c3.system.entry.js.map → p-7aa7425d.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-531d5275.system.entry.js → p-7ad4a27a.system.entry.js} +2 -2
- package/dist/nano-components/p-7ad4a27a.system.entry.js.map +1 -0
- package/dist/nano-components/{p-9acc4596.system.entry.js → p-7e55b214.system.entry.js} +3 -3
- package/dist/nano-components/{p-9acc4596.system.entry.js.map → p-7e55b214.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-62ecd3a1.system.entry.js → p-7f1374b6.system.entry.js} +2 -2
- package/dist/nano-components/{p-62ecd3a1.system.entry.js.map → p-7f1374b6.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-1e974cad.entry.js → p-7fe9d769.entry.js} +2 -2
- package/dist/nano-components/{p-1e974cad.entry.js.map → p-7fe9d769.entry.js.map} +0 -0
- package/dist/nano-components/p-85c8b070.system.entry.js +5 -0
- package/dist/nano-components/p-85c8b070.system.entry.js.map +1 -0
- package/dist/nano-components/{p-f2e7d2f9.system.entry.js → p-88779174.system.entry.js} +2 -2
- package/dist/nano-components/{p-f2e7d2f9.system.entry.js.map → p-88779174.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-4535e3bb.entry.js → p-8b6fcd6d.entry.js} +2 -2
- package/dist/nano-components/{p-4535e3bb.entry.js.map → p-8b6fcd6d.entry.js.map} +0 -0
- package/dist/nano-components/{p-6ade3290.entry.js → p-8eb4f24a.entry.js} +2 -2
- package/dist/nano-components/{p-6ade3290.entry.js.map → p-8eb4f24a.entry.js.map} +0 -0
- package/dist/nano-components/{p-07bdf44d.entry.js → p-8fe2f846.entry.js} +2 -2
- package/dist/nano-components/{p-07bdf44d.entry.js.map → p-8fe2f846.entry.js.map} +0 -0
- package/dist/nano-components/p-96150b2c.system.entry.js +5 -0
- package/dist/nano-components/p-96150b2c.system.entry.js.map +1 -0
- package/dist/nano-components/{p-bcd69559.entry.js → p-97b13ad2.entry.js} +2 -2
- package/dist/nano-components/{p-bcd69559.entry.js.map → p-97b13ad2.entry.js.map} +0 -0
- package/dist/nano-components/{p-c9c1a345.system.entry.js → p-a02cc654.system.entry.js} +2 -2
- package/dist/nano-components/{p-c9c1a345.system.entry.js.map → p-a02cc654.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-a77e3fbb.js → p-a0b93616.js} +3 -3
- package/dist/nano-components/{p-a77e3fbb.js.map → p-a0b93616.js.map} +1 -1
- package/dist/nano-components/p-a4969844.entry.js +5 -0
- package/dist/nano-components/p-a4969844.entry.js.map +1 -0
- package/dist/nano-components/{p-70dec19f.entry.js → p-a6327a9a.entry.js} +2 -2
- package/dist/nano-components/{p-70dec19f.entry.js.map → p-a6327a9a.entry.js.map} +0 -0
- package/dist/nano-components/p-a81db037.entry.js +5 -0
- package/dist/nano-components/p-a81db037.entry.js.map +1 -0
- package/dist/nano-components/{p-a315ed2c.entry.js → p-a9a4fc3e.entry.js} +2 -2
- package/dist/nano-components/{p-a315ed2c.entry.js.map → p-a9a4fc3e.entry.js.map} +1 -1
- package/dist/nano-components/{p-98222c39.system.entry.js → p-ab07c1fa.system.entry.js} +2 -2
- package/dist/nano-components/{p-98222c39.system.entry.js.map → p-ab07c1fa.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-ab5813a7.js → p-b5c33aff.js} +2 -2
- package/dist/nano-components/{p-ab5813a7.js.map → p-b5c33aff.js.map} +0 -0
- package/dist/nano-components/p-bc394857.system.entry.js +5 -0
- package/dist/nano-components/p-bc394857.system.entry.js.map +1 -0
- package/dist/nano-components/{p-ee3fe567.entry.js → p-bce998f2.entry.js} +2 -2
- package/dist/nano-components/p-bce998f2.entry.js.map +1 -0
- package/dist/nano-components/{p-92f85aaf.system.entry.js → p-bf9aa89d.system.entry.js} +2 -2
- package/dist/nano-components/{p-92f85aaf.system.entry.js.map → p-bf9aa89d.system.entry.js.map} +0 -0
- package/dist/nano-components/p-c070ffd3.system.entry.js +5 -0
- package/dist/nano-components/p-c070ffd3.system.entry.js.map +1 -0
- package/dist/nano-components/{p-50514e5e.entry.js → p-c4156fea.entry.js} +2 -2
- package/dist/nano-components/{p-50514e5e.entry.js.map → p-c4156fea.entry.js.map} +0 -0
- package/dist/nano-components/p-c9a2d24c.entry.js +5 -0
- package/dist/nano-components/p-c9a2d24c.entry.js.map +1 -0
- package/dist/nano-components/p-d01bd3c3.system.js +5 -0
- package/dist/nano-components/p-d01bd3c3.system.js.map +1 -0
- package/dist/nano-components/{p-1238f0fc.system.entry.js → p-d0385948.system.entry.js} +2 -2
- package/dist/nano-components/{p-1238f0fc.system.entry.js.map → p-d0385948.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-b59d2bd5.entry.js → p-d122b1ff.entry.js} +2 -2
- package/dist/nano-components/{p-b59d2bd5.entry.js.map → p-d122b1ff.entry.js.map} +0 -0
- package/dist/nano-components/{p-394c3c19.entry.js → p-defd4552.entry.js} +2 -2
- package/dist/nano-components/{p-394c3c19.entry.js.map → p-defd4552.entry.js.map} +0 -0
- package/dist/nano-components/{p-9745d44e.system.js → p-e43ec257.system.js} +2 -2
- package/dist/nano-components/p-e43ec257.system.js.map +1 -0
- package/dist/nano-components/p-e7140887.system.js +5 -0
- package/dist/nano-components/p-e7140887.system.js.map +1 -0
- package/dist/nano-components/{p-69439aa1.system.entry.js → p-e817ab4a.system.entry.js} +2 -2
- package/dist/nano-components/{p-69439aa1.system.entry.js.map → p-e817ab4a.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-22884654.system.entry.js → p-eacf5b5b.system.entry.js} +2 -2
- package/dist/nano-components/{p-22884654.system.entry.js.map → p-eacf5b5b.system.entry.js.map} +0 -0
- package/dist/nano-components/p-ed336501.entry.js +5 -0
- package/dist/nano-components/p-ed336501.entry.js.map +1 -0
- package/dist/nano-components/{p-5ae80fd7.js → p-ef7f1e9c.js} +2 -2
- package/dist/nano-components/{p-5ae80fd7.js.map → p-ef7f1e9c.js.map} +0 -0
- package/dist/nano-components/{p-59b3d24b.system.js → p-f48be9f5.system.js} +2 -2
- package/dist/nano-components/{p-59b3d24b.system.js.map → p-f48be9f5.system.js.map} +0 -0
- package/dist/nano-components/p-f710c763.system.entry.js +5 -0
- package/dist/nano-components/p-f710c763.system.entry.js.map +1 -0
- package/dist/nano-components/{p-65c10b3f.entry.js → p-fbe3c89e.entry.js} +2 -2
- package/dist/nano-components/{p-65c10b3f.entry.js.map → p-fbe3c89e.entry.js.map} +0 -0
- package/dist/nano-components/p-fc3702a0.system.entry.js +5 -0
- package/dist/nano-components/p-fc3702a0.system.entry.js.map +1 -0
- package/dist/nano-components/{p-ba13bb56.entry.js → p-ffc2063a.entry.js} +2 -2
- package/dist/nano-components/{p-ba13bb56.entry.js.map → p-ffc2063a.entry.js.map} +0 -0
- package/dist/nano-components/{p-383fda90.system.entry.js → p-fff27907.system.entry.js} +2 -2
- package/dist/nano-components/{p-383fda90.system.entry.js.map → p-fff27907.system.entry.js.map} +0 -0
- package/dist/types/components/checkbox/checkbox-group.d.ts +12 -1
- package/dist/types/components/checkbox/checkbox.d.ts +11 -3
- package/dist/types/components/date-input/date-input.d.ts +4 -0
- package/dist/types/components/dialog/dialog.d.ts +4 -1
- package/dist/types/components/field-validator/field-validator.d.ts +125 -0
- package/dist/types/components/file-upload/file-upload.d.ts +8 -0
- package/dist/types/components/form-control/form-control.d.ts +2 -0
- package/dist/types/components/global-nav/global-nav.d.ts +10 -3
- package/dist/types/components/icon/icon.d.ts +1 -1
- package/dist/types/components/input/input.d.ts +9 -1
- package/dist/types/components/resize-observe/resize-observe.d.ts +0 -1
- package/dist/types/components/select/select.d.ts +9 -1
- package/dist/types/components/{sticky → sticker}/sticker.d.ts +0 -0
- package/dist/types/components.d.ts +198 -7
- package/dist/types/utils/store/get-set.d.ts +1 -1
- package/docs-json.json +474 -18
- package/docs-vscode.json +83 -3
- package/package.json +3 -2
- package/dist/cjs/component-store-722032a5.js.map +0 -1
- package/dist/cjs/form-control-8f530f7d.js.map +0 -1
- package/dist/collection/components/sticky/sticker.js.map +0 -1
- package/dist/esm/component-store-b6fbfa35.js.map +0 -1
- package/dist/esm/form-control-c52b6256.js.map +0 -1
- package/dist/esm-es5/component-store-b6fbfa35.js +0 -5
- package/dist/esm-es5/component-store-b6fbfa35.js.map +0 -1
- package/dist/esm-es5/form-control-c52b6256.js +0 -5
- package/dist/esm-es5/form-control-c52b6256.js.map +0 -1
- package/dist/esm-es5/popover-7639005b.js.map +0 -1
- package/dist/nano-components/p-0618fac6.system.entry.js +0 -5
- package/dist/nano-components/p-0618fac6.system.entry.js.map +0 -1
- package/dist/nano-components/p-096682d9.system.js +0 -5
- package/dist/nano-components/p-096682d9.system.js.map +0 -1
- package/dist/nano-components/p-10a6216d.system.entry.js +0 -5
- package/dist/nano-components/p-10a6216d.system.entry.js.map +0 -1
- package/dist/nano-components/p-173bae15.system.entry.js +0 -5
- package/dist/nano-components/p-173bae15.system.entry.js.map +0 -1
- package/dist/nano-components/p-178c34e3.js.map +0 -1
- package/dist/nano-components/p-3aa1d07d.entry.js.map +0 -1
- package/dist/nano-components/p-3c475740.system.entry.js.map +0 -1
- package/dist/nano-components/p-4265cf95.system.entry.js +0 -5
- package/dist/nano-components/p-4265cf95.system.entry.js.map +0 -1
- package/dist/nano-components/p-4ee978ff.entry.js +0 -5
- package/dist/nano-components/p-4ee978ff.entry.js.map +0 -1
- package/dist/nano-components/p-531d5275.system.entry.js.map +0 -1
- package/dist/nano-components/p-5653961d.system.entry.js.map +0 -1
- package/dist/nano-components/p-5a0095f9.js +0 -5
- package/dist/nano-components/p-5a0095f9.js.map +0 -1
- package/dist/nano-components/p-5a315696.entry.js +0 -5
- package/dist/nano-components/p-5a315696.entry.js.map +0 -1
- package/dist/nano-components/p-5e7c7d3d.entry.js +0 -5
- package/dist/nano-components/p-5e7c7d3d.entry.js.map +0 -1
- package/dist/nano-components/p-730f60ea.entry.js.map +0 -1
- package/dist/nano-components/p-802e1416.system.entry.js +0 -5
- package/dist/nano-components/p-802e1416.system.entry.js.map +0 -1
- package/dist/nano-components/p-820d9e23.system.entry.js +0 -5
- package/dist/nano-components/p-820d9e23.system.entry.js.map +0 -1
- package/dist/nano-components/p-829d7f05.system.entry.js +0 -5
- package/dist/nano-components/p-829d7f05.system.entry.js.map +0 -1
- package/dist/nano-components/p-894d6967.entry.js +0 -5
- package/dist/nano-components/p-894d6967.entry.js.map +0 -1
- package/dist/nano-components/p-8e5afc61.system.entry.js +0 -5
- package/dist/nano-components/p-8e5afc61.system.entry.js.map +0 -1
- package/dist/nano-components/p-9745d44e.system.js.map +0 -1
- package/dist/nano-components/p-9d35768b.entry.js +0 -5
- package/dist/nano-components/p-9d35768b.entry.js.map +0 -1
- package/dist/nano-components/p-aaef7cc7.js +0 -5
- package/dist/nano-components/p-aaef7cc7.js.map +0 -1
- package/dist/nano-components/p-af7abf5e.entry.js +0 -5
- package/dist/nano-components/p-af7abf5e.entry.js.map +0 -1
- package/dist/nano-components/p-df0897ec.system.js +0 -5
- package/dist/nano-components/p-df0897ec.system.js.map +0 -1
- package/dist/nano-components/p-e1f46998.system.js +0 -5
- package/dist/nano-components/p-e1f46998.system.js.map +0 -1
- package/dist/nano-components/p-e7c69d4f.entry.js +0 -5
- package/dist/nano-components/p-e7c69d4f.entry.js.map +0 -1
- package/dist/nano-components/p-ee3fe567.entry.js.map +0 -1
- package/dist/nano-components/p-f3bf942d.entry.js +0 -5
- package/dist/nano-components/p-f3bf942d.entry.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/components/menu/menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Event,\n EventEmitter,\n Method,\n h,\n Host,\n Element,\n Prop,\n Listen,\n} from '@stencil/core';\nimport {\n getTextContent,\n getDirectChildren,\n getActiveElement,\n} from '../../utils';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\ntype ValidElement = HTMLNanoNavItemElement | HTMLNanoOptionElement;\ntype NNI = HTMLNanoNavItemElement;\n\n/**\n * Menu element. Commonly wrapped by `nano-dropdown` with `nano-option` and `nano-nav-item` elements nested.\n * Manages focus state / active.\n * @slot - The menu's content; `nano-option`, `nano-nav-item` elements as well as <hr> and more.\n */\n@Component({\n tag: 'nano-menu',\n styleUrl: 'menu.scss',\n shadow: true,\n})\nexport class Menu {\n private ignoreMouseEvents = false;\n private ignoreMouseTimeout: any;\n private menu: HTMLElement;\n private typeToSelect = '';\n private typeToSelectTimeout: any;\n\n @Element() private el: HTMLNanoMenuElement;\n\n // Public API\n\n /** get the focus state of the menu @readonly */\n @Prop()\n get hasFocus() {\n return this._hasFocus;\n }\n private _hasFocus = false;\n\n /** changes the role of the underlying control - sometimes required for semantics */\n @Prop() type: 'menu' | 'listbox' = 'menu';\n\n /** an accessible label */\n @Prop() label: string;\n\n // Events\n\n /** Emitted when the menu gains focus. */\n @Event() nanoFocus: EventEmitter;\n\n /** Emitted when the menu loses focus. */\n @Event() nanoBlur: EventEmitter;\n\n /** Emitted when a menu item is selected. */\n @Event() nanoSelect: EventEmitter<\n HTMLNanoOptionElement | HTMLNanoNavItemElement\n >;\n\n // Public Methods\n\n /** Sets focus on the menu. */\n @Method()\n async setFocus() {\n if (this.menu?.focus) this.menu.focus({ preventScroll: true });\n }\n\n /** Removes focus from the menu. */\n @Method()\n async removeFocus() {\n if (this.menu?.blur) this.menu.blur();\n }\n\n /** Sets the current active item */\n @Method()\n async showActiveElement() {\n if (this.selectedItem)\n this.selectedItem.scrollIntoView({ block: 'nearest' });\n }\n\n /** Removes any active item's state */\n @Method()\n async resetActiveItem() {\n this.getItems\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i) => i.setAttribute('tabindex', '-1'));\n }\n\n // Private methods\n\n get getItems() {\n let items: ValidElement[];\n let opened = this.el.querySelectorAll('nano-nav-item.secondary-open');\n if (opened.length) {\n const ctx = opened[opened.length - 1] as HTMLNanoNavItemElement;\n items = Array.from(ctx.querySelectorAll('nano-nav-item, nano-option'));\n } else {\n items = getDirectChildren(\n this.el,\n 'nano-nav-item, nano-option',\n 'slot'\n ) as ValidElement[];\n }\n return items.filter((el) => !el.disabled && !el.hidden);\n }\n\n get activeItem() {\n const activeElement = getActiveElement();\n return this.getItems.find(\n (i) =>\n i.getAttribute('tabindex') === '0' ||\n i === activeElement ||\n i.classList.contains('has-focus')\n );\n }\n\n get selectedItem() {\n const activeElement = getActiveElement();\n return this.getItems.find((i) => i.selected || i === activeElement);\n }\n\n private async setActiveFocusItem(item?: ValidElement, focus = true) {\n const items = this.getItems;\n let activeItem =\n !item || item.disabled ? items.find((i) => i.selected) || items[0] : item;\n\n items\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i: HTMLNanoOptionElement) =>\n i.setAttribute('tabindex', i === activeItem ? '0' : '-1')\n );\n\n if (!focus) return;\n\n if (activeItem) {\n (activeItem as NNI).setFocus\n ? (activeItem as NNI).setFocus()\n : activeItem.focus();\n } else this.menu.focus();\n }\n\n // Event Handlers\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let found: boolean;\n\n if (kev.key) {\n if (kev.key !== 'Tab') return;\n found =\n getActiveElement() &&\n getActiveElement().closest(this.el.tagName.toLowerCase()) === this.el;\n } else found = !!e.composedPath().find((el) => el === this.el);\n\n if (!found) {\n this.resetActiveItem();\n this._hasFocus = false;\n this.nanoBlur.emit();\n }\n }\n\n private handleFocus = () => {\n this.setActiveFocusItem(this.selectedItem || this.getItems[0]);\n\n this._hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item = target.closest('nano-nav-item');\n\n if (item && !item.disabled) {\n this.nanoSelect.emit(item);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // When keying through the menu, if the mouse happens to be hovering over a menu item and the menu scrolls, the\n // mouseout/mouseover event will fire causing the selection to be different than what the user expects. This gives\n // us a way to temporarily ignore mouse events while the user is interacting with a keyboard.\n clearTimeout(this.ignoreMouseTimeout);\n this.ignoreMouseTimeout = setTimeout(\n () => (this.ignoreMouseEvents = false),\n 500\n );\n this.ignoreMouseEvents = true;\n\n // Make a selection when pressing enter\n switch (event.key) {\n case ' ':\n if (this.activeItem) this.activeItem.click();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'PageDown':\n case 'PageUp':\n case 'Home':\n case 'End':\n const items = this.getItems;\n const selectedItem = this.activeItem;\n let index = items.indexOf(selectedItem);\n\n if (items.length) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n index++;\n } else if (event.key === 'ArrowUp') {\n index--;\n } else if (event.key === 'Home' || event.key === 'PageUp') {\n index = 0;\n } else if (event.key === 'End' || event.key === 'PageDown') {\n index = items.length - 1;\n }\n\n if (index < 0) index = items.length - 1;\n if (index > items.length - 1) index = 0;\n\n this.setActiveFocusItem(items[index]);\n if (items[index]) items[index].scrollIntoView({ block: 'nearest' });\n return;\n }\n break;\n }\n\n // Handle type-to-search behavior when non-control characters are entered\n if (event.key === ' ' || /^[a-z0-9]+$/i.test(event.key)) {\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = setTimeout(\n () => (this.typeToSelect = ''),\n 750\n );\n this.typeToSelect += event.key;\n\n const items = this.getItems;\n for (const item of items) {\n const slot = item.shadowRoot.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement;\n const label = getTextContent(slot).toLowerCase().trim();\n if (\n label.substring(0, this.typeToSelect.length) === this.typeToSelect\n ) {\n this.setActiveFocusItem(item);\n break;\n }\n }\n }\n };\n\n private handleMouseOver = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item =\n target.closest('nano-nav-item') || target.closest('nano-option');\n\n if (item && !this.ignoreMouseEvents) {\n this.setActiveFocusItem(item);\n }\n };\n\n // Component Lifecycle\n\n render() {\n return (\n <Host\n class={{\n legacy: !CANSHADOW,\n }}\n >\n <div\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseOver={this.handleMouseOver}\n onFocus={this.handleFocus}\n aria-label={this.label ? this.label : undefined}\n role={this.type}\n ref={(el) => (this.menu = el)}\n part=\"base\"\n class={{\n menu: true,\n ['menu--' + this.type]: true,\n 'menu--has-focus': this.hasFocus,\n }}\n tabIndex={-1}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/components/menu/menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Event,\n EventEmitter,\n Method,\n h,\n Host,\n Element,\n Prop,\n Listen,\n} from '@stencil/core';\nimport {\n getTextContent,\n getDirectChildren,\n getActiveElement,\n} from '../../utils';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\ntype ValidElement = HTMLNanoNavItemElement | HTMLNanoOptionElement;\ntype NNI = HTMLNanoNavItemElement;\n\n/**\n * Menu element. Commonly wrapped by `nano-dropdown` with `nano-option` and `nano-nav-item` elements nested.\n * Manages focus state / active.\n * @slot - The menu's content; `nano-option`, `nano-nav-item` elements as well as <hr> and more.\n */\n@Component({\n tag: 'nano-menu',\n styleUrl: 'menu.scss',\n shadow: true,\n})\nexport class Menu {\n private ignoreMouseEvents = false;\n private ignoreMouseTimeout: any;\n private menu: HTMLElement;\n private typeToSelect = '';\n private typeToSelectTimeout: any;\n\n @Element() private el: HTMLNanoMenuElement;\n\n // Public API\n\n /** get the focus state of the menu @readonly */\n @Prop()\n get hasFocus() {\n return this._hasFocus;\n }\n private _hasFocus = false;\n\n /** changes the role of the underlying control - sometimes required for semantics */\n @Prop() type: 'menu' | 'listbox' = 'menu';\n\n /** an accessible label */\n @Prop() label: string;\n\n // Events\n\n /** Emitted when the menu gains focus. */\n @Event() nanoFocus: EventEmitter;\n\n /** Emitted when the menu loses focus. */\n @Event() nanoBlur: EventEmitter;\n\n /** Emitted when a menu item is selected. */\n @Event() nanoSelect: EventEmitter<\n HTMLNanoOptionElement | HTMLNanoNavItemElement\n >;\n\n // Public Methods\n\n /** Sets focus on the menu. */\n @Method()\n async setFocus() {\n if (this.menu?.focus) this.menu.focus({ preventScroll: true });\n }\n\n /** Removes focus from the menu. */\n @Method()\n async removeFocus() {\n if (this.menu?.blur) this.menu.blur();\n }\n\n /** Sets the current active item */\n @Method()\n async showActiveElement() {\n if (this.selectedItem)\n this.selectedItem.scrollIntoView({ block: 'nearest' });\n }\n\n /** Removes any active item's state */\n @Method()\n async resetActiveItem() {\n this.getItems\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i) => i.setAttribute('tabindex', '-1'));\n }\n\n // Private methods\n\n get getItems() {\n let items: ValidElement[];\n let opened = this.el.querySelectorAll('nano-nav-item.secondary-open');\n if (opened.length) {\n const ctx = opened[opened.length - 1] as HTMLNanoNavItemElement;\n items = Array.from(ctx.querySelectorAll('nano-nav-item, nano-option'));\n } else {\n items = getDirectChildren(\n this.el,\n 'nano-nav-item, nano-option',\n 'slot'\n ) as ValidElement[];\n }\n return items.filter((el) => !el.disabled && !el.hidden);\n }\n\n get activeItem() {\n const activeElement = getActiveElement();\n return this.getItems.find(\n (i) =>\n i.getAttribute('tabindex') === '0' ||\n i === activeElement ||\n i.classList.contains('has-focus')\n );\n }\n\n get selectedItem() {\n return this.getItems.find((i) => i.selected);\n }\n\n private async setActiveFocusItem(item?: ValidElement, focus = true) {\n const items = this.getItems;\n let activeItem =\n !item || item.disabled ? items.find((i) => i.selected) || items[0] : item;\n\n items\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i: HTMLNanoOptionElement) =>\n i.setAttribute('tabindex', i === activeItem ? '0' : '-1')\n );\n\n if (!focus) return;\n\n if (activeItem) {\n (activeItem as NNI).setFocus\n ? (activeItem as NNI).setFocus()\n : activeItem.focus();\n } else this.menu.focus();\n }\n\n // Event Handlers\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let found: boolean;\n\n if (kev.key) {\n if (kev.key !== 'Tab') return;\n found =\n getActiveElement() &&\n getActiveElement().closest(this.el.tagName.toLowerCase()) === this.el;\n } else found = !!e.composedPath().find((el) => el === this.el);\n\n if (!found) {\n this.resetActiveItem();\n this._hasFocus = false;\n this.nanoBlur.emit();\n }\n }\n\n private handleFocus = () => {\n this.setActiveFocusItem(this.selectedItem || this.getItems[0]);\n\n this._hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item = target.closest('nano-nav-item');\n\n if (item && !item.disabled) {\n this.nanoSelect.emit(item);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // When keying through the menu, if the mouse happens to be hovering over a menu item and the menu scrolls, the\n // mouseout/mouseover event will fire causing the selection to be different than what the user expects. This gives\n // us a way to temporarily ignore mouse events while the user is interacting with a keyboard.\n clearTimeout(this.ignoreMouseTimeout);\n this.ignoreMouseTimeout = setTimeout(\n () => (this.ignoreMouseEvents = false),\n 500\n );\n this.ignoreMouseEvents = true;\n\n // Make a selection when pressing enter\n switch (event.key) {\n case ' ':\n if (this.activeItem) this.activeItem.click();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'PageDown':\n case 'PageUp':\n case 'Home':\n case 'End':\n const items = this.getItems;\n const selectedItem = this.activeItem;\n let index = items.indexOf(selectedItem);\n\n if (items.length) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n index++;\n } else if (event.key === 'ArrowUp') {\n index--;\n } else if (event.key === 'Home' || event.key === 'PageUp') {\n index = 0;\n } else if (event.key === 'End' || event.key === 'PageDown') {\n index = items.length - 1;\n }\n\n if (index < 0) index = items.length - 1;\n if (index > items.length - 1) index = 0;\n\n this.setActiveFocusItem(items[index]);\n if (items[index]) items[index].scrollIntoView({ block: 'nearest' });\n return;\n }\n break;\n }\n\n // Handle type-to-search behavior when non-control characters are entered\n if (event.key === ' ' || /^[a-z0-9]+$/i.test(event.key)) {\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = setTimeout(\n () => (this.typeToSelect = ''),\n 750\n );\n this.typeToSelect += event.key;\n\n const items = this.getItems;\n for (const item of items) {\n const slot = item.shadowRoot.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement;\n const label = getTextContent(slot).toLowerCase().trim();\n if (\n label.substring(0, this.typeToSelect.length) === this.typeToSelect\n ) {\n this.setActiveFocusItem(item);\n break;\n }\n }\n }\n };\n\n private handleMouseOver = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item =\n target.closest('nano-nav-item') || target.closest('nano-option');\n\n if (item && !this.ignoreMouseEvents) {\n this.setActiveFocusItem(item);\n }\n };\n\n // Component Lifecycle\n\n render() {\n return (\n <Host\n class={{\n legacy: !CANSHADOW,\n }}\n >\n <div\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseOver={this.handleMouseOver}\n onFocus={this.handleFocus}\n aria-label={this.label ? this.label : undefined}\n role={this.type}\n ref={(el) => (this.menu = el)}\n part=\"base\"\n class={{\n menu: true,\n ['menu--' + this.type]: true,\n 'menu--has-focus': this.hasFocus,\n }}\n tabIndex={-1}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
|
@@ -516,7 +516,7 @@ export class NavItem {
|
|
516
516
|
"references": {
|
517
517
|
"NavItemEventDetail": {
|
518
518
|
"location": "import",
|
519
|
-
"path": "/builds/
|
519
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
520
520
|
}
|
521
521
|
}
|
522
522
|
}
|
@@ -536,7 +536,7 @@ export class NavItem {
|
|
536
536
|
"references": {
|
537
537
|
"NavItemEventDetail": {
|
538
538
|
"location": "import",
|
539
|
-
"path": "/builds/
|
539
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
540
540
|
}
|
541
541
|
}
|
542
542
|
}
|
@@ -556,7 +556,7 @@ export class NavItem {
|
|
556
556
|
"references": {
|
557
557
|
"NavItemEventDetail": {
|
558
558
|
"location": "import",
|
559
|
-
"path": "/builds/
|
559
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
560
560
|
}
|
561
561
|
}
|
562
562
|
}
|
@@ -576,7 +576,7 @@ export class NavItem {
|
|
576
576
|
"references": {
|
577
577
|
"NavItemEventDetail": {
|
578
578
|
"location": "import",
|
579
|
-
"path": "/builds/
|
579
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
580
580
|
}
|
581
581
|
}
|
582
582
|
}
|
@@ -370,7 +370,7 @@ export class Range {
|
|
370
370
|
"references": {
|
371
371
|
"Color": {
|
372
372
|
"location": "import",
|
373
|
-
"path": "/builds/
|
373
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
374
374
|
}
|
375
375
|
}
|
376
376
|
},
|
@@ -594,7 +594,7 @@ export class Range {
|
|
594
594
|
"references": {
|
595
595
|
"RangeValue": {
|
596
596
|
"location": "import",
|
597
|
-
"path": "/builds/
|
597
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
598
598
|
}
|
599
599
|
}
|
600
600
|
},
|
@@ -632,7 +632,7 @@ export class Range {
|
|
632
632
|
"references": {
|
633
633
|
"RangeChangeEventDetail": {
|
634
634
|
"location": "import",
|
635
|
-
"path": "/builds/
|
635
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
636
636
|
}
|
637
637
|
}
|
638
638
|
}
|
@@ -655,7 +655,7 @@ export class Range {
|
|
655
655
|
"references": {
|
656
656
|
"StyleEventDetail": {
|
657
657
|
"location": "import",
|
658
|
-
"path": "/builds/
|
658
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
659
659
|
}
|
660
660
|
}
|
661
661
|
}
|
@@ -38,6 +38,8 @@ export class ResizeObserve {
|
|
38
38
|
});
|
39
39
|
if (hasChanged)
|
40
40
|
this.applyChanges(changedStates);
|
41
|
+
else if (!this.classNames.includes('is-ready'))
|
42
|
+
this.classNames = ['is-ready'];
|
41
43
|
};
|
42
44
|
}
|
43
45
|
dimensionChanged() {
|
@@ -84,7 +86,7 @@ export class ResizeObserve {
|
|
84
86
|
});
|
85
87
|
});
|
86
88
|
});
|
87
|
-
this.classNames = classNames;
|
89
|
+
this.classNames = ['is-ready', ...classNames];
|
88
90
|
this.nanoResizeStateChange.emit(this.toSimpleObj(changes));
|
89
91
|
}
|
90
92
|
toSimpleObj(stateMaps) {
|
@@ -103,7 +105,7 @@ export class ResizeObserve {
|
|
103
105
|
this.currentHeight = entry.contentRect.height;
|
104
106
|
}
|
105
107
|
});
|
106
|
-
this.ro.observe(this.
|
108
|
+
this.ro.observe(this.host);
|
107
109
|
}
|
108
110
|
connectedCallback() {
|
109
111
|
this.assessChanges = debounce(this.assessChanges, 50);
|
@@ -113,7 +115,7 @@ export class ResizeObserve {
|
|
113
115
|
return;
|
114
116
|
if (!this.currentWidth || !this.currentHeight) {
|
115
117
|
readTask(() => {
|
116
|
-
const { width, height } = this.
|
118
|
+
const { width, height } = this.host.getBoundingClientRect();
|
117
119
|
this.currentWidth = width;
|
118
120
|
this.currentHeight = height;
|
119
121
|
});
|
@@ -128,8 +130,7 @@ export class ResizeObserve {
|
|
128
130
|
return (h(Host, { class: {
|
129
131
|
[this.classNames.join(' ')]: true,
|
130
132
|
} },
|
131
|
-
h("
|
132
|
-
h("slot", null))));
|
133
|
+
h("slot", null)));
|
133
134
|
}
|
134
135
|
static get is() { return "nano-resize-observe"; }
|
135
136
|
static get encapsulation() { return "shadow"; }
|
@@ -176,7 +177,7 @@ export class ResizeObserve {
|
|
176
177
|
"references": {
|
177
178
|
"ResizeStateChangeEventDetail": {
|
178
179
|
"location": "import",
|
179
|
-
"path": "/builds/
|
180
|
+
"path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
|
180
181
|
}
|
181
182
|
}
|
182
183
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"resize-observe.js","sourceRoot":"","sources":["../../../src/components/resize-observe/resize-observe.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Host,\n State,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n readTask,\n} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { debounce } from '../../utils';\nimport type { ResizeStateChangeEventDetail } from '../../interface';\n\ntype ResizeObserverState = { states?: string[]; applied?: boolean };\ninterface StateMaps {\n h: Map<number, ResizeObserverState>;\n w: Map<number, ResizeObserverState>;\n}\n\n/**\n * A Resize-Observer utility component.\n * Takes a string list of sizes and optional class-names. Adds class-names and fires `nanoResizeStateChange` events when the component reaches those sizes.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-resize-observe',\n shadow: true,\n styles: `:host { display: inline-block } div { height: 100%; }`,\n})\nexport class ResizeObserve implements ComponentInterface {\n private ro: ResizeObserver;\n private appliedStates: StateMaps;\n private el: HTMLDivElement;\n\n @Element() host: HTMLNanoResizeObserveElement;\n @State() currentWidth: number;\n @State() currentHeight: number;\n @State() classNames: string[] = [];\n\n /** string list of sizes and optional class-names. Adds class-names and fires nanoResizeStateChange events. Upon hitting breakpoints.\n * Format: `states=\"800w, 300h class1 class2\"` */\n @Prop() states: string;\n\n /** A resize break point is switched on or off */\n @Event() nanoResizeStateChange!: EventEmitter<ResizeStateChangeEventDetail>;\n\n @Watch('currentHeight')\n @Watch('currentWidth')\n dimensionChanged() {\n this.assessChanges();\n }\n\n @Watch('states')\n statesChanged() {\n if (!this.states) return;\n if (!this.ro) this.attachRO();\n\n const toBpDir = (bpDir: string) => {\n const bpDirSpl = bpDir.split(/(\\d+)/).filter((bs) => bs.length);\n return { bp: parseInt(bpDirSpl[0]), dir: bpDirSpl[1] };\n };\n this.appliedStates = { h: new Map(), w: new Map() };\n\n // parse state string\n this.states.split(',').map((st) => {\n st = st.trim();\n if (st.includes(' ')) {\n const [key, ...classes] = st.split(' ');\n const { bp, dir } = toBpDir(key);\n this.appliedStates[dir as keyof StateMaps].set(bp, {\n states: classes,\n applied: false,\n });\n } else {\n const { bp, dir } = toBpDir(st);\n this.appliedStates[dir as keyof StateMaps].set(bp, { applied: false });\n }\n });\n }\n\n private assessChanges = () => {\n if (!this.currentWidth && !this.currentHeight) return;\n const changedStates: StateMaps = { h: new Map(), w: new Map() };\n let hasChanged = false;\n\n Object.keys(this.appliedStates).forEach((dimType) => {\n let dim: number;\n if (dimType === 'h') dim = this.currentHeight;\n else dim = this.currentWidth;\n\n this.appliedStates[dimType].forEach(\n (state: ResizeObserverState, bp: number) => {\n if (dim >= bp && state.applied === false) {\n state.applied = true;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n } else if (dim < bp && state.applied === true) {\n state.applied = false;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n }\n }\n );\n });\n if (hasChanged) this.applyChanges(changedStates);\n };\n\n private applyChanges(changes: StateMaps) {\n let classNames = [...this.classNames];\n Object.keys(changes).forEach((dimType: keyof StateMaps) => {\n changes[dimType].forEach((state) => {\n if (!state.states) return;\n state.states.map((st) => {\n if (state.applied) classNames.push(st);\n else classNames = classNames.filter((cl) => cl !== st);\n });\n });\n });\n this.classNames = classNames;\n this.nanoResizeStateChange.emit(this.toSimpleObj(changes));\n }\n\n private toSimpleObj(stateMaps: StateMaps) {\n const retObj = {};\n Object.keys(stateMaps).forEach((dimType: keyof StateMaps) => {\n stateMaps[dimType].forEach((state: ResizeObserverState, bp: number) => {\n retObj[bp + dimType] = state.applied;\n });\n });\n return retObj;\n }\n\n private attachRO() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n });\n this.ro.observe(this.el);\n }\n\n connectedCallback() {\n this.assessChanges = debounce(this.assessChanges, 50);\n }\n\n componentDidLoad() {\n if (!this.states) return;\n if (!this.currentWidth || !this.currentHeight) {\n readTask(() => {\n const { width, height } = this.el.getBoundingClientRect();\n this.currentWidth = width;\n this.currentHeight = height;\n });\n }\n this.statesChanged();\n }\n\n disconnectedCallback() {\n if (this.ro) this.ro.disconnect();\n }\n\n render() {\n return (\n <Host\n class={{\n [this.classNames.join(' ')]: true,\n }}\n >\n <div ref={(div) => (this.el = div)}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"resize-observe.js","sourceRoot":"","sources":["../../../src/components/resize-observe/resize-observe.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Host,\n State,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n readTask,\n} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { debounce } from '../../utils';\nimport type { ResizeStateChangeEventDetail } from '../../interface';\n\ntype ResizeObserverState = { states?: string[]; applied?: boolean };\ninterface StateMaps {\n h: Map<number, ResizeObserverState>;\n w: Map<number, ResizeObserverState>;\n}\n\n/**\n * A Resize-Observer utility component.\n * Takes a string list of sizes and optional class-names. Adds class-names and fires `nanoResizeStateChange` events when the component reaches those sizes.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-resize-observe',\n shadow: true,\n styles: `:host { display: inline-block } div { height: 100%; }`,\n})\nexport class ResizeObserve implements ComponentInterface {\n private ro: ResizeObserver;\n private appliedStates: StateMaps;\n\n @Element() host: HTMLNanoResizeObserveElement;\n @State() currentWidth: number;\n @State() currentHeight: number;\n @State() classNames: string[] = [];\n\n /** string list of sizes and optional class-names. Adds class-names and fires nanoResizeStateChange events. Upon hitting breakpoints.\n * Format: `states=\"800w, 300h class1 class2\"` */\n @Prop() states: string;\n\n /** A resize break point is switched on or off */\n @Event() nanoResizeStateChange!: EventEmitter<ResizeStateChangeEventDetail>;\n\n @Watch('currentHeight')\n @Watch('currentWidth')\n dimensionChanged() {\n this.assessChanges();\n }\n\n @Watch('states')\n statesChanged() {\n if (!this.states) return;\n if (!this.ro) this.attachRO();\n\n const toBpDir = (bpDir: string) => {\n const bpDirSpl = bpDir.split(/(\\d+)/).filter((bs) => bs.length);\n return { bp: parseInt(bpDirSpl[0]), dir: bpDirSpl[1] };\n };\n this.appliedStates = { h: new Map(), w: new Map() };\n\n // parse state string\n this.states.split(',').map((st) => {\n st = st.trim();\n if (st.includes(' ')) {\n const [key, ...classes] = st.split(' ');\n const { bp, dir } = toBpDir(key);\n this.appliedStates[dir as keyof StateMaps].set(bp, {\n states: classes,\n applied: false,\n });\n } else {\n const { bp, dir } = toBpDir(st);\n this.appliedStates[dir as keyof StateMaps].set(bp, { applied: false });\n }\n });\n }\n\n private assessChanges = () => {\n if (!this.currentWidth && !this.currentHeight) return;\n const changedStates: StateMaps = { h: new Map(), w: new Map() };\n let hasChanged = false;\n\n Object.keys(this.appliedStates).forEach((dimType) => {\n let dim: number;\n if (dimType === 'h') dim = this.currentHeight;\n else dim = this.currentWidth;\n\n this.appliedStates[dimType].forEach(\n (state: ResizeObserverState, bp: number) => {\n if (dim >= bp && state.applied === false) {\n state.applied = true;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n } else if (dim < bp && state.applied === true) {\n state.applied = false;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n }\n }\n );\n });\n if (hasChanged) this.applyChanges(changedStates);\n else if (!this.classNames.includes('is-ready'))\n this.classNames = ['is-ready'];\n };\n\n private applyChanges(changes: StateMaps) {\n let classNames = [...this.classNames];\n Object.keys(changes).forEach((dimType: keyof StateMaps) => {\n changes[dimType].forEach((state) => {\n if (!state.states) return;\n state.states.map((st) => {\n if (state.applied) classNames.push(st);\n else classNames = classNames.filter((cl) => cl !== st);\n });\n });\n });\n this.classNames = ['is-ready', ...classNames];\n this.nanoResizeStateChange.emit(this.toSimpleObj(changes));\n }\n\n private toSimpleObj(stateMaps: StateMaps) {\n const retObj = {};\n Object.keys(stateMaps).forEach((dimType: keyof StateMaps) => {\n stateMaps[dimType].forEach((state: ResizeObserverState, bp: number) => {\n retObj[bp + dimType] = state.applied;\n });\n });\n return retObj;\n }\n\n private attachRO() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n });\n this.ro.observe(this.host);\n }\n\n connectedCallback() {\n this.assessChanges = debounce(this.assessChanges, 50);\n }\n\n componentDidLoad() {\n if (!this.states) return;\n if (!this.currentWidth || !this.currentHeight) {\n readTask(() => {\n const { width, height } = this.host.getBoundingClientRect();\n this.currentWidth = width;\n this.currentHeight = height;\n });\n }\n this.statesChanged();\n }\n\n disconnectedCallback() {\n if (this.ro) this.ro.disconnect();\n }\n\n render() {\n return (\n <Host\n class={{\n [this.classNames.join(' ')]: true,\n }}\n >\n <slot />\n </Host>\n );\n }\n}\n"]}
|
@@ -14,6 +14,39 @@
|
|
14
14
|
opacity: 0.5;
|
15
15
|
}
|
16
16
|
|
17
|
+
.form-ctrl {
|
18
|
+
min-width: 100%;
|
19
|
+
display: block;
|
20
|
+
}
|
21
|
+
.form-ctrl.has-helper-end {
|
22
|
+
display: -webkit-box;
|
23
|
+
display: -ms-flexbox;
|
24
|
+
display: flex;
|
25
|
+
gap: 1rem;
|
26
|
+
opacity: 0;
|
27
|
+
}
|
28
|
+
.form-ctrl.has-helper-end.is-ready {
|
29
|
+
opacity: 1;
|
30
|
+
}
|
31
|
+
.form-ctrl.has-helper-end .form-ctrl__wrapper {
|
32
|
+
-webkit-box-flex: 1;
|
33
|
+
-ms-flex: 1 1 100%;
|
34
|
+
flex: 1 1 100%;
|
35
|
+
}
|
36
|
+
.form-ctrl.has-helper-end .form-ctrl__helper-end {
|
37
|
+
display: none;
|
38
|
+
}
|
39
|
+
.form-ctrl.has-helper-end.has-enough-width .form-ctrl__helper-end {
|
40
|
+
display: block;
|
41
|
+
}
|
42
|
+
.form-ctrl.has-helper-end.has-enough-width .form-ctrl__helper {
|
43
|
+
display: none;
|
44
|
+
}
|
45
|
+
|
46
|
+
.form-ctrl__wrapper {
|
47
|
+
display: block;
|
48
|
+
}
|
49
|
+
|
17
50
|
label,
|
18
51
|
.form-ctrl__more,
|
19
52
|
.form-ctrl__error,
|
@@ -64,6 +97,14 @@ label.visually-hide,
|
|
64
97
|
font-size: 0.8em;
|
65
98
|
opacity: 0.7;
|
66
99
|
}
|
100
|
+
.form-ctrl__float-label .form-ctrl__label-charcount {
|
101
|
+
opacity: 0;
|
102
|
+
-webkit-transition: opacity 0.125s ease-in;
|
103
|
+
transition: opacity 0.125s ease-in;
|
104
|
+
}
|
105
|
+
:host(.has-focus) .form-ctrl__float-label .form-ctrl__label-charcount, :host(.has-value) .form-ctrl__float-label .form-ctrl__label-charcount {
|
106
|
+
opacity: 1;
|
107
|
+
}
|
67
108
|
.form-ctrl__textarea .form-ctrl__float-label {
|
68
109
|
top: 50%;
|
69
110
|
}
|
@@ -181,6 +222,16 @@ label.visually-hide,
|
|
181
222
|
opacity: 0;
|
182
223
|
}
|
183
224
|
|
225
|
+
.form-ctrl__helper-end {
|
226
|
+
-webkit-box-flex: 1;
|
227
|
+
-ms-flex: 1 1 30%;
|
228
|
+
flex: 1 1 30%;
|
229
|
+
min-width: 150px;
|
230
|
+
font-size: var(--invalid-msg-font-size);
|
231
|
+
color: var(--help-msg-color);
|
232
|
+
font-style: italic;
|
233
|
+
}
|
234
|
+
|
184
235
|
.form-ctrl__error {
|
185
236
|
opacity: 0;
|
186
237
|
color: var(--invalid-msg-color);
|
@@ -372,7 +423,7 @@ label.visually-hide,
|
|
372
423
|
|
373
424
|
* @prop --padding-top: defaults to var(--nano-input-padding-top, var(--nano-input-padding, 8px));;
|
374
425
|
* @prop --padding-end: defaults to var(--nano-input-padding-end, var(--nano-input-padding, 8px));
|
375
|
-
* @prop --padding-bottom: defaults to var(--nano-input-padding-bottom, var(--nano-input-padding,
|
426
|
+
* @prop --padding-bottom: defaults to var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));
|
376
427
|
* @prop --padding-start: defaults to var(--nano-input-padding-start, var(--nano-input-padding, 8px));
|
377
428
|
|
378
429
|
* @prop --color-invalid: defaults to var(--nano-color-danger-rgb, 239, 65, 53);
|
@@ -415,7 +466,7 @@ label.visually-hide,
|
|
415
466
|
--placeholder-opacity: var(--nano-input-placeholder-opacity, 0.5);
|
416
467
|
--padding-top: var(--nano-input-padding-top, var(--nano-input-padding, 8px));
|
417
468
|
--padding-end: var(--nano-input-padding-end, var(--nano-input-padding, 8px));
|
418
|
-
--padding-bottom: var(--nano-input-padding-bottom, var(--nano-input-padding,
|
469
|
+
--padding-bottom: var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));
|
419
470
|
--padding-start: var(--nano-input-padding-start, var(--nano-input-padding, 8px));
|
420
471
|
--color-invalid: var(--nano-color-danger-rgb, 239, 65, 53);
|
421
472
|
--color--focus-rgb:
|
@@ -453,7 +504,7 @@ label.visually-hide,
|
|
453
504
|
width: 100%;
|
454
505
|
padding: 0 !important;
|
455
506
|
font-family: var(--nano-font-family, inherit);
|
456
|
-
display:
|
507
|
+
display: block;
|
457
508
|
}
|
458
509
|
|
459
510
|
:host(.nano-color) {
|
@@ -661,8 +712,8 @@ select {
|
|
661
712
|
white-space: inherit;
|
662
713
|
color: inherit;
|
663
714
|
pointer-events: none;
|
664
|
-
line-height: 2.
|
665
|
-
min-height: 2.
|
715
|
+
line-height: 2.5em;
|
716
|
+
min-height: 2.5em;
|
666
717
|
}
|
667
718
|
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
|
668
719
|
.select__mask {
|
@@ -714,7 +765,7 @@ select {
|
|
714
765
|
padding-top: calc(var(--padding-top) / 2);
|
715
766
|
padding-bottom: 0;
|
716
767
|
min-width: 50px;
|
717
|
-
|
768
|
+
width: 100%;
|
718
769
|
max-height: 100%;
|
719
770
|
-webkit-appearance: none;
|
720
771
|
-moz-appearance: none;
|
@@ -727,7 +778,7 @@ select {
|
|
727
778
|
-ms-flex: 0;
|
728
779
|
flex: 0;
|
729
780
|
position: relative;
|
730
|
-
min-height: calc(2.
|
781
|
+
min-height: calc(2.5em - var(--padding-top));
|
731
782
|
-webkit-box-sizing: border-box;
|
732
783
|
box-sizing: border-box;
|
733
784
|
}
|
@@ -828,6 +879,9 @@ select {
|
|
828
879
|
--color: var(--multi-input-value-text-color);
|
829
880
|
}
|
830
881
|
|
882
|
+
.form-ctrl__float-label {
|
883
|
+
width: calc(100% - (1em + (var(--padding-start) * 2)));
|
884
|
+
}
|
831
885
|
:host(.has-focus.has-multiple) .form-ctrl__float-label {
|
832
886
|
-webkit-transform: translateY(-110%);
|
833
887
|
transform: translateY(-110%);
|