@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.
Files changed (279) hide show
  1. package/dist/cjs/{algolia-data-YqTcrA7B.js → algolia-data-BEfDDPWP.js} +1 -1
  2. package/dist/cjs/{component-store-BsFgDzFM.js → component-store-DFsNILxg.js} +1 -1
  3. package/dist/cjs/{constructible-style-D0zEjr9J.js → constructible-style-CRdAciHm.js} +1 -1
  4. package/dist/cjs/{dom-GglTcT7o.js → dom-CIEcUG2R.js} +1 -1
  5. package/dist/cjs/{fade-CDGKmRbB.js → fade-Cng4p1KQ.js} +3 -3
  6. package/dist/cjs/{form-control-DKTdW_gr.js → form-control-DdnBRckY.js} +1 -1
  7. package/dist/cjs/{fullscreen-BmuHM8Mq.js → fullscreen-BYNt89kR.js} +3 -3
  8. package/dist/cjs/{index-ap26V5bu.js → index-C7Ikbhe3.js} +13 -5
  9. package/dist/cjs/{index-CeVPSufd.js → index-gxQOxlH_.js} +1 -1
  10. package/dist/cjs/index.cjs.js +3 -3
  11. package/dist/cjs/{lazyload-CBgO3EAI.js → lazyload-CLpLl1ob.js} +3 -3
  12. package/dist/cjs/loader.cjs.js +2 -2
  13. package/dist/cjs/{modal-CjPWcL9B.js → modal-DWvvpfeI.js} +1 -1
  14. package/dist/cjs/nano-accordion.cjs.entry.js +3 -3
  15. package/dist/cjs/nano-alert.cjs.entry.js +7 -7
  16. package/dist/cjs/nano-algolia-filter.cjs.entry.js +4 -4
  17. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
  18. package/dist/cjs/nano-algolia-results.cjs.entry.js +3 -3
  19. package/dist/cjs/nano-algolia.cjs.entry.js +5 -5
  20. package/dist/cjs/nano-animation.cjs.entry.js +2 -2
  21. package/dist/cjs/nano-avatar_5.cjs.entry.js +9 -9
  22. package/dist/cjs/nano-breadcrumb.cjs.entry.js +1 -1
  23. package/dist/cjs/nano-card-carousel.cjs.entry.js +2 -2
  24. package/dist/cjs/nano-card.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-checkbox-group.cjs.entry.js +2 -2
  26. package/dist/cjs/nano-checkbox.cjs.entry.js +2 -2
  27. package/dist/cjs/nano-collapsible-comparison.cjs.entry.js +2 -2
  28. package/dist/cjs/nano-components.cjs.js +2 -2
  29. package/dist/cjs/nano-content-links.cjs.entry.js +1 -1
  30. package/dist/cjs/nano-cta.cjs.entry.js +1 -1
  31. package/dist/cjs/{nano-data-table-B3KUstGL.js → nano-data-table-DRp3MvIh.js} +5 -5
  32. package/dist/cjs/nano-data-table.cjs.entry.js +6 -6
  33. package/dist/cjs/nano-datalist_3.cjs.entry.js +3 -3
  34. package/dist/cjs/nano-date-input.cjs.entry.js +2 -2
  35. package/dist/cjs/nano-date-picker_2.cjs.entry.js +4 -4
  36. package/dist/cjs/nano-details.cjs.entry.js +3 -3
  37. package/dist/cjs/nano-dialog.cjs.entry.js +8 -8
  38. package/dist/cjs/nano-dropdown_2.cjs.entry.js +5 -5
  39. package/dist/cjs/nano-feature-box.cjs.entry.js +1 -1
  40. package/dist/cjs/nano-field-validator.cjs.entry.js +3 -3
  41. package/dist/cjs/nano-file-upload.cjs.entry.js +2 -2
  42. package/dist/cjs/nano-footer.cjs.entry.js +1 -1
  43. package/dist/cjs/nano-global-nav.cjs.entry.js +29 -14
  44. package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
  45. package/dist/cjs/nano-grid_2.cjs.entry.js +3 -3
  46. package/dist/cjs/nano-hero.cjs.entry.js +2 -2
  47. package/dist/cjs/nano-icon-button_2.cjs.entry.js +2 -2
  48. package/dist/cjs/nano-icon-item.cjs.entry.js +1 -1
  49. package/dist/cjs/nano-icon.cjs.entry.js +2 -2
  50. package/dist/cjs/nano-in-page-nav.cjs.entry.js +5 -5
  51. package/dist/cjs/nano-increment.cjs.entry.js +2 -2
  52. package/dist/cjs/nano-input-otp.cjs.entry.js +2 -2
  53. package/dist/cjs/nano-intersection-observe.cjs.entry.js +4 -4
  54. package/dist/cjs/nano-masked-overflow.cjs.entry.js +4 -4
  55. package/dist/cjs/nano-mdd-item.cjs.entry.js +37 -0
  56. package/dist/cjs/nano-mdd.cjs.entry.js +57 -0
  57. package/dist/cjs/nano-menu-drawer.cjs.entry.js +4 -4
  58. package/dist/cjs/nano-more-less.cjs.entry.js +2 -2
  59. package/dist/cjs/nano-nav-item.cjs.entry.js +130 -94
  60. package/dist/cjs/nano-option-box.cjs.entry.js +1 -1
  61. package/dist/cjs/nano-progress-bar.cjs.entry.js +1 -1
  62. package/dist/cjs/nano-range.cjs.entry.js +2 -2
  63. package/dist/cjs/nano-rating.cjs.entry.js +2 -2
  64. package/dist/cjs/nano-resize-observe.cjs.entry.js +2 -2
  65. package/dist/cjs/nano-search-result.cjs.entry.js +1 -1
  66. package/dist/cjs/nano-slide.cjs.entry.js +2 -2
  67. package/dist/cjs/{nano-slides-BONrNv9H.js → nano-slides-QbssxNUC.js} +5 -5
  68. package/dist/cjs/nano-slides.cjs.entry.js +3 -3
  69. package/dist/cjs/nano-sortable.cjs.entry.js +2 -2
  70. package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
  71. package/dist/cjs/nano-split-pane.cjs.entry.js +2 -2
  72. package/dist/cjs/nano-step-accordion.cjs.entry.js +2 -2
  73. package/dist/cjs/nano-step-breadcrumb.cjs.entry.js +3 -3
  74. package/dist/cjs/nano-sticker.cjs.entry.js +4 -4
  75. package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
  76. package/dist/cjs/nano-tab-group.cjs.entry.js +4 -4
  77. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  78. package/dist/cjs/nano-table.cjs.entry.js +2 -2
  79. package/dist/cjs/{renderer-D1xFLJsH.js → renderer-bX7EsIYR.js} +1 -1
  80. package/dist/cjs/{scroll-C2cNPPnK.js → scroll-DC2gHZby.js} +1 -1
  81. package/dist/cjs/{slot-D0YPdT3s.js → slot-BRAzxuj_.js} +1 -1
  82. package/dist/cjs/{tabbable-D60VZB1O.js → tabbable-BXxsn02Z.js} +1 -1
  83. package/dist/cjs/{table.worker-ClLnKNqW.js → table.worker-CZYVrH2c.js} +6 -6
  84. package/dist/collection/collection-manifest.json +2 -0
  85. package/dist/collection/components/global-nav/global-nav.js +27 -12
  86. package/dist/collection/components/mdd/mdd-item.css +146 -0
  87. package/dist/collection/components/mdd/mdd-item.js +97 -0
  88. package/dist/collection/components/mdd/mdd.css +55 -0
  89. package/dist/collection/components/mdd/mdd.js +101 -0
  90. package/dist/collection/components/nav-item/nav-item.js +148 -18
  91. package/dist/components/nano-global-nav.js +27 -12
  92. package/dist/components/nano-mdd-item.d.ts +11 -0
  93. package/dist/components/nano-mdd-item.js +69 -0
  94. package/dist/components/nano-mdd.d.ts +11 -0
  95. package/dist/components/nano-mdd.js +76 -0
  96. package/dist/components/nav-item.js +127 -89
  97. package/dist/esm/{algolia-data-CrdfzSCx.js → algolia-data-D4SY17hw.js} +1 -1
  98. package/dist/esm/{component-store-Dwo45Eol.js → component-store-DCcnMDT0.js} +1 -1
  99. package/dist/esm/{constructible-style-8ZZJwMaU.js → constructible-style-BKXXXS9X.js} +1 -1
  100. package/dist/esm/{dom-QEz8hlsO.js → dom-DiLhOqyz.js} +1 -1
  101. package/dist/esm/{fade-7nCfOc5y.js → fade-CnvBzIGD.js} +3 -3
  102. package/dist/esm/{form-control-8eh0RGNw.js → form-control-DYfvQbOQ.js} +1 -1
  103. package/dist/esm/{fullscreen-h77Lkspo.js → fullscreen-BqihOK-Y.js} +3 -3
  104. package/dist/esm/{index-CuC61-2g.js → index-BSptZcXI.js} +1 -1
  105. package/dist/esm/{index-vpnVjPKQ.js → index-RXFO3HxS.js} +13 -5
  106. package/dist/esm/index.js +4 -4
  107. package/dist/esm/{lazyload-CGR82usu.js → lazyload-ClpqVun1.js} +3 -3
  108. package/dist/esm/loader.js +3 -3
  109. package/dist/esm/{modal-Dk_TZDiu.js → modal-DFUZVWqg.js} +1 -1
  110. package/dist/esm/nano-accordion.entry.js +3 -3
  111. package/dist/esm/nano-alert.entry.js +7 -7
  112. package/dist/esm/nano-algolia-filter.entry.js +4 -4
  113. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  114. package/dist/esm/nano-algolia-results.entry.js +3 -3
  115. package/dist/esm/nano-algolia.entry.js +5 -5
  116. package/dist/esm/nano-animation.entry.js +2 -2
  117. package/dist/esm/nano-avatar_5.entry.js +9 -9
  118. package/dist/esm/nano-breadcrumb.entry.js +1 -1
  119. package/dist/esm/nano-card-carousel.entry.js +2 -2
  120. package/dist/esm/nano-card.entry.js +1 -1
  121. package/dist/esm/nano-checkbox-group.entry.js +2 -2
  122. package/dist/esm/nano-checkbox.entry.js +2 -2
  123. package/dist/esm/nano-collapsible-comparison.entry.js +2 -2
  124. package/dist/esm/nano-components.js +3 -3
  125. package/dist/esm/nano-content-links.entry.js +1 -1
  126. package/dist/esm/nano-cta.entry.js +1 -1
  127. package/dist/esm/{nano-data-table-HQJQG0Sv.js → nano-data-table-HS1UHCwO.js} +5 -5
  128. package/dist/esm/nano-data-table.entry.js +6 -6
  129. package/dist/esm/nano-datalist_3.entry.js +3 -3
  130. package/dist/esm/nano-date-input.entry.js +2 -2
  131. package/dist/esm/nano-date-picker_2.entry.js +4 -4
  132. package/dist/esm/nano-details.entry.js +3 -3
  133. package/dist/esm/nano-dialog.entry.js +8 -8
  134. package/dist/esm/nano-dropdown_2.entry.js +5 -5
  135. package/dist/esm/nano-feature-box.entry.js +1 -1
  136. package/dist/esm/nano-field-validator.entry.js +3 -3
  137. package/dist/esm/nano-file-upload.entry.js +2 -2
  138. package/dist/esm/nano-footer.entry.js +1 -1
  139. package/dist/esm/nano-global-nav.entry.js +29 -14
  140. package/dist/esm/nano-grid-item.entry.js +1 -1
  141. package/dist/esm/nano-grid_2.entry.js +3 -3
  142. package/dist/esm/nano-hero.entry.js +2 -2
  143. package/dist/esm/nano-icon-button_2.entry.js +2 -2
  144. package/dist/esm/nano-icon-item.entry.js +1 -1
  145. package/dist/esm/nano-icon.entry.js +2 -2
  146. package/dist/esm/nano-in-page-nav.entry.js +5 -5
  147. package/dist/esm/nano-increment.entry.js +2 -2
  148. package/dist/esm/nano-input-otp.entry.js +2 -2
  149. package/dist/esm/nano-intersection-observe.entry.js +4 -4
  150. package/dist/esm/nano-masked-overflow.entry.js +4 -4
  151. package/dist/esm/nano-mdd-item.entry.js +35 -0
  152. package/dist/esm/nano-mdd.entry.js +55 -0
  153. package/dist/esm/nano-menu-drawer.entry.js +4 -4
  154. package/dist/esm/nano-more-less.entry.js +2 -2
  155. package/dist/esm/nano-nav-item.entry.js +130 -94
  156. package/dist/esm/nano-option-box.entry.js +1 -1
  157. package/dist/esm/nano-progress-bar.entry.js +1 -1
  158. package/dist/esm/nano-range.entry.js +2 -2
  159. package/dist/esm/nano-rating.entry.js +2 -2
  160. package/dist/esm/nano-resize-observe.entry.js +2 -2
  161. package/dist/esm/nano-search-result.entry.js +1 -1
  162. package/dist/esm/nano-slide.entry.js +2 -2
  163. package/dist/esm/{nano-slides-CMFKg_gU.js → nano-slides-WDFCFgZL.js} +5 -5
  164. package/dist/esm/nano-slides.entry.js +3 -3
  165. package/dist/esm/nano-sortable.entry.js +2 -2
  166. package/dist/esm/nano-spinner.entry.js +1 -1
  167. package/dist/esm/nano-split-pane.entry.js +2 -2
  168. package/dist/esm/nano-step-accordion.entry.js +2 -2
  169. package/dist/esm/nano-step-breadcrumb.entry.js +3 -3
  170. package/dist/esm/nano-sticker.entry.js +4 -4
  171. package/dist/esm/nano-tab-content.entry.js +2 -2
  172. package/dist/esm/nano-tab-group.entry.js +4 -4
  173. package/dist/esm/nano-tab.entry.js +2 -2
  174. package/dist/esm/nano-table.entry.js +2 -2
  175. package/dist/esm/{renderer-CTaemqrs.js → renderer-B_wACs4w.js} +1 -1
  176. package/dist/esm/{scroll-Cpis33Lx.js → scroll-CFCUiakV.js} +1 -1
  177. package/dist/esm/{slot-wHS7-PXA.js → slot-Cj55s-OG.js} +1 -1
  178. package/dist/esm/{tabbable-CT4-pg7f.js → tabbable-Dwh0pD2q.js} +1 -1
  179. package/dist/esm/{table.worker--BAXV6ow.js → table.worker-Cg52OK_a.js} +6 -6
  180. package/dist/nano-components/{algolia-data-CrdfzSCx.js → algolia-data-D4SY17hw.js} +1 -1
  181. package/dist/nano-components/{component-store-Dwo45Eol.js → component-store-DCcnMDT0.js} +1 -1
  182. package/dist/nano-components/{constructible-style-8ZZJwMaU.js → constructible-style-BKXXXS9X.js} +1 -1
  183. package/dist/nano-components/dom-DiLhOqyz.js +4 -0
  184. package/dist/nano-components/{fade-7nCfOc5y.js → fade-CnvBzIGD.js} +1 -1
  185. package/dist/nano-components/{form-control-8eh0RGNw.js → form-control-DYfvQbOQ.js} +1 -1
  186. package/dist/nano-components/{fullscreen-h77Lkspo.js → fullscreen-BqihOK-Y.js} +1 -1
  187. package/dist/nano-components/index-BSptZcXI.js +4 -0
  188. package/dist/nano-components/index-RXFO3HxS.js +5 -0
  189. package/dist/nano-components/index.esm.js +1 -1
  190. package/dist/nano-components/{lazyload-CGR82usu.js → lazyload-ClpqVun1.js} +1 -1
  191. package/dist/nano-components/{modal-Dk_TZDiu.js → modal-DFUZVWqg.js} +1 -1
  192. package/dist/nano-components/nano-accordion.entry.js +1 -1
  193. package/dist/nano-components/nano-alert.entry.js +1 -1
  194. package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
  195. package/dist/nano-components/nano-algolia-pagination.entry.js +1 -1
  196. package/dist/nano-components/nano-algolia-results.entry.js +1 -1
  197. package/dist/nano-components/nano-algolia.entry.js +1 -1
  198. package/dist/nano-components/nano-animation.entry.js +1 -1
  199. package/dist/nano-components/nano-avatar_5.entry.js +1 -1
  200. package/dist/nano-components/nano-breadcrumb.entry.js +1 -1
  201. package/dist/nano-components/nano-card-carousel.entry.js +1 -1
  202. package/dist/nano-components/nano-card.entry.js +1 -1
  203. package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
  204. package/dist/nano-components/nano-checkbox.entry.js +1 -1
  205. package/dist/nano-components/nano-collapsible-comparison.entry.js +1 -1
  206. package/dist/nano-components/nano-components.css +30 -105
  207. package/dist/nano-components/nano-components.esm.js +1 -1
  208. package/dist/nano-components/nano-content-links.entry.js +1 -1
  209. package/dist/nano-components/nano-cta.entry.js +1 -1
  210. package/dist/nano-components/{nano-data-table-HQJQG0Sv.js → nano-data-table-HS1UHCwO.js} +1 -1
  211. package/dist/nano-components/nano-data-table.entry.js +1 -1
  212. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  213. package/dist/nano-components/nano-date-input.entry.js +1 -1
  214. package/dist/nano-components/nano-date-picker_2.entry.js +1 -1
  215. package/dist/nano-components/nano-details.entry.js +1 -1
  216. package/dist/nano-components/nano-dialog.entry.js +1 -1
  217. package/dist/nano-components/nano-dropdown_2.entry.js +1 -1
  218. package/dist/nano-components/nano-feature-box.entry.js +1 -1
  219. package/dist/nano-components/nano-field-validator.entry.js +1 -1
  220. package/dist/nano-components/nano-file-upload.entry.js +1 -1
  221. package/dist/nano-components/nano-footer.entry.js +1 -1
  222. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  223. package/dist/nano-components/nano-grid-item.entry.js +1 -1
  224. package/dist/nano-components/nano-grid_2.entry.js +1 -1
  225. package/dist/nano-components/nano-hero.entry.js +1 -1
  226. package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
  227. package/dist/nano-components/nano-icon-item.entry.js +1 -1
  228. package/dist/nano-components/nano-icon.entry.js +1 -1
  229. package/dist/nano-components/nano-in-page-nav.entry.js +1 -1
  230. package/dist/nano-components/nano-increment.entry.js +1 -1
  231. package/dist/nano-components/nano-input-otp.entry.js +1 -1
  232. package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
  233. package/dist/nano-components/nano-masked-overflow.entry.js +1 -1
  234. package/dist/nano-components/nano-mdd-item.entry.js +4 -0
  235. package/dist/nano-components/nano-mdd.entry.js +4 -0
  236. package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
  237. package/dist/nano-components/nano-more-less.entry.js +1 -1
  238. package/dist/nano-components/nano-nav-item.entry.js +1 -1
  239. package/dist/nano-components/nano-option-box.entry.js +1 -1
  240. package/dist/nano-components/nano-progress-bar.entry.js +1 -1
  241. package/dist/nano-components/nano-range.entry.js +1 -1
  242. package/dist/nano-components/nano-rating.entry.js +1 -1
  243. package/dist/nano-components/nano-resize-observe.entry.js +1 -1
  244. package/dist/nano-components/nano-search-result.entry.js +1 -1
  245. package/dist/nano-components/nano-slide.entry.js +1 -1
  246. package/dist/nano-components/{nano-slides-CMFKg_gU.js → nano-slides-WDFCFgZL.js} +4 -4
  247. package/dist/nano-components/nano-slides.entry.js +1 -1
  248. package/dist/nano-components/nano-sortable.entry.js +1 -1
  249. package/dist/nano-components/nano-spinner.entry.js +1 -1
  250. package/dist/nano-components/nano-split-pane.entry.js +1 -1
  251. package/dist/nano-components/nano-step-accordion.entry.js +1 -1
  252. package/dist/nano-components/nano-step-breadcrumb.entry.js +1 -1
  253. package/dist/nano-components/nano-sticker.entry.js +1 -1
  254. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  255. package/dist/nano-components/nano-tab-group.entry.js +1 -1
  256. package/dist/nano-components/nano-tab.entry.js +1 -1
  257. package/dist/nano-components/nano-table.entry.js +1 -1
  258. package/dist/nano-components/{renderer-CTaemqrs.js → renderer-B_wACs4w.js} +1 -1
  259. package/dist/nano-components/{scroll-Cpis33Lx.js → scroll-CFCUiakV.js} +1 -1
  260. package/dist/nano-components/{slot-wHS7-PXA.js → slot-Cj55s-OG.js} +1 -1
  261. package/dist/nano-components/{tabbable-CT4-pg7f.js → tabbable-Dwh0pD2q.js} +1 -1
  262. package/dist/nano-components/{table.worker--BAXV6ow.js → table.worker-Cg52OK_a.js} +1 -1
  263. package/dist/style/components.css +1 -1
  264. package/dist/style/components.css.map +1 -1
  265. package/dist/style/nano.css +1 -1
  266. package/dist/style/nano.css.map +1 -1
  267. package/dist/types/components/global-nav/global-nav.d.ts +1 -0
  268. package/dist/types/components/mdd/mdd-item.d.ts +23 -0
  269. package/dist/types/components/mdd/mdd.d.ts +24 -0
  270. package/dist/types/components/nav-item/nav-item.d.ts +15 -0
  271. package/dist/types/components.d.ts +114 -0
  272. package/docs-json.json +238 -1
  273. package/docs-vscode.json +34 -0
  274. package/hydrate/index.js +275 -101
  275. package/hydrate/index.mjs +275 -101
  276. package/package.json +2 -2
  277. package/dist/nano-components/dom-QEz8hlsO.js +0 -4
  278. package/dist/nano-components/index-CuC61-2g.js +0 -4
  279. package/dist/nano-components/index-vpnVjPKQ.js +0 -5
