@nanoporetech-digital/components 9.0.1 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +144 -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.js CHANGED
@@ -14894,6 +14894,20 @@ class GlobalNav {
14894
14894
  this.shouldResize === false) {
14895
14895
  this.overflowOpen = false;
14896
14896
  }
14897
+ this.setNavItemHover();
14898
+ }
14899
+ setNavItemHover() {
14900
+ const isBarMenu = this.breakpoint <= this.bpPartials.mainMenu.breakpoint;
14901
+ this.host
14902
+ .querySelectorAll('nano-nav-item')
14903
+ .forEach((el) => {
14904
+ el.openOnHover = isBarMenu;
14905
+ });
14906
+ this.host
14907
+ .querySelectorAll('nano-mdd')
14908
+ .forEach((el) => {
14909
+ el.accordion = !isBarMenu;
14910
+ });
14897
14911
  }
14898
14912
  debounceResetResize = debounce$2(() => {
14899
14913
  this.shouldResize = false;
@@ -15183,6 +15197,7 @@ class GlobalNav {
15183
15197
  }
15184
15198
  componentDidRender() {
15185
15199
  this.handleResize();
15200
+ this.setNavItemHover();
15186
15201
  }
15187
15202
  /// RENDER ///
15188
15203
  loggedInPanel() {
@@ -15239,21 +15254,21 @@ class GlobalNav {
15239
15254
  }
15240
15255
  render() {
15241
15256
  const bpps = this.bpPartials;
15242
- return (h(Host, { key: '690ad4fb8f24cfb37689e8033069c43692ffb0f6', class: {
15257
+ return (h(Host, { key: '53c751962d1ed36bae13be0a3c74b340b4a553bd', class: {
15243
15258
  'overflow-menu': this.breakpoint > bpps.mainMenu.breakpoint,
15244
15259
  'bar-menu': this.breakpoint <= bpps.mainMenu.breakpoint,
15245
15260
  'nano-global-nav': true,
15246
- } }, h("div", { key: '7dc0a5a9543a461a9cf06c5536dcf04058725309', class: {
15261
+ } }, h("div", { key: '40ab68a79d28c8ace97c06f3b1d1222e1c21cf0e', class: {
15247
15262
  gn: true,
15248
15263
  'gn__search-open': this.searchBarShown,
15249
- } }, 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
15264
+ } }, 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
15250
15265
  ? bpps.mainMenu.tpl()
15251
- : '', 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,
15266
+ : '', 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,
15252
15267
  (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,
15253
- (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 ||
15254
- (!!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) => {
15268
+ (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 ||
15269
+ (!!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) => {
15255
15270
  this.handleSearchTermChangeEvent(e.detail.value);
15256
- }, 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 && [
15271
+ }, 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 && [
15257
15272
  this.autocompleteResults.hits.map((hit, i) => (h("nano-option", { href: hit.url, class: "gn__search-result", onClick: () => {
15258
15273
  searchInsight.sendClick({
15259
15274
  index: this.activeIndex.index,
@@ -15263,13 +15278,13 @@ class GlobalNav {
15263
15278
  positions: [i + 1],
15264
15279
  });
15265
15280
  } }, h("span", { innerHTML: this.autocompleteSnippet(hit) })))),
15266
- h("nano-option", { key: '0d6d3c61ce7bed27aded81d3332f595185883aca', class: "gn__search-viewall", onNanoSelect: this.onSearchSubmit }, "View all results"),
15267
- ])))))), h("div", { key: 'c597dba756ae0a4a995dc02ecd732f5b9b71d28c', class: "gn__cart" }, this.cartUrl && [
15268
- h("nano-icon-button", { key: '473a48ab2ce258e301ec10ca6ba46076933435d0', iconName: "light/cart-shopping", label: "View your cart", href: this.cartUrl }),
15269
- !!this.cartCount && (h("nano-badge", { key: '535ce44688a0459eb1189a464d72f43c05f0e868', theme: "danger" }, this.cartCount > 9 ? '9+' : this.cartCount)),
15281
+ h("nano-option", { key: '0f453d14dada8aff48749a7fb99ceee46ad4d3ef', class: "gn__search-viewall", onNanoSelect: this.onSearchSubmit }, "View all results"),
15282
+ ])))))), h("div", { key: '44b96146b2cd8d71c832e5f400a3de65cd1a8f04', class: "gn__cart" }, this.cartUrl && [
15283
+ h("nano-icon-button", { key: '1745e9090c7850789417d70b82ce25b2661b556c', iconName: "light/cart-shopping", label: "View your cart", href: this.cartUrl }),
15284
+ !!this.cartCount && (h("nano-badge", { key: '997946ee187bba74e880ab485f1a8e43cc74f707', theme: "danger" }, this.cartCount > 9 ? '9+' : this.cartCount)),
15270
15285
  ]), this.breakpoint <= bpps.contact.breakpoint
15271
15286
  ? bpps.contact.tpl()
15272
- : '', 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' }))))));
15287
+ : '', 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' }))))));
15273
15288
  }
15274
15289
  static get assetsDirs() { return ["assets"]; }
15275
15290
  static get watchers() { return {
@@ -19055,6 +19070,126 @@ class MaskedOverflow {
19055
19070
  }; }
19056
19071
  }
19057
19072
 
19073
+ 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}";
19074
+
19075
+ /**
19076
+ * Mega drop-down container. Groups `nano-mdd-item` elements and optionally
19077
+ * enforces accordion behaviour (only one item open at a time).
19078
+ *
19079
+ * @slot - `nano-mdd-item` elements
19080
+ *
19081
+ * @part grid - the inner grid wrapper
19082
+ *
19083
+ * @version 8.24.0
19084
+ * @status experimental
19085
+ */
19086
+ class Mdd {
19087
+ constructor(hostRef) {
19088
+ registerInstance(this, hostRef);
19089
+ }
19090
+ get host() { return getElement(this); }
19091
+ /** When true, only one item can be open at a time */
19092
+ accordion = false;
19093
+ accordionChanged() {
19094
+ this.syncAccordionProp();
19095
+ }
19096
+ /** Listen for nano-details opening (composed:true bubbles through shadow boundaries) */
19097
+ onDetailsOpen(e) {
19098
+ if (!this.accordion)
19099
+ return;
19100
+ const tag = transformTag('nano-mdd-item');
19101
+ // find which mdd-item the opening details belongs to
19102
+ const openedItem = e
19103
+ .composedPath()
19104
+ .find((el) => el.tagName?.toLowerCase() === tag);
19105
+ if (!openedItem)
19106
+ return;
19107
+ // close all siblings
19108
+ this.host
19109
+ .querySelectorAll(tag)
19110
+ .forEach((item) => {
19111
+ if (item !== openedItem)
19112
+ item.open = false;
19113
+ });
19114
+ }
19115
+ syncAccordionProp() {
19116
+ const tag = transformTag('nano-mdd-item');
19117
+ this.host
19118
+ .querySelectorAll(tag)
19119
+ .forEach((item) => {
19120
+ item.accordion = this.accordion;
19121
+ });
19122
+ }
19123
+ componentDidLoad() {
19124
+ this.syncAccordionProp();
19125
+ }
19126
+ static get watchers() { return {
19127
+ "accordion": ["accordionChanged"]
19128
+ }; }
19129
+ static get style() { return mddCss; }
19130
+ static get cmpMeta() { return {
19131
+ "$flags$": 0,
19132
+ "$tagName$": "nano-mdd",
19133
+ "$members$": {
19134
+ "accordion": [516]
19135
+ },
19136
+ "$listeners$": [[0, "nanoOpen", "onDetailsOpen"]],
19137
+ "$lazyBundleId$": "-",
19138
+ "$attrsToReflect$": [["accordion", "accordion"]]
19139
+ }; }
19140
+ }
19141
+
19142
+ 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 .md__link-columns{gap:var(--nano-spacing-xl)}nano-mdd-item .md__link-columns:has(>:nth-child(6)){columns:2}nano-mdd-item .md__link-columns>*{display:block;margin-block-end:var(--nano-spacing-l2)}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] .md__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)}.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}.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}";
19143
+
19144
+ /**
19145
+ * An item within a `nano-mdd`. Renders as a plain labelled column in grid mode,
19146
+ * or as a collapsible `nano-details` in accordion mode.
19147
+ *
19148
+ * @slot label - the heading / title of the section
19149
+ * @slot - the body content
19150
+ *
19151
+ * @part details - the underlying `nano-details` element (accordion mode only)
19152
+ *
19153
+ * @version 8.24.0
19154
+ * @status experimental
19155
+ */
19156
+ class MddItem {
19157
+ constructor(hostRef) {
19158
+ registerInstance(this, hostRef);
19159
+ }
19160
+ detailsEl;
19161
+ get host() { return getElement(this); }
19162
+ /** Controlled open state (used by nano-mdd in accordion mode) */
19163
+ open = false;
19164
+ /** Set by parent nano-mdd — switches between column and accordion rendering */
19165
+ accordion = false;
19166
+ openChanged() {
19167
+ if (this.detailsEl)
19168
+ this.detailsEl.open = this.open;
19169
+ }
19170
+ render() {
19171
+ if (this.accordion) {
19172
+ 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))));
19173
+ }
19174
+ 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)))));
19175
+ }
19176
+ static get watchers() { return {
19177
+ "open": ["openChanged"]
19178
+ }; }
19179
+ static get style() { return mddItemCss; }
19180
+ static get cmpMeta() { return {
19181
+ "$flags$": 260,
19182
+ "$tagName$": "nano-mdd-item",
19183
+ "$members$": {
19184
+ "open": [1540],
19185
+ "accordion": [516]
19186
+ },
19187
+ "$listeners$": undefined,
19188
+ "$lazyBundleId$": "-",
19189
+ "$attrsToReflect$": [["open", "open"], ["accordion", "accordion"]]
19190
+ }; }
19191
+ }
19192
+
19058
19193
  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}";
