@ukic/web-components 3.0.0-alpha.11 → 3.0.0-alpha.13

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 (985) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +7 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
  3. package/dist/cjs/core.cjs.js +13 -11
  4. package/dist/cjs/core.cjs.js.map +1 -1
  5. package/dist/cjs/{helpers-eca4c27e.js → helpers-08a9ec1c.js} +31 -26
  6. package/dist/cjs/helpers-08a9ec1c.js.map +1 -0
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js +31 -14
  8. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-accordion.cjs.entry.js +65 -42
  10. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-alert.cjs.entry.js +37 -16
  12. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-back-to-top.cjs.entry.js +29 -15
  14. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-badge.cjs.entry.js +41 -22
  16. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +53 -37
  18. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-breadcrumb.cjs.entry.js +35 -21
  20. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-button_3.cjs.entry.js +246 -144
  22. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-card-vertical.cjs.entry.js +53 -32
  24. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-checkbox-group.cjs.entry.js +32 -9
  26. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-checkbox.cjs.entry.js +48 -29
  28. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-chip.cjs.entry.js +44 -23
  30. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-classification-banner.cjs.entry.js +20 -4
  32. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-data-list.cjs.entry.js +11 -5
  34. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-data-row.cjs.entry.js +28 -18
  36. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-dialog.cjs.entry.js +141 -98
  38. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-divider.cjs.entry.js +35 -15
  40. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-empty-state.cjs.entry.js +15 -9
  42. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-footer-link-group.cjs.entry.js +8 -8
  44. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-footer-link.cjs.entry.js +9 -10
  46. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-footer.cjs.entry.js +32 -19
  48. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-hero.cjs.entry.js +29 -17
  50. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +32 -20
  52. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +126 -68
  54. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-input-label_2.cjs.entry.js +45 -17
  56. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-link.cjs.entry.js +28 -21
  58. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-menu-group.cjs.entry.js +5 -5
  60. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-menu-item.cjs.entry.js +20 -18
  62. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-navigation-button.cjs.entry.js +25 -19
  64. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-navigation-group.cjs.entry.js +45 -27
  66. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-navigation-item.cjs.entry.js +69 -48
  68. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-navigation-menu.cjs.entry.js +23 -15
  70. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-page-header.cjs.entry.js +45 -25
  72. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-pagination-item.cjs.entry.js +27 -14
  74. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-pagination.cjs.entry.js +60 -27
  76. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-popover-menu.cjs.entry.js +57 -42
  78. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-radio-group.cjs.entry.js +53 -28
  80. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-radio-option.cjs.entry.js +36 -24
  82. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-search-bar.cjs.entry.js +153 -63
  84. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-section-container.cjs.entry.js +12 -5
  86. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-select.cjs.entry.js +230 -136
  88. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-side-navigation.cjs.entry.js +104 -71
  90. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-skeleton.cjs.entry.js +11 -4
  92. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-skip-link.cjs.entry.js +54 -0
  94. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -0
  95. package/dist/cjs/ic-status-tag.cjs.entry.js +25 -6
  96. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-step.cjs.entry.js +33 -32
  98. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ic-stepper.cjs.entry.js +50 -35
  100. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-switch.cjs.entry.js +50 -22
  102. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-tab-context.cjs.entry.js +45 -26
  104. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-tab-group.cjs.entry.js +14 -9
  106. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-tab-panel.cjs.entry.js +16 -12
  108. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-tab.cjs.entry.js +21 -15
  110. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-text-field.cjs.entry.js +175 -69
  112. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ic-theme.cjs.entry.js +13 -7
  114. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  115. package/dist/cjs/ic-toast-region.cjs.entry.js +2 -3
  116. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  117. package/dist/cjs/ic-toast.cjs.entry.js +29 -21
  118. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  119. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +61 -29
  120. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  121. package/dist/cjs/ic-toggle-button.cjs.entry.js +81 -48
  122. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  123. package/dist/cjs/ic-top-navigation.cjs.entry.js +60 -31
  124. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  125. package/dist/cjs/ic-typography.cjs.entry.js +53 -27
  126. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  127. package/dist/cjs/index-d337cd8a.js +2611 -0
  128. package/dist/cjs/index-d337cd8a.js.map +1 -0
  129. package/dist/cjs/loader.cjs.js +5 -3
  130. package/dist/cjs/loader.cjs.js.map +1 -1
  131. package/dist/collection/collection-manifest.json +5 -4
  132. package/dist/collection/components/ic-accordion/ic-accordion.js +80 -46
  133. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  134. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +49 -21
  135. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  136. package/dist/collection/components/ic-alert/ic-alert.js +58 -22
  137. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  138. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +49 -18
  139. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +59 -14
  140. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  141. package/dist/collection/components/ic-back-to-top/ic-back-to-top.stories.js +54 -0
  142. package/dist/collection/components/ic-back-to-top/ic-back-to-top.types.js.map +1 -1
  143. package/dist/collection/components/ic-badge/ic-badge.js +69 -32
  144. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  145. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +49 -24
  146. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  147. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +63 -40
  148. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  149. package/dist/collection/components/ic-button/ic-button.css +0 -8
  150. package/dist/collection/components/ic-button/ic-button.js +211 -98
  151. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  152. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +88 -42
  153. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js.map +1 -1
  154. package/dist/collection/components/ic-checkbox/ic-checkbox.js +91 -45
  155. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  156. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +62 -20
  157. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  158. package/dist/collection/components/ic-chip/ic-chip.js +67 -30
  159. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  160. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +32 -7
  161. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  162. package/dist/collection/components/ic-data-list/ic-data-list.js +18 -7
  163. package/dist/collection/components/ic-data-list/ic-data-list.js.map +1 -1
  164. package/dist/collection/components/ic-data-row/ic-data-row.js +38 -21
  165. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  166. package/dist/collection/components/ic-dialog/ic-dialog.js +176 -110
  167. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  168. package/dist/collection/components/ic-dialog/ic-dialog.stories.js +100 -49
  169. package/dist/collection/components/ic-divider/ic-divider.js +55 -22
  170. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  171. package/dist/collection/components/ic-divider/ic-divider.stories.js +2 -2
  172. package/dist/collection/components/ic-empty-state/ic-empty-state.js +32 -13
  173. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  174. package/dist/collection/components/ic-footer/ic-footer.js +49 -25
  175. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  176. package/dist/collection/components/ic-footer-link/ic-footer-link.js +24 -15
  177. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  178. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +6 -5
  179. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  180. package/dist/collection/components/ic-hero/ic-hero.css +1 -1
  181. package/dist/collection/components/ic-hero/ic-hero.js +54 -25
  182. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  183. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +40 -21
  184. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  185. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
  186. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +55 -20
  187. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  188. package/dist/collection/components/ic-input-container/ic-input-container.js +16 -6
  189. package/dist/collection/components/ic-input-container/ic-input-container.js.map +1 -1
  190. package/dist/collection/components/ic-input-label/ic-input-label.js +48 -11
  191. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  192. package/dist/collection/components/ic-input-validation/ic-input-validation.js +31 -14
  193. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  194. package/dist/collection/components/ic-link/ic-link.js +49 -28
  195. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  196. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +124 -66
  197. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  198. package/dist/collection/components/ic-menu/ic-menu.js +136 -74
  199. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  200. package/dist/collection/components/ic-menu/ic-menu.types.js.map +1 -1
  201. package/dist/collection/components/ic-menu-group/ic-menu-group.js +4 -5
  202. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  203. package/dist/collection/components/ic-menu-item/ic-menu-item.js +53 -28
  204. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  205. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +44 -23
  206. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  207. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +83 -28
  208. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  209. package/dist/collection/components/ic-navigation-group/ic-navigation-group.types.js +2 -0
  210. package/dist/collection/components/ic-navigation-group/ic-navigation-group.types.js.map +1 -0
  211. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +107 -63
  212. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  213. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +30 -17
  214. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  215. package/dist/collection/components/ic-page-header/ic-page-header.js +68 -31
  216. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  217. package/dist/collection/components/ic-pagination/ic-pagination.js +100 -44
  218. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  219. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +48 -22
  220. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  221. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +80 -52
  222. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  223. package/dist/collection/components/ic-radio-group/ic-radio-group.js +87 -41
  224. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  225. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +31 -0
  226. package/dist/collection/components/ic-radio-option/ic-radio-option.css +20 -0
  227. package/dist/collection/components/ic-radio-option/ic-radio-option.js +64 -33
  228. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  229. package/dist/collection/components/ic-search-bar/ic-search-bar.js +252 -101
  230. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  231. package/dist/collection/components/ic-search-bar/ic-search-bar.types.js.map +1 -1
  232. package/dist/collection/components/ic-section-container/ic-section-container.js +15 -5
  233. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  234. package/dist/collection/components/ic-select/ic-select.css +1 -1
  235. package/dist/collection/components/ic-select/ic-select.js +329 -176
  236. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  237. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +1 -2
  238. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +143 -89
  239. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  240. package/dist/collection/components/ic-skeleton/ic-skeleton.js +14 -4
  241. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  242. package/dist/collection/components/ic-skip-link/ic-skip-link.css +26 -0
  243. package/dist/collection/components/ic-skip-link/ic-skip-link.js +202 -0
  244. package/dist/collection/components/ic-skip-link/ic-skip-link.js.map +1 -0
  245. package/dist/collection/components/ic-skip-link/ic-skip-link.stories.js +160 -0
  246. package/dist/collection/components/ic-status-tag/ic-status-tag.js +41 -9
  247. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  248. package/dist/collection/components/ic-step/ic-step.js +66 -40
  249. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  250. package/dist/collection/components/ic-stepper/ic-stepper.js +61 -37
  251. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  252. package/dist/collection/components/ic-switch/ic-switch.js +72 -27
  253. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  254. package/dist/collection/components/ic-tab/ic-tab.js +40 -21
  255. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  256. package/dist/collection/components/ic-tab-context/ic-tab-context.js +60 -31
  257. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  258. package/dist/collection/components/ic-tab-group/ic-tab-group.js +21 -9
  259. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  260. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +5 -1
  261. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +50 -14
  262. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  263. package/dist/collection/components/ic-text-field/ic-text-field.js +321 -140
  264. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  265. package/dist/collection/components/ic-theme/ic-theme.js +19 -9
  266. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  267. package/dist/collection/components/ic-toast/ic-toast.js +49 -28
  268. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  269. package/dist/collection/components/ic-toast-region/ic-toast-region.js +6 -5
  270. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  271. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +116 -60
  272. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  273. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +90 -35
  274. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  275. package/dist/collection/components/ic-tooltip/ic-tooltip.js +65 -33
  276. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  277. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +91 -45
  278. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  279. package/dist/collection/components/ic-typography/ic-typography.js +73 -32
  280. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  281. package/dist/collection/utils/helpers.js +29 -24
  282. package/dist/collection/utils/helpers.js.map +1 -1
  283. package/dist/collection/utils/testa11y.helpers.js +2 -1
  284. package/dist/collection/utils/testa11y.helpers.js.map +1 -1
  285. package/dist/collection/utils/types.js.map +1 -1
  286. package/dist/components/helpers.js +29 -24
  287. package/dist/components/helpers.js.map +1 -1
  288. package/dist/components/ic-accordion-group.js +29 -12
  289. package/dist/components/ic-accordion-group.js.map +1 -1
  290. package/dist/components/ic-accordion.js +63 -40
  291. package/dist/components/ic-accordion.js.map +1 -1
  292. package/dist/components/ic-alert.js +35 -14
  293. package/dist/components/ic-alert.js.map +1 -1
  294. package/dist/components/ic-back-to-top.js +28 -13
  295. package/dist/components/ic-back-to-top.js.map +1 -1
  296. package/dist/components/ic-badge.js +39 -20
  297. package/dist/components/ic-badge.js.map +1 -1
  298. package/dist/components/ic-breadcrumb-group.js +51 -35
  299. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  300. package/dist/components/ic-breadcrumb2.js +33 -19
  301. package/dist/components/ic-breadcrumb2.js.map +1 -1
  302. package/dist/components/ic-button2.js +113 -63
  303. package/dist/components/ic-button2.js.map +1 -1
  304. package/dist/components/ic-card-vertical.js +51 -30
  305. package/dist/components/ic-card-vertical.js.map +1 -1
  306. package/dist/components/ic-checkbox-group.js +30 -7
  307. package/dist/components/ic-checkbox-group.js.map +1 -1
  308. package/dist/components/ic-checkbox.js +46 -27
  309. package/dist/components/ic-checkbox.js.map +1 -1
  310. package/dist/components/ic-chip.js +42 -21
  311. package/dist/components/ic-chip.js.map +1 -1
  312. package/dist/components/ic-classification-banner.js +19 -3
  313. package/dist/components/ic-classification-banner.js.map +1 -1
  314. package/dist/components/ic-data-list.js +10 -4
  315. package/dist/components/ic-data-list.js.map +1 -1
  316. package/dist/components/ic-data-row.js +27 -17
  317. package/dist/components/ic-data-row.js.map +1 -1
  318. package/dist/components/ic-dialog.js +139 -96
  319. package/dist/components/ic-dialog.js.map +1 -1
  320. package/dist/components/ic-divider2.js +33 -13
  321. package/dist/components/ic-divider2.js.map +1 -1
  322. package/dist/components/ic-empty-state.js +13 -7
  323. package/dist/components/ic-empty-state.js.map +1 -1
  324. package/dist/components/ic-footer-link-group.js +6 -6
  325. package/dist/components/ic-footer-link-group.js.map +1 -1
  326. package/dist/components/ic-footer-link.js +7 -8
  327. package/dist/components/ic-footer-link.js.map +1 -1
  328. package/dist/components/ic-footer.js +31 -18
  329. package/dist/components/ic-footer.js.map +1 -1
  330. package/dist/components/ic-hero.js +27 -15
  331. package/dist/components/ic-hero.js.map +1 -1
  332. package/dist/components/ic-horizontal-scroll2.js +30 -18
  333. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  334. package/dist/components/ic-input-component-container2.js +31 -9
  335. package/dist/components/ic-input-component-container2.js.map +1 -1
  336. package/dist/components/ic-input-container2.js +12 -5
  337. package/dist/components/ic-input-container2.js.map +1 -1
  338. package/dist/components/ic-input-label2.js +28 -8
  339. package/dist/components/ic-input-label2.js.map +1 -1
  340. package/dist/components/ic-input-validation2.js +15 -7
  341. package/dist/components/ic-input-validation2.js.map +1 -1
  342. package/dist/components/ic-link2.js +26 -19
  343. package/dist/components/ic-link2.js.map +1 -1
  344. package/dist/components/ic-loading-indicator2.js +89 -54
  345. package/dist/components/ic-loading-indicator2.js.map +1 -1
  346. package/dist/components/ic-menu-group.js +3 -3
  347. package/dist/components/ic-menu-group.js.map +1 -1
  348. package/dist/components/ic-menu-item2.js +18 -16
  349. package/dist/components/ic-menu-item2.js.map +1 -1
  350. package/dist/components/ic-menu2.js +81 -52
  351. package/dist/components/ic-menu2.js.map +1 -1
  352. package/dist/components/ic-navigation-button.js +23 -17
  353. package/dist/components/ic-navigation-button.js.map +1 -1
  354. package/dist/components/ic-navigation-group.js +45 -27
  355. package/dist/components/ic-navigation-group.js.map +1 -1
  356. package/dist/components/ic-navigation-item.js +68 -47
  357. package/dist/components/ic-navigation-item.js.map +1 -1
  358. package/dist/components/ic-navigation-menu2.js +21 -13
  359. package/dist/components/ic-navigation-menu2.js.map +1 -1
  360. package/dist/components/ic-page-header.js +44 -24
  361. package/dist/components/ic-page-header.js.map +1 -1
  362. package/dist/components/ic-pagination-item2.js +25 -12
  363. package/dist/components/ic-pagination-item2.js.map +1 -1
  364. package/dist/components/ic-pagination.js +58 -25
  365. package/dist/components/ic-pagination.js.map +1 -1
  366. package/dist/components/ic-popover-menu.js +55 -40
  367. package/dist/components/ic-popover-menu.js.map +1 -1
  368. package/dist/components/ic-radio-group.js +51 -26
  369. package/dist/components/ic-radio-group.js.map +1 -1
  370. package/dist/components/ic-radio-option.js +34 -22
  371. package/dist/components/ic-radio-option.js.map +1 -1
  372. package/dist/components/ic-search-bar.js +151 -61
  373. package/dist/components/ic-search-bar.js.map +1 -1
  374. package/dist/components/ic-section-container2.js +11 -4
  375. package/dist/components/ic-section-container2.js.map +1 -1
  376. package/dist/components/ic-select.js +228 -134
  377. package/dist/components/ic-select.js.map +1 -1
  378. package/dist/components/ic-side-navigation.js +103 -70
  379. package/dist/components/ic-side-navigation.js.map +1 -1
  380. package/dist/components/ic-skeleton.js +10 -3
  381. package/dist/components/ic-skeleton.js.map +1 -1
  382. package/dist/components/ic-skip-link.d.ts +11 -0
  383. package/dist/components/ic-skip-link.js +82 -0
  384. package/dist/components/ic-skip-link.js.map +1 -0
  385. package/dist/components/ic-status-tag.js +23 -4
  386. package/dist/components/ic-status-tag.js.map +1 -1
  387. package/dist/components/ic-step.js +31 -30
  388. package/dist/components/ic-step.js.map +1 -1
  389. package/dist/components/ic-stepper.js +48 -33
  390. package/dist/components/ic-stepper.js.map +1 -1
  391. package/dist/components/ic-switch.js +48 -20
  392. package/dist/components/ic-switch.js.map +1 -1
  393. package/dist/components/ic-tab-context.js +44 -25
  394. package/dist/components/ic-tab-context.js.map +1 -1
  395. package/dist/components/ic-tab-group.js +12 -7
  396. package/dist/components/ic-tab-group.js.map +1 -1
  397. package/dist/components/ic-tab-panel.js +16 -11
  398. package/dist/components/ic-tab-panel.js.map +1 -1
  399. package/dist/components/ic-tab.js +19 -13
  400. package/dist/components/ic-tab.js.map +1 -1
  401. package/dist/components/ic-text-field.js +173 -67
  402. package/dist/components/ic-text-field.js.map +1 -1
  403. package/dist/components/ic-theme.js +11 -5
  404. package/dist/components/ic-theme.js.map +1 -1
  405. package/dist/components/ic-toast-region.js +1 -2
  406. package/dist/components/ic-toast-region.js.map +1 -1
  407. package/dist/components/ic-toast.js +27 -19
  408. package/dist/components/ic-toast.js.map +1 -1
  409. package/dist/components/ic-toggle-button-group.js +59 -27
  410. package/dist/components/ic-toggle-button-group.js.map +1 -1
  411. package/dist/components/ic-toggle-button.js +79 -46
  412. package/dist/components/ic-toggle-button.js.map +1 -1
  413. package/dist/components/ic-tooltip2.js +42 -25
  414. package/dist/components/ic-tooltip2.js.map +1 -1
  415. package/dist/components/ic-top-navigation.js +59 -30
  416. package/dist/components/ic-top-navigation.js.map +1 -1
  417. package/dist/components/ic-typography2.js +51 -25
  418. package/dist/components/ic-typography2.js.map +1 -1
  419. package/dist/core/core.css +40 -29
  420. package/dist/core/core.esm.js +1 -1
  421. package/dist/core/core.esm.js.map +1 -1
  422. package/dist/core/index.esm.js.map +1 -1
  423. package/dist/core/p-052d1ff0.entry.js +2 -0
  424. package/dist/core/p-052d1ff0.entry.js.map +1 -0
  425. package/dist/core/p-08fbea60.entry.js +2 -0
  426. package/dist/core/p-08fbea60.entry.js.map +1 -0
  427. package/dist/core/p-0b757d78.entry.js +2 -0
  428. package/dist/core/p-0b757d78.entry.js.map +1 -0
  429. package/dist/core/p-0f34465d.entry.js +2 -0
  430. package/dist/core/p-0f34465d.entry.js.map +1 -0
  431. package/dist/core/p-111b3186.entry.js +2 -0
  432. package/dist/core/p-111b3186.entry.js.map +1 -0
  433. package/dist/core/p-144a31ec.entry.js +2 -0
  434. package/dist/core/p-144a31ec.entry.js.map +1 -0
  435. package/dist/core/{p-ca11666f.entry.js → p-180ea8ac.entry.js} +2 -2
  436. package/dist/core/p-180ea8ac.entry.js.map +1 -0
  437. package/dist/core/{p-39ab6387.entry.js → p-196e3d33.entry.js} +2 -2
  438. package/dist/core/p-196e3d33.entry.js.map +1 -0
  439. package/dist/core/{p-96b4ca6e.entry.js → p-1d6638c8.entry.js} +2 -2
  440. package/dist/core/p-1d6638c8.entry.js.map +1 -0
  441. package/dist/core/p-1d9a929b.entry.js +2 -0
  442. package/dist/core/p-1d9a929b.entry.js.map +1 -0
  443. package/dist/core/{p-27274ca8.entry.js → p-1fccec19.entry.js} +2 -2
  444. package/dist/core/p-1fccec19.entry.js.map +1 -0
  445. package/dist/core/p-269f841d.js +2 -0
  446. package/dist/core/p-269f841d.js.map +1 -0
  447. package/dist/core/{p-094f51b6.entry.js → p-27de359f.entry.js} +2 -2
  448. package/dist/core/p-27de359f.entry.js.map +1 -0
  449. package/dist/core/p-2cb55e86.entry.js +2 -0
  450. package/dist/core/p-2cb55e86.entry.js.map +1 -0
  451. package/dist/core/p-30a262d2.entry.js +2 -0
  452. package/dist/core/p-30a262d2.entry.js.map +1 -0
  453. package/dist/core/p-3b185c32.js.map +1 -1
  454. package/dist/core/{p-a178d53c.entry.js → p-40bc1f3e.entry.js} +2 -2
  455. package/dist/core/p-40bc1f3e.entry.js.map +1 -0
  456. package/dist/core/p-426ec638.js.map +1 -1
  457. package/dist/core/p-47b46637.entry.js +2 -0
  458. package/dist/core/p-47b46637.entry.js.map +1 -0
  459. package/dist/core/p-4a5ab31e.entry.js +2 -0
  460. package/dist/core/p-4a5ab31e.entry.js.map +1 -0
  461. package/dist/core/p-4e4014cd.entry.js +2 -0
  462. package/dist/core/p-4e4014cd.entry.js.map +1 -0
  463. package/dist/core/{p-25d3c3a6.entry.js → p-55eb89cc.entry.js} +2 -2
  464. package/dist/core/p-55eb89cc.entry.js.map +1 -0
  465. package/dist/core/p-59287779.entry.js +2 -0
  466. package/dist/core/p-59287779.entry.js.map +1 -0
  467. package/dist/core/p-59fc58e1.entry.js +2 -0
  468. package/dist/core/p-59fc58e1.entry.js.map +1 -0
  469. package/dist/core/p-5b7d8ee9.entry.js +2 -0
  470. package/dist/core/p-5b7d8ee9.entry.js.map +1 -0
  471. package/dist/core/{p-b404b307.entry.js → p-5fa5ba50.entry.js} +2 -2
  472. package/dist/core/p-5fa5ba50.entry.js.map +1 -0
  473. package/dist/core/p-68a5aaff.js.map +1 -1
  474. package/dist/core/{p-bbd4f487.entry.js → p-6c8e72b4.entry.js} +2 -2
  475. package/dist/core/p-6c8e72b4.entry.js.map +1 -0
  476. package/dist/core/p-6fdb8a79.entry.js +2 -0
  477. package/dist/core/p-6fdb8a79.entry.js.map +1 -0
  478. package/dist/core/{p-146b2788.entry.js → p-72140621.entry.js} +2 -2
  479. package/dist/core/p-72140621.entry.js.map +1 -0
  480. package/dist/core/p-76bdbc98.entry.js +2 -0
  481. package/dist/core/p-76bdbc98.entry.js.map +1 -0
  482. package/dist/core/{p-4cfe1dd8.entry.js → p-78c3ca49.entry.js} +2 -2
  483. package/dist/core/p-78c3ca49.entry.js.map +1 -0
  484. package/dist/core/p-78c51cba.entry.js +2 -0
  485. package/dist/core/p-78c51cba.entry.js.map +1 -0
  486. package/dist/core/{p-3d565739.entry.js → p-7ea79205.entry.js} +2 -2
  487. package/dist/core/p-7ea79205.entry.js.map +1 -0
  488. package/dist/core/p-8577de91.entry.js +2 -0
  489. package/dist/core/p-8577de91.entry.js.map +1 -0
  490. package/dist/core/{p-26bc7c62.entry.js → p-8856dff4.entry.js} +2 -2
  491. package/dist/core/p-8856dff4.entry.js.map +1 -0
  492. package/dist/core/p-8870d5d8.entry.js +2 -0
  493. package/dist/core/p-8870d5d8.entry.js.map +1 -0
  494. package/dist/core/{p-00587c99.entry.js → p-8b928cc9.entry.js} +2 -2
  495. package/dist/core/p-8b928cc9.entry.js.map +1 -0
  496. package/dist/core/p-8d1bee7a.entry.js +2 -0
  497. package/dist/core/p-8d1bee7a.entry.js.map +1 -0
  498. package/dist/core/p-8e4e97b4.js +3 -0
  499. package/dist/core/p-8e4e97b4.js.map +1 -0
  500. package/dist/core/p-8f319e1e.entry.js +2 -0
  501. package/dist/core/p-8f319e1e.entry.js.map +1 -0
  502. package/dist/core/p-90de3f5d.entry.js +2 -0
  503. package/dist/core/p-90de3f5d.entry.js.map +1 -0
  504. package/dist/core/p-912c8594.entry.js +2 -0
  505. package/dist/core/p-912c8594.entry.js.map +1 -0
  506. package/dist/core/{p-67b3cd55.entry.js → p-9206379d.entry.js} +2 -2
  507. package/dist/core/p-9206379d.entry.js.map +1 -0
  508. package/dist/core/p-94748b96.entry.js +2 -0
  509. package/dist/core/p-94748b96.entry.js.map +1 -0
  510. package/dist/core/p-98f906ba.entry.js +2 -0
  511. package/dist/core/p-98f906ba.entry.js.map +1 -0
  512. package/dist/core/{p-5b836707.entry.js → p-999102ee.entry.js} +2 -2
  513. package/dist/core/p-999102ee.entry.js.map +1 -0
  514. package/dist/core/p-9b741f96.entry.js +2 -0
  515. package/dist/core/p-9b741f96.entry.js.map +1 -0
  516. package/dist/core/p-9bcd2c77.entry.js +2 -0
  517. package/dist/core/p-9bcd2c77.entry.js.map +1 -0
  518. package/dist/core/p-9ee2fe04.entry.js +2 -0
  519. package/dist/core/p-9ee2fe04.entry.js.map +1 -0
  520. package/dist/core/{p-e2cf6e7e.entry.js → p-a56ec6d8.entry.js} +2 -2
  521. package/dist/core/p-a56ec6d8.entry.js.map +1 -0
  522. package/dist/core/p-abf767e3.entry.js +2 -0
  523. package/dist/core/p-abf767e3.entry.js.map +1 -0
  524. package/dist/core/p-b594bf26.entry.js +2 -0
  525. package/dist/core/p-b594bf26.entry.js.map +1 -0
  526. package/dist/core/{p-6e94c79c.entry.js → p-bd802c2f.entry.js} +2 -2
  527. package/dist/core/p-bd802c2f.entry.js.map +1 -0
  528. package/dist/core/p-bfee1e84.entry.js +2 -0
  529. package/dist/core/p-bfee1e84.entry.js.map +1 -0
  530. package/dist/core/{p-7f984e25.entry.js → p-c19cdc86.entry.js} +2 -2
  531. package/dist/core/p-c19cdc86.entry.js.map +1 -0
  532. package/dist/core/p-c2e091d7.js.map +1 -1
  533. package/dist/core/{p-73d6092d.entry.js → p-c3785d57.entry.js} +2 -2
  534. package/dist/core/p-c3785d57.entry.js.map +1 -0
  535. package/dist/core/{p-7b26ef60.entry.js → p-caa46d81.entry.js} +2 -2
  536. package/dist/core/p-caa46d81.entry.js.map +1 -0
  537. package/dist/core/p-ce0fb53a.entry.js +2 -0
  538. package/dist/core/p-ce0fb53a.entry.js.map +1 -0
  539. package/dist/core/p-de7542fa.entry.js +2 -0
  540. package/dist/core/p-de7542fa.entry.js.map +1 -0
  541. package/dist/core/{p-07aaf9c4.entry.js → p-df56bc50.entry.js} +2 -2
  542. package/dist/core/p-df56bc50.entry.js.map +1 -0
  543. package/dist/core/p-e1255160.js +2 -0
  544. package/dist/core/p-e1255160.js.map +1 -0
  545. package/dist/core/p-e25feba1.entry.js +2 -0
  546. package/dist/core/p-e25feba1.entry.js.map +1 -0
  547. package/dist/core/{p-c1db155d.entry.js → p-e30c6d79.entry.js} +2 -2
  548. package/dist/core/p-e30c6d79.entry.js.map +1 -0
  549. package/dist/core/p-f074ef5b.js.map +1 -1
  550. package/dist/core/{p-abdc2912.entry.js → p-f486d4f4.entry.js} +2 -2
  551. package/dist/core/p-f486d4f4.entry.js.map +1 -0
  552. package/dist/core/{p-a87d13b3.entry.js → p-fbce5f9a.entry.js} +2 -2
  553. package/dist/core/p-fbce5f9a.entry.js.map +1 -0
  554. package/dist/esm/app-globals-0f993ce5.js +5 -0
  555. package/dist/esm/app-globals-0f993ce5.js.map +1 -0
  556. package/dist/esm/core.js +14 -12
  557. package/dist/esm/core.js.map +1 -1
  558. package/dist/esm/{helpers-a72a277b.js → helpers-de6293bf.js} +31 -26
  559. package/dist/esm/helpers-de6293bf.js.map +1 -0
  560. package/dist/esm/ic-accordion-group.entry.js +31 -14
  561. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  562. package/dist/esm/ic-accordion.entry.js +65 -42
  563. package/dist/esm/ic-accordion.entry.js.map +1 -1
  564. package/dist/esm/ic-alert.entry.js +37 -16
  565. package/dist/esm/ic-alert.entry.js.map +1 -1
  566. package/dist/esm/ic-back-to-top.entry.js +29 -15
  567. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  568. package/dist/esm/ic-badge.entry.js +41 -22
  569. package/dist/esm/ic-badge.entry.js.map +1 -1
  570. package/dist/esm/ic-breadcrumb-group.entry.js +53 -37
  571. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  572. package/dist/esm/ic-breadcrumb.entry.js +35 -21
  573. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  574. package/dist/esm/ic-button_3.entry.js +246 -144
  575. package/dist/esm/ic-button_3.entry.js.map +1 -1
  576. package/dist/esm/ic-card-vertical.entry.js +53 -32
  577. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  578. package/dist/esm/ic-checkbox-group.entry.js +32 -9
  579. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  580. package/dist/esm/ic-checkbox.entry.js +48 -29
  581. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  582. package/dist/esm/ic-chip.entry.js +44 -23
  583. package/dist/esm/ic-chip.entry.js.map +1 -1
  584. package/dist/esm/ic-classification-banner.entry.js +20 -4
  585. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  586. package/dist/esm/ic-data-list.entry.js +11 -5
  587. package/dist/esm/ic-data-list.entry.js.map +1 -1
  588. package/dist/esm/ic-data-row.entry.js +28 -18
  589. package/dist/esm/ic-data-row.entry.js.map +1 -1
  590. package/dist/esm/ic-dialog.entry.js +141 -98
  591. package/dist/esm/ic-dialog.entry.js.map +1 -1
  592. package/dist/esm/ic-divider.entry.js +35 -15
  593. package/dist/esm/ic-divider.entry.js.map +1 -1
  594. package/dist/esm/ic-empty-state.entry.js +15 -9
  595. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  596. package/dist/esm/ic-footer-link-group.entry.js +8 -8
  597. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  598. package/dist/esm/ic-footer-link.entry.js +9 -10
  599. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  600. package/dist/esm/ic-footer.entry.js +32 -19
  601. package/dist/esm/ic-footer.entry.js.map +1 -1
  602. package/dist/esm/ic-hero.entry.js +29 -17
  603. package/dist/esm/ic-hero.entry.js.map +1 -1
  604. package/dist/esm/ic-horizontal-scroll.entry.js +32 -20
  605. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  606. package/dist/esm/ic-input-component-container_3.entry.js +126 -68
  607. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  608. package/dist/esm/ic-input-label_2.entry.js +45 -17
  609. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  610. package/dist/esm/ic-link.entry.js +28 -21
  611. package/dist/esm/ic-link.entry.js.map +1 -1
  612. package/dist/esm/ic-menu-group.entry.js +5 -5
  613. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  614. package/dist/esm/ic-menu-item.entry.js +20 -18
  615. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  616. package/dist/esm/ic-navigation-button.entry.js +25 -19
  617. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  618. package/dist/esm/ic-navigation-group.entry.js +45 -27
  619. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  620. package/dist/esm/ic-navigation-item.entry.js +69 -48
  621. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  622. package/dist/esm/ic-navigation-menu.entry.js +23 -15
  623. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  624. package/dist/esm/ic-page-header.entry.js +45 -25
  625. package/dist/esm/ic-page-header.entry.js.map +1 -1
  626. package/dist/esm/ic-pagination-item.entry.js +27 -14
  627. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  628. package/dist/esm/ic-pagination.entry.js +60 -27
  629. package/dist/esm/ic-pagination.entry.js.map +1 -1
  630. package/dist/esm/ic-popover-menu.entry.js +57 -42
  631. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  632. package/dist/esm/ic-radio-group.entry.js +53 -28
  633. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  634. package/dist/esm/ic-radio-option.entry.js +36 -24
  635. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  636. package/dist/esm/ic-search-bar.entry.js +153 -63
  637. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  638. package/dist/esm/ic-section-container.entry.js +12 -5
  639. package/dist/esm/ic-section-container.entry.js.map +1 -1
  640. package/dist/esm/ic-select.entry.js +230 -136
  641. package/dist/esm/ic-select.entry.js.map +1 -1
  642. package/dist/esm/ic-side-navigation.entry.js +104 -71
  643. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  644. package/dist/esm/ic-skeleton.entry.js +11 -4
  645. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  646. package/dist/esm/ic-skip-link.entry.js +50 -0
  647. package/dist/esm/ic-skip-link.entry.js.map +1 -0
  648. package/dist/esm/ic-status-tag.entry.js +25 -6
  649. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  650. package/dist/esm/ic-step.entry.js +33 -32
  651. package/dist/esm/ic-step.entry.js.map +1 -1
  652. package/dist/esm/ic-stepper.entry.js +50 -35
  653. package/dist/esm/ic-stepper.entry.js.map +1 -1
  654. package/dist/esm/ic-switch.entry.js +50 -22
  655. package/dist/esm/ic-switch.entry.js.map +1 -1
  656. package/dist/esm/ic-tab-context.entry.js +45 -26
  657. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  658. package/dist/esm/ic-tab-group.entry.js +14 -9
  659. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  660. package/dist/esm/ic-tab-panel.entry.js +16 -12
  661. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  662. package/dist/esm/ic-tab.entry.js +21 -15
  663. package/dist/esm/ic-tab.entry.js.map +1 -1
  664. package/dist/esm/ic-text-field.entry.js +175 -69
  665. package/dist/esm/ic-text-field.entry.js.map +1 -1
  666. package/dist/esm/ic-theme.entry.js +13 -7
  667. package/dist/esm/ic-theme.entry.js.map +1 -1
  668. package/dist/esm/ic-toast-region.entry.js +2 -3
  669. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  670. package/dist/esm/ic-toast.entry.js +29 -21
  671. package/dist/esm/ic-toast.entry.js.map +1 -1
  672. package/dist/esm/ic-toggle-button-group.entry.js +61 -29
  673. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  674. package/dist/esm/ic-toggle-button.entry.js +81 -48
  675. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  676. package/dist/esm/ic-top-navigation.entry.js +60 -31
  677. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  678. package/dist/esm/ic-typography.entry.js +53 -27
  679. package/dist/esm/ic-typography.entry.js.map +1 -1
  680. package/dist/esm/index-a7a720e7.js +2580 -0
  681. package/dist/esm/index-a7a720e7.js.map +1 -0
  682. package/dist/esm/loader.js +6 -4
  683. package/dist/esm/loader.js.map +1 -1
  684. package/dist/types/components/ic-accordion/ic-accordion.d.ts +3 -3
  685. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +5 -5
  686. package/dist/types/components/ic-alert/ic-alert.d.ts +1 -1
  687. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +6 -2
  688. package/dist/types/components/ic-back-to-top/ic-back-to-top.types.d.ts +1 -0
  689. package/dist/types/components/ic-badge/ic-badge.d.ts +1 -1
  690. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +1 -1
  691. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +2 -2
  692. package/dist/types/components/ic-button/ic-button.d.ts +6 -6
  693. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +10 -10
  694. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +6 -6
  695. package/dist/types/components/ic-data-list/ic-data-list.d.ts +1 -1
  696. package/dist/types/components/ic-data-row/ic-data-row.d.ts +2 -2
  697. package/dist/types/components/ic-dialog/ic-dialog.d.ts +9 -6
  698. package/dist/types/components/ic-divider/ic-divider.d.ts +3 -3
  699. package/dist/types/components/ic-footer/ic-footer.d.ts +4 -4
  700. package/dist/types/components/ic-hero/ic-hero.d.ts +3 -3
  701. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +6 -6
  702. package/dist/types/components/ic-input-label/ic-input-label.d.ts +2 -2
  703. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +4 -4
  704. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +2 -2
  705. package/dist/types/components/ic-menu/ic-menu.d.ts +10 -10
  706. package/dist/types/components/ic-menu/ic-menu.types.d.ts +1 -1
  707. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +2 -2
  708. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -1
  709. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +11 -4
  710. package/dist/types/components/ic-navigation-group/ic-navigation-group.types.d.ts +3 -0
  711. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +8 -8
  712. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +3 -3
  713. package/dist/types/components/ic-pagination/ic-pagination.d.ts +9 -9
  714. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +4 -4
  715. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +4 -4
  716. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -8
  717. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +6 -6
  718. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +12 -12
  719. package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
  720. package/dist/types/components/ic-select/ic-select.d.ts +20 -20
  721. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +12 -12
  722. package/dist/types/components/ic-skip-link/ic-skip-link.d.ts +33 -0
  723. package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -1
  724. package/dist/types/components/ic-switch/ic-switch.d.ts +1 -1
  725. package/dist/types/components/ic-tab/ic-tab.d.ts +2 -2
  726. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +7 -1
  727. package/dist/types/components/ic-text-field/ic-text-field.d.ts +34 -33
  728. package/dist/types/components/ic-theme/ic-theme.d.ts +2 -2
  729. package/dist/types/components/ic-toast/ic-toast.d.ts +3 -3
  730. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +1 -1
  731. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +3 -3
  732. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +9 -9
  733. package/dist/types/components/ic-typography/ic-typography.d.ts +1 -1
  734. package/dist/types/components.d.ts +292 -197
  735. package/dist/types/stencil-public-runtime.d.ts +9 -10
  736. package/dist/types/utils/helpers.d.ts +10 -10
  737. package/dist/types/utils/types.d.ts +8 -4
  738. package/hydrate/index.d.ts +53 -12
  739. package/hydrate/index.js +32492 -20573
  740. package/hydrate/index.mjs +34265 -0
  741. package/hydrate/package.json +7 -1
  742. package/loader/cdn.js +1 -3
  743. package/loader/index.cjs.js +1 -3
  744. package/loader/index.d.ts +3 -0
  745. package/loader/index.es2017.js +1 -3
  746. package/loader/index.js +1 -3
  747. package/package.json +3 -3
  748. package/vscode-data.json +65 -330
  749. package/dist/cjs/helpers-eca4c27e.js.map +0 -1
  750. package/dist/cjs/index-f982899d.js +0 -3047
  751. package/dist/cjs/index-f982899d.js.map +0 -1
  752. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +0 -349
  753. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +0 -1
  754. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +0 -129
  755. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +0 -1
  756. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +0 -329
  757. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +0 -1
  758. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +0 -145
  759. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +0 -1
  760. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +0 -450
  761. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +0 -1
  762. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +0 -162
  763. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +0 -1
  764. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js +0 -219
  765. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js.map +0 -1
  766. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +0 -332
  767. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +0 -1
  768. package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js +0 -214
  769. package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js.map +0 -1
  770. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +0 -284
  771. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +0 -1
  772. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +0 -188
  773. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +0 -1
  774. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +0 -188
  775. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +0 -1
  776. package/dist/collection/components/ic-data-list/test/basic/ic-data-list.spec.js +0 -161
  777. package/dist/collection/components/ic-data-list/test/basic/ic-data-list.spec.js.map +0 -1
  778. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +0 -74
  779. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +0 -1
  780. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +0 -448
  781. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +0 -1
  782. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +0 -109
  783. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +0 -1
  784. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +0 -101
  785. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +0 -1
  786. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +0 -181
  787. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +0 -1
  788. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +0 -46
  789. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +0 -1
  790. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +0 -66
  791. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +0 -1
  792. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +0 -109
  793. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +0 -1
  794. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +0 -223
  795. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +0 -1
  796. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +0 -172
  797. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +0 -1
  798. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js +0 -38
  799. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js.map +0 -1
  800. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +0 -84
  801. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +0 -1
  802. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +0 -89
  803. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +0 -1
  804. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +0 -120
  805. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +0 -1
  806. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js +0 -149
  807. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js.map +0 -1
  808. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +0 -1108
  809. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +0 -1
  810. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js +0 -94
  811. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js.map +0 -1
  812. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +0 -121
  813. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +0 -1
  814. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +0 -95
  815. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +0 -1
  816. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +0 -309
  817. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +0 -1
  818. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +0 -130
  819. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +0 -1
  820. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js +0 -176
  821. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js.map +0 -1
  822. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +0 -291
  823. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +0 -1
  824. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +0 -390
  825. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +0 -1
  826. package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js +0 -79
  827. package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js.map +0 -1
  828. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +0 -398
  829. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +0 -1
  830. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +0 -389
  831. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +0 -1
  832. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +0 -553
  833. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +0 -1
  834. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js +0 -69
  835. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js.map +0 -1
  836. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +0 -1672
  837. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +0 -1
  838. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +0 -503
  839. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +0 -1
  840. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +0 -89
  841. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +0 -1
  842. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +0 -26
  843. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +0 -1
  844. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +0 -176
  845. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +0 -1
  846. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +0 -752
  847. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +0 -1
  848. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +0 -93
  849. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +0 -1
  850. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +0 -175
  851. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +0 -1
  852. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +0 -390
  853. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +0 -1
  854. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +0 -50
  855. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +0 -1
  856. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +0 -312
  857. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +0 -1
  858. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +0 -341
  859. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +0 -1
  860. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +0 -72
  861. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +0 -1
  862. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +0 -79
  863. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +0 -1
  864. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +0 -314
  865. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +0 -1
  866. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +0 -64
  867. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +0 -1
  868. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js +0 -126
  869. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js.map +0 -1
  870. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js +0 -337
  871. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js.map +0 -1
  872. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +0 -321
  873. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +0 -1
  874. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +0 -314
  875. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +0 -1
  876. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +0 -407
  877. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +0 -1
  878. package/dist/collection/testspec.setup.js +0 -77
  879. package/dist/collection/testspec.setup.js.map +0 -1
  880. package/dist/core/p-00587c99.entry.js.map +0 -1
  881. package/dist/core/p-07aaf9c4.entry.js.map +0 -1
  882. package/dist/core/p-094f51b6.entry.js.map +0 -1
  883. package/dist/core/p-146b2788.entry.js.map +0 -1
  884. package/dist/core/p-15082ea5.entry.js +0 -2
  885. package/dist/core/p-15082ea5.entry.js.map +0 -1
  886. package/dist/core/p-174de9d7.entry.js +0 -2
  887. package/dist/core/p-174de9d7.entry.js.map +0 -1
  888. package/dist/core/p-17f9921d.entry.js +0 -2
  889. package/dist/core/p-17f9921d.entry.js.map +0 -1
  890. package/dist/core/p-246ea059.entry.js +0 -2
  891. package/dist/core/p-246ea059.entry.js.map +0 -1
  892. package/dist/core/p-25d3c3a6.entry.js.map +0 -1
  893. package/dist/core/p-26bc7c62.entry.js.map +0 -1
  894. package/dist/core/p-27274ca8.entry.js.map +0 -1
  895. package/dist/core/p-39ab6387.entry.js.map +0 -1
  896. package/dist/core/p-3d565739.entry.js.map +0 -1
  897. package/dist/core/p-3ea4a005.entry.js +0 -2
  898. package/dist/core/p-3ea4a005.entry.js.map +0 -1
  899. package/dist/core/p-41b7c67c.entry.js +0 -2
  900. package/dist/core/p-41b7c67c.entry.js.map +0 -1
  901. package/dist/core/p-4572b2ba.entry.js +0 -2
  902. package/dist/core/p-4572b2ba.entry.js.map +0 -1
  903. package/dist/core/p-4cfe1dd8.entry.js.map +0 -1
  904. package/dist/core/p-5b836707.entry.js.map +0 -1
  905. package/dist/core/p-67b3cd55.entry.js.map +0 -1
  906. package/dist/core/p-67b8a829.entry.js +0 -2
  907. package/dist/core/p-67b8a829.entry.js.map +0 -1
  908. package/dist/core/p-6b5e91e2.js +0 -3
  909. package/dist/core/p-6b5e91e2.js.map +0 -1
  910. package/dist/core/p-6dfa5a4b.entry.js +0 -2
  911. package/dist/core/p-6dfa5a4b.entry.js.map +0 -1
  912. package/dist/core/p-6e94c79c.entry.js.map +0 -1
  913. package/dist/core/p-73d6092d.entry.js.map +0 -1
  914. package/dist/core/p-770c52a7.entry.js +0 -2
  915. package/dist/core/p-770c52a7.entry.js.map +0 -1
  916. package/dist/core/p-7b26ef60.entry.js.map +0 -1
  917. package/dist/core/p-7f984e25.entry.js.map +0 -1
  918. package/dist/core/p-86caada0.entry.js +0 -2
  919. package/dist/core/p-86caada0.entry.js.map +0 -1
  920. package/dist/core/p-8c03b8b5.entry.js +0 -2
  921. package/dist/core/p-8c03b8b5.entry.js.map +0 -1
  922. package/dist/core/p-8fdb9b16.entry.js +0 -2
  923. package/dist/core/p-8fdb9b16.entry.js.map +0 -1
  924. package/dist/core/p-91a221b5.entry.js +0 -2
  925. package/dist/core/p-91a221b5.entry.js.map +0 -1
  926. package/dist/core/p-96b4ca6e.entry.js.map +0 -1
  927. package/dist/core/p-9e0c2c19.entry.js +0 -2
  928. package/dist/core/p-9e0c2c19.entry.js.map +0 -1
  929. package/dist/core/p-9f569f90.entry.js +0 -2
  930. package/dist/core/p-9f569f90.entry.js.map +0 -1
  931. package/dist/core/p-a178d53c.entry.js.map +0 -1
  932. package/dist/core/p-a3b7a147.entry.js +0 -2
  933. package/dist/core/p-a3b7a147.entry.js.map +0 -1
  934. package/dist/core/p-a72685f6.entry.js +0 -2
  935. package/dist/core/p-a72685f6.entry.js.map +0 -1
  936. package/dist/core/p-a87d13b3.entry.js.map +0 -1
  937. package/dist/core/p-abdc2912.entry.js.map +0 -1
  938. package/dist/core/p-b260b967.entry.js +0 -2
  939. package/dist/core/p-b260b967.entry.js.map +0 -1
  940. package/dist/core/p-b404b307.entry.js.map +0 -1
  941. package/dist/core/p-b6ce9ca3.entry.js +0 -2
  942. package/dist/core/p-b6ce9ca3.entry.js.map +0 -1
  943. package/dist/core/p-b6e010f3.entry.js +0 -2
  944. package/dist/core/p-b6e010f3.entry.js.map +0 -1
  945. package/dist/core/p-bbd4f487.entry.js.map +0 -1
  946. package/dist/core/p-bd9f3961.entry.js +0 -2
  947. package/dist/core/p-bd9f3961.entry.js.map +0 -1
  948. package/dist/core/p-c1db155d.entry.js.map +0 -1
  949. package/dist/core/p-c7bcdb8e.entry.js +0 -2
  950. package/dist/core/p-c7bcdb8e.entry.js.map +0 -1
  951. package/dist/core/p-ca11666f.entry.js.map +0 -1
  952. package/dist/core/p-cda4aca9.js +0 -2
  953. package/dist/core/p-cda4aca9.js.map +0 -1
  954. package/dist/core/p-d0afa458.entry.js +0 -2
  955. package/dist/core/p-d0afa458.entry.js.map +0 -1
  956. package/dist/core/p-d8690838.entry.js +0 -2
  957. package/dist/core/p-d8690838.entry.js.map +0 -1
  958. package/dist/core/p-dededae6.entry.js +0 -2
  959. package/dist/core/p-dededae6.entry.js.map +0 -1
  960. package/dist/core/p-df957570.entry.js +0 -2
  961. package/dist/core/p-df957570.entry.js.map +0 -1
  962. package/dist/core/p-e2cf6e7e.entry.js.map +0 -1
  963. package/dist/core/p-e6189634.entry.js +0 -2
  964. package/dist/core/p-e6189634.entry.js.map +0 -1
  965. package/dist/core/p-e6dc3cd1.entry.js +0 -2
  966. package/dist/core/p-e6dc3cd1.entry.js.map +0 -1
  967. package/dist/core/p-e831277e.entry.js +0 -2
  968. package/dist/core/p-e831277e.entry.js.map +0 -1
  969. package/dist/core/p-eb7c589b.entry.js +0 -2
  970. package/dist/core/p-eb7c589b.entry.js.map +0 -1
  971. package/dist/core/p-f65179fe.entry.js +0 -2
  972. package/dist/core/p-f65179fe.entry.js.map +0 -1
  973. package/dist/core/p-fd60eef7.entry.js +0 -2
  974. package/dist/core/p-fd60eef7.entry.js.map +0 -1
  975. package/dist/core/p-fd9f3fd0.entry.js +0 -2
  976. package/dist/core/p-fd9f3fd0.entry.js.map +0 -1
  977. package/dist/esm/helpers-a72a277b.js.map +0 -1
  978. package/dist/esm/index-d1d2c456.js +0 -3016
  979. package/dist/esm/index-d1d2c456.js.map +0 -1
  980. package/dist/esm/polyfills/core-js.js +0 -11
  981. package/dist/esm/polyfills/dom.js +0 -79
  982. package/dist/esm/polyfills/es5-html-element.js +0 -1
  983. package/dist/esm/polyfills/index.js +0 -34
  984. package/dist/esm/polyfills/system.js +0 -6
  985. package/dist/types/testspec.setup.d.ts +0 -24