package/hydrate/index.mjs CHANGED
@@ -14892,6 +14892,20 @@ class GlobalNav {
14892
14892
  this.shouldResize === false) {
14893
14893
  this.overflowOpen = false;
14894
14894
  }
14895
+ this.setNavItemHover();
14896
+ }
14897
+ setNavItemHover() {
14898
+ const isBarMenu = this.breakpoint <= this.bpPartials.mainMenu.breakpoint;
14899
+ this.host
14900
+ .querySelectorAll('nano-nav-item')
14901
+ .forEach((el) => {
14902
+ el.openOnHover = isBarMenu;
14903
+ });
14904
+ this.host
14905
+ .querySelectorAll('nano-mdd')
14906
+ .forEach((el) => {
14907
+ el.accordion = !isBarMenu;
14908
+ });
14895
14909
  }
14896
14910
  debounceResetResize = debounce$2(() => {
14897
14911
  this.shouldResize = false;
@@ -15181,6 +15195,7 @@ class GlobalNav {
15181
15195
  }
15182
15196
  componentDidRender() {
15183
15197
  this.handleResize();
15198
+ this.setNavItemHover();
15184
15199
  }
15185
15200
  /// RENDER ///
15186
15201
  loggedInPanel() {
@@ -15237,21 +15252,21 @@ class GlobalNav {
15237
15252
  }
15238
15253
  render() {
15239
15254
  const bpps = this.bpPartials;
15240
- return (h(Host, { key: '690ad4fb8f24cfb37689e8033069c43692ffb0f6', class: {
15255
+ return (h(Host, { key: '53c751962d1ed36bae13be0a3c74b340b4a553bd', class: {
15241
15256
  'overflow-menu': this.breakpoint > bpps.mainMenu.breakpoint,
15242
15257
  'bar-menu': this.breakpoint <= bpps.mainMenu.breakpoint,
15243
15258
  'nano-global-nav': true,
15244
- } }, h("div", { key: '7dc0a5a9543a461a9cf06c5536dcf04058725309', class: {
15259
+ } }, h("div", { key: '40ab68a79d28c8ace97c06f3b1d1222e1c21cf0e', class: {
15245
15260
  gn: true,
15246
15261
  'gn__search-open': this.searchBarShown,
15247
- } }, h("nano-drawer", { key: '8df19d73baf12de72803029bcb339b055b911e23', ref: (el) => (this.overflowMenu = el), label: "Main menu", part: "drawer", class: "gn__drawer nano-theme-dark", placement: "start", open: this.overflowOpen, onNanoAfterHide: () => (this.overflowOpen = false), onNanoAfterShow: () => (this.overflowOpen = true) }, h("div", { key: '66f9d33e3b5949af60b1304c1290a2409b35dceb', class: "gn__drawer-header", part: "overflow-header", slot: "label" }, "Main menu"), h("nav", { key: '9a75fd50fdc75191893d230d4541e8065054e306', class: "gn__drawer-menu", part: "overflow-menu" }, this.breakpoint > bpps.mainMenu.breakpoint
15262
+ } }, h("nano-drawer", { key: '7a4b70e3364f66678843c3b66a46a11b4018d26c', ref: (el) => (this.overflowMenu = el), label: "Main menu", part: "drawer", class: "gn__drawer nano-theme-dark", placement: "start", open: this.overflowOpen, onNanoAfterHide: () => (this.overflowOpen = false), onNanoAfterShow: () => (this.overflowOpen = true) }, h("div", { key: '49a9b1c0de594cbe45f844d16be862fb84b27776', class: "gn__drawer-header", part: "overflow-header", slot: "label" }, "Main menu"), h("nav", { key: 'af7cabec8e9897f5e48d0a3a0c5e47f23b4cf151', class: "gn__drawer-menu", part: "overflow-menu" }, this.breakpoint > bpps.mainMenu.breakpoint
15248
15263
  ? bpps.mainMenu.tpl()
15249
- : '', h("slot", { key: '4dec3baf8d3085297d1fcbf943bac0509f9bb5af', name: "overflow" }))), h("div", { key: 'edeb6fcc2fc4060e7c228c6b911dd1d399545f16', class: "gn__menu-bar-wrapper" }, h("div", { key: '84267ef880c126263be73733f3e534d5657985a7', class: "gn__menu-bar", part: "menu-bar", ref: (el) => (this.mainMenuBar = el) }, h("nav", { key: 'd8eb12840a941fb81c170058b32f7effb79c5eba', "aria-label": "Global navigation", class: `gn__main-menu ${this.shouldResize ? 'resizing' : ''}`, part: "main-menu", ref: (el) => (this.mainMenu = el) }, this.breakpoint > bpps.mainMenu.breakpoint && (h("nano-icon-button", { key: '6a11d0743bac742391f8f2e987d293df870e1e01', class: "gn__overflow-button", iconName: "light/bars", label: "Open Menu", onClick: () => this.overflowMenu.show() })), h("slot", { key: '02690cb93ba4db6c31add029f398d2b9b5e9cc4c', name: "logo" }, h("a", { key: 'dda06ea1320291a5b0174042914e9e5bddd1f272', href: this.logoUrl, class: "gn__logo-link", part: "logo-link" }, this.breakpoint <= bpps.logo.breakpoint ? (h("img", { src: getAssetPath('../nano-assets/ont-logo.svg'), alt: `Oxford Nanopore Technologies logo. Features a stylised representation of a nanopore,
15264
+ : '', h("slot", { key: '25b6d6721170837ae7c908d7db7f3ac0507c0775', name: "overflow" }))), h("div", { key: 'c2ea4f60360ed705d8fefa86712d9fa1fdacb8c6', class: "gn__menu-bar-wrapper" }, h("div", { key: '504deb61564e7de04cf6c437a1692fd456d6bf38', class: "gn__menu-bar", part: "menu-bar", ref: (el) => (this.mainMenuBar = el) }, h("nav", { key: 'd83c1e1397e054aac75a7942d0b49c9ea012e1c0', "aria-label": "Global navigation", class: `gn__main-menu ${this.shouldResize ? 'resizing' : ''}`, part: "main-menu", ref: (el) => (this.mainMenu = el) }, this.breakpoint > bpps.mainMenu.breakpoint && (h("nano-icon-button", { key: '201f58efe6e86cef00e45f43b74b805d997e4647', class: "gn__overflow-button", iconName: "light/bars", label: "Open Menu", onClick: () => this.overflowMenu.show() })), h("slot", { key: '2370a4105d6462c6b19a9cd407aa6ad0616f53b4', name: "logo" }, h("a", { key: '82cfdc19c8521f251d9cec4671f8623c4dbd0b42', href: this.logoUrl, class: "gn__logo-link", part: "logo-link" }, this.breakpoint <= bpps.logo.breakpoint ? (h("img", { src: getAssetPath('../nano-assets/ont-logo.svg'), alt: `Oxford Nanopore Technologies logo. Features a stylised representation of a nanopore,
15250
15265
  (a tiny protein channel embedded in a membrane) through which DNA or RNA molecules are passed in for sequencing.`, class: "gn__logo gn__logo--large", width: "152", height: "35", part: "logo logo--large" })) : (h("img", { src: getAssetPath('../nano-assets/ont-wheel.svg'), alt: `Oxford Nanopore Technologies logo. A stylised representation of a nanopore,
15251
- (a tiny protein channel embedded in a membrane) through which DNA or RNA molecules are passed in for sequencing.`, class: "gn__logo gn__logo--small", width: "35", height: "35", part: "logo logo--small" })))), this.breakpoint <= bpps.mainMenu.breakpoint && (h("div", { key: '7374a1027ea9677356301a7ef365c05639ac0055', class: "gn__main-menu-links" }, bpps.mainMenu.tpl())), h("div", { key: '7b5844cb33637ad77785bc9d46a2272053290c9e', class: "gn__main-menu-actions" }, !this.myAccountData ||
15252
- (!!this.searchIndices.length && (h("nano-dropdown", { key: '735db145b688f7ccf532acf1aa56eae1ed7a0bec', dialogTitle: "Search Oxford Nanopore Technologies", placement: "bottom", class: "gn__search-dropdown", skidding: -30, distance: 25, open: this.searchBarShown, onNanoAfterShow: this.handleSearchOpenEvent, onNanoAfterHide: this.handleSearchCloseEvent, autoOpen: !!this.searchIndices.length }, h("nano-icon-button", { key: 'f965f682dec1e34a0d3d573a081054fbf78c6fe2', class: "gn__search-button", slot: "trigger", iconName: "light/magnifying-glass", label: "Search" }), h("form", { key: 'fbab37529deefdb095f592a34eef51e5c9b7a529', ref: (form) => (this.searchForm = form), class: "gn__search-form", part: "search-form", onSubmit: this.onSearchSubmit }, this.searchIndices.length > 1 && (h("nano-select", { key: '213618c5d41621a9ac3bd2f0211dece4f7e26dff', part: "search-select", label: "Which site do you wish to search in?", mask: true, hideLabel: true, value: this.activeIndex?.index, onNanoChange: this.handleSearchIndexChangeEvent }, this.searchIndices.map((index) => (h("nano-option", { selected: index.name === this.searchIndex, value: index.index }, index.name || index.index))))), h("nano-input", { key: '58b1ef502a1c59dbd4215361782454954074a159', ref: (ele) => (this.searchInput = ele), part: "search-input", label: "Search Oxford Nanopore Technologies", placeholder: "Search Oxford Nanopore...", hideLabel: true, clearable: true, showInlineError: false, onNanoChange: (e) => {
15266
+ (a tiny protein channel embedded in a membrane) through which DNA or RNA molecules are passed in for sequencing.`, class: "gn__logo gn__logo--small", width: "35", height: "35", part: "logo logo--small" })))), this.breakpoint <= bpps.mainMenu.breakpoint && (h("div", { key: '7c43301ad5c735c8dae4081d2bb91fef7db41762', class: "gn__main-menu-links" }, bpps.mainMenu.tpl())), h("div", { key: '12285c67b6773c7bc31897cb0752fb4db549a162', class: "gn__main-menu-actions" }, !this.myAccountData ||
15267
+ (!!this.searchIndices.length && (h("nano-dropdown", { key: 'f7845d92127df80f548ae65573725b2c1497b703', dialogTitle: "Search Oxford Nanopore Technologies", placement: "bottom", class: "gn__search-dropdown", skidding: -30, distance: 25, open: this.searchBarShown, onNanoAfterShow: this.handleSearchOpenEvent, onNanoAfterHide: this.handleSearchCloseEvent, autoOpen: !!this.searchIndices.length }, h("nano-icon-button", { key: '6ca7605ce6e9829b6155f3e17d9262db9d452642', class: "gn__search-button", slot: "trigger", iconName: "light/magnifying-glass", label: "Search" }), h("form", { key: 'aba9d208a95acae67b2e2d05b6cbf39ac6aed329', ref: (form) => (this.searchForm = form), class: "gn__search-form", part: "search-form", onSubmit: this.onSearchSubmit }, this.searchIndices.length > 1 && (h("nano-select", { key: '7d6894101fb8e74e90c712f8768926e4604468bb', part: "search-select", label: "Which site do you wish to search in?", mask: true, hideLabel: true, value: this.activeIndex?.index, onNanoChange: this.handleSearchIndexChangeEvent }, this.searchIndices.map((index) => (h("nano-option", { selected: index.name === this.searchIndex, value: index.index }, index.name || index.index))))), h("nano-input", { key: '8ae65dcf14ec20041c3152fe875923a1bf19ab4e', ref: (ele) => (this.searchInput = ele), part: "search-input", label: "Search Oxford Nanopore Technologies", placeholder: "Search Oxford Nanopore...", hideLabel: true, clearable: true, showInlineError: false, onNanoChange: (e) => {
15253
15268
  this.handleSearchTermChangeEvent(e.detail.value);
15254
- }, onNanoInput: this.handleSearchTermInputEvent, debounce: 500, value: this._searchValue }, h("nano-icon-button", { key: '50403eb32e74646ec1c6ace40671b6c6add9c3a7', slot: "end", "icon-name": "light/magnifying-glass", label: "Search", onClick: this.onSearchSubmit }), h("nano-datalist", { key: '104f3771bfb0bf6e7af94173ad4d290c7f339740', class: "gn__search-results", onNanoSelect: (e) => e.preventDefault(), dropDownConfig: { tetherTo: this.searchForm }, disableFilter: true }, this.searchLoading && (h("div", { key: '178ae5411f8e5a646390fa5d93ca765b9d421803', slot: "no-result", class: "gn__search-loading" }, h("nano-spinner", { key: '56a6a81b3d0dc6a938d4a05ade52260bd1ffaafb' }, "Searching..."))), this.noResultPartial(), !!this.autocompleteResults?.hits.length && [
15269
+ }, onNanoInput: this.handleSearchTermInputEvent, debounce: 500, value: this._searchValue }, h("nano-icon-button", { key: 'f232ad693769e872e8fe8a2e42109c2ea5286e02', slot: "end", "icon-name": "light/magnifying-glass", label: "Search", onClick: this.onSearchSubmit }), h("nano-datalist", { key: 'cca09389259f1b63a607a7a0e667f839ae9a2904', class: "gn__search-results", onNanoSelect: (e) => e.preventDefault(), dropDownConfig: { tetherTo: this.searchForm }, disableFilter: true }, this.searchLoading && (h("div", { key: '6a134d0b971806091e973f7c8c1b5ef79ddfab5a', slot: "no-result", class: "gn__search-loading" }, h("nano-spinner", { key: '2bb8c2c2a7351cc1d95be9517d4c4db687c11c49' }, "Searching..."))), this.noResultPartial(), !!this.autocompleteResults?.hits.length && [
15255
15270
  this.autocompleteResults.hits.map((hit, i) => (h("nano-option", { href: hit.url, class: "gn__search-result", onClick: () => {
15256
15271
  searchInsight.sendClick({
15257
15272
  index: this.activeIndex.index,
@@ -15261,13 +15276,13 @@ class GlobalNav {
15261
15276
  positions: [i + 1],
15262
15277
  });
15263
15278
  } }, h("span", { innerHTML: this.autocompleteSnippet(hit) })))),
15264
- h("nano-option", { key: '0d6d3c61ce7bed27aded81d3332f595185883aca', class: "gn__search-viewall", onNanoSelect: this.onSearchSubmit }, "View all results"),
15265
- ])))))), h("div", { key: 'c597dba756ae0a4a995dc02ecd732f5b9b71d28c', class: "gn__cart" }, this.cartUrl && [
15266
- h("nano-icon-button", { key: '473a48ab2ce258e301ec10ca6ba46076933435d0', iconName: "light/cart-shopping", label: "View your cart", href: this.cartUrl }),
15267
- !!this.cartCount && (h("nano-badge", { key: '535ce44688a0459eb1189a464d72f43c05f0e868', theme: "danger" }, this.cartCount > 9 ? '9+' : this.cartCount)),
15279
+ h("nano-option", { key: '0f453d14dada8aff48749a7fb99ceee46ad4d3ef', class: "gn__search-viewall", onNanoSelect: this.onSearchSubmit }, "View all results"),
15280
+ ])))))), h("div", { key: '44b96146b2cd8d71c832e5f400a3de65cd1a8f04', class: "gn__cart" }, this.cartUrl && [
15281
+ h("nano-icon-button", { key: '1745e9090c7850789417d70b82ce25b2661b556c', iconName: "light/cart-shopping", label: "View your cart", href: this.cartUrl }),
15282
+ !!this.cartCount && (h("nano-badge", { key: '997946ee187bba74e880ab485f1a8e43cc74f707', theme: "danger" }, this.cartCount > 9 ? '9+' : this.cartCount)),
15268
15283
  ]), this.breakpoint <= bpps.contact.breakpoint
15269
15284
  ? bpps.contact.tpl()
15270
- : '', this.isLoggedIn ? (h("nano-dropdown", { dialogTitle: "User menu", class: "gn__user-dropdown", distance: 10, placement: "bottom-end" }, h("button", { slot: "trigger", class: "gn__user-dropdown-trigger" }, h("nano-icon", { name: "light/user" }), h("nano-icon", { name: "light/chevron-down", class: "gn__user-dropdown-chevron" }), !!this.msgCount && (h("nano-badge", { theme: "danger" }, this.msgCount > 9 ? '9+' : this.msgCount))), this.loggedInPanel())) : (h("nano-cta", { secondary: true, size: "small", icon: "false", class: "gn__login-cta" }, typeof this.loginUrl === 'string' ? (h("a", { href: this.formatLoginLink(this.loginUrl) }, "Login")) : (h("button", { onClick: this.loginUrl }, "Login")))))))), h("nano-global-search-results", { key: 'ff1eb9ee71e119f9bf2b292bcfc9fea6138accdd', part: "site-search-results" }, h("div", { key: '56e3c1ecb8aa0bd1776164406e684a8c5d8e60dc', class: "gn__site", part: "site-wrapper" }, h("slot", { key: '78de4f8b640ae63423f90428fe01ae2ba545bdfd' }))))));
15285
+ : '', this.isLoggedIn ? (h("nano-dropdown", { dialogTitle: "User menu", class: "gn__user-dropdown", distance: 10, placement: "bottom-end" }, h("button", { slot: "trigger", class: "gn__user-dropdown-trigger" }, h("nano-icon", { name: "light/user" }), h("nano-icon", { name: "light/chevron-down", class: "gn__user-dropdown-chevron" }), !!this.msgCount && (h("nano-badge", { theme: "danger" }, this.msgCount > 9 ? '9+' : this.msgCount))), this.loggedInPanel())) : (h("nano-cta", { secondary: true, size: "small", icon: "false", class: "gn__login-cta" }, typeof this.loginUrl === 'string' ? (h("a", { href: this.formatLoginLink(this.loginUrl) }, "Login")) : (h("button", { onClick: this.loginUrl }, "Login")))))))), h("nano-global-search-results", { key: '41a5c6ee1257b595b391d711841dbab6d6c5ecc0', part: "site-search-results" }, h("div", { key: '94418390bfa82f913fa521e5612effe53b319ab4', class: "gn__site", part: "site-wrapper" }, h("slot", { key: 'd0c7c41fb54d7d57d44a0ae9a79216a4f1780675' }))))));
15271
15286
  }