19059
19194
 
19060
19195
  /**
@@ -24781,78 +24916,6 @@ class NanoTag {
24781
24916
  }; }
24782
24917
  }
24783
24918
 
24784
- /**
24785
- * Quality of life for transition handling.
24786
- * Adds / removes transitionend events. Resolves on complete
24787
-
24788
- * @param el element
24789
- * @returns a promise that resolves when the transition is done
24790
- */
24791
- /**
24792
- * handles hiding and showing elements properly (with display),
24793
- * along with transitions, so they are no longer viewable in the dom.
24794
- * - OnHide remove show class, listen for transition end, then display: none on finish
24795
- * - OnShow, display block on start then add a show class
24796
- *
24797
- * @param el
24798
- * @param options
24799
- * @returns a promise of resolving as either 'show' or 'hidden'
24800
- */
24801
- const displayTransition = (el, options) => {
24802
- const opts = {
24803
- className: '',
24804
- show: true,
24805
- showDisplay: 'block',
24806
- showProp: 'classList',
24807
- timeout: 1000,
24808
- ...options,
24809
- };
24810
- return new Promise((resolve) => {
24811
- const showCb = (e) => {
24812
- if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
24813
- (!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
24814
- el.dataset.displayTransition = 'true';
24815
- el.removeEventListener('transitionend', showCb);
24816
- resolve('shown');
24817
- }
24818
- };
24819
- const hideCb = (e) => {
24820
- if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
24821
- (!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
24822
- el.style.display = 'none';
24823
- el.dataset.displayTransition = 'false';
24824
- el.removeEventListener('transitionend', hideCb);
24825
- resolve('hidden');
24826
- }
24827
- };
24828
- if (opts.show) {
24829
- el.addEventListener('transitionend', showCb);
24830
- el.style.display = opts.showDisplay;
24831
- setTimeout(() => el[opts.showProp].add(opts.className), 50);
24832
- }
24833
- else {
24834
- el.addEventListener('transitionend', hideCb);
24835
- el[opts.showProp].remove(opts.className);
24836
- }
24837
- // If no transition, resolve after timeout
24838
- if (opts.timeout) {
24839
- setTimeout(() => {
24840
- if (opts.show && el.dataset.displayTransition !== 'true') {
24841
- el.dataset.displayTransition = 'true';
24842
- el.removeEventListener('transitionend', showCb);
24843
- resolve('shown');
24844
- }
24845
- else if (!opts.show && el.dataset.displayTransition !== 'false') {
24846
- el.style.display = 'none';
24847
- el.dataset.displayTransition = 'false';
24848
- el.removeEventListener('transitionend', hideCb);
24849
- resolve('hidden');
24850
- }
24851
- }, opts.timeout);
24852
- }
24853
- });
24854
- };
24855
-
24856
24919
  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)}";
