@nanoporetech-digital/components 9.0.1 → 9.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{algolia-data-YqTcrA7B.js → algolia-data-BEfDDPWP.js} +1 -1
- package/dist/cjs/{component-store-BsFgDzFM.js → component-store-DFsNILxg.js} +1 -1
- package/dist/cjs/{constructible-style-D0zEjr9J.js → constructible-style-CRdAciHm.js} +1 -1
- package/dist/cjs/{dom-GglTcT7o.js → dom-CIEcUG2R.js} +1 -1
- package/dist/cjs/{fade-CDGKmRbB.js → fade-Cng4p1KQ.js} +3 -3
- package/dist/cjs/{form-control-DKTdW_gr.js → form-control-DdnBRckY.js} +1 -1
- package/dist/cjs/{fullscreen-BmuHM8Mq.js → fullscreen-BYNt89kR.js} +3 -3
- package/dist/cjs/{index-ap26V5bu.js → index-C7Ikbhe3.js} +13 -5
- package/dist/cjs/{index-CeVPSufd.js → index-gxQOxlH_.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/{lazyload-CBgO3EAI.js → lazyload-CLpLl1ob.js} +3 -3
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{modal-CjPWcL9B.js → modal-DWvvpfeI.js} +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +3 -3
- package/dist/cjs/nano-alert.cjs.entry.js +7 -7
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +4 -4
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia-results.cjs.entry.js +3 -3
- package/dist/cjs/nano-algolia.cjs.entry.js +5 -5
- package/dist/cjs/nano-animation.cjs.entry.js +2 -2
- package/dist/cjs/nano-avatar_5.cjs.entry.js +9 -9
- package/dist/cjs/nano-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/nano-card-carousel.cjs.entry.js +2 -2
- package/dist/cjs/nano-card.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/nano-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/nano-collapsible-comparison.cjs.entry.js +2 -2
- package/dist/cjs/nano-components.cjs.js +2 -2
- package/dist/cjs/nano-content-links.cjs.entry.js +1 -1
- package/dist/cjs/nano-cta.cjs.entry.js +1 -1
- package/dist/cjs/{nano-data-table-B3KUstGL.js → nano-data-table-DRp3MvIh.js} +5 -5
- package/dist/cjs/nano-data-table.cjs.entry.js +6 -6
- package/dist/cjs/nano-datalist_3.cjs.entry.js +3 -3
- package/dist/cjs/nano-date-input.cjs.entry.js +2 -2
- package/dist/cjs/nano-date-picker_2.cjs.entry.js +4 -4
- package/dist/cjs/nano-details.cjs.entry.js +3 -3
- package/dist/cjs/nano-dialog.cjs.entry.js +8 -8
- package/dist/cjs/nano-dropdown_2.cjs.entry.js +5 -5
- package/dist/cjs/nano-feature-box.cjs.entry.js +1 -1
- package/dist/cjs/nano-field-validator.cjs.entry.js +3 -3
- package/dist/cjs/nano-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/nano-footer.cjs.entry.js +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +29 -14
- package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/nano-grid_2.cjs.entry.js +3 -3
- package/dist/cjs/nano-hero.cjs.entry.js +2 -2
- package/dist/cjs/nano-icon-button_2.cjs.entry.js +2 -2
- package/dist/cjs/nano-icon-item.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +2 -2
- package/dist/cjs/nano-in-page-nav.cjs.entry.js +5 -5
- package/dist/cjs/nano-increment.cjs.entry.js +2 -2
- package/dist/cjs/nano-input-otp.cjs.entry.js +2 -2
- package/dist/cjs/nano-intersection-observe.cjs.entry.js +4 -4
- package/dist/cjs/nano-masked-overflow.cjs.entry.js +4 -4
- package/dist/cjs/nano-mdd-item.cjs.entry.js +37 -0
- package/dist/cjs/nano-mdd.cjs.entry.js +57 -0
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +4 -4
- package/dist/cjs/nano-more-less.cjs.entry.js +2 -2
- package/dist/cjs/nano-nav-item.cjs.entry.js +130 -94
- package/dist/cjs/nano-option-box.cjs.entry.js +1 -1
- package/dist/cjs/nano-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +2 -2
- package/dist/cjs/nano-rating.cjs.entry.js +2 -2
- package/dist/cjs/nano-resize-observe.cjs.entry.js +2 -2
- package/dist/cjs/nano-search-result.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +2 -2
- package/dist/cjs/{nano-slides-BONrNv9H.js → nano-slides-QbssxNUC.js} +5 -5
- package/dist/cjs/nano-slides.cjs.entry.js +3 -3
- package/dist/cjs/nano-sortable.cjs.entry.js +2 -2
- package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/nano-step-accordion.cjs.entry.js +2 -2
- package/dist/cjs/nano-step-breadcrumb.cjs.entry.js +3 -3
- package/dist/cjs/nano-sticker.cjs.entry.js +4 -4
- package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab-group.cjs.entry.js +4 -4
- package/dist/cjs/nano-tab.cjs.entry.js +2 -2
- package/dist/cjs/nano-table.cjs.entry.js +2 -2
- package/dist/cjs/{renderer-D1xFLJsH.js → renderer-bX7EsIYR.js} +1 -1
- package/dist/cjs/{scroll-C2cNPPnK.js → scroll-DC2gHZby.js} +1 -1
- package/dist/cjs/{slot-D0YPdT3s.js → slot-BRAzxuj_.js} +1 -1
- package/dist/cjs/{tabbable-D60VZB1O.js → tabbable-BXxsn02Z.js} +1 -1
- package/dist/cjs/{table.worker-ClLnKNqW.js → table.worker-CZYVrH2c.js} +6 -6
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/global-nav/global-nav.js +27 -12
- package/dist/collection/components/mdd/mdd-item.css +146 -0
- package/dist/collection/components/mdd/mdd-item.js +97 -0
- package/dist/collection/components/mdd/mdd.css +55 -0
- package/dist/collection/components/mdd/mdd.js +101 -0
- package/dist/collection/components/nav-item/nav-item.js +148 -18
- package/dist/components/nano-global-nav.js +27 -12
- package/dist/components/nano-mdd-item.d.ts +11 -0
- package/dist/components/nano-mdd-item.js +69 -0
- package/dist/components/nano-mdd.d.ts +11 -0
- package/dist/components/nano-mdd.js +76 -0
- package/dist/components/nav-item.js +127 -89
- package/dist/esm/{algolia-data-CrdfzSCx.js → algolia-data-D4SY17hw.js} +1 -1
- package/dist/esm/{component-store-Dwo45Eol.js → component-store-DCcnMDT0.js} +1 -1
- package/dist/esm/{constructible-style-8ZZJwMaU.js → constructible-style-BKXXXS9X.js} +1 -1
- package/dist/esm/{dom-QEz8hlsO.js → dom-DiLhOqyz.js} +1 -1
- package/dist/esm/{fade-7nCfOc5y.js → fade-CnvBzIGD.js} +3 -3
- package/dist/esm/{form-control-8eh0RGNw.js → form-control-DYfvQbOQ.js} +1 -1
- package/dist/esm/{fullscreen-h77Lkspo.js → fullscreen-BqihOK-Y.js} +3 -3
- package/dist/esm/{index-CuC61-2g.js → index-BSptZcXI.js} +1 -1
- package/dist/esm/{index-vpnVjPKQ.js → index-RXFO3HxS.js} +13 -5
- package/dist/esm/index.js +4 -4
- package/dist/esm/{lazyload-CGR82usu.js → lazyload-ClpqVun1.js} +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{modal-Dk_TZDiu.js → modal-DFUZVWqg.js} +1 -1
- package/dist/esm/nano-accordion.entry.js +3 -3
- package/dist/esm/nano-alert.entry.js +7 -7
- package/dist/esm/nano-algolia-filter.entry.js +4 -4
- package/dist/esm/nano-algolia-pagination.entry.js +2 -2
- package/dist/esm/nano-algolia-results.entry.js +3 -3
- package/dist/esm/nano-algolia.entry.js +5 -5
- package/dist/esm/nano-animation.entry.js +2 -2
- package/dist/esm/nano-avatar_5.entry.js +9 -9
- package/dist/esm/nano-breadcrumb.entry.js +1 -1
- package/dist/esm/nano-card-carousel.entry.js +2 -2
- package/dist/esm/nano-card.entry.js +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +2 -2
- package/dist/esm/nano-checkbox.entry.js +2 -2
- package/dist/esm/nano-collapsible-comparison.entry.js +2 -2
- package/dist/esm/nano-components.js +3 -3
- package/dist/esm/nano-content-links.entry.js +1 -1
- package/dist/esm/nano-cta.entry.js +1 -1
- package/dist/esm/{nano-data-table-HQJQG0Sv.js → nano-data-table-HS1UHCwO.js} +5 -5
- package/dist/esm/nano-data-table.entry.js +6 -6
- package/dist/esm/nano-datalist_3.entry.js +3 -3
- package/dist/esm/nano-date-input.entry.js +2 -2
- package/dist/esm/nano-date-picker_2.entry.js +4 -4
- package/dist/esm/nano-details.entry.js +3 -3
- package/dist/esm/nano-dialog.entry.js +8 -8
- package/dist/esm/nano-dropdown_2.entry.js +5 -5
- package/dist/esm/nano-feature-box.entry.js +1 -1
- package/dist/esm/nano-field-validator.entry.js +3 -3
- package/dist/esm/nano-file-upload.entry.js +2 -2
- package/dist/esm/nano-footer.entry.js +1 -1
- package/dist/esm/nano-global-nav.entry.js +29 -14
- package/dist/esm/nano-grid-item.entry.js +1 -1
- package/dist/esm/nano-grid_2.entry.js +3 -3
- package/dist/esm/nano-hero.entry.js +2 -2
- package/dist/esm/nano-icon-button_2.entry.js +2 -2
- package/dist/esm/nano-icon-item.entry.js +1 -1
- package/dist/esm/nano-icon.entry.js +2 -2
- package/dist/esm/nano-in-page-nav.entry.js +5 -5
- package/dist/esm/nano-increment.entry.js +2 -2
- package/dist/esm/nano-input-otp.entry.js +2 -2
- package/dist/esm/nano-intersection-observe.entry.js +4 -4
- package/dist/esm/nano-masked-overflow.entry.js +4 -4
- package/dist/esm/nano-mdd-item.entry.js +35 -0
- package/dist/esm/nano-mdd.entry.js +55 -0
- package/dist/esm/nano-menu-drawer.entry.js +4 -4
- package/dist/esm/nano-more-less.entry.js +2 -2
- package/dist/esm/nano-nav-item.entry.js +130 -94
- package/dist/esm/nano-option-box.entry.js +1 -1
- package/dist/esm/nano-progress-bar.entry.js +1 -1
- package/dist/esm/nano-range.entry.js +2 -2
- package/dist/esm/nano-rating.entry.js +2 -2
- package/dist/esm/nano-resize-observe.entry.js +2 -2
- package/dist/esm/nano-search-result.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js +2 -2
- package/dist/esm/{nano-slides-CMFKg_gU.js → nano-slides-WDFCFgZL.js} +5 -5
- package/dist/esm/nano-slides.entry.js +3 -3
- package/dist/esm/nano-sortable.entry.js +2 -2
- package/dist/esm/nano-spinner.entry.js +1 -1
- package/dist/esm/nano-split-pane.entry.js +2 -2
- package/dist/esm/nano-step-accordion.entry.js +2 -2
- package/dist/esm/nano-step-breadcrumb.entry.js +3 -3
- package/dist/esm/nano-sticker.entry.js +4 -4
- package/dist/esm/nano-tab-content.entry.js +2 -2
- package/dist/esm/nano-tab-group.entry.js +4 -4
- package/dist/esm/nano-tab.entry.js +2 -2
- package/dist/esm/nano-table.entry.js +2 -2
- package/dist/esm/{renderer-CTaemqrs.js → renderer-B_wACs4w.js} +1 -1
- package/dist/esm/{scroll-Cpis33Lx.js → scroll-CFCUiakV.js} +1 -1
- package/dist/esm/{slot-wHS7-PXA.js → slot-Cj55s-OG.js} +1 -1
- package/dist/esm/{tabbable-CT4-pg7f.js → tabbable-Dwh0pD2q.js} +1 -1
- package/dist/esm/{table.worker--BAXV6ow.js → table.worker-Cg52OK_a.js} +6 -6
- package/dist/nano-components/{algolia-data-CrdfzSCx.js → algolia-data-D4SY17hw.js} +1 -1
- package/dist/nano-components/{component-store-Dwo45Eol.js → component-store-DCcnMDT0.js} +1 -1
- package/dist/nano-components/{constructible-style-8ZZJwMaU.js → constructible-style-BKXXXS9X.js} +1 -1
- package/dist/nano-components/dom-DiLhOqyz.js +4 -0
- package/dist/nano-components/{fade-7nCfOc5y.js → fade-CnvBzIGD.js} +1 -1
- package/dist/nano-components/{form-control-8eh0RGNw.js → form-control-DYfvQbOQ.js} +1 -1
- package/dist/nano-components/{fullscreen-h77Lkspo.js → fullscreen-BqihOK-Y.js} +1 -1
- package/dist/nano-components/index-BSptZcXI.js +4 -0
- package/dist/nano-components/index-RXFO3HxS.js +5 -0
- package/dist/nano-components/index.esm.js +1 -1
- package/dist/nano-components/{lazyload-CGR82usu.js → lazyload-ClpqVun1.js} +1 -1
- package/dist/nano-components/{modal-Dk_TZDiu.js → modal-DFUZVWqg.js} +1 -1
- package/dist/nano-components/nano-accordion.entry.js +1 -1
- package/dist/nano-components/nano-alert.entry.js +1 -1
- package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
- package/dist/nano-components/nano-algolia-pagination.entry.js +1 -1
- package/dist/nano-components/nano-algolia-results.entry.js +1 -1
- package/dist/nano-components/nano-algolia.entry.js +1 -1
- package/dist/nano-components/nano-animation.entry.js +1 -1
- package/dist/nano-components/nano-avatar_5.entry.js +1 -1
- package/dist/nano-components/nano-breadcrumb.entry.js +1 -1
- package/dist/nano-components/nano-card-carousel.entry.js +1 -1
- package/dist/nano-components/nano-card.entry.js +1 -1
- package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
- package/dist/nano-components/nano-checkbox.entry.js +1 -1
- package/dist/nano-components/nano-collapsible-comparison.entry.js +1 -1
- package/dist/nano-components/nano-components.css +30 -105
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-content-links.entry.js +1 -1
- package/dist/nano-components/nano-cta.entry.js +1 -1
- package/dist/nano-components/{nano-data-table-HQJQG0Sv.js → nano-data-table-HS1UHCwO.js} +1 -1
- package/dist/nano-components/nano-data-table.entry.js +1 -1
- package/dist/nano-components/nano-datalist_3.entry.js +1 -1
- package/dist/nano-components/nano-date-input.entry.js +1 -1
- package/dist/nano-components/nano-date-picker_2.entry.js +1 -1
- package/dist/nano-components/nano-details.entry.js +1 -1
- package/dist/nano-components/nano-dialog.entry.js +1 -1
- package/dist/nano-components/nano-dropdown_2.entry.js +1 -1
- package/dist/nano-components/nano-feature-box.entry.js +1 -1
- package/dist/nano-components/nano-field-validator.entry.js +1 -1
- package/dist/nano-components/nano-file-upload.entry.js +1 -1
- package/dist/nano-components/nano-footer.entry.js +1 -1
- package/dist/nano-components/nano-global-nav.entry.js +1 -1
- package/dist/nano-components/nano-grid-item.entry.js +1 -1
- package/dist/nano-components/nano-grid_2.entry.js +1 -1
- package/dist/nano-components/nano-hero.entry.js +1 -1
- package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
- package/dist/nano-components/nano-icon-item.entry.js +1 -1
- package/dist/nano-components/nano-icon.entry.js +1 -1
- package/dist/nano-components/nano-in-page-nav.entry.js +1 -1
- package/dist/nano-components/nano-increment.entry.js +1 -1
- package/dist/nano-components/nano-input-otp.entry.js +1 -1
- package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
- package/dist/nano-components/nano-masked-overflow.entry.js +1 -1
- package/dist/nano-components/nano-mdd-item.entry.js +4 -0
- package/dist/nano-components/nano-mdd.entry.js +4 -0
- package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
- package/dist/nano-components/nano-more-less.entry.js +1 -1
- package/dist/nano-components/nano-nav-item.entry.js +1 -1
- package/dist/nano-components/nano-option-box.entry.js +1 -1
- package/dist/nano-components/nano-progress-bar.entry.js +1 -1
- package/dist/nano-components/nano-range.entry.js +1 -1
- package/dist/nano-components/nano-rating.entry.js +1 -1
- package/dist/nano-components/nano-resize-observe.entry.js +1 -1
- package/dist/nano-components/nano-search-result.entry.js +1 -1
- package/dist/nano-components/nano-slide.entry.js +1 -1
- package/dist/nano-components/{nano-slides-CMFKg_gU.js → nano-slides-WDFCFgZL.js} +4 -4
- package/dist/nano-components/nano-slides.entry.js +1 -1
- package/dist/nano-components/nano-sortable.entry.js +1 -1
- package/dist/nano-components/nano-spinner.entry.js +1 -1
- package/dist/nano-components/nano-split-pane.entry.js +1 -1
- package/dist/nano-components/nano-step-accordion.entry.js +1 -1
- package/dist/nano-components/nano-step-breadcrumb.entry.js +1 -1
- package/dist/nano-components/nano-sticker.entry.js +1 -1
- package/dist/nano-components/nano-tab-content.entry.js +1 -1
- package/dist/nano-components/nano-tab-group.entry.js +1 -1
- package/dist/nano-components/nano-tab.entry.js +1 -1
- package/dist/nano-components/nano-table.entry.js +1 -1
- package/dist/nano-components/{renderer-CTaemqrs.js → renderer-B_wACs4w.js} +1 -1
- package/dist/nano-components/{scroll-Cpis33Lx.js → scroll-CFCUiakV.js} +1 -1
- package/dist/nano-components/{slot-wHS7-PXA.js → slot-Cj55s-OG.js} +1 -1
- package/dist/nano-components/{tabbable-CT4-pg7f.js → tabbable-Dwh0pD2q.js} +1 -1
- package/dist/nano-components/{table.worker--BAXV6ow.js → table.worker-Cg52OK_a.js} +1 -1
- package/dist/style/components.css +1 -1
- package/dist/style/components.css.map +1 -1
- package/dist/style/nano.css +1 -1
- package/dist/style/nano.css.map +1 -1
- package/dist/types/components/global-nav/global-nav.d.ts +1 -0
- package/dist/types/components/mdd/mdd-item.d.ts +23 -0
- package/dist/types/components/mdd/mdd.d.ts +24 -0
- package/dist/types/components/nav-item/nav-item.d.ts +15 -0
- package/dist/types/components.d.ts +114 -0
- package/docs-json.json +238 -1
- package/docs-vscode.json +34 -0
- package/hydrate/index.js +275 -101
- package/hydrate/index.mjs +275 -101
- package/package.json +2 -2
- package/dist/nano-components/dom-QEz8hlsO.js +0 -4
- package/dist/nano-components/index-CuC61-2g.js +0 -4
- package/dist/nano-components/index-vpnVjPKQ.js +0 -5
|
@@ -8,78 +8,6 @@ import { t as transformTag, h } from './renderer.js';
|
|
|
8
8
|
import { H as HasSlotController } from './slot.js';
|
|
9
9
|
import { f as focusInContainer } from './active-element.js';
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* Quality of life for transition handling.
|
|
13
|
-
* Adds / removes transitionend events. Resolves on complete
|
|
14
|
-
|
|
15
|
-
* @param el element
|
|
16
|
-
* @returns a promise that resolves when the transition is done
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* handles hiding and showing elements properly (with display),
|
|
20
|
-
* along with transitions, so they are no longer viewable in the dom.
|
|
21
|
-
* - OnHide remove show class, listen for transition end, then display: none on finish
|
|
22
|
-
* - OnShow, display block on start then add a show class
|
|
23
|
-
*
|
|
24
|
-
* @param el
|
|
25
|
-
* @param options
|
|
26
|
-
* @returns a promise of resolving as either 'show' or 'hidden'
|
|
27
|
-
*/
|
|
28
|
-
const displayTransition = (el, options) => {
|
|
29
|
-
const opts = {
|
|
30
|
-
className: '',
|
|
31
|
-
show: true,
|
|
32
|
-
showDisplay: 'block',
|
|
33
|
-
showProp: 'classList',
|
|
34
|
-
timeout: 1000,
|
|
35
|
-
...options,
|
|
36
|
-
};
|
|
37
|
-
return new Promise((resolve) => {
|
|
38
|
-
const showCb = (e) => {
|
|
39
|
-
if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
|
|
40
|
-
(!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
|
|
41
|
-
el.dataset.displayTransition = 'true';
|
|
42
|
-
el.removeEventListener('transitionend', showCb);
|
|
43
|
-
resolve('shown');
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
const hideCb = (e) => {
|
|
47
|
-
if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
|
|
48
|
-
(!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
|
|
49
|
-
el.style.display = 'none';
|
|
50
|
-
el.dataset.displayTransition = 'false';
|
|
51
|
-
el.removeEventListener('transitionend', hideCb);
|
|
52
|
-
resolve('hidden');
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
if (opts.show) {
|
|
56
|
-
el.addEventListener('transitionend', showCb);
|
|
57
|
-
el.style.display = opts.showDisplay;
|
|
58
|
-
setTimeout(() => el[opts.showProp].add(opts.className), 50);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
el.addEventListener('transitionend', hideCb);
|
|
62
|
-
el[opts.showProp].remove(opts.className);
|
|
63
|
-
}
|
|
64
|
-
// If no transition, resolve after timeout
|
|
65
|
-
if (opts.timeout) {
|
|
66
|
-
setTimeout(() => {
|
|
67
|
-
if (opts.show && el.dataset.displayTransition !== 'true') {
|
|
68
|
-
el.dataset.displayTransition = 'true';
|
|
69
|
-
el.removeEventListener('transitionend', showCb);
|
|
70
|
-
resolve('shown');
|
|
71
|
-
}
|
|
72
|
-
else if (!opts.show && el.dataset.displayTransition !== 'false') {
|
|
73
|
-
el.style.display = 'none';
|
|
74
|
-
el.dataset.displayTransition = 'false';
|
|
75
|
-
el.removeEventListener('transitionend', hideCb);
|
|
76
|
-
resolve('hidden');
|
|
77
|
-
}
|
|
78
|
-
}, opts.timeout);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
|
|
83
11
|
const navItemCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host{display:contents}.navitem{background:inherit;color:inherit}a,button{all:unset;color:inherit;text-decoration:inherit;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:var(--padding);gap:var(--nano-spacing-md);inline-size:100%;box-sizing:border-box;background:inherit}a:hover,a:focus,a:active,button:hover,button:focus,button:active{color:inherit}a:focus-visible,button:focus-visible{outline:var(--nano-focus-ring);outline-offset:var(--nano-focus-ring-offset)}a[disabled],button[disabled]{opacity:0.5;cursor:not-allowed}.navitem__label{margin-inline-end:auto}.navitem__modal{all:unset;display:none;position:absolute;color:initial;opacity:0;transition:var(--nano-transition-fast) ease}.navitem--open .navitem__modal{opacity:1}::slotted([slot=close-button]){all:unset}::slotted([slot=close-button]):focus-visible{outline:var(--nano-focus-ring);outline-offset:var(--nano-focus-ring-offset)}";
|
|
84
12
|
|
|
85
13
|
const NavItem = /*@__PURE__*/ proxyCustomElement(class NavItem extends HTMLElement {
|
|
@@ -95,6 +23,11 @@ const NavItem = /*@__PURE__*/ proxyCustomElement(class NavItem extends HTMLEleme
|
|
|
95
23
|
secondaryDiv;
|
|
96
24
|
slotCtrl = new HasSlotController(this, 'secondary', 'close-button');
|
|
97
25
|
controlElement;
|
|
26
|
+
hoverTimer = -1;
|
|
27
|
+
openedByTouch = false;
|
|
28
|
+
openedByClick = false;
|
|
29
|
+
canHover = false;
|
|
30
|
+
transitionAbort = null;
|
|
98
31
|
get host() { return this; }
|
|
99
32
|
didOpen = false;
|
|
100
33
|
isInMenuDrawer = false;
|
|
@@ -112,6 +45,17 @@ const NavItem = /*@__PURE__*/ proxyCustomElement(class NavItem extends HTMLEleme
|
|
|
112
45
|
checkbox = false;
|
|
113
46
|
/** Whether secondary menus should close on blur */
|
|
114
47
|
closeOnBlur = true;
|
|
48
|
+
/** Open the secondary panel on hover (fine pointer / non-touch devices only) */
|
|
49
|
+
openOnHover = false;
|
|
50
|
+
openOnHoverChanged() {
|
|
51
|
+
this.canHover =
|
|
52
|
+
this.openOnHover &&
|
|
53
|
+
window.matchMedia('(hover: hover) and (pointer: fine)').matches;
|
|
54
|
+
if (!this.canHover)
|
|
55
|
+
this.removeHoverListeners();
|
|
56
|
+
else
|
|
57
|
+
this.addHoverListeners();
|
|
58
|
+
}
|
|
115
59
|
/** Emitted when the nav item closes it's secondary navigation. */
|
|
116
60
|
nanoClose;
|
|
117
61
|
/** Emitted when the nav item opens it's secondary navigation. */
|
|
@@ -170,34 +114,109 @@ const NavItem = /*@__PURE__*/ proxyCustomElement(class NavItem extends HTMLEleme
|
|
|
170
114
|
if (!this.didOpen || !this.slotCtrl.has('secondary') || !this.closeOnBlur)
|
|
171
115
|
return;
|
|
172
116
|
if (e.key && e.key === 'Escape') {
|
|
117
|
+
this.openedByClick = false;
|
|
173
118
|
this.closeSecondary();
|
|
174
119
|
return;
|
|
175
120
|
}
|
|
176
|
-
|
|
121
|
+
const path = e.composedPath();
|
|
122
|
+
// if click-locked, ignore clicks within the host (trigger or panel)
|
|
123
|
+
if (this.openedByClick && path.some((el) => el === this.host))
|
|
124
|
+
return;
|
|
125
|
+
if (!path.some((el) => el === this.secondaryDiv)) {
|
|
177
126
|
this.closeSecondary();
|
|
178
127
|
}
|
|
179
128
|
}
|
|
129
|
+
addHoverListeners() {
|
|
130
|
+
this.host.addEventListener('pointerenter', this.handlePointerEnter);
|
|
131
|
+
this.host.addEventListener('pointerleave', this.handlePointerLeave);
|
|
132
|
+
this.host.addEventListener('focusout', this.handleFocusOut);
|
|
133
|
+
}
|
|
134
|
+
removeHoverListeners() {
|
|
135
|
+
this.host.removeEventListener('pointerenter', this.handlePointerEnter);
|
|
136
|
+
this.host.removeEventListener('pointerleave', this.handlePointerLeave);
|
|
137
|
+
this.host.removeEventListener('focusout', this.handleFocusOut);
|
|
138
|
+
}
|
|
139
|
+
handlePointerEnter = (e) => {
|
|
140
|
+
if (!this.canHover || !this.slotCtrl.has('secondary'))
|
|
141
|
+
return;
|
|
142
|
+
if (e.pointerType !== 'mouse') {
|
|
143
|
+
this.openedByTouch = true;
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
this.openedByTouch = false;
|
|
147
|
+
window.clearTimeout(this.hoverTimer);
|
|
148
|
+
// if click-locked open, don't start a re-open timer
|
|
149
|
+
if (this.openedByClick && this.didOpen)
|
|
150
|
+
return;
|
|
151
|
+
this.hoverTimer = window.setTimeout(() => this.openSecondary(), 0);
|
|
152
|
+
};
|
|
153
|
+
handlePointerLeave = (e) => {
|
|
154
|
+
if (!this.canHover ||
|
|
155
|
+
this.openedByTouch ||
|
|
156
|
+
this.openedByClick ||
|
|
157
|
+
!this.slotCtrl.has('secondary'))
|
|
158
|
+
return;
|
|
159
|
+
if (e.pointerType !== 'mouse')
|
|
160
|
+
return;
|
|
161
|
+
window.clearTimeout(this.hoverTimer);
|
|
162
|
+
this.hoverTimer = window.setTimeout(() => this.closeSecondary(), 200);
|
|
163
|
+
};
|
|
164
|
+
handleFocusOut = (e) => {
|
|
165
|
+
if (!this.canHover || !this.didOpen)
|
|
166
|
+
return;
|
|
167
|
+
// only close if focus left the nav-item entirely
|
|
168
|
+
if (e.relatedTarget && this.host.contains(e.relatedTarget))
|
|
169
|
+
return;
|
|
170
|
+
if (e.relatedTarget &&
|
|
171
|
+
this.host.shadowRoot?.contains(e.relatedTarget))
|
|
172
|
+
return;
|
|
173
|
+
this.closeSecondary();
|
|
174
|
+
};
|
|
175
|
+
awaitTransition(signal) {
|
|
176
|
+
return new Promise((resolve) => {
|
|
177
|
+
const fallback = window.setTimeout(() => resolve(true), 1000);
|
|
178
|
+
const cleanup = () => window.clearTimeout(fallback);
|
|
179
|
+
signal.addEventListener('abort', () => {
|
|
180
|
+
cleanup();
|
|
181
|
+
resolve(false);
|
|
182
|
+
}, { once: true });
|
|
183
|
+
this.secondaryDiv.addEventListener('transitionend', () => {
|
|
184
|
+
cleanup();
|
|
185
|
+
resolve(true);
|
|
186
|
+
}, { once: true, signal });
|
|
187
|
+
});
|
|
188
|
+
}
|
|
180
189
|
closeSecondary = async () => {
|
|
181
190
|
if (!this.slotCtrl.has('secondary') || !this.open)
|
|
182
191
|
return;
|
|
192
|
+
this.transitionAbort?.abort();
|
|
193
|
+
this.transitionAbort = new AbortController();
|
|
194
|
+
const { signal } = this.transitionAbort;
|
|
183
195
|
this.open = false;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
196
|
+
this.secondaryDiv.part.remove('modal--open');
|
|
197
|
+
const completed = await this.awaitTransition(signal);
|
|
198
|
+
if (!completed)
|
|
199
|
+
return;
|
|
200
|
+
this.secondaryDiv.style.display = 'none';
|
|
201
|
+
this.openedByClick = false;
|
|
189
202
|
this.nanoClosing.emit({ secondaryMenu: this.secondaryDiv });
|
|
190
203
|
this.didOpen = false;
|
|
191
204
|
};
|
|
192
205
|
openSecondary = async () => {
|
|
193
206
|
if (!this.slotCtrl.has('secondary') || this.open)
|
|
194
207
|
return;
|
|
208
|
+
this.transitionAbort?.abort();
|
|
209
|
+
this.transitionAbort = new AbortController();
|
|
210
|
+
const { signal } = this.transitionAbort;
|
|
195
211
|
this.open = true;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
});
|
|
212
|
+
this.secondaryDiv.style.display = 'block';
|
|
213
|
+
window.setTimeout(() => {
|
|
214
|
+
if (!signal.aborted)
|
|
215
|
+
this.secondaryDiv.part.add('modal--open');
|
|
216
|
+
}, 50);
|
|
217
|
+
const completed = await this.awaitTransition(signal);
|
|
218
|
+
if (!completed)
|
|
219
|
+
return;
|
|
201
220
|
this.nanoOpening.emit({ secondaryMenu: this.secondaryDiv });
|
|
202
221
|
this.didOpen = true;
|
|
203
222
|
};
|
|
@@ -213,6 +232,15 @@ const NavItem = /*@__PURE__*/ proxyCustomElement(class NavItem extends HTMLEleme
|
|
|
213
232
|
if (this.disabled)
|
|
214
233
|
return;
|
|
215
234
|
if (this.slotCtrl.has('secondary')) {
|
|
235
|
+
if (this.canHover) {
|
|
236
|
+
if (this.didOpen) {
|
|
237
|
+
// already open via hover — lock it open, suppress hover-close
|
|
238
|
+
this.openedByClick = true;
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
// opening via click in hover mode — lock it
|
|
242
|
+
this.openedByClick = true;
|
|
243
|
+
}
|
|
216
244
|
this.toggleSecondary();
|
|
217
245
|
return;
|
|
218
246
|
}
|
|
@@ -243,29 +271,37 @@ const NavItem = /*@__PURE__*/ proxyCustomElement(class NavItem extends HTMLEleme
|
|
|
243
271
|
connectedCallback() {
|
|
244
272
|
this.handleDefaultSlotChange();
|
|
245
273
|
this.isInMenuDrawer = !!this.host.closest(transformTag('nano-menu-drawer'));
|
|
274
|
+
this.openOnHoverChanged();
|
|
275
|
+
}
|
|
276
|
+
disconnectedCallback() {
|
|
277
|
+
window.clearTimeout(this.hoverTimer);
|
|
278
|
+
this.removeHoverListeners();
|
|
246
279
|
}
|
|
247
280
|
componentDidLoad() {
|
|
248
281
|
this.openChange();
|
|
249
282
|
}
|
|
250
283
|
render() {
|
|
251
|
-
return (h(Host, { key: '
|
|
284
|
+
return (h(Host, { key: '5b7160c2d8712548475c34340cd654d4e17ccfbb', class: {
|
|
252
285
|
'nano-menu-drawer': this.isInMenuDrawer,
|
|
253
286
|
'nano-nav-item': true,
|
|
254
287
|
disabled: this.disabled,
|
|
255
|
-
}, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: '
|
|
288
|
+
}, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: '92d8b0b88a51214a5fa177d20be957b61e049916', class: {
|
|
256
289
|
navitem: true,
|
|
257
290
|
'navitem--open': this.open,
|
|
258
291
|
'navitem--active': this.selected,
|
|
259
|
-
}, part: "trigger-wrapper" }, this.href && !this.disabled && (h("a", { key: '
|
|
292
|
+
}, part: "trigger-wrapper" }, this.href && !this.disabled && (h("a", { key: '4b0b32b1c33506ef94e1321e6b6840fa0ddc64cc', part: "trigger trigger--anchor", target: this.target, ref: (a) => (this.controlElement = a), href: this.href, class: {
|
|
260
293
|
navitem__trigger: true,
|
|
261
|
-
} }, h("slot", { key: '
|
|
294
|
+
} }, h("slot", { key: '10b8c3c7a4903d8317f01da20a3bdf9196bc1438', name: "icon-start" }), h("span", { key: '2244f23ee2eb590f471c515243e30d5a15b38df3', class: "navitem__label", part: "label" }, h("slot", { key: '7f330c217ec16b81851e6a1ae4c37098b75cd799', onSlotchange: this.handleDefaultSlotChange })), h("slot", { key: '831d05cc6a55eba753d3bb877983337e88991bd6', name: "icon-end" }))), (!this.href || this.disabled) && (h("button", { key: '8ff3bbecbf1401830487bf116b27311d4be0d13d', role: this.checkbox ? 'checkbox' : undefined, "aria-checked": this.checkbox ? this.selected.toString() : undefined, "aria-expanded": this.slotCtrl.has('secondary')
|
|
295
|
+
? this.didOpen.toString()
|
|
296
|
+
: undefined, part: "trigger trigger--button", ref: (btn) => (this.controlElement = btn), onClick: this.handleClick, disabled: this.disabled, class: {
|
|
262
297
|
navitem__trigger: true,
|
|
263
|
-
} }, h("slot", { key: '
|
|
298
|
+
} }, h("slot", { key: 'eb814e8de2bbec584722ab92956eef03262611d3', name: "icon-start" }), h("span", { key: '76ad3a122201c9d2cd23ba7898662e3d134b02ba', class: "navitem__label", part: "label" }, h("slot", { key: '9a6e9153990ee4ad34ed8db1f7e1aa4ad54ea587', onSlotchange: this.handleDefaultSlotChange })), h("slot", { key: '6b0d010032497dd1f037e982c245891d8603da25', name: "icon-end" }))), this.slotCtrl.has('secondary') && !this.disabled && (h("div", { key: 'bff80914555716d7515c97535113be7aa4ad6f0a', part: "modal", class: {
|
|
264
299
|
navitem__modal: true,
|
|
265
300
|
'navitem__modal--open': this.didOpen,
|
|
266
|
-
}, ref: (div) => (this.secondaryDiv = div), tabIndex: -1 }, h("div", { key: '
|
|
301
|
+
}, ref: (div) => (this.secondaryDiv = div), tabIndex: -1 }, h("div", { key: '3e7495704a435455446c243a590d82cdde632d5a', class: "navitem__modal-content", part: `modal-content ${this.didOpen ? 'modal-content--open' : ''}` }, this.slotCtrl.has('close-button') && (h("div", { key: '613887997d246e3b49f9c7c876859181c3d8089e', part: "close-button", onClick: this.closeSecondary }, h("slot", { key: '82da2c670fcda49aafb78b00603716ae7667e445', name: "close-button" }))), h("slot", { key: '8c1906a9116fcd80cd34a51d68c012982c9858cf', name: "secondary" })), h("div", { key: '3731b3264e9a15b11078df8679a885e5b5d3e5dc', class: "navitem__modal-mask", onClick: this.closeSecondary, part: `modal-mask ${this.didOpen ? 'modal-mask--open' : ''}` }))))));
|
|
267
302
|
}
|
|
268
303
|
static get watchers() { return {
|
|
304
|
+
"openOnHover": ["openOnHoverChanged"],
|
|
269
305
|
"open": ["openChange"],
|
|
270
306
|
"didOpen": ["didOpenChange"]
|
|
271
307
|
}; }
|
|
@@ -278,12 +314,14 @@ const NavItem = /*@__PURE__*/ proxyCustomElement(class NavItem extends HTMLEleme
|
|
|
278
314
|
"selected": [1540],
|
|
279
315
|
"checkbox": [516],
|
|
280
316
|
"closeOnBlur": [4, "close-on-blur"],
|
|
317
|
+
"openOnHover": [4, "open-on-hover"],
|
|
281
318
|
"didOpen": [32],
|
|
282
319
|
"isInMenuDrawer": [32],
|
|
283
320
|
"setFocus": [64],
|
|
284
321
|
"closeMenu": [64],
|
|
285
322
|
"openMenu": [64]
|
|
286
323
|
}, [[16, "click", "handleClose"], [16, "keyup", "handleClose"]], {
|
|
324
|
+
"openOnHover": ["openOnHoverChanged"],
|
|
287
325
|
"open": ["openChange"],
|
|
288
326
|
"didOpen": ["didOpenChange"]
|
|
289
327
|
}]);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Custom elements for Nanopore-Digital Web applications
|
|
3
3
|
*/
|
|
4
|
-
import { a as getElement } from './index-
|
|
4
|
+
import { a as getElement } from './index-RXFO3HxS.js';
|
|
5
5
|
import { d as debounce } from './throttle-C93FMm2Z.js';
|
|
6
6
|
|
|
7
7
|
function parse(searchParams, replacer) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Custom elements for Nanopore-Digital Web applications
|
|
3
3
|
*/
|
|
4
|
-
import { h, d as Host, a as getElement } from './index-
|
|
4
|
+
import { h, d as Host, a as getElement } from './index-RXFO3HxS.js';
|
|
5
5
|
|
|
6
6
|
// import type { VNode, HTMLStencilElement } from "@stencil/core";
|
|
7
7
|
const supportsConstructibleStylesheets = (() => {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Custom elements for Nanopore-Digital Web applications
|
|
3
3
|
*/
|
|
4
|
-
import { F as Flickity, u as utils } from './nano-slides-
|
|
5
|
-
import './index-
|
|
6
|
-
import './renderer-
|
|
4
|
+
import { F as Flickity, u as utils } from './nano-slides-WDFCFgZL.js';
|
|
5
|
+
import './index-RXFO3HxS.js';
|
|
6
|
+
import './renderer-B_wACs4w.js';
|
|
7
7
|
|
|
8
8
|
const Slide = Flickity.Slide;
|
|
9
9
|
const slideUpdateTarget = Slide.prototype.updateTarget;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Custom elements for Nanopore-Digital Web applications
|
|
3
3
|
*/
|
|
4
|
-
import { h } from './renderer-
|
|
4
|
+
import { h } from './renderer-B_wACs4w.js';
|
|
5
5
|
|
|
6
6
|
const renderLabel = ({ label, hasLabelSlot, controlId, labelId, floatLabel, placeholder, alwaysShowPlaceholder, hideLabel, hasValue, rtl, showCharCount, maxlength, charCount, }) => {
|
|
7
7
|
if (!label && !hasLabelSlot)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Custom elements for Nanopore-Digital Web applications
|
|
3
3
|
*/
|
|
4
|
-
import { F as Flickity } from './nano-slides-
|
|
5
|
-
import './index-
|
|
6
|
-
import './renderer-
|
|
4
|
+
import { F as Flickity } from './nano-slides-WDFCFgZL.js';
|
|
5
|
+
import './index-RXFO3HxS.js';
|
|
6
|
+
import './renderer-B_wACs4w.js';
|
|
7
7
|
|
|
8
8
|
Flickity.createMethods.push('_createFullscreen');
|
|
9
9
|
const proto = Flickity.prototype;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Custom elements for Nanopore-Digital Web applications
|
|
3
3
|
*/
|
|
4
|
-
import { j as getRenderingRef, k as forceUpdate } from './index-
|
|
4
|
+
import { j as getRenderingRef, k as forceUpdate } from './index-RXFO3HxS.js';
|
|
5
5
|
|
|
6
6
|
const appendToMap = (map, propName, value) => {
|
|
7
7
|
const items = map.get(propName);
|