15272
15287
  static get assetsDirs() { return ["assets"]; }
15273
15288
  static get watchers() { return {
@@ -19053,6 +19068,126 @@ class MaskedOverflow {
19053
19068
  }; }
19054
19069
  }
19055
19070
 
19071
+ const mddCss = ":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}}nano-mdd{display:grid;grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));gap:var(--nano-spacing-xl)}@media (width < 1200px){nano-mdd{gap:var(--nano-spacing-l2)}}nano-mdd .mdd__span-2{grid-column:span 2}nano-mdd[accordion]{display:block}";
19072
+
19073
+ /**
19074
+ * Mega drop-down container. Groups `nano-mdd-item` elements and optionally
19075
+ * enforces accordion behaviour (only one item open at a time).
19076
+ *
19077
+ * @slot - `nano-mdd-item` elements
19078
+ *
19079
+ * @part grid - the inner grid wrapper
19080
+ *
19081
+ * @version 8.24.0
19082
+ * @status experimental
19083
+ */
19084
+ class Mdd {
19085
+ constructor(hostRef) {
19086
+ registerInstance(this, hostRef);
19087
+ }
19088
+ get host() { return getElement(this); }
19089
+ /** When true, only one item can be open at a time */
19090
+ accordion = false;
19091
+ accordionChanged() {
19092
+ this.syncAccordionProp();
19093
+ }
19094
+ /** Listen for nano-details opening (composed:true bubbles through shadow boundaries) */
19095
+ onDetailsOpen(e) {
19096
+ if (!this.accordion)
19097
+ return;
19098
+ const tag = transformTag('nano-mdd-item');
19099
+ // find which mdd-item the opening details belongs to
19100
+ const openedItem = e
19101
+ .composedPath()
19102
+ .find((el) => el.tagName?.toLowerCase() === tag);
19103
+ if (!openedItem)
19104
+ return;
19105
+ // close all siblings
19106
+ this.host
19107
+ .querySelectorAll(tag)
19108
+ .forEach((item) => {
19109
+ if (item !== openedItem)
19110
+ item.open = false;
19111
+ });
19112
+ }
19113
+ syncAccordionProp() {
19114
+ const tag = transformTag('nano-mdd-item');
19115
+ this.host
19116
+ .querySelectorAll(tag)
19117
+ .forEach((item) => {
19118
+ item.accordion = this.accordion;
19119
+ });
19120
+ }
19121
+ componentDidLoad() {
19122
+ this.syncAccordionProp();
19123
+ }
19124
+ static get watchers() { return {
19125
+ "accordion": ["accordionChanged"]
19126
+ }; }
19127
+ static get style() { return mddCss; }
19128
+ static get cmpMeta() { return {
19129
+ "$flags$": 0,
19130
+ "$tagName$": "nano-mdd",
19131
+ "$members$": {
19132
+ "accordion": [516]
19133
+ },
19134
+ "$listeners$": [[0, "nanoOpen", "onDetailsOpen"]],
19135
+ "$lazyBundleId$": "-",
19136
+ "$attrsToReflect$": [["accordion", "accordion"]]
19137
+ }; }
19138
+ }
19139
+
19140
+ const mddItemCss = ":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}}nano-mdd-item{display:block}nano-mdd-item a:not(nano-content-links a){display:flex;flex-direction:column;gap:var(--nano-spacing-xs);color:var(--nano-color-base-1000);text-decoration:none}@media (width < 1200px){nano-mdd-item a:not(nano-content-links a){font-size:var(--nano-font-size-xs)}}nano-mdd-item a:not(nano-content-links a):hover{text-decoration:underline;color:var(--nano-color-primary-1000)}nano-mdd-item a:not(nano-content-links a)>p{color:var(--nano-color-neutral-1000);font-size:var(--nano-font-size-xs);letter-spacing:var(--nano-letter-spacing-denser);margin:0}@media (width < 1200px){nano-mdd-item a:not(nano-content-links a)>p{font-size:var(--nano-font-size-2xs)}}nano-mdd-item ul{margin:0;padding:0}nano-mdd-item ul li{margin-inline:0;list-style:none;margin-block-end:var(--nano-spacing-l2);line-height:var(--nano-line-height-dense)}nano-mdd-item .mdd__link-columns{gap:var(--nano-spacing-xl)}nano-mdd-item .mdd__link-columns:has(>:nth-child(6)){columns:2}nano-mdd-item .mdd__link-columns>*{display:block;margin-block-end:var(--nano-spacing-l2)}nano-mdd-item .mdd__view-all{display:inline-flex;flex-direction:row;align-items:center;gap:0.25em;color:var(--nano-color-primary-1100);font-size:var(--nano-font-size-2xs);text-decoration:underline}nano-mdd-item .mdd__view-all::after{content:\"\";display:block;flex-shrink:0;inline-size:1em;block-size:1em;background-color:currentcolor;-webkit-mask-image:var(--nano-component-icon-chevron);mask-image:var(--nano-component-icon-chevron);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:cover;mask-size:cover}nano-mdd-item:not([accordion]) [slot=label]{display:block;color:var(--nano-color-text-neutral);font-size:var(--nano-font-size-2xs);line-height:var(--nano-line-height-normal);letter-spacing:1.2px;text-transform:uppercase;margin-block-end:var(--nano-spacing-md)}nano-mdd-item:not([accordion]) [slot=label]::after{content:\"\";display:block;padding-block-start:var(--nano-spacing-md);border-block-end:1px solid rgb(var(--nano-color-base-rgb-1000)/30%)}nano-mdd-item:not([accordion]) .mdd-item__body{display:flex;flex-direction:column}nano-mdd-item[accordion] nano-details>*:not([slot=label]){padding-inline-start:var(--nano-spacing-md)}nano-mdd-item[accordion] .mdd__link-columns{padding-inline-start:var(--nano-spacing-md);columns:1 !important}nano-mdd-item[accordion] nano-details{border:none;border-block-start:1px solid var(--nano-color-neutral-300)}nano-mdd-item[accordion]:last-child nano-details{border-block-end:1px solid var(--nano-color-neutral-300)}";
19141
+
19142
+ /**
19143
+ * An item within a `nano-mdd`. Renders as a plain labelled column in grid mode,
19144
+ * or as a collapsible `nano-details` in accordion mode.
19145
+ *
19146
+ * @slot label - the heading / title of the section
19147
+ * @slot - the body content
19148
+ *
19149
+ * @part details - the underlying `nano-details` element (accordion mode only)
19150
+ *
19151
+ * @version 8.24.0
19152
+ * @status experimental
19153
+ */
19154
+ class MddItem {
19155
+ constructor(hostRef) {
19156
+ registerInstance(this, hostRef);
19157
+ }
19158
+ detailsEl;
19159
+ get host() { return getElement(this); }
19160
+ /** Controlled open state (used by nano-mdd in accordion mode) */
19161
+ open = false;
19162
+ /** Set by parent nano-mdd — switches between column and accordion rendering */
19163
+ accordion = false;
19164
+ openChanged() {
19165
+ if (this.detailsEl)
19166
+ this.detailsEl.open = this.open;
19167
+ }
19168
+ render() {
19169
+ if (this.accordion) {
19170
+ return (h(Host, null, h("nano-details", { ref: (el) => (this.detailsEl = el), open: this.open, size: "small", part: "details", onNanoOpen: () => (this.open = true), onNanoClose: () => (this.open = false) }, h("slot", { name: "label", slot: "label" }), h("slot", null))));
19171
+ }
19172
+ return (h(Host, null, h("div", { class: "mdd-item__column" }, h("div", { class: "mdd-item__label" }, h("slot", { name: "label" })), h("div", { class: "mdd-item__body" }, h("slot", null)))));
19173
+ }
19174
+ static get watchers() { return {
19175
+ "open": ["openChanged"]
19176
+ }; }
19177
+ static get style() { return mddItemCss; }
19178
+ static get cmpMeta() { return {
19179
+ "$flags$": 260,
19180
+ "$tagName$": "nano-mdd-item",
19181
+ "$members$": {
19182
+ "open": [1540],
19183
+ "accordion": [516]
19184
+ },
19185
+ "$listeners$": undefined,
19186
+ "$lazyBundleId$": "-",
19187
+ "$attrsToReflect$": [["open", "open"], ["accordion", "accordion"]]
19188
+ }; }
19189
+ }
19190
+
19056
19191
  const menuCss = ":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{--padding:var(--nano-spacing-sm) var(--nano-spacing-sm);--font-size:1rem;--background:var(--nano-color-surface-subtle);--nav-item-padding:var(--padding);display:block;background:var(--background);color:var(--nano-color-text-default);overflow-x:clip}.menu{font-size:var(--font-size);overscroll-behavior:none;min-inline-size:var(--width);position:relative}.menu:focus{outline:none}::slotted(*:not(.nano-nav-item,.nano-option,hr,slot)){padding:var(--padding);display:block}";