24857
24920
 
24858
24921
  /**
@@ -24892,6 +24955,11 @@ class NavItem {
24892
24955
  secondaryDiv;
24893
24956
  slotCtrl = new HasSlotController(this, 'secondary', 'close-button');
24894
24957
  controlElement;
24958
+ hoverTimer = -1;
24959
+ openedByTouch = false;
24960
+ openedByClick = false;
24961
+ canHover = false;
24962
+ transitionAbort = null;
24895
24963
  get host() { return getElement(this); }
24896
24964
  didOpen = false;
24897
24965
  isInMenuDrawer = false;
@@ -24909,6 +24977,17 @@ class NavItem {
24909
24977
  checkbox = false;
24910
24978
  /** Whether secondary menus should close on blur */
24911
24979
  closeOnBlur = true;
24980
+ /** Open the secondary panel on hover (fine pointer / non-touch devices only) */
24981
+ openOnHover = false;
24982
+ openOnHoverChanged() {
24983
+ this.canHover =
24984
+ this.openOnHover &&
24985
+ window.matchMedia('(hover: hover) and (pointer: fine)').matches;
24986
+ if (!this.canHover)
24987
+ this.removeHoverListeners();
24988
+ else
24989
+ this.addHoverListeners();
24990
+ }
24912
24991
  /** Emitted when the nav item closes it's secondary navigation. */
