@nanoporetech-digital/components 7.6.0 → 7.7.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 +19 -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-806fa39d.js} +42 -40
  115. package/dist/cjs/nano-table-806fa39d.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-fb31c8b7.js} +5 -4
  125. package/dist/cjs/table.worker-fb31c8b7.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-67d7190b.js} +42 -40
  491. package/dist/esm/nano-table-67d7190b.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-d636a71f.js} +5 -4
  501. package/dist/esm/table.worker-d636a71f.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-67d7190b.js +5 -0
  611. package/dist/nano-components/nano-table-67d7190b.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-d636a71f.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-d636a71f.js.map} +0 -0
  670. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/custom-element-doc-generator.d.ts +0 -0
  671. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/generate-vue-component.d.ts +0 -0
  672. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/index.d.ts +0 -0
  673. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/output-vue.d.ts +0 -0
  674. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/plugin.d.ts +0 -0
  675. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/types.d.ts +0 -0
  676. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/utils.d.ts +0 -0
  677. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -0
  678. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -0
  679. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
  680. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/wdio.conf.d.ts +0 -0
@@ -1 +1 @@
1
- {"file":"nano-grid.nano-img.entry.cjs.js","mappings":"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","names":["getElement","h","Host"],"sources":["src/utils/constructible-style.tsx","src/components/grid/grid.scss?tag=nano-grid&encapsulation=shadow","src/components/grid/grid.tsx","src/components/img/img.scss?tag=nano-img&encapsulation=shadow","src/components/img/img.tsx"],"sourcesContent":["import { h, Host, getElement, VNode, ComponentInterface } from '@stencil/core';\n// import type { VNode, HTMLStencilElement } from \"@stencil/core\";\n\nconst supportsConstructibleStylesheets = (() => {\n try {\n return !!new CSSStyleSheet();\n } catch (_e) {\n return false;\n }\n})();\n\nconst cacheKeys: WeakMap<ComponentInterface, string> = new WeakMap();\n\ndeclare type ConstructibleStyleDecorator = (\n target: ComponentInterface,\n propertyKey: string\n) => void;\n\n/**\n * Dynamically create a constructible stylesheet which is applied to the component.\n * The stylesheet is then cached for future instances of the component.\n * @usage\nAs a string:\n```\n@ConstructableStyle() style = `.bg { background: url('assets/${ this.mode }/bg.png'); }`;\n```\nAs a function:\n```\n@ConstructableStyle() style = () => `.bg { background: url('assets/${ this.mode }/bg.png'); }`;\n```\n * @param opts - optional `cacheKeyProperty` - in case an instance of a component could produce different styles based on variables.\n * @returns `@ConstructableStyle` decorator\n */\nexport function ConstructibleStyle(\n opts: ConstructibleStyleOptions = {}\n): ConstructibleStyleDecorator {\n return (target: ComponentInterface, propertyKey: string) => {\n if (!opts.cacheKeyProperty) {\n opts.cacheKeyProperty = propertyKey;\n }\n\n const { componentWillLoad, render, componentWillRender } = target;\n if (!componentWillLoad)\n console.warn(\n `ConstructibleStyle requires you to have a \\`componentWillLoad\\` lifecycle method in \\`${target.constructor.name}\\`. Failure to add this function may cause ConstructibleStyle to fail due to StencilJS build optimizations.`\n );\n\n if (supportsConstructibleStylesheets) {\n const addStylesheet = (instance: ComponentInterface) => {\n if (\n !instance[opts.cacheKeyProperty] ||\n (cacheKeys.get(instance) &&\n cacheKeys.get(instance) === instance[opts.cacheKeyProperty])\n )\n return;\n\n cacheKeys.set(instance, instance[opts.cacheKeyProperty]);\n const host = getElement(instance);\n const cssText =\n typeof instance[propertyKey] === 'function'\n ? instance[propertyKey]()\n : instance[propertyKey];\n const root = (host.shadowRoot || document) as any;\n root.adoptedStyleSheets = [\n ...(root.adoptedStyleSheets || []),\n getOrCreateStylesheet(instance, target, cssText, opts),\n ];\n };\n\n target.componentWillLoad = function () {\n const willLoadResult =\n componentWillLoad && componentWillLoad.call(this);\n addStylesheet(this);\n return willLoadResult;\n };\n\n target.componentWillRender = function () {\n const willRenderResult =\n componentWillRender && componentWillRender.call(this);\n addStylesheet(this);\n return willRenderResult;\n };\n } else {\n target.render = function () {\n const cssText =\n typeof this[propertyKey] === 'function'\n ? this[propertyKey]()\n : this[propertyKey];\n let renderedNode: VNode = render.call(this);\n\n if (isHost(renderedNode)) {\n appendStyleToHost(renderedNode, target.constructor.name, cssText);\n } else {\n renderedNode = <Host>{renderedNode}</Host>;\n\n if (!('attachShadow' in HTMLElement.prototype)) {\n appendStyleToHost(renderedNode, target.constructor.name, cssText);\n } else {\n if (!target.__constructableStyle) {\n const style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n style.setAttribute(\n 'constructible-style',\n target.constructor.name\n );\n style.innerHTML = cssText;\n target.__constructableStyle = style;\n document.head.appendChild(style);\n }\n }\n }\n\n return renderedNode;\n };\n }\n };\n}\n\nfunction appendStyleToHost(node, targetName, cssText) {\n (getHostChildren(node) || []).push(\n <style type=\"text/css\" constructible-style={targetName}>\n {cssText}\n </style>\n );\n}\n\nfunction getOrCreateStylesheet(\n instance: ComponentInterface,\n target: ComponentInterface,\n cssText: string,\n opts: ConstructibleStyleOptions\n): CSSStyleSheet {\n if (!target.__constructableStyle) {\n target.__constructableStyle = {};\n }\n\n const key = instance[opts.cacheKeyProperty];\n\n if (!target.__constructableStyle[key]) {\n target.__constructableStyle[key] = new CSSStyleSheet();\n target.__constructableStyle[key].replace(cssText);\n }\n\n return target.__constructableStyle[key];\n}\n\nfunction isHost(node): boolean {\n for (const prop in node) {\n if (prop in node) {\n if (node[prop] === Host) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction getHostChildren(node): Array<VNode> {\n for (const prop in node) {\n if (prop in node) {\n if (Array.isArray(node[prop])) {\n return node[prop];\n }\n }\n }\n}\n\nexport interface ConstructibleStyleOptions {\n /**\n * Set this in case an instance of a component could produce different styles based on variables.\n * This will ensure that you get new styles for each mode.\n * @example\n```\n@Prop() mode: string;\n@ConstructableStyle({ cacheKeyProperty: \"mode\" }) style = `.bg { background: url('assets/${ this.mode }/bg.png'); }`;\n```\n */\n cacheKeyProperty?: string;\n}\n","@use 'sass:math';\n@use '../../global/style/nano-theme/tokens/base';\n\n:host {\n /**\n * @prop --grid-col-gap: gap between all columns. Defaults to theme's global padding\n * @prop --grid-row-gap: gap between all rows. Defaults to theme's global padding\n */\n\n --grid-col-gap: #{base.$spacing-medium};\n --grid-row-gap: #{base.$spacing-medium};\n --current-grid-size: \"grid size: s\";\n\n container-type: inline-size;\n display: block;\n\n .grid {\n display: grid;\n gap: var(--grid-row-gap) var(--grid-col-gap);\n block-size: inherit;\n min-block-size: inherit;\n }\n}\n\n:host([show-helper]:not([show-helper='false'])) {\n position: relative;\n\n .grid--helper {\n position: absolute;\n inset: 0;\n pointer-events: none;\n display: grid !important;\n overflow: hidden;\n\n &::before {\n content: var(--current-grid-size);\n font-size: 30px;\n position: absolute;\n inline-size: 100%;\n inset-inline-start: 0;\n text-align: center;\n inset-block-start: 50%;\n transform: translateY(-50%);\n color: rgb(0 0 0 / 20%);\n text-transform: uppercase;\n z-index: 99;\n pointer-events: none;\n }\n }\n\n .grid__helper-item {\n background: hsl(204deg 80% 72% / 25%);\n block-size: 100vh;\n }\n}\n","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",":host {\n /**\n * @prop --padding: padding around any content. Only relevent on `<nano-img background>`\n */\n --padding: 0;\n\n display: inline-block;\n object-fit: cover;\n object-position: center;\n background-size: cover;\n background-position: center;\n\n * {\n border-radius: inherit;\n }\n}\n\n:host([background]:not([background='false'])) {\n display: block;\n}\n\n.img {\n position: relative;\n object-fit: inherit;\n object-position: inherit;\n background-color: inherit;\n background-position: inherit;\n background-size: inherit;\n background-origin: inherit;\n background-attachment: inherit;\n background-repeat: inherit;\n flex: 1 1 100%;\n display: flex;\n flex-direction: column;\n min-block-size: inherit;\n min-inline-size: inherit;\n block-size: inherit;\n inline-size: inherit;\n max-block-size: inherit;\n max-inline-size: inherit;\n aspect-ratio: inherit;\n}\n\n.img__loader,\n.img__observer {\n position: absolute;\n inset: 0;\n block-size: 100%;\n inline-size: 100%;\n z-index: -1;\n}\n\n.img__image,\n.img__bg {\n border-radius: inherit;\n display: block;\n opacity: 0;\n transition: 0.5s ease opacity, 0.3s ease filter 0.4s;\n filter: blur(5px);\n flex: 1;\n\n &.loaded {\n opacity: 1;\n filter: blur(0);\n\n @media not all and (resolution >= 0.001dpcm) {\n @supports (-webkit-appearance: none) {\n filter: blur(0);\n }\n }\n }\n}\n\n.img__image {\n object-fit: inherit;\n object-position: inherit;\n min-block-size: inherit;\n min-inline-size: inherit;\n block-size: inherit;\n inline-size: inherit;\n max-block-size: inherit;\n max-inline-size: inherit;\n aspect-ratio: inherit;\n\n &.hide {\n visibility: hidden;\n\n &.no-height {\n block-size: 1px;\n position: absolute;\n z-index: -1;\n }\n }\n}\n\n.img__bg {\n background-color: inherit;\n background-position: inherit;\n background-size: inherit;\n background-origin: inherit;\n background-attachment: inherit;\n background-repeat: inherit;\n overflow: auto;\n padding: var(--padding);\n\n &.no-height {\n position: absolute;\n inset: 0;\n }\n}\n","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"],"version":3}
1
+ {"file":"nano-grid.nano-img.entry.cjs.js","mappings":"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","names":["getElement","h","Host"],"sources":["src/utils/constructible-style.tsx","src/components/grid/grid.scss?tag=nano-grid&encapsulation=shadow","src/components/grid/grid.tsx","src/components/img/img.scss?tag=nano-img&encapsulation=shadow","src/components/img/img.tsx"],"sourcesContent":["import { h, Host, getElement, VNode, ComponentInterface } from '@stencil/core';\n// import type { VNode, HTMLStencilElement } from \"@stencil/core\";\n\nconst supportsConstructibleStylesheets = (() => {\n try {\n return !!new CSSStyleSheet();\n } catch (_e) {\n return false;\n }\n})();\n\nconst cacheKeys: WeakMap<ComponentInterface, string> = new WeakMap();\n\ndeclare type ConstructibleStyleDecorator = (\n target: ComponentInterface,\n propertyKey: string\n) => void;\n\n/**\n * Dynamically create a constructible stylesheet which is applied to the component.\n * The stylesheet is then cached for future instances of the component.\n * @usage\nAs a string:\n```\n@ConstructableStyle() style = `.bg { background: url('assets/${ this.mode }/bg.png'); }`;\n```\nAs a function:\n```\n@ConstructableStyle() style = () => `.bg { background: url('assets/${ this.mode }/bg.png'); }`;\n```\n * @param opts - optional `cacheKeyProperty` - in case an instance of a component could produce different styles based on variables.\n * @returns `@ConstructableStyle` decorator\n */\nexport function ConstructibleStyle(\n opts: ConstructibleStyleOptions = {}\n): ConstructibleStyleDecorator {\n return (target: ComponentInterface, propertyKey: string) => {\n if (!opts.cacheKeyProperty) {\n opts.cacheKeyProperty = propertyKey;\n }\n\n const { componentWillLoad, render, componentWillRender } = target;\n if (!componentWillLoad)\n console.warn(\n `ConstructibleStyle requires you to have a \\`componentWillLoad\\` lifecycle method in \\`${target.constructor.name}\\`. Failure to add this function may cause ConstructibleStyle to fail due to StencilJS build optimizations.`\n );\n\n if (supportsConstructibleStylesheets) {\n const addStylesheet = (instance: ComponentInterface) => {\n if (\n !instance[opts.cacheKeyProperty] ||\n (cacheKeys.get(instance) &&\n cacheKeys.get(instance) === instance[opts.cacheKeyProperty])\n )\n return;\n\n cacheKeys.set(instance, instance[opts.cacheKeyProperty]);\n const host = getElement(instance);\n const cssText =\n typeof instance[propertyKey] === 'function'\n ? instance[propertyKey]()\n : instance[propertyKey];\n const root = (host.shadowRoot || document) as any;\n root.adoptedStyleSheets = [\n ...(root.adoptedStyleSheets || []),\n getOrCreateStylesheet(instance, target, cssText, opts),\n ];\n };\n\n target.componentWillLoad = function () {\n const willLoadResult =\n componentWillLoad && componentWillLoad.call(this);\n addStylesheet(this);\n return willLoadResult;\n };\n\n target.componentWillRender = function () {\n const willRenderResult =\n componentWillRender && componentWillRender.call(this);\n addStylesheet(this);\n return willRenderResult;\n };\n } else {\n target.render = function () {\n const cssText =\n typeof this[propertyKey] === 'function'\n ? this[propertyKey]()\n : this[propertyKey];\n let renderedNode: VNode = render.call(this);\n\n if (isHost(renderedNode)) {\n appendStyleToHost(renderedNode, target.constructor.name, cssText);\n } else {\n renderedNode = <Host>{renderedNode}</Host>;\n\n if (!('attachShadow' in HTMLElement.prototype)) {\n appendStyleToHost(renderedNode, target.constructor.name, cssText);\n } else {\n if (!target.__constructableStyle) {\n const style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n style.setAttribute(\n 'constructible-style',\n target.constructor.name\n );\n style.innerHTML = cssText;\n target.__constructableStyle = style;\n document.head.appendChild(style);\n }\n }\n }\n\n return renderedNode;\n };\n }\n };\n}\n\nfunction appendStyleToHost(node, targetName, cssText) {\n (getHostChildren(node) || []).push(\n <style type=\"text/css\" constructible-style={targetName}>\n {cssText}\n </style>\n );\n}\n\nfunction getOrCreateStylesheet(\n instance: ComponentInterface,\n target: ComponentInterface,\n cssText: string,\n opts: ConstructibleStyleOptions\n): CSSStyleSheet {\n if (!target.__constructableStyle) {\n target.__constructableStyle = {};\n }\n\n const key = instance[opts.cacheKeyProperty];\n\n if (!target.__constructableStyle[key]) {\n target.__constructableStyle[key] = new CSSStyleSheet();\n target.__constructableStyle[key].replace(cssText);\n }\n\n return target.__constructableStyle[key];\n}\n\nfunction isHost(node): boolean {\n for (const prop in node) {\n if (prop in node) {\n if (node[prop] === Host) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction getHostChildren(node): Array<VNode> {\n for (const prop in node) {\n if (prop in node) {\n if (Array.isArray(node[prop])) {\n return node[prop];\n }\n }\n }\n}\n\nexport interface ConstructibleStyleOptions {\n /**\n * Set this in case an instance of a component could produce different styles based on variables.\n * This will ensure that you get new styles for each mode.\n * @example\n```\n@Prop() mode: string;\n@ConstructableStyle({ cacheKeyProperty: \"mode\" }) style = `.bg { background: url('assets/${ this.mode }/bg.png'); }`;\n```\n */\n cacheKeyProperty?: string;\n}\n","@use 'sass:math';\n@use '../../global/style/nano-theme/tokens/base';\n\n:host {\n /**\n * @prop --grid-col-gap: gap between all columns. Defaults to theme's global padding\n * @prop --grid-row-gap: gap between all rows. Defaults to theme's global padding\n */\n\n --grid-col-gap: #{base.$spacing-medium};\n --grid-row-gap: #{base.$spacing-medium};\n --current-grid-size: \"grid size: s\";\n\n container-type: inline-size;\n display: block;\n\n .grid {\n display: grid;\n gap: var(--grid-row-gap) var(--grid-col-gap);\n block-size: inherit;\n min-block-size: inherit;\n }\n}\n\n:host([show-helper]:not([show-helper='false'])) {\n position: relative;\n\n .grid--helper {\n position: absolute;\n inset: 0;\n pointer-events: none;\n display: grid !important;\n overflow: hidden;\n\n &::before {\n content: var(--current-grid-size);\n font-size: 30px;\n position: absolute;\n inline-size: 100%;\n inset-inline-start: 0;\n text-align: center;\n inset-block-start: 50%;\n transform: translateY(-50%);\n color: rgb(0 0 0 / 20%);\n text-transform: uppercase;\n z-index: 99;\n pointer-events: none;\n }\n }\n\n .grid__helper-item {\n background: hsl(204deg 80% 72% / 25%);\n block-size: 100vh;\n }\n}\n","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",":host {\n /**\n * @prop --padding: padding around any content. Only relevent on `<nano-img background>`\n */\n --padding: 0;\n\n display: inline-block;\n object-fit: cover;\n object-position: center;\n background-size: cover;\n background-position: center;\n\n * {\n border-radius: inherit;\n }\n}\n\n:host([background]:not([background='false'])) {\n display: block;\n}\n\n.img {\n position: relative;\n object-fit: inherit;\n object-position: inherit;\n background-color: inherit;\n background-position: inherit;\n background-size: inherit;\n background-origin: inherit;\n background-attachment: inherit;\n background-repeat: inherit;\n flex: 1 1 100%;\n display: flex;\n flex-direction: column;\n min-block-size: inherit;\n min-inline-size: inherit;\n block-size: inherit;\n inline-size: inherit;\n max-block-size: inherit;\n max-inline-size: inherit;\n aspect-ratio: inherit;\n}\n\n.img__loader,\n.img__observer {\n position: absolute;\n inset: 0;\n block-size: 100%;\n inline-size: 100%;\n z-index: -1;\n}\n\n.img__image,\n.img__bg {\n border-radius: inherit;\n display: block;\n opacity: 0;\n transition: 0.5s ease opacity, 0.3s ease filter 0.4s;\n filter: blur(5px);\n flex: 1;\n\n &.loaded {\n opacity: 1;\n filter: blur(0);\n\n @media not all and (resolution >= 0.001dpcm) {\n @supports (-webkit-appearance: none) {\n filter: blur(0);\n }\n }\n }\n}\n\n.img__image {\n object-fit: inherit;\n object-position: inherit;\n min-block-size: inherit;\n min-inline-size: inherit;\n block-size: inherit;\n inline-size: inherit;\n max-block-size: inherit;\n max-inline-size: inherit;\n aspect-ratio: inherit;\n\n &.hide {\n visibility: hidden;\n\n &.no-height {\n block-size: 1px;\n position: absolute;\n z-index: -1;\n }\n }\n}\n\n.img__bg {\n background-color: inherit;\n background-position: inherit;\n background-size: inherit;\n background-origin: inherit;\n background-attachment: inherit;\n background-repeat: inherit;\n overflow: auto;\n padding: var(--padding);\n\n &.no-height {\n position: absolute;\n inset: 0;\n }\n}\n","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"],"version":3}
@@ -5,9 +5,10 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-b6fa04fa.js');
8
+ const index = require('./index-615cdb64.js');
9
+ const renderer = require('./renderer-cd8b6098.js');
9
10
 