19057
19192
 
19058
19193
  /**
@@ -24779,78 +24914,6 @@ class NanoTag {
24779
24914
  }; }
24780
24915
  }
24781
24916
 
24782
- /**
24783
- * Quality of life for transition handling.
24784
- * Adds / removes transitionend events. Resolves on complete
24785
-
24786
- * @param el element
24787
- * @returns a promise that resolves when the transition is done
24788
- */
24789
- /**
24790
- * handles hiding and showing elements properly (with display),
24791
- * along with transitions, so they are no longer viewable in the dom.
24792
- * - OnHide remove show class, listen for transition end, then display: none on finish
24793
- * - OnShow, display block on start then add a show class
24794
- *
24795
- * @param el
24796
- * @param options
24797
- * @returns a promise of resolving as either 'show' or 'hidden'
24798
- */
24799
- const displayTransition = (el, options) => {
24800
- const opts = {
24801
- className: '',
24802
- show: true,
24803
- showDisplay: 'block',
24804
- showProp: 'classList',
24805
- timeout: 1000,
24806
- ...options,
24807
- };
24808
- return new Promise((resolve) => {
24809
- const showCb = (e) => {
24810
- if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
24811
- (!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
24812
- el.dataset.displayTransition = 'true';
24813
- el.removeEventListener('transitionend', showCb);
24814
- resolve('shown');
24815
- }
24816
- };
24817
- const hideCb = (e) => {
24818
- if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
24819
- (!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
24820
- el.style.display = 'none';
24821
- el.dataset.displayTransition = 'false';
24822
- el.removeEventListener('transitionend', hideCb);
24823
- resolve('hidden');
24824
- }
24825
- };
24826
- if (opts.show) {
24827
- el.addEventListener('transitionend', showCb);
24828
- el.style.display = opts.showDisplay;
24829
- setTimeout(() => el[opts.showProp].add(opts.className), 50);
24830
- }
24831
- else {
24832
- el.addEventListener('transitionend', hideCb);
24833
- el[opts.showProp].remove(opts.className);
24834
- }
24835
- // If no transition, resolve after timeout
24836
- if (opts.timeout) {
24837
- setTimeout(() => {
24838
- if (opts.show && el.dataset.displayTransition !== 'true') {
24839
- el.dataset.displayTransition = 'true';
24840
- el.removeEventListener('transitionend', showCb);
24841
- resolve('shown');
24842
- }
24843
- else if (!opts.show && el.dataset.displayTransition !== 'false') {
24844
- el.style.display = 'none';
24845
- el.dataset.displayTransition = 'false';
24846
- el.removeEventListener('transitionend', hideCb);
24847
- resolve('hidden');
24848
- }
24849
- }, opts.timeout);
24850
- }
24851
- });
24852
- };
24853
-
24854
24917
  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)}";