24913
24992
  nanoClose;
24914
24993
  /** Emitted when the nav item opens it's secondary navigation. */
@@ -24967,34 +25046,109 @@ class NavItem {
24967
25046
  if (!this.didOpen || !this.slotCtrl.has('secondary') || !this.closeOnBlur)
24968
25047
  return;
24969
25048
  if (e.key && e.key === 'Escape') {
25049
+ this.openedByClick = false;
24970
25050
  this.closeSecondary();
24971
25051
  return;
24972
25052
  }
24973
- if (!e.composedPath().some((el) => el === this.secondaryDiv)) {
25053
+ const path = e.composedPath();
25054
+ // if click-locked, ignore clicks within the host (trigger or panel)
25055
+ if (this.openedByClick && path.some((el) => el === this.host))
25056
+ return;
25057
+ if (!path.some((el) => el === this.secondaryDiv)) {
24974
25058
  this.closeSecondary();
24975
25059
  }
24976
25060
  }
25061
+ addHoverListeners() {
25062
+ this.host.addEventListener('pointerenter', this.handlePointerEnter);
25063
+ this.host.addEventListener('pointerleave', this.handlePointerLeave);
25064
+ this.host.addEventListener('focusout', this.handleFocusOut);
25065
+ }
25066
+ removeHoverListeners() {
25067
+ this.host.removeEventListener('pointerenter', this.handlePointerEnter);
25068
+ this.host.removeEventListener('pointerleave', this.handlePointerLeave);
25069
+ this.host.removeEventListener('focusout', this.handleFocusOut);
25070
+ }
25071
+ handlePointerEnter = (e) => {
25072
+ if (!this.canHover || !this.slotCtrl.has('secondary'))
25073
+ return;
25074
+ if (e.pointerType !== 'mouse') {
25075
+ this.openedByTouch = true;
25076
+ return;
25077
+ }
25078
+ this.openedByTouch = false;
25079
+ window.clearTimeout(this.hoverTimer);
25080
+ // if click-locked open, don't start a re-open timer
25081
+ if (this.openedByClick && this.didOpen)
25082
+ return;
25083
+ this.hoverTimer = window.setTimeout(() => this.openSecondary(), 0);
25084
+ };
25085
+ handlePointerLeave = (e) => {
25086
+ if (!this.canHover ||
25087
+ this.openedByTouch ||
25088
+ this.openedByClick ||
25089
+ !this.slotCtrl.has('secondary'))
25090
+ return;
25091
+ if (e.pointerType !== 'mouse')
25092
+ return;
25093
+ window.clearTimeout(this.hoverTimer);
25094
+ this.hoverTimer = window.setTimeout(() => this.closeSecondary(), 200);
25095
+ };
25096
+ handleFocusOut = (e) => {
25097
+ if (!this.canHover || !this.didOpen)
25098
+ return;
25099
+ // only close if focus left the nav-item entirely
25100
+ if (e.relatedTarget && this.host.contains(e.relatedTarget))
25101
+ return;
25102
+ if (e.relatedTarget &&
25103
+ this.host.shadowRoot?.contains(e.relatedTarget))
25104
+ return;
25105
+ this.closeSecondary();
25106
+ };
25107
+ awaitTransition(signal) {
25108
+ return new Promise((resolve) => {
25109
+ const fallback = window.setTimeout(() => resolve(true), 1000);
25110
+ const cleanup = () => window.clearTimeout(fallback);
25111
+ signal.addEventListener('abort', () => {
25112
+ cleanup();
25113
+ resolve(false);
25114
+ }, { once: true });
25115
+ this.secondaryDiv.addEventListener('transitionend', () => {
25116
+ cleanup();
25117
+ resolve(true);
25118
+ }, { once: true, signal });
25119
+ });
25120
+ }
24977
25121
  closeSecondary = async () => {
24978
25122
  if (!this.slotCtrl.has('secondary') || !this.open)
24979
25123
  return;
25124
+ this.transitionAbort?.abort();
25125
+ this.transitionAbort = new AbortController();
25126
+ const { signal } = this.transitionAbort;
24980
25127
  this.open = false;
24981
- await displayTransition(this.secondaryDiv, {
24982
- className: 'modal--open',
24983
- showProp: 'part',
24984
- show: false,
24985
- });
25128
+ this.secondaryDiv.part.remove('modal--open');
25129
+ const completed = await this.awaitTransition(signal);
25130
+ if (!completed)
25131
+ return;
25132
+ this.secondaryDiv.style.display = 'none';
25133
+ this.openedByClick = false;
24986
25134
  this.nanoClosing.emit({ secondaryMenu: this.secondaryDiv });
24987
25135
  this.didOpen = false;
24988
25136
  };
24989
25137
  openSecondary = async () => {
24990
25138
  if (!this.slotCtrl.has('secondary') || this.open)
24991
25139
  return;
25140
+ this.transitionAbort?.abort();
25141
+ this.transitionAbort = new AbortController();
25142
+ const { signal } = this.transitionAbort;
24992
25143
  this.open = true;
24993
- await displayTransition(this.secondaryDiv, {
24994
- className: 'modal--open',
24995
- showProp: 'part',
24996
- show: true,
24997
- });
25144
+ this.secondaryDiv.style.display = 'block';
25145
+ window.setTimeout(() => {
25146
+ if (!signal.aborted)
25147
+ this.secondaryDiv.part.add('modal--open');
25148
+ }, 50);
25149
+ const completed = await this.awaitTransition(signal);
25150
+ if (!completed)
25151
+ return;
24998
25152
  this.nanoOpening.emit({ secondaryMenu: this.secondaryDiv });
24999
25153
  this.didOpen = true;
25000
25154
  };
@@ -25010,6 +25164,15 @@ class NavItem {
25010
25164
  if (this.disabled)
25011
25165
  return;
25012
25166
  if (this.slotCtrl.has('secondary')) {
25167
+ if (this.canHover) {
25168
+ if (this.didOpen) {
25169
+ // already open via hover — lock it open, suppress hover-close
25170
+ this.openedByClick = true;
25171
+ return;
25172
+ }
25173
+ // opening via click in hover mode — lock it
25174
+ this.openedByClick = true;
25175
+ }
25013
25176
  this.toggleSecondary();
25014
25177
  return;
25015
25178
  }
@@ -25040,29 +25203,37 @@ class NavItem {
25040
25203
  connectedCallback() {
25041
25204
  this.handleDefaultSlotChange();
25042
25205
  this.isInMenuDrawer = !!this.host.closest(transformTag('nano-menu-drawer'));
25206
+ this.openOnHoverChanged();
25207
+ }
25208
+ disconnectedCallback() {
25209
+ window.clearTimeout(this.hoverTimer);
25210
+ this.removeHoverListeners();
25043
25211
  }
25044
25212
  componentDidLoad() {
25045
25213
  this.openChange();
25046
25214
  }
25047
25215
  render() {
25048
- return (h(Host, { key: 'b6ce27588c1ca2ac2a42d0aada06d7f554a1174a', class: {
25216
+ return (h(Host, { key: '5b7160c2d8712548475c34340cd654d4e17ccfbb', class: {
25049
25217
  'nano-menu-drawer': this.isInMenuDrawer,
25050
25218
  'nano-nav-item': true,
25051
25219
  disabled: this.disabled,
25052
- }, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: 'e8faa3568a13feb95ef131f0bd412577120fbf84', class: {
25220
+ }, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: '92d8b0b88a51214a5fa177d20be957b61e049916', class: {
25053
25221
  navitem: true,
25054
25222
  'navitem--open': this.open,
25055
25223
  'navitem--active': this.selected,
25056
- }, 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: {
25224
+ }, 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: {
25057
25225
  navitem__trigger: true,
25058
- } }, 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: {
25226
+ } }, 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')
25227
+ ? this.didOpen.toString()
25228
+ : undefined, part: "trigger trigger--button", ref: (btn) => (this.controlElement = btn), onClick: this.handleClick, disabled: this.disabled, class: {
25059
25229
  navitem__trigger: true,
25060
- } }, 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: {
25230
+ } }, 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: {
25061
25231
  navitem__modal: true,
25062
25232
  'navitem__modal--open': this.didOpen,
25063
- }, 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' : ''}` }))))));
25233
+ }, 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' : ''}` }))))));
25064
25234
  }
25065
25235
  static get watchers() { return {
25236
+ "openOnHover": ["openOnHoverChanged"],
25066
25237
  "open": ["openChange"],
25067
25238
  "didOpen": ["didOpenChange"]
25068
25239
  }; }
@@ -25078,6 +25249,7 @@ class NavItem {
25078
25249
  "selected": [1540],
25079
25250
  "checkbox": [516],
25080
25251
  "closeOnBlur": [4, "close-on-blur"],
25252
+ "openOnHover": [4, "open-on-hover"],
25081
25253
  "didOpen": [32],
25082
25254
  "isInMenuDrawer": [32],
25083
25255
  "setFocus": [64],
@@ -32304,6 +32476,8 @@ registerComponents([
32304
32476
  InputOTP,
32305
32477
  IntersectionObserve,
32306
32478
  MaskedOverflow,
32479
+ Mdd,
32480
+ MddItem,
32307
32481
  Menu,
32308
32482
  MenuDrawer,
32309
32483
  NanoAccordion,