@nanoporetech-digital/components 7.6.0 → 7.8.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 (680) hide show
  1. package/dist/cjs/{algolia-data-0447757c.js → algolia-data-ca9cd58e.js} +2 -2
  2. package/dist/cjs/{algolia-data-0447757c.js.map → algolia-data-ca9cd58e.js.map} +1 -1
  3. package/dist/cjs/app-globals-3e14cb71.js +41 -0
  4. package/dist/cjs/app-globals-3e14cb71.js.map +1 -0
  5. package/dist/cjs/{component-store-6a330cd1.js → component-store-b8d4bd91.js} +2 -2
  6. package/dist/cjs/{component-store-6a330cd1.js.map → component-store-b8d4bd91.js.map} +1 -1
  7. package/dist/cjs/{dom-756fcdac.js → dom-b99a1aec.js} +2 -2
  8. package/dist/cjs/{dom-756fcdac.js.map → dom-b99a1aec.js.map} +1 -1
  9. package/dist/cjs/{fade-2dd9dd8b.js → fade-6a5004f4.js} +4 -3
  10. package/dist/cjs/fade-6a5004f4.js.map +1 -0
  11. package/dist/cjs/form-control-5bb39cc2.js +82 -0
  12. package/dist/cjs/form-control-5bb39cc2.js.map +1 -0
  13. package/dist/cjs/{fullscreen-5d0422de.js → fullscreen-f5db9bbe.js} +4 -3
  14. package/dist/cjs/fullscreen-f5db9bbe.js.map +1 -0
  15. package/dist/cjs/{index-b6fa04fa.js → index-615cdb64.js} +4 -2
  16. package/dist/cjs/index-615cdb64.js.map +1 -0
  17. package/dist/cjs/{index-7795a8f6.js → index-a92a0379.js} +2 -2
  18. package/dist/cjs/{index-7795a8f6.js.map → index-a92a0379.js.map} +1 -1
  19. package/dist/cjs/index.cjs.js +20 -5
  20. package/dist/cjs/index.cjs.js.map +1 -1
  21. package/dist/cjs/{lazyload-f181cb37.js → lazyload-13d72e60.js} +4 -3
  22. package/dist/cjs/lazyload-13d72e60.js.map +1 -0
  23. package/dist/cjs/loader.cjs.js +2 -2
  24. package/dist/cjs/nano-accordion.cjs.entry.js +8 -6
  25. package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nano-alert.cjs.entry.js +12 -11
  27. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nano-algolia-filter.cjs.entry.js +7 -5
  29. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +4 -4
  31. package/dist/cjs/nano-algolia-results.cjs.entry.js +6 -4
  32. package/dist/cjs/nano-algolia-results.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-algolia.cjs.entry.js +14 -11
  34. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nano-animation.cjs.entry.js +3 -2
  36. package/dist/cjs/nano-animation.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nano-checkbox-group.cjs.entry.js +6 -4
  38. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nano-checkbox.cjs.entry.js +6 -5
  40. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nano-components.cjs.js +6 -3
  42. package/dist/cjs/nano-components.cjs.js.map +1 -1
  43. package/dist/cjs/nano-datalist_3.cjs.entry.js +30 -28
  44. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nano-date-input.cjs.entry.js +7 -6
  46. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nano-date-picker.cjs.entry.js +16 -15
  48. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nano-details.cjs.entry.js +7 -6
  50. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nano-dialog.cjs.entry.js +7 -6
  52. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  53. package/dist/cjs/nano-drawer.cjs.entry.js +9 -8
  54. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  55. package/dist/cjs/nano-dropdown.cjs.entry.js +9 -7
  56. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nano-field-validator.cjs.entry.js +17 -15
  58. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nano-file-upload.cjs.entry.js +12 -11
  60. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +30 -27
  62. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  63. package/dist/cjs/nano-global-nav.cjs.entry.js +68 -66
  64. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nano-global-search-results.cjs.entry.js +10 -6
  66. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nano-grid-item.cjs.entry.js +2 -2
  68. package/dist/cjs/nano-grid_2.cjs.entry.js +6 -5
  69. package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -1
  70. package/dist/cjs/nano-hero.cjs.entry.js +11 -10
  71. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  72. package/dist/cjs/nano-icon-button_2.cjs.entry.js +6 -5
  73. package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +1 -1
  74. package/dist/cjs/nano-icon.cjs.entry.js +5 -3
  75. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nano-input.cjs.entry.js +9 -7
  77. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  78. package/dist/cjs/nano-intersection-observe.cjs.entry.js +3 -2
  79. package/dist/cjs/nano-intersection-observe.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nano-menu-drawer.cjs.entry.js +10 -8
  81. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  82. package/dist/cjs/nano-more-less.cjs.entry.js +5 -4
  83. package/dist/cjs/nano-more-less.cjs.entry.js.map +1 -1
  84. package/dist/cjs/nano-overflow-nav.cjs.entry.js +7 -6
  85. package/dist/cjs/nano-overflow-nav.cjs.entry.js.map +1 -1
  86. package/dist/cjs/nano-progress-bar.cjs.entry.js +7 -4
  87. package/dist/cjs/nano-progress-bar.cjs.entry.js.map +1 -1
  88. package/dist/cjs/nano-range.cjs.entry.js +9 -7
  89. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  90. package/dist/cjs/nano-rating.cjs.entry.js +10 -9
  91. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  92. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +7 -6
  93. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  94. package/dist/cjs/nano-slide.cjs.entry.js +3 -2
  95. package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
  96. package/dist/cjs/{nano-slides-612634dc.js → nano-slides-0a60315d.js} +15 -13
  97. package/dist/cjs/nano-slides-0a60315d.js.map +1 -0
  98. package/dist/cjs/nano-slides.cjs.entry.js +3 -2
  99. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  100. package/dist/cjs/nano-sortable.cjs.entry.js +3 -2
  101. package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -1
  102. package/dist/cjs/nano-spinner.cjs.entry.js +3 -2
  103. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  104. package/dist/cjs/nano-split-pane.cjs.entry.js +3 -2
  105. package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -1
  106. package/dist/cjs/nano-sticker.cjs.entry.js +6 -5
  107. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  108. package/dist/cjs/nano-tab-content.cjs.entry.js +5 -3
  109. package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
  110. package/dist/cjs/nano-tab-group.cjs.entry.js +16 -14
  111. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  112. package/dist/cjs/nano-tab.cjs.entry.js +4 -3
  113. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  114. package/dist/cjs/{nano-table-99d6a3cc.js → nano-table-43fc3d23.js} +42 -40
  115. package/dist/cjs/nano-table-43fc3d23.js.map +1 -0
  116. package/dist/cjs/nano-table.cjs.entry.js +4 -3
  117. package/dist/cjs/nano-table.cjs.entry.js.map +1 -1
  118. package/dist/cjs/{page-dots-99dd88f6.js → page-dots-ecdd64d1.js} +4 -3
  119. package/dist/cjs/page-dots-ecdd64d1.js.map +1 -0
  120. package/dist/cjs/renderer-cd8b6098.js +63 -0
  121. package/dist/cjs/renderer-cd8b6098.js.map +1 -0
  122. package/dist/cjs/{scroll-772f7d0d.js → scroll-a3e5c6c6.js} +2 -2
  123. package/dist/cjs/{scroll-772f7d0d.js.map → scroll-a3e5c6c6.js.map} +1 -1
  124. package/dist/cjs/{table.worker-263468df.js → table.worker-ad250672.js} +5 -4
  125. package/dist/cjs/table.worker-ad250672.js.map +1 -0
  126. package/dist/collection/components/accordion/accordion.js +7 -5
  127. package/dist/collection/components/accordion/accordion.js.map +1 -1
  128. package/dist/collection/components/alert/alert.helpers.js +3 -2
  129. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  130. package/dist/collection/components/alert/alert.js +8 -7
  131. package/dist/collection/components/alert/alert.js.map +1 -1
  132. package/dist/collection/components/algolia/algolia-filter.js +5 -3
  133. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  134. package/dist/collection/components/algolia/algolia-pagination.js +2 -2
  135. package/dist/collection/components/algolia/algolia-results.js +5 -3
  136. package/dist/collection/components/algolia/algolia-results.js.map +1 -1
  137. package/dist/collection/components/algolia/algolia.js +11 -8
  138. package/dist/collection/components/algolia/algolia.js.map +1 -1
  139. package/dist/collection/components/animation/animation.js +3 -2
  140. package/dist/collection/components/animation/animation.js.map +1 -1
  141. package/dist/collection/components/checkbox/checkbox-group.js +6 -4
  142. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  143. package/dist/collection/components/checkbox/checkbox.js +6 -5
  144. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  145. package/dist/collection/components/datalist/datalist.css +1 -1
  146. package/dist/collection/components/datalist/datalist.js +14 -13
  147. package/dist/collection/components/datalist/datalist.js.map +1 -1
  148. package/dist/collection/components/date-input/date-input.css +3 -3
  149. package/dist/collection/components/date-input/date-input.js +6 -5
  150. package/dist/collection/components/date-input/date-input.js.map +1 -1
  151. package/dist/collection/components/date-picker/date-picker.css +3 -3
  152. package/dist/collection/components/date-picker/date-picker.js +5 -4
  153. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  154. package/dist/collection/components/date-picker/duet-date-picker/date-picker-day.js +1 -1
  155. package/dist/collection/components/date-picker/duet-date-picker/date-picker-day.js.map +1 -1
  156. package/dist/collection/components/date-picker/duet-date-picker/date-picker-month.js +1 -1
  157. package/dist/collection/components/date-picker/duet-date-picker/date-picker-month.js.map +1 -1
  158. package/dist/collection/components/details/details.css +1 -1
  159. package/dist/collection/components/details/details.js +6 -5
  160. package/dist/collection/components/details/details.js.map +1 -1
  161. package/dist/collection/components/dialog/dialog.helpers.js +2 -1
  162. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  163. package/dist/collection/components/dialog/dialog.js +4 -3
  164. package/dist/collection/components/dialog/dialog.js.map +1 -1
  165. package/dist/collection/components/drawer/drawer.css +1 -1
  166. package/dist/collection/components/drawer/drawer.js +5 -4
  167. package/dist/collection/components/drawer/drawer.js.map +1 -1
  168. package/dist/collection/components/dropdown/dropdown.css +1 -1
  169. package/dist/collection/components/dropdown/dropdown.js +8 -6
  170. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  171. package/dist/collection/components/field-validator/field-validator.js +16 -14
  172. package/dist/collection/components/field-validator/field-validator.js.map +1 -1
  173. package/dist/collection/components/file-upload/file-upload.css +1 -1
  174. package/dist/collection/components/file-upload/file-upload.js +3 -2
  175. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  176. package/dist/collection/components/form-control/form-control.js +1 -1
  177. package/dist/collection/components/form-control/form-control.js.map +1 -1
  178. package/dist/collection/components/global-nav/global-nav-user-profile.js +3 -2
  179. package/dist/collection/components/global-nav/global-nav-user-profile.js.map +1 -1
  180. package/dist/collection/components/global-nav/global-nav.js +50 -48
  181. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  182. package/dist/collection/components/global-nav/style/global-nav.css +33 -33
  183. package/dist/collection/components/global-search-results/global-search-results.css +11 -11
  184. package/dist/collection/components/global-search-results/global-search-results.js +9 -5
  185. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  186. package/dist/collection/components/grid/grid-item.js +1 -1
  187. package/dist/collection/components/grid/grid.js +3 -2
  188. package/dist/collection/components/grid/grid.js.map +1 -1
  189. package/dist/collection/components/hero/hero.css +2 -2
  190. package/dist/collection/components/hero/hero.js +6 -5
  191. package/dist/collection/components/hero/hero.js.map +1 -1
  192. package/dist/collection/components/icon/icon.js +4 -2
  193. package/dist/collection/components/icon/icon.js.map +1 -1
  194. package/dist/collection/components/icon-button/icon-button.js +2 -2
  195. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  196. package/dist/collection/components/img/img.js +5 -4
  197. package/dist/collection/components/img/img.js.map +1 -1
  198. package/dist/collection/components/input/input.js +7 -5
  199. package/dist/collection/components/input/input.js.map +1 -1
  200. package/dist/collection/components/intersection-observe/intersection-observe.js +3 -2
  201. package/dist/collection/components/intersection-observe/intersection-observe.js.map +1 -1
  202. package/dist/collection/components/menu/menu.css +1 -1
  203. package/dist/collection/components/menu/menu.js +12 -10
  204. package/dist/collection/components/menu/menu.js.map +1 -1
  205. package/dist/collection/components/menu-drawer/menu-drawer.css +3 -3
  206. package/dist/collection/components/menu-drawer/menu-drawer.js +8 -6
  207. package/dist/collection/components/menu-drawer/menu-drawer.js.map +1 -1
  208. package/dist/collection/components/more-less/more-less.js +4 -3
  209. package/dist/collection/components/more-less/more-less.js.map +1 -1
  210. package/dist/collection/components/nav-item/nav-item.css +12 -12
  211. package/dist/collection/components/nav-item/nav-item.js +11 -9
  212. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  213. package/dist/collection/components/option/option.css +2 -2
  214. package/dist/collection/components/option/option.js +4 -3
  215. package/dist/collection/components/option/option.js.map +1 -1
  216. package/dist/collection/components/overflow-nav/overflow-nav.css +4 -4
  217. package/dist/collection/components/overflow-nav/overflow-nav.js +5 -4
  218. package/dist/collection/components/overflow-nav/overflow-nav.js.map +1 -1
  219. package/dist/collection/components/progress-bar/progress-bar.js +7 -4
  220. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  221. package/dist/collection/components/range/range.js +3 -1
  222. package/dist/collection/components/range/range.js.map +1 -1
  223. package/dist/collection/components/rating/rating.css +1 -1
  224. package/dist/collection/components/rating/rating.js +6 -5
  225. package/dist/collection/components/rating/rating.js.map +1 -1
  226. package/dist/collection/components/resize-observe/resize-observe.js +3 -2
  227. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  228. package/dist/collection/components/select/select.css +1 -5
  229. package/dist/collection/components/select/select.js +9 -7
  230. package/dist/collection/components/select/select.js.map +1 -1
  231. package/dist/collection/components/skeleton/skeleton.js +4 -3
  232. package/dist/collection/components/skeleton/skeleton.js.map +1 -1
  233. package/dist/collection/components/slides/slide.js +3 -2
  234. package/dist/collection/components/slides/slide.js.map +1 -1
  235. package/dist/collection/components/slides/slides.js +10 -8
  236. package/dist/collection/components/slides/slides.js.map +1 -1
  237. package/dist/collection/components/sortable/sortable.js +3 -2
  238. package/dist/collection/components/sortable/sortable.js.map +1 -1
  239. package/dist/collection/components/spinner/spinner.js +3 -2
  240. package/dist/collection/components/spinner/spinner.js.map +1 -1
  241. package/dist/collection/components/split-pane/split-pane.js +3 -2
  242. package/dist/collection/components/split-pane/split-pane.js.map +1 -1
  243. package/dist/collection/components/sticker/sticker.js +5 -4
  244. package/dist/collection/components/sticker/sticker.js.map +1 -1
  245. package/dist/collection/components/table/table.cell.js +3 -1
  246. package/dist/collection/components/table/table.cell.js.map +1 -1
  247. package/dist/collection/components/table/table.css +2 -2
  248. package/dist/collection/components/table/table.header.js +2 -1
  249. package/dist/collection/components/table/table.header.js.map +1 -1
  250. package/dist/collection/components/table/table.js +9 -8
  251. package/dist/collection/components/table/table.js.map +1 -1
  252. package/dist/collection/components/table/table.row.js +1 -1
  253. package/dist/collection/components/table/table.row.js.map +1 -1
  254. package/dist/collection/components/tabs/tab-content.js +5 -3
  255. package/dist/collection/components/tabs/tab-content.js.map +1 -1
  256. package/dist/collection/components/tabs/tab-group.css +3 -3
  257. package/dist/collection/components/tabs/tab-group.js +12 -10
  258. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  259. package/dist/collection/components/tabs/tab.js +4 -3
  260. package/dist/collection/components/tabs/tab.js.map +1 -1
  261. package/dist/collection/components/tooltip/tooltip.js +4 -3
  262. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  263. package/dist/collection/global/script/global.js +28 -23
  264. package/dist/collection/global/script/global.js.map +1 -1
  265. package/dist/collection/index.js +17 -2
  266. package/dist/collection/index.js.map +1 -1
  267. package/dist/collection/utils/renderer.js +54 -0
  268. package/dist/collection/utils/renderer.js.map +1 -0
  269. package/dist/components/algolia.js +11 -8
  270. package/dist/components/algolia.js.map +1 -1
  271. package/dist/components/datalist.js +19 -30
  272. package/dist/components/datalist.js.map +1 -1
  273. package/dist/components/date-picker.js +6 -5
  274. package/dist/components/date-picker.js.map +1 -1
  275. package/dist/components/dropdown.js +9 -7
  276. package/dist/components/dropdown.js.map +1 -1
  277. package/dist/components/form-control.js +1 -1
  278. package/dist/components/form-control.js.map +1 -1
  279. package/dist/components/global-nav-user-profile.js +3 -2
  280. package/dist/components/global-nav-user-profile.js.map +1 -1
  281. package/dist/components/grid.js +2 -1
  282. package/dist/components/grid.js.map +1 -1
  283. package/dist/components/icon-button.js +2 -2
  284. package/dist/components/icon-button.js.map +1 -1
  285. package/dist/components/icon.js +4 -2
  286. package/dist/components/icon.js.map +1 -1
  287. package/dist/components/img.js +5 -4
  288. package/dist/components/img.js.map +1 -1
  289. package/dist/components/index.js +48 -31
  290. package/dist/components/index.js.map +1 -1
  291. package/dist/components/input.js +7 -5
  292. package/dist/components/input.js.map +1 -1
  293. package/dist/components/menu.js +13 -11
  294. package/dist/components/menu.js.map +1 -1
  295. package/dist/components/nano-accordion.js +7 -5
  296. package/dist/components/nano-accordion.js.map +1 -1
  297. package/dist/components/nano-alert.js +8 -7
  298. package/dist/components/nano-alert.js.map +1 -1
  299. package/dist/components/nano-algolia-filter.js +5 -3
  300. package/dist/components/nano-algolia-filter.js.map +1 -1
  301. package/dist/components/nano-algolia-pagination.js +2 -2
  302. package/dist/components/nano-algolia-results.js +5 -3
  303. package/dist/components/nano-algolia-results.js.map +1 -1
  304. package/dist/components/nano-animation.js +3 -2
  305. package/dist/components/nano-animation.js.map +1 -1
  306. package/dist/components/nano-checkbox-group.js +6 -4
  307. package/dist/components/nano-checkbox-group.js.map +1 -1
  308. package/dist/components/nano-checkbox.js +6 -5
  309. package/dist/components/nano-checkbox.js.map +1 -1
  310. package/dist/components/nano-date-input.js +7 -6
  311. package/dist/components/nano-date-input.js.map +1 -1
  312. package/dist/components/nano-details.js +7 -6
  313. package/dist/components/nano-details.js.map +1 -1
  314. package/dist/components/nano-dialog.js +4 -3
  315. package/dist/components/nano-dialog.js.map +1 -1
  316. package/dist/components/nano-drawer.js +6 -5
  317. package/dist/components/nano-drawer.js.map +1 -1
  318. package/dist/components/nano-field-validator.js +16 -14
  319. package/dist/components/nano-field-validator.js.map +1 -1
  320. package/dist/components/nano-file-upload.js +4 -3
  321. package/dist/components/nano-file-upload.js.map +1 -1
  322. package/dist/components/nano-global-nav.js +51 -49
  323. package/dist/components/nano-global-nav.js.map +1 -1
  324. package/dist/components/nano-global-search-results.js +10 -6
  325. package/dist/components/nano-global-search-results.js.map +1 -1
  326. package/dist/components/nano-grid-item.js +1 -1
  327. package/dist/components/nano-hero.js +7 -6
  328. package/dist/components/nano-hero.js.map +1 -1
  329. package/dist/components/nano-intersection-observe.js +3 -2
  330. package/dist/components/nano-intersection-observe.js.map +1 -1
  331. package/dist/components/nano-menu-drawer.js +9 -7
  332. package/dist/components/nano-menu-drawer.js.map +1 -1
  333. package/dist/components/nano-more-less.js +4 -3
  334. package/dist/components/nano-more-less.js.map +1 -1
  335. package/dist/components/nano-overflow-nav.js +6 -5
  336. package/dist/components/nano-overflow-nav.js.map +1 -1
  337. package/dist/components/nano-range.js +3 -1
  338. package/dist/components/nano-range.js.map +1 -1
  339. package/dist/components/nano-rating.js +7 -6
  340. package/dist/components/nano-rating.js.map +1 -1
  341. package/dist/components/nano-slide.js +3 -2
  342. package/dist/components/nano-slide.js.map +1 -1
  343. package/dist/components/nano-slides.js +10 -8
  344. package/dist/components/nano-slides.js.map +1 -1
  345. package/dist/components/nano-sortable.js +3 -2
  346. package/dist/components/nano-sortable.js.map +1 -1
  347. package/dist/components/nano-split-pane.js +3 -2
  348. package/dist/components/nano-split-pane.js.map +1 -1
  349. package/dist/components/nano-tab-content.js +5 -3
  350. package/dist/components/nano-tab-content.js.map +1 -1
  351. package/dist/components/nano-tab-group.js +13 -11
  352. package/dist/components/nano-tab-group.js.map +1 -1
  353. package/dist/components/nano-tab.js +4 -3
  354. package/dist/components/nano-tab.js.map +1 -1
  355. package/dist/components/nano-table.js +38 -36
  356. package/dist/components/nano-table.js.map +1 -1
  357. package/dist/components/nav-item.js +12 -10
  358. package/dist/components/nav-item.js.map +1 -1
  359. package/dist/components/option.js +5 -4
  360. package/dist/components/option.js.map +1 -1
  361. package/dist/components/progress-bar.js +7 -4
  362. package/dist/components/progress-bar.js.map +1 -1
  363. package/dist/components/renderer.js +58 -0
  364. package/dist/components/renderer.js.map +1 -0
  365. package/dist/components/resize-observe.js +3 -2
  366. package/dist/components/resize-observe.js.map +1 -1
  367. package/dist/components/select.js +10 -8
  368. package/dist/components/select.js.map +1 -1
  369. package/dist/components/skeleton.js +4 -3
  370. package/dist/components/skeleton.js.map +1 -1
  371. package/dist/components/spinner.js +3 -2
  372. package/dist/components/spinner.js.map +1 -1
  373. package/dist/components/sticker.js +5 -4
  374. package/dist/components/sticker.js.map +1 -1
  375. package/dist/components/tooltip.js +4 -3
  376. package/dist/components/tooltip.js.map +1 -1
  377. package/dist/esm/{algolia-data-8fc24341.js → algolia-data-f0f72f1d.js} +2 -2
  378. package/dist/esm/{algolia-data-8fc24341.js.map → algolia-data-f0f72f1d.js.map} +1 -1
  379. package/dist/esm/app-globals-f0120bbe.js +39 -0
  380. package/dist/esm/app-globals-f0120bbe.js.map +1 -0
  381. package/dist/esm/{component-store-b798181b.js → component-store-199a9fd8.js} +2 -2
  382. package/dist/esm/{component-store-b798181b.js.map → component-store-199a9fd8.js.map} +1 -1
  383. package/dist/esm/{dom-d7f9f24c.js → dom-fafdec9a.js} +2 -2
  384. package/dist/esm/{dom-d7f9f24c.js.map → dom-fafdec9a.js.map} +1 -1
  385. package/dist/esm/{fade-4ff5d9de.js → fade-ce1a4958.js} +4 -3
  386. package/dist/esm/fade-ce1a4958.js.map +1 -0
  387. package/dist/esm/{form-control-812999d0.js → form-control-f48fa873.js} +2 -2
  388. package/dist/esm/form-control-f48fa873.js.map +1 -0
  389. package/dist/esm/{fullscreen-382d7890.js → fullscreen-52d62028.js} +4 -3
  390. package/dist/esm/fullscreen-52d62028.js.map +1 -0
  391. package/dist/esm/{index-3118109b.js → index-6cc72cd9.js} +3 -3
  392. package/dist/esm/index-6cc72cd9.js.map +1 -0
  393. package/dist/esm/{index-d7a4a150.js → index-f5f7b950.js} +2 -2
  394. package/dist/esm/{index-d7a4a150.js.map → index-f5f7b950.js.map} +1 -1
  395. package/dist/esm/index.js +19 -5
  396. package/dist/esm/index.js.map +1 -1
  397. package/dist/esm/{lazyload-49b745e4.js → lazyload-8ff69ba4.js} +4 -3
  398. package/dist/esm/lazyload-8ff69ba4.js.map +1 -0
  399. package/dist/esm/loader.js +3 -3
  400. package/dist/esm/nano-accordion.entry.js +8 -6
  401. package/dist/esm/nano-accordion.entry.js.map +1 -1
  402. package/dist/esm/nano-alert.entry.js +10 -9
  403. package/dist/esm/nano-alert.entry.js.map +1 -1
  404. package/dist/esm/nano-algolia-filter.entry.js +7 -5
  405. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  406. package/dist/esm/nano-algolia-pagination.entry.js +4 -4
  407. package/dist/esm/nano-algolia-results.entry.js +6 -4
  408. package/dist/esm/nano-algolia-results.entry.js.map +1 -1
  409. package/dist/esm/nano-algolia.entry.js +14 -11
  410. package/dist/esm/nano-algolia.entry.js.map +1 -1
  411. package/dist/esm/nano-animation.entry.js +3 -2
  412. package/dist/esm/nano-animation.entry.js.map +1 -1
  413. package/dist/esm/nano-checkbox-group.entry.js +6 -4
  414. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  415. package/dist/esm/nano-checkbox.entry.js +6 -5
  416. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  417. package/dist/esm/nano-components.js +7 -4
  418. package/dist/esm/nano-components.js.map +1 -1
  419. package/dist/esm/nano-datalist_3.entry.js +30 -28
  420. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  421. package/dist/esm/nano-date-input.entry.js +7 -6
  422. package/dist/esm/nano-date-input.entry.js.map +1 -1
  423. package/dist/esm/nano-date-picker.entry.js +6 -5
  424. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  425. package/dist/esm/nano-details.entry.js +7 -6
  426. package/dist/esm/nano-details.entry.js.map +1 -1
  427. package/dist/esm/nano-dialog.entry.js +7 -6
  428. package/dist/esm/nano-dialog.entry.js.map +1 -1
  429. package/dist/esm/nano-drawer.entry.js +9 -8
  430. package/dist/esm/nano-drawer.entry.js.map +1 -1
  431. package/dist/esm/nano-dropdown.entry.js +9 -7
  432. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  433. package/dist/esm/nano-field-validator.entry.js +17 -15
  434. package/dist/esm/nano-field-validator.entry.js.map +1 -1
  435. package/dist/esm/nano-file-upload.entry.js +4 -3
  436. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  437. package/dist/esm/nano-global-nav-user-profile_3.entry.js +23 -20
  438. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  439. package/dist/esm/nano-global-nav.entry.js +52 -50
  440. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  441. package/dist/esm/nano-global-search-results.entry.js +10 -6
  442. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  443. package/dist/esm/nano-grid-item.entry.js +2 -2
  444. package/dist/esm/nano-grid_2.entry.js +6 -5
  445. package/dist/esm/nano-grid_2.entry.js.map +1 -1
  446. package/dist/esm/nano-hero.entry.js +7 -6
  447. package/dist/esm/nano-hero.entry.js.map +1 -1
  448. package/dist/esm/nano-icon-button_2.entry.js +6 -5
  449. package/dist/esm/nano-icon-button_2.entry.js.map +1 -1
  450. package/dist/esm/nano-icon.entry.js +4 -2
  451. package/dist/esm/nano-icon.entry.js.map +1 -1
  452. package/dist/esm/nano-input.entry.js +9 -7
  453. package/dist/esm/nano-input.entry.js.map +1 -1
  454. package/dist/esm/nano-intersection-observe.entry.js +3 -2
  455. package/dist/esm/nano-intersection-observe.entry.js.map +1 -1
  456. package/dist/esm/nano-menu-drawer.entry.js +10 -8
  457. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  458. package/dist/esm/nano-more-less.entry.js +4 -3
  459. package/dist/esm/nano-more-less.entry.js.map +1 -1
  460. package/dist/esm/nano-overflow-nav.entry.js +7 -6
  461. package/dist/esm/nano-overflow-nav.entry.js.map +1 -1
  462. package/dist/esm/nano-progress-bar.entry.js +7 -4
  463. package/dist/esm/nano-progress-bar.entry.js.map +1 -1
  464. package/dist/esm/nano-range.entry.js +3 -1
  465. package/dist/esm/nano-range.entry.js.map +1 -1
  466. package/dist/esm/nano-rating.entry.js +7 -6
  467. package/dist/esm/nano-rating.entry.js.map +1 -1
  468. package/dist/esm/nano-resize-observe_2.entry.js +5 -4
  469. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  470. package/dist/esm/nano-slide.entry.js +3 -2
  471. package/dist/esm/nano-slide.entry.js.map +1 -1
  472. package/dist/esm/{nano-slides-c3eb1afe.js → nano-slides-2715825b.js} +15 -13
  473. package/dist/esm/nano-slides-2715825b.js.map +1 -0
  474. package/dist/esm/nano-slides.entry.js +3 -2
  475. package/dist/esm/nano-slides.entry.js.map +1 -1
  476. package/dist/esm/nano-sortable.entry.js +3 -2
  477. package/dist/esm/nano-sortable.entry.js.map +1 -1
  478. package/dist/esm/nano-spinner.entry.js +3 -2
  479. package/dist/esm/nano-spinner.entry.js.map +1 -1
  480. package/dist/esm/nano-split-pane.entry.js +3 -2
  481. package/dist/esm/nano-split-pane.entry.js.map +1 -1
  482. package/dist/esm/nano-sticker.entry.js +6 -5
  483. package/dist/esm/nano-sticker.entry.js.map +1 -1
  484. package/dist/esm/nano-tab-content.entry.js +5 -3
  485. package/dist/esm/nano-tab-content.entry.js.map +1 -1
  486. package/dist/esm/nano-tab-group.entry.js +16 -14
  487. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  488. package/dist/esm/nano-tab.entry.js +4 -3
  489. package/dist/esm/nano-tab.entry.js.map +1 -1
  490. package/dist/esm/{nano-table-d15f6782.js → nano-table-4481d4e1.js} +42 -40
  491. package/dist/esm/nano-table-4481d4e1.js.map +1 -0
  492. package/dist/esm/nano-table.entry.js +4 -3
  493. package/dist/esm/nano-table.entry.js.map +1 -1
  494. package/dist/esm/{page-dots-986d3b32.js → page-dots-5b23db8c.js} +4 -3
  495. package/dist/esm/page-dots-5b23db8c.js.map +1 -0
  496. package/dist/esm/renderer-4bc3e2dc.js +58 -0
  497. package/dist/esm/renderer-4bc3e2dc.js.map +1 -0
  498. package/dist/esm/{scroll-f373a189.js → scroll-1afc6a4e.js} +2 -2
  499. package/dist/esm/{scroll-f373a189.js.map → scroll-1afc6a4e.js.map} +1 -1
  500. package/dist/esm/{table.worker-b7ee4edc.js → table.worker-1bc9c170.js} +5 -4
  501. package/dist/esm/table.worker-1bc9c170.js.map +1 -0
  502. package/dist/nano-components/{algolia-data-8fc24341.js → algolia-data-f0f72f1d.js} +2 -2
  503. package/dist/nano-components/app-globals-f0120bbe.js +5 -0
  504. package/dist/nano-components/app-globals-f0120bbe.js.map +1 -0
  505. package/dist/nano-components/{component-store-b798181b.js → component-store-199a9fd8.js} +2 -2
  506. package/dist/nano-components/{dom-d7f9f24c.js → dom-fafdec9a.js} +2 -2
  507. package/dist/nano-components/fade-ce1a4958.js +5 -0
  508. package/dist/nano-components/{fade-4ff5d9de.js.map → fade-ce1a4958.js.map} +1 -1
  509. package/dist/nano-components/form-control-f48fa873.js +5 -0
  510. package/dist/nano-components/form-control-f48fa873.js.map +1 -0
  511. package/dist/nano-components/fullscreen-52d62028.js +5 -0
  512. package/dist/nano-components/{fullscreen-382d7890.js.map → fullscreen-52d62028.js.map} +1 -1
  513. package/dist/nano-components/{index-3118109b.js → index-6cc72cd9.js} +3 -3
  514. package/dist/nano-components/index-6cc72cd9.js.map +1 -0
  515. package/dist/nano-components/{index-d7a4a150.js → index-f5f7b950.js} +2 -2
  516. package/dist/nano-components/index.esm.js +1 -1
  517. package/dist/nano-components/index.esm.js.map +1 -1
  518. package/dist/nano-components/lazyload-8ff69ba4.js +5 -0
  519. package/dist/nano-components/{lazyload-49b745e4.js.map → lazyload-8ff69ba4.js.map} +1 -1
  520. package/dist/nano-components/nano-accordion.entry.js +1 -1
  521. package/dist/nano-components/nano-accordion.entry.js.map +1 -1
  522. package/dist/nano-components/nano-alert.entry.js +1 -1
  523. package/dist/nano-components/nano-alert.entry.js.map +1 -1
  524. package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
  525. package/dist/nano-components/nano-algolia-filter.entry.js.map +1 -1
  526. package/dist/nano-components/nano-algolia-pagination.entry.js +1 -1
  527. package/dist/nano-components/nano-algolia-results.entry.js +1 -1
  528. package/dist/nano-components/nano-algolia-results.entry.js.map +1 -1
  529. package/dist/nano-components/nano-algolia.entry.js +1 -1
  530. package/dist/nano-components/nano-algolia.entry.js.map +1 -1
  531. package/dist/nano-components/nano-animation.entry.js +1 -1
  532. package/dist/nano-components/nano-animation.entry.js.map +1 -1
  533. package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
  534. package/dist/nano-components/nano-checkbox-group.entry.js.map +1 -1
  535. package/dist/nano-components/nano-checkbox.entry.js +1 -1
  536. package/dist/nano-components/nano-checkbox.entry.js.map +1 -1
  537. package/dist/nano-components/nano-components.esm.js +1 -1
  538. package/dist/nano-components/nano-components.esm.js.map +1 -1
  539. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  540. package/dist/nano-components/nano-datalist_3.entry.js.map +1 -1
  541. package/dist/nano-components/nano-date-input.entry.js +1 -1
  542. package/dist/nano-components/nano-date-input.entry.js.map +1 -1
  543. package/dist/nano-components/nano-date-picker.entry.js +1 -1
  544. package/dist/nano-components/nano-date-picker.entry.js.map +1 -1
  545. package/dist/nano-components/nano-details.entry.js +1 -1
  546. package/dist/nano-components/nano-details.entry.js.map +1 -1
  547. package/dist/nano-components/nano-dialog.entry.js +1 -1
  548. package/dist/nano-components/nano-dialog.entry.js.map +1 -1
  549. package/dist/nano-components/nano-drawer.entry.js +1 -1
  550. package/dist/nano-components/nano-drawer.entry.js.map +1 -1
  551. package/dist/nano-components/nano-dropdown.entry.js +1 -1
  552. package/dist/nano-components/nano-dropdown.entry.js.map +1 -1
  553. package/dist/nano-components/nano-field-validator.entry.js +1 -1
  554. package/dist/nano-components/nano-field-validator.entry.js.map +1 -1
  555. package/dist/nano-components/nano-file-upload.entry.js +1 -1
  556. package/dist/nano-components/nano-file-upload.entry.js.map +1 -1
  557. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +1 -1
  558. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -1
  559. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  560. package/dist/nano-components/nano-global-nav.entry.js.map +1 -1
  561. package/dist/nano-components/nano-global-search-results.entry.js +1 -1
  562. package/dist/nano-components/nano-global-search-results.entry.js.map +1 -1
  563. package/dist/nano-components/nano-grid-item.entry.js +1 -1
  564. package/dist/nano-components/nano-grid-item.entry.js.map +1 -1
  565. package/dist/nano-components/nano-grid_2.entry.js +1 -1
  566. package/dist/nano-components/nano-grid_2.entry.js.map +1 -1
  567. package/dist/nano-components/nano-hero.entry.js +1 -1
  568. package/dist/nano-components/nano-hero.entry.js.map +1 -1
  569. package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
  570. package/dist/nano-components/nano-icon-button_2.entry.js.map +1 -1
  571. package/dist/nano-components/nano-icon.entry.js +1 -1
  572. package/dist/nano-components/nano-icon.entry.js.map +1 -1
  573. package/dist/nano-components/nano-input.entry.js +1 -1
  574. package/dist/nano-components/nano-input.entry.js.map +1 -1
  575. package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
  576. package/dist/nano-components/nano-intersection-observe.entry.js.map +1 -1
  577. package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
  578. package/dist/nano-components/nano-menu-drawer.entry.js.map +1 -1
  579. package/dist/nano-components/nano-more-less.entry.js +1 -1
  580. package/dist/nano-components/nano-more-less.entry.js.map +1 -1
  581. package/dist/nano-components/nano-overflow-nav.entry.js +1 -1
  582. package/dist/nano-components/nano-overflow-nav.entry.js.map +1 -1
  583. package/dist/nano-components/nano-progress-bar.entry.js +1 -1
  584. package/dist/nano-components/nano-progress-bar.entry.js.map +1 -1
  585. package/dist/nano-components/nano-range.entry.js +1 -1
  586. package/dist/nano-components/nano-range.entry.js.map +1 -1
  587. package/dist/nano-components/nano-rating.entry.js +1 -1
  588. package/dist/nano-components/nano-rating.entry.js.map +1 -1
  589. package/dist/nano-components/nano-resize-observe_2.entry.js +1 -1
  590. package/dist/nano-components/nano-resize-observe_2.entry.js.map +1 -1
  591. package/dist/nano-components/nano-slide.entry.js +1 -1
  592. package/dist/nano-components/nano-slide.entry.js.map +1 -1
  593. package/dist/nano-components/{nano-slides-c3eb1afe.js → nano-slides-2715825b.js} +5 -5
  594. package/dist/nano-components/nano-slides-2715825b.js.map +1 -0
  595. package/dist/nano-components/nano-slides.entry.js +1 -1
  596. package/dist/nano-components/nano-sortable.entry.js +1 -1
  597. package/dist/nano-components/nano-sortable.entry.js.map +1 -1
  598. package/dist/nano-components/nano-spinner.entry.js +1 -1
  599. package/dist/nano-components/nano-spinner.entry.js.map +1 -1
  600. package/dist/nano-components/nano-split-pane.entry.js +1 -1
  601. package/dist/nano-components/nano-split-pane.entry.js.map +1 -1
  602. package/dist/nano-components/nano-sticker.entry.js +1 -1
  603. package/dist/nano-components/nano-sticker.entry.js.map +1 -1
  604. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  605. package/dist/nano-components/nano-tab-content.entry.js.map +1 -1
  606. package/dist/nano-components/nano-tab-group.entry.js +1 -1
  607. package/dist/nano-components/nano-tab-group.entry.js.map +1 -1
  608. package/dist/nano-components/nano-tab.entry.js +1 -1
  609. package/dist/nano-components/nano-tab.entry.js.map +1 -1
  610. package/dist/nano-components/nano-table-4481d4e1.js +5 -0
  611. package/dist/nano-components/nano-table-4481d4e1.js.map +1 -0
  612. package/dist/nano-components/nano-table.entry.js +1 -1
  613. package/dist/nano-components/page-dots-5b23db8c.js +5 -0
  614. package/dist/nano-components/{page-dots-986d3b32.js.map → page-dots-5b23db8c.js.map} +1 -1
  615. package/dist/nano-components/renderer-4bc3e2dc.js +5 -0
  616. package/dist/nano-components/renderer-4bc3e2dc.js.map +1 -0
  617. package/dist/nano-components/{scroll-f373a189.js → scroll-1afc6a4e.js} +2 -2
  618. package/dist/nano-components/table.worker-1bc9c170.js +5 -0
  619. package/dist/stencil.config.js +1 -0
  620. package/dist/stencil.config.js.map +1 -1
  621. package/dist/types/global/script/global.d.ts +2 -0
  622. package/dist/types/index.d.ts +3 -2
  623. package/dist/types/utils/renderer.d.ts +27 -0
  624. package/docs-json.json +1 -12
  625. package/hydrate/index.js +453 -393
  626. package/hydrate/index.mjs +453 -393
  627. package/package.json +1 -1
  628. package/dist/cjs/app-globals-93d8b419.js +0 -39
  629. package/dist/cjs/app-globals-93d8b419.js.map +0 -1
  630. package/dist/cjs/fade-2dd9dd8b.js.map +0 -1
  631. package/dist/cjs/form-control-2d88adb2.js +0 -82
  632. package/dist/cjs/form-control-2d88adb2.js.map +0 -1
  633. package/dist/cjs/fullscreen-5d0422de.js.map +0 -1
  634. package/dist/cjs/index-b6fa04fa.js.map +0 -1
  635. package/dist/cjs/lazyload-f181cb37.js.map +0 -1
  636. package/dist/cjs/nano-slides-612634dc.js.map +0 -1
  637. package/dist/cjs/nano-table-99d6a3cc.js.map +0 -1
  638. package/dist/cjs/page-dots-99dd88f6.js.map +0 -1
  639. package/dist/cjs/table.worker-263468df.js.map +0 -1
  640. package/dist/esm/app-globals-d4ab01f2.js +0 -37
  641. package/dist/esm/app-globals-d4ab01f2.js.map +0 -1
  642. package/dist/esm/fade-4ff5d9de.js.map +0 -1
  643. package/dist/esm/form-control-812999d0.js.map +0 -1
  644. package/dist/esm/fullscreen-382d7890.js.map +0 -1
  645. package/dist/esm/index-3118109b.js.map +0 -1
  646. package/dist/esm/lazyload-49b745e4.js.map +0 -1
  647. package/dist/esm/nano-slides-c3eb1afe.js.map +0 -1
  648. package/dist/esm/nano-table-d15f6782.js.map +0 -1
  649. package/dist/esm/page-dots-986d3b32.js.map +0 -1
  650. package/dist/esm/table.worker-b7ee4edc.js.map +0 -1
  651. package/dist/nano-components/app-globals-d4ab01f2.js +0 -5
  652. package/dist/nano-components/app-globals-d4ab01f2.js.map +0 -1
  653. package/dist/nano-components/fade-4ff5d9de.js +0 -5
  654. package/dist/nano-components/form-control-812999d0.js +0 -5
  655. package/dist/nano-components/form-control-812999d0.js.map +0 -1
  656. package/dist/nano-components/fullscreen-382d7890.js +0 -5
  657. package/dist/nano-components/index-3118109b.js.map +0 -1
  658. package/dist/nano-components/lazyload-49b745e4.js +0 -5
  659. package/dist/nano-components/nano-slides-c3eb1afe.js.map +0 -1
  660. package/dist/nano-components/nano-table-d15f6782.js +0 -5
  661. package/dist/nano-components/nano-table-d15f6782.js.map +0 -1
  662. package/dist/nano-components/page-dots-986d3b32.js +0 -5
  663. package/dist/nano-components/table.worker-b7ee4edc.js +0 -5
  664. /package/dist/nano-components/{algolia-data-8fc24341.js.map → algolia-data-f0f72f1d.js.map} +0 -0
  665. /package/dist/nano-components/{component-store-b798181b.js.map → component-store-199a9fd8.js.map} +0 -0
  666. /package/dist/nano-components/{dom-d7f9f24c.js.map → dom-fafdec9a.js.map} +0 -0
  667. /package/dist/nano-components/{index-d7a4a150.js.map → index-f5f7b950.js.map} +0 -0
  668. /package/dist/nano-components/{scroll-f373a189.js.map → scroll-1afc6a4e.js.map} +0 -0
  669. /package/dist/nano-components/{table.worker-b7ee4edc.js.map → table.worker-1bc9c170.js.map} +0 -0
  670. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/generators/custom-element-doc-generator.d.ts +0 -0
  671. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/generators/vue/generate-vue-component.d.ts +0 -0
  672. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/generators/vue/index.d.ts +0 -0
  673. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/generators/vue/output-vue.d.ts +0 -0
  674. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/generators/vue/plugin.d.ts +0 -0
  675. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/generators/vue/types.d.ts +0 -0
  676. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/generators/vue/utils.d.ts +0 -0
  677. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -0
  678. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -0
  679. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
  680. /package/dist/types/builds/{6SyqsxUA → Te2fj7s-}/0/Digital/nano-components/packages/components/.stencil/wdio.conf.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../../src/components/grid/grid.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Host, State, Watch } from '@stencil/core';\nimport { ConstructibleStyle } from '../../utils/constructible-style';\n\n/**\n * A lightweight, context-aware CSS grid implementation.\n *\n * - Define multiple grids templates at different breakpoints\n * - Uses `@container` queries to select the correct grid depending on the current dimensions\n * - Use `grid-states=\"...\"` on direct descendants for `column` / `row` - `start` / `end`\n * - SSR optimised\n\n * @part grid - the main grid element.\n * Use this to set css such as `justify-items|content` / `align-items|content` / `place-content`\n * @part helper - a replica grid showed when `show-helper` is true\n *\n * @slot - default slot. Use this to place grid items. Use `grid-states=\"...\"` attribute to opt-out of auto / sequential placement.\n */\n@Component({\n tag: 'nano-grid',\n styleUrl: 'grid.scss',\n shadow: true,\n})\nexport class Grid {\n private grids: {\n cols: number;\n breakpoint: number | string;\n name: string;\n template?: string;\n }[] = [];\n @State() cacheKey: string;\n\n /** the component's small breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) sSize: number | string = 300;\n\n /** the component's medium breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) mSize: number | string = 550;\n\n /** the component's large breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) lSize: number | string = 800;\n\n /** the component's xl breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) xlSize: number | string = 1000;\n\n /** the number of columns the grid has at the small breakpoint. */\n @Prop({ reflect: true }) sCols: number;\n\n /** the number of columns the grid has at the medium breakpoint. */\n @Prop({ reflect: true }) mCols: number;\n\n /** the number of columns the grid has at the large breakpoint. */\n @Prop({ reflect: true }) lCols: number;\n\n /** the number of columns the grid has at the xl breakpoint. */\n @Prop({ reflect: true }) xlCols: number;\n\n /** the number of columns the grid has at the xxl breakpoint (anything greater than the xl breakpoint) */\n @Prop({ reflect: true }) xxlCols: number;\n\n /** Optional small `grid-template`. *Note* - you must set `sCols` for this to take affect */\n @Prop() sTpl?: string;\n\n /** Optional medium `grid-template`. *Note* - you must set `mCols` for this to take affect */\n @Prop() mTpl?: string;\n\n /** Optional large `grid-template`. *Note* - you must set `lCols` for this to take affect */\n @Prop() lTpl?: string;\n\n /** Optional xl `grid-template`. *Note* - you must set `xlCols` for this to take affect */\n @Prop() xlTpl?: string;\n\n /** Optional xxl `grid-template`. *Note* - you must set `xxlCols` for this to take affect */\n @Prop() xxlTpl?: string;\n\n /** shows a grid helper to visualise where columns are */\n @Prop({ reflect: true }) showHelper: boolean = false;\n\n @Watch('sTpl')\n @Watch('mTpl')\n @Watch('lTpl')\n @Watch('xlTpl')\n @Watch('xxlTpl')\n @Watch('sSize')\n @Watch('mSize')\n @Watch('lSize')\n @Watch('xlSize')\n @Watch('sCols')\n @Watch('mCols')\n @Watch('lCols')\n @Watch('xlCols')\n @Watch('xxlCols')\n @Watch('showHelper')\n constructSizeArray() {\n this.grids = [];\n\n if (this.sCols)\n this.grids.push({\n cols: this.sCols,\n breakpoint: 0,\n name: 's',\n template: this.sTpl,\n });\n if (this.mCols)\n this.grids.push({\n cols: this.mCols,\n breakpoint: this.sSize,\n name: 'm',\n template: this.mTpl,\n });\n if (this.lCols)\n this.grids.push({\n cols: this.lCols,\n breakpoint: this.mSize,\n name: 'l',\n template: this.lTpl,\n });\n if (this.xlCols)\n this.grids.push({\n cols: this.xlCols,\n breakpoint: this.lSize,\n name: 'xl',\n template: this.xlTpl,\n });\n if (this.xxlCols)\n this.grids.push({\n cols: this.xxlCols,\n breakpoint: this.xlSize,\n name: 'xxl',\n template: this.xxlTpl,\n });\n\n this.cacheKey =\n this.grids\n .map((bp) => `${bp.cols}-${bp.breakpoint}-${bp.template || ''}`)\n .join('') +\n '-helper-' +\n this.showHelper;\n }\n\n @ConstructibleStyle({ cacheKeyProperty: 'cacheKey' }) protected styles =\n () => {\n const css = /* css */ `\n ${this.grids\n .map(\n (bp) => /* css */ `\n @container (min-width: ${\n Number((bp.breakpoint as number) + 1)\n ? Number(bp.breakpoint) + 1 + 'px'\n : bp.breakpoint\n }) {\n [cache-key=\"${this.cacheKey}\"].grid {\n --current-grid-size: \"grid size: ${bp.name}\";\n ${\n bp.template\n ? `grid-template: ${bp.template};`\n : `grid-template-columns: repeat(${bp.cols}, minmax(calc((100% / ${bp.cols}) - var(--grid-col-gap)), 1fr));`\n }\n }\n ${[...Array(bp.cols)]\n .map((_, i) => {\n const gItm = i + 1;\n return /* css */ `\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-col-start-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-col-start-${gItm}\"]) {\n grid-column-start: ${gItm} !important;\n }\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-col-span-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-col-span-${gItm}\"]) {\n grid-column-end: span ${gItm} !important;\n }\n `;\n })\n .join('')}\n ${[...Array(24)]\n .map((_, i) => {\n const gItm = i + 1;\n return /* css */ `\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-row-start-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-row-start-${gItm}\"]) {\n grid-row-start: ${gItm} !important;\n }\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-row-span-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-row-span-${gItm}\"]) {\n grid-row-end: span ${gItm} !important;\n }\n `;\n })\n .join('')}\n ${\n this.showHelper\n ? /* css */ `\n [cache-key=\"${this.cacheKey}\"].grid--helper :nth-child(-n+${bp.cols}) {\n display: block !important;\n }\n `\n : ''\n }\n }\n `\n )\n .join('')}\n `;\n return css\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Remove comments\n .replace(/\\s{2,}/g, ' ') // Replace multiple spaces with a single space\n .replace(/\\s*([{}:;,])\\s*/g, '$1') // Remove spaces around CSS symbols\n .replace(/\\n/g, ''); // Remove newlines;\n };\n\n componentWillLoad() {\n this.constructSizeArray();\n }\n\n render() {\n return (\n <Host>\n <div part=\"grid\" class=\"grid\" cache-key={this.cacheKey}>\n <slot />\n </div>\n {this.showHelper && (\n <div\n class=\"grid grid--helper\"\n part=\"helper\"\n cache-key={this.cacheKey}\n >\n {[...Array(24)].map(() => (\n <div class=\"grid__helper-item\" />\n ))}\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../../src/components/grid/grid.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Host, State, Watch } from '@stencil/core';\nimport { ConstructibleStyle } from '../../utils/constructible-style';\nimport { h } from '../../utils/renderer';\n\n/**\n * A lightweight, context-aware CSS grid implementation.\n *\n * - Define multiple grids templates at different breakpoints\n * - Uses `@container` queries to select the correct grid depending on the current dimensions\n * - Use `grid-states=\"...\"` on direct descendants for `column` / `row` - `start` / `end`\n * - SSR optimised\n\n * @part grid - the main grid element.\n * Use this to set css such as `justify-items|content` / `align-items|content` / `place-content`\n * @part helper - a replica grid showed when `show-helper` is true\n *\n * @slot - default slot. Use this to place grid items. Use `grid-states=\"...\"` attribute to opt-out of auto / sequential placement.\n */\n@Component({\n tag: 'nano-grid',\n styleUrl: 'grid.scss',\n shadow: true,\n})\nexport class Grid {\n private grids: {\n cols: number;\n breakpoint: number | string;\n name: string;\n template?: string;\n }[] = [];\n @State() cacheKey: string;\n\n /** the component's small breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) sSize: number | string = 300;\n\n /** the component's medium breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) mSize: number | string = 550;\n\n /** the component's large breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) lSize: number | string = 800;\n\n /** the component's xl breakpoint. Note - all breakpoints are based on component width, not screen width.\n * Will default to `px` if no unit supplied e.g. `20rem` */\n @Prop({ reflect: true }) xlSize: number | string = 1000;\n\n /** the number of columns the grid has at the small breakpoint. */\n @Prop({ reflect: true }) sCols: number;\n\n /** the number of columns the grid has at the medium breakpoint. */\n @Prop({ reflect: true }) mCols: number;\n\n /** the number of columns the grid has at the large breakpoint. */\n @Prop({ reflect: true }) lCols: number;\n\n /** the number of columns the grid has at the xl breakpoint. */\n @Prop({ reflect: true }) xlCols: number;\n\n /** the number of columns the grid has at the xxl breakpoint (anything greater than the xl breakpoint) */\n @Prop({ reflect: true }) xxlCols: number;\n\n /** Optional small `grid-template`. *Note* - you must set `sCols` for this to take affect */\n @Prop() sTpl?: string;\n\n /** Optional medium `grid-template`. *Note* - you must set `mCols` for this to take affect */\n @Prop() mTpl?: string;\n\n /** Optional large `grid-template`. *Note* - you must set `lCols` for this to take affect */\n @Prop() lTpl?: string;\n\n /** Optional xl `grid-template`. *Note* - you must set `xlCols` for this to take affect */\n @Prop() xlTpl?: string;\n\n /** Optional xxl `grid-template`. *Note* - you must set `xxlCols` for this to take affect */\n @Prop() xxlTpl?: string;\n\n /** shows a grid helper to visualise where columns are */\n @Prop({ reflect: true }) showHelper: boolean = false;\n\n @Watch('sTpl')\n @Watch('mTpl')\n @Watch('lTpl')\n @Watch('xlTpl')\n @Watch('xxlTpl')\n @Watch('sSize')\n @Watch('mSize')\n @Watch('lSize')\n @Watch('xlSize')\n @Watch('sCols')\n @Watch('mCols')\n @Watch('lCols')\n @Watch('xlCols')\n @Watch('xxlCols')\n @Watch('showHelper')\n constructSizeArray() {\n this.grids = [];\n\n if (this.sCols)\n this.grids.push({\n cols: this.sCols,\n breakpoint: 0,\n name: 's',\n template: this.sTpl,\n });\n if (this.mCols)\n this.grids.push({\n cols: this.mCols,\n breakpoint: this.sSize,\n name: 'm',\n template: this.mTpl,\n });\n if (this.lCols)\n this.grids.push({\n cols: this.lCols,\n breakpoint: this.mSize,\n name: 'l',\n template: this.lTpl,\n });\n if (this.xlCols)\n this.grids.push({\n cols: this.xlCols,\n breakpoint: this.lSize,\n name: 'xl',\n template: this.xlTpl,\n });\n if (this.xxlCols)\n this.grids.push({\n cols: this.xxlCols,\n breakpoint: this.xlSize,\n name: 'xxl',\n template: this.xxlTpl,\n });\n\n this.cacheKey =\n this.grids\n .map((bp) => `${bp.cols}-${bp.breakpoint}-${bp.template || ''}`)\n .join('') +\n '-helper-' +\n this.showHelper;\n }\n\n @ConstructibleStyle({ cacheKeyProperty: 'cacheKey' }) protected styles =\n () => {\n const css = /* css */ `\n ${this.grids\n .map(\n (bp) => /* css */ `\n @container (min-width: ${\n Number((bp.breakpoint as number) + 1)\n ? Number(bp.breakpoint) + 1 + 'px'\n : bp.breakpoint\n }) {\n [cache-key=\"${this.cacheKey}\"].grid {\n --current-grid-size: \"grid size: ${bp.name}\";\n ${\n bp.template\n ? `grid-template: ${bp.template};`\n : `grid-template-columns: repeat(${bp.cols}, minmax(calc((100% / ${bp.cols}) - var(--grid-col-gap)), 1fr));`\n }\n }\n ${[...Array(bp.cols)]\n .map((_, i) => {\n const gItm = i + 1;\n return /* css */ `\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-col-start-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-col-start-${gItm}\"]) {\n grid-column-start: ${gItm} !important;\n }\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-col-span-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-col-span-${gItm}\"]) {\n grid-column-end: span ${gItm} !important;\n }\n `;\n })\n .join('')}\n ${[...Array(24)]\n .map((_, i) => {\n const gItm = i + 1;\n return /* css */ `\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-row-start-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-row-start-${gItm}\"]) {\n grid-row-start: ${gItm} !important;\n }\n [cache-key=\"${this.cacheKey}\"].grid > [grid-states~=\"${bp.name}-row-span-${gItm}\"],\n ::slotted([grid-states~=\"${bp.name}-row-span-${gItm}\"]) {\n grid-row-end: span ${gItm} !important;\n }\n `;\n })\n .join('')}\n ${\n this.showHelper\n ? /* css */ `\n [cache-key=\"${this.cacheKey}\"].grid--helper :nth-child(-n+${bp.cols}) {\n display: block !important;\n }\n `\n : ''\n }\n }\n `\n )\n .join('')}\n `;\n return css\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Remove comments\n .replace(/\\s{2,}/g, ' ') // Replace multiple spaces with a single space\n .replace(/\\s*([{}:;,])\\s*/g, '$1') // Remove spaces around CSS symbols\n .replace(/\\n/g, ''); // Remove newlines;\n };\n\n componentWillLoad() {\n this.constructSizeArray();\n }\n\n render() {\n return (\n <Host clas=\"nano-grid\">\n <div part=\"grid\" class=\"grid\" cache-key={this.cacheKey}>\n <slot />\n </div>\n {this.showHelper && (\n <div\n class=\"grid grid--helper\"\n part=\"helper\"\n cache-key={this.cacheKey}\n >\n {[...Array(24)].map(() => (\n <div class=\"grid__helper-item\" />\n ))}\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -199,7 +199,7 @@
199
199
  .hero--backbtn .hero__primary {
200
200
  margin-inline-start: 0;
201
201
  }
202
- .hero__primary ::slotted(nano-icon-button[slot=back-btn]) {
202
+ .hero__primary ::slotted(.nano-icon-button[slot=back-btn]) {
203
203
  font-size: 2rem;
204
204
  }
205
205
  @container (min-width: 800px) {
@@ -207,7 +207,7 @@
207
207
  margin-block: 0 50px !important;
208
208
  margin-inline: 50px 0 !important;
209
209
  }
210
- .hero__primary ::slotted(nano-icon-button[slot=back-btn]) {
210
+ .hero__primary ::slotted(.nano-icon-button[slot=back-btn]) {
211
211
  margin-block: 0 !important;
212
212
  margin-inline: -3rem 0 !important;
213
213
  }
@@ -1,7 +1,8 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import { h, Host, } from "@stencil/core";
4
+ import { Host, } from "@stencil/core";
5
+ import { h } from "../../utils/renderer";
5
6
  /**
6
7
  * Hero components are designed to be used once per content page to add visual impact to the introductory section of a page.
7
8
  * @slot primary-content - title, leading paragraph and CTA
@@ -103,7 +104,7 @@ export class Hero {
103
104
  };
104
105
  render() {
105
106
  const rtl = this.host.dir === 'rtl' || this.host.ownerDocument.dir === 'rtl';
106
- return (h(Host, { key: '50eee29214f21f5278267bcc742170347e7cf397' }, h("div", { key: '8a2ab272547fd2a3627c039e9666a24b6de223c9', class: {
107
+ return (h(Host, { key: '3ea826a0e3c29d25595e2ed95b36398980193ade', class: "nano-hero" }, h("div", { key: '09b08515b8bd244eef354df64e76814ec7fbda6d', class: {
107
108
  hero: true,
108
109
  'hero--light': this.theme === 'light',
109
110
  'hero--secondary': this.hasSecondaryContent,
@@ -114,9 +115,9 @@ export class Hero {
114
115
  'hero--hasbg': this.hasBg,
115
116
  'hero--backbtn': this.hasBackBtn,
116
117
  'hero--sub': this.level === 'sub',
117
- } }, h("div", { key: '8c17aac8b8653355e4ce97fa119d86e0cce518ae', class: "hero__bg-wrap" }, !!this.imgSrc && (h("nano-img", { key: '89df34f9d693a35df5f2092ef3232772caa860a1', class: "hero__img", lazy: false, background: true, srcSet: this.imgSrcSet, src: this.imgSrc }, h(this.HeroContent, { key: 'dc4d9b0027cfc96f13ff7757e175da523b3eb100' }))), !this.imgSrc && [
118
- h("div", { key: '1e760a079ebcaab5272a10fdb7b70aa3622ce0db', class: "hero__bg-slot" }, h("slot", { key: '3a73a260e528956adc797cdd39bb521c54db7b96', name: "background" })),
119
- h(this.HeroContent, { key: 'dd458de1ca33a34131445390b95bf63bb27dfeba' }),
118
+ } }, h("div", { key: '46b5daff7c9c768c5354b54a1dd9f8ca8b9fc100', class: "hero__bg-wrap" }, !!this.imgSrc && (h("nano-img", { key: '0bc5e85862297cbd10bb4953c545eaccfde46d34', class: "hero__img", lazy: false, background: true, srcSet: this.imgSrcSet, src: this.imgSrc }, h(this.HeroContent, { key: '96a6199bb1c851b70cbc146b25d722f3c7c7cfbb' }))), !this.imgSrc && [
119
+ h("div", { key: 'b34f8983859f55762fddd7ebadd95b2db6d96f7a', class: "hero__bg-slot" }, h("slot", { key: 'df7263acd2610a142fe492555b77e6d24bd382a4', name: "background" })),
120
+ h(this.HeroContent, { key: 'c02cbdf49f60dc755c3103f84df6e1de82b3a7ce' }),
120
121
  ]))));
121
122
  }
122
123
  static get is() { return "nano-hero"; }
@@ -1 +1 @@
1
- {"version":3,"file":"hero.js","sourceRoot":"","sources":["../../../../src/components/hero/hero.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n ComponentInterface,\n VNode,\n State,\n Element,\n Watch,\n Host,\n} from '@stencil/core';\n/**\n * Hero components are designed to be used once per content page to add visual impact to the introductory section of a page.\n * @slot primary-content - title, leading paragraph and CTA\n * @slot breadcrumb - each individual bread crumb should be assigned seperately\n * @slot secondary-content - free form secondary content.\n * @slot icon-box - free form icon box container\n * @slot icon-box-item - seperate icon box items. Designed to contain 1 icon and 1 text element.\n * @slot secondary-ctas - CTAs. each individual button should be assigned seperately\n * @slot quote - quote content\n * @slot quote-author - quote author\n * @slot scrim - optional background overlay (e.g. faded colour or gradient)\n * @slot background - custom background. Only active when img-src is empty\n * @slot back-btn - a back button.\n */\n@Component({\n tag: 'nano-hero',\n styleUrl: 'hero.scss',\n shadow: true,\n})\nexport class Hero implements ComponentInterface {\n private mo?: MutationObserver;\n\n @Element() host: HTMLNanoHeroElement;\n\n @State() hasIconBox: boolean;\n @State() hasScrim: boolean;\n @State() hasSecondaryContent: boolean;\n @State() hasQuote: boolean;\n @State() hasBg: boolean;\n @State() hasBackBtn: boolean;\n @State() hasCtas: boolean;\n @State() breadCrumbs: Element[];\n @Watch('breadCrumbs')\n breadCrumbChange() {\n // safari doesn't support ::slotted()::after ... so this :/\n this.breadCrumbs\n .filter(\n (crumb) =>\n crumb.tagName === 'A' &&\n !crumb.nextElementSibling.classList.contains('slash')\n )\n .forEach((crumb) => {\n crumb.insertAdjacentHTML(\n 'afterend',\n '<span slot=\"breadcrumb\" class=\"slash\">/</span>'\n );\n });\n }\n @State() iconBoxItems: Element[];\n @Watch('iconBoxItems')\n iconBoxItemChange() {\n this.iconBoxItems.forEach((item) => item.classList.remove('last'));\n if (\n this.iconBoxItems[this.iconBoxItems.length - 1] &&\n this.iconBoxItems[this.iconBoxItems.length - 1].classList\n )\n this.iconBoxItems[this.iconBoxItems.length - 1].classList.add('last');\n }\n\n /** src for background image. For more control use the `background` slot instead. */\n @Prop() imgSrc?: string;\n\n /** Optional list string providing media sizes with corresponding image srcs.\n * i.e. show img-x at 300px wide. Format `srcSet=\"200w src/imgSmall.jpg, 500h src/imgMed.png\"` */\n @Prop() imgSrcSet?: string = null;\n\n /** The Break Point width that the hero component will change to the large view. Defaults to the XL grid size (900px) */\n @Prop() largeScreenBP: number = 900;\n\n /** Base style for the hero. Either 'light' (white bg / dark text), or 'dark' (dark bg / white text) */\n @Prop() theme: 'dark' | 'light' = 'dark';\n\n /** Set the content structure level of the hero. Defaults to 'top' */\n @Prop() level: 'top' | 'sub' = 'top';\n\n private slotChangeObserver() {\n if (!window['MutationObserver']) return;\n\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.host, { childList: true });\n }\n\n // Event handlers\n\n private processSlottedContent() {\n this.hasCtas = !!this.host.querySelector('[slot=\"secondary-ctas\"]');\n this.iconBoxItems = Array.from(\n this.host.querySelectorAll('[slot=\"icon-box-item\"]')\n );\n this.hasIconBox =\n !!this.host.querySelector('[slot=\"icon-box\"]') ||\n !!this.iconBoxItems.length;\n this.hasScrim = !!this.host.querySelector('[slot=\"scrim\"]');\n this.breadCrumbs = Array.from(\n this.host.querySelectorAll('[slot=\"breadcrumb\"]')\n );\n this.hasSecondaryContent =\n !!this.host.querySelector('[slot=\"icon-box\"]') ||\n !!this.host.querySelector('[slot=\"quote\"]') ||\n !!this.host.querySelector('[slot=\"icon-box-item\"]') ||\n !!this.host.querySelector('[slot=\"secondary-content\"]');\n this.hasBg =\n !!this.host.querySelector('[slot=\"background\"]') || !!this.imgSrc;\n this.hasBackBtn = !!this.host.querySelector('[slot=\"back-btn\"]');\n this.hasQuote = !!this.host.querySelector('[slot=\"quote\"]');\n }\n\n // Component lifecycle\n\n disconnectedCallback() {\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n private HeroContent = (): VNode[] => {\n return [\n !this.hasIconBox && this.hasCtas ? (\n <div class=\"hero__ctas\">\n <slot name=\"secondary-ctas\" />\n </div>\n ) : (\n ''\n ),\n <div class=\"hero__scrim\">\n <slot name=\"scrim\" />\n </div>,\n <nano-grid class=\"hero__content\" xlCols={2} xlSize={this.largeScreenBP}>\n <div grid-states=\"xl-col-span-2\">\n <div class=\"hero__breadcrumbs\">\n <slot name=\"breadcrumb\" />\n </div>\n </div>\n <div\n grid-states={\n this.hasSecondaryContent\n ? 'xl-col-span-1 xl-col-start-1 xl-row-start-2'\n : 'xl-col-span-2 xl-col-start-1 xl-row-start-2'\n }\n >\n <div class=\"hero__primary\">\n <div class=\"hero__primary-content\">\n <slot name=\"back-btn\" />\n <div>\n <slot name=\"primary-content\" />\n </div>\n </div>\n </div>\n </div>\n {this.hasSecondaryContent && (\n <div grid-states=\"xl-col-span-1 xl-col-start-2 xl-row-start-2\">\n <div class=\"hero__secondary\">\n <slot name=\"secondary-content\" />\n {this.hasIconBox && (\n <div class=\"hero__icon-box\">\n <slot name=\"icon-box\" />\n <slot name=\"icon-box-item\" />\n </div>\n )}\n {this.hasQuote && (\n <div class=\"hero__quote-content\">\n <span class=\"hero__quote\">\n <slot name=\"quote\" />\n </span>\n <div class=\"hero__quote-author\">\n <slot name=\"quote-author\" />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </nano-grid>,\n ];\n };\n\n render() {\n const rtl =\n this.host.dir === 'rtl' || this.host.ownerDocument.dir === 'rtl';\n\n return (\n <Host>\n <div\n class={{\n hero: true,\n 'hero--light': this.theme === 'light',\n 'hero--secondary': this.hasSecondaryContent,\n 'hero--iconbox': this.hasIconBox,\n 'hero--rtl': rtl,\n 'hero--scrim': this.hasScrim,\n 'hero--breadcrumb': !!this.breadCrumbs.length,\n 'hero--hasbg': this.hasBg,\n 'hero--backbtn': this.hasBackBtn,\n 'hero--sub': this.level === 'sub',\n }}\n >\n <div class=\"hero__bg-wrap\">\n {!!this.imgSrc && (\n <nano-img\n class=\"hero__img\"\n lazy={false}\n background\n srcSet={this.imgSrcSet}\n src={this.imgSrc}\n >\n <this.HeroContent />\n </nano-img>\n )}\n {!this.imgSrc && [\n <div class=\"hero__bg-slot\">\n <slot name=\"background\" />\n </div>,\n <this.HeroContent />,\n ]}\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"hero.js","sourceRoot":"","sources":["../../../../src/components/hero/hero.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EAGJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,GACL,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAC;AACzC;;;;;;;;;;;;;GAaG;AAMH,MAAM,OAAO,IAAI;IACP,EAAE,CAAoB;IAEnB,IAAI,CAAsB;IAE5B,UAAU,CAAU;IACpB,QAAQ,CAAU;IAClB,mBAAmB,CAAU;IAC7B,QAAQ,CAAU;IAClB,KAAK,CAAU;IACf,UAAU,CAAU;IACpB,OAAO,CAAU;IACjB,WAAW,CAAY;IAEhC,gBAAgB;QACd,2DAA2D;QAC3D,IAAI,CAAC,WAAW;aACb,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,OAAO,KAAK,GAAG;YACrB,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CACxD;aACA,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,KAAK,CAAC,kBAAkB,CACtB,UAAU,EACV,gDAAgD,CACjD,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IACQ,YAAY,CAAY;IAEjC,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,IACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS;YAEzD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,oFAAoF;IAC5E,MAAM,CAAU;IAExB;qGACiG;IACzF,SAAS,GAAY,IAAI,CAAC;IAElC,wHAAwH;IAChH,aAAa,GAAW,GAAG,CAAC;IAEpC,uGAAuG;IAC/F,KAAK,GAAqB,MAAM,CAAC;IAEzC,sEAAsE;IAC9D,KAAK,GAAkB,KAAK,CAAC;IAE7B,kBAAkB;QACxB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAAE,OAAO;QAExC,IAAI,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAC9C,IAAI,CAAC,qBAAqB,EAAE,CAC7B,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB;IAET,qBAAqB;QAC3B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CACrD,CAAC;QACF,IAAI,CAAC,UAAU;YACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAClD,CAAC;QACF,IAAI,CAAC,mBAAmB;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YACR,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IAED,sBAAsB;IAEtB,oBAAoB;QAClB,IAAI,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,WAAW,GAAG,GAAY,EAAE;QAClC,OAAO;YACL,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACjC,WAAK,KAAK,EAAC,YAAY;gBACrB,YAAM,IAAI,EAAC,gBAAgB,GAAG,CAC1B,CACP,CAAC,CAAC,CAAC,CACF,EAAE,CACH;YACD,WAAK,KAAK,EAAC,aAAa;gBACtB,YAAM,IAAI,EAAC,OAAO,GAAG,CACjB;YACN,iBAAW,KAAK,EAAC,eAAe,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa;gBACpE,0BAAiB,eAAe;oBAC9B,WAAK,KAAK,EAAC,mBAAmB;wBAC5B,YAAM,IAAI,EAAC,YAAY,GAAG,CACtB,CACF;gBACN,0BAEI,IAAI,CAAC,mBAAmB;wBACtB,CAAC,CAAC,6CAA6C;wBAC/C,CAAC,CAAC,6CAA6C;oBAGnD,WAAK,KAAK,EAAC,eAAe;wBACxB,WAAK,KAAK,EAAC,uBAAuB;4BAChC,YAAM,IAAI,EAAC,UAAU,GAAG;4BACxB;gCACE,YAAM,IAAI,EAAC,iBAAiB,GAAG,CAC3B,CACF,CACF,CACF;gBACL,IAAI,CAAC,mBAAmB,IAAI,CAC3B,0BAAiB,6CAA6C;oBAC5D,WAAK,KAAK,EAAC,iBAAiB;wBAC1B,YAAM,IAAI,EAAC,mBAAmB,GAAG;wBAChC,IAAI,CAAC,UAAU,IAAI,CAClB,WAAK,KAAK,EAAC,gBAAgB;4BACzB,YAAM,IAAI,EAAC,UAAU,GAAG;4BACxB,YAAM,IAAI,EAAC,eAAe,GAAG,CACzB,CACP;wBACA,IAAI,CAAC,QAAQ,IAAI,CAChB,WAAK,KAAK,EAAC,qBAAqB;4BAC9B,YAAM,KAAK,EAAC,aAAa;gCACvB,YAAM,IAAI,EAAC,OAAO,GAAG,CAChB;4BACP,WAAK,KAAK,EAAC,oBAAoB;gCAC7B,YAAM,IAAI,EAAC,cAAc,GAAG,CACxB,CACF,CACP,CACG,CACF,CACP,CACS;SACb,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM;QACJ,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,KAAK,CAAC;QAEnE,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAC,WAAW;YACrB,4DACE,KAAK,EAAE;oBACL,IAAI,EAAE,IAAI;oBACV,aAAa,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;oBACrC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB;oBAC3C,eAAe,EAAE,IAAI,CAAC,UAAU;oBAChC,WAAW,EAAE,GAAG;oBAChB,aAAa,EAAE,IAAI,CAAC,QAAQ;oBAC5B,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;oBAC7C,aAAa,EAAE,IAAI,CAAC,KAAK;oBACzB,eAAe,EAAE,IAAI,CAAC,UAAU;oBAChC,WAAW,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;iBAClC;gBAED,4DAAK,KAAK,EAAC,eAAe;oBACvB,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAChB,iEACE,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,KAAK,EACX,UAAU,QACV,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,GAAG,EAAE,IAAI,CAAC,MAAM;wBAEhB,EAAC,IAAI,CAAC,WAAW,sDAAG,CACX,CACZ;oBACA,CAAC,IAAI,CAAC,MAAM,IAAI;wBACf,4DAAK,KAAK,EAAC,eAAe;4BACxB,6DAAM,IAAI,EAAC,YAAY,GAAG,CACtB;wBACN,EAAC,IAAI,CAAC,WAAW,sDAAG;qBACrB,CACG,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Prop,\n ComponentInterface,\n VNode,\n State,\n Element,\n Watch,\n Host,\n} from '@stencil/core';\nimport { h } from '../../utils/renderer';\n/**\n * Hero components are designed to be used once per content page to add visual impact to the introductory section of a page.\n * @slot primary-content - title, leading paragraph and CTA\n * @slot breadcrumb - each individual bread crumb should be assigned seperately\n * @slot secondary-content - free form secondary content.\n * @slot icon-box - free form icon box container\n * @slot icon-box-item - seperate icon box items. Designed to contain 1 icon and 1 text element.\n * @slot secondary-ctas - CTAs. each individual button should be assigned seperately\n * @slot quote - quote content\n * @slot quote-author - quote author\n * @slot scrim - optional background overlay (e.g. faded colour or gradient)\n * @slot background - custom background. Only active when img-src is empty\n * @slot back-btn - a back button.\n */\n@Component({\n tag: 'nano-hero',\n styleUrl: 'hero.scss',\n shadow: true,\n})\nexport class Hero implements ComponentInterface {\n private mo?: MutationObserver;\n\n @Element() host: HTMLNanoHeroElement;\n\n @State() hasIconBox: boolean;\n @State() hasScrim: boolean;\n @State() hasSecondaryContent: boolean;\n @State() hasQuote: boolean;\n @State() hasBg: boolean;\n @State() hasBackBtn: boolean;\n @State() hasCtas: boolean;\n @State() breadCrumbs: Element[];\n @Watch('breadCrumbs')\n breadCrumbChange() {\n // safari doesn't support ::slotted()::after ... so this :/\n this.breadCrumbs\n .filter(\n (crumb) =>\n crumb.tagName === 'A' &&\n !crumb.nextElementSibling.classList.contains('slash')\n )\n .forEach((crumb) => {\n crumb.insertAdjacentHTML(\n 'afterend',\n '<span slot=\"breadcrumb\" class=\"slash\">/</span>'\n );\n });\n }\n @State() iconBoxItems: Element[];\n @Watch('iconBoxItems')\n iconBoxItemChange() {\n this.iconBoxItems.forEach((item) => item.classList.remove('last'));\n if (\n this.iconBoxItems[this.iconBoxItems.length - 1] &&\n this.iconBoxItems[this.iconBoxItems.length - 1].classList\n )\n this.iconBoxItems[this.iconBoxItems.length - 1].classList.add('last');\n }\n\n /** src for background image. For more control use the `background` slot instead. */\n @Prop() imgSrc?: string;\n\n /** Optional list string providing media sizes with corresponding image srcs.\n * i.e. show img-x at 300px wide. Format `srcSet=\"200w src/imgSmall.jpg, 500h src/imgMed.png\"` */\n @Prop() imgSrcSet?: string = null;\n\n /** The Break Point width that the hero component will change to the large view. Defaults to the XL grid size (900px) */\n @Prop() largeScreenBP: number = 900;\n\n /** Base style for the hero. Either 'light' (white bg / dark text), or 'dark' (dark bg / white text) */\n @Prop() theme: 'dark' | 'light' = 'dark';\n\n /** Set the content structure level of the hero. Defaults to 'top' */\n @Prop() level: 'top' | 'sub' = 'top';\n\n private slotChangeObserver() {\n if (!window['MutationObserver']) return;\n\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.host, { childList: true });\n }\n\n // Event handlers\n\n private processSlottedContent() {\n this.hasCtas = !!this.host.querySelector('[slot=\"secondary-ctas\"]');\n this.iconBoxItems = Array.from(\n this.host.querySelectorAll('[slot=\"icon-box-item\"]')\n );\n this.hasIconBox =\n !!this.host.querySelector('[slot=\"icon-box\"]') ||\n !!this.iconBoxItems.length;\n this.hasScrim = !!this.host.querySelector('[slot=\"scrim\"]');\n this.breadCrumbs = Array.from(\n this.host.querySelectorAll('[slot=\"breadcrumb\"]')\n );\n this.hasSecondaryContent =\n !!this.host.querySelector('[slot=\"icon-box\"]') ||\n !!this.host.querySelector('[slot=\"quote\"]') ||\n !!this.host.querySelector('[slot=\"icon-box-item\"]') ||\n !!this.host.querySelector('[slot=\"secondary-content\"]');\n this.hasBg =\n !!this.host.querySelector('[slot=\"background\"]') || !!this.imgSrc;\n this.hasBackBtn = !!this.host.querySelector('[slot=\"back-btn\"]');\n this.hasQuote = !!this.host.querySelector('[slot=\"quote\"]');\n }\n\n // Component lifecycle\n\n disconnectedCallback() {\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n private HeroContent = (): VNode[] => {\n return [\n !this.hasIconBox && this.hasCtas ? (\n <div class=\"hero__ctas\">\n <slot name=\"secondary-ctas\" />\n </div>\n ) : (\n ''\n ),\n <div class=\"hero__scrim\">\n <slot name=\"scrim\" />\n </div>,\n <nano-grid class=\"hero__content\" xlCols={2} xlSize={this.largeScreenBP}>\n <div grid-states=\"xl-col-span-2\">\n <div class=\"hero__breadcrumbs\">\n <slot name=\"breadcrumb\" />\n </div>\n </div>\n <div\n grid-states={\n this.hasSecondaryContent\n ? 'xl-col-span-1 xl-col-start-1 xl-row-start-2'\n : 'xl-col-span-2 xl-col-start-1 xl-row-start-2'\n }\n >\n <div class=\"hero__primary\">\n <div class=\"hero__primary-content\">\n <slot name=\"back-btn\" />\n <div>\n <slot name=\"primary-content\" />\n </div>\n </div>\n </div>\n </div>\n {this.hasSecondaryContent && (\n <div grid-states=\"xl-col-span-1 xl-col-start-2 xl-row-start-2\">\n <div class=\"hero__secondary\">\n <slot name=\"secondary-content\" />\n {this.hasIconBox && (\n <div class=\"hero__icon-box\">\n <slot name=\"icon-box\" />\n <slot name=\"icon-box-item\" />\n </div>\n )}\n {this.hasQuote && (\n <div class=\"hero__quote-content\">\n <span class=\"hero__quote\">\n <slot name=\"quote\" />\n </span>\n <div class=\"hero__quote-author\">\n <slot name=\"quote-author\" />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </nano-grid>,\n ];\n };\n\n render() {\n const rtl =\n this.host.dir === 'rtl' || this.host.ownerDocument.dir === 'rtl';\n\n return (\n <Host class=\"nano-hero\">\n <div\n class={{\n hero: true,\n 'hero--light': this.theme === 'light',\n 'hero--secondary': this.hasSecondaryContent,\n 'hero--iconbox': this.hasIconBox,\n 'hero--rtl': rtl,\n 'hero--scrim': this.hasScrim,\n 'hero--breadcrumb': !!this.breadCrumbs.length,\n 'hero--hasbg': this.hasBg,\n 'hero--backbtn': this.hasBackBtn,\n 'hero--sub': this.level === 'sub',\n }}\n >\n <div class=\"hero__bg-wrap\">\n {!!this.imgSrc && (\n <nano-img\n class=\"hero__img\"\n lazy={false}\n background\n srcSet={this.imgSrcSet}\n src={this.imgSrc}\n >\n <this.HeroContent />\n </nano-img>\n )}\n {!this.imgSrc && [\n <div class=\"hero__bg-slot\">\n <slot name=\"background\" />\n </div>,\n <this.HeroContent />,\n ]}\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import { Build, Host, h, } from "@stencil/core";
4
+ import { Build, Host, } from "@stencil/core";
5
+ import { h } from "../../utils/renderer";
5
6
  import { createColorClasses } from "../../utils/theme";
6
7
  import { getSvgContent, iconContent } from "./request";
7
8
  import { getName, getUrl } from "./utils";
@@ -161,11 +162,12 @@ export class Icon {
161
162
  this.name.indexOf('chevron') > -1) &&
162
163
  this.isRtl() &&
163
164
  this.flipRtl !== false);
164
- return (h(Host, { key: '2f552d1b452a5c6a2b3aba09d5eba30e22ba756c', class: {
165
+ return (h(Host, { key: 'b63eb962d8abc727b57cbb63b665296a2801f4a0', class: {
165
166
  ...createColorClasses(this.color),
166
167
  loading: this.isLoading,
167
168
  [`icon-${this.size}`]: !!this.size,
168
169
  'flip-rtl': !!flipRtl,
170
+ 'nano-icon': true,
169
171
  } }, Build.isBrowser && this.svgContent ? (h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (h("div", { class: "icon-inner" }))));
170
172
  }
171
173
  static get is() { return "nano-icon"; }
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../../src/components/icon/icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Build,\n Component,\n Element,\n Host,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { createColorClasses } from '../../utils/theme';\nimport { getSvgContent, iconContent } from './request';\nimport { getName, getUrl } from './utils';\nimport type { Color } from '../../types/shared';\n\n/**\n * An SVG loader / helper. Comes bundled with all fontawesome pro icons by default but can use any custom SVG (with an correct path). Lazily loads SVG for each icon, so will only request the icons that you're using and that are visible.\n */\n@Component({\n tag: 'nano-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n})\nexport class Icon {\n private io?: IntersectionObserver;\n\n @Element() el!: HTMLNanoIconElement;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n @State() isLoading = true;\n\n /**\n * Color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\n */\n @Prop() color?: Color;\n\n /**\n * Specifies the role to use for accessibility. Defaults to 'presentation' (invisible to screen-readers)\n */\n @Prop({ mutable: true, reflect: true }) role: string;\n\n /**\n * Specifies the label to use for accessibility. Defaults to the icon name.\n */\n @Prop({ mutable: true, reflect: true }) ariaLabel: string;\n\n /**\n * Specifies whether the icon should horizontally flip when `dir` is `\"rtl\"`.\n */\n @Prop() flipRtl?: boolean;\n\n /**\n * Specifies which icon to use from the built-in set of icons.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the exact `src` of an SVG file to use.\n */\n @Prop() src?: string;\n\n /**\n * A combination of both `name` and `src`. If a `src` url is detected\n * it will set the `src` property. Otherwise it assumes it's a built-in named\n * SVG and set the `name` property.\n */\n @Prop() icon?: any;\n\n /**\n * The size of the icon.\n * Available options are: `\"small\"` and `\"large\"`.\n */\n @Prop() size?: 'small' | 'large';\n\n /**\n * If enabled, nano-icon will be loaded lazily when it's visible in the viewport.\n * Default, `true`.\n */\n @Prop() lazy = true;\n\n @Watch('ariaLabel')\n udpateRole() {\n // force the role to be 'img' if the aria-label is explicitly set\n if (this.ariaLabel) this.role = 'img';\n else if (!this.ariaLabel) this.role = 'presentation';\n }\n\n @Watch('role')\n setAriaLabel() {\n if (!this.ariaLabel && !this.el.ariaLabel) {\n if (!this.role || this.role !== 'presentation') {\n // if the role is not 'presentation' and the user did not explicitly set a role,\n // let's try and derive one from the icon name\n\n const label = getName(this.name, this.icon);\n // user did not provide a label\n // come up with the label based on the icon name\n if (label) {\n this.ariaLabel = label.split('/').slice(-1)[0].replace(/-/g, ' ');\n }\n }\n } else if (this.role === 'presentation') {\n this.ariaLabel = undefined;\n }\n }\n\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n componentWillLoad() {\n this.udpateRole();\n this.setAriaLabel();\n }\n\n private waitUntilVisible(\n el: HTMLElement,\n rootMargin: string,\n cb: () => void\n ) {\n if (\n Build.isBrowser &&\n this.lazy &&\n typeof window !== 'undefined' &&\n (window as any).IntersectionObserver\n ) {\n const io = (this.io = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n if (data[0].isIntersecting || (data[1] && data[1].isIntersecting)) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n },\n { rootMargin }\n ));\n\n io.observe(el);\n } else {\n // not a browser env (e.g. node)\n // or we're not loading lazily\n // or env doesn't support IntersectionObserver (testing?)\n // - immediately fetch icon\n cb();\n }\n }\n\n @Watch('name')\n @Watch('src')\n @Watch('icon')\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (iconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = iconContent.get(url);\n requestAnimationFrame(() => (this.isLoading = false));\n } else {\n // async if it hasn't been loaded\n getSvgContent(url).then(() => {\n this.svgContent = iconContent.get(url);\n requestAnimationFrame(() => (this.isLoading = false));\n this.setAriaLabel();\n });\n }\n }\n }\n }\n\n private isRtl() {\n // doc is in rtl\n if (this.el.ownerDocument?.dir === 'rtl') return true;\n // html element is in rtl element\n if (this.el.closest('[dir=\"rtl\"]')) return true;\n\n // nested in a shadow dom - see if that host element is contained in an rtl element\n const rootNode = this.el.getRootNode() as ShadowRoot;\n const ownerHost = rootNode.host;\n if (ownerHost && ownerHost.closest('[dir=\"rtl\"]')) return true;\n\n return false;\n }\n\n render() {\n const flipRtl =\n this.flipRtl ||\n (this.name &&\n (this.name.indexOf('arrow') > -1 ||\n this.name.indexOf('chevron') > -1) &&\n this.isRtl() &&\n this.flipRtl !== false);\n\n return (\n <Host\n class={{\n ...createColorClasses(this.color),\n loading: this.isLoading,\n [`icon-${this.size}`]: !!this.size,\n 'flip-rtl': !!flipRtl,\n }}\n >\n {Build.isBrowser && this.svgContent ? (\n <div class=\"icon-inner\" innerHTML={this.svgContent}></div>\n ) : (\n <div class=\"icon-inner\"></div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../../src/components/icon/icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Build,\n Component,\n Element,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { h } from '../../utils/renderer';\nimport { createColorClasses } from '../../utils/theme';\nimport { getSvgContent, iconContent } from './request';\nimport { getName, getUrl } from './utils';\nimport type { Color } from '../../types/shared';\n\n/**\n * An SVG loader / helper. Comes bundled with all fontawesome pro icons by default but can use any custom SVG (with an correct path). Lazily loads SVG for each icon, so will only request the icons that you're using and that are visible.\n */\n@Component({\n tag: 'nano-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n})\nexport class Icon {\n private io?: IntersectionObserver;\n\n @Element() el!: HTMLNanoIconElement;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n @State() isLoading = true;\n\n /**\n * Color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\n */\n @Prop() color?: Color;\n\n /**\n * Specifies the role to use for accessibility. Defaults to 'presentation' (invisible to screen-readers)\n */\n @Prop({ mutable: true, reflect: true }) role: string;\n\n /**\n * Specifies the label to use for accessibility. Defaults to the icon name.\n */\n @Prop({ mutable: true, reflect: true }) ariaLabel: string;\n\n /**\n * Specifies whether the icon should horizontally flip when `dir` is `\"rtl\"`.\n */\n @Prop() flipRtl?: boolean;\n\n /**\n * Specifies which icon to use from the built-in set of icons.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the exact `src` of an SVG file to use.\n */\n @Prop() src?: string;\n\n /**\n * A combination of both `name` and `src`. If a `src` url is detected\n * it will set the `src` property. Otherwise it assumes it's a built-in named\n * SVG and set the `name` property.\n */\n @Prop() icon?: any;\n\n /**\n * The size of the icon.\n * Available options are: `\"small\"` and `\"large\"`.\n */\n @Prop() size?: 'small' | 'large';\n\n /**\n * If enabled, nano-icon will be loaded lazily when it's visible in the viewport.\n * Default, `true`.\n */\n @Prop() lazy = true;\n\n @Watch('ariaLabel')\n udpateRole() {\n // force the role to be 'img' if the aria-label is explicitly set\n if (this.ariaLabel) this.role = 'img';\n else if (!this.ariaLabel) this.role = 'presentation';\n }\n\n @Watch('role')\n setAriaLabel() {\n if (!this.ariaLabel && !this.el.ariaLabel) {\n if (!this.role || this.role !== 'presentation') {\n // if the role is not 'presentation' and the user did not explicitly set a role,\n // let's try and derive one from the icon name\n\n const label = getName(this.name, this.icon);\n // user did not provide a label\n // come up with the label based on the icon name\n if (label) {\n this.ariaLabel = label.split('/').slice(-1)[0].replace(/-/g, ' ');\n }\n }\n } else if (this.role === 'presentation') {\n this.ariaLabel = undefined;\n }\n }\n\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n componentWillLoad() {\n this.udpateRole();\n this.setAriaLabel();\n }\n\n private waitUntilVisible(\n el: HTMLElement,\n rootMargin: string,\n cb: () => void\n ) {\n if (\n Build.isBrowser &&\n this.lazy &&\n typeof window !== 'undefined' &&\n (window as any).IntersectionObserver\n ) {\n const io = (this.io = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n if (data[0].isIntersecting || (data[1] && data[1].isIntersecting)) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n },\n { rootMargin }\n ));\n\n io.observe(el);\n } else {\n // not a browser env (e.g. node)\n // or we're not loading lazily\n // or env doesn't support IntersectionObserver (testing?)\n // - immediately fetch icon\n cb();\n }\n }\n\n @Watch('name')\n @Watch('src')\n @Watch('icon')\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (iconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = iconContent.get(url);\n requestAnimationFrame(() => (this.isLoading = false));\n } else {\n // async if it hasn't been loaded\n getSvgContent(url).then(() => {\n this.svgContent = iconContent.get(url);\n requestAnimationFrame(() => (this.isLoading = false));\n this.setAriaLabel();\n });\n }\n }\n }\n }\n\n private isRtl() {\n // doc is in rtl\n if (this.el.ownerDocument?.dir === 'rtl') return true;\n // html element is in rtl element\n if (this.el.closest('[dir=\"rtl\"]')) return true;\n\n // nested in a shadow dom - see if that host element is contained in an rtl element\n const rootNode = this.el.getRootNode() as ShadowRoot;\n const ownerHost = rootNode.host;\n if (ownerHost && ownerHost.closest('[dir=\"rtl\"]')) return true;\n\n return false;\n }\n\n render() {\n const flipRtl =\n this.flipRtl ||\n (this.name &&\n (this.name.indexOf('arrow') > -1 ||\n this.name.indexOf('chevron') > -1) &&\n this.isRtl() &&\n this.flipRtl !== false);\n\n return (\n <Host\n class={{\n ...createColorClasses(this.color),\n loading: this.isLoading,\n [`icon-${this.size}`]: !!this.size,\n 'flip-rtl': !!flipRtl,\n 'nano-icon': true,\n }}\n >\n {Build.isBrowser && this.svgContent ? (\n <div class=\"icon-inner\" innerHTML={this.svgContent}></div>\n ) : (\n <div class=\"icon-inner\"></div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -97,9 +97,9 @@ export class IconButton {
97
97
  }
98
98
  render() {
99
99
  if (this.showTooltip) {
100
- return (h(Host, { "aria-disabled": this.disabled ? 'true' : null }, h("nano-tooltip", { content: this.label }, this.content())));
100
+ return (h(Host, { class: "nano-icon-button", "aria-disabled": this.disabled ? 'true' : null }, h("nano-tooltip", { content: this.label }, this.content())));
101
101
  }
102
- return (h(Host, { "aria-disabled": this.disabled ? 'true' : null }, this.content()));
102
+ return (h(Host, { class: "nano-icon-button", "aria-disabled": this.disabled ? 'true' : null }, this.content()));
103
103
  }
104
104
  static get is() { return "nano-icon-button"; }
105
105
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/icon-button/icon-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Method,\n Element,\n Host,\n} from '@stencil/core';\nimport { focusVisible } from '../../utils/focus-visible';\n\n/** Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.\n *\n * @part base - the main control (either `<a />` or `<button />`)\n * @part icon - a `<nano-icon />` component\n */\n@Component({\n tag: 'nano-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\nexport class IconButton implements ComponentInterface {\n private button: HTMLButtonElement;\n\n @Element() host: HTMLNanoIconButtonElement;\n\n /** The name of the icon to draw. */\n @Prop() iconName?: string;\n\n /** An external URL of an SVG file. */\n @Prop() iconSrc?: string;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true }) type: 'submit' | 'reset' | 'button' = 'button';\n\n /** The name of the button, submitted as a pair with the button’s value as part of the form data. */\n @Prop({ reflect: true }) name?: string;\n\n /** Defines the value associated with the button’s name when it’s submitted with the form data. */\n @Prop({ reflect: true }) value?: string;\n\n /** A description that gets read by screen readers and other assistive devices. For optimal accessibility, you should\n * always include a label that describes what the icon button does. */\n @Prop() label!: string;\n\n /** display the label as a `<nano-tooltip />` */\n @Prop() showTooltip: boolean = false;\n\n /** Set to true to disable the button. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Contains a URL or a URL fragment that the hyperlink points to.\n * If this property is set, an anchor tag will be rendered. */\n @Prop() href: string | undefined;\n\n /** Specifies the relationship of the target object to the link object.\n * The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types) */\n @Prop() rel: string | undefined;\n\n /** Specifies where to display the linked URL. Only applies when an `href` is provided.\n * Special keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`. */\n @Prop() target: string | undefined;\n\n /** The HTML form element or form element id.\n * Used to submit a form when the button is not a child of the form. */\n @Prop() form: HTMLFormElement | string;\n\n /** Sets focus on the internal button */\n @Method()\n async setFocus() {\n this.button.focus();\n }\n\n /**\n * Finds the form element based on the provided `form` selector\n * or element reference provided.\n * @returns the found form element (if found)\n */\n private findForm(): HTMLFormElement | null {\n const { form, host } = this;\n if (!form) return host.closest('form');\n\n if (form instanceof HTMLFormElement) {\n return form;\n }\n if (typeof form === 'string') {\n const el = document.getElementById(form);\n if (el instanceof HTMLFormElement) {\n return el;\n }\n }\n return null;\n }\n\n private handleClick = (ev: Event) => {\n if (this.type === 'button') return;\n const formEl = this.findForm();\n\n if (formEl) {\n ev.preventDefault();\n\n const fakeButton = document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n formEl.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n };\n\n componentDidLoad() {\n focusVisible.observe(this.button);\n }\n\n connectedCallback() {\n if (this.button) focusVisible.observe(this.button);\n }\n\n disconnectedCallback() {\n focusVisible.unobserve(this.button);\n }\n\n private content() {\n const TagType: 'a' | 'button' = this.href === undefined ? 'button' : 'a';\n\n return (\n <TagType\n onClick={this.handleClick}\n part=\"base\"\n ref={(el) => (this.button = el)}\n class={{\n 'icon-button': true,\n 'icon-button--disabled': this.disabled,\n }}\n name={this.name}\n value={this.value}\n href={this.href || undefined}\n target={this.href && this.target ? this.target : undefined}\n rel={this.rel || undefined}\n type={!this.href && this.type ? this.type : undefined}\n >\n <span class=\"icon-button__label\">{this.label}</span>\n <nano-icon\n name={this.iconName}\n src={this.iconSrc}\n aria-hidden=\"true\"\n lazy={false}\n part=\"icon\"\n />\n </TagType>\n );\n }\n\n render() {\n if (this.showTooltip) {\n return (\n <Host aria-disabled={this.disabled ? 'true' : null}>\n <nano-tooltip content={this.label}>{this.content()}</nano-tooltip>\n </Host>\n );\n }\n return (\n <Host aria-disabled={this.disabled ? 'true' : null}>\n {this.content()}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/icon-button/icon-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Method,\n Element,\n Host,\n} from '@stencil/core';\nimport { focusVisible } from '../../utils/focus-visible';\n\n/** Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.\n *\n * @part base - the main control (either `<a />` or `<button />`)\n * @part icon - a `<nano-icon />` component\n */\n@Component({\n tag: 'nano-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\nexport class IconButton implements ComponentInterface {\n private button: HTMLButtonElement;\n\n @Element() host: HTMLNanoIconButtonElement;\n\n /** The name of the icon to draw. */\n @Prop() iconName?: string;\n\n /** An external URL of an SVG file. */\n @Prop() iconSrc?: string;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true }) type: 'submit' | 'reset' | 'button' = 'button';\n\n /** The name of the button, submitted as a pair with the button’s value as part of the form data. */\n @Prop({ reflect: true }) name?: string;\n\n /** Defines the value associated with the button’s name when it’s submitted with the form data. */\n @Prop({ reflect: true }) value?: string;\n\n /** A description that gets read by screen readers and other assistive devices. For optimal accessibility, you should\n * always include a label that describes what the icon button does. */\n @Prop() label!: string;\n\n /** display the label as a `<nano-tooltip />` */\n @Prop() showTooltip: boolean = false;\n\n /** Set to true to disable the button. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Contains a URL or a URL fragment that the hyperlink points to.\n * If this property is set, an anchor tag will be rendered. */\n @Prop() href: string | undefined;\n\n /** Specifies the relationship of the target object to the link object.\n * The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types) */\n @Prop() rel: string | undefined;\n\n /** Specifies where to display the linked URL. Only applies when an `href` is provided.\n * Special keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`. */\n @Prop() target: string | undefined;\n\n /** The HTML form element or form element id.\n * Used to submit a form when the button is not a child of the form. */\n @Prop() form: HTMLFormElement | string;\n\n /** Sets focus on the internal button */\n @Method()\n async setFocus() {\n this.button.focus();\n }\n\n /**\n * Finds the form element based on the provided `form` selector\n * or element reference provided.\n * @returns the found form element (if found)\n */\n private findForm(): HTMLFormElement | null {\n const { form, host } = this;\n if (!form) return host.closest('form');\n\n if (form instanceof HTMLFormElement) {\n return form;\n }\n if (typeof form === 'string') {\n const el = document.getElementById(form);\n if (el instanceof HTMLFormElement) {\n return el;\n }\n }\n return null;\n }\n\n private handleClick = (ev: Event) => {\n if (this.type === 'button') return;\n const formEl = this.findForm();\n\n if (formEl) {\n ev.preventDefault();\n\n const fakeButton = document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n formEl.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n };\n\n componentDidLoad() {\n focusVisible.observe(this.button);\n }\n\n connectedCallback() {\n if (this.button) focusVisible.observe(this.button);\n }\n\n disconnectedCallback() {\n focusVisible.unobserve(this.button);\n }\n\n private content() {\n const TagType: 'a' | 'button' = this.href === undefined ? 'button' : 'a';\n\n return (\n <TagType\n onClick={this.handleClick}\n part=\"base\"\n ref={(el) => (this.button = el)}\n class={{\n 'icon-button': true,\n 'icon-button--disabled': this.disabled,\n }}\n name={this.name}\n value={this.value}\n href={this.href || undefined}\n target={this.href && this.target ? this.target : undefined}\n rel={this.rel || undefined}\n type={!this.href && this.type ? this.type : undefined}\n >\n <span class=\"icon-button__label\">{this.label}</span>\n <nano-icon\n name={this.iconName}\n src={this.iconSrc}\n aria-hidden=\"true\"\n lazy={false}\n part=\"icon\"\n />\n </TagType>\n );\n }\n\n render() {\n if (this.showTooltip) {\n return (\n <Host\n class=\"nano-icon-button\"\n aria-disabled={this.disabled ? 'true' : null}\n >\n <nano-tooltip content={this.label}>{this.content()}</nano-tooltip>\n </Host>\n );\n }\n return (\n <Host\n class=\"nano-icon-button\"\n aria-disabled={this.disabled ? 'true' : null}\n >\n {this.content()}\n </Host>\n );\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import { h, Build, } from "@stencil/core";
4
+ import { Build, Host, } from "@stencil/core";
5
+ import { h } from "../../utils/renderer";
5
6
  /**
6
7
  * Img with benefits. Lazy loading. Simple `srcSet` solution for both `<img>` and `background-image` varieties.
7
8
  * @slot - Main slot. Only relevant with `<nano-img background>`
@@ -133,16 +134,16 @@ export class Img {
133
134
  const bgStyle = this.loadSrc
134
135
  ? { 'background-image': `url(${this.loadSrc})` }
135
136
  : {};
136
- return (h("div", { key: 'cbb3d0ef49c058dbf5767ca7b78c3559068c2446', class: "img" }, h("nano-skeleton", { key: 'f2e120c2563e4034795c3bab3151a90b2202487a', class: "img__loader" }), !!this.background && (h("div", { key: '3f5fd5a46bc7b92f47b03aa718a1dc10fa582e03', class: {
137
+ return (h(Host, { key: '5f56dcb4a2fe386f1bdd130f4ddf48e2f6859f67', class: "nano-img" }, h("div", { key: 'bf901f23c00d91e988c530b98ea3e72d55a06b25', class: "img" }, h("nano-skeleton", { key: '67b01b95235b44ac958f74b9162a1f10f81d5253', class: "img__loader" }), !!this.background && (h("div", { key: 'b5f786a707e70b78a183fcd15fb02d0ed1066d9c', class: {
137
138
  loaded: this.hasLoaded,
138
139
  img__bg: true,
139
140
  'no-height': this.autoHeight === 'image',
140
- }, style: bgStyle }, h("slot", { key: 'f98f9ac3cf5203cba787611159026da6a068a4b0' }))), h("img", { key: 'e8c77b33922845f24760a075110e81e7e55ab914', class: {
141
+ }, style: bgStyle }, h("slot", { key: 'a56ca90ca3a47eeefe1f54229c2d4cf056dab2fc' }))), h("img", { key: 'f15763c2522895d76416e38044cc26baff76f74a', class: {
141
142
  img__image: true,
142
143
  loaded: this.hasLoaded,
143
144
  hide: this.background,
144
145
  'no-height': this.autoHeight === 'content',
145
- }, decoding: "async", src: Build.isServer ? this.src : this.loadSrc, loading: Build.isServer && this.lazy ? 'lazy' : undefined, alt: this.alt, onLoad: this.onLoad, onError: this.loadError }), h("nano-resize-observe", { key: '5208f5833596d5ed04e5a4dd1f2e8418510ea144', class: "img__observer", onNanoResizeStateChange: this.onResize, states: this.imgStates })));
146
+ }, decoding: "async", src: Build.isServer ? this.src : this.loadSrc, loading: Build.isServer && this.lazy ? 'lazy' : undefined, alt: this.alt, onLoad: this.onLoad, onError: this.loadError }), h("nano-resize-observe", { key: '4db81fe9e3b7fb99773daa70efe9f89abb2ad362', class: "img__observer", onNanoResizeStateChange: this.onResize, states: this.imgStates }))));
146
147
  }
147
148
  static get is() { return "nano-img"; }
148
149
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"img.js","sourceRoot":"","sources":["../../../../src/components/img/img.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n State,\n Prop,\n Watch,\n h,\n ComponentInterface,\n Build,\n} from '@stencil/core';\nimport { ResizeStateChangeEventDetail } from '../resize-observe/resize-observe-interface';\n\n/**\n * Img with benefits. Lazy loading. Simple `srcSet` solution for both `<img>` and `background-image` varieties.\n * @slot - Main slot. Only relevant with `<nano-img background>`\n */\n@Component({\n tag: 'nano-img',\n styleUrl: 'img.scss',\n shadow: true,\n})\nexport class Img implements ComponentInterface {\n private io?: IntersectionObserver;\n private _srcSet: { [key: string]: { src: string; active: boolean } } = {};\n\n @Element() host!: HTMLNanoImgElement;\n\n @State() loadSrc?: string;\n @State() loadError?: () => void;\n @State() hasLoaded: boolean = false;\n @State() imgStates: string = null;\n @State() _src: string;\n @Watch('_src')\n _srcChanged() {\n this.hasLoaded = false;\n this.addIO();\n }\n\n /** This attribute defines the alternative text describing the image.\n * Users will see this text displayed if the image URL is wrong, or if the image is not yet downloaded. */\n @Prop() alt?: string;\n\n /** The image URL. This attribute is mandatory for the `<img>` element. */\n @Prop() src!: string;\n @Watch('src')\n srcChanged() {\n this._src = this.src;\n }\n\n /** Optional list string providing media sizes with corresponding image srcs.\n * i.e. show img-x at 300px wide. Format `srcSet=\"200w src/imgSmall.jpg, 500h src/imgMed.png\"` */\n @Prop() srcSet?: string;\n @Watch('srcSet')\n srcSetChanged() {\n if (!this.srcSet) return;\n\n delete this._srcSet;\n this._srcSet = {};\n\n this.imgStates = this.srcSet\n .split(',')\n .map((bpSrc) => {\n const [bp, src] = bpSrc.split(' ').filter((bp) => bp.length);\n this._srcSet[bp] = { src: src, active: false };\n return bp;\n })\n .join(', ');\n }\n\n /** Render image lazily, when it comes into the browser viewport **/\n @Prop() lazy: boolean = true;\n @Watch('lazy')\n lazyChanged() {\n if (!this.lazy) this.load();\n }\n\n /** Render the image as a background image **/\n @Prop() background?: boolean;\n\n /** When the image is rendered as a background, and there is no preset dimensions of the component,\n * you can set how the component height will be set. Via image size or via the content **/\n @Prop() autoHeight: 'content' | 'image' = 'content';\n\n /** Emitted when the img src has been set */\n @Event() nanoImgWillLoad!: EventEmitter<void>;\n\n /** Emitted when the image has finished loading */\n @Event() nanoImgDidLoad!: EventEmitter<void>;\n\n /** Emitted when the img fails to load */\n @Event() nanoImgError!: EventEmitter<void>;\n\n private addIO() {\n if (!this._src || this.hasLoaded) return;\n if (!this.lazy) {\n this.load();\n return;\n }\n if (\n typeof (window as any) !== 'undefined' &&\n 'IntersectionObserver' in window\n ) {\n this.removeIO();\n this.io = new IntersectionObserver((data) => {\n if (data[0].isIntersecting) {\n this.load();\n this.removeIO();\n }\n });\n\n this.io.observe(this.host);\n } else setTimeout(() => this.load(), 200);\n }\n\n private load() {\n this.loadError = this.onError;\n this.loadSrc = this._src;\n this.nanoImgWillLoad.emit();\n }\n\n private onLoad = () => {\n this.nanoImgDidLoad.emit();\n setTimeout(() => (this.hasLoaded = true), 50);\n };\n\n private onError = () => {\n this.nanoImgError.emit();\n };\n\n private onResize = (e: { detail: ResizeStateChangeEventDetail }) => {\n Object.entries(e.detail).forEach(([bp, active]) => {\n this._srcSet[bp].active = !!active;\n });\n\n // sort and find the highest sized matching image.\n const srcOpts = [];\n Object.keys(this._srcSet)\n .sort()\n .forEach((bp) => {\n if (this._srcSet[bp].active) srcOpts.push(this._srcSet[bp].src);\n });\n\n if (srcOpts.length) this._src = srcOpts.slice(-1)[0];\n // no matching image? Set back to default\n else this._src = this.src;\n };\n\n private removeIO() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n connectedCallback() {\n this.srcChanged();\n this.srcSetChanged();\n this.lazyChanged();\n }\n\n componentDidLoad() {\n this.addIO();\n }\n\n disconnectedCallback() {\n this.removeIO();\n }\n\n render() {\n const bgStyle = this.loadSrc\n ? { 'background-image': `url(${this.loadSrc})` }\n : {};\n\n return (\n <div class=\"img\">\n <nano-skeleton class=\"img__loader\"></nano-skeleton>\n {!!this.background && (\n <div\n class={{\n loaded: this.hasLoaded,\n img__bg: true,\n 'no-height': this.autoHeight === 'image',\n }}\n style={bgStyle}\n >\n <slot />\n </div>\n )}\n <img\n class={{\n img__image: true,\n loaded: this.hasLoaded,\n hide: this.background,\n 'no-height': this.autoHeight === 'content',\n }}\n decoding=\"async\"\n src={Build.isServer ? this.src : this.loadSrc}\n loading={Build.isServer && this.lazy ? 'lazy' : undefined}\n alt={this.alt}\n onLoad={this.onLoad}\n onError={this.loadError}\n />\n <nano-resize-observe\n class=\"img__observer\"\n onNanoResizeStateChange={this.onResize}\n states={this.imgStates}\n />\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"img.js","sourceRoot":"","sources":["../../../../src/components/img/img.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n State,\n Prop,\n Watch,\n ComponentInterface,\n Build,\n Host,\n} from '@stencil/core';\nimport { h } from '../../utils/renderer';\nimport { ResizeStateChangeEventDetail } from '../resize-observe/resize-observe-interface';\n\n/**\n * Img with benefits. Lazy loading. Simple `srcSet` solution for both `<img>` and `background-image` varieties.\n * @slot - Main slot. Only relevant with `<nano-img background>`\n */\n@Component({\n tag: 'nano-img',\n styleUrl: 'img.scss',\n shadow: true,\n})\nexport class Img implements ComponentInterface {\n private io?: IntersectionObserver;\n private _srcSet: { [key: string]: { src: string; active: boolean } } = {};\n\n @Element() host!: HTMLNanoImgElement;\n\n @State() loadSrc?: string;\n @State() loadError?: () => void;\n @State() hasLoaded: boolean = false;\n @State() imgStates: string = null;\n @State() _src: string;\n @Watch('_src')\n _srcChanged() {\n this.hasLoaded = false;\n this.addIO();\n }\n\n /** This attribute defines the alternative text describing the image.\n * Users will see this text displayed if the image URL is wrong, or if the image is not yet downloaded. */\n @Prop() alt?: string;\n\n /** The image URL. This attribute is mandatory for the `<img>` element. */\n @Prop() src!: string;\n @Watch('src')\n srcChanged() {\n this._src = this.src;\n }\n\n /** Optional list string providing media sizes with corresponding image srcs.\n * i.e. show img-x at 300px wide. Format `srcSet=\"200w src/imgSmall.jpg, 500h src/imgMed.png\"` */\n @Prop() srcSet?: string;\n @Watch('srcSet')\n srcSetChanged() {\n if (!this.srcSet) return;\n\n delete this._srcSet;\n this._srcSet = {};\n\n this.imgStates = this.srcSet\n .split(',')\n .map((bpSrc) => {\n const [bp, src] = bpSrc.split(' ').filter((bp) => bp.length);\n this._srcSet[bp] = { src: src, active: false };\n return bp;\n })\n .join(', ');\n }\n\n /** Render image lazily, when it comes into the browser viewport **/\n @Prop() lazy: boolean = true;\n @Watch('lazy')\n lazyChanged() {\n if (!this.lazy) this.load();\n }\n\n /** Render the image as a background image **/\n @Prop() background?: boolean;\n\n /** When the image is rendered as a background, and there is no preset dimensions of the component,\n * you can set how the component height will be set. Via image size or via the content **/\n @Prop() autoHeight: 'content' | 'image' = 'content';\n\n /** Emitted when the img src has been set */\n @Event() nanoImgWillLoad!: EventEmitter<void>;\n\n /** Emitted when the image has finished loading */\n @Event() nanoImgDidLoad!: EventEmitter<void>;\n\n /** Emitted when the img fails to load */\n @Event() nanoImgError!: EventEmitter<void>;\n\n private addIO() {\n if (!this._src || this.hasLoaded) return;\n if (!this.lazy) {\n this.load();\n return;\n }\n if (\n typeof (window as any) !== 'undefined' &&\n 'IntersectionObserver' in window\n ) {\n this.removeIO();\n this.io = new IntersectionObserver((data) => {\n if (data[0].isIntersecting) {\n this.load();\n this.removeIO();\n }\n });\n\n this.io.observe(this.host);\n } else setTimeout(() => this.load(), 200);\n }\n\n private load() {\n this.loadError = this.onError;\n this.loadSrc = this._src;\n this.nanoImgWillLoad.emit();\n }\n\n private onLoad = () => {\n this.nanoImgDidLoad.emit();\n setTimeout(() => (this.hasLoaded = true), 50);\n };\n\n private onError = () => {\n this.nanoImgError.emit();\n };\n\n private onResize = (e: { detail: ResizeStateChangeEventDetail }) => {\n Object.entries(e.detail).forEach(([bp, active]) => {\n this._srcSet[bp].active = !!active;\n });\n\n // sort and find the highest sized matching image.\n const srcOpts = [];\n Object.keys(this._srcSet)\n .sort()\n .forEach((bp) => {\n if (this._srcSet[bp].active) srcOpts.push(this._srcSet[bp].src);\n });\n\n if (srcOpts.length) this._src = srcOpts.slice(-1)[0];\n // no matching image? Set back to default\n else this._src = this.src;\n };\n\n private removeIO() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n connectedCallback() {\n this.srcChanged();\n this.srcSetChanged();\n this.lazyChanged();\n }\n\n componentDidLoad() {\n this.addIO();\n }\n\n disconnectedCallback() {\n this.removeIO();\n }\n\n render() {\n const bgStyle = this.loadSrc\n ? { 'background-image': `url(${this.loadSrc})` }\n : {};\n\n return (\n <Host class=\"nano-img\">\n <div class=\"img\">\n <nano-skeleton class=\"img__loader\"></nano-skeleton>\n {!!this.background && (\n <div\n class={{\n loaded: this.hasLoaded,\n img__bg: true,\n 'no-height': this.autoHeight === 'image',\n }}\n style={bgStyle}\n >\n <slot />\n </div>\n )}\n <img\n class={{\n img__image: true,\n loaded: this.hasLoaded,\n hide: this.background,\n 'no-height': this.autoHeight === 'content',\n }}\n decoding=\"async\"\n src={Build.isServer ? this.src : this.loadSrc}\n loading={Build.isServer && this.lazy ? 'lazy' : undefined}\n alt={this.alt}\n onLoad={this.onLoad}\n onError={this.loadError}\n />\n <nano-resize-observe\n class=\"img__observer\"\n onNanoResizeStateChange={this.onResize}\n states={this.imgStates}\n />\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,11 +1,12 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import { Build, Host, h, } from "@stencil/core";
4
+ import { Build, Host, } from "@stencil/core";
5
5
  import { closestElement } from "../../utils/dom";
6
6
  import { createColorClasses } from "../../utils/theme";
7
7
  import { debounceEvent, debounce } from "../../utils/throttle";
8
8
  import { FormControl, FormControlWrap } from "../form-control/form-control";
9
+ import { h, transformTag } from "../../utils/renderer";
9
10
  let inputIds = 0;
10
11
  /**
11
12
  * The input component is a wrapper to the HTML input element with custom styling and additional functionality. It accepts most of the same properties as the HTML [input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
@@ -445,7 +446,7 @@ export class Input {
445
446
  this.hasLabelSlot = !!this.el.querySelectorAll('[slot="label"]');
446
447
  this.hasHelperSlot = !!this.el.querySelector('[slot="helper"]');
447
448
  this.hasHelperEndSlot = !!this.el.querySelector('[slot="helper-end"]');
448
- this.datalist = this.el.querySelector('nano-datalist:not([slot])');
449
+ this.datalist = this.el.querySelector(`${transformTag('nano-datalist')}:not([slot])`);
449
450
  // breaking change introduced in v2. Rm in v3
450
451
  if (this.el.querySelector('[slot="inline-button"]')) {
451
452
  console.warn('The `inline-button` slot was renamed to `end` in v2 - please update your code', this.el);
@@ -514,15 +515,16 @@ export class Input {
514
515
  disabled,
515
516
  clearControl: this.clearInput,
516
517
  }))(this);
517
- return (h(Host, { key: 'd3ba5aeef1a8b0dc6d8184a5baf858a80525c907', "aria-disabled": this.disabled ? 'true' : null, dir: this.rtl ? 'rtl' : null, class: {
518
+ return (h(Host, { key: 'dfed5ae52b51a714f2aa0218b9cee8081251a2c9', "aria-disabled": this.disabled ? 'true' : null, dir: this.rtl ? 'rtl' : null, class: {
518
519
  ...createColorClasses(this.color),
519
520
  'has-value': this.hasValue(),
520
521
  'has-focus': this.hasFocus,
521
522
  'is-invalid': this._invalid,
522
- } }, h("div", { key: 'd8c8488f37aa9474f946d165aa2f91c55886f74f', style: { width: '100%' } }, h(FormControlWrap, { key: '50dc939d11a2704aacc6f967670e2945fd063b89', ...wrapOptions }, h(FormControl, { key: 'fbe48f48485af685c0787dcfdc67a198b9904bd2', ...controlOptions, onClearText: this.clearTextInput, control: this.el, ref: (el) => (this.nativeInputWrap = el) }, this.type !== 'textarea' && (h("input", { key: '9851de702e37a25a86ccf1935372ec0b3992e127', id: this.inputId, class: "input__native-ctrl", ref: (input) => (this.nativeInput = input), "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalise, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, inputMode: this.inputmode, form: this.form, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onInput, onFocus: this.onFocus, onBlur: this.handleBlur, onKeyDown: this.onKeydown, onInvalid: this.validate })), this.type === 'textarea' && (h("textarea", { key: 'b0e639724c3458e45854b31dd17e26839737479d', rows: this.floatLabel ? 1 : this.rows, id: this.inputId, class: {
523
+ 'nano-input': true,
524
+ } }, h("div", { key: '94d4634ca2fe48cce7f761fb4e6a3d640121baf9', style: { width: '100%' } }, h(FormControlWrap, { key: 'aa8bc2042e5f21fd351acabb4b515fba4cda0dba', ...wrapOptions }, h(FormControl, { key: 'ab008f2dd670122ed5998fdb9dcf004a14e5e274', ...controlOptions, onClearText: this.clearTextInput, control: this.el, ref: (el) => (this.nativeInputWrap = el) }, this.type !== 'textarea' && (h("input", { key: '2d23e3f0fe71c5d0b5cf56f849b0166dac2d6419', id: this.inputId, class: "input__native-ctrl", ref: (input) => (this.nativeInput = input), "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalise, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, inputMode: this.inputmode, form: this.form, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onInput, onFocus: this.onFocus, onBlur: this.handleBlur, onKeyDown: this.onKeydown, onInvalid: this.validate })), this.type === 'textarea' && (h("textarea", { key: '09639dab83617d2153981e04fe61088294b336cc', rows: this.floatLabel ? 1 : this.rows, id: this.inputId, class: {
523
525
  'input__native-ctrl': true,
524
526
  input__resizable: this.resize === 'true',
525
- }, ref: (input) => (this.nativeInput = input), "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, autoCapitalize: this.autocapitalise, autoCorrect: this.autocorrect, autoFocus: this.autofocus, inputMode: this.inputmode, form: this.form, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, value: value, onInput: this.onInput, onChange: this.onInput, onFocus: this.onFocus, onKeyDown: this.onKeydown, onInvalid: this.validate, onBlur: this.handleBlur })))), h("slot", { key: '3d2663183a74f118a092ae196855922ab336f43b' }))));
527
+ }, ref: (input) => (this.nativeInput = input), "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, autoCapitalize: this.autocapitalise, autoCorrect: this.autocorrect, autoFocus: this.autofocus, inputMode: this.inputmode, form: this.form, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, value: value, onInput: this.onInput, onChange: this.onInput, onFocus: this.onFocus, onKeyDown: this.onKeydown, onInvalid: this.validate, onBlur: this.handleBlur })))), h("slot", { key: '42e80b566fe4ee06b4a65777d37fd77975f619a0' }))));
526
528
  }
527
529
  static get is() { return "nano-input"; }
528
530
  static get encapsulation() { return "scoped"; }