24855
24918
 
24856
24919
  /**
@@ -24890,6 +24953,11 @@ class NavItem {
24890
24953
  secondaryDiv;
24891
24954
  slotCtrl = new HasSlotController(this, 'secondary', 'close-button');
24892
24955
  controlElement;
24956
+ hoverTimer = -1;
24957
+ openedByTouch = false;
24958
+ openedByClick = false;
24959
+ canHover = false;
24960
+ transitionAbort = null;
24893
24961
  get host() { return getElement(this); }
24894
24962
  didOpen = false;
24895
24963
  isInMenuDrawer = false;
@@ -24907,6 +24975,17 @@ class NavItem {
24907
24975
  checkbox = false;
24908
24976
  /** Whether secondary menus should close on blur */
24909
24977
  closeOnBlur = true;
24978
+ /** Open the secondary panel on hover (fine pointer / non-touch devices only) */
24979
+ openOnHover = false;
24980
+ openOnHoverChanged() {
24981
+ this.canHover =
24982
+ this.openOnHover &&
24983
+ window.matchMedia('(hover: hover) and (pointer: fine)').matches;
24984
+ if (!this.canHover)
24985
+ this.removeHoverListeners();
24986
+ else
24987
+ this.addHoverListeners();
24988
+ }
24910
24989
  /** Emitted when the nav item closes it's secondary navigation. */
