@nanoporetech-digital/components 9.0.0 → 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 (300) hide show
  1. package/dist/cjs/{algolia-data-BqpBVN89.js → algolia-data-BEfDDPWP.js} +1 -1
  2. package/dist/cjs/{component-store-C5eBOK0w.js → component-store-DFsNILxg.js} +1 -1
  3. package/dist/cjs/{constructible-style-BsHBb9au.js → constructible-style-CRdAciHm.js} +1 -1
  4. package/dist/cjs/{dom-Dxk5vXYq.js → dom-CIEcUG2R.js} +1 -1
  5. package/dist/cjs/{fade-Cgz_uvea.js → fade-Cng4p1KQ.js} +3 -3
  6. package/dist/cjs/{form-control-Bq9Dlz-r.js → form-control-DdnBRckY.js} +1 -1
  7. package/dist/cjs/{fullscreen-CiU1Fy55.js → fullscreen-BYNt89kR.js} +3 -3
  8. package/dist/cjs/{index-DGttnXif.js → index-C7Ikbhe3.js} +23 -6
  9. package/dist/cjs/{index-CkLcAUj-.js → index-gxQOxlH_.js} +1 -1
  10. package/dist/cjs/index.cjs.js +3 -3
  11. package/dist/cjs/{lazyload-vgYlCqUh.js → lazyload-CLpLl1ob.js} +3 -3
  12. package/dist/cjs/loader.cjs.js +3 -4
  13. package/dist/cjs/{modal-BlzeVZW4.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 +3 -4
  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-UXM5xpCO.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-D-ELnUF-.js → nano-slides-QbssxNUC.js} +23 -10
  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-jVpDRMfV.js → renderer-bX7EsIYR.js} +1 -1
  80. package/dist/cjs/{scroll-C6pO9RvO.js → scroll-DC2gHZby.js} +1 -1
  81. package/dist/cjs/{slot-CfuOT0U4.js → slot-BRAzxuj_.js} +1 -1
  82. package/dist/cjs/{tabbable-C-YwPfjA.js → tabbable-BXxsn02Z.js} +1 -1
  83. package/dist/cjs/{table.worker-B-rQpQoz.js → table.worker-CZYVrH2c.js} +6 -6
  84. package/dist/collection/collection-manifest.json +2 -0
  85. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  86. package/dist/collection/components/global-nav/global-nav.js +27 -12
  87. package/dist/collection/components/mdd/mdd-item.css +144 -0
  88. package/dist/collection/components/mdd/mdd-item.js +97 -0
  89. package/dist/collection/components/mdd/mdd.css +55 -0
  90. package/dist/collection/components/mdd/mdd.js +101 -0
  91. package/dist/collection/components/nav-item/nav-item.js +148 -18
  92. package/dist/collection/components/slides/slides.js +20 -6
  93. package/dist/components/nano-global-nav.js +27 -12
  94. package/dist/components/nano-mdd-item.d.ts +11 -0
  95. package/dist/components/nano-mdd-item.js +69 -0
  96. package/dist/components/nano-mdd.d.ts +11 -0
  97. package/dist/components/nano-mdd.js +76 -0
  98. package/dist/components/nav-item.js +127 -89
  99. package/dist/components/slides.js +19 -5
  100. package/dist/esm/{algolia-data-Kh0vPn3V.js → algolia-data-D4SY17hw.js} +1 -1
  101. package/dist/esm/{component-store-JYVuxwvK.js → component-store-DCcnMDT0.js} +1 -1
  102. package/dist/esm/{constructible-style-B2_GfhhS.js → constructible-style-BKXXXS9X.js} +1 -1
  103. package/dist/esm/{dom-dlicJTEJ.js → dom-DiLhOqyz.js} +1 -1
  104. package/dist/esm/{fade-DHblf0j-.js → fade-CnvBzIGD.js} +3 -3
  105. package/dist/esm/{form-control-BtblmnSm.js → form-control-DYfvQbOQ.js} +1 -1
  106. package/dist/esm/{fullscreen-D2561t_N.js → fullscreen-BqihOK-Y.js} +3 -3
  107. package/dist/esm/{index-BlBZYxu4.js → index-BSptZcXI.js} +1 -1
  108. package/dist/esm/{index-BM3Om9WE.js → index-RXFO3HxS.js} +23 -7
  109. package/dist/esm/index.js +4 -4
  110. package/dist/esm/{lazyload-DN6DHpMi.js → lazyload-ClpqVun1.js} +3 -3
  111. package/dist/esm/loader.js +3 -4
  112. package/dist/esm/{modal-CY_3_LJ7.js → modal-DFUZVWqg.js} +1 -1
  113. package/dist/esm/nano-accordion.entry.js +3 -3
  114. package/dist/esm/nano-alert.entry.js +7 -7
  115. package/dist/esm/nano-algolia-filter.entry.js +4 -4
  116. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  117. package/dist/esm/nano-algolia-results.entry.js +3 -3
  118. package/dist/esm/nano-algolia.entry.js +5 -5
  119. package/dist/esm/nano-animation.entry.js +2 -2
  120. package/dist/esm/nano-avatar_5.entry.js +9 -9
  121. package/dist/esm/nano-breadcrumb.entry.js +1 -1
  122. package/dist/esm/nano-card-carousel.entry.js +2 -2
  123. package/dist/esm/nano-card.entry.js +1 -1
  124. package/dist/esm/nano-checkbox-group.entry.js +2 -2
  125. package/dist/esm/nano-checkbox.entry.js +2 -2
  126. package/dist/esm/nano-collapsible-comparison.entry.js +2 -2
  127. package/dist/esm/nano-components.js +3 -4
  128. package/dist/esm/nano-content-links.entry.js +1 -1
  129. package/dist/esm/nano-cta.entry.js +1 -1
  130. package/dist/esm/{nano-data-table-07vJ2bHA.js → nano-data-table-HS1UHCwO.js} +5 -5
  131. package/dist/esm/nano-data-table.entry.js +6 -6
  132. package/dist/esm/nano-datalist_3.entry.js +3 -3
  133. package/dist/esm/nano-date-input.entry.js +2 -2
  134. package/dist/esm/nano-date-picker_2.entry.js +4 -4
  135. package/dist/esm/nano-details.entry.js +3 -3
  136. package/dist/esm/nano-dialog.entry.js +8 -8
  137. package/dist/esm/nano-dropdown_2.entry.js +5 -5
  138. package/dist/esm/nano-feature-box.entry.js +1 -1
  139. package/dist/esm/nano-field-validator.entry.js +3 -3
  140. package/dist/esm/nano-file-upload.entry.js +2 -2
  141. package/dist/esm/nano-footer.entry.js +1 -1
  142. package/dist/esm/nano-global-nav.entry.js +29 -14
  143. package/dist/esm/nano-grid-item.entry.js +1 -1
  144. package/dist/esm/nano-grid_2.entry.js +3 -3
  145. package/dist/esm/nano-hero.entry.js +2 -2
  146. package/dist/esm/nano-icon-button_2.entry.js +2 -2
  147. package/dist/esm/nano-icon-item.entry.js +1 -1
  148. package/dist/esm/nano-icon.entry.js +2 -2
  149. package/dist/esm/nano-in-page-nav.entry.js +5 -5
  150. package/dist/esm/nano-increment.entry.js +2 -2
  151. package/dist/esm/nano-input-otp.entry.js +2 -2
  152. package/dist/esm/nano-intersection-observe.entry.js +4 -4
  153. package/dist/esm/nano-masked-overflow.entry.js +4 -4
  154. package/dist/esm/nano-mdd-item.entry.js +35 -0
  155. package/dist/esm/nano-mdd.entry.js +55 -0
  156. package/dist/esm/nano-menu-drawer.entry.js +4 -4
  157. package/dist/esm/nano-more-less.entry.js +2 -2
  158. package/dist/esm/nano-nav-item.entry.js +130 -94
  159. package/dist/esm/nano-option-box.entry.js +1 -1
  160. package/dist/esm/nano-progress-bar.entry.js +1 -1
  161. package/dist/esm/nano-range.entry.js +2 -2
  162. package/dist/esm/nano-rating.entry.js +2 -2
  163. package/dist/esm/nano-resize-observe.entry.js +2 -2
  164. package/dist/esm/nano-search-result.entry.js +1 -1
  165. package/dist/esm/nano-slide.entry.js +2 -2
  166. package/dist/esm/{nano-slides-D0dTkk-b.js → nano-slides-WDFCFgZL.js} +23 -10
  167. package/dist/esm/nano-slides.entry.js +3 -3
  168. package/dist/esm/nano-sortable.entry.js +2 -2
  169. package/dist/esm/nano-spinner.entry.js +1 -1
  170. package/dist/esm/nano-split-pane.entry.js +2 -2
  171. package/dist/esm/nano-step-accordion.entry.js +2 -2
  172. package/dist/esm/nano-step-breadcrumb.entry.js +3 -3
  173. package/dist/esm/nano-sticker.entry.js +4 -4
  174. package/dist/esm/nano-tab-content.entry.js +2 -2
  175. package/dist/esm/nano-tab-group.entry.js +4 -4
  176. package/dist/esm/nano-tab.entry.js +2 -2
  177. package/dist/esm/nano-table.entry.js +2 -2
  178. package/dist/esm/{renderer-DpNDfhNy.js → renderer-B_wACs4w.js} +1 -1
  179. package/dist/esm/{scroll-1nFw8CNk.js → scroll-CFCUiakV.js} +1 -1
  180. package/dist/esm/{slot-Crs4khNK.js → slot-Cj55s-OG.js} +1 -1
  181. package/dist/esm/{tabbable-BgopY-vd.js → tabbable-Dwh0pD2q.js} +1 -1
  182. package/dist/esm/{table.worker-Ssz8Z5u_.js → table.worker-Cg52OK_a.js} +6 -6
  183. package/dist/nano-components/{algolia-data-Kh0vPn3V.js → algolia-data-D4SY17hw.js} +1 -1
  184. package/dist/nano-components/{component-store-JYVuxwvK.js → component-store-DCcnMDT0.js} +1 -1
  185. package/dist/nano-components/{constructible-style-B2_GfhhS.js → constructible-style-BKXXXS9X.js} +1 -1
  186. package/dist/nano-components/{dom-dlicJTEJ.js → dom-DiLhOqyz.js} +1 -1
  187. package/dist/nano-components/{fade-DHblf0j-.js → fade-CnvBzIGD.js} +1 -1
  188. package/dist/nano-components/{form-control-BtblmnSm.js → form-control-DYfvQbOQ.js} +1 -1
  189. package/dist/nano-components/{fullscreen-D2561t_N.js → fullscreen-BqihOK-Y.js} +1 -1
  190. package/dist/nano-components/{index-BlBZYxu4.js → index-BSptZcXI.js} +1 -1
  191. package/dist/nano-components/index-RXFO3HxS.js +5 -0
  192. package/dist/nano-components/index.esm.js +1 -1
  193. package/dist/nano-components/{lazyload-DN6DHpMi.js → lazyload-ClpqVun1.js} +1 -1
  194. package/dist/nano-components/{modal-CY_3_LJ7.js → modal-DFUZVWqg.js} +1 -1
  195. package/dist/nano-components/nano-accordion.entry.js +1 -1
  196. package/dist/nano-components/nano-alert.entry.js +1 -1
  197. package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
  198. package/dist/nano-components/nano-algolia-pagination.entry.js +1 -1
  199. package/dist/nano-components/nano-algolia-results.entry.js +1 -1
  200. package/dist/nano-components/nano-algolia.entry.js +1 -1
  201. package/dist/nano-components/nano-animation.entry.js +1 -1
  202. package/dist/nano-components/nano-avatar_5.entry.js +1 -1
  203. package/dist/nano-components/nano-breadcrumb.entry.js +1 -1
  204. package/dist/nano-components/nano-card-carousel.entry.js +1 -1
  205. package/dist/nano-components/nano-card.entry.js +1 -1
  206. package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
  207. package/dist/nano-components/nano-checkbox.entry.js +1 -1
  208. package/dist/nano-components/nano-collapsible-comparison.entry.js +1 -1
  209. package/dist/nano-components/nano-components.css +31 -106
  210. package/dist/nano-components/nano-components.esm.js +1 -1
  211. package/dist/nano-components/nano-content-links.entry.js +1 -1
  212. package/dist/nano-components/nano-cta.entry.js +1 -1
  213. package/dist/nano-components/nano-data-table-HS1UHCwO.js +4 -0
  214. package/dist/nano-components/nano-data-table.entry.js +1 -1
  215. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  216. package/dist/nano-components/nano-date-input.entry.js +1 -1
  217. package/dist/nano-components/nano-date-picker_2.entry.js +1 -1
  218. package/dist/nano-components/nano-details.entry.js +1 -1
  219. package/dist/nano-components/nano-dialog.entry.js +1 -1
  220. package/dist/nano-components/nano-dropdown_2.entry.js +1 -1
  221. package/dist/nano-components/nano-feature-box.entry.js +1 -1
  222. package/dist/nano-components/nano-field-validator.entry.js +1 -1
  223. package/dist/nano-components/nano-file-upload.entry.js +1 -1
  224. package/dist/nano-components/nano-footer.entry.js +1 -1
  225. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  226. package/dist/nano-components/nano-grid-item.entry.js +1 -1
  227. package/dist/nano-components/nano-grid_2.entry.js +1 -1
  228. package/dist/nano-components/nano-hero.entry.js +1 -1
  229. package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
  230. package/dist/nano-components/nano-icon-item.entry.js +1 -1
  231. package/dist/nano-components/nano-icon.entry.js +1 -1
  232. package/dist/nano-components/nano-in-page-nav.entry.js +1 -1
  233. package/dist/nano-components/nano-increment.entry.js +1 -1
  234. package/dist/nano-components/nano-input-otp.entry.js +1 -1
  235. package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
  236. package/dist/nano-components/nano-masked-overflow.entry.js +1 -1
  237. package/dist/nano-components/nano-mdd-item.entry.js +4 -0
  238. package/dist/nano-components/nano-mdd.entry.js +4 -0
  239. package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
  240. package/dist/nano-components/nano-more-less.entry.js +1 -1
  241. package/dist/nano-components/nano-nav-item.entry.js +1 -1
  242. package/dist/nano-components/nano-option-box.entry.js +1 -1
  243. package/dist/nano-components/nano-progress-bar.entry.js +1 -1
  244. package/dist/nano-components/nano-range.entry.js +1 -1
  245. package/dist/nano-components/nano-rating.entry.js +1 -1
  246. package/dist/nano-components/nano-resize-observe.entry.js +1 -1
  247. package/dist/nano-components/nano-search-result.entry.js +1 -1
  248. package/dist/nano-components/nano-slide.entry.js +1 -1
  249. package/dist/nano-components/{nano-slides-D0dTkk-b.js → nano-slides-WDFCFgZL.js} +4 -4
  250. package/dist/nano-components/nano-slides.entry.js +1 -1
  251. package/dist/nano-components/nano-sortable.entry.js +1 -1
  252. package/dist/nano-components/nano-spinner.entry.js +1 -1
  253. package/dist/nano-components/nano-split-pane.entry.js +1 -1
  254. package/dist/nano-components/nano-step-accordion.entry.js +1 -1
  255. package/dist/nano-components/nano-step-breadcrumb.entry.js +1 -1
  256. package/dist/nano-components/nano-sticker.entry.js +1 -1
  257. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  258. package/dist/nano-components/nano-tab-group.entry.js +1 -1
  259. package/dist/nano-components/nano-tab.entry.js +1 -1
  260. package/dist/nano-components/nano-table.entry.js +1 -1
  261. package/dist/nano-components/{renderer-DpNDfhNy.js → renderer-B_wACs4w.js} +1 -1
  262. package/dist/nano-components/{scroll-1nFw8CNk.js → scroll-CFCUiakV.js} +1 -1
  263. package/dist/nano-components/{slot-Crs4khNK.js → slot-Cj55s-OG.js} +1 -1
  264. package/dist/nano-components/{tabbable-BgopY-vd.js → tabbable-Dwh0pD2q.js} +1 -1
  265. package/dist/nano-components/{table.worker-Ssz8Z5u_.js → table.worker-Cg52OK_a.js} +1 -1
  266. package/dist/stencil.config.js +0 -1
  267. package/dist/style/components.css +1 -1
  268. package/dist/style/components.css.map +1 -1
  269. package/dist/style/core.css +1 -1
  270. package/dist/style/core.css.map +1 -1
  271. package/dist/style/nano.css +1 -1
  272. package/dist/style/nano.css.map +1 -1
  273. package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/plugins/stencil/vue-output/generate-vue-component.d.ts +1 -1
  274. package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/plugins/stencil/vue-output/output-vue.d.ts +1 -1
  275. package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/plugins/stencil/vue-output/plugin.d.ts +1 -1
  276. package/dist/types/builds/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +2 -0
  277. package/dist/types/builds/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +2 -0
  278. package/dist/types/components/global-nav/global-nav.d.ts +1 -0
  279. package/dist/types/components/mdd/mdd-item.d.ts +23 -0
  280. package/dist/types/components/mdd/mdd.d.ts +24 -0
  281. package/dist/types/components/nav-item/nav-item.d.ts +15 -0
  282. package/dist/types/components/slides/slides.d.ts +8 -0
  283. package/dist/types/components.d.ts +114 -0
  284. package/docs-json.json +239 -2
  285. package/docs-vscode.json +34 -0
  286. package/hydrate/index.js +294 -106
  287. package/hydrate/index.mjs +294 -106
  288. package/package.json +2 -2
  289. package/dist/cjs/app-globals-BRy5S0cS.js +0 -10
  290. package/dist/esm/app-globals-CWIH620u.js +0 -8
  291. package/dist/nano-components/app-globals-CWIH620u.js +0 -4
  292. package/dist/nano-components/index-BM3Om9WE.js +0 -5
  293. package/dist/nano-components/nano-data-table-07vJ2bHA.js +0 -4
  294. package/dist/types/builds/zUbCqThW/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -2
  295. package/dist/types/builds/zUbCqThW/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -2
  296. /package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/plugins/stencil/vue-output/index.d.ts +0 -0
  297. /package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/plugins/stencil/vue-output/types.d.ts +0 -0
  298. /package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/plugins/stencil/vue-output/utils.d.ts +0 -0
  299. /package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
  300. /package/dist/types/builds/{zUbCqThW/0/Digital → Digital}/nano-components/packages/components/.stencil/wdio.config.d.ts +0 -0
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { Host, } from "@stencil/core";
5
5
  import { getDirectChildren } from "../../utils/dom";
