@ukic/web-components 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/README.md +28 -0
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/{helpers-a0a128bd.js → helpers-789082d4.js} +16 -37
  4. package/dist/cjs/helpers-789082d4.js.map +1 -0
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +63 -36
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +4 -4
  12. package/dist/cjs/ic-badge.cjs.entry.js +40 -16
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -3
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -3
  16. package/dist/cjs/ic-button_3.cjs.entry.js +32 -7
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card-vertical.cjs.entry.js +6 -6
  19. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +4 -4
  21. package/dist/cjs/ic-checkbox.cjs.entry.js +6 -6
  22. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-chip.cjs.entry.js +4 -4
  24. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  25. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  27. package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
  28. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  32. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  35. package/dist/cjs/ic-footer.cjs.entry.js +4 -4
  36. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  37. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  38. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -9
  39. package/dist/cjs/ic-input-label_2.cjs.entry.js +8 -8
  40. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  41. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  45. package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -3
  46. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-navigation-item.cjs.entry.js +12 -7
  48. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  50. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  51. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  52. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  53. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  54. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  55. package/dist/cjs/ic-radio-option.cjs.entry.js +6 -6
  56. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  58. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-select.cjs.entry.js +46 -49
  60. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js +5 -5
  62. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-skip-link.cjs.entry.js +10 -3
  65. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  67. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-step.cjs.entry.js +15 -15
  69. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  71. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  72. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  74. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  75. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  76. package/dist/cjs/ic-text-field.cjs.entry.js +7 -7
  77. package/dist/cjs/ic-theme.cjs.entry.js +4 -2
  78. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  80. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  81. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  82. package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -4
  83. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  85. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-typography.cjs.entry.js +4 -4
  87. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  88. package/dist/cjs/loader.cjs.js +1 -1
  89. package/dist/collection/components/ic-accordion/ic-accordion.css +3 -0
  90. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +1 -0
  91. package/dist/collection/components/ic-alert/ic-alert.css +3 -1
  92. package/dist/collection/components/ic-alert/ic-alert.js +85 -50
  93. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  94. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -3
  95. package/dist/collection/components/ic-badge/ic-badge.js +39 -15
  96. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  97. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -2
  98. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  99. package/dist/collection/components/ic-button/ic-button.css +18 -5
  100. package/dist/collection/components/ic-button/ic-button.stories.js +29 -52
  101. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +20 -4
  102. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  103. package/dist/collection/components/ic-checkbox/ic-checkbox.css +3 -1
  104. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
  105. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +3 -3
  106. package/dist/collection/components/ic-chip/ic-chip.js +3 -3
  107. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +2 -2
  108. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  109. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  110. package/dist/collection/components/ic-dialog/ic-dialog.css +2 -1
  111. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  112. package/dist/collection/components/ic-divider/ic-divider.css +7 -4
  113. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  114. package/dist/collection/components/ic-footer/ic-footer.js +3 -3
  115. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  116. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +0 -3
  117. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  118. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  119. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  120. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  121. package/dist/collection/components/ic-input-label/ic-input-label.js +4 -4
  122. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  123. package/dist/collection/components/ic-link/ic-link.js +1 -1
  124. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +3 -3
  125. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  126. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  127. package/dist/collection/components/ic-menu-item/ic-menu-item.css +2 -0
  128. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  129. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +0 -4
  130. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  131. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +20 -1
  132. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +11 -6
  133. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  134. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  135. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  136. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  137. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  138. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  139. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  140. package/dist/collection/components/ic-radio-option/ic-radio-option.css +2 -1
  141. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  142. package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
  143. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  144. package/dist/collection/components/ic-select/ic-select.js +45 -48
  145. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  146. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +2 -1
  147. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  148. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  149. package/dist/collection/components/ic-skip-link/ic-skip-link.js +31 -3
  150. package/dist/collection/components/ic-skip-link/ic-skip-link.js.map +1 -1
  151. package/dist/collection/components/ic-status-tag/ic-status-tag.css +6 -0
  152. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  153. package/dist/collection/components/ic-step/ic-step.css +0 -3
  154. package/dist/collection/components/ic-step/ic-step.js +13 -13
  155. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  156. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  157. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  158. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  159. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  160. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  161. package/dist/collection/components/ic-text-field/ic-text-field.js +6 -6
  162. package/dist/collection/components/ic-theme/ic-theme.js +31 -3
  163. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  164. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  165. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  166. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +6 -8
  167. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  168. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  169. package/dist/collection/components/ic-tooltip/ic-tooltip.js +32 -2
  170. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  171. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -1
  172. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  173. package/dist/collection/components/ic-typography/ic-typography.css +2 -2
  174. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  175. package/dist/collection/utils/helpers.js +15 -36
  176. package/dist/collection/utils/helpers.js.map +1 -1
  177. package/dist/collection/utils/types.js.map +1 -1
  178. package/dist/components/helpers.js +16 -37
  179. package/dist/components/helpers.js.map +1 -1
  180. package/dist/components/ic-accordion-group.js.map +1 -1
  181. package/dist/components/ic-accordion.js.map +1 -1
  182. package/dist/components/ic-alert.js +66 -37
  183. package/dist/components/ic-alert.js.map +1 -1
  184. package/dist/components/ic-back-to-top.js +3 -3
  185. package/dist/components/ic-badge.js +39 -15
  186. package/dist/components/ic-badge.js.map +1 -1
  187. package/dist/components/ic-breadcrumb-group.js +2 -2
  188. package/dist/components/ic-breadcrumb2.js +2 -2
  189. package/dist/components/ic-button2.js +1 -1
  190. package/dist/components/ic-button2.js.map +1 -1
  191. package/dist/components/ic-card-vertical.js +5 -5
  192. package/dist/components/ic-card-vertical.js.map +1 -1
  193. package/dist/components/ic-checkbox-group.js +4 -4
  194. package/dist/components/ic-checkbox.js +6 -6
  195. package/dist/components/ic-checkbox.js.map +1 -1
  196. package/dist/components/ic-chip.js +3 -3
  197. package/dist/components/ic-classification-banner.js +2 -2
  198. package/dist/components/ic-data-list.js +2 -2
  199. package/dist/components/ic-data-row.js +3 -3
  200. package/dist/components/ic-dialog.js +2 -2
  201. package/dist/components/ic-dialog.js.map +1 -1
  202. package/dist/components/ic-divider2.js +2 -2
  203. package/dist/components/ic-divider2.js.map +1 -1
  204. package/dist/components/ic-empty-state.js +2 -2
  205. package/dist/components/ic-footer-link-group.js +1 -1
  206. package/dist/components/ic-footer-link-group.js.map +1 -1
  207. package/dist/components/ic-footer-link.js +2 -2
  208. package/dist/components/ic-footer.js +4 -4
  209. package/dist/components/ic-hero.js +5 -5
  210. package/dist/components/ic-horizontal-scroll2.js +6 -6
  211. package/dist/components/ic-input-component-container2.js +4 -4
  212. package/dist/components/ic-input-container2.js +2 -2
  213. package/dist/components/ic-input-label2.js +5 -5
  214. package/dist/components/ic-input-validation2.js +4 -4
  215. package/dist/components/ic-link2.js +1 -1
  216. package/dist/components/ic-loading-indicator2.js +3 -3
  217. package/dist/components/ic-menu-group.js +1 -1
  218. package/dist/components/ic-menu-item2.js.map +1 -1
  219. package/dist/components/ic-menu2.js +4 -4
  220. package/dist/components/ic-navigation-button.js +2 -2
  221. package/dist/components/ic-navigation-group.js +3 -3
  222. package/dist/components/ic-navigation-group.js.map +1 -1
  223. package/dist/components/ic-navigation-item.js +12 -7
  224. package/dist/components/ic-navigation-item.js.map +1 -1
  225. package/dist/components/ic-navigation-menu2.js +5 -5
  226. package/dist/components/ic-page-header.js +6 -6
  227. package/dist/components/ic-pagination-item2.js +2 -2
  228. package/dist/components/ic-pagination.js +4 -4
  229. package/dist/components/ic-popover-menu.js +4 -4
  230. package/dist/components/ic-popover-menu.js.map +1 -1
  231. package/dist/components/ic-radio-group.js +5 -5
  232. package/dist/components/ic-radio-option.js +6 -6
  233. package/dist/components/ic-radio-option.js.map +1 -1
  234. package/dist/components/ic-search-bar.js +10 -10
  235. package/dist/components/ic-section-container2.js +2 -2
  236. package/dist/components/ic-select.js +46 -49
  237. package/dist/components/ic-select.js.map +1 -1
  238. package/dist/components/ic-side-navigation.js +5 -5
  239. package/dist/components/ic-side-navigation.js.map +1 -1
  240. package/dist/components/ic-skeleton.js +2 -2
  241. package/dist/components/ic-skip-link.js +12 -4
  242. package/dist/components/ic-skip-link.js.map +1 -1
  243. package/dist/components/ic-status-tag.js +2 -2
  244. package/dist/components/ic-status-tag.js.map +1 -1
  245. package/dist/components/ic-step.js +14 -14
  246. package/dist/components/ic-step.js.map +1 -1
  247. package/dist/components/ic-stepper.js +3 -3
  248. package/dist/components/ic-switch.js +5 -5
  249. package/dist/components/ic-tab-context.js +1 -1
  250. package/dist/components/ic-tab-group.js +2 -2
  251. package/dist/components/ic-tab-panel.js +2 -2
  252. package/dist/components/ic-tab-panel.js.map +1 -1
  253. package/dist/components/ic-tab.js +2 -2
  254. package/dist/components/ic-text-field.js +7 -7
  255. package/dist/components/ic-theme.js +3 -1
  256. package/dist/components/ic-theme.js.map +1 -1
  257. package/dist/components/ic-toast-region.js +1 -1
  258. package/dist/components/ic-toast.js +4 -4
  259. package/dist/components/ic-toggle-button-group.js +2 -2
  260. package/dist/components/ic-toggle-button.js +3 -3
  261. package/dist/components/ic-toggle-button.js.map +1 -1
  262. package/dist/components/ic-tooltip2.js +30 -2
  263. package/dist/components/ic-tooltip2.js.map +1 -1
  264. package/dist/components/ic-top-navigation.js +5 -5
  265. package/dist/components/ic-top-navigation.js.map +1 -1
  266. package/dist/components/ic-typography2.js +3 -3
  267. package/dist/components/ic-typography2.js.map +1 -1
  268. package/dist/core/core.css +1 -1
  269. package/dist/core/core.esm.js +1 -1
  270. package/dist/core/core.esm.js.map +1 -1
  271. package/dist/core/{p-c9726fbd.entry.js → p-005cd8a8.entry.js} +2 -2
  272. package/dist/core/p-005cd8a8.entry.js.map +1 -0
  273. package/dist/core/p-0631c3ab.entry.js +2 -0
  274. package/dist/core/p-0631c3ab.entry.js.map +1 -0
  275. package/dist/core/{p-5e1fd097.entry.js → p-0a8b3967.entry.js} +2 -2
  276. package/dist/core/{p-f43f411a.entry.js → p-0b4350df.entry.js} +2 -2
  277. package/dist/core/p-0e618fc5.entry.js +2 -0
  278. package/dist/core/{p-811d447b.entry.js.map → p-0e618fc5.entry.js.map} +1 -1
  279. package/dist/core/p-18ecba80.entry.js +2 -0
  280. package/dist/core/{p-a794b724.entry.js.map → p-18ecba80.entry.js.map} +1 -1
  281. package/dist/core/{p-f34efc17.entry.js → p-1e4cdd2d.entry.js} +2 -2
  282. package/dist/core/{p-a71055c9.entry.js → p-23d059ff.entry.js} +2 -2
  283. package/dist/core/{p-071f4748.entry.js → p-23ed8b99.entry.js} +2 -2
  284. package/dist/core/{p-ed8957da.js → p-281ce313.js} +2 -2
  285. package/dist/core/p-281ce313.js.map +1 -0
  286. package/dist/core/{p-49768069.entry.js → p-30abe545.entry.js} +2 -2
  287. package/dist/core/p-3132270d.entry.js +2 -0
  288. package/dist/core/p-3132270d.entry.js.map +1 -0
  289. package/dist/core/{p-1ac08e6d.entry.js → p-33c86ba6.entry.js} +2 -2
  290. package/dist/core/p-3675c4b4.entry.js +2 -0
  291. package/dist/core/p-3675c4b4.entry.js.map +1 -0
  292. package/dist/core/{p-a20a7cd3.entry.js → p-3b5d3e24.entry.js} +2 -2
  293. package/dist/core/{p-972671ea.entry.js → p-3eb7ef1d.entry.js} +2 -2
  294. package/dist/core/{p-110486f0.entry.js → p-40f2f58e.entry.js} +2 -2
  295. package/dist/core/p-4245a976.entry.js +2 -0
  296. package/dist/core/p-4245a976.entry.js.map +1 -0
  297. package/dist/core/{p-264ce7a0.entry.js → p-44e4e8c1.entry.js} +2 -2
  298. package/dist/core/p-44e4e8c1.entry.js.map +1 -0
  299. package/dist/core/{p-5c349c9d.entry.js → p-45432bf5.entry.js} +2 -2
  300. package/dist/core/p-45432bf5.entry.js.map +1 -0
  301. package/dist/core/p-4b601e06.entry.js +2 -0
  302. package/dist/core/p-4b601e06.entry.js.map +1 -0
  303. package/dist/core/{p-fa02a267.entry.js → p-4b6818d9.entry.js} +2 -2
  304. package/dist/core/p-517d7afb.entry.js +2 -0
  305. package/dist/core/p-517d7afb.entry.js.map +1 -0
  306. package/dist/core/{p-a103068b.entry.js → p-5206a978.entry.js} +2 -2
  307. package/dist/core/p-5d4b0480.entry.js +2 -0
  308. package/dist/core/p-5d4b0480.entry.js.map +1 -0
  309. package/dist/core/{p-1f455336.entry.js → p-5e18b899.entry.js} +2 -2
  310. package/dist/core/{p-0e96d4d8.entry.js → p-6337fe1f.entry.js} +2 -2
  311. package/dist/core/p-6337fe1f.entry.js.map +1 -0
  312. package/dist/core/p-63fe83ad.entry.js +2 -0
  313. package/dist/core/p-63fe83ad.entry.js.map +1 -0
  314. package/dist/core/{p-7e79bd0e.entry.js → p-6de6b6b7.entry.js} +2 -2
  315. package/dist/core/p-70700c7a.entry.js +2 -0
  316. package/dist/core/{p-20c4d90b.entry.js → p-7a0d238b.entry.js} +2 -2
  317. package/dist/core/{p-10cd26dc.entry.js → p-7afc71d0.entry.js} +2 -2
  318. package/dist/core/{p-10cd26dc.entry.js.map → p-7afc71d0.entry.js.map} +1 -1
  319. package/dist/core/{p-69e4daec.entry.js → p-7c0914e7.entry.js} +2 -2
  320. package/dist/core/{p-0d016565.entry.js → p-7dfe0284.entry.js} +2 -2
  321. package/dist/core/p-81a12e36.entry.js +2 -0
  322. package/dist/core/p-81a12e36.entry.js.map +1 -0
  323. package/dist/core/p-88924aef.entry.js +2 -0
  324. package/dist/core/p-88924aef.entry.js.map +1 -0
  325. package/dist/core/p-8ba129fc.entry.js +2 -0
  326. package/dist/core/p-8ba129fc.entry.js.map +1 -0
  327. package/dist/core/{p-85734ebf.entry.js → p-950db960.entry.js} +2 -2
  328. package/dist/core/p-950db960.entry.js.map +1 -0
  329. package/dist/core/{p-44e32417.entry.js → p-959a9cdf.entry.js} +2 -2
  330. package/dist/core/p-9ea9a4ce.entry.js +2 -0
  331. package/dist/core/p-9ea9a4ce.entry.js.map +1 -0
  332. package/dist/core/p-a9c96e3e.entry.js +2 -0
  333. package/dist/core/p-a9c96e3e.entry.js.map +1 -0
  334. package/dist/core/{p-74600ed8.entry.js → p-abaea607.entry.js} +2 -2
  335. package/dist/core/{p-85b7d931.entry.js → p-ac7db165.entry.js} +2 -2
  336. package/dist/core/p-ac7db165.entry.js.map +1 -0
  337. package/dist/core/p-acebb05c.entry.js +2 -0
  338. package/dist/core/p-acebb05c.entry.js.map +1 -0
  339. package/dist/core/{p-37df68fe.entry.js → p-b3ac38c5.entry.js} +2 -2
  340. package/dist/core/{p-17cf7b50.entry.js → p-b3d6d5be.entry.js} +2 -2
  341. package/dist/core/{p-729745d3.entry.js → p-bbe5596b.entry.js} +2 -2
  342. package/dist/core/p-c04f36c5.entry.js +2 -0
  343. package/dist/core/{p-4f2a1950.entry.js → p-c2ca6274.entry.js} +2 -2
  344. package/dist/core/p-c62318a8.entry.js +2 -0
  345. package/dist/core/{p-2537f33e.entry.js.map → p-c62318a8.entry.js.map} +1 -1
  346. package/dist/core/{p-701696aa.entry.js → p-de43d375.entry.js} +2 -2
  347. package/dist/core/{p-2b1a331b.entry.js → p-e2f893f0.entry.js} +2 -2
  348. package/dist/core/{p-d9aec0dd.entry.js → p-e56d0db2.entry.js} +2 -2
  349. package/dist/core/{p-33243fff.entry.js → p-e586ae7b.entry.js} +2 -2
  350. package/dist/core/{p-45595f98.entry.js → p-ef09b450.entry.js} +2 -2
  351. package/dist/core/p-ef09b450.entry.js.map +1 -0
  352. package/dist/core/{p-50f4d151.entry.js → p-f34eee68.entry.js} +2 -2
  353. package/dist/core/{p-8b268274.entry.js → p-f3c72ffb.entry.js} +2 -2
  354. package/dist/core/{p-8856dff4.entry.js → p-f815f8c9.entry.js} +2 -2
  355. package/dist/core/{p-a55e7988.entry.js → p-fbde763c.entry.js} +2 -2
  356. package/dist/core/p-fc50d582.entry.js +2 -0
  357. package/dist/core/p-fc50d582.entry.js.map +1 -0
  358. package/dist/core/{p-78e7a859.entry.js → p-fe833509.entry.js} +2 -2
  359. package/dist/esm/core.js +1 -1
  360. package/dist/esm/{helpers-dd035d0d.js → helpers-46a2d1fd.js} +17 -38
  361. package/dist/esm/helpers-46a2d1fd.js.map +1 -0
  362. package/dist/esm/ic-accordion-group.entry.js +1 -1
  363. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  364. package/dist/esm/ic-accordion.entry.js +1 -1
  365. package/dist/esm/ic-accordion.entry.js.map +1 -1
  366. package/dist/esm/ic-alert.entry.js +63 -36
  367. package/dist/esm/ic-alert.entry.js.map +1 -1
  368. package/dist/esm/ic-back-to-top.entry.js +4 -4
  369. package/dist/esm/ic-badge.entry.js +40 -16
  370. package/dist/esm/ic-badge.entry.js.map +1 -1
  371. package/dist/esm/ic-breadcrumb-group.entry.js +3 -3
  372. package/dist/esm/ic-breadcrumb.entry.js +3 -3
  373. package/dist/esm/ic-button_3.entry.js +32 -7
  374. package/dist/esm/ic-button_3.entry.js.map +1 -1
  375. package/dist/esm/ic-card-vertical.entry.js +6 -6
  376. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  377. package/dist/esm/ic-checkbox-group.entry.js +4 -4
  378. package/dist/esm/ic-checkbox.entry.js +6 -6
  379. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  380. package/dist/esm/ic-chip.entry.js +4 -4
  381. package/dist/esm/ic-classification-banner.entry.js +2 -2
  382. package/dist/esm/ic-data-list.entry.js +2 -2
  383. package/dist/esm/ic-data-row.entry.js +3 -3
  384. package/dist/esm/ic-dialog.entry.js +3 -3
  385. package/dist/esm/ic-dialog.entry.js.map +1 -1
  386. package/dist/esm/ic-divider.entry.js +2 -2
  387. package/dist/esm/ic-divider.entry.js.map +1 -1
  388. package/dist/esm/ic-empty-state.entry.js +3 -3
  389. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  390. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  391. package/dist/esm/ic-footer-link.entry.js +3 -3
  392. package/dist/esm/ic-footer.entry.js +4 -4
  393. package/dist/esm/ic-hero.entry.js +5 -5
  394. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  395. package/dist/esm/ic-input-component-container_3.entry.js +9 -9
  396. package/dist/esm/ic-input-label_2.entry.js +8 -8
  397. package/dist/esm/ic-link.entry.js +2 -2
  398. package/dist/esm/ic-menu-group.entry.js +2 -2
  399. package/dist/esm/ic-menu-item.entry.js +1 -1
  400. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  401. package/dist/esm/ic-navigation-button.entry.js +3 -3
  402. package/dist/esm/ic-navigation-group.entry.js +3 -3
  403. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  404. package/dist/esm/ic-navigation-item.entry.js +12 -7
  405. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  406. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  407. package/dist/esm/ic-page-header.entry.js +7 -7
  408. package/dist/esm/ic-pagination-item.entry.js +2 -2
  409. package/dist/esm/ic-pagination.entry.js +5 -5
  410. package/dist/esm/ic-popover-menu.entry.js +5 -5
  411. package/dist/esm/ic-radio-group.entry.js +5 -5
  412. package/dist/esm/ic-radio-option.entry.js +6 -6
  413. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  414. package/dist/esm/ic-search-bar.entry.js +10 -10
  415. package/dist/esm/ic-section-container.entry.js +2 -2
  416. package/dist/esm/ic-select.entry.js +46 -49
  417. package/dist/esm/ic-select.entry.js.map +1 -1
  418. package/dist/esm/ic-side-navigation.entry.js +5 -5
  419. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  420. package/dist/esm/ic-skeleton.entry.js +2 -2
  421. package/dist/esm/ic-skip-link.entry.js +10 -3
  422. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  423. package/dist/esm/ic-status-tag.entry.js +3 -3
  424. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  425. package/dist/esm/ic-step.entry.js +15 -15
  426. package/dist/esm/ic-step.entry.js.map +1 -1
  427. package/dist/esm/ic-stepper.entry.js +3 -3
  428. package/dist/esm/ic-switch.entry.js +5 -5
  429. package/dist/esm/ic-tab-context.entry.js +1 -1
  430. package/dist/esm/ic-tab-group.entry.js +3 -3
  431. package/dist/esm/ic-tab-panel.entry.js +2 -2
  432. package/dist/esm/ic-tab.entry.js +3 -3
  433. package/dist/esm/ic-text-field.entry.js +7 -7
  434. package/dist/esm/ic-theme.entry.js +4 -2
  435. package/dist/esm/ic-theme.entry.js.map +1 -1
  436. package/dist/esm/ic-toast-region.entry.js +1 -1
  437. package/dist/esm/ic-toast.entry.js +4 -4
  438. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  439. package/dist/esm/ic-toggle-button.entry.js +4 -4
  440. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  441. package/dist/esm/ic-top-navigation.entry.js +5 -5
  442. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  443. package/dist/esm/ic-typography.entry.js +4 -4
  444. package/dist/esm/ic-typography.entry.js.map +1 -1
  445. package/dist/esm/loader.js +1 -1
  446. package/dist/types/components/ic-alert/ic-alert.d.ts +17 -9
  447. package/dist/types/components/ic-badge/ic-badge.d.ts +4 -0
  448. package/dist/types/components/ic-select/ic-select.d.ts +1 -0
  449. package/dist/types/components/ic-skip-link/ic-skip-link.d.ts +5 -0
  450. package/dist/types/components/ic-theme/ic-theme.d.ts +6 -2
  451. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +3 -0
  452. package/dist/types/components.d.ts +20 -11
  453. package/dist/types/utils/helpers.d.ts +5 -1
  454. package/dist/types/utils/types.d.ts +1 -0
  455. package/hydrate/index.js +385 -318
  456. package/hydrate/index.mjs +385 -318
  457. package/package.json +3 -3
  458. package/dist/cjs/helpers-a0a128bd.js.map +0 -1
  459. package/dist/core/p-06d97789.entry.js +0 -2
  460. package/dist/core/p-06d97789.entry.js.map +0 -1
  461. package/dist/core/p-09070f61.entry.js +0 -2
  462. package/dist/core/p-0c0ac69d.entry.js +0 -2
  463. package/dist/core/p-0c0ac69d.entry.js.map +0 -1
  464. package/dist/core/p-0e96d4d8.entry.js.map +0 -1
  465. package/dist/core/p-116ad73d.entry.js +0 -2
  466. package/dist/core/p-116ad73d.entry.js.map +0 -1
  467. package/dist/core/p-1171a945.entry.js +0 -2
  468. package/dist/core/p-1171a945.entry.js.map +0 -1
  469. package/dist/core/p-2537f33e.entry.js +0 -2
  470. package/dist/core/p-264ce7a0.entry.js.map +0 -1
  471. package/dist/core/p-28656111.entry.js +0 -2
  472. package/dist/core/p-28656111.entry.js.map +0 -1
  473. package/dist/core/p-45595f98.entry.js.map +0 -1
  474. package/dist/core/p-4c68494c.entry.js +0 -2
  475. package/dist/core/p-4c68494c.entry.js.map +0 -1
  476. package/dist/core/p-55a37101.entry.js +0 -2
  477. package/dist/core/p-55a37101.entry.js.map +0 -1
  478. package/dist/core/p-5c349c9d.entry.js.map +0 -1
  479. package/dist/core/p-73fc198f.entry.js +0 -2
  480. package/dist/core/p-73fc198f.entry.js.map +0 -1
  481. package/dist/core/p-7eaf8da8.entry.js +0 -2
  482. package/dist/core/p-811d447b.entry.js +0 -2
  483. package/dist/core/p-85734ebf.entry.js.map +0 -1
  484. package/dist/core/p-85b7d931.entry.js.map +0 -1
  485. package/dist/core/p-98328cb9.entry.js +0 -2
  486. package/dist/core/p-98328cb9.entry.js.map +0 -1
  487. package/dist/core/p-a22658fb.entry.js +0 -2
  488. package/dist/core/p-a22658fb.entry.js.map +0 -1
  489. package/dist/core/p-a794b724.entry.js +0 -2
  490. package/dist/core/p-b21b4fea.entry.js +0 -2
  491. package/dist/core/p-b21b4fea.entry.js.map +0 -1
  492. package/dist/core/p-b953b22f.entry.js +0 -2
  493. package/dist/core/p-b953b22f.entry.js.map +0 -1
  494. package/dist/core/p-c9726fbd.entry.js.map +0 -1
  495. package/dist/core/p-d981598e.entry.js +0 -2
  496. package/dist/core/p-d981598e.entry.js.map +0 -1
  497. package/dist/core/p-ed8957da.js.map +0 -1
  498. package/dist/core/p-f3315216.entry.js +0 -2
  499. package/dist/core/p-f3315216.entry.js.map +0 -1
  500. package/dist/core/p-ff995eb8.entry.js +0 -2
  501. package/dist/core/p-ff995eb8.entry.js.map +0 -1
  502. package/dist/esm/helpers-dd035d0d.js.map +0 -1
  503. /package/dist/core/{p-5e1fd097.entry.js.map → p-0a8b3967.entry.js.map} +0 -0
  504. /package/dist/core/{p-f43f411a.entry.js.map → p-0b4350df.entry.js.map} +0 -0
  505. /package/dist/core/{p-f34efc17.entry.js.map → p-1e4cdd2d.entry.js.map} +0 -0
  506. /package/dist/core/{p-a71055c9.entry.js.map → p-23d059ff.entry.js.map} +0 -0
  507. /package/dist/core/{p-071f4748.entry.js.map → p-23ed8b99.entry.js.map} +0 -0
  508. /package/dist/core/{p-49768069.entry.js.map → p-30abe545.entry.js.map} +0 -0
  509. /package/dist/core/{p-1ac08e6d.entry.js.map → p-33c86ba6.entry.js.map} +0 -0
  510. /package/dist/core/{p-a20a7cd3.entry.js.map → p-3b5d3e24.entry.js.map} +0 -0
  511. /package/dist/core/{p-972671ea.entry.js.map → p-3eb7ef1d.entry.js.map} +0 -0
  512. /package/dist/core/{p-110486f0.entry.js.map → p-40f2f58e.entry.js.map} +0 -0
  513. /package/dist/core/{p-fa02a267.entry.js.map → p-4b6818d9.entry.js.map} +0 -0
  514. /package/dist/core/{p-a103068b.entry.js.map → p-5206a978.entry.js.map} +0 -0
  515. /package/dist/core/{p-1f455336.entry.js.map → p-5e18b899.entry.js.map} +0 -0
  516. /package/dist/core/{p-7e79bd0e.entry.js.map → p-6de6b6b7.entry.js.map} +0 -0
  517. /package/dist/core/{p-09070f61.entry.js.map → p-70700c7a.entry.js.map} +0 -0
  518. /package/dist/core/{p-20c4d90b.entry.js.map → p-7a0d238b.entry.js.map} +0 -0
  519. /package/dist/core/{p-69e4daec.entry.js.map → p-7c0914e7.entry.js.map} +0 -0
  520. /package/dist/core/{p-0d016565.entry.js.map → p-7dfe0284.entry.js.map} +0 -0
  521. /package/dist/core/{p-44e32417.entry.js.map → p-959a9cdf.entry.js.map} +0 -0
  522. /package/dist/core/{p-74600ed8.entry.js.map → p-abaea607.entry.js.map} +0 -0
  523. /package/dist/core/{p-37df68fe.entry.js.map → p-b3ac38c5.entry.js.map} +0 -0
  524. /package/dist/core/{p-17cf7b50.entry.js.map → p-b3d6d5be.entry.js.map} +0 -0
  525. /package/dist/core/{p-729745d3.entry.js.map → p-bbe5596b.entry.js.map} +0 -0
  526. /package/dist/core/{p-7eaf8da8.entry.js.map → p-c04f36c5.entry.js.map} +0 -0
  527. /package/dist/core/{p-4f2a1950.entry.js.map → p-c2ca6274.entry.js.map} +0 -0
  528. /package/dist/core/{p-701696aa.entry.js.map → p-de43d375.entry.js.map} +0 -0
  529. /package/dist/core/{p-2b1a331b.entry.js.map → p-e2f893f0.entry.js.map} +0 -0
  530. /package/dist/core/{p-d9aec0dd.entry.js.map → p-e56d0db2.entry.js.map} +0 -0
  531. /package/dist/core/{p-33243fff.entry.js.map → p-e586ae7b.entry.js.map} +0 -0
  532. /package/dist/core/{p-50f4d151.entry.js.map → p-f34eee68.entry.js.map} +0 -0
  533. /package/dist/core/{p-8b268274.entry.js.map → p-f3c72ffb.entry.js.map} +0 -0
  534. /package/dist/core/{p-8856dff4.entry.js.map → p-f815f8c9.entry.js.map} +0 -0
  535. /package/dist/core/{p-a55e7988.entry.js.map → p-fbde763c.entry.js.map} +0 -0
  536. /package/dist/core/{p-78e7a859.entry.js.map → p-fe833509.entry.js.map} +0 -0