@@ -1,9 +1,10 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { n as getCurrentDeviceSize, E as IC_DEVICE_SIZES, k as getBrandForegroundAppearance, c as checkResizeObserver, f as renderDynamicChildSlots, i as isSlotUsed, e as IcBrandForegroundEnum, F as hasClassificationBanner } from './helpers.js';
2
+ import { E as IC_DEVICE_SIZES, k as getBrandForegroundAppearance, n as getCurrentDeviceSize, c as checkResizeObserver, f as renderDynamicChildSlots, i as isSlotUsed, e as IcBrandForegroundEnum, F as hasClassificationBanner } from './helpers.js';
3
3
  import { d as defineCustomElement$3 } from './ic-section-container2.js';
4
4
  import { d as defineCustomElement$2 } from './ic-typography2.js';
5
5
 
6
6
  const icFooterCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--footer-compliance-padding:1rem 0}:host(.ic-footer-sparse){--footer-links-padding:1.5rem 0;--footer-logo-margin-bottom:calc(var(--ic-space-md) + var(--ic-space-xxs));--footer-link-inner-flex-direction:row}:host(.ic-footer-small){--footer-links-padding:0 0;--footer-logo-margin-bottom:var(--ic-space-md);--footer-link-inner-flex-direction:column}:host(.ic-footer-foreground-dark){--ic-footer-background:var(--ic-brand-color-secondary-light);--ic-footer-bottom-background:var(--ic-brand-color-tertiary-light);--ic-footer-keyline:var(--ic-state-layer-darken-20);--ic-footer-text:var(--ic-color-text-primary-light);--ic-footer-link:var(--ic-color-text-primary-light);--ic-footer-icon:var(--ic-color-icon-neutral);--ic-footer-chevron-icon:var(--ic-color-icon-neutral);--ic-footer-logo:var(--ic-color-icon-neutral);--ic-footer-hover:var(--ic-architectural-700-state-layer-10);--ic-footer-pressed:var(--ic-architectural-700-state-layer-20)}:host(.ic-footer-small.ic-footer-ungrouped){--footer-links-padding:var(--ic-space-md) 0 0 0}footer{display:flex;flex-direction:column;width:100%}.footer-description{background-color:var(--ic-footer-background);color:var(--ic-footer-text);--ic-typography-color:var(--ic-footer-text);border-bottom:var(--ic-space-1px) solid var(--ic-footer-keyline)}.footer-description-inner{padding:1rem 0}.footer-links{padding:var(--footer-links-padding);background-color:var(--ic-footer-background);color:var(--ic-footer-link);--ic-typography-color:var(--ic-footer-link)}.footer-links-inner{display:flex;flex-direction:var(--footer-link-inner-flex-direction)}.footer-compliance{background-color:var(--ic-footer-bottom-background);color:var(--ic-footer-text);--ic-typography-color:var(--ic-footer-text)}.footer-compliance-inner{padding:var(--footer-compliance-padding)}.footer-logo{margin-bottom:var(--footer-logo-margin-bottom);display:flex;gap:var(--ic-space-xxl)}.footer-logo>::slotted(){margin-right:var(--ic-space-md)}.footer-caption{margin-bottom:var(--ic-space-md)}.classification-spacing{margin-bottom:var(--ic-space-lg)}@media (forced-colors: active){footer{border-top:var(--ic-border-hc)}}";