10
- const heroCss = ":host {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n:host {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n:host {\n /**\n * @prop --nano-loader-base: Base colour of nano-skeleton. Default depends on theme;\n * @prop --nano-loader-tint: Tint colour of nano-skeleton. Default depends on theme;\n * @prop --theme-color: Text color. Default depends on theme;\n * @prop --theme-tint-color: Color used for bread crumbs and icons. Defaults to #90c6e7;\n * @prop --scrim-color: Color of the gradient covering the background. Default depends on theme;\n * @prop --scrim-direction: Direction of the gradient covering the background. Default what content slots are present;\n * @prop --scrim-opacity-from: Starting opactiy of the gradient covering the background. Default .25;\n * @prop --scrim-opacity-to: Final opactiy of the gradient covering the background. Default depends on `theme`;\n * @prop --quote-size: Font size of the quote. Defaults to 1.3em and grows to 3rem on the xl breakpoint;\n */\n --nano-loader-base: #4a4a4a;\n --nano-loader-tint: #7d7d7d;\n --theme-color: #fff;\n --theme-tint-color: #90c6e7;\n --scrim-color: 0 0 0;\n --scrim-direction: 90deg;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 0.7;\n --padding: 0;\n --quote-size: 1.3rem;\n color: var(--theme-color);\n display: block;\n container-type: inline-size;\n}\n\n:host([theme=light]) {\n --nano-loader-base: #fff;\n --nano-loader-tint: white;\n --theme-color: #4a4a4a;\n --scrim-color: 255 255 255;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 1;\n --scrim-direction: 270deg;\n color: var(--theme-color);\n}\n:host([theme=light]) .hero__primary-content {\n --color: #4a4a4a;\n}\n\n.hero {\n position: relative;\n}\n@container (min-width: 800px) {\n .hero {\n --quote-size: 3rem;\n }\n}\n.hero--rtl {\n --scrim-direction: 270deg;\n}\n.hero--secondary:not(.hero--iconbox) {\n --scrim-direction: 0deg;\n}\n.hero__bg-wrap {\n overflow: hidden;\n}\n.hero__bg-slot {\n position: absolute;\n inset: 0;\n}\n.hero__ctas {\n display: flex;\n justify-content: flex-end;\n padding-block: 32px 0;\n padding-inline: 32px;\n margin-block-end: -64px;\n position: relative;\n z-index: 1;\n}\n@media (width <= 52em) {\n .hero__ctas {\n display: none;\n }\n}\n@media (width <= 58em) {\n .hero__ctas {\n margin-block-end: -48px;\n }\n}\n.hero__ctas ::slotted(a.button[slot=secondary-ctas]) {\n padding-inline: 0.5rem !important;\n font-size: 0.875rem !important;\n margin-block: 0 !important;\n margin-inline: 0.25rem !important;\n}\n.hero__img {\n display: block;\n --padding: inherit;\n}\n.hero__breadcrumbs {\n display: none;\n margin-block: 20px 0;\n margin-inline: 14px;\n line-height: 14px;\n}\n.hero--breadcrumb .hero__breadcrumbs {\n display: block;\n}\n@container (min-width: 800px) {\n .hero__breadcrumbs {\n margin-block: 0;\n margin-inline: 50px;\n max-inline-size: 50%;\n }\n}\n@container (min-width: 900px) {\n .hero__breadcrumbs {\n margin-block: 0;\n margin-inline: 83px;\n }\n}\n.hero__breadcrumbs ::slotted(*[slot=breadcrumb]) {\n font-size: 0.85rem;\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 600;\n font-stretch: 125%;\n display: inline-block;\n margin-block-end: 16px;\n position: relative;\n z-index: 2;\n}\n.hero--hasbg .hero__breadcrumbs ::slotted(*[slot=breadcrumb]) {\n text-shadow: 1px 1px rgba(0, 0, 0, 0.15);\n}\n.hero__breadcrumbs ::slotted(a[slot=breadcrumb]) {\n color: var(--theme-tint-color) !important;\n cursor: pointer;\n}\n.hero__breadcrumbs ::slotted(.slash[slot=breadcrumb]) {\n color: var(--theme-color);\n position: relative;\n margin-block: 0;\n margin-inline: 0.5rem;\n display: inline-block;\n}\n.hero__scrim {\n position: absolute;\n inset: 0;\n z-index: 0;\n background: linear-gradient(var(--scrim-direction), rgb(var(--scrim-color)/var(--scrim-opacity-from)) 0%, rgb(var(--scrim-color)/var(--scrim-opacity-to)) 100%);\n}\n.hero--scrim .hero__scrim {\n background: none;\n}\n.hero__content {\n max-inline-size: 1440px;\n display: block;\n --grid-row-gap: 0;\n margin-block: 0;\n margin-inline: auto;\n position: relative;\n}\n@container (min-width: 800px) {\n .hero__content {\n margin-block: 50px 0 !important;\n max-inline-size: 1540px !important;\n }\n}\n@container (min-width: 900px) {\n .hero__content {\n margin-block: 83px 0 !important;\n max-inline-size: 1606px !important;\n }\n}\n.hero__primary {\n margin: 16px;\n}\n.hero--breadcrumb .hero__primary {\n margin-block: 0;\n margin-inline: 16px;\n}\n.hero--backbtn .hero__primary {\n margin-inline-start: 0;\n}\n.hero__primary ::slotted(nano-icon-button[slot=back-btn]) {\n font-size: 2rem;\n}\n@container (min-width: 800px) {\n .hero__primary {\n margin-block: 0 50px !important;\n margin-inline: 50px 0 !important;\n }\n .hero__primary ::slotted(nano-icon-button[slot=back-btn]) {\n margin-block: 0 !important;\n margin-inline: -3rem 0 !important;\n }\n}\n@container (min-width: 900px) {\n .hero__primary {\n margin-block: 0 83px !important;\n margin-inline: 83px 0 !important;\n }\n}\n.hero__primary-content {\n max-inline-size: 45rem;\n --color: #fff;\n display: flex;\n}\n.hero--backbtn .hero__primary-content > div {\n padding-block: 10px 0;\n padding-inline: 0;\n}\n.hero__primary-content ::slotted(h1[slot=primary-content]) {\n line-height: 26px !important;\n margin-block: 0 18px !important;\n font-size: 2rem !important;\n}\n@container (min-width: 800px) {\n .hero__primary-content ::slotted(h1[slot=primary-content]) {\n line-height: 31px !important;\n margin-block-end: 30px !important;\n }\n .hero__primary-content ::slotted(.button[slot=primary-content]) {\n margin-block-start: 20px !important;\n }\n}\n.hero__secondary {\n display: none;\n block-size: 100%;\n padding-block: 0 20px;\n padding-inline: 14px;\n}\n.hero--secondary .hero__secondary {\n display: flex;\n align-items: center;\n}\n@container (min-width: 800px) {\n .hero__secondary {\n padding-block: 0 50px;\n padding-inline: 50px;\n justify-content: flex-end;\n }\n}\n@container (min-width: 900px) {\n .hero__secondary {\n padding-block: 0 83px;\n padding-inline: 83px;\n }\n}\n.hero__icon-box {\n background: rgba(0, 0, 0, 0.7);\n padding: 24px;\n inline-size: 100%;\n margin-block-end: auto;\n display: flex;\n flex-direction: column;\n color: white;\n}\n@container (min-width: 800px) {\n .hero__icon-box {\n max-inline-size: 410px;\n flex: 0 1 410px;\n }\n}\n.hero__icon-box ::slotted([slot=icon-box-item]) {\n --nano-color-base: var(--theme-tint-color);\n --nano-icon-size: 32px;\n --nano-icon-margin-end: 20px;\n display: flex;\n align-items: center;\n font-size: 0.8125rem;\n margin-block-end: 20px;\n}\n.hero__icon-box ::slotted(.last[slot=icon-box-item]) {\n margin-block-end: 0;\n}\n.hero__quote-content {\n margin-block-start: auto;\n text-align: center;\n inline-size: 100%;\n}\n@container (min-width: 800px) {\n .hero__quote-content {\n max-inline-size: 500px;\n flex: 0 1 500px;\n text-align: initial;\n }\n}\n.hero__quote::before, .hero__quote::after {\n content: '\"';\n font-size: var(--quote-size);\n font-weight: 600;\n font-style: italic;\n line-height: 0;\n color: #abb6b8;\n display: inline;\n position: relative;\n}\n.hero__quote ::slotted([slot=quote]) {\n font-size: var(--quote-size);\n font-weight: 200;\n display: inline;\n}\n.hero__quote-author {\n text-align: end;\n font-size: 1rem;\n opacity: 0.8;\n}\n@container (min-width: 800px) {\n .hero--sub .hero__content {\n margin-block-start: 40px;\n }\n .hero--sub .hero__content .hero__primary {\n margin-block: 0 40px;\n margin-inline: 50px 0;\n }\n .hero--sub .hero__content .hero__secondary {\n padding-block: 0 50px;\n padding-inline: 40px 50px;\n }\n .hero--sub .hero__content ::slotted(.button[slot=primary-content]) {\n margin-block-start: 8px !important;\n }\n .hero--sub .hero__content ::slotted(h1[slot=primary-content]) {\n margin-block-end: 18px !important;\n }\n}\n@container (min-width: 900px) {\n .hero--sub .hero__content .hero__primary {\n margin-block: 0 40px;\n margin-inline: 83px 0;\n }\n .hero--sub .hero__content .hero__secondary {\n padding-block: 0 83px;\n padding-inline: 40px 83px;\n }\n}";
11
+ const heroCss = ":host {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n:host {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n:host {\n /**\n * @prop --nano-loader-base: Base colour of nano-skeleton. Default depends on theme;\n * @prop --nano-loader-tint: Tint colour of nano-skeleton. Default depends on theme;\n * @prop --theme-color: Text color. Default depends on theme;\n * @prop --theme-tint-color: Color used for bread crumbs and icons. Defaults to #90c6e7;\n * @prop --scrim-color: Color of the gradient covering the background. Default depends on theme;\n * @prop --scrim-direction: Direction of the gradient covering the background. Default what content slots are present;\n * @prop --scrim-opacity-from: Starting opactiy of the gradient covering the background. Default .25;\n * @prop --scrim-opacity-to: Final opactiy of the gradient covering the background. Default depends on `theme`;\n * @prop --quote-size: Font size of the quote. Defaults to 1.3em and grows to 3rem on the xl breakpoint;\n */\n --nano-loader-base: #4a4a4a;\n --nano-loader-tint: #7d7d7d;\n --theme-color: #fff;\n --theme-tint-color: #90c6e7;\n --scrim-color: 0 0 0;\n --scrim-direction: 90deg;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 0.7;\n --padding: 0;\n --quote-size: 1.3rem;\n color: var(--theme-color);\n display: block;\n container-type: inline-size;\n}\n\n:host([theme=light]) {\n --nano-loader-base: #fff;\n --nano-loader-tint: white;\n --theme-color: #4a4a4a;\n --scrim-color: 255 255 255;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 1;\n --scrim-direction: 270deg;\n color: var(--theme-color);\n}\n:host([theme=light]) .hero__primary-content {\n --color: #4a4a4a;\n}\n\n.hero {\n position: relative;\n}\n@container (min-width: 800px) {\n .hero {\n --quote-size: 3rem;\n }\n}\n.hero--rtl {\n --scrim-direction: 270deg;\n}\n.hero--secondary:not(.hero--iconbox) {\n --scrim-direction: 0deg;\n}\n.hero__bg-wrap {\n overflow: hidden;\n}\n.hero__bg-slot {\n position: absolute;\n inset: 0;\n}\n.hero__ctas {\n display: flex;\n justify-content: flex-end;\n padding-block: 32px 0;\n padding-inline: 32px;\n margin-block-end: -64px;\n position: relative;\n z-index: 1;\n}\n@media (width <= 52em) {\n .hero__ctas {\n display: none;\n }\n}\n@media (width <= 58em) {\n .hero__ctas {\n margin-block-end: -48px;\n }\n}\n.hero__ctas ::slotted(a.button[slot=secondary-ctas]) {\n padding-inline: 0.5rem !important;\n font-size: 0.875rem !important;\n margin-block: 0 !important;\n margin-inline: 0.25rem !important;\n}\n.hero__img {\n display: block;\n --padding: inherit;\n}\n.hero__breadcrumbs {\n display: none;\n margin-block: 20px 0;\n margin-inline: 14px;\n line-height: 14px;\n}\n.hero--breadcrumb .hero__breadcrumbs {\n display: block;\n}\n@container (min-width: 800px) {\n .hero__breadcrumbs {\n margin-block: 0;\n margin-inline: 50px;\n max-inline-size: 50%;\n }\n}\n@container (min-width: 900px) {\n .hero__breadcrumbs {\n margin-block: 0;\n margin-inline: 83px;\n }\n}\n.hero__breadcrumbs ::slotted(*[slot=breadcrumb]) {\n font-size: 0.85rem;\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 600;\n font-stretch: 125%;\n display: inline-block;\n margin-block-end: 16px;\n position: relative;\n z-index: 2;\n}\n.hero--hasbg .hero__breadcrumbs ::slotted(*[slot=breadcrumb]) {\n text-shadow: 1px 1px rgba(0, 0, 0, 0.15);\n}\n.hero__breadcrumbs ::slotted(a[slot=breadcrumb]) {\n color: var(--theme-tint-color) !important;\n cursor: pointer;\n}\n.hero__breadcrumbs ::slotted(.slash[slot=breadcrumb]) {\n color: var(--theme-color);\n position: relative;\n margin-block: 0;\n margin-inline: 0.5rem;\n display: inline-block;\n}\n.hero__scrim {\n position: absolute;\n inset: 0;\n z-index: 0;\n background: linear-gradient(var(--scrim-direction), rgb(var(--scrim-color)/var(--scrim-opacity-from)) 0%, rgb(var(--scrim-color)/var(--scrim-opacity-to)) 100%);\n}\n.hero--scrim .hero__scrim {\n background: none;\n}\n.hero__content {\n max-inline-size: 1440px;\n display: block;\n --grid-row-gap: 0;\n margin-block: 0;\n margin-inline: auto;\n position: relative;\n}\n@container (min-width: 800px) {\n .hero__content {\n margin-block: 50px 0 !important;\n max-inline-size: 1540px !important;\n }\n}\n@container (min-width: 900px) {\n .hero__content {\n margin-block: 83px 0 !important;\n max-inline-size: 1606px !important;\n }\n}\n.hero__primary {\n margin: 16px;\n}\n.hero--breadcrumb .hero__primary {\n margin-block: 0;\n margin-inline: 16px;\n}\n.hero--backbtn .hero__primary {\n margin-inline-start: 0;\n}\n.hero__primary ::slotted(.nano-icon-button[slot=back-btn]) {\n font-size: 2rem;\n}\n@container (min-width: 800px) {\n .hero__primary {\n margin-block: 0 50px !important;\n margin-inline: 50px 0 !important;\n }\n .hero__primary ::slotted(.nano-icon-button[slot=back-btn]) {\n margin-block: 0 !important;\n margin-inline: -3rem 0 !important;\n }\n}\n@container (min-width: 900px) {\n .hero__primary {\n margin-block: 0 83px !important;\n margin-inline: 83px 0 !important;\n }\n}\n.hero__primary-content {\n max-inline-size: 45rem;\n --color: #fff;\n display: flex;\n}\n.hero--backbtn .hero__primary-content > div {\n padding-block: 10px 0;\n padding-inline: 0;\n}\n.hero__primary-content ::slotted(h1[slot=primary-content]) {\n line-height: 26px !important;\n margin-block: 0 18px !important;\n font-size: 2rem !important;\n}\n@container (min-width: 800px) {\n .hero__primary-content ::slotted(h1[slot=primary-content]) {\n line-height: 31px !important;\n margin-block-end: 30px !important;\n }\n .hero__primary-content ::slotted(.button[slot=primary-content]) {\n margin-block-start: 20px !important;\n }\n}\n.hero__secondary {\n display: none;\n block-size: 100%;\n padding-block: 0 20px;\n padding-inline: 14px;\n}\n.hero--secondary .hero__secondary {\n display: flex;\n align-items: center;\n}\n@container (min-width: 800px) {\n .hero__secondary {\n padding-block: 0 50px;\n padding-inline: 50px;\n justify-content: flex-end;\n }\n}\n@container (min-width: 900px) {\n .hero__secondary {\n padding-block: 0 83px;\n padding-inline: 83px;\n }\n}\n.hero__icon-box {\n background: rgba(0, 0, 0, 0.7);\n padding: 24px;\n inline-size: 100%;\n margin-block-end: auto;\n display: flex;\n flex-direction: column;\n color: white;\n}\n@container (min-width: 800px) {\n .hero__icon-box {\n max-inline-size: 410px;\n flex: 0 1 410px;\n }\n}\n.hero__icon-box ::slotted([slot=icon-box-item]) {\n --nano-color-base: var(--theme-tint-color);\n --nano-icon-size: 32px;\n --nano-icon-margin-end: 20px;\n display: flex;\n align-items: center;\n font-size: 0.8125rem;\n margin-block-end: 20px;\n}\n.hero__icon-box ::slotted(.last[slot=icon-box-item]) {\n margin-block-end: 0;\n}\n.hero__quote-content {\n margin-block-start: auto;\n text-align: center;\n inline-size: 100%;\n}\n@container (min-width: 800px) {\n .hero__quote-content {\n max-inline-size: 500px;\n flex: 0 1 500px;\n text-align: initial;\n }\n}\n.hero__quote::before, .hero__quote::after {\n content: '\"';\n font-size: var(--quote-size);\n font-weight: 600;\n font-style: italic;\n line-height: 0;\n color: #abb6b8;\n display: inline;\n position: relative;\n}\n.hero__quote ::slotted([slot=quote]) {\n font-size: var(--quote-size);\n font-weight: 200;\n display: inline;\n}\n.hero__quote-author {\n text-align: end;\n font-size: 1rem;\n opacity: 0.8;\n}\n@container (min-width: 800px) {\n .hero--sub .hero__content {\n margin-block-start: 40px;\n }\n .hero--sub .hero__content .hero__primary {\n margin-block: 0 40px;\n margin-inline: 50px 0;\n }\n .hero--sub .hero__content .hero__secondary {\n padding-block: 0 50px;\n padding-inline: 40px 50px;\n }\n .hero--sub .hero__content ::slotted(.button[slot=primary-content]) {\n margin-block-start: 8px !important;\n }\n .hero--sub .hero__content ::slotted(h1[slot=primary-content]) {\n margin-block-end: 18px !important;\n }\n}\n@container (min-width: 900px) {\n .hero--sub .hero__content .hero__primary {\n margin-block: 0 40px;\n margin-inline: 83px 0;\n }\n .hero--sub .hero__content .hero__secondary {\n padding-block: 0 83px;\n padding-inline: 40px 83px;\n }\n}";
11
12
  const NanoHeroStyle0 = heroCss;