6
- import { displayTransition } from "../../utils/transitions";
7
6
  import { getTabbableElements } from "../../utils/tabbable";
8
7
  import { h, transformTag } from "../../utils/renderer";
9
8
  import { HasSlotController } from "../../utils/slot";
@@ -38,6 +37,11 @@ export class NavItem {
38
37
  secondaryDiv;
39
38
  slotCtrl = new HasSlotController(this, 'secondary', 'close-button');
40
39
  controlElement;
40
+ hoverTimer = -1;
41
+ openedByTouch = false;
42
+ openedByClick = false;
43
+ canHover = false;
44
+ transitionAbort = null;
41
45
  host;
42
46
  didOpen = false;
43
47
  isInMenuDrawer = false;
@@ -55,6 +59,17 @@ export class NavItem {
55
59
  checkbox = false;
56
60
  /** Whether secondary menus should close on blur */
57
61
  closeOnBlur = true;
62
+ /** Open the secondary panel on hover (fine pointer / non-touch devices only) */
63
+ openOnHover = false;
64
+ openOnHoverChanged() {
65
+ this.canHover =
66
+ this.openOnHover &&
67
+ window.matchMedia('(hover: hover) and (pointer: fine)').matches;
68
+ if (!this.canHover)
69
+ this.removeHoverListeners();
70
+ else
71
+ this.addHoverListeners();
72
+ }
58
73
  /** Emitted when the nav item closes it's secondary navigation. */
59
74
  nanoClose;
60
75
  /** Emitted when the nav item opens it's secondary navigation. */
@@ -113,34 +128,110 @@ export class NavItem {
113
128
  if (!this.didOpen || !this.slotCtrl.has('secondary') || !this.closeOnBlur)
114
129
  return;
115
130
  if (e.key && e.key === 'Escape') {
131
+ this.openedByClick = false;
116
132
  this.closeSecondary();
117
133
  return;
118
134
  }
119
- if (!e.composedPath().some((el) => el === this.secondaryDiv)) {
135
+ const path = e.composedPath();
136
+ // if click-locked, ignore clicks within the host (trigger or panel)
137
+ if (this.openedByClick && path.some((el) => el === this.host))
138
+ return;
139
+ if (!path.some((el) => el === this.secondaryDiv)) {
120
140
  this.closeSecondary();
121
141
  }
122
142
  }
143
+ addHoverListeners() {
144
+ this.host.addEventListener('pointerenter', this.handlePointerEnter);
145
+ this.host.addEventListener('pointerleave', this.handlePointerLeave);
146
+ this.host.addEventListener('focusout', this.handleFocusOut);
147
+ }
148
+ removeHoverListeners() {
149
+ this.host.removeEventListener('pointerenter', this.handlePointerEnter);
150
+ this.host.removeEventListener('pointerleave', this.handlePointerLeave);
151
+ this.host.removeEventListener('focusout', this.handleFocusOut);
152
+ }
153
+ handlePointerEnter = (e) => {
154
+ if (!this.canHover || !this.slotCtrl.has('secondary'))
155
+ return;
156
+ if (e.pointerType !== 'mouse') {
157
+ this.openedByTouch = true;
158
+ return;
159
+ }
160
+ this.openedByTouch = false;
161
+ window.clearTimeout(this.hoverTimer);
162
+ // if click-locked open, don't start a re-open timer
163
+ if (this.openedByClick && this.didOpen)
164
+ return;
165
+ this.hoverTimer = window.setTimeout(() => this.openSecondary(), 0);
166
+ };
167
+ handlePointerLeave = (e) => {
168
+ if (!this.canHover ||
169
+ this.openedByTouch ||
170
+ this.openedByClick ||
171
+ !this.slotCtrl.has('secondary'))
172
+ return;
173
+ if (e.pointerType !== 'mouse')
174
+ return;
175
+ window.clearTimeout(this.hoverTimer);
176
+ this.hoverTimer = window.setTimeout(() => this.closeSecondary(), 200);
177
+ };
178
+ handleFocusOut = (e) => {
179
+ if (!this.canHover || !this.didOpen)
180
+ return;
181
+ // only close if focus left the nav-item entirely
182
+ if (e.relatedTarget && this.host.contains(e.relatedTarget))
183
+ return;
184
+ if (e.relatedTarget &&
185
+ this.host.shadowRoot?.contains(e.relatedTarget))
186
+ return;
187
+ this.closeSecondary();
188
+ };
189
+ awaitTransition(signal) {
190
+ return new Promise((resolve) => {
191
+ const fallback = window.setTimeout(() => resolve(true), 1000);
192
+ const cleanup = () => window.clearTimeout(fallback);
193
+ signal.addEventListener('abort', () => {
194
+ cleanup();
195
+ resolve(false);
196
+ }, { once: true });
197
+ this.secondaryDiv.addEventListener('transitionend', () => {
198
+ cleanup();
199
+ resolve(true);
200
+ }, { once: true, signal });
201
+ });
202
+ }
123
203
  closeSecondary = async () => {
124
204
  if (!this.slotCtrl.has('secondary') || !this.open)
125
205
  return;
206
+ this.transitionAbort?.abort();
207
+ this.transitionAbort = new AbortController();
208
+ const { signal } = this.transitionAbort;
126
209
  this.open = false;
127
- await displayTransition(this.secondaryDiv, {
128
- className: 'modal--open',
129
- showProp: 'part',
130
- show: false,
131
- });
210
+ this.secondaryDiv.part.remove('modal--open');
211
+ const completed = await this.awaitTransition(signal);
212
+ if (!completed)
213
+ return;
214
+ this.secondaryDiv.style.display = 'none';
215
+ this.openedByClick = false;
132
216
  this.nanoClosing.emit({ secondaryMenu: this.secondaryDiv });
133
217
  this.didOpen = false;
134
218
  };
135
219
  openSecondary = async () => {
136
220
  if (!this.slotCtrl.has('secondary') || this.open)
137
221
  return;
222
+ this.transitionAbort?.abort();
223
+ this.transitionAbort = new AbortController();
224
+ const { signal } = this.transitionAbort;
138
225
  this.open = true;
139
- await displayTransition(this.secondaryDiv, {
140
- className: 'modal--open',
141
- showProp: 'part',
142
- show: true,
143
- });
226
+ this.secondaryDiv.style.display = 'block';
227
+ void this.secondaryDiv.clientWidth; // force reflow
228
+ window.setTimeout(() => {
229
+ if (!signal.aborted)
230
+ this.secondaryDiv.part.add('modal--open');
231
+ }, 50);
232
+ const completed = await this.awaitTransition(signal);
233
+ if (!completed)
234
+ return;
144
235
  this.nanoOpening.emit({ secondaryMenu: this.secondaryDiv });
145
236
  this.didOpen = true;
146
237
  };
@@ -156,6 +247,15 @@ export class NavItem {
156
247
  if (this.disabled)
157
248
  return;
158
249
  if (this.slotCtrl.has('secondary')) {
250
+ if (this.canHover) {
251
+ if (this.didOpen) {
252
+ // already open via hover — lock it open, suppress hover-close
253
+ this.openedByClick = true;
254
+ return;
255
+ }
256
+ // opening via click in hover mode — lock it
257
+ this.openedByClick = true;
258
+ }
159
259
  this.toggleSecondary();
160
260
  return;
161
261
  }
@@ -186,27 +286,34 @@ export class NavItem {
186
286
  connectedCallback() {
187
287
  this.handleDefaultSlotChange();
188
288
  this.isInMenuDrawer = !!this.host.closest(transformTag('nano-menu-drawer'));
289
+ this.openOnHoverChanged();
290
+ }
291
+ disconnectedCallback() {
292
+ window.clearTimeout(this.hoverTimer);
293
+ this.removeHoverListeners();
189
294
  }
190
295
  componentDidLoad() {
191
296
  this.openChange();
192
297
  }
193
298
  render() {
194
- return (h(Host, { key: 'b6ce27588c1ca2ac2a42d0aada06d7f554a1174a', class: {
299
+ return (h(Host, { key: '5b7160c2d8712548475c34340cd654d4e17ccfbb', class: {
195
300
  'nano-menu-drawer': this.isInMenuDrawer,
196
301
  'nano-nav-item': true,
197
302
  disabled: this.disabled,
198
- }, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: 'e8faa3568a13feb95ef131f0bd412577120fbf84', class: {
303
+ }, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: '92d8b0b88a51214a5fa177d20be957b61e049916', class: {
199
304
  navitem: true,
200
305
  'navitem--open': this.open,
201
306
  'navitem--active': this.selected,
202
- }, 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: {
307
+ }, 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: {
203
308
  navitem__trigger: true,
204
- } }, 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: {
309
+ } }, 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')
310
+ ? this.didOpen.toString()
311
+ : undefined, part: "trigger trigger--button", ref: (btn) => (this.controlElement = btn), onClick: this.handleClick, disabled: this.disabled, class: {
205
312
  navitem__trigger: true,
206
- } }, 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: {
313
+ } }, 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: {
207
314
  navitem__modal: true,
208
315
  'navitem__modal--open': this.didOpen,
209
- }, 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' : ''}` }))))));
316
+ }, 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' : ''}` }))))));
210
317
  }
211
318
  static get is() { return "nano-nav-item"; }
212
319
  static get encapsulation() { return "shadow"; }
@@ -361,6 +468,26 @@ export class NavItem {
361
468
  "setter": false,
362
469
  "reflect": false,
363
470
  "defaultValue": "true"
471
+ },
472
+ "openOnHover": {
473
+ "type": "boolean",
474
+ "attribute": "open-on-hover",
475
+ "mutable": false,
476
+ "complexType": {
477
+ "original": "boolean",
478
+ "resolved": "boolean",
479
+ "references": {}
480
+ },
481
+ "required": false,
482
+ "optional": false,
483
+ "docs": {
484
+ "tags": [],
485
+ "text": "Open the secondary panel on hover (fine pointer / non-touch devices only)"
486
+ },
487
+ "getter": false,
488
+ "setter": false,
489
+ "reflect": false,
490
+ "defaultValue": "false"
364
491
  }
365
492
  };
366
493
  }
@@ -515,6 +642,9 @@ export class NavItem {
515
642
  static get elementRef() { return "host"; }
516
643
  static get watchers() {
517
644
  return [{
645
+ "propName": "openOnHover",
646
+ "methodName": "openOnHoverChanged"
647
+ }, {
518
648
  "propName": "open",
519
649
  "methodName": "openChange"
520
650
  }, {
@@ -47,6 +47,7 @@ export class Slides {
47
47
  slidesReady;
48
48
  didInit = false;
49
49
  slideCount = 0;
50
+ pageCount = 0;
50
51
  host;
51
52
  /**
52
53
  * Options to pass to the flickity instance.
@@ -188,6 +189,16 @@ export class Slides {
188
189
  flickity.reloadCells();
189
190
  flickity.resize();
190
191
  flickity.reposition();
192
+ this.updatePageCount();
193
+ }
194
+ /**
195
+ * Sync the pager dot count with the number of flickity page groups.
196
+ * When `groupCells` is enabled, flickity groups several cells into a single
197
+ * page, so the dot count must reflect `flickity.slides` rather than the raw
198
+ * number of child slides.
199
+ */
200
+ updatePageCount() {
201
+ this.pageCount = this.syncflickity?.slides.length ?? this.slideCount;
191
202
  }
192
203
  /**
193
204
  * Transition to the specified slide.
@@ -392,6 +403,7 @@ export class Slides {
392
403
  this.readyflickity(flick);
393
404
  this.ready = true;
394
405
  this.isReloading = false;
406
+ this.updatePageCount();
395
407
  if (!window['ResizeObserver'])
396
408
  return;
397
409
  if (this.resizeO) {
@@ -406,6 +418,7 @@ export class Slides {
406
418
  if (vp)
407
419
  vp.style.height = '';
408
420
  flick.resize();
421
+ this.updatePageCount();
409
422
  });
410
423
  });
411
424
  }));
@@ -494,15 +507,15 @@ export class Slides {
494
507
  this.destroyflickity();
495
508
  }
496
509
  render() {
497
- return (h(Host, { key: 'b6f08fc2b892fa03e5e5d1c6faa8c9ed5c96909f', class: "nano-slides" }, h("div", { key: '31703829da5889f44e9918c813b71a9c12955881', class: {
510
+ return (h(Host, { key: '51c5bac1a4200ebf02c679237e39b6f62f37424e', class: "nano-slides" }, h("div", { key: '94633663fd3ad69b4c1bc98c4749c048f57617cf', class: {
498
511
  slideshow: true,
499
512
  ready: this.ready,
500
513
  'not-ready': !this.ready,
501
- }, part: "base" }, h("div", { key: '9f85e49dc9fc7e78fd73aabf81f21bcb4f7c9a29', ref: (div) => (this.flickityEl = div), class: {
514
+ }, part: "base" }, h("div", { key: '056922cbc6ff858bc237a9ec45ebbb281f4b4002', ref: (div) => (this.flickityEl = div), class: {
502
515
  'flickity-container': true,
503
516
  'slides-ready': this.slidesReady,
504
517
  'slides-not-ready': !this.slidesReady,
505
- }, part: "slide-container" }, h("slot", { key: 'df99653f152b14f4e06e2451a93e7517c82027d9', onSlotchange: () => this.update() })), h("div", { key: '0f34a9196a369cadc93a7a678f318f036a4f8bc2', class: "ui-extras" }, h("slot", { key: '6fee3e51010cbdd25ad74b59e86133a30501fe13', name: "ui" })), this.slideCount > 1 && (this.pager || this.navbtns) && (h("div", { key: '54c54f41d109ea9ee44cad50dd8929046b8fabf0', class: "pagination", part: "pagination" }, this.navbtns && (h("button", { key: '6c06cd8854f495dd8df48b94c98eb5cfa5767947', class: "flickity-button flickity-prev-next-button previous", part: "navigation-button navigation-button--previous", "aria-label": "Previous slide", onClick: () => this.slidePrev(), disabled: this.iCurrentSlide === 0 && !this.options.wrapAround }, h("span", { key: 'a7a80501503e055217b546ef618f9665eee79ebc', class: "button-icon button-icon--previous", part: "navigation-icon" }, h("slot", { key: 'd43695afeecb25ba5ba5b0dc674ee4123b35540f', name: "previous-icon" })))), this.pager && (h("div", { key: '5e975ec703c51f361f654afac6bc03a7e4d03892', class: "flickity-page-dots" }, Array.from({ length: this.slideCount }).map((_, index) => (h("button", { part: "pagination-item--active", key: index, class: {
518
+ }, part: "slide-container" }, h("slot", { key: '064767dbec8679ae75f783629737454832821ad4', onSlotchange: () => this.update() })), h("div", { key: '2628c6d3411307f5f42a04986e77839cc9f4a5cd', class: "ui-extras" }, h("slot", { key: '7d1df51cbe0f20db37e266779ea7e63b4b136070', name: "ui" })), this.pageCount > 1 && (this.pager || this.navbtns) && (h("div", { key: '96023f86df7c1cfb7250f9b348a71f7f5b66b7f8', class: "pagination", part: "pagination" }, this.navbtns && (h("button", { key: 'bcf85a09b3210ba78ff19592b991fe3873ce2b75', class: "flickity-button flickity-prev-next-button previous", part: "navigation-button navigation-button--previous", "aria-label": "Previous slide", onClick: () => this.slidePrev(), disabled: this.iCurrentSlide === 0 && !this.options.wrapAround }, h("span", { key: 'c4d0bcf5fb2b963dd36481dbbd2e229d44ac02e4', class: "button-icon button-icon--previous", part: "navigation-icon" }, h("slot", { key: '004f8f5b4513e55240d9703e641c5e59184c3af1', name: "previous-icon" })))), this.pager && (h("div", { key: 'd8ae45a8b450e5870a566cf986460a649a887df9', class: "flickity-page-dots" }, Array.from({ length: this.pageCount }).map((_, index) => (h("button", { part: "pagination-item--active", key: index, class: {
506
519
  'pagination-btn': true,
507
520
  'pagination-btn--active': this.isActive(index),
508
521
  'is-selected': this.isActive(index),
@@ -511,8 +524,8 @@ export class Slides {
511
524
  if (this.isActive(index))
512
525
  return;
513
526
  this.slideTo(index);
514
- } }, h("span", { class: "pagination-btn__label" }, "Go to slide ", index + 1)))))), this.navbtns && (h("button", { key: '7670270c71a6eb61e9a1de33f4a4214ed4a035f9', class: "flickity-button flickity-prev-next-button next", part: "navigation-button navigation-button--next", "aria-label": "Next slide", onClick: () => this.slideNext(), disabled: this.syncflickity?.slides.length ===
515
- this.iCurrentSlide + 1 && !this.options.wrapAround }, h("span", { key: '7140891f079fc702044e6bd46aaaf996dbac02d7', class: "button-icon", part: "navigation-icon" }, h("slot", { key: 'ceed5fb13ebf410b999f7b4a10a0489b2162d4ed', name: "next-icon" })))))))));
527
+ } }, h("span", { class: "pagination-btn__label" }, "Go to slide ", index + 1)))))), this.navbtns && (h("button", { key: '65592f3e81fadad36aa20be8738b9fd94d4d9ca5', class: "flickity-button flickity-prev-next-button next", part: "navigation-button navigation-button--next", "aria-label": "Next slide", onClick: () => this.slideNext(), disabled: this.syncflickity?.slides.length ===
528
+ this.iCurrentSlide + 1 && !this.options.wrapAround }, h("span", { key: '0a0cca0e3e66648009861c3dd2474a0882c3c5bb', class: "button-icon", part: "navigation-icon" }, h("slot", { key: '2b709b10a39ca707ec622983e83e4ba79e9989ee', name: "next-icon" })))))))));
516
529
  }
517
530
  static get is() { return "nano-slides"; }
518
531
  static get encapsulation() { return "shadow"; }
@@ -729,7 +742,8 @@ export class Slides {
729
742
  "iCurrentSlide": {},
730
743
  "slidesReady": {},
731
744
  "didInit": {},
732
- "slideCount": {}
745
+ "slideCount": {},
746
+ "pageCount": {}
733
747
  };
734
748
  }
735
749
  static get events() {
@@ -159,6 +159,20 @@ const GlobalNav = /*@__PURE__*/ proxyCustomElement(class GlobalNav extends HTMLE
159
159
  this.shouldResize === false) {
160
160
  this.overflowOpen = false;
161
161
  }
162
+ this.setNavItemHover();
163
+ }
164
+ setNavItemHover() {
165
+ const isBarMenu = this.breakpoint <= this.bpPartials.mainMenu.breakpoint;
166
+ this.host
167
+ .querySelectorAll('nano-nav-item')
168
+ .forEach((el) => {
169
+ el.openOnHover = isBarMenu;
170
+ });
171
+ this.host
172
+ .querySelectorAll('nano-mdd')
173
+ .forEach((el) => {
174
+ el.accordion = !isBarMenu;
175
+ });
162
176
  }
163
177
  debounceResetResize = debounce(() => {
164
178
  this.shouldResize = false;
@@ -452,6 +466,7 @@ const GlobalNav = /*@__PURE__*/ proxyCustomElement(class GlobalNav extends HTMLE
452
466
  }
453
467
  componentDidRender() {
454
468
  this.handleResize();
469
+ this.setNavItemHover();
455
470
  }
456
471
  /// RENDER ///
457
472
  loggedInPanel() {
@@ -508,21 +523,21 @@ const GlobalNav = /*@__PURE__*/ proxyCustomElement(class GlobalNav extends HTMLE
508
523
  }
509
524
  render() {
510
525
  const bpps = this.bpPartials;
511
- return (h(Host, { key: '690ad4fb8f24cfb37689e8033069c43692ffb0f6', class: {
526
+ return (h(Host, { key: '53c751962d1ed36bae13be0a3c74b340b4a553bd', class: {
512
527
  'overflow-menu': this.breakpoint > bpps.mainMenu.breakpoint,
513
528
  'bar-menu': this.breakpoint <= bpps.mainMenu.breakpoint,
514
529
  'nano-global-nav': true,
515
- } }, h("div", { key: '7dc0a5a9543a461a9cf06c5536dcf04058725309', class: {
530
+ } }, h("div", { key: '40ab68a79d28c8ace97c06f3b1d1222e1c21cf0e', class: {
516
531
  gn: true,
517
532
  'gn__search-open': this.searchBarShown,
518
- } }, 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
533
+ } }, 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
519
534
  ? bpps.mainMenu.tpl()
520
- : '', 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,
535
+ : '', 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,
521
536
  (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,
522
- (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 ||
523
- (!!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) => {
537
+ (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 ||
538
+ (!!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) => {
524
539
  this.handleSearchTermChangeEvent(e.detail.value);
525
- }, 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 && [
540
+ }, 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 && [
526
541
  this.autocompleteResults.hits.map((hit, i) => (h("nano-option", { href: hit.url, class: "gn__search-result", onClick: () => {
527
542
  searchInsight.sendClick({
528
543
  index: this.activeIndex.index,
@@ -532,13 +547,13 @@ const GlobalNav = /*@__PURE__*/ proxyCustomElement(class GlobalNav extends HTMLE
532
547
  positions: [i + 1],
533
548
  });
534
549
  } }, h("span", { innerHTML: this.autocompleteSnippet(hit) })))),
535
- h("nano-option", { key: '0d6d3c61ce7bed27aded81d3332f595185883aca', class: "gn__search-viewall", onNanoSelect: this.onSearchSubmit }, "View all results"),
536
- ])))))), h("div", { key: 'c597dba756ae0a4a995dc02ecd732f5b9b71d28c', class: "gn__cart" }, this.cartUrl && [
537
- h("nano-icon-button", { key: '473a48ab2ce258e301ec10ca6ba46076933435d0', iconName: "light/cart-shopping", label: "View your cart", href: this.cartUrl }),
538
- !!this.cartCount && (h("nano-badge", { key: '535ce44688a0459eb1189a464d72f43c05f0e868', theme: "danger" }, this.cartCount > 9 ? '9+' : this.cartCount)),
550
+ h("nano-option", { key: '0f453d14dada8aff48749a7fb99ceee46ad4d3ef', class: "gn__search-viewall", onNanoSelect: this.onSearchSubmit }, "View all results"),
551
+ ])))))), h("div", { key: '44b96146b2cd8d71c832e5f400a3de65cd1a8f04', class: "gn__cart" }, this.cartUrl && [
552
+ h("nano-icon-button", { key: '1745e9090c7850789417d70b82ce25b2661b556c', iconName: "light/cart-shopping", label: "View your cart", href: this.cartUrl }),
553
+ !!this.cartCount && (h("nano-badge", { key: '997946ee187bba74e880ab485f1a8e43cc74f707', theme: "danger" }, this.cartCount > 9 ? '9+' : this.cartCount)),
539
554
  ]), this.breakpoint <= bpps.contact.breakpoint
540
555
  ? bpps.contact.tpl()
541
- : '', 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' }))))));
556
+ : '', 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' }))))));
542
557
  }
543
558
  static get assetsDirs() { return ["assets"]; }
544
559
  static get watchers() { return {
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface NanoMddItem extends Components.NanoMddItem, HTMLElement {}
4
+ export const NanoMddItem: {
5
+ prototype: NanoMddItem;
6
+ new (): NanoMddItem;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,69 @@
1
+ /*!
2
+ * Custom elements for Nanopore-Digital Web applications
3
+ */
4
+ import { proxyCustomElement, HTMLElement, Host } from '@stencil/core/internal/client';
5
+ import { h } from './renderer.js';
6
+ import { d as defineCustomElement$3 } from './details.js';
7
+ import { d as defineCustomElement$2 } from './icon.js';
8
+
9
+ 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}";
10
+
11
+ const MddItem = /*@__PURE__*/ proxyCustomElement(class MddItem extends HTMLElement {
12
+ constructor() {
13
+ super();
14
+ this.__registerHost();
15
+ }
16
+ detailsEl;
17
+ get host() { return this; }
18
+ /** Controlled open state (used by nano-mdd in accordion mode) */
19
+ open = false;
20
+ /** Set by parent nano-mdd — switches between column and accordion rendering */
21
+ accordion = false;
22
+ openChanged() {
23
+ if (this.detailsEl)
24
+ this.detailsEl.open = this.open;
25
+ }
26
+ render() {
27
+ if (this.accordion) {
28
+ 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))));
29
+ }
30
+ 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)))));
31
+ }
32
+ static get watchers() { return {
33
+ "open": ["openChanged"]
34
+ }; }
35
+ static get style() { return mddItemCss; }
36
+ }, [260, "nano-mdd-item", {
37
+ "open": [1540],
38
+ "accordion": [516]
39
+ }, undefined, {
40
+ "open": ["openChanged"]
41
+ }]);
42
+ function defineCustomElement$1() {
43
+ if (typeof customElements === "undefined") {
44
+ return;
45
+ }
46
+ const components = ["nano-mdd-item", "nano-details", "nano-icon"];
47
+ components.forEach(tagName => { switch (tagName) {
48
+ case "nano-mdd-item":
49
+ if (!customElements.get(tagName)) {
50
+ customElements.define(tagName, MddItem);
51
+ }
52
+ break;
53
+ case "nano-details":
54
+ if (!customElements.get(tagName)) {
55
+ defineCustomElement$3();
56
+ }
57
+ break;
58
+ case "nano-icon":
59
+ if (!customElements.get(tagName)) {
60
+ defineCustomElement$2();
61
+ }
62
+ break;
63
+ } });
64
+ }
65
+
66
+ const NanoMddItem = MddItem;
67
+ const defineCustomElement = defineCustomElement$1;
68
+
69
+ export { NanoMddItem, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface NanoMdd extends Components.NanoMdd, HTMLElement {}
4
+ export const NanoMdd: {
5
+ prototype: NanoMdd;
6
+ new (): NanoMdd;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,76 @@
1
+ /*!
2
+ * Custom elements for Nanopore-Digital Web applications
3
+ */
4
+ import { proxyCustomElement, HTMLElement } from '@stencil/core/internal/client';
5
+ import { t as transformTag } from './renderer.js';
6
+
7
+ 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}";
8
+
9
+ const Mdd = /*@__PURE__*/ proxyCustomElement(class Mdd extends HTMLElement {
10
+ constructor() {
11
+ super();
12
+ this.__registerHost();
13
+ }
14
+ get host() { return this; }
15
+ /** When true, only one item can be open at a time */
16
+ accordion = false;
17
+ accordionChanged() {
18
+ this.syncAccordionProp();
19
+ }
20
+ /** Listen for nano-details opening (composed:true bubbles through shadow boundaries) */
21
+ onDetailsOpen(e) {
22
+ if (!this.accordion)
23
+ return;
24
+ const tag = transformTag('nano-mdd-item');
25
+ // find which mdd-item the opening details belongs to
26
+ const openedItem = e
27
+ .composedPath()
28
+ .find((el) => el.tagName?.toLowerCase() === tag);
29
+ if (!openedItem)
30
+ return;
31
+ // close all siblings
32
+ this.host
33
+ .querySelectorAll(tag)
34
+ .forEach((item) => {
35
+ if (item !== openedItem)
36
+ item.open = false;
37
+ });
38
+ }
39
+ syncAccordionProp() {
40
+ const tag = transformTag('nano-mdd-item');
41
+ this.host
42
+ .querySelectorAll(tag)
43
+ .forEach((item) => {
44
+ item.accordion = this.accordion;
45
+ });
46
+ }
47
+ componentDidLoad() {
48
+ this.syncAccordionProp();
49
+ }
50
+ static get watchers() { return {
51
+ "accordion": ["accordionChanged"]
52
+ }; }
53
+ static get style() { return mddCss; }
54
+ }, [0, "nano-mdd", {
55
+ "accordion": [516]
56
+ }, [[0, "nanoOpen", "onDetailsOpen"]], {
57
+ "accordion": ["accordionChanged"]
58
+ }]);
59
+ function defineCustomElement$1() {
60
+ if (typeof customElements === "undefined") {
61
+ return;
62
+ }
63
+ const components = ["nano-mdd"];
64
+ components.forEach(tagName => { switch (tagName) {
65
+ case "nano-mdd":
66
+ if (!customElements.get(tagName)) {
67
+ customElements.define(tagName, Mdd);
68
+ }
69
+ break;
70
+ } });
71
+ }
72
+
73
+ const NanoMdd = Mdd;
74
+ const defineCustomElement = defineCustomElement$1;
75
+
76
+ export { NanoMdd, defineCustomElement };