7
+ const IcFooterStyle0 = icFooterCss;
7
8
 
8
9
  const Footer = /*@__PURE__*/ proxyCustomElement(class Footer extends HTMLElement {
9
10
  constructor() {
@@ -13,6 +14,24 @@ const Footer = /*@__PURE__*/ proxyCustomElement(class Footer extends HTMLElement
13
14
  this.footerResized = createEvent(this, "footerResized", 7);
14
15
  this.resizeObserver = null;
15
16
  this.hostMutationObserver = null;
17
+ this.deviceSize = IC_DEVICE_SIZES.XL;
18
+ this.foregroundColor = getBrandForegroundAppearance();
19
+ /**
20
+ * The alignment of the section containers used within the footer.
21
+ */
22
+ this.aligned = "left";
23
+ /**
24
+ * The screen size breakpoint at which to switch to the small layout.
25
+ */
26
+ this.breakpoint = "medium";
27
+ /**
28
+ * If `true`, the footer will display the crown copyright at the bottom.
29
+ */
30
+ this.copyright = true;
31
+ /**
32
+ * If `true`, the footer will be set up to handle link groups instead of standalone links.
33
+ */
34
+ this.groupLinks = false;
16
35
  this.resizeObserverCallback = (currSize) => {
17
36
  if (currSize !== this.deviceSize) {
18
37
  this.deviceSize = currSize;
@@ -20,20 +39,14 @@ const Footer = /*@__PURE__*/ proxyCustomElement(class Footer extends HTMLElement
20
39
  this.footerResized.emit();
21
40
  };
22
41
  this.runResizeObserver = () => {
23
- this.resizeObserver = new ResizeObserver(() => {
24
- const currSize = getCurrentDeviceSize();
25
- this.resizeObserverCallback(currSize);
26
- });
27
- this.resizeObserver.observe(this.footerEl);
42
+ if (this.footerEl) {
43
+ this.resizeObserver = new ResizeObserver(() => {
44
+ const currSize = getCurrentDeviceSize();
45
+ this.resizeObserverCallback(currSize);
46
+ });
47
+ this.resizeObserver.observe(this.footerEl);
48
+ }
28
49
  };
29
- this.deviceSize = IC_DEVICE_SIZES.XL;
30
- this.foregroundColor = getBrandForegroundAppearance();
31
- this.aligned = "left";
32
- this.breakpoint = "medium";
33
- this.caption = undefined;
34
- this.copyright = true;
35
- this.description = undefined;
36
- this.groupLinks = false;
37
50
  }
38
51
  disconnectedCallback() {
39
52
  var _a;
@@ -78,7 +91,7 @@ const Footer = /*@__PURE__*/ proxyCustomElement(class Footer extends HTMLElement
78
91
  isSlotUsed(el, "caption") ||
79
92
  caption ||
80
93
  copyright;
81
- return (h(Host, { class: {
94
+ return (h(Host, { key: 'd7802c150c67f71e0f1028b1516a5f17d08df237', class: {
82
95
  ["ic-footer"]: true,
83
96
  [`ic-footer-${small ? "small" : "sparse"}`]: true,
84
97
  [`ic-footer-${groupLinks ? "grouped" : "ungrouped"}`]: true,
@@ -86,15 +99,15 @@ const Footer = /*@__PURE__*/ proxyCustomElement(class Footer extends HTMLElement
86
99
  // Slots will be able to infer their own color
87
100
  [`ic-footer-${IcBrandForegroundEnum.Dark}`]: foregroundColor === IcBrandForegroundEnum.Dark,
88
101
  [`ic-footer-${IcBrandForegroundEnum.Light}`]: foregroundColor === IcBrandForegroundEnum.Light,
89
- } }, h("footer", { ref: (footerEl) => (this.footerEl = footerEl) }, (isSlotUsed(el, "description") || description) && (h("div", { class: "footer-description" }, h("ic-section-container", { aligned: aligned, fullHeight: true }, h("div", { class: "footer-description-inner" }, h("ic-typography", { variant: "body" }, h("slot", { name: "description" }, description)))))), isSlotUsed(el, "link") && (h("div", { class: "footer-links" }, groupLinks && small ? (h("div", { class: "footer-links-inner", role: "list" }, h("slot", { name: "link" }))) : (h("ic-section-container", { fullHeight: true, aligned: aligned }, h("div", { class: "footer-links-inner", role: "list" }, h("slot", { name: "link" })))))), showComplianceSection && (h("div", { class: "footer-compliance" }, h("ic-section-container", { aligned: aligned, fullHeight: true }, h("div", { class: "footer-compliance-inner" }, isSlotUsed(el, "logo") && (h("div", { class: "footer-logo" }, h("slot", { name: "logo" }))), (isSlotUsed(el, "caption") || caption) && (h("div", { class: "footer-caption" }, h("ic-typography", { variant: deviceSize <= IC_DEVICE_SIZES.M ? "caption" : "body" }, h("slot", { name: "caption" }, caption)))), copyright && (h("div", { class: {
102
+ } }, h("footer", { key: 'bf30d0015a1732313db8d4d04aa14c14b10015f6', ref: (el) => (this.footerEl = el) }, (isSlotUsed(el, "description") || description) && (h("div", { key: 'b283e7729023c3ff75f8d0a017cd9f39ce968318', class: "footer-description" }, h("ic-section-container", { key: 'daccd54f6f9a659a9559ec0b1d77142884300a35', aligned: aligned, fullHeight: true }, h("div", { key: '72cee4f778bb51065706f6a9694b7a96a37a248c', class: "footer-description-inner" }, h("ic-typography", { key: '6893f61de603419f356a6c8cd632e9a12980d2d7', variant: "body" }, h("slot", { key: 'ff10f4b4408fe9d4afedcc1d34f82a3dd42595bc', name: "description" }, description)))))), isSlotUsed(el, "link") && (h("div", { key: '2386ae3e8434cd00a8e37b9baf9956108e20baef', class: "footer-links" }, groupLinks && small ? (h("div", { class: "footer-links-inner", role: "list" }, h("slot", { name: "link" }))) : (h("ic-section-container", { fullHeight: true, aligned: aligned }, h("div", { class: "footer-links-inner", role: "list" }, h("slot", { name: "link" })))))), showComplianceSection && (h("div", { key: 'b09e28618c6a1a9b9183425e0732887fcfac7877', class: "footer-compliance" }, h("ic-section-container", { key: '24504e13bec8036f326697782e79027689db77d8', aligned: aligned, fullHeight: true }, h("div", { key: '560ef8300cc517104f5cd7af6eb5441b788f36b5', class: "footer-compliance-inner" }, isSlotUsed(el, "logo") && (h("div", { key: '54e207b1c8c83f385dd0e0cabae6ba00523e2eda', class: "footer-logo" }, h("slot", { key: 'cfc3acc0279e81ea2f34b8876c73c8222b426ff5', name: "logo" }))), (isSlotUsed(el, "caption") || caption) && (h("div", { key: 'b5edcb7d044fe277aeca68544205335fceabf0da', class: "footer-caption" }, h("ic-typography", { key: '2b81a3c1af57f8799a7cfdb10ba7f5d22c788487', variant: deviceSize <= IC_DEVICE_SIZES.M ? "caption" : "body" }, h("slot", { key: 'f404e47c0c9f9d67f6024c7cb69eaa8488a1bb78', name: "caption" }, caption)))), copyright && (h("div", { key: '9c7939d1011a22520f76220b4bd1687aa1c6b319', class: {
90
103
  ["footer-copyright"]: true,
91
104
  ["classification-spacing"]: hasClassificationBanner(),
92
- } }, h("ic-typography", { variant: deviceSize <= IC_DEVICE_SIZES.M
105
+ } }, h("ic-typography", { key: '10a7ca6941be1d02f2207c8aeca0c37d57f58566', variant: deviceSize <= IC_DEVICE_SIZES.M
93
106
  ? "caption-uppercase"
94
107
  : "label-uppercase" }, "\u00A9 Crown Copyright"))))))))));
95
108
  }
96
109
  get el() { return this; }
97
- static get style() { return icFooterCss; }
110
+ static get style() { return IcFooterStyle0; }
98
111
  }, [1, "ic-footer", {
99
112
  "aligned": [1],
100
113
  "breakpoint": [1],
@@ -1 +1 @@
1
- {"file":"ic-footer.js","mappings":"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","names":[],"sources":["src/components/ic-footer/ic-footer.css?tag=ic-footer&encapsulation=shadow","src/components/ic-footer/ic-footer.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n\n --footer-compliance-padding: 1rem 0;\n}\n\n:host(.ic-footer-sparse) {\n --footer-links-padding: 1.5rem 0;\n --footer-logo-margin-bottom: calc(var(--ic-space-md) + var(--ic-space-xxs));\n --footer-link-inner-flex-direction: row;\n}\n\n:host(.ic-footer-small) {\n --footer-links-padding: 0 0;\n --footer-logo-margin-bottom: var(--ic-space-md);\n --footer-link-inner-flex-direction: column;\n}\n\n:host(.ic-footer-foreground-dark) {\n --ic-footer-background: var(--ic-brand-color-secondary-light);\n --ic-footer-bottom-background: var(--ic-brand-color-tertiary-light);\n --ic-footer-keyline: var(--ic-state-layer-darken-20);\n --ic-footer-text: var(--ic-color-text-primary-light);\n --ic-footer-link: var(--ic-color-text-primary-light);\n --ic-footer-icon: var(--ic-color-icon-neutral);\n --ic-footer-chevron-icon: var(--ic-color-icon-neutral);\n --ic-footer-logo: var(--ic-color-icon-neutral);\n --ic-footer-hover: var(--ic-architectural-700-state-layer-10);\n --ic-footer-pressed: var(--ic-architectural-700-state-layer-20);\n}\n\n:host(.ic-footer-small.ic-footer-ungrouped) {\n --footer-links-padding: var(--ic-space-md) 0 0 0;\n}\n\n/* Main inner footer element */\nfooter {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Description */\n\n.footer-description {\n background-color: var(--ic-footer-background);\n color: var(--ic-footer-text);\n\n --ic-typography-color: var(--ic-footer-text);\n\n border-bottom: var(--ic-space-1px) solid var(--ic-footer-keyline);\n}\n\n.footer-description-inner {\n padding: 1rem 0;\n}\n\n/* Links */\n\n.footer-links {\n padding: var(--footer-links-padding);\n background-color: var(--ic-footer-background);\n color: var(--ic-footer-link);\n\n --ic-typography-color: var(--ic-footer-link);\n}\n\n.footer-links-inner {\n display: flex;\n flex-direction: var(--footer-link-inner-flex-direction);\n}\n\n/* Compliance */\n\n.footer-compliance {\n background-color: var(--ic-footer-bottom-background);\n color: var(--ic-footer-text);\n\n --ic-typography-color: var(--ic-footer-text);\n}\n\n.footer-compliance-inner {\n padding: var(--footer-compliance-padding);\n}\n\n.footer-logo {\n margin-bottom: var(--footer-logo-margin-bottom);\n display: flex;\n gap: var(--ic-space-xxl);\n}\n\n.footer-logo > ::slotted() {\n margin-right: var(--ic-space-md);\n}\n\n.footer-caption {\n margin-bottom: var(--ic-space-md);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n@media (forced-colors: active) {\n footer {\n border-top: var(--ic-border-hc);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from \"@stencil/core\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\nimport {\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n checkResizeObserver,\n hasClassificationBanner,\n isSlotUsed,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcAlignment,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../../utils/types\";\nimport { IcFooterBreakpoints } from \"./ic-footer.types\";\n\n/**\n * @slot description - Content will be rendered at the top of the footer.\n * @slot link - Content will be rendered between description and logos.\n * @slot logo - Content will be rendered underneath footer links.\n * @slot caption - Content will be rendered above Crown Copyright.\n */\n\n@Component({\n tag: \"ic-footer\",\n styleUrl: \"ic-footer.css\",\n shadow: true,\n})\nexport class Footer {\n private footerEl: HTMLElement;\n private resizeObserver: ResizeObserver = null;\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcFooterElement;\n\n @State() deviceSize: number = IC_DEVICE_SIZES.XL;\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n\n /**\n * The alignment of the section containers used within the footer.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * The screen size breakpoint at which to switch to the small layout.\n */\n @Prop() breakpoint?: IcFooterBreakpoints = \"medium\";\n\n /**\n * The caption displayed at the bottom of the footer.\n */\n @Prop() caption: string;\n\n /**\n * If `true`, the footer will display the crown copyright at the bottom.\n */\n @Prop() copyright: boolean = true;\n\n /**\n * The description displayed at the top of the footer.\n */\n @Prop() description: string;\n\n /**\n * If `true`, the footer will be set up to handle link groups instead of standalone links.\n */\n @Prop() groupLinks?: boolean = false;\n\n /**\n * @internal Triggers on page resize and triggers style changes in footer links and link groups\n */\n @Event() footerResized: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n\n this.hostMutationObserver = new MutationObserver((mutationList) => {\n return renderDynamicChildSlots(mutationList, \"link\", this);\n });\n\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.foregroundColor = ev.detail.mode;\n }\n\n private isSmall() {\n const bp = this.breakpoint;\n\n return bp === \"extra small\"\n ? this.deviceSize < IC_DEVICE_SIZES.XS\n : bp === \"small\"\n ? this.deviceSize < IC_DEVICE_SIZES.S\n : bp === \"medium\"\n ? this.deviceSize < IC_DEVICE_SIZES.M\n : bp === \"large\"\n ? this.deviceSize < IC_DEVICE_SIZES.L\n : bp === \"extra large\"\n ? this.deviceSize < IC_DEVICE_SIZES.XL\n : false;\n }\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n this.footerResized.emit();\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.footerEl);\n };\n\n render() {\n const {\n aligned,\n caption,\n copyright,\n description,\n deviceSize,\n el,\n foregroundColor,\n groupLinks,\n } = this;\n const small = this.isSmall();\n\n const showComplianceSection =\n isSlotUsed(el, \"logo\") ||\n isSlotUsed(el, \"caption\") ||\n caption ||\n copyright;\n\n return (\n <Host\n class={{\n [\"ic-footer\"]: true,\n [`ic-footer-${small ? \"small\" : \"sparse\"}`]: true,\n [`ic-footer-${groupLinks ? \"grouped\" : \"ungrouped\"}`]: true,\n [`ic-footer-foreground-${foregroundColor}`]: true,\n // Slots will be able to infer their own color\n [`ic-footer-${IcBrandForegroundEnum.Dark}`]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [`ic-footer-${IcBrandForegroundEnum.Light}`]:\n foregroundColor === IcBrandForegroundEnum.Light,\n }}\n >\n <footer ref={(footerEl) => (this.footerEl = footerEl)}>\n {/* Description */}\n {(isSlotUsed(el, \"description\") || description) && (\n <div class=\"footer-description\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-description-inner\">\n <ic-typography variant=\"body\">\n <slot name=\"description\">{description}</slot>\n </ic-typography>\n </div>\n </ic-section-container>\n </div>\n )}\n\n {/* Links */}\n {isSlotUsed(el, \"link\") && (\n <div class=\"footer-links\">\n {groupLinks && small ? (\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n ) : (\n <ic-section-container fullHeight aligned={aligned}>\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n </ic-section-container>\n )}\n </div>\n )}\n\n {/* Compliance (logo, caption, copyright) */}\n {showComplianceSection && (\n <div class=\"footer-compliance\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-compliance-inner\">\n {isSlotUsed(el, \"logo\") && (\n <div class=\"footer-logo\">\n <slot name=\"logo\" />\n </div>\n )}\n {(isSlotUsed(el, \"caption\") || caption) && (\n <div class=\"footer-caption\">\n <ic-typography\n variant={\n deviceSize <= IC_DEVICE_SIZES.M ? \"caption\" : \"body\"\n }\n >\n <slot name=\"caption\">{caption}</slot>\n </ic-typography>\n </div>\n )}\n {copyright && (\n <div\n class={{\n [\"footer-copyright\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n <ic-typography\n variant={\n deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption-uppercase\"\n : \"label-uppercase\"\n }\n >\n &copy; Crown Copyright\n </ic-typography>\n </div>\n )}\n </div>\n </ic-section-container>\n </div>\n )}\n </footer>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-footer.js","mappings":"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","names":[],"sources":["src/components/ic-footer/ic-footer.css?tag=ic-footer&encapsulation=shadow","src/components/ic-footer/ic-footer.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n\n --footer-compliance-padding: 1rem 0;\n}\n\n:host(.ic-footer-sparse) {\n --footer-links-padding: 1.5rem 0;\n --footer-logo-margin-bottom: calc(var(--ic-space-md) + var(--ic-space-xxs));\n --footer-link-inner-flex-direction: row;\n}\n\n:host(.ic-footer-small) {\n --footer-links-padding: 0 0;\n --footer-logo-margin-bottom: var(--ic-space-md);\n --footer-link-inner-flex-direction: column;\n}\n\n:host(.ic-footer-foreground-dark) {\n --ic-footer-background: var(--ic-brand-color-secondary-light);\n --ic-footer-bottom-background: var(--ic-brand-color-tertiary-light);\n --ic-footer-keyline: var(--ic-state-layer-darken-20);\n --ic-footer-text: var(--ic-color-text-primary-light);\n --ic-footer-link: var(--ic-color-text-primary-light);\n --ic-footer-icon: var(--ic-color-icon-neutral);\n --ic-footer-chevron-icon: var(--ic-color-icon-neutral);\n --ic-footer-logo: var(--ic-color-icon-neutral);\n --ic-footer-hover: var(--ic-architectural-700-state-layer-10);\n --ic-footer-pressed: var(--ic-architectural-700-state-layer-20);\n}\n\n:host(.ic-footer-small.ic-footer-ungrouped) {\n --footer-links-padding: var(--ic-space-md) 0 0 0;\n}\n\n/* Main inner footer element */\nfooter {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Description */\n\n.footer-description {\n background-color: var(--ic-footer-background);\n color: var(--ic-footer-text);\n\n --ic-typography-color: var(--ic-footer-text);\n\n border-bottom: var(--ic-space-1px) solid var(--ic-footer-keyline);\n}\n\n.footer-description-inner {\n padding: 1rem 0;\n}\n\n/* Links */\n\n.footer-links {\n padding: var(--footer-links-padding);\n background-color: var(--ic-footer-background);\n color: var(--ic-footer-link);\n\n --ic-typography-color: var(--ic-footer-link);\n}\n\n.footer-links-inner {\n display: flex;\n flex-direction: var(--footer-link-inner-flex-direction);\n}\n\n/* Compliance */\n\n.footer-compliance {\n background-color: var(--ic-footer-bottom-background);\n color: var(--ic-footer-text);\n\n --ic-typography-color: var(--ic-footer-text);\n}\n\n.footer-compliance-inner {\n padding: var(--footer-compliance-padding);\n}\n\n.footer-logo {\n margin-bottom: var(--footer-logo-margin-bottom);\n display: flex;\n gap: var(--ic-space-xxl);\n}\n\n.footer-logo > ::slotted() {\n margin-right: var(--ic-space-md);\n}\n\n.footer-caption {\n margin-bottom: var(--ic-space-md);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n@media (forced-colors: active) {\n footer {\n border-top: var(--ic-border-hc);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from \"@stencil/core\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\nimport {\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n checkResizeObserver,\n hasClassificationBanner,\n isSlotUsed,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcAlignment,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../../utils/types\";\nimport { IcFooterBreakpoints } from \"./ic-footer.types\";\n\n/**\n * @slot description - Content will be rendered at the top of the footer.\n * @slot link - Content will be rendered between description and logos.\n * @slot logo - Content will be rendered underneath footer links.\n * @slot caption - Content will be rendered above Crown Copyright.\n */\n\n@Component({\n tag: \"ic-footer\",\n styleUrl: \"ic-footer.css\",\n shadow: true,\n})\nexport class Footer {\n private footerEl?: HTMLElement;\n private resizeObserver: ResizeObserver | null = null;\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcFooterElement;\n\n @State() deviceSize: number = IC_DEVICE_SIZES.XL;\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n\n /**\n * The alignment of the section containers used within the footer.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * The screen size breakpoint at which to switch to the small layout.\n */\n @Prop() breakpoint?: IcFooterBreakpoints = \"medium\";\n\n /**\n * The caption displayed at the bottom of the footer.\n */\n @Prop() caption?: string;\n\n /**\n * If `true`, the footer will display the crown copyright at the bottom.\n */\n @Prop() copyright?: boolean = true;\n\n /**\n * The description displayed at the top of the footer.\n */\n @Prop() description?: string;\n\n /**\n * If `true`, the footer will be set up to handle link groups instead of standalone links.\n */\n @Prop() groupLinks?: boolean = false;\n\n /**\n * @internal Triggers on page resize and triggers style changes in footer links and link groups\n */\n @Event() footerResized: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n\n this.hostMutationObserver = new MutationObserver((mutationList) => {\n return renderDynamicChildSlots(mutationList, \"link\", this);\n });\n\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.foregroundColor = ev.detail.mode;\n }\n\n private isSmall() {\n const bp = this.breakpoint;\n\n return bp === \"extra small\"\n ? this.deviceSize < IC_DEVICE_SIZES.XS\n : bp === \"small\"\n ? this.deviceSize < IC_DEVICE_SIZES.S\n : bp === \"medium\"\n ? this.deviceSize < IC_DEVICE_SIZES.M\n : bp === \"large\"\n ? this.deviceSize < IC_DEVICE_SIZES.L\n : bp === \"extra large\"\n ? this.deviceSize < IC_DEVICE_SIZES.XL\n : false;\n }\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n this.footerResized.emit();\n };\n\n private runResizeObserver = () => {\n if (this.footerEl) {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.footerEl);\n }\n };\n\n render() {\n const {\n aligned,\n caption,\n copyright,\n description,\n deviceSize,\n el,\n foregroundColor,\n groupLinks,\n } = this;\n const small = this.isSmall();\n\n const showComplianceSection =\n isSlotUsed(el, \"logo\") ||\n isSlotUsed(el, \"caption\") ||\n caption ||\n copyright;\n\n return (\n <Host\n class={{\n [\"ic-footer\"]: true,\n [`ic-footer-${small ? \"small\" : \"sparse\"}`]: true,\n [`ic-footer-${groupLinks ? \"grouped\" : \"ungrouped\"}`]: true,\n [`ic-footer-foreground-${foregroundColor}`]: true,\n // Slots will be able to infer their own color\n [`ic-footer-${IcBrandForegroundEnum.Dark}`]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [`ic-footer-${IcBrandForegroundEnum.Light}`]:\n foregroundColor === IcBrandForegroundEnum.Light,\n }}\n >\n <footer ref={(el) => (this.footerEl = el)}>\n {/* Description */}\n {(isSlotUsed(el, \"description\") || description) && (\n <div class=\"footer-description\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-description-inner\">\n <ic-typography variant=\"body\">\n <slot name=\"description\">{description}</slot>\n </ic-typography>\n </div>\n </ic-section-container>\n </div>\n )}\n\n {/* Links */}\n {isSlotUsed(el, \"link\") && (\n <div class=\"footer-links\">\n {groupLinks && small ? (\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n ) : (\n <ic-section-container fullHeight aligned={aligned}>\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n </ic-section-container>\n )}\n </div>\n )}\n\n {/* Compliance (logo, caption, copyright) */}\n {showComplianceSection && (\n <div class=\"footer-compliance\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-compliance-inner\">\n {isSlotUsed(el, \"logo\") && (\n <div class=\"footer-logo\">\n <slot name=\"logo\" />\n </div>\n )}\n {(isSlotUsed(el, \"caption\") || caption) && (\n <div class=\"footer-caption\">\n <ic-typography\n variant={\n deviceSize <= IC_DEVICE_SIZES.M ? \"caption\" : \"body\"\n }\n >\n <slot name=\"caption\">{caption}</slot>\n </ic-typography>\n </div>\n )}\n {copyright && (\n <div\n class={{\n [\"footer-copyright\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n <ic-typography\n variant={\n deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption-uppercase\"\n : \"label-uppercase\"\n }\n >\n &copy; Crown Copyright\n </ic-typography>\n </div>\n )}\n </div>\n </ic-section-container>\n </div>\n )}\n </footer>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -3,7 +3,8 @@ import { k as getBrandForegroundAppearance, C as slotHasContent, i as isSlotUsed
3
3
  import { d as defineCustomElement$3 } from './ic-section-container2.js';
4
4
  import { d as defineCustomElement$2 } from './ic-typography2.js';
5
5
 
6
- const icHeroCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;background-color:var(--ic-brand-color-tertiary);--hero-heading-bottom-margin:var(--ic-space-md);--hero-keyline:var(--ic-hero-keyline)}:host(.ic-hero-dark){background-color:var(--ic-brand-color-secondary);--ic-hero-heading:var(--ic-color-text-primary-light);--ic-hero-body:var(--ic-color-text-primary-light);--ic-hero-secondary-heading:var(--ic-color-text-primary-light);--hero-keyline:var(--ic-brand-text-color)}.heading{--ic-typography-color:var(--ic-hero-heading)}.subheading{--ic-typography-color:var(--ic-hero-body)}.secondary-container{--ic-typography-color:var(--ic-hero-secondary-heading);display:flex;flex-direction:column;justify-content:center;border-left:var(--ic-space-xxxs) solid var(--hero-keyline)}:host(.has-background-image){background-repeat:no-repeat;background-position:right -6.25rem;background-size:auto calc(100% + 6.25rem);box-shadow:var(--ic-elevation-inset)}@media (prefers-reduced-motion){:host(.has-background-image){background-position:right -6.25rem !important}}ic-typography.heading-bottom-spacing{margin-bottom:var(--hero-heading-bottom-margin)}.section-container{display:flex;align-items:center;height:100%}.left-container{padding:var(--ic-space-xl) 0}.left-container:not(.left-container-full-width){flex-basis:50%}.left-container-full-width{width:100%}.right-container{flex-basis:50%}.interaction-container{display:flex;gap:var(--ic-space-md);margin-top:var(--ic-space-lg);flex-wrap:wrap}.secondary-subheading{margin-top:var(--ic-space-xxs)}:host([content-aligned=\"left\"]) .left-container,:host([content-aligned=\"left\"]) .interaction-container{justify-content:flex-start;text-align:left}:host([content-aligned=\"center\"]) .left-container,:host([content-aligned=\"center\"]) .interaction-container{justify-content:center;text-align:center}@media (min-width: 992px){.left-container-full-width{width:66.6%}}@media (min-width: 1044px){:host,.section-container{min-height:13rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:10.813rem}.left-container:not(.left-container-full-width){flex-basis:66.6%}.left-container{min-height:9rem}.right-container{flex-basis:33.3%;margin-left:3.125rem}.secondary-container{min-height:9rem}.secondary-heading,.secondary-subheading{margin-left:3.938rem}}@media (min-width: 801px) and (max-width: 1043px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:16rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:15rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:14rem}.left-container{min-height:10rem}.secondary-container{min-height:10rem}.secondary-heading,.secondary-subheading{margin-left:5.922rem}.right-container{margin-left:3.125rem}}@media (min-width: 641px) and (max-width: 800px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:16rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:15rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:14rem}.left-container{min-height:10rem}.secondary-container{min-height:10rem}.secondary-heading,.secondary-subheading{margin-left:2.125rem}.right-container{margin-left:3.125rem}}@media (min-width: 481px) and (max-width: 640px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:13rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:10.813rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:17.5rem}:host(.secondary-heading) .section-container,:host(.ic-hero-small) .section-container,.section-container{flex-direction:column;align-items:flex-start}.left-container{height:-moz-fit-content;height:fit-content}.secondary-container{height:-moz-fit-content;height:fit-content;border:none}.right-container{margin-bottom:2.5rem}}@media (max-width: 480px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:12rem}:host,.right-container{margin-bottom:var(--ic-space-md)}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:10.813rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:16.5rem}:host(.secondary-heading) .section-container,:host(.ic-hero-small) .section-container,.section-container{flex-direction:column;align-items:flex-start}.left-container{height:-moz-fit-content;height:fit-content}.secondary-container{height:-moz-fit-content;height:fit-content;border:none}}";
6
+ const icHeroCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;background-color:var(--ic-hero-background);--hero-heading-bottom-margin:var(--ic-space-md);--hero-keyline:var(--ic-hero-keyline)}:host(.ic-hero-dark){background-color:var(--ic-brand-color-secondary);--ic-hero-heading:var(--ic-color-text-primary-light);--ic-hero-body:var(--ic-color-text-primary-light);--ic-hero-secondary-heading:var(--ic-color-text-primary-light);--hero-keyline:var(--ic-brand-text-color)}.heading{--ic-typography-color:var(--ic-hero-heading)}.subheading{--ic-typography-color:var(--ic-hero-body)}.secondary-container{--ic-typography-color:var(--ic-hero-secondary-heading);display:flex;flex-direction:column;justify-content:center;border-left:var(--ic-space-xxxs) solid var(--hero-keyline)}:host(.has-background-image){background-repeat:no-repeat;background-position:right -6.25rem;background-size:auto calc(100% + 6.25rem);box-shadow:var(--ic-elevation-inset)}@media (prefers-reduced-motion){:host(.has-background-image){background-position:right -6.25rem !important}}ic-typography.heading-bottom-spacing{margin-bottom:var(--hero-heading-bottom-margin)}.section-container{display:flex;align-items:center;height:100%}.left-container{padding:var(--ic-space-xl) 0}.left-container:not(.left-container-full-width){flex-basis:50%}.left-container-full-width{width:100%}.right-container{flex-basis:50%}.interaction-container{display:flex;gap:var(--ic-space-md);margin-top:var(--ic-space-lg);flex-wrap:wrap}.secondary-subheading{margin-top:var(--ic-space-xxs)}:host([content-aligned=\"left\"]) .left-container,:host([content-aligned=\"left\"]) .interaction-container{justify-content:flex-start;text-align:left}:host([content-aligned=\"center\"]) .left-container,:host([content-aligned=\"center\"]) .interaction-container{justify-content:center;text-align:center}@media (min-width: 992px){.left-container-full-width{width:66.6%}}@media (min-width: 1044px){:host,.section-container{min-height:13rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:10.813rem}.left-container:not(.left-container-full-width){flex-basis:66.6%}.left-container{min-height:9rem}.right-container{flex-basis:33.3%;margin-left:3.125rem}.secondary-container{min-height:9rem}.secondary-heading,.secondary-subheading{margin-left:3.938rem}}@media (min-width: 801px) and (max-width: 1043px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:16rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:15rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:14rem}.left-container{min-height:10rem}.secondary-container{min-height:10rem}.secondary-heading,.secondary-subheading{margin-left:5.922rem}.right-container{margin-left:3.125rem}}@media (min-width: 641px) and (max-width: 800px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:16rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:15rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:14rem}.left-container{min-height:10rem}.secondary-container{min-height:10rem}.secondary-heading,.secondary-subheading{margin-left:2.125rem}.right-container{margin-left:3.125rem}}@media (min-width: 481px) and (max-width: 640px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:13rem}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:10.813rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:17.5rem}:host(.secondary-heading) .section-container,:host(.ic-hero-small) .section-container,.section-container{flex-direction:column;align-items:flex-start}.left-container{height:-moz-fit-content;height:fit-content}.secondary-container{height:-moz-fit-content;height:fit-content;border:none}.right-container{margin-bottom:2.5rem}}@media (max-width: 480px){:host(.has-background-image){background-image:none !important}:host,.section-container{min-height:12rem}:host,.right-container{margin-bottom:var(--ic-space-md)}:host(.ic-hero-small),:host(.ic-hero-small) .section-container{min-height:10.813rem}:host(.secondary-heading),:host(.secondary-heading) .section-container{min-height:16.5rem}:host(.secondary-heading) .section-container,:host(.ic-hero-small) .section-container,.section-container{flex-direction:column;align-items:flex-start}.left-container{height:-moz-fit-content;height:fit-content}.secondary-container{height:-moz-fit-content;height:fit-content;border:none}}";
7
+ const IcHeroStyle0 = icHeroCss;
7
8
 
8
9
  const Hero = /*@__PURE__*/ proxyCustomElement(class Hero extends HTMLElement {
9
10
  constructor() {
@@ -13,17 +14,25 @@ const Hero = /*@__PURE__*/ proxyCustomElement(class Hero extends HTMLElement {
13
14
  this.hostMutationObserver = null;
14
15
  this.foregroundColor = getBrandForegroundAppearance();
15
16
  this.rightContent = false;
17
+ // set by above state
16
18
  this.leftContentFullWidth = !this.rightContent && this.secondaryHeading === undefined;
17
19
  this.scrollFactor = "right -100px";
20
+ /**
21
+ * The alignment of the hero.
22
+ */
18
23
  this.aligned = "left";
19
- this.backgroundImage = undefined;
24
+ /**
25
+ * The alignment of the hero content.
26
+ */
20
27
  this.contentAligned = "left";
28
+ /**
29
+ * If `true`, the background image (if set) will not scroll using a parallax effect.
30
+ */
21
31
  this.disableBackgroundParallax = false;
22
- this.heading = undefined;
23
- this.secondaryHeading = undefined;
24
- this.secondarySubheading = undefined;
32
+ /**
33
+ * The size of the hero component.
34
+ */
25
35
  this.size = "medium";
26
- this.subheading = undefined;
27
36
  }
28
37
  disconnectedCallback() {
29
38
  var _a;
@@ -47,13 +56,16 @@ const Hero = /*@__PURE__*/ proxyCustomElement(class Hero extends HTMLElement {
47
56
  this.foregroundColor = ev.detail.mode;
48
57
  }
49
58
  doScroll() {
59
+ var _a;
50
60
  if (this.disableBackgroundParallax) {
51
61
  return;
52
62
  }
53
- const scrolltotop = document.scrollingElement.scrollTop;
54
- const factor = 0.4;
55
- const y = -100 + scrolltotop * factor;
56
- this.scrollFactor = "right " + y + "px";
63
+ const scrolltotop = (_a = document.scrollingElement) === null || _a === void 0 ? void 0 : _a.scrollTop;
64
+ if (scrolltotop) {
65
+ const factor = 0.4;
66
+ const y = -100 + scrolltotop * factor;
67
+ this.scrollFactor = "right " + y + "px";
68
+ }
57
69
  }
58
70
  render() {
59
71
  const { aligned, size, heading, subheading, secondaryHeading, secondarySubheading, foregroundColor, backgroundImage, scrollFactor, } = this;
@@ -64,20 +76,20 @@ const Hero = /*@__PURE__*/ proxyCustomElement(class Hero extends HTMLElement {
64
76
  "background-position": scrollFactor,
65
77
  };
66
78
  }
67
- return (h(Host, { class: {
79
+ return (h(Host, { key: '025f10796ee1f493c75179d3f44291195f8cd7e6', class: {
68
80
  [`ic-hero-${IcBrandForegroundEnum.Dark}`]: foregroundColor === IcBrandForegroundEnum.Dark,
69
81
  ["has-background-image"]: backgroundImage !== undefined,
70
82
  ["ic-hero-small"]: size === "small",
71
83
  ["secondary-heading"]: !!secondaryHeading,
72
- }, style: style }, h("ic-section-container", { aligned: aligned, fullHeight: true, class: "section-container" }, h("div", { class: {
84
+ }, style: style }, h("ic-section-container", { key: '03c2a138f992eab49508b2b25bd6cc2e6036ad64', aligned: aligned, fullHeight: true, class: "section-container" }, h("div", { key: 'e671ce077bee4fab293ee44de2d19160c82701c1', class: {
73
85
  ["left-container"]: true,
74
86
  ["left-container-full-width"]: this.leftContentFullWidth,
75
- } }, h("div", { class: "heading" }, h("slot", { name: "heading" }, h("ic-typography", { variant: size === "small" ? "h2" : "h1", class: {
87
+ } }, h("div", { key: '9fee1b8572cc7b8e99f1be00570fe4d1905cafc2', class: "heading" }, h("slot", { key: '72993e1aabdda5ad6db5de27cf89c74d2d254418', name: "heading" }, h("ic-typography", { key: 'aa6ad11b1d49fa1fd042a5825a79499ccb0acc95', variant: size === "small" ? "h2" : "h1", class: {
76
88
  ["heading-bottom-spacing"]: size !== "small",
77
- } }, h("h2", null, heading)))), h("div", { class: "subheading" }, h("slot", { name: "subheading" }, h("ic-typography", { variant: "body" }, subheading))), h("div", { class: "interaction-container" }, h("slot", { name: "interaction" }))), (isPropDefined(secondaryHeading) || this.rightContent) && (h("div", { class: "right-container" }, h("slot", { name: "secondary" }, secondaryHeading && (h("div", { class: "secondary-container" }, h("div", { class: "secondary-heading" }, h("ic-typography", { variant: "h4" }, h("h3", null, secondaryHeading))), h("div", { class: "secondary-subheading" }, h("ic-typography", { variant: "subtitle-small" }, secondarySubheading))))))))));
89
+ } }, h("h2", { key: '773143c28c7d78876d4fc173f0d9ce75cecbb92c' }, heading)))), h("div", { key: '1fffa3cb85d2aabc0a06449419e022e210f24eab', class: "subheading" }, h("slot", { key: '26d6e2610813f88428885e2e3cc053a0fef0cb63', name: "subheading" }, h("ic-typography", { key: 'e6f8449e57333ac57fc6bdf0ff6b99925d2a3b6a', variant: "body" }, subheading))), h("div", { key: 'ebc67935aac7acec588706ed956d78147070671c', class: "interaction-container" }, h("slot", { key: '9828f858f145eeffa603e93a721f3713b101bc46', name: "interaction" }))), (isPropDefined(secondaryHeading) || this.rightContent) && (h("div", { key: 'bec8bf0ed7853f1cd825a4212ffc96776c39f89e', class: "right-container" }, h("slot", { key: '18f0e14732bb293b1b4b6be8d035770872db2064', name: "secondary" }, secondaryHeading && (h("div", { key: '798f817bd69f0d3f8d4840c7ae51ce8d7134bdeb', class: "secondary-container" }, h("div", { key: 'e4d793df63b1b40b76118d30e0fbf12e1c6ce574', class: "secondary-heading" }, h("ic-typography", { key: '3cd81b498b2e8b650b4528a3c337b332068bce07', variant: "h4" }, h("h3", { key: '1229f8e36d95d616df293f7159b53352a98aba0b' }, secondaryHeading))), h("div", { key: '83921d272c1124759b638d855d1837567bb325d1', class: "secondary-subheading" }, h("ic-typography", { key: '47f59d905e74e3bf43648cd97d696138985fe640', variant: "subtitle-small" }, secondarySubheading))))))))));
78
90
  }
79
91
  get el() { return this; }
80
- static get style() { return icHeroCss; }
92
+ static get style() { return IcHeroStyle0; }
81
93
  }, [1, "ic-hero", {
82
94
  "aligned": [1],
83
95
  "backgroundImage": [1, "background-image"],
@@ -1 +1 @@
1
- {"file":"ic-hero.js","mappings":"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","names":[],"sources":["src/components/ic-hero/ic-hero.css?tag=ic-hero&encapsulation=shadow","src/components/ic-hero/ic-hero.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n background-color: var(--ic-brand-color-tertiary);\n\n --hero-heading-bottom-margin: var(--ic-space-md);\n --hero-keyline: var(--ic-hero-keyline);\n}\n\n:host(.ic-hero-dark) {\n background-color: var(--ic-brand-color-secondary);\n\n --ic-hero-heading: var(--ic-color-text-primary-light);\n --ic-hero-body: var(--ic-color-text-primary-light);\n --ic-hero-secondary-heading: var(--ic-color-text-primary-light);\n --hero-keyline: var(--ic-brand-text-color);\n}\n\n.heading {\n --ic-typography-color: var(--ic-hero-heading);\n}\n\n.subheading {\n --ic-typography-color: var(--ic-hero-body);\n}\n\n.secondary-container {\n --ic-typography-color: var(--ic-hero-secondary-heading);\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n border-left: var(--ic-space-xxxs) solid var(--hero-keyline);\n}\n\n:host(.has-background-image) {\n background-repeat: no-repeat;\n background-position: right -6.25rem;\n background-size: auto calc(100% + 6.25rem);\n box-shadow: var(--ic-elevation-inset);\n}\n\n@media (prefers-reduced-motion) {\n :host(.has-background-image) {\n background-position: right -6.25rem !important;\n }\n}\n\nic-typography.heading-bottom-spacing {\n margin-bottom: var(--hero-heading-bottom-margin);\n}\n\n.section-container {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.left-container {\n padding: var(--ic-space-xl) 0;\n}\n\n.left-container:not(.left-container-full-width) {\n flex-basis: 50%;\n}\n\n.left-container-full-width {\n width: 100%;\n}\n\n.right-container {\n flex-basis: 50%;\n}\n\n.interaction-container {\n display: flex;\n gap: var(--ic-space-md);\n margin-top: var(--ic-space-lg);\n flex-wrap: wrap;\n}\n\n.secondary-subheading {\n margin-top: var(--ic-space-xxs);\n}\n\n:host([content-aligned=\"left\"]) .left-container,\n:host([content-aligned=\"left\"]) .interaction-container {\n justify-content: flex-start;\n text-align: left;\n}\n\n:host([content-aligned=\"center\"]) .left-container,\n:host([content-aligned=\"center\"]) .interaction-container {\n justify-content: center;\n text-align: center;\n}\n\n@media (min-width: 992px) {\n .left-container-full-width {\n width: 66.6%;\n }\n}\n\n@media (min-width: 1044px) {\n :host,\n .section-container {\n min-height: 13rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 10.813rem;\n }\n\n .left-container:not(.left-container-full-width) {\n flex-basis: 66.6%;\n }\n\n .left-container {\n min-height: 9rem;\n }\n\n .right-container {\n flex-basis: 33.3%;\n margin-left: 3.125rem;\n }\n\n .secondary-container {\n min-height: 9rem;\n }\n\n .secondary-heading,\n .secondary-subheading {\n margin-left: 3.938rem;\n }\n}\n\n@media (min-width: 801px) and (max-width: 1043px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 16rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 15rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 14rem;\n }\n\n .left-container {\n min-height: 10rem;\n }\n\n .secondary-container {\n min-height: 10rem;\n }\n\n .secondary-heading,\n .secondary-subheading {\n margin-left: 5.922rem;\n }\n\n .right-container {\n margin-left: 3.125rem;\n }\n}\n\n@media (min-width: 641px) and (max-width: 800px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 16rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 15rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 14rem;\n }\n\n .left-container {\n min-height: 10rem;\n }\n\n .secondary-container {\n min-height: 10rem;\n }\n\n .secondary-heading,\n .secondary-subheading {\n margin-left: 2.125rem;\n }\n\n .right-container {\n margin-left: 3.125rem;\n }\n}\n\n@media (min-width: 481px) and (max-width: 640px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 13rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 10.813rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 17.5rem;\n }\n\n :host(.secondary-heading) .section-container,\n :host(.ic-hero-small) .section-container,\n .section-container {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .left-container {\n height: fit-content;\n }\n\n .secondary-container {\n height: fit-content;\n border: none;\n }\n\n .right-container {\n margin-bottom: 2.5rem;\n }\n}\n\n@media (max-width: 480px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 12rem;\n }\n\n :host,\n .right-container {\n margin-bottom: var(--ic-space-md);\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 10.813rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 16.5rem;\n }\n\n :host(.secondary-heading) .section-container,\n :host(.ic-hero-small) .section-container,\n .section-container {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .left-container {\n height: fit-content;\n }\n\n .secondary-container {\n height: fit-content;\n border: none;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Listen,\n} from \"@stencil/core\";\nimport {\n IcAlignment,\n IcSizesNoLarge,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../../utils/types\";\nimport {\n slotHasContent,\n getBrandForegroundAppearance,\n onComponentRequiredPropUndefined,\n isPropDefined,\n isSlotUsed,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport { IcHeroContentAlignments } from \"./ic-hero.types\";\n\n/**\n * @slot heading - Content will be rendered in the title area, in place of the heading.\n * @slot subheading - Content will be rendered in the title area, in place of the subheading.\n * @slot interaction - Content will be rendered in the interaction area, adjacent to the title area.\n * @slot secondary - Content will be rendered in the secondary content area.\n */\n\n@Component({\n tag: \"ic-hero\",\n styleUrl: \"ic-hero.css\",\n shadow: true,\n})\nexport class Hero {\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcHeroElement;\n\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n @State() rightContent: boolean = false;\n // set by above state\n @State() leftContentFullWidth: boolean =\n !this.rightContent && this.secondaryHeading === undefined;\n @State() scrollFactor: string = \"right -100px\";\n\n /**\n * The alignment of the hero.\n */\n @Prop() aligned: IcAlignment = \"left\";\n\n /**\n * The optional background image.\n */\n @Prop() backgroundImage?: string;\n\n /**\n * The alignment of the hero content.\n */\n @Prop() contentAligned: IcHeroContentAlignments = \"left\";\n\n /**\n * If `true`, the background image (if set) will not scroll using a parallax effect.\n */\n @Prop() disableBackgroundParallax?: boolean = false;\n\n /**\n * The heading of the hero. An <h2> level heading.\n */\n @Prop() heading: string;\n\n /**\n * The optional secondary heading, an <h3> level heading. Replaced by slotted right content.\n */\n @Prop() secondaryHeading?: string;\n\n /**\n * The optional secondary subheading, replaced by slotted right content.\n */\n @Prop() secondarySubheading?: string;\n\n /**\n * The size of the hero component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * The description for the hero.\n */\n @Prop() subheading?: string;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.rightContent = slotHasContent(this.el, \"secondary\");\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Hero\"\n );\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"secondary\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n componentWillRender(): void {\n this.rightContent = slotHasContent(this.el, \"secondary\");\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.foregroundColor = ev.detail.mode;\n }\n\n @Listen(\"scroll\", { target: \"document\" })\n doScroll(): void {\n if (this.disableBackgroundParallax) {\n return;\n }\n\n const scrolltotop = document.scrollingElement.scrollTop;\n const factor = 0.4;\n const y = -100 + scrolltotop * factor;\n this.scrollFactor = \"right \" + y + \"px\";\n }\n\n render() {\n const {\n aligned,\n size,\n heading,\n subheading,\n secondaryHeading,\n secondarySubheading,\n foregroundColor,\n backgroundImage,\n scrollFactor,\n } = this;\n\n let style = {};\n\n if (isPropDefined(backgroundImage)) {\n style = {\n \"background-image\": \"url(\" + backgroundImage + \")\",\n \"background-position\": scrollFactor,\n };\n }\n\n return (\n <Host\n class={{\n [`ic-hero-${IcBrandForegroundEnum.Dark}`]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [\"has-background-image\"]: backgroundImage !== undefined,\n [\"ic-hero-small\"]: size === \"small\",\n [\"secondary-heading\"]: !!secondaryHeading,\n }}\n style={style}\n >\n <ic-section-container\n aligned={aligned}\n fullHeight\n class=\"section-container\"\n >\n <div\n class={{\n [\"left-container\"]: true,\n [\"left-container-full-width\"]: this.leftContentFullWidth,\n }}\n >\n <div class=\"heading\">\n <slot name=\"heading\">\n <ic-typography\n variant={size === \"small\" ? \"h2\" : \"h1\"}\n class={{\n [\"heading-bottom-spacing\"]: size !== \"small\",\n }}\n >\n <h2>{heading}</h2>\n </ic-typography>\n </slot>\n </div>\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"body\">{subheading}</ic-typography>\n </slot>\n </div>\n <div class=\"interaction-container\">\n <slot name=\"interaction\"></slot>\n </div>\n </div>\n {(isPropDefined(secondaryHeading) || this.rightContent) && (\n <div class=\"right-container\">\n <slot name=\"secondary\">\n {secondaryHeading && (\n <div class=\"secondary-container\">\n <div class=\"secondary-heading\">\n <ic-typography variant=\"h4\">\n <h3>{secondaryHeading}</h3>\n </ic-typography>\n </div>\n <div class=\"secondary-subheading\">\n <ic-typography variant=\"subtitle-small\">\n {secondarySubheading}\n </ic-typography>\n </div>\n </div>\n )}\n </slot>\n </div>\n )}\n </ic-section-container>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-hero.js","mappings":"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","names":[],"sources":["src/components/ic-hero/ic-hero.css?tag=ic-hero&encapsulation=shadow","src/components/ic-hero/ic-hero.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n background-color: var(--ic-hero-background);\n\n --hero-heading-bottom-margin: var(--ic-space-md);\n --hero-keyline: var(--ic-hero-keyline);\n}\n\n:host(.ic-hero-dark) {\n background-color: var(--ic-brand-color-secondary);\n\n --ic-hero-heading: var(--ic-color-text-primary-light);\n --ic-hero-body: var(--ic-color-text-primary-light);\n --ic-hero-secondary-heading: var(--ic-color-text-primary-light);\n --hero-keyline: var(--ic-brand-text-color);\n}\n\n.heading {\n --ic-typography-color: var(--ic-hero-heading);\n}\n\n.subheading {\n --ic-typography-color: var(--ic-hero-body);\n}\n\n.secondary-container {\n --ic-typography-color: var(--ic-hero-secondary-heading);\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n border-left: var(--ic-space-xxxs) solid var(--hero-keyline);\n}\n\n:host(.has-background-image) {\n background-repeat: no-repeat;\n background-position: right -6.25rem;\n background-size: auto calc(100% + 6.25rem);\n box-shadow: var(--ic-elevation-inset);\n}\n\n@media (prefers-reduced-motion) {\n :host(.has-background-image) {\n background-position: right -6.25rem !important;\n }\n}\n\nic-typography.heading-bottom-spacing {\n margin-bottom: var(--hero-heading-bottom-margin);\n}\n\n.section-container {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.left-container {\n padding: var(--ic-space-xl) 0;\n}\n\n.left-container:not(.left-container-full-width) {\n flex-basis: 50%;\n}\n\n.left-container-full-width {\n width: 100%;\n}\n\n.right-container {\n flex-basis: 50%;\n}\n\n.interaction-container {\n display: flex;\n gap: var(--ic-space-md);\n margin-top: var(--ic-space-lg);\n flex-wrap: wrap;\n}\n\n.secondary-subheading {\n margin-top: var(--ic-space-xxs);\n}\n\n:host([content-aligned=\"left\"]) .left-container,\n:host([content-aligned=\"left\"]) .interaction-container {\n justify-content: flex-start;\n text-align: left;\n}\n\n:host([content-aligned=\"center\"]) .left-container,\n:host([content-aligned=\"center\"]) .interaction-container {\n justify-content: center;\n text-align: center;\n}\n\n@media (min-width: 992px) {\n .left-container-full-width {\n width: 66.6%;\n }\n}\n\n@media (min-width: 1044px) {\n :host,\n .section-container {\n min-height: 13rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 10.813rem;\n }\n\n .left-container:not(.left-container-full-width) {\n flex-basis: 66.6%;\n }\n\n .left-container {\n min-height: 9rem;\n }\n\n .right-container {\n flex-basis: 33.3%;\n margin-left: 3.125rem;\n }\n\n .secondary-container {\n min-height: 9rem;\n }\n\n .secondary-heading,\n .secondary-subheading {\n margin-left: 3.938rem;\n }\n}\n\n@media (min-width: 801px) and (max-width: 1043px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 16rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 15rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 14rem;\n }\n\n .left-container {\n min-height: 10rem;\n }\n\n .secondary-container {\n min-height: 10rem;\n }\n\n .secondary-heading,\n .secondary-subheading {\n margin-left: 5.922rem;\n }\n\n .right-container {\n margin-left: 3.125rem;\n }\n}\n\n@media (min-width: 641px) and (max-width: 800px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 16rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 15rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 14rem;\n }\n\n .left-container {\n min-height: 10rem;\n }\n\n .secondary-container {\n min-height: 10rem;\n }\n\n .secondary-heading,\n .secondary-subheading {\n margin-left: 2.125rem;\n }\n\n .right-container {\n margin-left: 3.125rem;\n }\n}\n\n@media (min-width: 481px) and (max-width: 640px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 13rem;\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 10.813rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 17.5rem;\n }\n\n :host(.secondary-heading) .section-container,\n :host(.ic-hero-small) .section-container,\n .section-container {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .left-container {\n height: fit-content;\n }\n\n .secondary-container {\n height: fit-content;\n border: none;\n }\n\n .right-container {\n margin-bottom: 2.5rem;\n }\n}\n\n@media (max-width: 480px) {\n :host(.has-background-image) {\n background-image: none !important;\n }\n\n :host,\n .section-container {\n min-height: 12rem;\n }\n\n :host,\n .right-container {\n margin-bottom: var(--ic-space-md);\n }\n\n :host(.ic-hero-small),\n :host(.ic-hero-small) .section-container {\n min-height: 10.813rem;\n }\n\n :host(.secondary-heading),\n :host(.secondary-heading) .section-container {\n min-height: 16.5rem;\n }\n\n :host(.secondary-heading) .section-container,\n :host(.ic-hero-small) .section-container,\n .section-container {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .left-container {\n height: fit-content;\n }\n\n .secondary-container {\n height: fit-content;\n border: none;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Listen,\n} from \"@stencil/core\";\nimport {\n IcAlignment,\n IcSizesNoLarge,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../../utils/types\";\nimport {\n slotHasContent,\n getBrandForegroundAppearance,\n onComponentRequiredPropUndefined,\n isPropDefined,\n isSlotUsed,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport { IcHeroContentAlignments } from \"./ic-hero.types\";\n\n/**\n * @slot heading - Content will be rendered in the title area, in place of the heading.\n * @slot subheading - Content will be rendered in the title area, in place of the subheading.\n * @slot interaction - Content will be rendered in the interaction area, adjacent to the title area.\n * @slot secondary - Content will be rendered in the secondary content area.\n */\n\n@Component({\n tag: \"ic-hero\",\n styleUrl: \"ic-hero.css\",\n shadow: true,\n})\nexport class Hero {\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcHeroElement;\n\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n @State() rightContent: boolean = false;\n // set by above state\n @State() leftContentFullWidth: boolean =\n !this.rightContent && this.secondaryHeading === undefined;\n @State() scrollFactor: string = \"right -100px\";\n\n /**\n * The alignment of the hero.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * The optional background image.\n */\n @Prop() backgroundImage?: string;\n\n /**\n * The alignment of the hero content.\n */\n @Prop() contentAligned?: IcHeroContentAlignments = \"left\";\n\n /**\n * If `true`, the background image (if set) will not scroll using a parallax effect.\n */\n @Prop() disableBackgroundParallax?: boolean = false;\n\n /**\n * The heading of the hero. An <h2> level heading.\n */\n @Prop() heading?: string;\n\n /**\n * The optional secondary heading, an <h3> level heading. Replaced by slotted right content.\n */\n @Prop() secondaryHeading?: string;\n\n /**\n * The optional secondary subheading, replaced by slotted right content.\n */\n @Prop() secondarySubheading?: string;\n\n /**\n * The size of the hero component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * The description for the hero.\n */\n @Prop() subheading?: string;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.rightContent = slotHasContent(this.el, \"secondary\");\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Hero\"\n );\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"secondary\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n componentWillRender(): void {\n this.rightContent = slotHasContent(this.el, \"secondary\");\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.foregroundColor = ev.detail.mode;\n }\n\n @Listen(\"scroll\", { target: \"document\" })\n doScroll(): void {\n if (this.disableBackgroundParallax) {\n return;\n }\n\n const scrolltotop = document.scrollingElement?.scrollTop;\n if (scrolltotop) {\n const factor = 0.4;\n const y = -100 + scrolltotop * factor;\n this.scrollFactor = \"right \" + y + \"px\";\n }\n }\n\n render() {\n const {\n aligned,\n size,\n heading,\n subheading,\n secondaryHeading,\n secondarySubheading,\n foregroundColor,\n backgroundImage,\n scrollFactor,\n } = this;\n\n let style = {};\n\n if (isPropDefined(backgroundImage)) {\n style = {\n \"background-image\": \"url(\" + backgroundImage + \")\",\n \"background-position\": scrollFactor,\n };\n }\n\n return (\n <Host\n class={{\n [`ic-hero-${IcBrandForegroundEnum.Dark}`]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [\"has-background-image\"]: backgroundImage !== undefined,\n [\"ic-hero-small\"]: size === \"small\",\n [\"secondary-heading\"]: !!secondaryHeading,\n }}\n style={style}\n >\n <ic-section-container\n aligned={aligned}\n fullHeight\n class=\"section-container\"\n >\n <div\n class={{\n [\"left-container\"]: true,\n [\"left-container-full-width\"]: this.leftContentFullWidth,\n }}\n >\n <div class=\"heading\">\n <slot name=\"heading\">\n <ic-typography\n variant={size === \"small\" ? \"h2\" : \"h1\"}\n class={{\n [\"heading-bottom-spacing\"]: size !== \"small\",\n }}\n >\n <h2>{heading}</h2>\n </ic-typography>\n </slot>\n </div>\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"body\">{subheading}</ic-typography>\n </slot>\n </div>\n <div class=\"interaction-container\">\n <slot name=\"interaction\"></slot>\n </div>\n </div>\n {(isPropDefined(secondaryHeading) || this.rightContent) && (\n <div class=\"right-container\">\n <slot name=\"secondary\">\n {secondaryHeading && (\n <div class=\"secondary-container\">\n <div class=\"secondary-heading\">\n <ic-typography variant=\"h4\">\n <h3>{secondaryHeading}</h3>\n </ic-typography>\n </div>\n <div class=\"secondary-subheading\">\n <ic-typography variant=\"subtitle-small\">\n {secondarySubheading}\n </ic-typography>\n </div>\n </div>\n )}\n </slot>\n </div>\n )}\n </ic-section-container>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -14,6 +14,7 @@ const RightArrow = `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="2
14
14
  </svg>`;
15
15
 
16
16
  const icHorizontalScrollCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--border-bottom-color:var(--ic-architectural-300);--splitter-color:var(--ic-architectural-100);display:flex;max-width:100%}:host(.ic-horizontal-scroll-light){--splitter-color:var(--ic-color-keyline-lighten)}:host(.ic-horizontal-scroll-dark){--splitter-color:var(--ic-color-keyline-darken)}::slotted(*){overflow-x:scroll;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;margin:calc(var(--ic-space-xs) * -1) !important;padding:var(--ic-space-xs) !important}:host(.ic-horizontal-scroll-visible) ::slotted(*){margin:calc(var(--ic-space-xs) * -1) 0 !important;padding:var(--ic-space-xs) !important}.tabs-container::-webkit-scrollbar{display:none}.scroll-container-left,.scroll-container-right{display:flex}.scroll-container-left{margin-left:var(--ic-space-xxs)}.scroll-container-right{margin-right:var(--ic-space-xxs)}.hidden{display:none}.scroll-arrow{margin:var(--ic-space-xxs) 0}.disabled .ic-tooltip-container{display:none !important}.scroll-splitter-left,.scroll-splitter-right{display:flex;height:var(--ic-space-lg);width:var(--ic-space-1px);margin-top:var(--ic-space-xs);border-radius:var(--ic-space-1px);background-color:var(--splitter-color)}.scroll-splitter-left{margin-left:calc(var(--ic-space-xxs) - var(--ic-space-1px))}.scroll-splitter-right{margin-right:calc(var(--ic-space-xxs) - var(--ic-space-1px))}.disabled .scroll-splitter-left,.disabled .scroll-splitter-right{background-color:transparent}:host(.ic-horizontal-scroll-dark) .disabled ic-button>svg,:host(.ic-horizontal-scroll-light) .disabled ic-button>svg{color:var(--splitter-color) !important}";
17
+ const IcHorizontalScrollStyle0 = icHorizontalScrollCss;
17
18
 
18
19
  const SCROLL_DELAY_MS = 200;
19
20
  const HorizontalScroll = /*@__PURE__*/ proxyCustomElement(class HorizontalScroll extends HTMLElement {
@@ -22,6 +23,23 @@ const HorizontalScroll = /*@__PURE__*/ proxyCustomElement(class HorizontalScroll
22
23
  this.__registerHost();
23
24
  this.__attachShadow();
24
25
  this.buttonStateSet = false;
26
+ this.firstItemVisible = true;
27
+ this.itemOverflow = false;
28
+ this.lastItemVisible = false;
29
+ /**
30
+ * The appearance of the horizontal scroll, e.g. dark, light or the default.
31
+ */
32
+ this.appearance = "default";
33
+ /** @internal Determines whether black variant of the tabs should be displayed. */
34
+ this.monochrome = false;
35
+ /**
36
+ * @internal Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
37
+ */
38
+ this.theme = "inherit";
39
+ /**
40
+ * @internal The name of the event that triggers focus handler logic.
41
+ */
42
+ this.focusTrigger = "focus";
25
43
  this.focusHandler = (event) => {
26
44
  this.itemFocusHandler(Array.from(this.items).indexOf(event.target));
27
45
  };
@@ -90,13 +108,6 @@ const HorizontalScroll = /*@__PURE__*/ proxyCustomElement(class HorizontalScroll
90
108
  }
91
109
  this.buttonStateSet = false;
92
110
  };
93
- this.firstItemVisible = true;
94
- this.itemOverflow = false;
95
- this.lastItemVisible = false;
96
- this.appearance = "default";
97
- this.monochrome = false;
98
- this.theme = "inherit";
99
- this.focusTrigger = "focus";
100
111
  }
101
112
  componentWillLoad() {
102
113
  this.itemsContainerEl = this.el.children[0];
@@ -109,6 +120,7 @@ const HorizontalScroll = /*@__PURE__*/ proxyCustomElement(class HorizontalScroll
109
120
  });
110
121
  }
111
122
  componentDidLoad() {
123
+ var _a;
112
124
  let runningTotal = 0;
113
125
  this.itemOffsets = this.items.map((item) => {
114
126
  runningTotal += item.offsetWidth;
@@ -118,26 +130,26 @@ const HorizontalScroll = /*@__PURE__*/ proxyCustomElement(class HorizontalScroll
118
130
  // Add event listener to scroll containers as mouse events are not fired on disabled elements (ic-button's <button>)
119
131
  // 'mouseleave' needed in case the user moves their mouse while holding the arrow buttons
120
132
  // - 'mouseup' otherwise not detected and scrolling not stopped
121
- const scrollArrows = Array.from(this.el.shadowRoot.querySelectorAll("div"));
133
+ const scrollArrows = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll("div")) || []);
122
134
  ["mouseup", "mouseleave"].forEach((event) => {
123
135
  scrollArrows.forEach((arrow) => arrow.addEventListener(event, this.arrowMouseUpHandler));
124
136
  });
125
137
  }
126
138
  disconnectedCallback() {
127
- var _a, _b;
139
+ var _a, _b, _c;
128
140
  if (this.resizeObserver !== undefined) {
129
141
  this.resizeObserver.disconnect();
130
142
  }
131
- const scrollArrows = Array.from(this.el.shadowRoot.querySelectorAll("div"));
143
+ const scrollArrows = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll("div")) || []);
132
144
  ["mouseup", "mouseleave"].forEach((event) => {
133
145
  scrollArrows.forEach((arrow) => arrow.removeEventListener(event, this.arrowMouseUpHandler));
134
146
  });
135
- (_a = this.items) === null || _a === void 0 ? void 0 : _a.forEach((item) => {
147
+ (_b = this.items) === null || _b === void 0 ? void 0 : _b.forEach((item) => {
136
148
  if (item.removeEventListener) {
137
149
  item.removeEventListener(this.focusTrigger, this.focusHandler);
138
150
  }
139
151
  });
140
- (_b = this.itemsContainerEl) === null || _b === void 0 ? void 0 : _b.removeEventListener("scroll", this.scrollHandler);
152
+ (_c = this.itemsContainerEl) === null || _c === void 0 ? void 0 : _c.removeEventListener("scroll", this.scrollHandler);
141
153
  }
142
154
  /**
143
155
  * @internal if side scrolling enabled, scrolls the specified item into view.
@@ -158,27 +170,27 @@ const HorizontalScroll = /*@__PURE__*/ proxyCustomElement(class HorizontalScroll
158
170
  }
159
171
  render() {
160
172
  const { firstItemVisible, lastItemVisible, itemOverflow } = this;
161
- return (h(Host, { class: {
173
+ return (h(Host, { key: '66144a5088edf38f0c3ed6f7778d636c15ffe8cb', class: {
162
174
  ["ic-horizontal-scroll-visible"]: itemOverflow,
163
175
  ["ic-horizontal-scroll-dark"]: this.appearance === IcBrandForegroundEnum.Dark,
164
176
  ["ic-horizontal-scroll-light"]: this.appearance === IcBrandForegroundEnum.Light,
165
177
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
166
- } }, h("div", { "aria-hidden": "true", class: {
178
+ } }, h("div", { key: '905ca2842a4d4de15c8a9c7cae4a9feceaa99e28', "aria-hidden": "true", class: {
167
179
  ["scroll-container-left"]: true,
168
180
  ["hidden"]: !itemOverflow,
169
181
  ["disabled"]: firstItemVisible,
170
- }, role: "tab" }, h("ic-button", { class: "scroll-arrow", variant: "icon-tertiary", "aria-label": "Scroll left", theme: this.theme === "light" || this.theme === "inherit"
182
+ }, role: "tab" }, h("ic-button", { key: '4f395c74ccd5bebef7263448761959d9bd8aedf0', class: "scroll-arrow", variant: "icon-tertiary", "aria-label": "Scroll left", theme: this.theme === "light" || this.theme === "inherit"
171
183
  ? "dark"
172
- : "light", monochrome: this.monochrome, innerHTML: LeftArrow, disabled: firstItemVisible, tabindex: "-1", onClick: this.scrollLeft, onMouseDown: this.leftArrowMouseDownHandler }), h("span", { class: "scroll-splitter-left" })), h("slot", null), h("div", { "aria-hidden": "true", class: {
184
+ : "light", monochrome: this.monochrome, innerHTML: LeftArrow, disabled: firstItemVisible, tabindex: "-1", onClick: this.scrollLeft, onMouseDown: this.leftArrowMouseDownHandler }), h("span", { key: 'b40a0bac23d87acf17880e488d93a2df6cb6ab39', class: "scroll-splitter-left" })), h("slot", { key: 'c99b76e7ff9b22b340bdefbd018db4a3f7d88307' }), h("div", { key: '9db134cc1449592ebc34d22999ab7d030464fc6f', "aria-hidden": "true", class: {
173
185
  ["scroll-container-right"]: true,
174
186
  ["hidden"]: !itemOverflow,
175
187
  ["disabled"]: lastItemVisible,
176
- }, role: "tab" }, h("span", { class: "scroll-splitter-right" }), h("ic-button", { class: "scroll-arrow", variant: "icon-tertiary", "aria-label": "Scroll right", theme: this.theme === "light" || this.theme === "inherit"
188
+ }, role: "tab" }, h("span", { key: '552499a981a450ba3e75f498ba5a01b134f5252d', class: "scroll-splitter-right" }), h("ic-button", { key: '8eba5e488232737d3ccb61ee07e84c0fcaf511d7', class: "scroll-arrow", variant: "icon-tertiary", "aria-label": "Scroll right", theme: this.theme === "light" || this.theme === "inherit"
177
189
  ? "dark"
178
190
  : "light", monochrome: this.monochrome, innerHTML: RightArrow, disabled: lastItemVisible, tabindex: "-1", onClick: this.scrollRight, onMouseDown: this.rightArrowMouseDownHandler }))));
179
191
  }
180
192
  get el() { return this; }
181
- static get style() { return icHorizontalScrollCss; }
193
+ static get style() { return IcHorizontalScrollStyle0; }
182
194
  }, [1, "ic-horizontal-scroll", {
183
195
  "appearance": [1],
184
196
  "monochrome": [4],
@@ -1 +1 @@
1
- {"file":"ic-horizontal-scroll2.js","mappings":"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","names":[],"sources":["src/components/ic-horizontal-scroll/ic-horizontal-scroll.css?tag=ic-horizontal-scroll&encapsulation=shadow","src/components/ic-horizontal-scroll/ic-horizontal-scroll.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --border-bottom-color: var(--ic-architectural-300);\n --splitter-color: var(--ic-architectural-100);\n\n display: flex;\n max-width: 100%;\n}\n\n:host(.ic-horizontal-scroll-light) {\n --splitter-color: var(--ic-color-keyline-lighten);\n}\n\n:host(.ic-horizontal-scroll-dark) {\n --splitter-color: var(--ic-color-keyline-darken);\n}\n\n/* Slotted items container element */\n::slotted(*) {\n overflow-x: scroll;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scrollbar-width: none;\n -ms-overflow-style: none;\n margin: calc(var(--ic-space-xs) * -1) !important;\n padding: var(--ic-space-xs) !important;\n}\n\n:host(.ic-horizontal-scroll-visible) ::slotted(*) {\n margin: calc(var(--ic-space-xs) * -1) 0 !important;\n padding: var(--ic-space-xs) !important;\n}\n\n.tabs-container::-webkit-scrollbar {\n display: none;\n}\n\n.scroll-container-left,\n.scroll-container-right {\n display: flex;\n}\n\n.scroll-container-left {\n margin-left: var(--ic-space-xxs);\n}\n\n.scroll-container-right {\n margin-right: var(--ic-space-xxs);\n}\n\n.hidden {\n display: none;\n}\n\n.scroll-arrow {\n margin: var(--ic-space-xxs) 0;\n}\n\n.disabled .ic-tooltip-container {\n display: none !important;\n}\n\n.scroll-splitter-left,\n.scroll-splitter-right {\n display: flex;\n height: var(--ic-space-lg);\n width: var(--ic-space-1px);\n margin-top: var(--ic-space-xs);\n border-radius: var(--ic-space-1px);\n background-color: var(--splitter-color);\n}\n\n.scroll-splitter-left {\n margin-left: calc(var(--ic-space-xxs) - var(--ic-space-1px));\n}\n\n.scroll-splitter-right {\n margin-right: calc(var(--ic-space-xxs) - var(--ic-space-1px));\n}\n\n.disabled .scroll-splitter-left,\n.disabled .scroll-splitter-right {\n background-color: transparent;\n}\n\n:host(.ic-horizontal-scroll-dark) .disabled ic-button > svg,\n:host(.ic-horizontal-scroll-light) .disabled ic-button > svg {\n color: var(--splitter-color) !important;\n}\n","import {\n Component,\n Element,\n h,\n Host,\n State,\n Method,\n Prop,\n} from \"@stencil/core\";\n\nimport LeftArrow from \"./assets/left-arrow.svg\";\nimport RightArrow from \"./assets/right-arrow.svg\";\nimport { getSlotElements } from \"../../utils/helpers\";\n\nimport { checkResizeObserver, elementOverflowsX } from \"../../utils/helpers\";\nimport {\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\n\nconst SCROLL_DELAY_MS = 200;\n\n@Component({\n tag: \"ic-horizontal-scroll\",\n styleUrl: \"./ic-horizontal-scroll.css\",\n shadow: true,\n})\nexport class HorizontalScroll {\n private buttonStateSet: boolean = false;\n private isScrolling: number;\n private itemOffsets: number[];\n private items: HTMLElement[];\n private itemsContainerEl: HTMLElement;\n private resizeObserver: ResizeObserver;\n private scrollDelay: number;\n\n @Element() el: HTMLIcHorizontalScrollElement;\n\n @State() firstItemVisible: boolean = true;\n @State() itemOverflow: boolean = false;\n @State() lastItemVisible: boolean = false;\n\n /**\n * The appearance of the horizontal scroll, e.g. dark, light or the default.\n */\n @Prop() appearance?: IcBrandForeground = \"default\";\n\n /** @internal Determines whether black variant of the tabs should be displayed. */\n @Prop() monochrome?: boolean = false;\n\n /**\n * @internal Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal The name of the event that triggers focus handler logic.\n */\n @Prop() focusTrigger?: string = \"focus\";\n\n componentWillLoad(): void {\n this.itemsContainerEl = this.el.children[0] as HTMLElement;\n this.itemsContainerEl.addEventListener(\"scroll\", this.scrollHandler);\n this.items = getSlotElements(this.itemsContainerEl) as HTMLElement[];\n this.items.forEach((item) => {\n if (item.addEventListener) {\n item.addEventListener(this.focusTrigger, this.focusHandler);\n }\n });\n }\n\n componentDidLoad(): void {\n let runningTotal = 0;\n this.itemOffsets = this.items.map((item) => {\n runningTotal += item.offsetWidth;\n return runningTotal;\n });\n\n checkResizeObserver(this.runResizeObserver);\n\n // Add event listener to scroll containers as mouse events are not fired on disabled elements (ic-button's <button>)\n // 'mouseleave' needed in case the user moves their mouse while holding the arrow buttons\n // - 'mouseup' otherwise not detected and scrolling not stopped\n const scrollArrows = Array.from(\n this.el.shadowRoot.querySelectorAll(\"div\")\n ) as HTMLElement[];\n [\"mouseup\", \"mouseleave\"].forEach((event) => {\n scrollArrows.forEach((arrow) =>\n arrow.addEventListener(event, this.arrowMouseUpHandler)\n );\n });\n }\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== undefined) {\n this.resizeObserver.disconnect();\n }\n\n const scrollArrows = Array.from(\n this.el.shadowRoot.querySelectorAll(\"div\")\n ) as HTMLElement[];\n [\"mouseup\", \"mouseleave\"].forEach((event) => {\n scrollArrows.forEach((arrow) =>\n arrow.removeEventListener(event, this.arrowMouseUpHandler)\n );\n });\n\n this.items?.forEach((item) => {\n if (item.removeEventListener) {\n item.removeEventListener(this.focusTrigger, this.focusHandler);\n }\n });\n\n this.itemsContainerEl?.removeEventListener(\"scroll\", this.scrollHandler);\n }\n\n /**\n * @internal if side scrolling enabled, scrolls the specified item into view.\n */\n @Method()\n async scrollItemIntoView(itemPosition: number): Promise<void> {\n this.firstItemVisible = itemPosition <= 0;\n const newScrollPos =\n itemPosition <= 0 ? 0 : this.itemOffsets[itemPosition - 1];\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + newScrollPos >=\n this.itemsContainerEl.scrollWidth;\n this.buttonStateSet = true;\n this.itemsContainerEl.scrollLeft = newScrollPos;\n }\n\n private focusHandler = (event: FocusEvent) => {\n this.itemFocusHandler(\n Array.from(this.items).indexOf(event.target as HTMLElement)\n );\n };\n\n private itemFocusHandler(itemPosition: number): void {\n if (this.itemOverflow) {\n this.scrollItemIntoView(itemPosition);\n }\n }\n\n private resizeObserverCallback = () => {\n if (this.el.clientWidth >= this.itemsContainerEl.scrollWidth) {\n this.itemOverflow = false;\n } else {\n this.itemOverflow = elementOverflowsX(this.itemsContainerEl);\n }\n\n if (this.itemOverflow) {\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + this.itemsContainerEl.scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.itemsContainerEl);\n };\n\n private scrollLeft = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() - 1);\n };\n\n private scrollRight = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() + 1);\n };\n\n private longScrollRight = () => {\n this.scrollRight();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private longScrollLeft = () => {\n this.scrollLeft();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private leftArrowMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private rightArrowMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private arrowMouseUpHandler = () => {\n window.clearTimeout(this.scrollDelay);\n };\n\n private getCurrentLeftItem = (): number => {\n const index = this.itemOffsets.findIndex(\n (el) => el > Math.round(this.itemsContainerEl.scrollLeft)\n );\n return index < 0 ? 0 : index;\n };\n\n private scrollHandler = () => {\n window.clearTimeout(this.isScrolling);\n // Set a timeout to run after scrolling ends\n this.isScrolling = window.setTimeout(this.scrollStopped, 50);\n };\n\n private scrollStopped = () => {\n // If scrollItemIntoView has been called, the button states will already be set\n // Can't just handle it here as it causes strange jumping behaviour in positioning\n const scrollLeft = Math.round(this.itemsContainerEl.scrollLeft);\n if (this.buttonStateSet === false) {\n this.firstItemVisible = scrollLeft === 0;\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n this.buttonStateSet = false;\n };\n\n render() {\n const { firstItemVisible, lastItemVisible, itemOverflow } = this;\n\n return (\n <Host\n class={{\n [\"ic-horizontal-scroll-visible\"]: itemOverflow,\n [\"ic-horizontal-scroll-dark\"]:\n this.appearance === IcBrandForegroundEnum.Dark,\n [\"ic-horizontal-scroll-light\"]:\n this.appearance === IcBrandForegroundEnum.Light,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <div\n aria-hidden=\"true\"\n class={{\n [\"scroll-container-left\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: firstItemVisible,\n }}\n role=\"tab\"\n >\n <ic-button\n class=\"scroll-arrow\"\n variant=\"icon-tertiary\"\n aria-label=\"Scroll left\"\n theme={\n this.theme === \"light\" || this.theme === \"inherit\"\n ? \"dark\"\n : \"light\"\n }\n monochrome={this.monochrome}\n innerHTML={LeftArrow}\n disabled={firstItemVisible}\n tabindex=\"-1\"\n onClick={this.scrollLeft}\n onMouseDown={this.leftArrowMouseDownHandler}\n ></ic-button>\n <span class=\"scroll-splitter-left\"></span>\n </div>\n <slot></slot>\n <div\n aria-hidden=\"true\"\n class={{\n [\"scroll-container-right\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: lastItemVisible,\n }}\n role=\"tab\"\n >\n <span class=\"scroll-splitter-right\"></span>\n <ic-button\n class=\"scroll-arrow\"\n variant=\"icon-tertiary\"\n aria-label=\"Scroll right\"\n theme={\n this.theme === \"light\" || this.theme === \"inherit\"\n ? \"dark\"\n : \"light\"\n }\n monochrome={this.monochrome}\n innerHTML={RightArrow}\n disabled={lastItemVisible}\n tabindex=\"-1\"\n onClick={this.scrollRight}\n onMouseDown={this.rightArrowMouseDownHandler}\n ></ic-button>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-horizontal-scroll2.js","mappings":"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","names":[],"sources":["src/components/ic-horizontal-scroll/ic-horizontal-scroll.css?tag=ic-horizontal-scroll&encapsulation=shadow","src/components/ic-horizontal-scroll/ic-horizontal-scroll.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --border-bottom-color: var(--ic-architectural-300);\n --splitter-color: var(--ic-architectural-100);\n\n display: flex;\n max-width: 100%;\n}\n\n:host(.ic-horizontal-scroll-light) {\n --splitter-color: var(--ic-color-keyline-lighten);\n}\n\n:host(.ic-horizontal-scroll-dark) {\n --splitter-color: var(--ic-color-keyline-darken);\n}\n\n/* Slotted items container element */\n::slotted(*) {\n overflow-x: scroll;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scrollbar-width: none;\n -ms-overflow-style: none;\n margin: calc(var(--ic-space-xs) * -1) !important;\n padding: var(--ic-space-xs) !important;\n}\n\n:host(.ic-horizontal-scroll-visible) ::slotted(*) {\n margin: calc(var(--ic-space-xs) * -1) 0 !important;\n padding: var(--ic-space-xs) !important;\n}\n\n.tabs-container::-webkit-scrollbar {\n display: none;\n}\n\n.scroll-container-left,\n.scroll-container-right {\n display: flex;\n}\n\n.scroll-container-left {\n margin-left: var(--ic-space-xxs);\n}\n\n.scroll-container-right {\n margin-right: var(--ic-space-xxs);\n}\n\n.hidden {\n display: none;\n}\n\n.scroll-arrow {\n margin: var(--ic-space-xxs) 0;\n}\n\n.disabled .ic-tooltip-container {\n display: none !important;\n}\n\n.scroll-splitter-left,\n.scroll-splitter-right {\n display: flex;\n height: var(--ic-space-lg);\n width: var(--ic-space-1px);\n margin-top: var(--ic-space-xs);\n border-radius: var(--ic-space-1px);\n background-color: var(--splitter-color);\n}\n\n.scroll-splitter-left {\n margin-left: calc(var(--ic-space-xxs) - var(--ic-space-1px));\n}\n\n.scroll-splitter-right {\n margin-right: calc(var(--ic-space-xxs) - var(--ic-space-1px));\n}\n\n.disabled .scroll-splitter-left,\n.disabled .scroll-splitter-right {\n background-color: transparent;\n}\n\n:host(.ic-horizontal-scroll-dark) .disabled ic-button > svg,\n:host(.ic-horizontal-scroll-light) .disabled ic-button > svg {\n color: var(--splitter-color) !important;\n}\n","import {\n Component,\n Element,\n h,\n Host,\n State,\n Method,\n Prop,\n} from \"@stencil/core\";\n\nimport LeftArrow from \"./assets/left-arrow.svg\";\nimport RightArrow from \"./assets/right-arrow.svg\";\nimport { getSlotElements } from \"../../utils/helpers\";\n\nimport { checkResizeObserver, elementOverflowsX } from \"../../utils/helpers\";\nimport {\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\n\nconst SCROLL_DELAY_MS = 200;\n\n@Component({\n tag: \"ic-horizontal-scroll\",\n styleUrl: \"./ic-horizontal-scroll.css\",\n shadow: true,\n})\nexport class HorizontalScroll {\n private buttonStateSet: boolean = false;\n private isScrolling: number;\n private itemOffsets: number[];\n private items: HTMLElement[];\n private itemsContainerEl: HTMLElement;\n private resizeObserver: ResizeObserver;\n private scrollDelay: number;\n\n @Element() el: HTMLIcHorizontalScrollElement;\n\n @State() firstItemVisible: boolean = true;\n @State() itemOverflow: boolean = false;\n @State() lastItemVisible: boolean = false;\n\n /**\n * The appearance of the horizontal scroll, e.g. dark, light or the default.\n */\n @Prop() appearance?: IcBrandForeground = \"default\";\n\n /** @internal Determines whether black variant of the tabs should be displayed. */\n @Prop() monochrome?: boolean = false;\n\n /**\n * @internal Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal The name of the event that triggers focus handler logic.\n */\n @Prop() focusTrigger?: string = \"focus\";\n\n componentWillLoad(): void {\n this.itemsContainerEl = this.el.children[0] as HTMLElement;\n this.itemsContainerEl.addEventListener(\"scroll\", this.scrollHandler);\n this.items = getSlotElements(this.itemsContainerEl) as HTMLElement[];\n this.items.forEach((item) => {\n if (item.addEventListener) {\n item.addEventListener(\n this.focusTrigger as keyof HTMLElementEventMap,\n this.focusHandler\n );\n }\n });\n }\n\n componentDidLoad(): void {\n let runningTotal = 0;\n this.itemOffsets = this.items.map((item) => {\n runningTotal += item.offsetWidth;\n return runningTotal;\n });\n\n checkResizeObserver(this.runResizeObserver);\n\n // Add event listener to scroll containers as mouse events are not fired on disabled elements (ic-button's <button>)\n // 'mouseleave' needed in case the user moves their mouse while holding the arrow buttons\n // - 'mouseup' otherwise not detected and scrolling not stopped\n const scrollArrows = Array.from(\n this.el.shadowRoot?.querySelectorAll(\"div\") || []\n ) as HTMLElement[];\n [\"mouseup\", \"mouseleave\"].forEach((event) => {\n scrollArrows.forEach((arrow) =>\n arrow.addEventListener(event, this.arrowMouseUpHandler)\n );\n });\n }\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== undefined) {\n this.resizeObserver.disconnect();\n }\n\n const scrollArrows = Array.from(\n this.el.shadowRoot?.querySelectorAll(\"div\") || []\n ) as HTMLElement[];\n [\"mouseup\", \"mouseleave\"].forEach((event) => {\n scrollArrows.forEach((arrow) =>\n arrow.removeEventListener(event, this.arrowMouseUpHandler)\n );\n });\n\n this.items?.forEach((item) => {\n if (item.removeEventListener) {\n item.removeEventListener(\n this.focusTrigger as keyof HTMLElementEventMap,\n this.focusHandler\n );\n }\n });\n\n this.itemsContainerEl?.removeEventListener(\"scroll\", this.scrollHandler);\n }\n\n /**\n * @internal if side scrolling enabled, scrolls the specified item into view.\n */\n @Method()\n async scrollItemIntoView(itemPosition: number): Promise<void> {\n this.firstItemVisible = itemPosition <= 0;\n const newScrollPos =\n itemPosition <= 0 ? 0 : this.itemOffsets[itemPosition - 1];\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + newScrollPos >=\n this.itemsContainerEl.scrollWidth;\n this.buttonStateSet = true;\n this.itemsContainerEl.scrollLeft = newScrollPos;\n }\n\n private focusHandler = (event: Event) => {\n this.itemFocusHandler(\n Array.from(this.items).indexOf(event.target as HTMLElement)\n );\n };\n\n private itemFocusHandler(itemPosition: number): void {\n if (this.itemOverflow) {\n this.scrollItemIntoView(itemPosition);\n }\n }\n\n private resizeObserverCallback = () => {\n if (this.el.clientWidth >= this.itemsContainerEl.scrollWidth) {\n this.itemOverflow = false;\n } else {\n this.itemOverflow = elementOverflowsX(this.itemsContainerEl);\n }\n\n if (this.itemOverflow) {\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + this.itemsContainerEl.scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.itemsContainerEl);\n };\n\n private scrollLeft = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() - 1);\n };\n\n private scrollRight = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() + 1);\n };\n\n private longScrollRight = () => {\n this.scrollRight();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private longScrollLeft = () => {\n this.scrollLeft();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private leftArrowMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private rightArrowMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private arrowMouseUpHandler = () => {\n window.clearTimeout(this.scrollDelay);\n };\n\n private getCurrentLeftItem = (): number => {\n const index = this.itemOffsets.findIndex(\n (el) => el > Math.round(this.itemsContainerEl.scrollLeft)\n );\n return index < 0 ? 0 : index;\n };\n\n private scrollHandler = () => {\n window.clearTimeout(this.isScrolling);\n // Set a timeout to run after scrolling ends\n this.isScrolling = window.setTimeout(this.scrollStopped, 50);\n };\n\n private scrollStopped = () => {\n // If scrollItemIntoView has been called, the button states will already be set\n // Can't just handle it here as it causes strange jumping behaviour in positioning\n const scrollLeft = Math.round(this.itemsContainerEl.scrollLeft);\n if (this.buttonStateSet === false) {\n this.firstItemVisible = scrollLeft === 0;\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n this.buttonStateSet = false;\n };\n\n render() {\n const { firstItemVisible, lastItemVisible, itemOverflow } = this;\n\n return (\n <Host\n class={{\n [\"ic-horizontal-scroll-visible\"]: itemOverflow,\n [\"ic-horizontal-scroll-dark\"]:\n this.appearance === IcBrandForegroundEnum.Dark,\n [\"ic-horizontal-scroll-light\"]:\n this.appearance === IcBrandForegroundEnum.Light,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <div\n aria-hidden=\"true\"\n class={{\n [\"scroll-container-left\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: firstItemVisible,\n }}\n role=\"tab\"\n >\n <ic-button\n class=\"scroll-arrow\"\n variant=\"icon-tertiary\"\n aria-label=\"Scroll left\"\n theme={\n this.theme === \"light\" || this.theme === \"inherit\"\n ? \"dark\"\n : \"light\"\n }\n monochrome={this.monochrome}\n innerHTML={LeftArrow}\n disabled={firstItemVisible}\n tabindex=\"-1\"\n onClick={this.scrollLeft}\n onMouseDown={this.leftArrowMouseDownHandler}\n ></ic-button>\n <span class=\"scroll-splitter-left\"></span>\n </div>\n <slot></slot>\n <div\n aria-hidden=\"true\"\n class={{\n [\"scroll-container-right\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: lastItemVisible,\n }}\n role=\"tab\"\n >\n <span class=\"scroll-splitter-right\"></span>\n <ic-button\n class=\"scroll-arrow\"\n variant=\"icon-tertiary\"\n aria-label=\"Scroll right\"\n theme={\n this.theme === \"light\" || this.theme === \"inherit\"\n ? \"dark\"\n : \"light\"\n }\n monochrome={this.monochrome}\n innerHTML={RightArrow}\n disabled={lastItemVisible}\n tabindex=\"-1\"\n onClick={this.scrollRight}\n onMouseDown={this.rightArrowMouseDownHandler}\n ></ic-button>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}