12
13
 
13
14
  const Hero = class {
@@ -91,16 +92,16 @@ const Hero = class {
91
92
  }
92
93
  HeroContent = () => {
93
94
  return [
94
- !this.hasIconBox && this.hasCtas ? (index.h("div", { class: "hero__ctas" }, index.h("slot", { name: "secondary-ctas" }))) : (''),
95
- index.h("div", { class: "hero__scrim" }, index.h("slot", { name: "scrim" })),
96
- index.h("nano-grid", { class: "hero__content", xlCols: 2, xlSize: this.largeScreenBP }, index.h("div", { "grid-states": "xl-col-span-2" }, index.h("div", { class: "hero__breadcrumbs" }, index.h("slot", { name: "breadcrumb" }))), index.h("div", { "grid-states": this.hasSecondaryContent
95
+ !this.hasIconBox && this.hasCtas ? (renderer.h("div", { class: "hero__ctas" }, renderer.h("slot", { name: "secondary-ctas" }))) : (''),
96
+ renderer.h("div", { class: "hero__scrim" }, renderer.h("slot", { name: "scrim" })),
97
+ renderer.h("nano-grid", { class: "hero__content", xlCols: 2, xlSize: this.largeScreenBP }, renderer.h("div", { "grid-states": "xl-col-span-2" }, renderer.h("div", { class: "hero__breadcrumbs" }, renderer.h("slot", { name: "breadcrumb" }))), renderer.h("div", { "grid-states": this.hasSecondaryContent
97
98
  ? 'xl-col-span-1 xl-col-start-1 xl-row-start-2'
98
- : 'xl-col-span-2 xl-col-start-1 xl-row-start-2' }, index.h("div", { class: "hero__primary" }, index.h("div", { class: "hero__primary-content" }, index.h("slot", { name: "back-btn" }), index.h("div", null, index.h("slot", { name: "primary-content" }))))), this.hasSecondaryContent && (index.h("div", { "grid-states": "xl-col-span-1 xl-col-start-2 xl-row-start-2" }, index.h("div", { class: "hero__secondary" }, index.h("slot", { name: "secondary-content" }), this.hasIconBox && (index.h("div", { class: "hero__icon-box" }, index.h("slot", { name: "icon-box" }), index.h("slot", { name: "icon-box-item" }))), this.hasQuote && (index.h("div", { class: "hero__quote-content" }, index.h("span", { class: "hero__quote" }, index.h("slot", { name: "quote" })), index.h("div", { class: "hero__quote-author" }, index.h("slot", { name: "quote-author" })))))))),
99
+ : 'xl-col-span-2 xl-col-start-1 xl-row-start-2' }, renderer.h("div", { class: "hero__primary" }, renderer.h("div", { class: "hero__primary-content" }, renderer.h("slot", { name: "back-btn" }), renderer.h("div", null, renderer.h("slot", { name: "primary-content" }))))), this.hasSecondaryContent && (renderer.h("div", { "grid-states": "xl-col-span-1 xl-col-start-2 xl-row-start-2" }, renderer.h("div", { class: "hero__secondary" }, renderer.h("slot", { name: "secondary-content" }), this.hasIconBox && (renderer.h("div", { class: "hero__icon-box" }, renderer.h("slot", { name: "icon-box" }), renderer.h("slot", { name: "icon-box-item" }))), this.hasQuote && (renderer.h("div", { class: "hero__quote-content" }, renderer.h("span", { class: "hero__quote" }, renderer.h("slot", { name: "quote" })), renderer.h("div", { class: "hero__quote-author" }, renderer.h("slot", { name: "quote-author" })))))))),
99
100
  ];
100
101
  };
101
102
  render() {
102
103
  const rtl = this.host.dir === 'rtl' || this.host.ownerDocument.dir === 'rtl';
103
- return (index.h(index.Host, { key: '50eee29214f21f5278267bcc742170347e7cf397' }, index.h("div", { key: '8a2ab272547fd2a3627c039e9666a24b6de223c9', class: {
104
+ return (renderer.h(index.Host, { key: '3ea826a0e3c29d25595e2ed95b36398980193ade', class: "nano-hero" }, renderer.h("div", { key: '09b08515b8bd244eef354df64e76814ec7fbda6d', class: {
104
105
  hero: true,
105
106
  'hero--light': this.theme === 'light',
106
107
  'hero--secondary': this.hasSecondaryContent,
@@ -111,9 +112,9 @@ const Hero = class {
111
112
  'hero--hasbg': this.hasBg,
112
113
  'hero--backbtn': this.hasBackBtn,
113
114
  'hero--sub': this.level === 'sub',
114
- } }, index.h("div", { key: '8c17aac8b8653355e4ce97fa119d86e0cce518ae', class: "hero__bg-wrap" }, !!this.imgSrc && (index.h("nano-img", { key: '89df34f9d693a35df5f2092ef3232772caa860a1', class: "hero__img", lazy: false, background: true, srcSet: this.imgSrcSet, src: this.imgSrc }, index.h(this.HeroContent, { key: 'dc4d9b0027cfc96f13ff7757e175da523b3eb100' }))), !this.imgSrc && [
115
- index.h("div", { key: '1e760a079ebcaab5272a10fdb7b70aa3622ce0db', class: "hero__bg-slot" }, index.h("slot", { key: '3a73a260e528956adc797cdd39bb521c54db7b96', name: "background" })),
116
- index.h(this.HeroContent, { key: 'dd458de1ca33a34131445390b95bf63bb27dfeba' }),
115
+ } }, renderer.h("div", { key: '46b5daff7c9c768c5354b54a1dd9f8ca8b9fc100', class: "hero__bg-wrap" }, !!this.imgSrc && (renderer.h("nano-img", { key: '0bc5e85862297cbd10bb4953c545eaccfde46d34', class: "hero__img", lazy: false, background: true, srcSet: this.imgSrcSet, src: this.imgSrc }, renderer.h(this.HeroContent, { key: '96a6199bb1c851b70cbc146b25d722f3c7c7cfbb' }))), !this.imgSrc && [
116
+ renderer.h("div", { key: 'b34f8983859f55762fddd7ebadd95b2db6d96f7a', class: "hero__bg-slot" }, renderer.h("slot", { key: 'df7263acd2610a142fe492555b77e6d24bd382a4', name: "background" })),
117
+ renderer.h(this.HeroContent, { key: 'c02cbdf49f60dc755c3103f84df6e1de82b3a7ce' }),
117
118
  ]))));
118
119
  }
119
120
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"nano-hero.entry.cjs.js","mappings":";;;;;;;;;AAAA,MAAM,OAAO,GAAG,m3QAAm3Q,CAAC;AACp4Q,uBAAe,OAAO;;MC6BT,IAAI;;;;IACP,EAAE,CAAoB;;IAIrB,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;;QAEd,IAAI,CAAC,WAAW;aACb,MAAM,CACL,CAAC,KAAK,KACJ,KAAK,CAAC,OAAO,KAAK,GAAG;YACrB,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CACxD;aACA,OAAO,CAAC,CAAC,KAAK;YACb,KAAK,CAAC,kBAAkB,CACtB,UAAU,EACV,gDAAgD,CACjD,CAAC;SACH,CAAC,CAAC;KACN;IACQ,YAAY,CAAY;IAEjC,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,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;KACzE;;IAGO,MAAM,CAAU;;;IAIhB,SAAS,GAAY,IAAI,CAAC;;IAG1B,aAAa,GAAW,GAAG,CAAC;;IAG5B,KAAK,GAAqB,MAAM,CAAC;;IAGjC,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,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,gBAAgB,CAAC,MACzC,IAAI,CAAC,qBAAqB,EAAE,CAC7B,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5C;;IAIO,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;KAC7D;;IAID,oBAAoB;QAClB,IAAI,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;KACnC;IAED,gBAAgB;QACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEO,WAAW,GAAG;QACpB,OAAO;YACL,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,IAC9BA,iBAAK,KAAK,EAAC,YAAY,IACrBA,kBAAM,IAAI,EAAC,gBAAgB,GAAG,CAC1B,KAEN,EAAE,CACH;YACDA,iBAAK,KAAK,EAAC,aAAa,IACtBA,kBAAM,IAAI,EAAC,OAAO,GAAG,CACjB;YACNA,uBAAW,KAAK,EAAC,eAAe,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,IACpEA,gCAAiB,eAAe,IAC9BA,iBAAK,KAAK,EAAC,mBAAmB,IAC5BA,kBAAM,IAAI,EAAC,YAAY,GAAG,CACtB,CACF,EACNA,gCAEI,IAAI,CAAC,mBAAmB;sBACpB,6CAA6C;sBAC7C,6CAA6C,IAGnDA,iBAAK,KAAK,EAAC,eAAe,IACxBA,iBAAK,KAAK,EAAC,uBAAuB,IAChCA,kBAAM,IAAI,EAAC,UAAU,GAAG,EACxBA,qBACEA,kBAAM,IAAI,EAAC,iBAAiB,GAAG,CAC3B,CACF,CACF,CACF,EACL,IAAI,CAAC,mBAAmB,KACvBA,gCAAiB,6CAA6C,IAC5DA,iBAAK,KAAK,EAAC,iBAAiB,IAC1BA,kBAAM,IAAI,EAAC,mBAAmB,GAAG,EAChC,IAAI,CAAC,UAAU,KACdA,iBAAK,KAAK,EAAC,gBAAgB,IACzBA,kBAAM,IAAI,EAAC,UAAU,GAAG,EACxBA,kBAAM,IAAI,EAAC,eAAe,GAAG,CACzB,CACP,EACA,IAAI,CAAC,QAAQ,KACZA,iBAAK,KAAK,EAAC,qBAAqB,IAC9BA,kBAAM,KAAK,EAAC,aAAa,IACvBA,kBAAM,IAAI,EAAC,OAAO,GAAG,CAChB,EACPA,iBAAK,KAAK,EAAC,oBAAoB,IAC7BA,kBAAM,IAAI,EAAC,cAAc,GAAG,CACxB,CACF,CACP,CACG,CACF,CACP,CACS;SACb,CAAC;KACH,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,QACEA,QAACC,UAAI,uDACHD,kEACE,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI;gBACV,aAAa,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;gBACrC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB;gBAC3C,eAAe,EAAE,IAAI,CAAC,UAAU;gBAChC,WAAW,EAAE,GAAG;gBAChB,aAAa,EAAE,IAAI,CAAC,QAAQ;gBAC5B,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;gBAC7C,aAAa,EAAE,IAAI,CAAC,KAAK;gBACzB,eAAe,EAAE,IAAI,CAAC,UAAU;gBAChC,WAAW,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;aAClC,IAEDA,kEAAK,KAAK,EAAC,eAAe,IACvB,CAAC,CAAC,IAAI,CAAC,MAAM,KACZA,uEACE,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,KAAK,EACX,UAAU,QACV,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,GAAG,EAAE,IAAI,CAAC,MAAM,IAEhBA,QAAC,IAAI,CAAC,WAAW,sDAAG,CACX,CACZ,EACA,CAAC,IAAI,CAAC,MAAM,IAAI;YACfA,kEAAK,KAAK,EAAC,eAAe,IACxBA,mEAAM,IAAI,EAAC,YAAY,GAAG,CACtB;YACNA,QAAC,IAAI,CAAC,WAAW,sDAAG;SACrB,CACG,CACF,CACD,EACP;KACH;;;;;;;;;;","names":["h","Host"],"sources":["src/components/hero/hero.scss?tag=nano-hero&encapsulation=shadow","src/components/hero/hero.tsx"],"sourcesContent":["@use 'sass:map';\n@use '../../global/style/nano-theme/tokens/colours';\n\n\n:host {\n /**\n * @prop --nano-loader-base: Base colour of nano-skeleton. Default depends on theme;\n * @prop --nano-loader-tint: Tint colour of nano-skeleton. Default depends on theme;\n * @prop --theme-color: Text color. Default depends on theme;\n * @prop --theme-tint-color: Color used for bread crumbs and icons. Defaults to #{map.get(colours.$colors, lightblue)};\n * @prop --scrim-color: Color of the gradient covering the background. Default depends on theme;\n * @prop --scrim-direction: Direction of the gradient covering the background. Default what content slots are present;\n * @prop --scrim-opacity-from: Starting opactiy of the gradient covering the background. Default .25;\n * @prop --scrim-opacity-to: Final opactiy of the gradient covering the background. Default depends on `theme`;\n * @prop --quote-size: Font size of the quote. Defaults to 1.3em and grows to 3rem on the xl breakpoint;\n */\n\n --nano-loader-base: #{map.get(colours.$colors, black)};\n --nano-loader-tint: #{lighten(map.get(colours.$colors, black), 20%)};\n --theme-color: #{map.get(colours.$colors, white)};\n --theme-tint-color: #{map.get(colours.$colors, lightblue)};\n --scrim-color: 0 0 0;\n --scrim-direction: 90deg;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 0.7;\n --padding: 0;\n --quote-size: 1.3rem;\n\n color: var(--theme-color);\n display: block;\n container-type: inline-size;\n}\n\n:host([theme='light']) {\n --nano-loader-base: #{map.get(colours.$colors, white)};\n --nano-loader-tint: #{lighten(map.get(colours.$colors, white), 20%)};\n --theme-color: #{map.get(colours.$colors, black)};\n --scrim-color: 255 255 255;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 1;\n --scrim-direction: 270deg;\n\n color: var(--theme-color);\n\n .hero__primary-content {\n --color: #{map.get(colours.$colors, black)};\n }\n}\n\n.hero {\n position: relative;\n\n @container (min-width: 800px) {\n --quote-size: 3rem;\n }\n\n &--rtl {\n --scrim-direction: 270deg;\n }\n\n &--secondary:not(.hero--iconbox) {\n --scrim-direction: 0deg;\n }\n\n &__bg-wrap {\n overflow: hidden;\n }\n\n &__bg-slot {\n position: absolute;\n inset: 0;\n }\n\n &__ctas {\n @media (width <= 52em) {\n display: none;\n }\n\n @media (width <= 58em) {\n margin-block-end: -48px;\n }\n\n display: flex;\n justify-content: flex-end;\n padding-block: 32px 0;\n padding-inline: 32px;\n margin-block-end: -64px;\n position: relative;\n z-index: 1;\n\n ::slotted(a.button[slot='secondary-ctas']) {\n padding-inline: 0.5rem !important;\n font-size: 0.875rem !important;\n margin-block: 0 !important;\n margin-inline: 0.25rem !important;\n }\n }\n\n &__img {\n display: block;\n\n --padding: inherit;\n }\n\n &__breadcrumbs {\n display: none;\n margin-block: 20px 0;\n margin-inline: 14px;\n line-height: 14px;\n\n .hero--breadcrumb & {\n display: block;\n }\n\n @container (min-width: 800px) {\n margin-block: 0;\n margin-inline: 50px;\n max-inline-size: 50%;\n }\n\n @container (min-width: 900px) {\n margin-block: 0;\n margin-inline: 83px;\n }\n\n ::slotted(*[slot='breadcrumb']) {\n font-size: 0.85rem;\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 600;\n font-stretch: 125%;\n display: inline-block;\n margin-block-end: 16px;\n position: relative;\n z-index: 2;\n\n .hero--hasbg & {\n text-shadow: 1px 1px rgb(0 0 0 / 15%);\n }\n }\n\n ::slotted(a[slot='breadcrumb']) {\n color: var(--theme-tint-color) !important;\n cursor: pointer;\n }\n\n ::slotted(.slash[slot='breadcrumb']) {\n color: var(--theme-color);\n position: relative;\n margin-block: 0;\n margin-inline: 0.5rem;\n display: inline-block;\n }\n }\n\n &__scrim {\n position: absolute;\n inset: 0;\n z-index: 0;\n background:\n linear-gradient(\n var(--scrim-direction),\n rgb(var(--scrim-color) / var(--scrim-opacity-from)) 0%,\n rgb(var(--scrim-color) / var(--scrim-opacity-to)) 100%\n );\n\n .hero--scrim & {\n background: none;\n }\n }\n\n &__content {\n max-inline-size: 1440px;\n display: block;\n\n --grid-row-gap: 0;\n\n margin-block: 0;\n margin-inline: auto;\n position: relative;\n\n @container (min-width: 800px) {\n margin-block: 50px 0 !important;\n max-inline-size: 1540px !important;\n }\n\n @container (min-width: 900px) {\n margin-block: 83px 0 !important;\n max-inline-size: 1606px !important;\n }\n }\n\n &__primary {\n margin: 16px;\n\n .hero--breadcrumb & {\n margin-block: 0;\n margin-inline: 16px;\n }\n\n .hero--backbtn & {\n margin-inline-start: 0;\n }\n\n ::slotted(nano-icon-button[slot='back-btn']) {\n font-size: 2rem;\n }\n\n @container (min-width: 800px) {\n margin-block: 0 50px !important;\n margin-inline: 50px 0 !important;\n\n ::slotted(nano-icon-button[slot='back-btn']) {\n margin-block: 0 !important;\n margin-inline: -3rem 0 !important;\n }\n }\n\n @container (min-width: 900px) {\n margin-block: 0 83px !important;\n margin-inline: 83px 0 !important;\n }\n }\n\n &__primary-content {\n max-inline-size: 45rem;\n\n --color: #fff;\n\n display: flex;\n\n .hero--backbtn & {\n > div {\n padding-block: 10px 0;\n padding-inline: 0;\n }\n }\n\n ::slotted(h1[slot='primary-content']) {\n line-height: 26px !important;\n margin-block: 0 18px !important;\n font-size: 2rem !important;\n }\n\n @container (min-width: 800px) {\n ::slotted(h1[slot='primary-content']) {\n line-height: 31px !important;\n margin-block-end: 30px !important;\n }\n\n ::slotted(.button[slot='primary-content']) {\n margin-block-start: 20px !important;\n }\n }\n }\n\n &__secondary {\n display: none;\n block-size: 100%;\n padding-block: 0 20px;\n padding-inline: 14px;\n\n .hero--secondary & {\n display: flex;\n align-items: center;\n }\n\n @container (min-width: 800px) {\n padding-block: 0 50px;\n padding-inline: 50px;\n justify-content: flex-end;\n }\n\n @container (min-width: 900px) {\n padding-block: 0 83px;\n padding-inline: 83px;\n }\n }\n\n &__icon-box {\n background: rgb(0 0 0 / 70%);\n padding: 24px;\n inline-size: 100%;\n margin-block-end: auto;\n display: flex;\n flex-direction: column;\n color: white;\n\n @container (min-width: 800px) {\n max-inline-size: 410px;\n flex: 0 1 410px;\n }\n\n ::slotted([slot='icon-box-item']) {\n --nano-color-base: var(--theme-tint-color);\n --nano-icon-size: 32px;\n --nano-icon-margin-end: 20px;\n\n display: flex;\n align-items: center;\n font-size: 0.8125rem;\n margin-block-end: 20px;\n }\n\n ::slotted(.last[slot='icon-box-item']) {\n margin-block-end: 0;\n }\n }\n\n &__quote-content {\n margin-block-start: auto;\n text-align: center;\n inline-size: 100%;\n\n @container (min-width: 800px) {\n max-inline-size: 500px;\n flex: 0 1 500px;\n text-align: initial;\n }\n }\n\n &__quote {\n &::before,\n &::after {\n content: '\"';\n font-size: var(--quote-size);\n font-weight: 600;\n font-style: italic;\n line-height: 0;\n color: #abb6b8;\n display: inline;\n position: relative;\n }\n\n ::slotted([slot='quote']) {\n font-size: var(--quote-size);\n font-weight: 200;\n display: inline;\n }\n }\n\n &__quote-author {\n text-align: end;\n font-size: 1rem;\n opacity: 0.8;\n }\n\n &--sub {\n .hero__content {\n @container (min-width: 800px) {\n margin-block-start: 40px;\n\n .hero__primary {\n margin-block: 0 40px;\n margin-inline: 50px 0;\n }\n\n .hero__secondary {\n padding-block: 0 50px;\n padding-inline: 40px 50px;\n }\n\n ::slotted(.button[slot='primary-content']) {\n margin-block-start: 8px !important;\n }\n\n ::slotted(h1[slot='primary-content']) {\n margin-block-end: 18px !important;\n }\n }\n\n @container (min-width: 900px) {\n .hero__primary {\n margin-block: 0 40px;\n margin-inline: 83px 0;\n }\n\n .hero__secondary {\n padding-block: 0 83px;\n padding-inline: 40px 83px;\n }\n }\n }\n }\n}\n","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"],"version":3}
1
+ {"file":"nano-hero.entry.cjs.js","mappings":"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","names":["h","Host"],"sources":["src/components/hero/hero.scss?tag=nano-hero&encapsulation=shadow","src/components/hero/hero.tsx"],"sourcesContent":["@use 'sass:map';\n@use '../../global/style/nano-theme/tokens/colours';\n\n\n:host {\n /**\n * @prop --nano-loader-base: Base colour of nano-skeleton. Default depends on theme;\n * @prop --nano-loader-tint: Tint colour of nano-skeleton. Default depends on theme;\n * @prop --theme-color: Text color. Default depends on theme;\n * @prop --theme-tint-color: Color used for bread crumbs and icons. Defaults to #{map.get(colours.$colors, lightblue)};\n * @prop --scrim-color: Color of the gradient covering the background. Default depends on theme;\n * @prop --scrim-direction: Direction of the gradient covering the background. Default what content slots are present;\n * @prop --scrim-opacity-from: Starting opactiy of the gradient covering the background. Default .25;\n * @prop --scrim-opacity-to: Final opactiy of the gradient covering the background. Default depends on `theme`;\n * @prop --quote-size: Font size of the quote. Defaults to 1.3em and grows to 3rem on the xl breakpoint;\n */\n\n --nano-loader-base: #{map.get(colours.$colors, black)};\n --nano-loader-tint: #{lighten(map.get(colours.$colors, black), 20%)};\n --theme-color: #{map.get(colours.$colors, white)};\n --theme-tint-color: #{map.get(colours.$colors, lightblue)};\n --scrim-color: 0 0 0;\n --scrim-direction: 90deg;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 0.7;\n --padding: 0;\n --quote-size: 1.3rem;\n\n color: var(--theme-color);\n display: block;\n container-type: inline-size;\n}\n\n:host([theme='light']) {\n --nano-loader-base: #{map.get(colours.$colors, white)};\n --nano-loader-tint: #{lighten(map.get(colours.$colors, white), 20%)};\n --theme-color: #{map.get(colours.$colors, black)};\n --scrim-color: 255 255 255;\n --scrim-opacity-from: 0.25;\n --scrim-opacity-to: 1;\n --scrim-direction: 270deg;\n\n color: var(--theme-color);\n\n .hero__primary-content {\n --color: #{map.get(colours.$colors, black)};\n }\n}\n\n.hero {\n position: relative;\n\n @container (min-width: 800px) {\n --quote-size: 3rem;\n }\n\n &--rtl {\n --scrim-direction: 270deg;\n }\n\n &--secondary:not(.hero--iconbox) {\n --scrim-direction: 0deg;\n }\n\n &__bg-wrap {\n overflow: hidden;\n }\n\n &__bg-slot {\n position: absolute;\n inset: 0;\n }\n\n &__ctas {\n @media (width <= 52em) {\n display: none;\n }\n\n @media (width <= 58em) {\n margin-block-end: -48px;\n }\n\n display: flex;\n justify-content: flex-end;\n padding-block: 32px 0;\n padding-inline: 32px;\n margin-block-end: -64px;\n position: relative;\n z-index: 1;\n\n ::slotted(a.button[slot='secondary-ctas']) {\n padding-inline: 0.5rem !important;\n font-size: 0.875rem !important;\n margin-block: 0 !important;\n margin-inline: 0.25rem !important;\n }\n }\n\n &__img {\n display: block;\n\n --padding: inherit;\n }\n\n &__breadcrumbs {\n display: none;\n margin-block: 20px 0;\n margin-inline: 14px;\n line-height: 14px;\n\n .hero--breadcrumb & {\n display: block;\n }\n\n @container (min-width: 800px) {\n margin-block: 0;\n margin-inline: 50px;\n max-inline-size: 50%;\n }\n\n @container (min-width: 900px) {\n margin-block: 0;\n margin-inline: 83px;\n }\n\n ::slotted(*[slot='breadcrumb']) {\n font-size: 0.85rem;\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 600;\n font-stretch: 125%;\n display: inline-block;\n margin-block-end: 16px;\n position: relative;\n z-index: 2;\n\n .hero--hasbg & {\n text-shadow: 1px 1px rgb(0 0 0 / 15%);\n }\n }\n\n ::slotted(a[slot='breadcrumb']) {\n color: var(--theme-tint-color) !important;\n cursor: pointer;\n }\n\n ::slotted(.slash[slot='breadcrumb']) {\n color: var(--theme-color);\n position: relative;\n margin-block: 0;\n margin-inline: 0.5rem;\n display: inline-block;\n }\n }\n\n &__scrim {\n position: absolute;\n inset: 0;\n z-index: 0;\n background:\n linear-gradient(\n var(--scrim-direction),\n rgb(var(--scrim-color) / var(--scrim-opacity-from)) 0%,\n rgb(var(--scrim-color) / var(--scrim-opacity-to)) 100%\n );\n\n .hero--scrim & {\n background: none;\n }\n }\n\n &__content {\n max-inline-size: 1440px;\n display: block;\n\n --grid-row-gap: 0;\n\n margin-block: 0;\n margin-inline: auto;\n position: relative;\n\n @container (min-width: 800px) {\n margin-block: 50px 0 !important;\n max-inline-size: 1540px !important;\n }\n\n @container (min-width: 900px) {\n margin-block: 83px 0 !important;\n max-inline-size: 1606px !important;\n }\n }\n\n &__primary {\n margin: 16px;\n\n .hero--breadcrumb & {\n margin-block: 0;\n margin-inline: 16px;\n }\n\n .hero--backbtn & {\n margin-inline-start: 0;\n }\n\n ::slotted(.nano-icon-button[slot='back-btn']) {\n font-size: 2rem;\n }\n\n @container (min-width: 800px) {\n margin-block: 0 50px !important;\n margin-inline: 50px 0 !important;\n\n ::slotted(.nano-icon-button[slot='back-btn']) {\n margin-block: 0 !important;\n margin-inline: -3rem 0 !important;\n }\n }\n\n @container (min-width: 900px) {\n margin-block: 0 83px !important;\n margin-inline: 83px 0 !important;\n }\n }\n\n &__primary-content {\n max-inline-size: 45rem;\n\n --color: #fff;\n\n display: flex;\n\n .hero--backbtn & {\n > div {\n padding-block: 10px 0;\n padding-inline: 0;\n }\n }\n\n ::slotted(h1[slot='primary-content']) {\n line-height: 26px !important;\n margin-block: 0 18px !important;\n font-size: 2rem !important;\n }\n\n @container (min-width: 800px) {\n ::slotted(h1[slot='primary-content']) {\n line-height: 31px !important;\n margin-block-end: 30px !important;\n }\n\n ::slotted(.button[slot='primary-content']) {\n margin-block-start: 20px !important;\n }\n }\n }\n\n &__secondary {\n display: none;\n block-size: 100%;\n padding-block: 0 20px;\n padding-inline: 14px;\n\n .hero--secondary & {\n display: flex;\n align-items: center;\n }\n\n @container (min-width: 800px) {\n padding-block: 0 50px;\n padding-inline: 50px;\n justify-content: flex-end;\n }\n\n @container (min-width: 900px) {\n padding-block: 0 83px;\n padding-inline: 83px;\n }\n }\n\n &__icon-box {\n background: rgb(0 0 0 / 70%);\n padding: 24px;\n inline-size: 100%;\n margin-block-end: auto;\n display: flex;\n flex-direction: column;\n color: white;\n\n @container (min-width: 800px) {\n max-inline-size: 410px;\n flex: 0 1 410px;\n }\n\n ::slotted([slot='icon-box-item']) {\n --nano-color-base: var(--theme-tint-color);\n --nano-icon-size: 32px;\n --nano-icon-margin-end: 20px;\n\n display: flex;\n align-items: center;\n font-size: 0.8125rem;\n margin-block-end: 20px;\n }\n\n ::slotted(.last[slot='icon-box-item']) {\n margin-block-end: 0;\n }\n }\n\n &__quote-content {\n margin-block-start: auto;\n text-align: center;\n inline-size: 100%;\n\n @container (min-width: 800px) {\n max-inline-size: 500px;\n flex: 0 1 500px;\n text-align: initial;\n }\n }\n\n &__quote {\n &::before,\n &::after {\n content: '\"';\n font-size: var(--quote-size);\n font-weight: 600;\n font-style: italic;\n line-height: 0;\n color: #abb6b8;\n display: inline;\n position: relative;\n }\n\n ::slotted([slot='quote']) {\n font-size: var(--quote-size);\n font-weight: 200;\n display: inline;\n }\n }\n\n &__quote-author {\n text-align: end;\n font-size: 1rem;\n opacity: 0.8;\n }\n\n &--sub {\n .hero__content {\n @container (min-width: 800px) {\n margin-block-start: 40px;\n\n .hero__primary {\n margin-block: 0 40px;\n margin-inline: 50px 0;\n }\n\n .hero__secondary {\n padding-block: 0 50px;\n padding-inline: 40px 50px;\n }\n\n ::slotted(.button[slot='primary-content']) {\n margin-block-start: 8px !important;\n }\n\n ::slotted(h1[slot='primary-content']) {\n margin-block-end: 18px !important;\n }\n }\n\n @container (min-width: 900px) {\n .hero__primary {\n margin-block: 0 40px;\n margin-inline: 83px 0;\n }\n\n .hero__secondary {\n padding-block: 0 83px;\n padding-inline: 40px 83px;\n }\n }\n }\n }\n}\n","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"],"version":3}
@@ -5,8 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-b6fa04fa.js');
8
+ const index = require('./index-615cdb64.js');
9
9
  const focusVisible = require('./focus-visible-39b54d1f.js');
10
+ const renderer = require('./renderer-cd8b6098.js');
10
11
  const popover = require('./popover-3dfc73f6.js');
11
12
 
12
13
  const iconButtonCss = ":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--border-radius:var(--nano-border-radius-medium, 4px);--active-color:#005c75;--hover-color:#007495;--nano-color-base:var(--color, #687576);--background:transparent;--padding:var(--nano-spacing-small, 8px);--box-shadow:none;--button-bg:var(--background);border-radius:var(--border-radius);display:inline-block}.icon-button{flex:0 0 auto;display:flex;align-items:center;border:none;border-radius:inherit;background:var(--button-bg);font-size:inherit;color:var(--color);padding:var(--padding);cursor:pointer;appearance:none;transition:box-shadow var(--nano-transition-fast, 0.1s) ease-in-out;box-shadow:var(--box-shadow)}.icon-button:hover:not(.icon-button--disabled),.icon-button:focus:not(.icon-button--disabled){color:var(--hover-color);--nano-color-base:var(--hover-color)}.icon-button:active:not(.icon-button--disabled){color:var(--active-color);--nano-color-base:var(--active-color)}.icon-button:focus{outline:none}.icon-button__label{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.icon-button--disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.focus-visible.icon-button:focus{box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}";
@@ -104,9 +105,9 @@ const IconButton = class {
104
105
  }
105
106
  render() {
106
107
  if (this.showTooltip) {
107
- return (index.h(index.Host, { "aria-disabled": this.disabled ? 'true' : null }, index.h("nano-tooltip", { content: this.label }, this.content())));
108
+ return (index.h(index.Host, { class: "nano-icon-button", "aria-disabled": this.disabled ? 'true' : null }, index.h("nano-tooltip", { content: this.label }, this.content())));
108
109
  }
109
- return (index.h(index.Host, { "aria-disabled": this.disabled ? 'true' : null }, this.content()));
110
+ return (index.h(index.Host, { class: "nano-icon-button", "aria-disabled": this.disabled ? 'true' : null }, this.content()));
110
111
  }
111
112
  };
112
113
  IconButton.style = NanoIconButtonStyle0;
@@ -322,10 +323,10 @@ const Tooltip = class {
322
323
  this.popover.destroy();
323
324
  }
324
325
  render() {
325
- return (index.h(index.Host, { key: '24bcb9c2e705abc82a3a3c6f53d1a9ac4c38bd2a', onKeyDown: this.handleKeyDown, onMouseOver: this.handleMouseOver, onMouseOut: this.handleMouseOut, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.handleClick }, index.h("slot", { key: '50f175c4b6090ec769a4ea9d06cd23be521a01e3', onSlotchange: this.handleSlotChange }), index.h("div", { key: '6413a83c5416cca23af4c0e856c7dc63b9d0fd6b', ref: (el) => (this.tooltipPositioner = el), class: "tooltip-positioner", popover: "manual" }, index.h("div", { key: '99cd8748322e5aae2f04160359bbe9521914ca92', part: "base", ref: (el) => (this.tooltip = el), class: {
326
+ return (renderer.h(index.Host, { key: 'aea96e5f6c3a04be33309614166cde8809501bdd', onKeyDown: this.handleKeyDown, onMouseOver: this.handleMouseOver, onMouseOut: this.handleMouseOut, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.handleClick, class: "nano-tooltip" }, renderer.h("slot", { key: '1d35074667f546275cd81875cf49b5de5a9a144f', onSlotchange: this.handleSlotChange }), renderer.h("div", { key: '694a19141a36749d393e0db08ce48bfc490e7938', ref: (el) => (this.tooltipPositioner = el), class: "tooltip-positioner", popover: "manual" }, renderer.h("div", { key: '8b181e183dff1ab3b1a2253f693f6d62f6a504d2', part: "base", ref: (el) => (this.tooltip = el), class: {
326
327
  tooltip: true,
327
328
  'tooltip--open': this.open,
328
- }, role: "tooltip", "aria-hidden": this.open ? 'false' : 'true' }, index.h("slot", { key: 'e7b096bfb90f18f0b7a440c6680e00d5bb547c4a', name: "content", onSlotchange: () => this.setLabel() }, this.content), index.h("div", { key: '96cc982fde977a2c65bd877a7b1cd894c89e9bad', class: "tooltip-arrow", "data-popper-arrow": true })))));
329
+ }, role: "tooltip", "aria-hidden": this.open ? 'false' : 'true' }, renderer.h("slot", { key: 'ba3d58a1cab421828b90a880019c334ddd15c40a', name: "content", onSlotchange: () => this.setLabel() }, this.content), renderer.h("div", { key: 'e254be92d3ca7ff1fc592c6f81a6b4de0185434a', class: "tooltip-arrow", "data-popper-arrow": true })))));
329
330
  }
330
331
  static get watchers() { return {
331
332
  "content": ["setLabel"],
@@ -1 +1 @@
1
- {"file":"nano-icon-button.nano-tooltip.entry.cjs.js","mappings":"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","names":["focusVisible","h","Host","Popover"],"sources":["src/components/icon-button/icon-button.scss?tag=nano-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx","src/components/tooltip/tooltip.scss?tag=nano-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["@use 'sass:map';\n@use '../../global/style/nano-theme/tokens';\n@use '../../global/style/utilities/mixins' as mx;\n\n:host {\n /**\n * @prop --color: defaults to #{map.get(tokens.$colors, palegrey)};\n * @prop --active-color: defaults to #{map.get(tokens.$colors, darkblue--faded)};\n * @prop --hover-color: defaults to #{map.get(tokens.$colors, blue)};\n * @prop --background: defaults to transparent;\n * @prop --padding: defaults to #{tokens.$spacing-small};\n * @prop --box-shadow: defaults to none;\n */\n\n --border-radius: #{tokens.$border-radius-medium};\n --active-color: #{map.get(tokens.$colors, darkblue--faded)};\n --hover-color: #{map.get(tokens.$colors, blue)};\n --nano-color-base: var(--color, #{map.get(tokens.$colors, mediumgrey)});\n --background: transparent;\n --padding: #{tokens.$spacing-small};\n --box-shadow: none;\n --button-bg: var(--background);\n\n border-radius: var(--border-radius);\n display: inline-block;\n}\n\n\n.icon-button {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n border: none;\n border-radius: inherit;\n background: var(--button-bg);\n font-size: inherit;\n color: var(--color);\n padding: var(--padding);\n cursor: pointer;\n appearance: none;\n transition: box-shadow #{tokens.$transition-xfast} ease-in-out;\n box-shadow: var(--box-shadow);\n\n &:hover:not(.icon-button--disabled),\n &:focus:not(.icon-button--disabled) {\n color: var(--hover-color);\n\n --nano-color-base: var(--hover-color);\n }\n\n &:active:not(.icon-button--disabled) {\n color: var(--active-color);\n\n --nano-color-base: var(--active-color);\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.icon-button__label {\n @include mx.visually-hide();\n}\n\n.icon-button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.focus-visible.icon-button:focus {\n box-shadow: #{tokens.$control-focus-style};\n}\n","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","@use '../../global/style/nano-theme/tokens';\n\n/**\n * @prop --hide-delay: The amount of time to wait before hiding the tooltip.\n * @prop --hide-duration: The amount of time the hide transition takes to complete.\n * @prop --hide-timing-function: The timing function (easing) to use for the hide transition.\n * @prop --max-width: The maximum width of the tooltip.\n * @prop --show-delay: The amount of time to wait before showing the tooltip.\n * @prop --show-duration: The amount of time the show transition takes to complete.\n * @prop --show-timing-function: The timing function (easing) to use for the show transition.\n */\n:host {\n --max-width: 20rem;\n --hide-delay: 0.125s;\n --hide-duration: 0.125s;\n --hide-timing-function: ease;\n --show-delay: 0.125s;\n --show-duration: 0.125s;\n --show-timing-function: ease;\n --background: #{tokens.$tooltip-bg-color};\n --color: #{tokens.$tooltip-color};;\n\n /* autoprefixer: ignore next */\n display: contents;\n}\n\n.tooltip {\n $self: &;\n\n max-inline-size: var(--max-width);\n border-radius: #{tokens.$tooltip-border-radius};\n background-color: var(--background);\n font-size: #{tokens.$tooltip-fontsize};\n line-height: 1.5;\n color: var(--color);\n opacity: 0;\n padding: #{tokens.$tooltip-padding};\n transform: translateY(10px) translateZ(0);\n transform-origin: bottom;\n transition: opacity, transform var(--hide-duration) var(--hide-timing-function) var(--hide-delay);\n white-space: normal;\n\n &-arrow {\n content: '';\n position: absolute;\n inline-size: 0;\n block-size: 0;\n color: var(--background);\n transition: 0.2s ease transform;\n }\n\n &-positioner {\n position: absolute;\n z-index: #{tokens.$layer-index-tooltip};\n border: 0;\n background: none;\n padding: 0;\n overflow: visible;\n color: unset;\n\n &::backdrop { display: none; }\n\n &[popover],\n &:popover-open {\n inset: unset;\n }\n\n #{$self} {\n transition-delay: var(--show-delay);\n transition-duration: var(--show-duration);\n transition-timing-function: var(--show-timing-function);\n }\n\n &[data-popper-placement^='top'] #{$self} {\n transform-origin: bottom;\n transform: translateY(-10px) translateZ(0);\n }\n\n &[data-popper-placement^='bottom'] #{$self} {\n transform-origin: top;\n }\n\n &[data-popper-placement^='left'] #{$self} {\n transform-origin: right;\n }\n\n &[data-popper-placement^='right'] #{$self} {\n transform-origin: left;\n }\n\n &.popover-visible #{$self} {\n opacity: 1;\n transform: none;\n }\n\n // Arrow + bottom\n &[data-popper-placement^='bottom'] #{$self}-arrow {\n inset-block-end: 100%;\n inset-inline-start: calc(50% - #{tokens.$tooltip-arrow-size});\n border-block-end: #{tokens.$tooltip-arrow-size} solid;\n border-inline-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-inline-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='bottom-start'] #{$self}-arrow {\n inset-inline-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='bottom-end'] #{$self}-arrow {\n inset-inline: auto #{tokens.$tooltip-arrow-offset};\n }\n\n // Arrow + top\n &[data-popper-placement^='top'] #{$self}-arrow {\n inset-block-start: 100%;\n inset-inline-start: calc(50% - #{tokens.$tooltip-arrow-size});\n border-block-start: #{tokens.$tooltip-arrow-size} solid;\n border-inline-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-inline-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='top-start'] #{$self}-arrow {\n inset-inline-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='top-end'] #{$self}-arrow {\n inset-inline: auto #{tokens.$tooltip-arrow-offset};\n }\n\n // Arrow + left\n &[data-popper-placement^='left'] #{$self}-arrow {\n inset-block-start: calc(50% - #{tokens.$tooltip-arrow-size});\n inset-inline-start: 100%;\n border-inline-start: #{tokens.$tooltip-arrow-size} solid;\n border-block-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-block-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='left-start'] #{$self}-arrow {\n inset-block-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='left-end'] #{$self}-arrow {\n inset-block: auto #{tokens.$tooltip-arrow-offset};\n }\n\n // Arrow + right\n &[data-popper-placement^='right'] #{$self}-arrow {\n inset-block-start: calc(50% - #{tokens.$tooltip-arrow-size});\n inset-inline-end: 100%;\n border-inline-end: #{tokens.$tooltip-arrow-size} solid;\n border-block-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-block-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='right-start'] #{$self}-arrow {\n inset-block-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='right-end'] #{$self}-arrow {\n inset-block: auto #{tokens.$tooltip-arrow-offset};\n }\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n Watch,\n h,\n} from '@stencil/core';\nimport Popover from '../../utils/popover';\n\n/**\n * Tooltips display additional information based on a specific action.\n * @slot - The tooltip's target element. Only the first element will be used as the target.\n * @slot content - The tooltip's content. Alternatively, you can use the content prop.\n */\n@Component({\n tag: 'nano-tooltip',\n styleUrl: 'tooltip.scss',\n shadow: true,\n})\nexport class Tooltip {\n private isVisible = false;\n private popover: Popover;\n private tooltipPositioner: HTMLElement;\n private tooltip: HTMLElement;\n\n private _target: HTMLElement;\n private get target() {\n return this._target;\n }\n private set target(newTarget) {\n if (newTarget !== this._target && this._target) {\n this._target.removeAttribute('aria-label');\n }\n newTarget.setAttribute('aria-label', this.label);\n this._target = newTarget;\n }\n\n private label = '';\n\n @Element() host: HTMLNanoTooltipElement;\n\n /** The tooltip's content. Alternatively, you can use the content slot. */\n @Prop() content = '';\n\n @Watch('content')\n setLabel() {\n const contentSlotNodes = Array.from(\n this.host.querySelectorAll('[slot=\"content\"]')\n );\n const textContent = contentSlotNodes\n .map((node) => node.textContent)\n .join(' ')\n .trim();\n\n if (!this.target) {\n this.target = this.getTarget();\n\n if (!this.target) return;\n }\n\n this.label = textContent || this.content;\n this.target.setAttribute('aria-label', this.label);\n }\n\n /**\n * The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\n * inside of the viewport.\n */\n @Prop() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'top';\n\n /** Set to true to disable the tooltip so it won't show when triggered. */\n @Prop() disabled = false;\n\n /** The distance in pixels from which to offset the tooltip away from its target. */\n @Prop() distance = 10;\n\n /** Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** The distance in pixels from which to offset the tooltip along its target. */\n @Prop() skidding = 0;\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop({ mutable: true }) hoist = false;\n\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @Prop() trigger: string = 'hover focus';\n\n @Watch('open')\n handleOpenChange() {\n if (this.open) this.show();\n else this.hide();\n }\n\n // Events\n\n /** Emitted when the tooltip begins to show. Calling `event.preventDefault()` will prevent it from being shown. */\n @Event() nanoShow: EventEmitter;\n\n /** Emitted after the tooltip has shown and all transitions are complete. */\n @Event() nanoAfterShow: EventEmitter;\n\n /** Emitted when the tooltip begins to hide. Calling `event.preventDefault()` will prevent it from being hidden. */\n @Event() nanoHide: EventEmitter;\n\n /** Emitted after the tooltip has hidden and all transitions are complete. */\n @Event() nanoAfterHide: EventEmitter;\n\n // Public methods\n\n /** Shows the tooltip. */\n @Method()\n async show() {\n // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher\n if (this.isVisible || this.disabled) {\n return;\n }\n const slShow = this.nanoShow.emit();\n if (slShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.isVisible = true;\n this.open = true;\n if (typeof this.tooltipPositioner?.showPopover === 'function') {\n this.hoist = true;\n this.popover.show();\n this.tooltipPositioner.showPopover();\n } else {\n this.popover.show();\n }\n }\n\n /** Hides the tooltip. */\n @Method()\n async hide() {\n // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher\n if (!this.isVisible) {\n return;\n }\n\n const slHide = this.nanoHide.emit();\n if (slHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.isVisible = false;\n this.open = false;\n this.popover.hide();\n\n setTimeout(() => {\n if (\n !this.open &&\n typeof this.tooltipPositioner?.hidePopover === 'function'\n ) {\n this.tooltipPositioner.hidePopover();\n }\n }, 300);\n }\n\n // Private methods\n\n private getTarget() {\n // Get the first child that isn't a <style> or content slot\n const target = [...Array.from(this.host.children)].find(\n (el) =>\n el.tagName.toLowerCase() !== 'style' &&\n el.getAttribute('slot') !== 'content'\n ) as HTMLElement;\n\n if (!target) {\n throw new Error('Invalid tooltip target: no child element was found.');\n }\n\n return target;\n }\n\n private hasTrigger(triggerType: string) {\n const triggers = this.trigger.split(' ');\n return triggers.includes(triggerType);\n }\n\n private syncOptions() {\n this.popover.setOptions({\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n transitionElement: this.tooltip,\n onAfterHide: () => this.nanoAfterHide.emit(),\n onAfterShow: () => this.nanoAfterShow.emit(),\n });\n }\n\n // Event Handlers\n\n private handleBlur = () => {\n if (this.hasTrigger('focus')) {\n this.hide();\n }\n };\n\n private handleClick = () => {\n if (this.hasTrigger('click')) {\n if (this.open) this.hide();\n else this.show();\n }\n };\n\n private handleFocus = () => {\n if (this.hasTrigger('focus')) {\n this.show();\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // Pressing escape when the target element has focus should dismiss the tooltip\n if (this.open && event.key === 'Escape') {\n event.stopPropagation();\n this.hide();\n }\n };\n\n private handleMouseOver = () => {\n if (this.hasTrigger('hover')) {\n this.show();\n }\n };\n\n private handleMouseOut = () => {\n if (this.hasTrigger('hover')) {\n this.hide();\n }\n };\n\n private handleSlotChange = () => {\n this.target = this.getTarget();\n };\n\n // Stencil hooks\n\n componentDidLoad() {\n this.target = this.getTarget();\n this.popover = new Popover(this.target, this.tooltipPositioner);\n this.syncOptions();\n this.setLabel();\n\n // Show on init if open\n this.tooltipPositioner.hidden = !this.open;\n if (this.open) {\n this.show();\n }\n }\n\n componentDidUpdate() {\n this.syncOptions();\n }\n\n disconnectedCallback() {\n if (this.popover) this.popover.destroy();\n }\n\n render() {\n return (\n <Host\n onKeyDown={this.handleKeyDown}\n onMouseOver={this.handleMouseOver}\n onMouseOut={this.handleMouseOut}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.handleClick}\n >\n <slot onSlotchange={this.handleSlotChange} />\n <div\n ref={(el) => (this.tooltipPositioner = el)}\n class=\"tooltip-positioner\"\n popover=\"manual\"\n >\n <div\n part=\"base\"\n ref={(el) => (this.tooltip = el)}\n class={{\n tooltip: true,\n 'tooltip--open': this.open,\n }}\n role=\"tooltip\"\n aria-hidden={this.open ? 'false' : 'true'}\n >\n <slot name=\"content\" onSlotchange={() => this.setLabel()}>\n {this.content}\n </slot>\n <div class=\"tooltip-arrow\" data-popper-arrow></div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nano-icon-button.nano-tooltip.entry.cjs.js","mappings":"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","names":["focusVisible","h","Host","Popover"],"sources":["src/components/icon-button/icon-button.scss?tag=nano-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx","src/components/tooltip/tooltip.scss?tag=nano-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["@use 'sass:map';\n@use '../../global/style/nano-theme/tokens';\n@use '../../global/style/utilities/mixins' as mx;\n\n:host {\n /**\n * @prop --color: defaults to #{map.get(tokens.$colors, palegrey)};\n * @prop --active-color: defaults to #{map.get(tokens.$colors, darkblue--faded)};\n * @prop --hover-color: defaults to #{map.get(tokens.$colors, blue)};\n * @prop --background: defaults to transparent;\n * @prop --padding: defaults to #{tokens.$spacing-small};\n * @prop --box-shadow: defaults to none;\n */\n\n --border-radius: #{tokens.$border-radius-medium};\n --active-color: #{map.get(tokens.$colors, darkblue--faded)};\n --hover-color: #{map.get(tokens.$colors, blue)};\n --nano-color-base: var(--color, #{map.get(tokens.$colors, mediumgrey)});\n --background: transparent;\n --padding: #{tokens.$spacing-small};\n --box-shadow: none;\n --button-bg: var(--background);\n\n border-radius: var(--border-radius);\n display: inline-block;\n}\n\n\n.icon-button {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n border: none;\n border-radius: inherit;\n background: var(--button-bg);\n font-size: inherit;\n color: var(--color);\n padding: var(--padding);\n cursor: pointer;\n appearance: none;\n transition: box-shadow #{tokens.$transition-xfast} ease-in-out;\n box-shadow: var(--box-shadow);\n\n &:hover:not(.icon-button--disabled),\n &:focus:not(.icon-button--disabled) {\n color: var(--hover-color);\n\n --nano-color-base: var(--hover-color);\n }\n\n &:active:not(.icon-button--disabled) {\n color: var(--active-color);\n\n --nano-color-base: var(--active-color);\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.icon-button__label {\n @include mx.visually-hide();\n}\n\n.icon-button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.focus-visible.icon-button:focus {\n box-shadow: #{tokens.$control-focus-style};\n}\n","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","@use '../../global/style/nano-theme/tokens';\n\n/**\n * @prop --hide-delay: The amount of time to wait before hiding the tooltip.\n * @prop --hide-duration: The amount of time the hide transition takes to complete.\n * @prop --hide-timing-function: The timing function (easing) to use for the hide transition.\n * @prop --max-width: The maximum width of the tooltip.\n * @prop --show-delay: The amount of time to wait before showing the tooltip.\n * @prop --show-duration: The amount of time the show transition takes to complete.\n * @prop --show-timing-function: The timing function (easing) to use for the show transition.\n */\n:host {\n --max-width: 20rem;\n --hide-delay: 0.125s;\n --hide-duration: 0.125s;\n --hide-timing-function: ease;\n --show-delay: 0.125s;\n --show-duration: 0.125s;\n --show-timing-function: ease;\n --background: #{tokens.$tooltip-bg-color};\n --color: #{tokens.$tooltip-color};;\n\n /* autoprefixer: ignore next */\n display: contents;\n}\n\n.tooltip {\n $self: &;\n\n max-inline-size: var(--max-width);\n border-radius: #{tokens.$tooltip-border-radius};\n background-color: var(--background);\n font-size: #{tokens.$tooltip-fontsize};\n line-height: 1.5;\n color: var(--color);\n opacity: 0;\n padding: #{tokens.$tooltip-padding};\n transform: translateY(10px) translateZ(0);\n transform-origin: bottom;\n transition: opacity, transform var(--hide-duration) var(--hide-timing-function) var(--hide-delay);\n white-space: normal;\n\n &-arrow {\n content: '';\n position: absolute;\n inline-size: 0;\n block-size: 0;\n color: var(--background);\n transition: 0.2s ease transform;\n }\n\n &-positioner {\n position: absolute;\n z-index: #{tokens.$layer-index-tooltip};\n border: 0;\n background: none;\n padding: 0;\n overflow: visible;\n color: unset;\n\n &::backdrop { display: none; }\n\n &[popover],\n &:popover-open {\n inset: unset;\n }\n\n #{$self} {\n transition-delay: var(--show-delay);\n transition-duration: var(--show-duration);\n transition-timing-function: var(--show-timing-function);\n }\n\n &[data-popper-placement^='top'] #{$self} {\n transform-origin: bottom;\n transform: translateY(-10px) translateZ(0);\n }\n\n &[data-popper-placement^='bottom'] #{$self} {\n transform-origin: top;\n }\n\n &[data-popper-placement^='left'] #{$self} {\n transform-origin: right;\n }\n\n &[data-popper-placement^='right'] #{$self} {\n transform-origin: left;\n }\n\n &.popover-visible #{$self} {\n opacity: 1;\n transform: none;\n }\n\n // Arrow + bottom\n &[data-popper-placement^='bottom'] #{$self}-arrow {\n inset-block-end: 100%;\n inset-inline-start: calc(50% - #{tokens.$tooltip-arrow-size});\n border-block-end: #{tokens.$tooltip-arrow-size} solid;\n border-inline-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-inline-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='bottom-start'] #{$self}-arrow {\n inset-inline-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='bottom-end'] #{$self}-arrow {\n inset-inline: auto #{tokens.$tooltip-arrow-offset};\n }\n\n // Arrow + top\n &[data-popper-placement^='top'] #{$self}-arrow {\n inset-block-start: 100%;\n inset-inline-start: calc(50% - #{tokens.$tooltip-arrow-size});\n border-block-start: #{tokens.$tooltip-arrow-size} solid;\n border-inline-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-inline-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='top-start'] #{$self}-arrow {\n inset-inline-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='top-end'] #{$self}-arrow {\n inset-inline: auto #{tokens.$tooltip-arrow-offset};\n }\n\n // Arrow + left\n &[data-popper-placement^='left'] #{$self}-arrow {\n inset-block-start: calc(50% - #{tokens.$tooltip-arrow-size});\n inset-inline-start: 100%;\n border-inline-start: #{tokens.$tooltip-arrow-size} solid;\n border-block-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-block-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='left-start'] #{$self}-arrow {\n inset-block-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='left-end'] #{$self}-arrow {\n inset-block: auto #{tokens.$tooltip-arrow-offset};\n }\n\n // Arrow + right\n &[data-popper-placement^='right'] #{$self}-arrow {\n inset-block-start: calc(50% - #{tokens.$tooltip-arrow-size});\n inset-inline-end: 100%;\n border-inline-end: #{tokens.$tooltip-arrow-size} solid;\n border-block-start: #{tokens.$tooltip-arrow-size} solid transparent;\n border-block-end: #{tokens.$tooltip-arrow-size} solid transparent;\n }\n\n &[data-popper-placement='right-start'] #{$self}-arrow {\n inset-block-start: #{tokens.$tooltip-arrow-offset};\n }\n\n &[data-popper-placement='right-end'] #{$self}-arrow {\n inset-block: auto #{tokens.$tooltip-arrow-offset};\n }\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { h } from '../../utils/renderer';\nimport Popover from '../../utils/popover';\n\n/**\n * Tooltips display additional information based on a specific action.\n * @slot - The tooltip's target element. Only the first element will be used as the target.\n * @slot content - The tooltip's content. Alternatively, you can use the content prop.\n */\n@Component({\n tag: 'nano-tooltip',\n styleUrl: 'tooltip.scss',\n shadow: true,\n})\nexport class Tooltip {\n private isVisible = false;\n private popover: Popover;\n private tooltipPositioner: HTMLElement;\n private tooltip: HTMLElement;\n\n private _target: HTMLElement;\n private get target() {\n return this._target;\n }\n private set target(newTarget) {\n if (newTarget !== this._target && this._target) {\n this._target.removeAttribute('aria-label');\n }\n newTarget.setAttribute('aria-label', this.label);\n this._target = newTarget;\n }\n\n private label = '';\n\n @Element() host: HTMLNanoTooltipElement;\n\n /** The tooltip's content. Alternatively, you can use the content slot. */\n @Prop() content = '';\n\n @Watch('content')\n setLabel() {\n const contentSlotNodes = Array.from(\n this.host.querySelectorAll('[slot=\"content\"]')\n );\n const textContent = contentSlotNodes\n .map((node) => node.textContent)\n .join(' ')\n .trim();\n\n if (!this.target) {\n this.target = this.getTarget();\n\n if (!this.target) return;\n }\n\n this.label = textContent || this.content;\n this.target.setAttribute('aria-label', this.label);\n }\n\n /**\n * The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\n * inside of the viewport.\n */\n @Prop() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'top';\n\n /** Set to true to disable the tooltip so it won't show when triggered. */\n @Prop() disabled = false;\n\n /** The distance in pixels from which to offset the tooltip away from its target. */\n @Prop() distance = 10;\n\n /** Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** The distance in pixels from which to offset the tooltip along its target. */\n @Prop() skidding = 0;\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop({ mutable: true }) hoist = false;\n\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @Prop() trigger: string = 'hover focus';\n\n @Watch('open')\n handleOpenChange() {\n if (this.open) this.show();\n else this.hide();\n }\n\n // Events\n\n /** Emitted when the tooltip begins to show. Calling `event.preventDefault()` will prevent it from being shown. */\n @Event() nanoShow: EventEmitter;\n\n /** Emitted after the tooltip has shown and all transitions are complete. */\n @Event() nanoAfterShow: EventEmitter;\n\n /** Emitted when the tooltip begins to hide. Calling `event.preventDefault()` will prevent it from being hidden. */\n @Event() nanoHide: EventEmitter;\n\n /** Emitted after the tooltip has hidden and all transitions are complete. */\n @Event() nanoAfterHide: EventEmitter;\n\n // Public methods\n\n /** Shows the tooltip. */\n @Method()\n async show() {\n // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher\n if (this.isVisible || this.disabled) {\n return;\n }\n const slShow = this.nanoShow.emit();\n if (slShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.isVisible = true;\n this.open = true;\n if (typeof this.tooltipPositioner?.showPopover === 'function') {\n this.hoist = true;\n this.popover.show();\n this.tooltipPositioner.showPopover();\n } else {\n this.popover.show();\n }\n }\n\n /** Hides the tooltip. */\n @Method()\n async hide() {\n // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher\n if (!this.isVisible) {\n return;\n }\n\n const slHide = this.nanoHide.emit();\n if (slHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.isVisible = false;\n this.open = false;\n this.popover.hide();\n\n setTimeout(() => {\n if (\n !this.open &&\n typeof this.tooltipPositioner?.hidePopover === 'function'\n ) {\n this.tooltipPositioner.hidePopover();\n }\n }, 300);\n }\n\n // Private methods\n\n private getTarget() {\n // Get the first child that isn't a <style> or content slot\n const target = [...Array.from(this.host.children)].find(\n (el) =>\n el.tagName.toLowerCase() !== 'style' &&\n el.getAttribute('slot') !== 'content'\n ) as HTMLElement;\n\n if (!target) {\n throw new Error('Invalid tooltip target: no child element was found.');\n }\n\n return target;\n }\n\n private hasTrigger(triggerType: string) {\n const triggers = this.trigger.split(' ');\n return triggers.includes(triggerType);\n }\n\n private syncOptions() {\n this.popover.setOptions({\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n transitionElement: this.tooltip,\n onAfterHide: () => this.nanoAfterHide.emit(),\n onAfterShow: () => this.nanoAfterShow.emit(),\n });\n }\n\n // Event Handlers\n\n private handleBlur = () => {\n if (this.hasTrigger('focus')) {\n this.hide();\n }\n };\n\n private handleClick = () => {\n if (this.hasTrigger('click')) {\n if (this.open) this.hide();\n else this.show();\n }\n };\n\n private handleFocus = () => {\n if (this.hasTrigger('focus')) {\n this.show();\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // Pressing escape when the target element has focus should dismiss the tooltip\n if (this.open && event.key === 'Escape') {\n event.stopPropagation();\n this.hide();\n }\n };\n\n private handleMouseOver = () => {\n if (this.hasTrigger('hover')) {\n this.show();\n }\n };\n\n private handleMouseOut = () => {\n if (this.hasTrigger('hover')) {\n this.hide();\n }\n };\n\n private handleSlotChange = () => {\n this.target = this.getTarget();\n };\n\n // Stencil hooks\n\n componentDidLoad() {\n this.target = this.getTarget();\n this.popover = new Popover(this.target, this.tooltipPositioner);\n this.syncOptions();\n this.setLabel();\n\n // Show on init if open\n this.tooltipPositioner.hidden = !this.open;\n if (this.open) {\n this.show();\n }\n }\n\n componentDidUpdate() {\n this.syncOptions();\n }\n\n disconnectedCallback() {\n if (this.popover) this.popover.destroy();\n }\n\n render() {\n return (\n <Host\n onKeyDown={this.handleKeyDown}\n onMouseOver={this.handleMouseOver}\n onMouseOut={this.handleMouseOut}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.handleClick}\n class=\"nano-tooltip\"\n >\n <slot onSlotchange={this.handleSlotChange} />\n <div\n ref={(el) => (this.tooltipPositioner = el)}\n class=\"tooltip-positioner\"\n popover=\"manual\"\n >\n <div\n part=\"base\"\n ref={(el) => (this.tooltip = el)}\n class={{\n tooltip: true,\n 'tooltip--open': this.open,\n }}\n role=\"tooltip\"\n aria-hidden={this.open ? 'false' : 'true'}\n >\n <slot name=\"content\" onSlotchange={() => this.setLabel()}>\n {this.content}\n </slot>\n <div class=\"tooltip-arrow\" data-popper-arrow></div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -5,7 +5,8 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-b6fa04fa.js');
8
+ const index = require('./index-615cdb64.js');
9
+ const renderer = require('./renderer-cd8b6098.js');
9
10
  const theme = require('./theme-a2f7ddf8.js');
10
11
 
11
12
  let CACHED_MAP;
@@ -296,12 +297,13 @@ const Icon = class {
296
297
  this.name.indexOf('chevron') > -1) &&
297
298
  this.isRtl() &&
298
299
  this.flipRtl !== false);
299
- return (index.h(index.Host, { key: '2f552d1b452a5c6a2b3aba09d5eba30e22ba756c', class: {
300
+ return (renderer.h(index.Host, { key: 'b63eb962d8abc727b57cbb63b665296a2801f4a0', class: {
300
301
  ...theme.createColorClasses(this.color),
301
302
  loading: this.isLoading,
302
303
  [`icon-${this.size}`]: !!this.size,
303
304
  'flip-rtl': !!flipRtl,
304
- } }, this.svgContent ? (index.h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (index.h("div", { class: "icon-inner" }))));
305
+ 'nano-icon': true,
306
+ } }, this.svgContent ? (renderer.h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (renderer.h("div", { class: "icon-inner" }))));
305
307
  }
306
308
  static get watchers() { return {
307
309
  "ariaLabel": ["udpateRole"],