@@ -1,7 +1,6 @@
1
1
  import { Host, h, } from "@stencil/core";
2
2
  import closeIcon from "../../assets/close-icon.svg";
3
- import { isSlotUsed, renderDynamicChildSlots } from "../../utils/helpers";
4
- import { IcBrandForegroundEnum, } from "../../utils/types";
3
+ import { isSlotUsed, pxToRem, renderDynamicChildSlots, } from "../../utils/helpers";
5
4
  import { VARIANT_ICONS } from "../../utils/constants";
6
5
  /**
7
6
  * @slot message - Content is placed to the right of the title.
@@ -11,6 +10,8 @@ import { VARIANT_ICONS } from "../../utils/constants";
11
10
  export class Alert {
12
11
  constructor() {
13
12
  this.hostMutationObserver = null;
13
+ this.systemThemeObserver = null;
14
+ this.darkMode = false;
14
15
  this.alertTitleWrap = false;
15
16
  this.visible = true;
16
17
  /**
@@ -44,56 +45,78 @@ export class Alert {
44
45
  this.dismissAction = () => {
45
46
  this.icDismiss.emit();
46
47
  };
48
+ this.calculateMinHeight = () => {
49
+ var _a;
50
+ const contentHeight = Number((_a = this.messageEl) === null || _a === void 0 ? void 0 : _a.clientHeight);
51
+ const minHeight = pxToRem(`${(contentHeight > 40 ? contentHeight : 52) + (this.darkMode ? 0 : 4)}`);
52
+ if (this.el.style.getPropertyValue("--ic-alert-min-height") !== minHeight)
53
+ this.el.style.setProperty("--ic-alert-min-height", minHeight);
54
+ };
55
+ }
56
+ themeChangeHandler() {
57
+ if (this.theme !== "inherit")
58
+ this.darkMode = this.theme === "dark";
47
59
  }
48
60
  disconnectedCallback() {
49
- var _a;
61
+ var _a, _b;
50
62
  (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
63
+ (_b = this.systemThemeObserver) === null || _b === void 0 ? void 0 : _b.removeEventListener("change", this.darkModeChangeHandler);
64
+ }
65
+ componentWillLoad() {
66
+ if (!this.el.closest("ic-theme")) {
67
+ this.systemThemeObserver = window.matchMedia("(prefers-color-scheme: dark)");
68
+ this.systemThemeObserver.addEventListener("change", this.darkModeChangeHandler);
69
+ this.darkMode = this.systemThemeObserver.matches;
70
+ }
71
+ this.themeChangeHandler();
51
72
  }
52
73
  componentDidLoad() {
53
- this.alertTitleShouldWrap();
74
+ var _a;
75
+ if (Number((_a = this.titleEl) === null || _a === void 0 ? void 0 : _a.clientHeight) > 24)
76
+ this.alertTitleWrap = true;
54
77
  this.hostMutationObserver = new MutationObserver((mutationList) => renderDynamicChildSlots(mutationList, "action", this));
55
78
  this.hostMutationObserver.observe(this.el, {
56
79
  childList: true,
57
80
  });
81
+ this.calculateMinHeight();
82
+ }
83
+ componentDidUpdate() {
84
+ this.calculateMinHeight();
58
85
  }
59
86
  handleClick() {
60
87
  this.visible = !this.visible;
61
88
  }
62
- alertTitleShouldWrap() {
63
- var _a, _b;
64
- const titleHeight = (_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".alert-title")) === null || _b === void 0 ? void 0 : _b.clientHeight;
65
- if (titleHeight && titleHeight > 24)
66
- this.alertTitleWrap = true;
89
+ darkModeChangeHandler(ev) {
90
+ this.darkMode = "detail" in ev ? ev.detail === "dark" : ev.matches;
91
+ this.calculateMinHeight();
67
92
  }
68
93
  render() {
69
- const { variant, heading, message, titleAbove, dismissible, announced, visible, showDefaultIcon, theme, } = this;
70
- return (visible && (h(Host, { key: '335bc190a85988d6dd90dee36bc452a249159889', role: announced ? "alert" : null, class: {
71
- [IcBrandForegroundEnum.Dark]: true,
72
- [`ic-theme-${theme}`]: theme !== "inherit",
73
- } }, h("div", { key: 'e856d3193d274c465ff36bcbda07d7d32f005672', class: {
74
- ["container"]: true,
75
- [`container-${variant}`]: true,
76
- } }, h("div", { key: '2ce18b9ad21036175efac411f6f975c042d1b262', class: "alert-icon-container" }, h("div", { key: 'd472ee06999d1f7ac81e4f17b7d951ad0d014c5f', class: {
77
- ["divider"]: true,
78
- [`divider-${variant}`]: true,
79
- } }), variant === "neutral" ? (isSlotUsed(this.el, "neutral-icon") ? (h("div", { class: "alert-icon svg-container icon-neutral" }, h("slot", { name: "neutral-icon" }))) : showDefaultIcon ? (h("span", { class: {
80
- ["alert-icon"]: true,
81
- ["svg-container"]: true,
82
- [`icon-${variant}`]: true,
83
- }, innerHTML: VARIANT_ICONS[variant].icon })) : (h("div", { class: "icon-placeholder" }))) : (h("span", { class: {
84
- ["alert-icon"]: true,
85
- ["svg-container"]: true,
94
+ const { variant, heading, message, titleAbove, dismissible, announced, visible, showDefaultIcon, theme, alertTitleWrap, dismissAction, } = this;
95
+ const Icon = () => {
96
+ const iconClass = {
97
+ "alert-icon": true,
98
+ "svg-container": true,
86
99
  [`icon-${variant}`]: true,
87
- }, innerHTML: VARIANT_ICONS[variant].icon }))), h("div", { key: 'd83902cf13b0e0de71ac43e725bab061e55dc7a4', class: "alert-content" }, h("div", { key: '8d85d750bee6bc70c6d8e8d6de15ab1244f61d67', class: {
88
- ["alert-message"]: true,
89
- ["alert-message-title-above"]: titleAbove || this.alertTitleWrap,
90
- } }, heading && (h("ic-typography", { key: '597ee8eedb36fa6b5fd311d939fbf6f2ce6efd35', class: {
91
- ["alert-title"]: true,
92
- ["alert-title-above"]: titleAbove || this.alertTitleWrap,
93
- }, variant: "subtitle-large" }, h("p", { key: 'b5a69877cd2d3d4d94c47084a2b7cb739c080b2e' }, heading))), h("slot", { key: 'f6b20259578c375633dff1a24d115500308766d6', name: "message" }, h("ic-typography", { key: '895813c7be5ddc2150f3fda932b69c5da684d460', variant: "body" }, message))), isSlotUsed(this.el, "action") && (h("div", { key: 'b18a1d6e25cc46771f33a09ca956fdcd64d407af', class: "alert-action-container" }, h("slot", { key: '05841b13b776380a6f52cd5cc1a8328df8de7407', name: "action" })))), h("div", { key: 'd58ecb605da9c1fe4b9931abc2bc95ce7aeb8074', class: "dismiss-icon-container" }, dismissible && (h("ic-button", { key: 'd9268c63861f40c897da738994cc35cae1244546', class: {
94
- ["svg-container"]: true,
95
- ["dismiss-icon"]: true,
96
- }, innerHTML: closeIcon, onClick: this.dismissAction, variant: "icon", theme: "dark", title: "Dismiss" })))))));
100
+ };
101
+ if (variant === "neutral") {
102
+ if (isSlotUsed(this.el, "neutral-icon")) {
103
+ return (h("div", { class: iconClass }, h("slot", { name: "neutral-icon" })));
104
+ }
105
+ else if (!showDefaultIcon) {
106
+ return h("div", { class: "icon-placeholder" });
107
+ }
108
+ }
109
+ return (h("span", { class: iconClass, innerHTML: VARIANT_ICONS[variant].icon }));
110
+ };
111
+ return (visible && (h(Host, { role: announced ? "alert" : null, class: {
112
+ [`ic-theme-${theme}`]: theme !== "inherit",
113
+ } }, h("div", { class: { container: true, [`container-${variant}`]: true } }, h("div", { class: "alert-icon-container" }, h("div", { class: { divider: true, [`divider-${variant}`]: true } }), h(Icon, null)), h("div", { class: "alert-content" }, h("div", { class: {
114
+ "alert-message": true,
115
+ "alert-message-title-above": titleAbove || alertTitleWrap,
116
+ }, ref: (el) => (this.messageEl = el) }, heading && (h("ic-typography", { class: {
117
+ "alert-title": true,
118
+ "alert-title-above": titleAbove || alertTitleWrap,
119
+ }, variant: "subtitle-large", ref: (el) => (this.titleEl = el) }, h("p", null, heading))), h("slot", { name: "message" }, h("ic-typography", { variant: "body" }, message))), isSlotUsed(this.el, "action") && (h("div", { class: "alert-action-container" }, h("slot", { name: "action" })))), h("div", { class: "dismiss-icon-container" }, dismissible && (h("ic-button", { class: { "svg-container": true, "dismiss-icon": true }, innerHTML: closeIcon, onClick: dismissAction, variant: "icon", theme: "dark", title: "Dismiss" })))))));
97
120
  }
98
121
  static get is() { return "ic-alert"; }
99
122
  static get encapsulation() { return "shadow"; }
@@ -114,11 +137,11 @@ export class Alert {
114
137
  "mutable": false,
115
138
  "complexType": {
116
139
  "original": "boolean",
117
- "resolved": "boolean | undefined",
140
+ "resolved": "boolean",
118
141
  "references": {}
119
142
  },
120
143
  "required": false,
121
- "optional": true,
144
+ "optional": false,
122
145
  "docs": {
123
146
  "tags": [],
124
147
  "text": "If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers."
@@ -134,11 +157,11 @@ export class Alert {
134
157
  "mutable": false,
135
158
  "complexType": {
136
159
  "original": "boolean",
137
- "resolved": "boolean | undefined",
160
+ "resolved": "boolean",
138
161
  "references": {}
139
162
  },
140
163
  "required": false,
141
- "optional": true,
164
+ "optional": false,
142
165
  "docs": {
143
166
  "tags": [],
144
167
  "text": "If `true`, the alert will have a close icon at the end to dismiss it."
@@ -154,11 +177,11 @@ export class Alert {
154
177
  "mutable": false,
155
178
  "complexType": {
156
179
  "original": "string",
157
- "resolved": "string | undefined",
180
+ "resolved": "string",
158
181
  "references": {}
159
182
  },
160
183
  "required": false,
161
- "optional": true,
184
+ "optional": false,
162
185
  "docs": {
163
186
  "tags": [],
164
187
  "text": "The optional title to display at the start of the alert."
@@ -193,11 +216,11 @@ export class Alert {
193
216
  "mutable": false,
194
217
  "complexType": {
195
218
  "original": "boolean",
196
- "resolved": "boolean | undefined",
219
+ "resolved": "boolean",
197
220
  "references": {}
198
221
  },
199
222
  "required": false,
200
- "optional": true,
223
+ "optional": false,
201
224
  "docs": {
202
225
  "tags": [],
203
226
  "text": "If `true`, the default icon for the neutral variant will appear on the left of the alert."
@@ -213,7 +236,7 @@ export class Alert {
213
236
  "mutable": false,
214
237
  "complexType": {
215
238
  "original": "IcThemeMode",
216
- "resolved": "\"dark\" | \"inherit\" | \"light\" | undefined",
239
+ "resolved": "\"dark\" | \"inherit\" | \"light\"",
217
240
  "references": {
218
241
  "IcThemeMode": {
219
242
  "location": "import",
@@ -223,7 +246,7 @@ export class Alert {
223
246
  }
224
247
  },
225
248
  "required": false,
226
- "optional": true,
249
+ "optional": false,
227
250
  "docs": {
228
251
  "tags": [],
229
252
  "text": "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."
@@ -239,11 +262,11 @@ export class Alert {
239
262
  "mutable": false,
240
263
  "complexType": {
241
264
  "original": "boolean",
242
- "resolved": "boolean | undefined",
265
+ "resolved": "boolean",
243
266
  "references": {}
244
267
  },
245
268
  "required": false,
246
- "optional": true,
269
+ "optional": false,
247
270
  "docs": {
248
271
  "tags": [],
249
272
  "text": "If `true`, the title and message will appear above and below instead of inline."
@@ -259,7 +282,7 @@ export class Alert {
259
282
  "mutable": false,
260
283
  "complexType": {
261
284
  "original": "IcStatusVariants",
262
- "resolved": "\"error\" | \"info\" | \"neutral\" | \"success\" | \"warning\" | undefined",
285
+ "resolved": "\"error\" | \"info\" | \"neutral\" | \"success\" | \"warning\"",
263
286
  "references": {
264
287
  "IcStatusVariants": {
265
288
  "location": "import",
@@ -269,7 +292,7 @@ export class Alert {
269
292
  }
270
293
  },
271
294
  "required": false,
272
- "optional": true,
295
+ "optional": false,
273
296
  "docs": {
274
297
  "tags": [],
275
298
  "text": "The variant of the alert which will be rendered."
@@ -307,6 +330,12 @@ export class Alert {
307
330
  }];
308
331
  }
309
332
  static get elementRef() { return "el"; }
333
+ static get watchers() {
334
+ return [{
335
+ "propName": "theme",
336
+ "methodName": "themeChangeHandler"
337
+ }];
338
+ }
310
339
  static get listeners() {
311
340
  return [{
312
341
  "name": "icDismiss",
@@ -314,6 +343,12 @@ export class Alert {
314
343
  "target": undefined,
315
344
  "capture": true,
316
345
  "passive": false
346
+ }, {
347
+ "name": "icThemeChange",
348
+ "method": "darkModeChangeHandler",
349
+ "target": "document",
350
+ "capture": true,
351
+ "passive": false
317
352
  }];
318
353
  }
319
354
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-alert.js","sourceRoot":"","sources":["../../../src/components/ic-alert/ic-alert.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n State,\n Listen,\n Prop,\n h,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, renderDynamicChildSlots } from \"../../utils/helpers\";\nimport {\n IcBrandForegroundEnum,\n IcStatusVariants,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\n\n/**\n * @slot message - Content is placed to the right of the title.\n * @slot action - Content is placed to the right of the message.\n * @slot neutral-icon - A custom neutral icon is placed to the left of the title. This will override the default icon if used.\n */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcAlertElement;\n\n @State() alertTitleWrap: boolean = false;\n @State() visible: boolean = true;\n\n /**\n * If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers.\n */\n @Prop() announced?: boolean = true;\n\n /**\n * If `true`, the alert will have a close icon at the end to dismiss it.\n */\n @Prop() dismissible?: boolean = false;\n\n /**\n * The optional title to display at the start of the alert.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the alert.\n */\n @Prop() message?: string;\n\n /**\n * If `true`, the default icon for the neutral variant will appear on the left of the alert.\n */\n @Prop() showDefaultIcon?: boolean = true;\n\n /**\n * 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 * If `true`, the title and message will appear above and below instead of inline.\n */\n @Prop() titleAbove?: boolean = false;\n\n /**\n * The variant of the alert which will be rendered.\n */\n @Prop() variant?: IcStatusVariants = \"neutral\";\n\n /**\n * Is emitted when the user dismisses the alert.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentDidLoad(): void {\n this.alertTitleShouldWrap();\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"action\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private alertTitleShouldWrap() {\n const titleHeight =\n this.el.shadowRoot?.querySelector(\".alert-title\")?.clientHeight;\n if (titleHeight && titleHeight > 24) this.alertTitleWrap = true;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n showDefaultIcon,\n theme,\n } = this;\n\n return (\n visible && (\n <Host\n role={announced ? \"alert\" : null}\n class={{\n [IcBrandForegroundEnum.Dark]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div\n class={{\n [\"container\"]: true,\n [`container-${variant}`]: true,\n }}\n >\n <div class=\"alert-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n isSlotUsed(this.el, \"neutral-icon\") ? (\n <div class=\"alert-icon svg-container icon-neutral\">\n <slot name=\"neutral-icon\"></slot>\n </div>\n ) : showDefaultIcon ? (\n <span\n class={{\n [\"alert-icon\"]: true,\n [\"svg-container\"]: true,\n [`icon-${variant}`]: true,\n }}\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n ) : (\n <div class=\"icon-placeholder\"></div>\n )\n ) : (\n <span\n class={{\n [\"alert-icon\"]: true,\n [\"svg-container\"]: true,\n [`icon-${variant}`]: true,\n }}\n innerHTML={VARIANT_ICONS[variant!].icon}\n ></span>\n )}\n </div>\n <div class=\"alert-content\">\n <div\n class={{\n [\"alert-message\"]: true,\n [\"alert-message-title-above\"]:\n titleAbove || this.alertTitleWrap,\n }}\n >\n {heading && (\n <ic-typography\n class={{\n [\"alert-title\"]: true,\n [\"alert-title-above\"]: titleAbove || this.alertTitleWrap,\n }}\n variant=\"subtitle-large\"\n >\n <p>{heading}</p>\n </ic-typography>\n )}\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"alert-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n <div class=\"dismiss-icon-container\">\n {dismissible && (\n <ic-button\n class={{\n [\"svg-container\"]: true,\n [\"dismiss-icon\"]: true,\n }}\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n theme=\"dark\"\n title=\"Dismiss\"\n ></ic-button>\n )}\n </div>\n </div>\n </Host>\n )\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-alert.js","sourceRoot":"","sources":["../../../src/components/ic-alert/ic-alert.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n State,\n Listen,\n Prop,\n h,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport {\n isSlotUsed,\n pxToRem,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcStatusVariants,\n IcThemeMode,\n IcThemeSettings,\n} from \"../../utils/types\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\n\n/**\n * @slot message - Content is placed to the right of the title.\n * @slot action - Content is placed to the right of the message.\n * @slot neutral-icon - A custom neutral icon is placed to the left of the title. This will override the default icon if used.\n */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\n private hostMutationObserver: MutationObserver | null = null;\n private systemThemeObserver: MediaQueryList | null = null;\n private darkMode: boolean = false;\n private messageEl?: HTMLDivElement;\n private titleEl?: HTMLIcTypographyElement;\n\n @Element() el: HTMLIcAlertElement;\n\n @State() alertTitleWrap: boolean = false;\n @State() visible: boolean = true;\n\n /**\n * If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers.\n */\n @Prop() announced: boolean = true;\n\n /**\n * If `true`, the alert will have a close icon at the end to dismiss it.\n */\n @Prop() dismissible: boolean = false;\n\n /**\n * The optional title to display at the start of the alert.\n */\n @Prop() heading: string = \"\";\n\n /**\n * The main body message of the alert.\n */\n @Prop() message?: string;\n\n /**\n * If `true`, the default icon for the neutral variant will appear on the left of the alert.\n */\n @Prop() showDefaultIcon: boolean = true;\n\n /**\n * 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 @Watch(\"theme\")\n themeChangeHandler(): void {\n if (this.theme !== \"inherit\") this.darkMode = this.theme === \"dark\";\n }\n\n /**\n * If `true`, the title and message will appear above and below instead of inline.\n */\n @Prop() titleAbove: boolean = false;\n\n /**\n * The variant of the alert which will be rendered.\n */\n @Prop() variant: IcStatusVariants = \"neutral\";\n\n /**\n * Is emitted when the user dismisses the alert.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n this.systemThemeObserver?.removeEventListener(\n \"change\",\n this.darkModeChangeHandler\n );\n }\n\n componentWillLoad(): void {\n if (!this.el.closest(\"ic-theme\")) {\n this.systemThemeObserver = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n );\n this.systemThemeObserver.addEventListener(\n \"change\",\n this.darkModeChangeHandler\n );\n this.darkMode = this.systemThemeObserver.matches;\n }\n\n this.themeChangeHandler();\n }\n\n componentDidLoad(): void {\n if (Number(this.titleEl?.clientHeight) > 24) this.alertTitleWrap = true;\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"action\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n\n this.calculateMinHeight();\n }\n\n componentDidUpdate(): void {\n this.calculateMinHeight();\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n @Listen(\"icThemeChange\", { target: \"document\", capture: true })\n darkModeChangeHandler(\n ev: CustomEvent<IcThemeSettings> | MediaQueryListEvent\n ): void {\n this.darkMode = \"detail\" in ev ? ev.detail === \"dark\" : ev.matches;\n\n this.calculateMinHeight();\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private calculateMinHeight = (): void => {\n const contentHeight = Number(this.messageEl?.clientHeight);\n\n const minHeight = pxToRem(\n `${(contentHeight > 40 ? contentHeight : 52) + (this.darkMode ? 0 : 4)}`\n );\n\n if (this.el.style.getPropertyValue(\"--ic-alert-min-height\") !== minHeight)\n this.el.style.setProperty(\"--ic-alert-min-height\", minHeight);\n };\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n showDefaultIcon,\n theme,\n alertTitleWrap,\n dismissAction,\n } = this;\n\n const Icon = () => {\n const iconClass = {\n \"alert-icon\": true,\n \"svg-container\": true,\n [`icon-${variant}`]: true,\n };\n\n if (variant === \"neutral\") {\n if (isSlotUsed(this.el, \"neutral-icon\")) {\n return (\n <div class={iconClass}>\n <slot name=\"neutral-icon\"></slot>\n </div>\n );\n } else if (!showDefaultIcon) {\n return <div class=\"icon-placeholder\"></div>;\n }\n }\n\n return (\n <span class={iconClass} innerHTML={VARIANT_ICONS[variant].icon}></span>\n );\n };\n\n return (\n visible && (\n <Host\n role={announced ? \"alert\" : null}\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, [`container-${variant}`]: true }}>\n <div class=\"alert-icon-container\">\n <div\n class={{ divider: true, [`divider-${variant}`]: true }}\n ></div>\n <Icon />\n </div>\n <div class=\"alert-content\">\n <div\n class={{\n \"alert-message\": true,\n \"alert-message-title-above\": titleAbove || alertTitleWrap,\n }}\n ref={(el) => (this.messageEl = el)}\n >\n {heading && (\n <ic-typography\n class={{\n \"alert-title\": true,\n \"alert-title-above\": titleAbove || alertTitleWrap,\n }}\n variant=\"subtitle-large\"\n ref={(el) => (this.titleEl = el)}\n >\n <p>{heading}</p>\n </ic-typography>\n )}\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"alert-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n <div class=\"dismiss-icon-container\">\n {dismissible && (\n <ic-button\n class={{ \"svg-container\": true, \"dismiss-icon\": true }}\n innerHTML={closeIcon}\n onClick={dismissAction}\n variant=\"icon\"\n theme=\"dark\"\n title=\"Dismiss\"\n ></ic-button>\n )}\n </div>\n </div>\n </Host>\n )\n );\n }\n}\n"]}
@@ -131,15 +131,15 @@ export class BackToTop {
131
131
  const btnVariant = variant === "icon" ? "icon-secondary" : "secondary";
132
132
  const size = variant === "icon" ? "large" : "medium";
133
133
  const label = variant === "icon" ? "" : backToTopLabel;
134
- return (h(Host, { key: '38b224538ee269a88ce0dfe19938bd795ce2e9f3', class: {
134
+ return (h(Host, { key: '81025a66bc45c55d0caa94c0cd649ce2dfb7eb7c', class: {
135
135
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
136
136
  [`ic-back-to-top-${this.position}`]: true,
137
- } }, h("ic-button", { key: '86a2e578c5241853c2ce446a6c08bbac77041b1b', "aria-label": backToTopLabel, variant: btnVariant, size: size, onClick: this.handleClick, class: {
137
+ } }, h("ic-button", { key: '9855a53f4ea50219ba19022a5873b004704bf3a0', "aria-label": backToTopLabel, variant: btnVariant, size: size, onClick: this.handleClick, class: {
138
138
  ["offset-banner"]: bannerOffset,
139
139
  ["show"]: !targetElVisible,
140
140
  ["by-footer"]: footerVisible,
141
141
  ["icon-only"]: variant === "icon",
142
- }, theme: this.theme }, h("span", { key: '7405853ed5bb0e807e4bc0c8f1d4797ec51f5900', class: "ic-back-to-top-icon", innerHTML: ArrowUpward }), label)));
142
+ }, theme: this.theme }, h("span", { key: '726b1b15f1e9168e9bb7826451357f6f559efa02', class: "ic-back-to-top-icon", innerHTML: ArrowUpward }), label)));
143
143
  }
144
144
  static get is() { return "ic-back-to-top"; }
145
145
  static get encapsulation() { return "shadow"; }
@@ -1,13 +1,15 @@
1
1
  import { Host, h, } from "@stencil/core";
2
2
  import { convertToRGBA, getBrandForegroundAppearance, isPropDefined, onComponentRequiredPropUndefined, } from "../../utils/helpers";
3
- const NAVIGATION_BUTTON = "IC-NAVIGATION-BUTTON";
4
3
  const TOP_NAVIGATION = "IC-TOP-NAVIGATION";
4
+ const SIDE_NAVIGATION = "IC-SIDE-NAVIGATION";
5
5
  /**
6
6
  * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.
7
7
  */
8
8
  export class Badge {
9
9
  constructor() {
10
+ var _a;
10
11
  this.ariaLabel = null;
12
+ this.initialPosition = (_a = this.position) !== null && _a !== void 0 ? _a : "far";
11
13
  /**
12
14
  * The positioning of the badge in reference to the parent element.
13
15
  */
@@ -67,20 +69,41 @@ export class Badge {
67
69
  }
68
70
  };
69
71
  this.setPositionInTopNavigation = () => {
70
- var _a;
71
- const parentTopNavEl = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
72
- (parentTopNavEl === null || parentTopNavEl === void 0 ? void 0 : parentTopNavEl.classList.contains("mobile-mode"))
73
- ? (this.position = "inline")
74
- : (this.position = "near");
72
+ this.position = this.isInMobileMode() ? "inline" : this.initialPosition;
73
+ };
74
+ this.setPositionInSideNavigation = () => {
75
+ this.position = "near";
75
76
  };
76
77
  this.isInTopNav = () => {
77
78
  const parentEl = this.el.parentElement;
78
- if (parentEl) {
79
- const grandparentEl = parentEl === null || parentEl === void 0 ? void 0 : parentEl.parentElement;
80
- return ((parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === NAVIGATION_BUTTON &&
81
- (grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.tagName) === TOP_NAVIGATION);
82
- }
83
- return false;
79
+ if (!parentEl)
80
+ return false;
81
+ const grandparentEl = parentEl.parentElement;
82
+ const greatGrandparentEl = grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.parentElement;
83
+ return ((grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.tagName) === TOP_NAVIGATION ||
84
+ (greatGrandparentEl === null || greatGrandparentEl === void 0 ? void 0 : greatGrandparentEl.tagName) === TOP_NAVIGATION);
85
+ };
86
+ this.isInSideNav = () => {
87
+ const parentEl = this.el.parentElement;
88
+ if (!parentEl)
89
+ return false;
90
+ const grandparentEl = parentEl.parentElement;
91
+ const greatGrandparentEl = grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.parentElement;
92
+ return ((grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.tagName) === SIDE_NAVIGATION ||
93
+ (greatGrandparentEl === null || greatGrandparentEl === void 0 ? void 0 : greatGrandparentEl.tagName) === SIDE_NAVIGATION);
94
+ };
95
+ this.isInMobileMode = () => {
96
+ const parentEl = this.el.parentElement;
97
+ if (!parentEl)
98
+ return false;
99
+ const grandparentEl = parentEl.parentElement;
100
+ const greatGrandparentEl = grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.parentElement;
101
+ return ((((grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.tagName) === TOP_NAVIGATION ||
102
+ (grandparentEl === null || grandparentEl === void 0 ? void 0 : grandparentEl.tagName) === SIDE_NAVIGATION) &&
103
+ grandparentEl.classList.contains("mobile-mode")) ||
104
+ (((greatGrandparentEl === null || greatGrandparentEl === void 0 ? void 0 : greatGrandparentEl.tagName) === TOP_NAVIGATION ||
105
+ (greatGrandparentEl === null || greatGrandparentEl === void 0 ? void 0 : greatGrandparentEl.tagName) === SIDE_NAVIGATION) &&
106
+ greatGrandparentEl.classList.contains("mobile-mode")));
84
107
  };
85
108
  this.isAccessibleLabelDefined = () => isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;
86
109
  }
@@ -112,16 +135,17 @@ export class Badge {
112
135
  }
113
136
  componentWillRender() {
114
137
  this.isInTopNav() && this.setPositionInTopNavigation();
138
+ this.isInSideNav() && this.setPositionInSideNavigation();
115
139
  }
116
140
  navBarMenuOpenHandler() {
117
141
  this.isInTopNav() && (this.position = "inline");
118
142
  }
119
143
  navBarMenuCloseHandler() {
120
- this.isInTopNav() && (this.position = "near");
144
+ this.isInTopNav() && (this.position = this.initialPosition);
121
145
  }
122
146
  render() {
123
147
  const { ariaLabel, el, foregroundColour, getLabel, position, size, label, type, variant, visible, theme, } = this;
124
- return (h(Host, { key: '26e06624cc8ed1a263175e7c037413ce8b69827c', class: {
148
+ return (h(Host, { key: 'c55c73aa83e0b1612a0545696091955c110f28b3', class: {
125
149
  [`ic-badge-${position}`]: true,
126
150
  [`ic-badge-${size}`]: true,
127
151
  [`ic-badge-${variant}`]: true,
@@ -129,7 +153,7 @@ export class Badge {
129
153
  [`ic-badge-foreground-${foregroundColour}`]: foregroundColour !== null && variant === "custom",
130
154
  [`${visible ? "ic-badge-show" : "ic-badge-hide"}`]: true,
131
155
  [`ic-theme-${theme}`]: theme !== "inherit",
132
- }, id: el.id || null, "aria-label": ariaLabel, role: "status" }, type === "icon" && h("slot", { key: 'f646ef81ef5a7e7955d59f5497ed268a6a44ed87', name: "badge-icon" }), type === "text" && label && (h("ic-typography", { key: 'd8b61345c30c6efcf7111684996b2a52ed611d97', variant: size === "small" ? "badge-small" : "badge" }, getLabel())), type === "dot" && h("span", { key: 'a50bb809ae2088b20064f006e3917cc16c052038', class: "sr-only" }, "badge")));
156
+ }, id: el.id || null, "aria-label": ariaLabel, role: "status" }, type === "icon" && h("slot", { key: '69638833e6ac739848e645fa22f2732326fe24fe', name: "badge-icon" }), type === "text" && label && (h("ic-typography", { key: '841ec60f30d95c32c30e29c533157fdf199bdb2d', variant: size === "small" ? "badge-small" : "badge" }, getLabel())), type === "dot" && h("span", { key: '9d1198260090039de3093bf0fa191ff09cfd0408', class: "sr-only" }, "badge")));
133
157
  }
134
158
  static get is() { return "ic-badge"; }
135
159
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-badge.js","sourceRoot":"","sources":["../../../src/components/ic-badge/ic-badge.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n Watch,\n h,\n Listen,\n} from \"@stencil/core\";\nimport {\n IcBadgePositions,\n IcBadgeTypes,\n IcBadgeVariants,\n} from \"./ic-badge.types\";\nimport {\n IcSizes,\n IcBrandForeground,\n IcColor,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n convertToRGBA,\n getBrandForegroundAppearance,\n isPropDefined,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\n\nconst NAVIGATION_BUTTON = \"IC-NAVIGATION-BUTTON\";\nconst TOP_NAVIGATION = \"IC-TOP-NAVIGATION\";\n\n/**\n * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.\n */\n@Component({\n tag: \"ic-badge\",\n styleUrl: \"ic-badge.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Badge {\n private ariaLabel: string | null = null;\n private foregroundColour: IcBrandForeground;\n private parentAriaLabel: string;\n\n @Element() el: HTMLIcBadgeElement;\n\n /**\n * The accessible label of the badge component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string;\n\n @Watch(\"accessibleLabel\")\n accessibleLabelHandler(): void {\n this.setAccessibleLabel();\n }\n\n /**\n * The custom badge colour. This will only style the badge component if variant=\"custom\".\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor;\n\n @Watch(\"customColor\")\n customColorHandler(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n }\n\n /**\n * The maximum number shown on the badge appended with a +.\n * This will only be displayed if type=\"text\" and label is not empty.\n */\n @Prop() maxNumber?: number;\n\n /**\n * The positioning of the badge in reference to the parent element.\n */\n @Prop({ mutable: true }) position?: IcBadgePositions = \"far\";\n\n /**\n * The size of the badge to be displayed.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The text displayed in the badge. This will only be displayed if type=\"text\".\n */\n @Prop() label?: string;\n\n /**\n * 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 * The type of badge to be displayed.\n */\n @Prop() type?: IcBadgeTypes = \"text\";\n\n /**\n * The variant of the badge to be displayed.\n */\n @Prop() variant?: IcBadgeVariants = \"neutral\";\n\n @Watch(\"variant\")\n variantHandler(): void {\n if (this.variant === \"custom\") {\n this.setBadgeColour();\n }\n }\n\n /**\n * If `true`, the badge will be displayed.\n */\n @Prop() visible?: boolean = true;\n\n @Watch(\"visible\")\n visibleHandler(): void {\n this.setAccessibleLabel();\n }\n\n componentWillLoad(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n\n const ariaLabel = this.el.parentElement?.ariaLabel;\n if (ariaLabel) this.parentAriaLabel = ariaLabel;\n this.setAccessibleLabel();\n }\n\n componentDidLoad(): void {\n this.type === \"text\" &&\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Badge\"\n );\n }\n\n componentWillRender(): void {\n this.isInTopNav() && this.setPositionInTopNavigation();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.isInTopNav() && (this.position = \"inline\");\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.isInTopNav() && (this.position = \"near\");\n }\n\n private setBadgeColour = () => {\n const colorRGBA = this.customColor ? convertToRGBA(this.customColor) : null;\n\n if (colorRGBA) {\n const { r, g, b, a } = colorRGBA;\n this.el.style.backgroundColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n this.foregroundColour = getBrandForegroundAppearance(\n (r * 299 + g * 587 + b * 114) / 1000\n );\n }\n };\n\n private getLabel = () =>\n this.maxNumber && Number(this.label) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.label;\n\n // Set aria-label on badge and / or parent element\n // Aria-describedby seems to not work, probably due to shadow DOM\n private setAccessibleLabel = () => {\n const parentEl = this.el.parentElement;\n const defaultAriaLabel = this.isAccessibleLabelDefined()\n ? this.accessibleLabel\n : this.label || \"with badge being displayed\";\n\n if (parentEl) {\n const { tagName } = parentEl;\n if (\n tagName !== \"IC-CARD\" &&\n (tagName !== \"IC-TAB\" || (tagName === \"IC-TAB\" && this.parentAriaLabel))\n ) {\n const ariaLabelPrefix = this.parentAriaLabel\n ? `${this.parentAriaLabel} ,`\n : \"\";\n parentEl.ariaLabel = this.visible\n ? `${ariaLabelPrefix} ${defaultAriaLabel}`\n : null;\n } else {\n this.ariaLabel = `, ${defaultAriaLabel}`;\n }\n }\n };\n\n private setPositionInTopNavigation = () => {\n const parentTopNavEl = this.el.parentElement?.parentElement;\n parentTopNavEl?.classList.contains(\"mobile-mode\")\n ? (this.position = \"inline\")\n : (this.position = \"near\");\n };\n\n private isInTopNav = (): boolean => {\n const parentEl = this.el.parentElement;\n if (parentEl) {\n const grandparentEl = parentEl?.parentElement;\n return (\n parentEl?.tagName === NAVIGATION_BUTTON &&\n grandparentEl?.tagName === TOP_NAVIGATION\n );\n }\n return false;\n };\n\n private isAccessibleLabelDefined = () =>\n isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;\n\n render() {\n const {\n ariaLabel,\n el,\n foregroundColour,\n getLabel,\n position,\n size,\n label,\n type,\n variant,\n visible,\n theme,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-badge-${position}`]: true,\n [`ic-badge-${size}`]: true,\n [`ic-badge-${variant}`]: true,\n [`ic-badge-${type}`]: true,\n [`ic-badge-foreground-${foregroundColour}`]:\n foregroundColour !== null && variant === \"custom\",\n [`${visible ? \"ic-badge-show\" : \"ic-badge-hide\"}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n id={el.id || null}\n aria-label={ariaLabel}\n role=\"status\"\n >\n {type === \"icon\" && <slot name=\"badge-icon\"></slot>}\n {type === \"text\" && label && (\n <ic-typography variant={size === \"small\" ? \"badge-small\" : \"badge\"}>\n {getLabel()}\n </ic-typography>\n )}\n {type === \"dot\" && <span class=\"sr-only\">badge</span>}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-badge.js","sourceRoot":"","sources":["../../../src/components/ic-badge/ic-badge.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n Watch,\n h,\n Listen,\n} from \"@stencil/core\";\nimport {\n IcBadgePositions,\n IcBadgeTypes,\n IcBadgeVariants,\n} from \"./ic-badge.types\";\nimport {\n IcSizes,\n IcBrandForeground,\n IcColor,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n convertToRGBA,\n getBrandForegroundAppearance,\n isPropDefined,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\n\nconst TOP_NAVIGATION = \"IC-TOP-NAVIGATION\";\nconst SIDE_NAVIGATION = \"IC-SIDE-NAVIGATION\";\n\n/**\n * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.\n */\n@Component({\n tag: \"ic-badge\",\n styleUrl: \"ic-badge.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Badge {\n private ariaLabel: string | null = null;\n private foregroundColour: IcBrandForeground;\n private parentAriaLabel: string;\n private initialPosition: IcBadgePositions = this.position ?? \"far\";\n\n @Element() el: HTMLIcBadgeElement;\n\n /**\n * The accessible label of the badge component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string;\n\n @Watch(\"accessibleLabel\")\n accessibleLabelHandler(): void {\n this.setAccessibleLabel();\n }\n\n /**\n * The custom badge colour. This will only style the badge component if variant=\"custom\".\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor;\n\n @Watch(\"customColor\")\n customColorHandler(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n }\n\n /**\n * The maximum number shown on the badge appended with a +.\n * This will only be displayed if type=\"text\" and label is not empty.\n */\n @Prop() maxNumber?: number;\n\n /**\n * The positioning of the badge in reference to the parent element.\n */\n @Prop({ mutable: true }) position?: IcBadgePositions = \"far\";\n\n /**\n * The size of the badge to be displayed.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The text displayed in the badge. This will only be displayed if type=\"text\".\n */\n @Prop() label?: string;\n\n /**\n * 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 * The type of badge to be displayed.\n */\n @Prop() type?: IcBadgeTypes = \"text\";\n\n /**\n * The variant of the badge to be displayed.\n */\n @Prop() variant?: IcBadgeVariants = \"neutral\";\n\n @Watch(\"variant\")\n variantHandler(): void {\n if (this.variant === \"custom\") {\n this.setBadgeColour();\n }\n }\n\n /**\n * If `true`, the badge will be displayed.\n */\n @Prop() visible?: boolean = true;\n\n @Watch(\"visible\")\n visibleHandler(): void {\n this.setAccessibleLabel();\n }\n\n componentWillLoad(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n\n const ariaLabel = this.el.parentElement?.ariaLabel;\n if (ariaLabel) this.parentAriaLabel = ariaLabel;\n this.setAccessibleLabel();\n }\n\n componentDidLoad(): void {\n this.type === \"text\" &&\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Badge\"\n );\n }\n\n componentWillRender(): void {\n this.isInTopNav() && this.setPositionInTopNavigation();\n this.isInSideNav() && this.setPositionInSideNavigation();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.isInTopNav() && (this.position = \"inline\");\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.isInTopNav() && (this.position = this.initialPosition);\n }\n\n private setBadgeColour = () => {\n const colorRGBA = this.customColor ? convertToRGBA(this.customColor) : null;\n\n if (colorRGBA) {\n const { r, g, b, a } = colorRGBA;\n this.el.style.backgroundColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n this.foregroundColour = getBrandForegroundAppearance(\n (r * 299 + g * 587 + b * 114) / 1000\n );\n }\n };\n\n private getLabel = () =>\n this.maxNumber && Number(this.label) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.label;\n\n // Set aria-label on badge and / or parent element\n // Aria-describedby seems to not work, probably due to shadow DOM\n private setAccessibleLabel = () => {\n const parentEl = this.el.parentElement;\n const defaultAriaLabel = this.isAccessibleLabelDefined()\n ? this.accessibleLabel\n : this.label || \"with badge being displayed\";\n\n if (parentEl) {\n const { tagName } = parentEl;\n if (\n tagName !== \"IC-CARD\" &&\n (tagName !== \"IC-TAB\" || (tagName === \"IC-TAB\" && this.parentAriaLabel))\n ) {\n const ariaLabelPrefix = this.parentAriaLabel\n ? `${this.parentAriaLabel} ,`\n : \"\";\n parentEl.ariaLabel = this.visible\n ? `${ariaLabelPrefix} ${defaultAriaLabel}`\n : null;\n } else {\n this.ariaLabel = `, ${defaultAriaLabel}`;\n }\n }\n };\n\n private setPositionInTopNavigation = () => {\n this.position = this.isInMobileMode() ? \"inline\" : this.initialPosition;\n };\n\n private setPositionInSideNavigation = () => {\n this.position = \"near\";\n };\n\n private isInTopNav = (): boolean => {\n const parentEl = this.el.parentElement;\n if (!parentEl) return false;\n const grandparentEl = parentEl.parentElement;\n const greatGrandparentEl = grandparentEl?.parentElement;\n return (\n grandparentEl?.tagName === TOP_NAVIGATION ||\n greatGrandparentEl?.tagName === TOP_NAVIGATION\n );\n };\n\n private isInSideNav = (): boolean => {\n const parentEl = this.el.parentElement;\n if (!parentEl) return false;\n const grandparentEl = parentEl.parentElement;\n const greatGrandparentEl = grandparentEl?.parentElement;\n return (\n grandparentEl?.tagName === SIDE_NAVIGATION ||\n greatGrandparentEl?.tagName === SIDE_NAVIGATION\n );\n };\n\n private isInMobileMode = (): boolean => {\n const parentEl = this.el.parentElement;\n if (!parentEl) return false;\n const grandparentEl = parentEl.parentElement;\n const greatGrandparentEl = grandparentEl?.parentElement;\n return (\n ((grandparentEl?.tagName === TOP_NAVIGATION ||\n grandparentEl?.tagName === SIDE_NAVIGATION) &&\n grandparentEl.classList.contains(\"mobile-mode\")) ||\n ((greatGrandparentEl?.tagName === TOP_NAVIGATION ||\n greatGrandparentEl?.tagName === SIDE_NAVIGATION) &&\n greatGrandparentEl.classList.contains(\"mobile-mode\"))\n );\n };\n\n private isAccessibleLabelDefined = () =>\n isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;\n\n render() {\n const {\n ariaLabel,\n el,\n foregroundColour,\n getLabel,\n position,\n size,\n label,\n type,\n variant,\n visible,\n theme,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-badge-${position}`]: true,\n [`ic-badge-${size}`]: true,\n [`ic-badge-${variant}`]: true,\n [`ic-badge-${type}`]: true,\n [`ic-badge-foreground-${foregroundColour}`]:\n foregroundColour !== null && variant === \"custom\",\n [`${visible ? \"ic-badge-show\" : \"ic-badge-hide\"}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n id={el.id || null}\n aria-label={ariaLabel}\n role=\"status\"\n >\n {type === \"icon\" && <slot name=\"badge-icon\"></slot>}\n {type === \"text\" && label && (\n <ic-typography variant={size === \"small\" ? \"badge-small\" : \"badge\"}>\n {getLabel()}\n </ic-typography>\n )}\n {type === \"dot\" && <span class=\"sr-only\">badge</span>}\n </Host>\n );\n }\n}\n"]}
@@ -107,11 +107,11 @@ export class Breadcrumb {
107
107
  const describedById = `${pageTitle && pageTitle.toLowerCase().replace(" ", "-")}-describedby`;
108
108
  const hasPageTitle = pageTitle !== null && isPropDefined(pageTitle) && pageTitle !== "";
109
109
  const hasHref = href !== null && isPropDefined(href) && href !== "";
110
- return (h(Host, { key: 'ec05cf0666fe3145ec70109bdd80987666520583', class: {
110
+ return (h(Host, { key: '29422d3d1b30d190d6233a644ad70df833478edd', class: {
111
111
  "ic-breadcrumb-back": !!this.showBackIcon,
112
112
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
113
113
  "ic-breadcrumb-monochrome": !!this.monochrome,
114
- }, "aria-current": current && "page", role: "listitem" }, h("div", { key: 'e3bc601db155acfd4e14102b0599416007152fb1', class: "breadcrumb" }, h("span", { key: 'fa88e451ad018ab3af5da63f3f9072b1a5d61856', innerHTML: chevronIcon, class: "chevron", "aria-hidden": "true" }), this.showBackIcon && describedById && (h("span", { key: '30c614b37073b3f6f9d371c0760047924962cacc', id: describedById, class: "hide" }, `Back to ${pageTitle}`)), hasPageTitle && hasHref ? (this.renderDefaultBreadcrumb(!!current, pageTitle, describedById, href)) : (h("div", { class: "slotted-link-container" }, this.showBackIcon && this.renderBackIcon(), h("span", { class: "link-wrapper" }, h("slot", null)))))));
114
+ }, "aria-current": current && "page", role: "listitem" }, h("div", { key: '1f8c4f0fca86a3d08df82674e33cabe7419f7616', class: "breadcrumb" }, h("span", { key: '9761c21d30b9e55e8cf5d3517ada73fa4d73710b', innerHTML: chevronIcon, class: "chevron", "aria-hidden": "true" }), this.showBackIcon && describedById && (h("span", { key: 'ad6be34d684a28dd063895c73f35ed65a3741dc9', id: describedById, class: "hide" }, `Back to ${pageTitle}`)), hasPageTitle && hasHref ? (this.renderDefaultBreadcrumb(!!current, pageTitle, describedById, href)) : (h("div", { class: "slotted-link-container" }, this.showBackIcon && this.renderBackIcon(), h("span", { class: "link-wrapper" }, h("slot", null)))))));
115
115
  }
116
116
  static get is() { return "ic-breadcrumb"; }
117
117
  static get encapsulation() { return "shadow"; }
@@ -232,11 +232,11 @@ export class BreadcrumbGroup {
232
232
  this.collapsedBreadcrumbEl.removeEventListener("click", this.clickHandler);
233
233
  }
234
234
  render() {
235
- return (h(Host, { key: 'aeb0ffb06d519727c806ff53ca569fb3f5e89f45', class: {
235
+ return (h(Host, { key: 'b505c4bef9ebc23c7f77b21f77f9db5975d0eea1', class: {
236
236
  "ic-breadcrumb-group-back": !!this.backBreadcrumbOnly,
237
237
  "ic-breadcrumb-group-collapsed": !!this.collapsed,
238
238
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
239
- } }, h("nav", { key: 'c5b6ceb2ecbcd99f331981ed7d41d8f65929484b', "aria-label": "breadcrumbs" }, h("ol", { key: '6204a3fc1a832524efd7f18e7b3ddcc7e26c0fa4' }, h("slot", { key: 'd43502ff8a825c31983b661d4221b610aaad5d94' })))));
239
+ } }, h("nav", { key: 'ec1db09900bbff5be1e7f2e83518834a0eb0ff22', "aria-label": "breadcrumbs" }, h("ol", { key: 'b13e6daeefb0e4d1785221249f4d38bf3f207922' }, h("slot", { key: 'b33ff6c552a6f7251afeb6a804b4761e0febe198' })))));
240
240
  }
241
241
  static get is() { return "ic-breadcrumb-group"; }
242
242
  static get encapsulation() { return "shadow"; }