24911
24990
  nanoClose;
24912
24991
  /** Emitted when the nav item opens it's secondary navigation. */
@@ -24965,34 +25044,109 @@ class NavItem {
24965
25044
  if (!this.didOpen || !this.slotCtrl.has('secondary') || !this.closeOnBlur)
24966
25045
  return;
24967
25046
  if (e.key && e.key === 'Escape') {
25047
+ this.openedByClick = false;
24968
25048
  this.closeSecondary();
24969
25049
  return;
24970
25050
  }
24971
- if (!e.composedPath().some((el) => el === this.secondaryDiv)) {
25051
+ const path = e.composedPath();
25052
+ // if click-locked, ignore clicks within the host (trigger or panel)
25053
+ if (this.openedByClick && path.some((el) => el === this.host))
25054
+ return;
25055
+ if (!path.some((el) => el === this.secondaryDiv)) {
24972
25056
  this.closeSecondary();
24973
25057
  }
24974
25058
  }
25059
+ addHoverListeners() {
25060
+ this.host.addEventListener('pointerenter', this.handlePointerEnter);
25061
+ this.host.addEventListener('pointerleave', this.handlePointerLeave);
25062
+ this.host.addEventListener('focusout', this.handleFocusOut);
25063
+ }
25064
+ removeHoverListeners() {
25065
+ this.host.removeEventListener('pointerenter', this.handlePointerEnter);
25066
+ this.host.removeEventListener('pointerleave', this.handlePointerLeave);
25067
+ this.host.removeEventListener('focusout', this.handleFocusOut);
25068
+ }
25069
+ handlePointerEnter = (e) => {
25070
+ if (!this.canHover || !this.slotCtrl.has('secondary'))
25071
+ return;
25072
+ if (e.pointerType !== 'mouse') {
25073
+ this.openedByTouch = true;
25074
+ return;
25075
+ }
25076
+ this.openedByTouch = false;
25077
+ window.clearTimeout(this.hoverTimer);
25078
+ // if click-locked open, don't start a re-open timer
25079
+ if (this.openedByClick && this.didOpen)
25080
+ return;
25081
+ this.hoverTimer = window.setTimeout(() => this.openSecondary(), 0);
25082
+ };
25083
+ handlePointerLeave = (e) => {
25084
+ if (!this.canHover ||
25085
+ this.openedByTouch ||
25086
+ this.openedByClick ||
25087
+ !this.slotCtrl.has('secondary'))
25088
+ return;
25089
+ if (e.pointerType !== 'mouse')
25090
+ return;
25091
+ window.clearTimeout(this.hoverTimer);
25092
+ this.hoverTimer = window.setTimeout(() => this.closeSecondary(), 200);
25093
+ };
25094
+ handleFocusOut = (e) => {
25095
+ if (!this.canHover || !this.didOpen)
25096
+ return;
25097
+ // only close if focus left the nav-item entirely
25098
+ if (e.relatedTarget && this.host.contains(e.relatedTarget))
25099
+ return;
25100
+ if (e.relatedTarget &&
25101
+ this.host.shadowRoot?.contains(e.relatedTarget))
25102
+ return;
25103
+ this.closeSecondary();
25104
+ };
25105
+ awaitTransition(signal) {
25106
+ return new Promise((resolve) => {
25107
+ const fallback = window.setTimeout(() => resolve(true), 1000);
25108
+ const cleanup = () => window.clearTimeout(fallback);
25109
+ signal.addEventListener('abort', () => {
25110
+ cleanup();
25111
+ resolve(false);
25112
+ }, { once: true });
25113
+ this.secondaryDiv.addEventListener('transitionend', () => {
25114
+ cleanup();
25115
+ resolve(true);
25116
+ }, { once: true, signal });
25117
+ });
25118
+ }
24975
25119
  closeSecondary = async () => {
24976
25120
  if (!this.slotCtrl.has('secondary') || !this.open)
24977
25121
  return;
25122
+ this.transitionAbort?.abort();
25123
+ this.transitionAbort = new AbortController();
25124
+ const { signal } = this.transitionAbort;
24978
25125
  this.open = false;
24979
- await displayTransition(this.secondaryDiv, {
24980
- className: 'modal--open',
24981
- showProp: 'part',
24982
- show: false,
24983
- });
25126
+ this.secondaryDiv.part.remove('modal--open');
25127
+ const completed = await this.awaitTransition(signal);
25128
+ if (!completed)
25129
+ return;
25130
+ this.secondaryDiv.style.display = 'none';
25131
+ this.openedByClick = false;
24984
25132
  this.nanoClosing.emit({ secondaryMenu: this.secondaryDiv });
24985
25133
  this.didOpen = false;
24986
25134
  };
24987
25135
  openSecondary = async () => {
24988
25136
  if (!this.slotCtrl.has('secondary') || this.open)
24989
25137
  return;
25138
+ this.transitionAbort?.abort();
25139
+ this.transitionAbort = new AbortController();
25140
+ const { signal } = this.transitionAbort;
24990
25141
  this.open = true;
24991
- await displayTransition(this.secondaryDiv, {
24992
- className: 'modal--open',
24993
- showProp: 'part',
24994
- show: true,
24995
- });
25142
+ this.secondaryDiv.style.display = 'block';
25143
+ window.setTimeout(() => {
25144
+ if (!signal.aborted)
25145
+ this.secondaryDiv.part.add('modal--open');
25146
+ }, 50);
25147
+ const completed = await this.awaitTransition(signal);
25148
+ if (!completed)
25149
+ return;
24996
25150
  this.nanoOpening.emit({ secondaryMenu: this.secondaryDiv });
24997
25151
  this.didOpen = true;
24998
25152
  };
@@ -25008,6 +25162,15 @@ class NavItem {
25008
25162
  if (this.disabled)
25009
25163
  return;
25010
25164
  if (this.slotCtrl.has('secondary')) {
25165
+ if (this.canHover) {
25166
+ if (this.didOpen) {
25167
+ // already open via hover — lock it open, suppress hover-close
25168
+ this.openedByClick = true;
25169
+ return;
25170
+ }
25171
+ // opening via click in hover mode — lock it
25172
+ this.openedByClick = true;
25173
+ }
25011
25174
  this.toggleSecondary();
25012
25175
  return;
25013
25176
  }
@@ -25038,29 +25201,37 @@ class NavItem {
25038
25201
  connectedCallback() {
25039
25202
  this.handleDefaultSlotChange();
25040
25203
  this.isInMenuDrawer = !!this.host.closest(transformTag('nano-menu-drawer'));
25204
+ this.openOnHoverChanged();
25205
+ }
25206
+ disconnectedCallback() {
25207
+ window.clearTimeout(this.hoverTimer);
25208
+ this.removeHoverListeners();
25041
25209
  }
25042
25210
  componentDidLoad() {
25043
25211
  this.openChange();
25044
25212
  }
25045
25213
  render() {
25046
- return (h(Host, { key: 'b6ce27588c1ca2ac2a42d0aada06d7f554a1174a', class: {
25214
+ return (h(Host, { key: '5b7160c2d8712548475c34340cd654d4e17ccfbb', class: {
25047
25215
  'nano-menu-drawer': this.isInMenuDrawer,
25048
25216
  'nano-nav-item': true,
25049
25217
  disabled: this.disabled,
25050
- }, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: 'e8faa3568a13feb95ef131f0bd412577120fbf84', class: {
25218
+ }, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: '92d8b0b88a51214a5fa177d20be957b61e049916', class: {
25051
25219
  navitem: true,
25052
25220
  'navitem--open': this.open,
25053
25221
  'navitem--active': this.selected,
25054
- }, part: "trigger-wrapper" }, this.href && !this.disabled && (h("a", { key: '4a4da7478db63015d0dcd81ed053146f8eeac5f3', part: "trigger trigger--anchor", target: this.target, ref: (a) => (this.controlElement = a), href: this.href, class: {
25222
+ }, 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: {
25055
25223
  navitem__trigger: true,
25056
- } }, h("slot", { key: '1eafb7864368850ad2539c402eb1b00877f3d55e', name: "icon-start" }), h("span", { key: '8953312d4dad64ced970d2f1120c07b6c36070f1', class: "navitem__label", part: "label" }, h("slot", { key: '390f468f8d1f5d4f0669cae53ef140e452b16b07', onSlotchange: this.handleDefaultSlotChange })), h("slot", { key: '3ecd42c2ca6c1546f48a1a5fcf7742d90ad4e1c4', name: "icon-end" }))), (!this.href || this.disabled) && (h("button", { key: '0694ce0708264ef1305e4b926a2f40f1875025a9', role: this.checkbox ? 'checkbox' : undefined, "aria-checked": this.checkbox ? this.selected.toString() : undefined, part: "trigger trigger--button", ref: (btn) => (this.controlElement = btn), onClick: this.handleClick, disabled: this.disabled, class: {
25224
+ } }, 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')
25225
+ ? this.didOpen.toString()
25226
+ : undefined, part: "trigger trigger--button", ref: (btn) => (this.controlElement = btn), onClick: this.handleClick, disabled: this.disabled, class: {
25057
25227
  navitem__trigger: true,
25058
- } }, h("slot", { key: 'c3cc4fcbb527f5f8ea2786243fe610d587e36190', name: "icon-start" }), h("span", { key: '385c92f1f2cc26b9c7e4f1a8601920c1f3bf2171', class: "navitem__label", part: "label" }, h("slot", { key: '4e7a75c8903081856c20206aa309c2a9855991da', onSlotchange: this.handleDefaultSlotChange })), h("slot", { key: '668b95901ba0b914ccc193d4f3cc4433d908c014', name: "icon-end" }))), this.slotCtrl.has('secondary') && !this.disabled && (h("div", { key: 'f81c9aeb6c903b25a662fd1fc615d6f95f6b8f4d', part: "modal", class: {
25228
+ } }, 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: {
25059
25229
  navitem__modal: true,
25060
25230
  'navitem__modal--open': this.didOpen,
25061
- }, ref: (div) => (this.secondaryDiv = div), tabIndex: -1 }, h("div", { key: '70a4b002e989753c461c7dac4dd975200a92e3de', class: "navitem__modal-content", part: `modal-content ${this.didOpen ? 'modal-content--open' : ''}` }, this.slotCtrl.has('close-button') && (h("div", { key: '7b0daad80ae03a29789c9d2bef74d2473f2f1f39', part: "close-button", onClick: this.closeSecondary }, h("slot", { key: '858798062958ea0f4ee809cbf853bdb83dd4d184', name: "close-button" }))), h("slot", { key: '41583a8cc59babbfb1a9a084a3de31c61a145fbc', name: "secondary" })), h("div", { key: '5c260dca9a8fdf7951349df64a037fc7415c3c4b', class: "navitem__modal-mask", onClick: this.closeSecondary, part: `modal-mask ${this.didOpen ? 'modal-mask--open' : ''}` }))))));
25231
+ }, 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' : ''}` }))))));
25062
25232
  }
25063
25233
  static get watchers() { return {
25234
+ "openOnHover": ["openOnHoverChanged"],
25064
25235
  "open": ["openChange"],
25065
25236
  "didOpen": ["didOpenChange"]
25066
25237
  }; }
@@ -25076,6 +25247,7 @@ class NavItem {
25076
25247
  "selected": [1540],
25077
25248
  "checkbox": [516],
25078
25249
  "closeOnBlur": [4, "close-on-blur"],
25250
+ "openOnHover": [4, "open-on-hover"],
25079
25251
  "didOpen": [32],
25080
25252
  "isInMenuDrawer": [32],
25081
25253
  "setFocus": [64],
@@ -32302,6 +32474,8 @@ registerComponents([
32302
32474
  InputOTP,
32303
32475
  IntersectionObserve,
32304
32476
  MaskedOverflow,
32477
+ Mdd,
32478
+ MddItem,
32305
32479
  Menu,
32306
32480
  MenuDrawer,
32307
32481
  NanoAccordion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanoporetech-digital/components",
3
- "version": "9.0.1",
3
+ "version": "9.1.1",
4
4
  "sideEffects": false,
5
5
  "description": "A collection of Oxford Nanopore corporate / digital webcomponents",
6
6
  "type": "module",
@@ -56,7 +56,7 @@
56
56
  "smart-array-filter": "^4.0.2",
57
57
  "stencil-wormhole": "3.2.1",
58
58
  "tyqs": "^0.1.3",
59
- "@nanoporetech-digital/style": "9.0.1"
59
+ "@nanoporetech-digital/style": "9.1.1"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@algolia/client-search": "^4.22.1",
@@ -1,4 +0,0 @@
1
- /*!
2
- * Custom elements for Nanopore-Digital Web applications
3
- */
4
- import"./index-vpnVjPKQ.js";var n;function t(n,t=this){return function t(e){if(!e||e===document||e===window)return null;e.assignedSlot&&(e=e.assignedSlot);return e.closest(n)||t(e.getRootNode().host)}(t)}function e(n,t,e=!0){if(!0===e)try{return t=":scope > "+t.split(",").join(", :scope >"),Array.from(n.querySelectorAll(t))}catch(n){console.error(n,"an error. sad")}const o=[];return Array.from(n.childNodes).forEach((n=>{n.matches&&n.matches(t)&&("SLOT"!==n.nodeName||"slot"!==e)?o.push(n):"SLOT"===n.nodeName?Array.from(n.assignedElements()).forEach((n=>{n.matches(t)&&o.push(n)})):e||o.push(n)})),o}function o(n,t){return t&&n?{top:n.getBoundingClientRect().top-t.getBoundingClientRect().top,left:n.getBoundingClientRect().left-t.getBoundingClientRect().left}:{top:0,left:0}}!function(n){n[n.ElementNode=1]="ElementNode",n[n.TextNode=3]="TextNode",n[n.CommentNode=8]="CommentNode",n[n.DocumentNode=9]="DocumentNode",n[n.DocumentTypeNode=10]="DocumentTypeNode",n[n.DocumentFragment=11]="DocumentFragment"}(n||(n={}));export{o as a,t as c,e as g}
@@ -1,4 +0,0 @@
1
- /*!
2
- * Custom elements for Nanopore-Digital Web applications
3
- */
4
- import{j as e,k as t}from"./index-vpnVjPKQ.js";const n=e=>!("isConnected"in e)||e.isConnected,s=(()=>{let e;return(...t)=>{e&&clearTimeout(e),e=setTimeout((()=>{e=0,(e=>{for(let t of e.keys())e.set(t,e.get(t).filter(n))})(...t)}),2e3)}})(),o=e=>"function"==typeof e?e():e,r=(e,t)=>{const n=e.indexOf(t);n>=0&&(e[n]=e[e.length-1],e.length--)},c=(n,c)=>{const p=((e,t=(e,t)=>e!==t)=>{const n=o(e);let s=new Map(Object.entries(n??{}));const c={dispose:[],get:[],set:[],reset:[]},p=new Map,a=()=>{s=new Map(Object.entries(o(e)??{})),c.reset.forEach((e=>e()))},i=e=>(c.get.forEach((t=>t(e))),s.get(e)),u=(e,n)=>{const o=s.get(e);t(n,o,e)&&(s.set(e,n),c.set.forEach((t=>t(e,n,o))))},f="undefined"==typeof Proxy?{}:new Proxy(n,{get:(e,t)=>i(t),ownKeys:()=>Array.from(s.keys()),getOwnPropertyDescriptor:()=>({enumerable:!0,configurable:!0}),has:(e,t)=>s.has(t),set:(e,t,n)=>(u(t,n),!0)}),d=(e,t)=>(c[e].push(t),()=>{r(c[e],t)});return{state:f,get:i,set:u,on:d,onChange:(t,n)=>{const s=(e,s)=>{e===t&&n(s)},r=()=>n(o(e)[t]),c=d("set",s),a=d("reset",r);return p.set(n,{setHandler:s,resetHandler:r,propName:t}),()=>{c(),a(),p.delete(n)}},use:(...e)=>{const t=e.reduce(((e,t)=>(t.set&&e.push(d("set",t.set)),t.get&&e.push(d("get",t.get)),t.reset&&e.push(d("reset",t.reset)),t.dispose&&e.push(d("dispose",t.dispose)),e)),[]);return()=>t.forEach((e=>e()))},dispose:()=>{c.dispose.forEach((e=>e())),a()},reset:a,forceUpdate:e=>{const t=s.get(e);c.set.forEach((n=>n(e,t,t)))},removeListener:(e,t)=>{const n=p.get(t);n&&n.propName===e&&(r(c.set,n.setHandler),r(c.reset,n.resetHandler),p.delete(t))}}})(n,c);return p.use((()=>{if("function"!=typeof e)return{};const n=new Map;return{dispose:()=>n.clear(),get:t=>{const s=e();s&&((e,t,n)=>{const s=e.get(t);s?s.includes(n)||s.push(n):e.set(t,[n])})(n,t,s)},set:e=>{const o=n.get(e);o&&n.set(e,o.filter(t)),s(n)},reset:()=>{n.forEach((e=>e.forEach(t))),s(n)}}})()),p};export{c}