@ukic/web-components 3.20.0 → 3.21.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 (511) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/helpers-3a796e7a.js.map +1 -1
  3. package/dist/cjs/ic-accordion.cjs.entry.js +16 -9
  4. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-button_3.cjs.entry.js +6 -6
  12. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-card-horizontal.cjs.entry.js +174 -0
  14. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
  15. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -5
  20. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-divider.cjs.entry.js +16 -7
  25. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
  27. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  28. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-hero.cjs.entry.js +4 -4
  30. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  31. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +10 -10
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-input-label_2.cjs.entry.js +16 -11
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-item.cjs.entry.js +6 -4
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  46. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  47. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-pagination.cjs.entry.js +4 -4
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
  52. package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
  53. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  54. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  56. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-select.cjs.entry.js +7 -7
  59. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-side-navigation.cjs.entry.js +16 -10
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  65. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  66. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  68. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-text-field.cjs.entry.js +5 -5
  75. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-toast.cjs.entry.js +5 -5
  78. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  79. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  81. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  84. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  85. package/dist/cjs/index-d337cd8a.js +4 -0
  86. package/dist/cjs/loader.cjs.js +1 -1
  87. package/dist/collection/collection-manifest.json +1 -0
  88. package/dist/collection/components/ic-accordion/ic-accordion.css +6 -0
  89. package/dist/collection/components/ic-accordion/ic-accordion.js +15 -8
  90. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  91. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +7 -0
  92. package/dist/collection/components/ic-badge/ic-badge.css +6 -0
  93. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.css +8 -0
  94. package/dist/collection/components/ic-button/ic-button.css +7 -0
  95. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +728 -0
  96. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +512 -0
  97. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
  98. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.stories.js +876 -0
  99. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +7 -0
  100. package/dist/collection/components/ic-card-vertical/ic-card-vertical.stories.js +1 -1
  101. package/dist/collection/components/ic-checkbox/ic-checkbox.css +7 -5
  102. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
  103. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +3 -3
  104. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  105. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +35 -0
  106. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  107. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  108. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  109. package/dist/collection/components/ic-divider/ic-divider.js +16 -7
  110. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  111. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  112. package/dist/collection/components/ic-footer-link/ic-footer-link.css +6 -0
  113. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  114. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  115. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +6 -0
  116. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  117. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +7 -0
  118. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  119. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  120. package/dist/collection/components/ic-input-label/ic-input-label.js +16 -8
  121. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  122. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  123. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
  124. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
  125. package/dist/collection/components/ic-link/ic-link.css +7 -0
  126. package/dist/collection/components/ic-link/ic-link.js +1 -1
  127. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
  128. package/dist/collection/components/ic-menu/ic-menu.css +6 -0
  129. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  130. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  131. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +9 -0
  132. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  133. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +41 -0
  134. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +5 -3
  135. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  136. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  137. package/dist/collection/components/ic-page-header/ic-page-header.css +1 -2
  138. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  139. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  140. package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +6 -0
  141. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  142. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  143. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  144. package/dist/collection/components/ic-radio-option/ic-radio-option.css +6 -0
  145. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  146. package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -0
  147. package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
  148. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  149. package/dist/collection/components/ic-select/ic-select.css +8 -0
  150. package/dist/collection/components/ic-select/ic-select.js +6 -6
  151. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +46 -21
  152. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +15 -9
  153. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  154. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  155. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  156. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  157. package/dist/collection/components/ic-step/ic-step.js +13 -13
  158. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  159. package/dist/collection/components/ic-switch/ic-switch.css +7 -0
  160. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  161. package/dist/collection/components/ic-tab/ic-tab.css +6 -0
  162. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  163. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  164. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  165. package/dist/collection/components/ic-text-field/ic-text-field.js +5 -5
  166. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  167. package/dist/collection/components/ic-toast/ic-toast.js +5 -5
  168. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  169. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  170. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +6 -0
  171. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  172. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +8 -4
  173. package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +100 -0
  174. package/dist/collection/components/ic-typography/ic-typography.css +6 -0
  175. package/dist/collection/utils/types.js.map +1 -1
  176. package/dist/components/helpers.js.map +1 -1
  177. package/dist/components/ic-accordion.js +16 -9
  178. package/dist/components/ic-accordion.js.map +1 -1
  179. package/dist/components/ic-back-to-top.js +1 -1
  180. package/dist/components/ic-back-to-top.js.map +1 -1
  181. package/dist/components/ic-badge.js +1 -1
  182. package/dist/components/ic-badge.js.map +1 -1
  183. package/dist/components/ic-breadcrumb-group.js +1 -1
  184. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  185. package/dist/components/ic-button2.js +1 -1
  186. package/dist/components/ic-button2.js.map +1 -1
  187. package/dist/components/ic-card-horizontal.d.ts +11 -0
  188. package/dist/components/ic-card-horizontal.js +214 -0
  189. package/dist/components/ic-card-horizontal.js.map +1 -0
  190. package/dist/components/ic-card-vertical.js +1 -1
  191. package/dist/components/ic-card-vertical.js.map +1 -1
  192. package/dist/components/ic-checkbox-group.js +2 -2
  193. package/dist/components/ic-checkbox-group.js.map +1 -1
  194. package/dist/components/ic-checkbox.js +5 -5
  195. package/dist/components/ic-checkbox.js.map +1 -1
  196. package/dist/components/ic-classification-banner.js.map +1 -1
  197. package/dist/components/ic-data-list.js +2 -2
  198. package/dist/components/ic-data-row.js +2 -2
  199. package/dist/components/ic-dialog.js +1 -1
  200. package/dist/components/ic-divider2.js +17 -8
  201. package/dist/components/ic-divider2.js.map +1 -1
  202. package/dist/components/ic-empty-state.js +2 -2
  203. package/dist/components/ic-footer-link.js +3 -3
  204. package/dist/components/ic-footer-link.js.map +1 -1
  205. package/dist/components/ic-hero.js +4 -4
  206. package/dist/components/ic-horizontal-scroll2.js +6 -6
  207. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  208. package/dist/components/ic-input-component-container2.js +4 -4
  209. package/dist/components/ic-input-component-container2.js.map +1 -1
  210. package/dist/components/ic-input-container2.js +2 -2
  211. package/dist/components/ic-input-label2.js +13 -8
  212. package/dist/components/ic-input-label2.js.map +1 -1
  213. package/dist/components/ic-input-validation2.js +3 -3
  214. package/dist/components/ic-layout-grid-item.js +2 -2
  215. package/dist/components/ic-layout-grid.js +2 -2
  216. package/dist/components/ic-link2.js +2 -2
  217. package/dist/components/ic-link2.js.map +1 -1
  218. package/dist/components/ic-loading-indicator2.js +5 -5
  219. package/dist/components/ic-menu-group.js +1 -1
  220. package/dist/components/ic-menu2.js +4 -4
  221. package/dist/components/ic-menu2.js.map +1 -1
  222. package/dist/components/ic-navigation-group.js +2 -2
  223. package/dist/components/ic-navigation-group.js.map +1 -1
  224. package/dist/components/ic-navigation-item.js +6 -4
  225. package/dist/components/ic-navigation-item.js.map +1 -1
  226. package/dist/components/ic-navigation-menu2.js +4 -4
  227. package/dist/components/ic-page-header.js +7 -7
  228. package/dist/components/ic-page-header.js.map +1 -1
  229. package/dist/components/ic-pagination-item2.js +2 -2
  230. package/dist/components/ic-pagination-item2.js.map +1 -1
  231. package/dist/components/ic-pagination.js +4 -4
  232. package/dist/components/ic-pagination.js.map +1 -1
  233. package/dist/components/ic-popover-menu.js +4 -4
  234. package/dist/components/ic-radio-group.js +4 -4
  235. package/dist/components/ic-radio-group.js.map +1 -1
  236. package/dist/components/ic-radio-option.js +5 -5
  237. package/dist/components/ic-radio-option.js.map +1 -1
  238. package/dist/components/ic-search-bar.js +10 -10
  239. package/dist/components/ic-search-bar.js.map +1 -1
  240. package/dist/components/ic-section-container2.js +2 -2
  241. package/dist/components/ic-select.js +7 -7
  242. package/dist/components/ic-select.js.map +1 -1
  243. package/dist/components/ic-side-navigation.js +16 -10
  244. package/dist/components/ic-side-navigation.js.map +1 -1
  245. package/dist/components/ic-skeleton.js +2 -2
  246. package/dist/components/ic-skip-link.js +2 -2
  247. package/dist/components/ic-status-tag.js +2 -2
  248. package/dist/components/ic-step.js +13 -13
  249. package/dist/components/ic-stepper.js +2 -2
  250. package/dist/components/ic-switch.js +5 -5
  251. package/dist/components/ic-switch.js.map +1 -1
  252. package/dist/components/ic-tab-context.js +1 -1
  253. package/dist/components/ic-tab-group.js +2 -2
  254. package/dist/components/ic-tab-panel.js +2 -2
  255. package/dist/components/ic-tab.js +1 -1
  256. package/dist/components/ic-tab.js.map +1 -1
  257. package/dist/components/ic-text-field.js +5 -5
  258. package/dist/components/ic-theme.js +1 -1
  259. package/dist/components/ic-toast-region.js +1 -1
  260. package/dist/components/ic-toast.js +5 -5
  261. package/dist/components/ic-toggle-button-group.js +3 -3
  262. package/dist/components/ic-toggle-button-group.js.map +1 -1
  263. package/dist/components/ic-toggle-button.js +2 -2
  264. package/dist/components/ic-top-navigation.js +1 -1
  265. package/dist/components/ic-top-navigation.js.map +1 -1
  266. package/dist/components/ic-typography2.js +1 -1
  267. package/dist/components/ic-typography2.js.map +1 -1
  268. package/dist/core/core.esm.js +1 -1
  269. package/dist/core/core.esm.js.map +1 -1
  270. package/dist/core/{p-f5fd4a76.entry.js → p-04c77b2d.entry.js} +2 -2
  271. package/dist/core/p-04c77b2d.entry.js.map +1 -0
  272. package/dist/core/{p-0301d1c8.entry.js → p-07075461.entry.js} +2 -2
  273. package/dist/core/p-0a24c536.entry.js +2 -0
  274. package/dist/core/p-0a24c536.entry.js.map +1 -0
  275. package/dist/core/{p-c16e982c.entry.js → p-0aba9e31.entry.js} +2 -2
  276. package/dist/core/{p-45076d7e.entry.js → p-0d7fd892.entry.js} +2 -2
  277. package/dist/core/{p-ebc47282.entry.js → p-0da2caa2.entry.js} +2 -2
  278. package/dist/core/{p-5ac3adb9.entry.js → p-1590fd69.entry.js} +2 -2
  279. package/dist/core/p-1590fd69.entry.js.map +1 -0
  280. package/dist/core/{p-45c553db.entry.js → p-208f470f.entry.js} +2 -2
  281. package/dist/core/p-29b61bb5.entry.js +3 -0
  282. package/dist/core/p-29b61bb5.entry.js.map +1 -0
  283. package/dist/core/{p-cf056074.entry.js → p-2af89564.entry.js} +2 -2
  284. package/dist/core/{p-6740c915.entry.js → p-2ca7f050.entry.js} +2 -2
  285. package/dist/core/{p-86989873.entry.js → p-3021290f.entry.js} +2 -2
  286. package/dist/core/p-3021290f.entry.js.map +1 -0
  287. package/dist/core/{p-90814d32.entry.js → p-387b7bca.entry.js} +2 -2
  288. package/dist/core/p-41a5da12.entry.js +2 -0
  289. package/dist/core/p-41a5da12.entry.js.map +1 -0
  290. package/dist/core/p-43cc0f1d.entry.js +2 -0
  291. package/dist/core/{p-23dc27a8.entry.js.map → p-43cc0f1d.entry.js.map} +1 -1
  292. package/dist/core/{p-c7f8547d.entry.js → p-4aa56990.entry.js} +2 -2
  293. package/dist/core/p-4aa56990.entry.js.map +1 -0
  294. package/dist/core/p-4aadabc8.entry.js +2 -0
  295. package/dist/core/p-4aadabc8.entry.js.map +1 -0
  296. package/dist/core/{p-8c00614c.entry.js → p-707ae6e9.entry.js} +2 -2
  297. package/dist/core/{p-0722d7b6.entry.js → p-716e7eaf.entry.js} +2 -2
  298. package/dist/core/p-716e7eaf.entry.js.map +1 -0
  299. package/dist/core/p-780babc0.entry.js +2 -0
  300. package/dist/core/p-780babc0.entry.js.map +1 -0
  301. package/dist/core/{p-608b4912.entry.js → p-78a54069.entry.js} +2 -2
  302. package/dist/core/{p-0d711c6a.entry.js → p-79949920.entry.js} +2 -2
  303. package/dist/core/{p-09c31ac6.entry.js → p-7f279c8a.entry.js} +2 -2
  304. package/dist/core/{p-656a9127.entry.js → p-808e1ef5.entry.js} +2 -2
  305. package/dist/core/{p-d478d13e.entry.js → p-812c5e61.entry.js} +2 -2
  306. package/dist/core/p-812c5e61.entry.js.map +1 -0
  307. package/dist/core/{p-ba4abeac.entry.js → p-85e15d01.entry.js} +2 -2
  308. package/dist/core/{p-276a6c8f.entry.js → p-8da90b72.entry.js} +2 -2
  309. package/dist/core/p-8fe4e0ad.entry.js +2 -0
  310. package/dist/core/p-8fe4e0ad.entry.js.map +1 -0
  311. package/dist/core/{p-8b1567c9.entry.js → p-9057a186.entry.js} +2 -2
  312. package/dist/core/p-9057a186.entry.js.map +1 -0
  313. package/dist/core/{p-fe0153ec.entry.js → p-94916588.entry.js} +2 -2
  314. package/dist/core/{p-8f45f956.entry.js → p-96bc7d24.entry.js} +2 -2
  315. package/dist/core/p-96bc7d24.entry.js.map +1 -0
  316. package/dist/core/{p-e176881a.entry.js → p-99687bce.entry.js} +2 -2
  317. package/dist/core/{p-3582c7df.entry.js → p-99951365.entry.js} +2 -2
  318. package/dist/core/p-99951365.entry.js.map +1 -0
  319. package/dist/core/p-9a4e067f.entry.js +2 -0
  320. package/dist/core/p-9a4e067f.entry.js.map +1 -0
  321. package/dist/core/{p-4e43b272.entry.js → p-a03bb31c.entry.js} +2 -2
  322. package/dist/core/p-a1b2f483.entry.js +2 -0
  323. package/dist/core/p-a1b2f483.entry.js.map +1 -0
  324. package/dist/core/{p-b5e39585.entry.js → p-a3dea729.entry.js} +2 -2
  325. package/dist/core/p-a674b13b.entry.js +2 -0
  326. package/dist/core/p-a674b13b.entry.js.map +1 -0
  327. package/dist/core/{p-93e1ba0a.entry.js → p-a851eb65.entry.js} +2 -2
  328. package/dist/core/p-b4e322fe.entry.js +2 -0
  329. package/dist/core/p-b4e322fe.entry.js.map +1 -0
  330. package/dist/core/{p-1d8559f0.entry.js → p-c156e6e9.entry.js} +2 -2
  331. package/dist/core/p-c5b9519d.entry.js +2 -0
  332. package/dist/core/p-c5b9519d.entry.js.map +1 -0
  333. package/dist/core/{p-e1814e7e.entry.js → p-cad23b7d.entry.js} +2 -2
  334. package/dist/core/{p-cdbbcef4.entry.js → p-cfd43558.entry.js} +2 -2
  335. package/dist/core/p-cfd43558.entry.js.map +1 -0
  336. package/dist/core/{p-107281c4.entry.js → p-d1730d4d.entry.js} +2 -2
  337. package/dist/core/{p-1fc4b88f.entry.js → p-d25d0aad.entry.js} +2 -2
  338. package/dist/core/p-d25d0aad.entry.js.map +1 -0
  339. package/dist/core/{p-0f998905.entry.js → p-db17a793.entry.js} +2 -2
  340. package/dist/core/p-db17a793.entry.js.map +1 -0
  341. package/dist/core/p-dbc8bf0c.js.map +1 -1
  342. package/dist/core/{p-81f60443.entry.js → p-dce11b9d.entry.js} +2 -2
  343. package/dist/core/p-dce11b9d.entry.js.map +1 -0
  344. package/dist/core/{p-6aa8d3ce.entry.js → p-ded4cd76.entry.js} +2 -2
  345. package/dist/core/p-ded4cd76.entry.js.map +1 -0
  346. package/dist/core/{p-ad5aca6f.entry.js → p-ea890d3d.entry.js} +2 -2
  347. package/dist/core/{p-d2d17d6d.entry.js → p-f0ecb80b.entry.js} +2 -2
  348. package/dist/core/p-f0ecb80b.entry.js.map +1 -0
  349. package/dist/core/{p-df029b1b.entry.js → p-f3406b42.entry.js} +2 -2
  350. package/dist/core/p-f3406b42.entry.js.map +1 -0
  351. package/dist/core/{p-76e8df31.entry.js → p-f6de08fb.entry.js} +2 -2
  352. package/dist/core/{p-889bb8db.entry.js → p-feef7c2c.entry.js} +2 -2
  353. package/dist/esm/core.js +1 -1
  354. package/dist/esm/helpers-0f85537f.js.map +1 -1
  355. package/dist/esm/ic-accordion.entry.js +16 -9
  356. package/dist/esm/ic-accordion.entry.js.map +1 -1
  357. package/dist/esm/ic-back-to-top.entry.js +1 -1
  358. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  359. package/dist/esm/ic-badge.entry.js +1 -1
  360. package/dist/esm/ic-badge.entry.js.map +1 -1
  361. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  362. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  363. package/dist/esm/ic-button_3.entry.js +6 -6
  364. package/dist/esm/ic-button_3.entry.js.map +1 -1
  365. package/dist/esm/ic-card-horizontal.entry.js +170 -0
  366. package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
  367. package/dist/esm/ic-card-vertical.entry.js +1 -1
  368. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  369. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  370. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  371. package/dist/esm/ic-checkbox.entry.js +5 -5
  372. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  373. package/dist/esm/ic-data-list.entry.js +2 -2
  374. package/dist/esm/ic-data-row.entry.js +2 -2
  375. package/dist/esm/ic-dialog.entry.js +1 -1
  376. package/dist/esm/ic-divider.entry.js +16 -7
  377. package/dist/esm/ic-divider.entry.js.map +1 -1
  378. package/dist/esm/ic-empty-state.entry.js +2 -2
  379. package/dist/esm/ic-footer-link.entry.js +3 -3
  380. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  381. package/dist/esm/ic-hero.entry.js +4 -4
  382. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  383. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  384. package/dist/esm/ic-input-component-container_3.entry.js +10 -10
  385. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  386. package/dist/esm/ic-input-label_2.entry.js +16 -11
  387. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  388. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  389. package/dist/esm/ic-layout-grid.entry.js +2 -2
  390. package/dist/esm/ic-link.entry.js +2 -2
  391. package/dist/esm/ic-link.entry.js.map +1 -1
  392. package/dist/esm/ic-menu-group.entry.js +1 -1
  393. package/dist/esm/ic-navigation-group.entry.js +2 -2
  394. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  395. package/dist/esm/ic-navigation-item.entry.js +6 -4
  396. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  397. package/dist/esm/ic-navigation-menu.entry.js +4 -4
  398. package/dist/esm/ic-page-header.entry.js +7 -7
  399. package/dist/esm/ic-page-header.entry.js.map +1 -1
  400. package/dist/esm/ic-pagination-item.entry.js +2 -2
  401. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  402. package/dist/esm/ic-pagination.entry.js +4 -4
  403. package/dist/esm/ic-popover-menu.entry.js +4 -4
  404. package/dist/esm/ic-radio-group.entry.js +4 -4
  405. package/dist/esm/ic-radio-option.entry.js +5 -5
  406. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  407. package/dist/esm/ic-search-bar.entry.js +10 -10
  408. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  409. package/dist/esm/ic-section-container.entry.js +2 -2
  410. package/dist/esm/ic-select.entry.js +7 -7
  411. package/dist/esm/ic-select.entry.js.map +1 -1
  412. package/dist/esm/ic-side-navigation.entry.js +16 -10
  413. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  414. package/dist/esm/ic-skeleton.entry.js +2 -2
  415. package/dist/esm/ic-skip-link.entry.js +2 -2
  416. package/dist/esm/ic-status-tag.entry.js +2 -2
  417. package/dist/esm/ic-step.entry.js +13 -13
  418. package/dist/esm/ic-stepper.entry.js +2 -2
  419. package/dist/esm/ic-switch.entry.js +5 -5
  420. package/dist/esm/ic-switch.entry.js.map +1 -1
  421. package/dist/esm/ic-tab-context.entry.js +1 -1
  422. package/dist/esm/ic-tab-group.entry.js +2 -2
  423. package/dist/esm/ic-tab-panel.entry.js +2 -2
  424. package/dist/esm/ic-tab.entry.js +1 -1
  425. package/dist/esm/ic-tab.entry.js.map +1 -1
  426. package/dist/esm/ic-text-field.entry.js +5 -5
  427. package/dist/esm/ic-theme.entry.js +1 -1
  428. package/dist/esm/ic-toast-region.entry.js +1 -1
  429. package/dist/esm/ic-toast.entry.js +5 -5
  430. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  431. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  432. package/dist/esm/ic-toggle-button.entry.js +2 -2
  433. package/dist/esm/ic-top-navigation.entry.js +1 -1
  434. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  435. package/dist/esm/ic-typography.entry.js +1 -1
  436. package/dist/esm/ic-typography.entry.js.map +1 -1
  437. package/dist/esm/index-a7a720e7.js +4 -0
  438. package/dist/esm/loader.js +1 -1
  439. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +89 -0
  440. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
  441. package/dist/types/components/ic-divider/ic-divider.d.ts +2 -0
  442. package/dist/types/components/ic-input-label/ic-input-label.d.ts +4 -1
  443. package/dist/types/components.d.ts +123 -2
  444. package/dist/types/utils/types.d.ts +1 -0
  445. package/hydrate/index.js +432 -198
  446. package/hydrate/index.mjs +432 -198
  447. package/package.json +2 -2
  448. package/vscode-data.json +117 -0
  449. package/dist/core/p-0722d7b6.entry.js.map +0 -1
  450. package/dist/core/p-0f6fd5d3.entry.js +0 -2
  451. package/dist/core/p-0f6fd5d3.entry.js.map +0 -1
  452. package/dist/core/p-0f998905.entry.js.map +0 -1
  453. package/dist/core/p-1fc4b88f.entry.js.map +0 -1
  454. package/dist/core/p-23dc27a8.entry.js +0 -2
  455. package/dist/core/p-3582c7df.entry.js.map +0 -1
  456. package/dist/core/p-3c7e90a7.entry.js +0 -2
  457. package/dist/core/p-3c7e90a7.entry.js.map +0 -1
  458. package/dist/core/p-57ce68e5.entry.js +0 -2
  459. package/dist/core/p-57ce68e5.entry.js.map +0 -1
  460. package/dist/core/p-5ac3adb9.entry.js.map +0 -1
  461. package/dist/core/p-6aa8d3ce.entry.js.map +0 -1
  462. package/dist/core/p-72344764.entry.js +0 -2
  463. package/dist/core/p-72344764.entry.js.map +0 -1
  464. package/dist/core/p-7c38dd1f.entry.js +0 -2
  465. package/dist/core/p-7c38dd1f.entry.js.map +0 -1
  466. package/dist/core/p-81f60443.entry.js.map +0 -1
  467. package/dist/core/p-840c647f.entry.js +0 -2
  468. package/dist/core/p-840c647f.entry.js.map +0 -1
  469. package/dist/core/p-86989873.entry.js.map +0 -1
  470. package/dist/core/p-8b1567c9.entry.js.map +0 -1
  471. package/dist/core/p-8f45f956.entry.js.map +0 -1
  472. package/dist/core/p-9b60ca02.entry.js +0 -2
  473. package/dist/core/p-9b60ca02.entry.js.map +0 -1
  474. package/dist/core/p-a16415e4.entry.js +0 -3
  475. package/dist/core/p-a16415e4.entry.js.map +0 -1
  476. package/dist/core/p-b22fc28d.entry.js +0 -2
  477. package/dist/core/p-b22fc28d.entry.js.map +0 -1
  478. package/dist/core/p-c3f5907e.entry.js +0 -2
  479. package/dist/core/p-c3f5907e.entry.js.map +0 -1
  480. package/dist/core/p-c7f8547d.entry.js.map +0 -1
  481. package/dist/core/p-cdbbcef4.entry.js.map +0 -1
  482. package/dist/core/p-d2d17d6d.entry.js.map +0 -1
  483. package/dist/core/p-d478d13e.entry.js.map +0 -1
  484. package/dist/core/p-df029b1b.entry.js.map +0 -1
  485. package/dist/core/p-f5fd4a76.entry.js.map +0 -1
  486. /package/dist/core/{p-0301d1c8.entry.js.map → p-07075461.entry.js.map} +0 -0
  487. /package/dist/core/{p-c16e982c.entry.js.map → p-0aba9e31.entry.js.map} +0 -0
  488. /package/dist/core/{p-45076d7e.entry.js.map → p-0d7fd892.entry.js.map} +0 -0
  489. /package/dist/core/{p-ebc47282.entry.js.map → p-0da2caa2.entry.js.map} +0 -0
  490. /package/dist/core/{p-45c553db.entry.js.map → p-208f470f.entry.js.map} +0 -0
  491. /package/dist/core/{p-cf056074.entry.js.map → p-2af89564.entry.js.map} +0 -0
  492. /package/dist/core/{p-6740c915.entry.js.map → p-2ca7f050.entry.js.map} +0 -0
  493. /package/dist/core/{p-90814d32.entry.js.map → p-387b7bca.entry.js.map} +0 -0
  494. /package/dist/core/{p-8c00614c.entry.js.map → p-707ae6e9.entry.js.map} +0 -0
  495. /package/dist/core/{p-608b4912.entry.js.map → p-78a54069.entry.js.map} +0 -0
  496. /package/dist/core/{p-0d711c6a.entry.js.map → p-79949920.entry.js.map} +0 -0
  497. /package/dist/core/{p-09c31ac6.entry.js.map → p-7f279c8a.entry.js.map} +0 -0
  498. /package/dist/core/{p-656a9127.entry.js.map → p-808e1ef5.entry.js.map} +0 -0
  499. /package/dist/core/{p-ba4abeac.entry.js.map → p-85e15d01.entry.js.map} +0 -0
  500. /package/dist/core/{p-276a6c8f.entry.js.map → p-8da90b72.entry.js.map} +0 -0
  501. /package/dist/core/{p-fe0153ec.entry.js.map → p-94916588.entry.js.map} +0 -0
  502. /package/dist/core/{p-e176881a.entry.js.map → p-99687bce.entry.js.map} +0 -0
  503. /package/dist/core/{p-4e43b272.entry.js.map → p-a03bb31c.entry.js.map} +0 -0
  504. /package/dist/core/{p-b5e39585.entry.js.map → p-a3dea729.entry.js.map} +0 -0
  505. /package/dist/core/{p-93e1ba0a.entry.js.map → p-a851eb65.entry.js.map} +0 -0
  506. /package/dist/core/{p-1d8559f0.entry.js.map → p-c156e6e9.entry.js.map} +0 -0
  507. /package/dist/core/{p-e1814e7e.entry.js.map → p-cad23b7d.entry.js.map} +0 -0
  508. /package/dist/core/{p-107281c4.entry.js.map → p-d1730d4d.entry.js.map} +0 -0
  509. /package/dist/core/{p-ad5aca6f.entry.js.map → p-ea890d3d.entry.js.map} +0 -0
  510. /package/dist/core/{p-76e8df31.entry.js.map → p-f6de08fb.entry.js.map} +0 -0
  511. /package/dist/core/{p-889bb8db.entry.js.map → p-feef7c2c.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icBadgeCss","IcBadgeStyle0","TOP_NAVIGATION","SIDE_NAVIGATION","Badge","constructor","hostRef","this","ariaLabel","initialPosition","_a","position","size","theme","type","variant","visible","setBadgeColour","colorRGBA","customColor","convertToRGBA","r","g","b","a","el","style","backgroundColor","foregroundColour","getBrandForegroundAppearance","getLabel","maxNumber","Number","label","setAccessibleLabel","parentEl","parentElement","defaultAriaLabel","isAccessibleLabelDefined","accessibleLabel","tagName","parentAriaLabel","ariaLabelPrefix","setPositionInTopNavigation","isInMobileMode","isInNavigationItem","setPositionInSideNavigation","isInTopNav","grandparentEl","greatGrandparentEl","isInSideNav","classList","contains","isPropDefined","accessibleLabelHandler","customColorHandler","variantHandler","visibleHandler","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentWillRender","navBarMenuOpenHandler","navBarMenuCloseHandler","render","h","Host","key","class","id","role","name"],"sources":["src/components/ic-badge/ic-badge.css?tag=ic-badge&encapsulation=shadow","src/components/ic-badge/ic-badge.tsx"],"sourcesContent":["@media (prefers-reduced-motion: no-preference) {\n :host(.ic-badge-show) {\n animation: expand var(--ic-transition-duration-slow);\n }\n\n :host(.ic-badge-hide) {\n animation: shrink var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n display: flex;\n height: var(--ic-space-md);\n min-width: var(--ic-space-md);\n width: fit-content;\n border-radius: calc(2 * var(--ic-space-xxl));\n position: absolute;\n}\n\n:host ic-typography {\n --ic-typography-color: var(--ic-badge-text);\n}\n\n:host(.ic-badge-neutral) {\n background-color: var(--ic-badge-dark) !important;\n}\n\n:host(.ic-badge-light) ic-typography {\n --ic-typography-color: var(--ic-badge-text-monochrome);\n}\n\n:host(.ic-badge-light) ::slotted(*) {\n fill: var(--ic-badge-icon-monochrome);\n}\n\n:host(.ic-badge-info) {\n background-color: var(--ic-badge-info) !important;\n}\n\n:host(.ic-badge-light) {\n background-color: var(--ic-badge-light) !important;\n}\n\n:host(.ic-badge-warning) {\n background-color: var(--ic-badge-warning) !important;\n}\n\n:host(.ic-badge-warning) ic-typography {\n --ic-typography-color: var(--ic-badge-warning-text);\n}\n\n:host(.ic-badge-warning) ::slotted(*) {\n fill: var(--ic-badge-warning-icon);\n}\n\n:host(.ic-badge-error) {\n background-color: var(--ic-badge-error) !important;\n}\n\n:host(.ic-badge-success) {\n background-color: var(--ic-badge-success) !important;\n}\n\n:host(.ic-badge-ai) {\n background-color: var(--ic-badge-ai) !important;\n}\n\n:host(.ic-badge-small) {\n height: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.ic-badge-large) {\n height: calc(var(--ic-space-md) + var(--ic-space-xxs));\n min-width: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n:host(.ic-badge-dot.ic-badge-medium) {\n height: var(--ic-space-xs);\n width: var(--ic-space-xs);\n min-width: var(--ic-space-xs);\n}\n\n:host(.ic-badge-dot.ic-badge-small) {\n height: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n min-width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.ic-badge-dot.ic-badge-large) {\n height: var(--ic-space-sm);\n width: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host ::slotted(*) {\n fill: var(--ic-badge-icon);\n}\n\n:host(.ic-badge-foreground-dark) ::slotted(*) {\n fill: var(--ic-color-text-primary-light);\n}\n\n:host(.ic-badge-foreground-light) ::slotted(*) {\n fill: white;\n}\n\n:host(.ic-badge-foreground-dark) ic-typography {\n --ic-typography-color: var(--ic-color-text-primary-light);\n}\n\n:host(.ic-badge-foreground-light) ic-typography {\n --ic-typography-color: var(--ic-color-text-primary-dark);\n}\n\n:host(.ic-badge-text) ic-typography {\n align-self: center;\n padding: 0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.ic-badge-text.ic-badge-small) ic-typography {\n padding: 0 0.2132rem;\n}\n\n:host(.ic-badge-text.ic-badge-large) ic-typography {\n padding: 0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.ic-badge-icon) ::slotted(svg) {\n width: var(--ic-space-sm);\n height: var(--ic-space-sm);\n padding: var(--ic-space-xxxs);\n}\n\n:host(.ic-badge-icon.ic-badge-small) ::slotted(svg) {\n width: var(--ic-space-xs);\n height: var(--ic-space-xs);\n}\n\n:host(.ic-badge-icon.ic-badge-large) ::slotted(svg) {\n width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n height: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px));\n}\n\n:host(.ic-badge-far) {\n top: calc(-1 * var(--ic-space-xs));\n right: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.ic-badge-far.ic-badge-small),\n:host(.ic-badge-dot.ic-badge-far.ic-badge-large) {\n top: calc(-1 * var(--ic-space-xxs));\n right: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.ic-badge-dot.ic-badge-far),\n:host(.ic-badge-dot.ic-badge-far.ic-badge-small) {\n top: calc(-1 * var(--ic-space-xxxs));\n right: calc(-1 * var(--ic-space-xxxs));\n}\n\n:host(.ic-badge-near) {\n top: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n right: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n}\n\n:host(.ic-badge-dot.ic-badge-near) {\n top: calc(-1 * var(--ic-space-1px));\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.ic-badge-inline) {\n position: static;\n}\n\n:host(.ic-badge-hide) {\n visibility: hidden !important;\n transition: visibility var(--ic-transition-duration-slow);\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.sr-only:dir(rtl) {\n right: -9999px;\n}\n\n@keyframes expand {\n from {\n opacity: 0;\n transform: scale(0);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes shrink {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0);\n }\n}\n","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 =\n this.isInMobileMode() || this.isInNavigationItem()\n ? \"inline\"\n : 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 isInNavigationItem = (): boolean => {\n const parentEl = this.el.parentElement;\n if (!parentEl) return false;\n return parentEl.tagName === \"IC-NAVIGATION-ITEM\";\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"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icAccordionCss","IcAccordionStyle0","accordionIds","EXPANDED_CONTENT_OPENED_CLASS","Accordion","constructor","hostRef","this","accordionId","CONTENT_VISIBILITY_PROPERTY","disabled","expanded","heading","message","size","theme","toggleExpanded","accordionClicked","emit","id","setAccordionAnimation","el","duration","property","delay","style","transitionDuration","transitionProperty","transitionDelay","setExpandedContentStyle","ev","expandedContent","propertyName","clientHeight","classList","add","height","hideExpandedContent","setProperty","animateExpandedContent","expandedContentEl","elementHeight","scrollHeight","addEventListener","e","remove","watchDisabledHandler","removeDisabledFalse","handleExpandedWatch","setFocus","_a","accordionBtnHeading","focus","componentWillLoad","disconnectedCallback","removeEventListener","componentDidLoad","render","h","Host","key","class","ref","tabindex","onClick","isSlotUsed","name","variant","innerHTML","chevronIcon","role"],"sources":["src/components/ic-accordion/ic-accordion.css?tag=ic-accordion&encapsulation=shadow","src/components/ic-accordion/ic-accordion.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n border-bottom: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:host .expand-chevron {\n color: var(--ic-accordion-chevron);\n}\n\n:host(.ic-accordion-disabled) .expand-chevron {\n color: var(--ic-accordion-chevron-disabled);\n}\n\n.section-button.small {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n}\n\n.section-button.large {\n padding: var(--ic-space-sm) var(--ic-space-xs);\n}\n\n:host(:first-of-type) {\n border-top: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:focus {\n outline: none;\n}\n\n.section-button {\n background-color: transparent;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--ic-space-xs);\n font-weight: var(--ic-font-weight-bold);\n border: none;\n}\n\n.section-header {\n --ic-typography-color: var(--ic-accordion-heading-text);\n\n color: var(--ic-accordion-heading-text);\n text-align: left;\n flex: 1 0;\n}\n\n:host(.ic-accordion-disabled) .section-header {\n --ic-typography-color: var(--ic-accordion-heading-text-disabled);\n\n color: var(--ic-accordion-heading-text-disabled);\n}\n\nbutton:hover {\n background-color: var(--ic-accordion-background-hover);\n cursor: pointer;\n}\n\nbutton:active {\n background-color: var(--ic-accordion-background-pressed);\n}\n\nbutton:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n}\n\nbutton:disabled {\n pointer-events: none;\n}\n\n.icon-container {\n margin: 0 var(--ic-space-xs) 0 0;\n display: flex;\n align-items: center;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n color: var(--ic-accordion-icon);\n}\n\n:host(.ic-accordion-disabled) .icon-container {\n color: var(--ic-accordion-icon-disabled);\n}\n\n::slotted(svg) {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n.expand-chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n transform: rotate(90deg);\n justify-self: end;\n}\n\n.content-expanded-chevron {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n --ic-typography-color: var(--ic-accordion-body-text);\n\n color: var(--ic-accordion-body-text);\n height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n visibility: var(--ic-expanded-content-visibility, hidden);\n}\n\n.expanded-content-inner {\n padding: var(--ic-space-xs);\n}\n\n.expanded-content-opened {\n overflow: visible;\n}\n\n@media (forced-colors: active) {\n button:focus {\n border: var(--ic-border-hc) !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\n\nlet accordionIds = 0;\nconst EXPANDED_CONTENT_OPENED_CLASS = \"expanded-content-opened\";\n\n/**\n * @slot heading - Content is placed as the accordion heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-accordion\",\n styleUrl: \"ic-accordion.css\",\n shadow: true,\n})\nexport class Accordion {\n private accordionId = `ic-accordion-${accordionIds++}`;\n private expandedContentEl?: HTMLDivElement;\n private accordionBtnHeading?: HTMLButtonElement;\n private CONTENT_VISIBILITY_PROPERTY = \"--ic-expanded-content-visibility\";\n\n @Element() el: HTMLIcAccordionElement;\n\n /**\n * If `true`, the accordion will be disabled.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the accordion appears expanded.\n */\n @Prop({ mutable: true }) expanded?: boolean = false;\n\n /**\n * The section header outlining section content.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the accordion.\n */\n @Prop() message?: string = \"\";\n\n /**\n * The size of the accordion.\n */\n @Prop() size?: IcSizes = \"medium\";\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 * @internal Emitted when accordion is clicked.\n */\n @Event() accordionClicked: EventEmitter<{ id: string }>;\n\n // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close\n @Watch(\"expanded\")\n handleExpandedWatch(): void {\n this.animateExpandedContent();\n }\n\n /**\n * Sets focus on accordion heading.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.accordionBtnHeading?.focus();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n disconnectedCallback(): void {\n const expandedContentEl = this.expandedContentEl;\n if (expandedContentEl) {\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.setExpandedContentStyle(e, expandedContentEl),\n true\n );\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.hideExpandedContent(e, expandedContentEl),\n true\n );\n }\n }\n\n componentDidLoad(): void {\n // So accordion opens by default if expanded set to true\n if (this.expanded && this.expandedContentEl) {\n this.expandedContentEl.style.height = \"auto\";\n this.expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n this.expandedContentEl.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n }\n }\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n this.accordionClicked.emit({ id: this.accordionId });\n };\n\n // Set accordion animation\n private setAccordionAnimation = (\n el: HTMLElement,\n duration: string,\n property: string,\n delay: string\n ) => {\n el.style.transitionDuration = `${duration}ms`;\n el.style.transitionProperty = property;\n el.style.transitionDelay = delay;\n };\n\n private setExpandedContentStyle = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight > 0) {\n expandedContent.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n expandedContent.style.height = \"auto\";\n }\n };\n\n private hideExpandedContent = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight === 0) {\n expandedContent.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"hidden\"\n );\n }\n };\n\n private animateExpandedContent = () => {\n if (this.expandedContentEl) {\n const expandedContentEl = this.expandedContentEl;\n const elementHeight = expandedContentEl.scrollHeight;\n if (elementHeight > 0 && this.expanded) {\n expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n expandedContentEl.style.height = `${elementHeight}px`;\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-out\"\n );\n\n expandedContentEl.addEventListener(\n \"transitionend\",\n (e: TransitionEvent) => {\n this.setExpandedContentStyle(e, expandedContentEl);\n }\n );\n } else if (!this.expanded) {\n const expandedContentEl = this.expandedContentEl;\n expandedContentEl.style.height = `${expandedContentEl.scrollHeight}px`;\n if (expandedContentEl.scrollHeight > 0 && !this.expanded) {\n expandedContentEl.style.height = \"0\";\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-in\"\n );\n expandedContentEl.classList.remove(EXPANDED_CONTENT_OPENED_CLASS);\n }\n expandedContentEl.addEventListener(\"transitionend\", (e) => {\n this.hideExpandedContent(e, expandedContentEl);\n });\n }\n }\n };\n\n render() {\n const { size, disabled, expanded, theme } = this;\n return (\n <Host\n id={this.accordionId}\n class={{\n [\"ic-accordion-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-disabled={disabled ? \"true\" : \"false\"}\n >\n <button\n ref={(el) => (this.accordionBtnHeading = el)}\n id={`${this.accordionId}-button`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n class={{\n [`${size}`]: true,\n [\"section-button\"]: true,\n [\"section-button-open\"]: !!expanded && !disabled,\n }}\n aria-expanded={`${expanded}`}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"section-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n this.heading\n )}\n </ic-typography>\n <span\n class={{\n [\"expand-chevron\"]: true,\n [\"content-expanded-chevron\"]: !!expanded && !disabled,\n }}\n aria-hidden=\"true\"\n innerHTML={chevronIcon}\n />\n </button>\n <div\n class={{\n [\"expanded-content\"]: true,\n }}\n aria-labelledby={`${this.accordionId}-button`}\n role=\"region\"\n aria-hidden={`${!expanded}`}\n id=\"expanded-content-area\"\n ref={(el) => (this.expandedContentEl = el)}\n >\n <div class=\"expanded-content-inner\">\n {this.message ? (\n <ic-typography variant=\"body\">{this.message}</ic-typography>\n ) : (\n <slot />\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"uKAAA,MAAMA,EAAiB,6+IACvB,MAAAC,EAAeD,ECcf,IAAIE,EAAe,EACnB,MAAMC,EAAgC,0B,MAYzBC,EAAS,MALtB,WAAAC,CAAAC,G,6DAMUC,KAAAC,YAAc,gBAAgBN,MAG9BK,KAAAE,4BAA8B,mCAO9BF,KAAAG,SAAqB,MASJH,KAAAI,SAAqB,MAKtCJ,KAAAK,QAAmB,GAKnBL,KAAAM,QAAmB,GAKnBN,KAAAO,KAAiB,SAKjBP,KAAAQ,MAAsB,UAqDtBR,KAAAS,eAAiB,KACvBT,KAAKI,UAAYJ,KAAKI,SACtBJ,KAAKU,iBAAiBC,KAAK,CAAEC,GAAIZ,KAAKC,aAAc,EAI9CD,KAAAa,sBAAwB,CAC9BC,EACAC,EACAC,EACAC,KAEAH,EAAGI,MAAMC,mBAAqB,GAAGJ,MACjCD,EAAGI,MAAME,mBAAqBJ,EAC9BF,EAAGI,MAAMG,gBAAkBJ,CAAK,EAG1BjB,KAAAsB,wBAA0B,CAChCC,EACAC,KAEA,GAAID,EAAGE,eAAiB,UAAYD,EAAgBE,aAAe,EAAG,CACpEF,EAAgBG,UAAUC,IAAIhC,GAC9B4B,EAAgBN,MAAMW,OAAS,M,GAI3B7B,KAAA8B,oBAAsB,CAC5BP,EACAC,KAEA,GAAID,EAAGE,eAAiB,UAAYD,EAAgBE,eAAiB,EAAG,CACtEF,EAAgBN,MAAMa,YACpB/B,KAAKE,4BACL,S,GAKEF,KAAAgC,uBAAyB,KAC/B,GAAIhC,KAAKiC,kBAAmB,CAC1B,MAAMA,EAAoBjC,KAAKiC,kBAC/B,MAAMC,EAAgBD,EAAkBE,aACxC,GAAID,EAAgB,GAAKlC,KAAKI,SAAU,CACtC6B,EAAkBf,MAAMa,YACtB/B,KAAKE,4BACL,WAEF+B,EAAkBf,MAAMW,OAAS,GAAGK,MACpClC,KAAKa,sBACHoB,EACA,MACA,SACA,YAGFA,EAAkBG,iBAChB,iBACCC,IACCrC,KAAKsB,wBAAwBe,EAAGJ,EAAkB,G,MAGjD,IAAKjC,KAAKI,SAAU,CACzB,MAAM6B,EAAoBjC,KAAKiC,kBAC/BA,EAAkBf,MAAMW,OAAS,GAAGI,EAAkBE,iBACtD,GAAIF,EAAkBE,aAAe,IAAMnC,KAAKI,SAAU,CACxD6B,EAAkBf,MAAMW,OAAS,IACjC7B,KAAKa,sBACHoB,EACA,MACA,SACA,WAEFA,EAAkBN,UAAUW,OAAO1C,E,CAErCqC,EAAkBG,iBAAiB,iBAAkBC,IACnDrC,KAAK8B,oBAAoBO,EAAGJ,EAAkB,G,IA5JtD,oBAAAM,GACEC,EAAoBxC,KAAKG,SAAUH,KAAKc,G,CAmC1C,mBAAA2B,GACEzC,KAAKgC,wB,CAOP,cAAMU,G,OACJC,EAAA3C,KAAK4C,uBAAmB,MAAAD,SAAA,SAAAA,EAAEE,O,CAG5B,iBAAAC,GACEN,EAAoBxC,KAAKG,SAAUH,KAAKc,G,CAG1C,oBAAAiC,GACE,MAAMd,EAAoBjC,KAAKiC,kBAC/B,GAAIA,EAAmB,CACrBA,EAAkBe,oBAChB,iBACCX,GAAMrC,KAAKsB,wBAAwBe,EAAGJ,IACvC,MAEFA,EAAkBe,oBAChB,iBACCX,GAAMrC,KAAK8B,oBAAoBO,EAAGJ,IACnC,K,EAKN,gBAAAgB,GAEE,GAAIjD,KAAKI,UAAYJ,KAAKiC,kBAAmB,CAC3CjC,KAAKiC,kBAAkBf,MAAMW,OAAS,OACtC7B,KAAKiC,kBAAkBf,MAAMa,YAC3B/B,KAAKE,4BACL,WAEFF,KAAKiC,kBAAkBN,UAAUC,IAAIhC,E,EAsFzC,MAAAsD,GACE,MAAM3C,KAAEA,EAAIJ,SAAEA,EAAQC,SAAEA,EAAQI,MAAEA,GAAUR,KAC5C,OACEmD,EAACC,EAAI,CAAAC,IAAA,2CACHzC,GAAIZ,KAAKC,YACTqD,MAAO,CACL,CAAC,2BAA4BnD,EAC7B,CAAC,YAAYK,KAAUA,IAAU,WAClC,gBACcL,EAAW,OAAS,SAEnCgD,EAAA,UAAAE,IAAA,2CACEE,IAAMzC,GAAQd,KAAK4C,oBAAsB9B,EACzCF,GAAI,GAAGZ,KAAKC,qBACZE,SAAUA,EACVqD,SAAUrD,GAAY,EAAI,EAC1BmD,MAAO,CACL,CAAC,GAAG/C,KAAS,KACb,CAAC,kBAAmB,KACpB,CAAC,yBAA0BH,IAAaD,GACzC,gBACc,GAAGC,IAAU,gBACd,wBACdqD,QAASzD,KAAKS,gBAEbiD,EAAW1D,KAAKc,GAAI,SACnBqC,EAAA,OAAAE,IAAA,2CAAKC,MAAM,kBACTH,EAAA,QAAAE,IAAA,2CAAMM,KAAK,UAGfR,EAAA,iBAAAE,IAAA,2CAAeO,QAAQ,iBAAiBN,MAAM,kBAC3CI,EAAW1D,KAAKc,GAAI,WACnBqC,EAAA,QAAMQ,KAAK,YAEX3D,KAAY,SAGhBmD,EAAA,QAAAE,IAAA,2CACEC,MAAO,CACL,CAAC,kBAAmB,KACpB,CAAC,8BAA+BlD,IAAaD,GAC9C,cACW,OACZ0D,UAAWC,KAGfX,EAAA,OAAAE,IAAA,2CACEC,MAAO,CACL,CAAC,oBAAqB,MACvB,kBACgB,GAAGtD,KAAKC,qBACzB8D,KAAK,SAAQ,cACA,IAAI3D,IACjBQ,GAAG,wBACH2C,IAAMzC,GAAQd,KAAKiC,kBAAoBnB,GAEvCqC,EAAA,OAAAE,IAAA,2CAAKC,MAAM,0BACRtD,KAAKM,QACJ6C,EAAA,iBAAeS,QAAQ,QAAQ5D,KAAKM,SAEpC6C,EAAA,e","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icCardVerticalCss","IcCardVerticalStyle0","CardVertical","constructor","hostRef","this","hostMutationObserver","areaExpanded","isFocussed","monochrome","parentEl","parentIsAnchorTag","clickable","disabled","expandable","fullWidth","hreflang","message","theme","parentFocussed","parentBlurred","toggleExpanded","watchDisabledHandler","removeDisabledFalse","el","disconnectedCallback","removeEventListener","_a","disconnect","componentWillLoad","parentElement","tagName","classList","add","addEventListener","componentDidLoad","isSlotUsed","onComponentRequiredPropUndefined","prop","heading","propName","updateTheme","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","handleHostClick","event","stopImmediatePropagation","brandChangeHandler","ev","detail","mode","setFocus","shadowRoot","querySelector","focus","_b","foregroundColor","getBrandFromContext","IcBrandForegroundEnum","Default","Light","Dark","render","href","referrerpolicy","rel","subheading","target","Component","undefined","attrs","hrefLang","referrerPolicy","h","Host","key","class","Object","assign","card","fullwidth","focussed","tabindex","name","variant","id","label","silent","onClick","innerHTML","chevronIcon"],"sources":["src/components/ic-card-vertical/ic-card-vertical.css?tag=ic-card-vertical&encapsulation=shadow","src/components/ic-card-vertical/ic-card-vertical.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: flex;\n}\n\na {\n text-decoration: none !important;\n color: var(--ic-card-text-primary) !important;\n}\n\na:visited {\n color: var(--ic-card-link-action-dark) !important;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n}\n\n.card {\n display: flex;\n flex-direction: column;\n border: var(--ic-space-1px) solid var(--ic-card-border-primary);\n border-radius: var(--ic-border-radius);\n box-sizing: border-box;\n padding: var(--ic-space-md);\n text-align: left;\n color: var(--ic-card-text-primary);\n transition: var(--ic-easing-transition-fast);\n position: relative;\n width: inherit;\n min-width: fit-content;\n height: fit-content;\n min-height: 100%;\n\n ::slotted(svg) {\n fill: var(--ic-card-icon);\n }\n\n &.monochrome {\n border: var(--ic-border-width) solid var(--ic-card-border-monochrome);\n }\n\n &.fullwidth {\n width: 100%;\n }\n\n &.clickable {\n &:hover {\n background-color: var(--ic-card-background-hover);\n border: var(--ic-space-1px) solid var(--ic-card-hover-border-color);\n cursor: pointer;\n }\n\n &.focussed,\n &:focus {\n background-color: var(--ic-card-background-hover);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border: var(--ic-space-1px) solid var(--ic-card-pressed-border-color);\n }\n\n &:active {\n background-color: var(--ic-card-background-pressed);\n box-shadow: var(--ic-border-focus);\n\n .card-title {\n text-decoration: none;\n }\n }\n\n .card-title {\n --ic-typography-color: var(--ic-card-clickable-text);\n\n color: var(--ic-card-clickable-text);\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n margin-bottom: var(--ic-space-xxs);\n }\n\n .interaction-button,\n .icon {\n margin-bottom: var(--ic-space-xxs);\n }\n }\n\n &.disabled {\n border: var(--ic-space-1px) dashed var(--ic-card-disabled-border-color);\n\n .card-message,\n .subheading,\n .card-title {\n --ic-typography-color: var(--ic-card-disabled-text);\n }\n\n .card-title {\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n text-decoration-color: var(--ic-card-disabled-text);\n color: var(--ic-card-disabled-text);\n }\n\n ::slotted(svg) {\n fill: var(--ic-card-icon-disabled);\n }\n }\n}\n\n.card-header {\n display: flex;\n align-items: center;\n}\n\n.icon {\n display: flex;\n align-items: center;\n padding-right: var(--ic-space-xs);\n}\n\n.card.clickable:hover .card-title,\n.card.clickable:focus .card-title,\n.card.clickable.focussed .card-title {\n display: inline-block;\n border-bottom: 0.25rem solid !important;\n margin-bottom: 0 !important;\n text-decoration: none;\n}\n\n@supports (text-underline-offset: 25%) {\n .card.clickable:hover .card-title,\n .card.clickable:focus .card-title,\n .card.clickable.focussed .card-title {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 25%;\n border-bottom: 0 !important;\n margin-bottom: 0.25rem !important;\n }\n}\n\n.subheading {\n margin-top: var(--ic-space-xxs);\n}\n\n.adornment {\n margin-top: var(--ic-space-xxs);\n}\n\n.card-message {\n margin-top: var(--ic-space-md);\n align-items: left;\n}\n\n.interaction-button {\n margin-left: auto;\n}\n\n.image-top {\n margin-bottom: var(--ic-space-md);\n display: flex;\n justify-content: center;\n}\n\n.image-mid {\n margin-top: var(--ic-space-md);\n display: flex;\n justify-content: center;\n}\n\n.interaction-area {\n display: flex;\n flex-grow: 1;\n gap: var(--ic-space-md);\n margin-top: var(--ic-space-md);\n align-items: flex-end;\n}\n\n.interaction-controls {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--ic-space-sm);\n}\n\n.toggle-button {\n width: 2.5rem;\n height: 2.5rem;\n padding: var(--ic-space-xs);\n margin: var(--ic-space-1px) 0;\n min-width: 0;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n border-radius: var(--ic-border-radius);\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: none;\n border: none;\n box-sizing: border-box;\n white-space: nowrap;\n vertical-align: middle;\n\n &:hover {\n background-color: var(--ic-card-background-hover);\n }\n\n &:focus {\n box-shadow: var(--ic-border-focus);\n }\n\n &:active:not(:focus) {\n background-color: var(--ic-card-background-pressed);\n }\n\n svg {\n pointer-events: none;\n width: 100% !important;\n height: 100% !important;\n fill: currentcolor !important;\n }\n}\n\n#ic-tooltip-expand-button {\n margin-left: auto;\n position: relative;\n}\n\n.toggle-button-closed svg {\n transform: rotate(90deg);\n}\n\n.toggle-button-expanded svg {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n margin-top: var(--ic-space-md);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .card {\n ::slotted(svg) {\n fill: currentcolor;\n }\n\n &.disabled {\n border-color: GrayText !important;\n\n ::slotted(svg) {\n fill: GrayText !important;\n }\n\n .card-message,\n .subheading,\n .card-title {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n }\n }\n\n .toggle-button:focus,\n .toggle-button:hover {\n outline-color: Highlight;\n }\n}\n","import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n Host,\n Watch,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getBrandFromContext,\n removeDisabledFalse,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot heading - Content will be placed at the top of the card to the right of the icon.\n * @slot message - Content will be placed in the main body of the card.\n * @slot subheading - Content will be placed below the card heading.\n * @slot adornment - Content will be placed below the card subheading.\n * @slot image-top - Content will be placed at the top of the card above all other content.\n * @slot image-mid - Content will be placed below the card heading section.\n * @slot icon - Content will be placed to the left of the card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot interaction-controls - Content will be placed below the card message.\n * @slot expanded-content - Content will be placed below the interaction controls but will not initially be rendered.\n * @slot badge - Badge component overlaying the top right of the card.\n */\n@Component({\n tag: \"ic-card-vertical\",\n styleUrl: \"ic-card-vertical.css\",\n shadow: true,\n})\nexport class CardVertical {\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcCardVerticalElement;\n\n @State() areaExpanded: boolean = false;\n @State() isFocussed: boolean = false;\n @State() monochrome: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n\n /**\n * If `true`, the card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the card will have an expandable area and expansion toggle button.\n */\n @Prop() expandable?: boolean = false;\n\n /**\n * If `true`, the card will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The heading for the card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable card link points to. If set, the clickable card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the card.\n */\n @Prop() message?: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The subheading for the card.\n */\n @Prop() subheading?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: 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({ mutable: true }) theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.parentEl && this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl?.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(\n mutationList,\n [\n \"message\",\n \"adornment\",\n \"expanded-content\",\n \"image-top\",\n \"image-mid\",\n \"icon\",\n \"interaction-button\",\n \"badge\",\n \"interaction-controls\",\n ],\n this\n )\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.updateTheme(ev.detail.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n const shadowRoot = this.el.shadowRoot;\n\n if (shadowRoot) {\n if (shadowRoot.querySelector(\"a\")) {\n shadowRoot.querySelector(\"a\")?.focus();\n } else if (shadowRoot.querySelector(\"button\")) {\n shadowRoot.querySelector(\"button\")?.focus();\n }\n }\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(mode: IcBrandForeground | null = null): void {\n const foregroundColor = getBrandFromContext(this.el, mode);\n\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.monochrome = true;\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n\n private toggleExpanded = (): void => {\n this.areaExpanded = !this.areaExpanded;\n };\n\n render() {\n const {\n clickable,\n disabled,\n expandable,\n fullWidth,\n heading,\n isFocussed,\n message,\n monochrome,\n href,\n hreflang,\n parentIsAnchorTag,\n referrerpolicy,\n rel,\n subheading,\n target,\n theme,\n } = this;\n\n const Component =\n parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <Component\n class={{\n card: true,\n clickable: !!clickable && !disabled,\n disabled: !!disabled,\n fullwidth: !!fullWidth,\n focussed: isFocussed,\n monochrome: monochrome,\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : undefined}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image-top\") && (\n <div class=\"image-top\">\n <slot name=\"image-top\"></slot>\n </div>\n )}\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"interaction-button\") && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {(subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"image-mid\") && (\n <div class=\"image-mid\">\n <slot name=\"image-mid\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div class=\"card-message\">\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n {(isSlotUsed(this.el, \"interaction-controls\") || expandable) && (\n <div class=\"interaction-area\">\n <div class=\"interaction-controls\">\n <slot name=\"interaction-controls\"></slot>\n </div>\n {expandable && (\n <ic-tooltip\n id=\"ic-tooltip-expand-button\"\n label=\"Toggle expandable area\"\n silent\n >\n <button\n class={{\n \"toggle-button\": true,\n [`toggle-button-${\n this.areaExpanded ? \"expanded\" : \"closed\"\n }`]: true,\n }}\n aria-label=\"Toggle expandable area\"\n aria-expanded={`${this.areaExpanded}`}\n aria-controls={\n this.areaExpanded ? \"expanded-content-area\" : null\n }\n onClick={this.toggleExpanded}\n innerHTML={chevronIcon}\n ></button>\n </ic-tooltip>\n )}\n </div>\n )}\n {isSlotUsed(this.el, \"expanded-content\") && this.areaExpanded && (\n <div class=\"expanded-content\" id=\"expanded-content-area\">\n <slot name=\"expanded-content\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Component>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icRadioOptionCss","IcRadioOptionStyle0","ADDITIONAL_FIELD","RadioOption","constructor","hostRef","this","defaultRadioValue","hasAdditionalField","skipFocus","additionalFieldDisplay","disabled","dynamicText","theme","selected","initiallySelected","handleClick","event","clickedAdditionalField","target","matches","radioElement","stopPropagation","_a","focus","value","_b","getAdditionalField","icCheck","emit","handleKeyDown","preventPropagationElements","document","activeElement","includes","nodeName","handleFormReset","watchDisabledHandler","removeDisabledFalse","el","watchSelectedHandler","icSelectedChange","handleCheck","ev","Array","from","querySelectorAll","disconnectedCallback","removeFormResetListener","componentWillLoad","isSlotUsed","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentWillRender","hasSlot","slotHasContent","componentDidRender","additionalField","setAttribute","removeAttribute","additionalFieldValueHandler","detail","stopImmediatePropagation","setFocus","setTabIndex","toString","querySelector","hiddenInput","render","form","groupLabel","label","name","id","isPropDefined","h","Host","key","onClick","onKeyDown","class","parentElement","tagName","className","tabindex","type","checked","ref","variant","htmlFor","hidden","role"],"sources":["src/components/ic-radio-option/ic-radio-option.css?tag=ic-radio-option&encapsulation=scoped","src/components/ic-radio-option/ic-radio-option.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: flex;\n flex-direction: column;\n width: fit-content;\n}\n\n:host .additional-field-wrapper-static::slotted([slot=\"additional-field\"]) {\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-left: var(--ic-space-xl);\n}\n\n/* The label turns grey when disabled */\n:host(.ic-radio-option-disabled),\n:host(.ic-radio-option-disabled) .radio-label {\n --ic-typography-color: var(--ic-radio-button-text-option-disabled);\n}\n\n/* Focus states */\n:host .radio-option-container input:focus + span.checkmark,\n:host .radio-option-container:hover input:focus + span.checkmark,\n:host .radio-option-container:active input:focus + span.checkmark,\n:host(:focus) .radio-option-container input:checked + span.checkmark {\n box-shadow: var(--ic-border-focus);\n}\n\n/* The container */\n:host .radio-option-container {\n display: grid;\n grid-template-columns: min-content auto;\n position: relative;\n cursor: pointer;\n align-items: center;\n margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n}\n\n:host(.ic-radio-option-small) .radio-option-container {\n margin: 0 0 0 var(--ic-space-xxs);\n}\n\n:host .radio-option-container.disabled,\n:host .radio-option-container.disabled input:disabled {\n cursor: default;\n}\n\n/* Hide the browser's default radio button */\n:host .radio-option-container input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: inline-block;\n position: absolute;\n cursor: pointer;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n border-radius: 50%;\n border: none;\n}\n\n:host(.ic-radio-option-small) .radio-option-container input {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n}\n\n/* Create a custom radio button */\n:host .checkmark {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-radio-button-background-default);\n border: var(--ic-space-1px) solid var(--ic-radio-button-border-default);\n border-radius: 50%;\n transition: var(--ic-easing-transition-fast);\n box-sizing: border-box;\n}\n\n:host(.ic-radio-option-small) .checkmark {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n}\n\n/* Show the indicator (dot/circle) when checked */\n:host .radio-option-container input:checked ~ .checkmark::after {\n display: inline-block;\n}\n\n/* On mouse-over, add a light blue background color */\n:host .radio-option-container:hover input ~ .checkmark {\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);\n border: var(--ic-border-width) solid var(--ic-radio-button-default-hover);\n}\n\n:host .radio-option-container:hover input:checked ~ .checkmark {\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);\n border: 0.125rem solid var(--ic-radio-button-default-hover);\n}\n\n:host\n .radio-option-container:hover:not(.disabled)\n input:checked\n ~ .checkmark::after {\n background-color: var(--ic-radio-button-default-hover);\n}\n\n/* When pressed, adds the active colours */\n:host .radio-option-container:active input ~ .checkmark {\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);\n border: var(--ic-border-width) solid var(--ic-radio-button-default-pressed);\n}\n\n/* When pressed, adds the active colours */\n:host .radio-option-container:active input:checked ~ .checkmark {\n border: 0.125rem solid var(--ic-radio-button-default-pressed);\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);\n}\n\n:host(.ic-radio-option-small)\n .radio-option-container\n input:checked\n ~ .checkmark {\n border-width: var(--ic-space-1px);\n}\n\n/* When pressed and selected, adds the active colours */\n:host .radio-option-container:active input:checked ~ .checkmark::after {\n background-color: var(--ic-radio-button-default-pressed);\n}\n\n/* When the radio button is checked */\n:host .radio-option-container input:checked ~ .checkmark {\n border: 0.125rem solid var(--ic-radio-button-default-active);\n}\n\n/* When the radio button is checked and disabled */\n:host .radio-option-container input:checked:disabled ~ .checkmark {\n border: 0.125rem solid var(--ic-radio-button-border-disabled);\n}\n\n/* When the radio button is disabled */\n:host .radio-option-container input:disabled ~ .checkmark {\n border: var(--ic-border-width) dashed var(--ic-radio-button-border-disabled);\n}\n\n/* When the radio button is disabled */\n:host .radio-option-container input:disabled ~ .checkmark::after {\n background: var(--ic-radio-button-disabled);\n}\n\n/* On mouse-over inactive */\n:host .radio-option-container:hover input:disabled ~ .checkmark {\n box-shadow: none;\n border: 0.125rem solid none;\n}\n\n:host .radio-option-container:active input:disabled ~ .checkmark::after {\n background-color: var(--ic-radio-button-disabled);\n}\n\n/* Style the indicator (dot/circle) */\n:host .radio-option-container .checkmark::after {\n content: \"\";\n position: absolute;\n display: none;\n top: calc(50% - var(--ic-space-xs));\n left: calc(50% - var(--ic-space-xs));\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n border-radius: 50%;\n background: var(--ic-radio-button-default-active);\n}\n\n:host(.ic-radio-option-small) .radio-option-container .checkmark::after {\n top: 50%;\n left: 50%;\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background: var(--ic-radio-button-default-active);\n transform: translate(-50%, -50%);\n}\n\n:host .radio-label {\n margin-left: var(--ic-space-md);\n\n --ic-typography-color: var(--ic-radio-button-text-option);\n}\n\n:host(.ic-radio-option-small) .radio-label {\n margin-left: var(--ic-space-xs);\n}\n\n:host .additional-field-wrapper-static {\n margin-left: var(--ic-space-xs);\n}\n\n/* The line */\n:host .branch-corner {\n color: var(--ic-radio-button-required-bar);\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-radio-button-required-bar);\n border-left: 0.125rem solid var(--ic-radio-button-required-bar);\n margin-left: calc(-1 * var(--ic-space-1px));\n}\n\n/* The dynamic container */\n:host .dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-radio-option-small) .dynamic-container {\n margin-left: 12px;\n}\n\n:host .dynamic-container.hidden {\n display: none;\n}\n\n:host .dynamic-text {\n color: var(--ic-radio-button-required-text);\n\n --ic-typography-color: var(--ic-radio-button-required-text);\n\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n@media (max-width: 576px) {\n :host .additional-field-wrapper-dynamic::slotted(ic-text-field),\n :host .additional-field-wrapper-static::slotted(ic-text-field) {\n --input-width: 100%;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n\n :host .radio-option-container input:checked ~ .checkmark,\n :host .radio-option-container:active input:checked ~ .checkmark {\n border-color: Highlight;\n }\n\n :host .radio-option-container input:checked ~ .checkmark::after,\n :host .radio-option-container:active input:checked ~ .checkmark::after {\n background-color: Highlight;\n }\n\n :host .radio-option-container input:disabled ~ .checkmark,\n :host .radio-option-container input:checked:disabled ~ .checkmark {\n border-color: GrayText;\n }\n\n :host .radio-option-container input:disabled ~ .checkmark::after,\n :host .radio-option-container:active input:disabled ~ .checkmark::after {\n background-color: GrayText;\n }\n}\n\n/* Right to left */\n:host input[type=\"radio\"]:dir(rtl) {\n right: 0;\n}\n\n:host .radio-label:dir(rtl) {\n padding-right: var(--ic-space-sm);\n padding-left: 0;\n}\n\n:host .branch-corner:dir(rtl) {\n border-radius: 0 0 0.188rem;\n border-right: 0.125rem solid var(--ic-action-default);\n border-left: none;\n}\n\n:host .dynamic-container:dir(rtl) {\n margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n scoped: true,\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement?: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay?: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText?: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel?: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name?: 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 value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement?.setAttribute(\"tabIndex\", value.toString());\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement?.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-radio-option-small\"]:\n this.el.parentElement?.tagName === \"IC-RADIO-GROUP\" &&\n this.el.parentElement?.className.includes(\"ic-radio-group-small\"),\n }}\n >\n <div class={{ \"radio-option-container\": true, disabled: !!disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\" role=\"alert\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n [`additional-field-wrapper-${additionalFieldDisplay}`]: true,\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationItemCss","IcNavigationItemStyle0","NavigationItem","constructor","hostRef","this","isInitialRender","hostMutationObserver","ANIMATION_DURATION","parseInt","getCssProperty","ARIA_LABEL_STRING","isInSideNav","deviceSize","DEVICE_SIZES","XL","focusStyle","getBrandForegroundAppearance","inTopNavSideMenu","isSideNavMobile","isTopNavChild","sideNavExpanded","ariaLabel","collapsedIconLabel","displayNavigationTooltip","download","expandable","href","selected","theme","displayDefaultNavigationItem","label","hreflang","target","rel","referrerpolicy","variant","ChevronIconComponent","h","class","svg","innerHTML","chevronIcon","slottedBadgeEl","el","querySelector","BadgeComponent","name","IconComponent","referrerPolicy","ref","itemEl","part","OpenInNew","tabindex","topNavResizedHandler","detail","size","_a","parentEl","customMobileBreakpoint","L","sideNavExpandHandler","sideNavMobile","sideNavToggleTooltip","handleBlur","relatedTarget","tagName","childBlur","emit","handleClick","navItemClicked","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","getAttribute","forceUpdate","generateTooltipLabel","navigationSlot","textContent","children","renderNavigationItemContent","showTooltip","tooltip","shadowRoot","collapsedClass","timer","displayTooltip","setTimeout","classList","add","clearTimeout","remove","navigationTypeChangeHandler","navigationType","disconnectedCallback","removeEventListener","_b","_c","disconnect","componentWillLoad","navType","parent","getNavItemParentDetails","getCurrentDeviceSize","contains","addEventListener","_d","_e","parentElement","_f","trim","hasAttribute","componentDidLoad","MutationObserver","observe","attributes","componentDidUpdate","brandChangeHandler","mode","setFocus","focus","render","isTopNavChildDesktop","Host","key","onBlur","onClick","role","placement"],"sources":["src/components/ic-navigation-item/ic-navigation-item.css?tag=ic-navigation-item&encapsulation=shadow","src/components/ic-navigation-item/ic-navigation-item.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation item\n */\n\n:host {\n display: block;\n\n --navigation-link-colour: var(--ic-brand-text-color);\n}\n\n:host(:focus-within) {\n z-index: var(--ic-z-index-navigation-item);\n}\n\n/* chevron */\nsvg {\n width: var(--ic-space-xl);\n fill: var(--ic-brand-text-color);\n}\n\n.svg {\n margin-left: auto;\n}\n\n.chevron-container svg,\n.chevron-container .svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n.chevron-container {\n flex-grow: 1;\n}\n\n:host(.expandable.navigation-item) .link,\n:host(.expandable.navigation-item) ::slotted(a) {\n padding-right: 0;\n}\n\n:host(.navigation-item) .link,\n:host(.navigation-item) ::slotted(a) {\n height: calc(100% - var(--ic-space-xxs));\n width: fit-content;\n color: var(--navigation-link-colour);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md) var(--ic-space-xxs);\n text-decoration: none;\n transition: var(--ic-easing-transition-fast);\n position: relative;\n white-space: nowrap;\n\n --ic-typography-color: var(--navigation-link-colour);\n}\n\n:host(.navigation-item) ::slotted(a) {\n height: 100%;\n font: var(--ic-font-label) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt025) !important;\n padding: 0 var(--ic-space-md) !important;\n}\n\n:host(.navigation-item-selected) .link::after,\n:host(.navigation-item-selected) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav) ::slotted(a.active)::after {\n content: \"\";\n height: 0.25rem;\n width: 100%;\n position: absolute;\n bottom: 0;\n background-color: var(--ic-top-navigation-theme);\n}\n\n:host(.navigation-item-selected.navigation-item-page-header)\n ::slotted(a.active)::after,\n:host(.navigation-item-selected.navigation-item-page-header) .link::after,\n:host(.navigation-item.navigation-item-page-header) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::after {\n content: none;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n box-shadow: none;\n}\n\n:host(.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-brand-hover);\n cursor: pointer;\n}\n\n:host(.navigation-item:not(.navigation-item-page-header, .navigation-item-side-menu, .navigation-item-top-nav-child))\n ::slotted(a:hover:not(:focus)),\n:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-brand-hover) !important;\n}\n\n:host(.navigation-item:not(.navigation-item-top-nav-child, .navigation-item-side-menu, .navigation-item-top-nav-child-selected\n .navigation-item-side-menu-selected))\n .focus-indicator:focus-within {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.navigation-item) .link:focus,\n:host(.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n outline-offset: calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2));\n}\n\n:host(.navigation-item-selected) .link:focus,\n:host(.navigation-item) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n outline-offset: calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2));\n}\n\n:host(.navigation-item) .link:active:not(:focus),\n:host(.navigation-item) ::slotted(a:active:not(:focus)) {\n background-color: var(--ic-brand-active);\n}\n\n:host(.navigation-item-side-menu) .link,\n:host(.navigation-item-side-menu) ::slotted(a) {\n min-height: 2.5rem;\n height: auto;\n width: 100%;\n box-sizing: border-box;\n color: var(--ic-top-navigation-nav-item);\n\n --ic-typography-color: var(--ic-top-navigation-nav-item);\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n text-wrap: wrap;\n white-space: normal;\n transition: box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(svg),\n:host(.navigation-item-side-menu) ::slotted(svg),\n:host(.navigation-item-page-header) ::slotted(svg) {\n fill: var(--ic-color-text-primary);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n transition: box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);\n}\n\n:host(.navigation-item-side-menu) .link:hover:not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-hover);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-top-navigation-nav-item-hover) !important;\n}\n\n:host(.navigation-item-side-menu) .focus-indicator:focus-within {\n box-shadow: none;\n}\n\n:host(.navigation-item-side-menu) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset) !important;\n width: auto;\n border-radius: var(--ic-border-radius-inset) !important;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu-selected) ::slotted(a) {\n transition: box-shadow var(--ic-easing-transition-slow),\n background-color var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n margin-left: var(--ic-space-xs) !important;\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link,\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n height: 2.5rem;\n width: calc(100% - var(--ic-space-xl));\n min-width: 9.063rem;\n color: var(--ic-top-navigation-nav-item);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) !important;\n text-decoration: none;\n position: relative;\n transition: box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-slow);\n\n --ic-typography-color: var(--ic-color-text-primary);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:hover:not(:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-top-navigation-nav-item-hover) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-top-nav-child) ::slotted(a:focus) {\n z-index: 1;\n outline: var(--ic-hc-focus-outline);\n border-radius: var(--ic-border-radius-inset);\n box-shadow: var(--ic-border-focus-inset);\n transition: border-radius 0s, box-shadow var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n:host(.navigation-item-side-menu) .link:active:not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-pressed);\n}\n\n:host(.navigation-item-top-nav-child) .link:active:not(:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)) {\n outline: var(--ic-hc-focus-outline);\n background-color: var(--ic-top-navigation-nav-item-pressed);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)),\n:host(.navigation-item-side-menu) ::slotted(a:active:not(:focus)) {\n background-color: var(--ic-top-navigation-nav-item-pressed) !important;\n}\n\n:host(.navigation-item-side-menu-selected) *,\n:host(.navigation-item-top-nav-child-selected) *,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n font-weight: 700 !important;\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::before,\n:host(.navigation-item-top-nav-child-selected) .link::before,\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n content: \"\";\n position: absolute;\n left: 0;\n width: var(--ic-space-xs);\n height: inherit;\n min-height: 2.5rem;\n background-color: var(--ic-top-navigation-nav-item-banner);\n transition: left 0s;\n}\n\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before {\n margin-top: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus {\n margin-left: var(--ic-space-xs);\n margin-right: calc(-1 * var(--ic-space-xs));\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus::before {\n left: calc(-1 * var(--ic-space-xs));\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before,\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus)::before {\n left: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.navigation-item-side-menu-selected) .link::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .link {\n height: 100%;\n}\n\n:host(.navigation-item-side-nav-collapsed) ::slotted(svg),\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(svg) {\n margin: auto;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n align-items: center;\n padding: 0;\n margin: auto 0;\n width: fit-content;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 100%;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) .link,\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(a) {\n display: flex;\n flex-direction: column;\n height: fit-content;\n padding: var(--ic-space-xs) !important;\n gap: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n height: auto !important;\n gap: 0;\n width: auto;\n padding: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link\n ic-typography {\n opacity: 1;\n min-width: min-content;\n}\n\n:host(.navigation-item-side-nav-collapsed) svg,\n:host(.navigation-item-side-nav-collapsed-with-label) svg {\n display: none;\n}\n\n::slotted(svg) {\n fill: var(--ic-brand-text-color);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n.icon {\n height: 1.5rem;\n width: var(--ic-space-xxl);\n margin-left: calc(-1 * var(--ic-space-md));\n flex: 0 1 0%;\n position: relative;\n}\n\n.icon > ::slotted(*) {\n margin-left: var(--ic-space-md) !important;\n margin-right: var(--ic-space-xs);\n}\n\n.inline-badge {\n margin-left: var(--ic-space-xs);\n}\n\n.badge {\n margin-left: 0;\n}\n\n:host(.navigation-item-side-nav-collapsed) .icon > ::slotted(*) {\n margin: auto !important;\n}\n\n:host(.navigation-item-side-nav) .icon > ::slotted(*) {\n margin-right: 0;\n}\n\n:host(.navigation-item-side-nav) .link,\n:host(.navigation-item-side-nav) ::slotted(a) {\n height: var(--navigation-item-height, 4rem);\n min-height: var(--navigation-item-min-height);\n width: var(--navigation-item-width, auto);\n justify-content: var(--navigation-item-justify-content);\n display: flex;\n gap: var(--ic-space-xs);\n box-sizing: border-box;\n color: var(--navigation-item-child-color) !important;\n text-decoration: none !important;\n white-space: nowrap;\n padding: 0 var(--ic-space-md);\n text-wrap: wrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a) {\n height: var(--navigation-item-child-height);\n width: var(--navigation-group-width);\n color: var(--navigation-item-child-color) !important;\n display: flex;\n gap: 0.625rem;\n box-sizing: border-box;\n min-width: 0;\n transition: box-shadow var(--ic-easing-transition-fast);\n text-decoration: none !important;\n white-space: nowrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-dark);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-menu) .link:active {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:active,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:active) {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav) a.link ic-typography,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n a.link\n ic-typography,\n:host(.navigation-item-side-nav) div.link ic-typography,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n div.link\n ic-typography,\n.navigation-item-side-nav-slotted-text {\n opacity: var(--navigation-item-label-opacity);\n transition: opacity var(--ic-easing-transition-slow);\n white-space: wrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a.active) {\n box-shadow: inset 0.313rem 0 0 var(--ic-brand-text-color);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::before,\n:host(.navigation-item-side-nav) ::slotted(a.active)::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0 0 0 0.313rem;\n border-radius: 0.688rem !important;\n transition: var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus::before,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus)::before {\n box-shadow: var(--ic-border-focus-inset);\n}\n\n:host(:not(.navigation-item-side-nav-collapsed).navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link {\n opacity: var(--navigation-item-label-opacity);\n height: auto;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n min-width: var(--navigation-group-item-min-width);\n padding: var(--ic-space-xs) !important;\n height: auto;\n gap: 0;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::after,\n:host(.navigation-item-side-nav) ::slotted(a.active)::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav.navigation-item) .link:focus,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background-color: transparent;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus) {\n margin: 0 auto;\n box-shadow: inset 0.313rem 0 0 var(--ic-brand-text-color);\n border-radius: 0;\n}\n\n:host(.navigation-item-page-header).link,\n:host(.navigation-item-page-header) a,\n:host(.navigation-item-page-header) ::slotted(a) {\n height: 2.5rem !important;\n color: var(--ic-color-text-primary) !important;\n transition: all var(--ic-easing-transition-fast) !important;\n box-shadow: rgba(23 89 188 / 0%) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link::after,\n:host(.navigation-item-page-header) ::slotted(a.active)::after {\n content: \" \" !important;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: var(--ic-space-xxs);\n background-color: var(--ic-action-default) !important;\n}\n\n:host(.navigation-item-page-header) .link:hover,\n:host(.navigation-item-page-header) ::slotted(.link:hover),\n:host(.navigation-item-page-header) ::slotted(a:hover),\n:host(.navigation-item-page-header) .link:hover:not(:focus) {\n background-color: var(--ic-action-default-bg-hover) !important;\n cursor: pointer;\n}\n\n:host(.navigation-item-page-header) .link:focus,\n:host(.navigation-item-page-header) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n:host(.navigation-item-page-header) .link:active,\n:host(.navigation-item-page-header) ::slotted(a:active) {\n background-color: var(--ic-action-default-bg-pressed) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link:focus::after,\n:host(.navigation-item-page-header) ::slotted(a.active:focus)::after {\n border-bottom-left-radius: var(--ic-border-radius);\n border-bottom-right-radius: var(--ic-border-radius);\n}\n\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n .link,\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n ::slotted(a.active) {\n transition: all var(--ic-easing-transition-fast),\n border-color var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-page-header) ::slotted(a.active)::before,\n:host(.navigation-item-page-header) ::slotted(a.active:focus)::before,\n:host(.navigation-item-page-header.navigation-item-selected)\n .link:focus::before {\n display: none;\n}\n\n.open-in-new-icon {\n flex: 1;\n}\n\n.open-in-new-icon svg {\n margin-top: var(--ic-space-xxs);\n padding-left: var(--ic-space-xs);\n}\n\n:host(.navigation-item-side-nav) .open-in-new-icon {\n margin-left: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.navigation-item-top-nav) .open-in-new-icon svg,\n:host(.navigation-item-page-header) .open-in-new-icon svg,\n:host(.navigation-item-side-nav) .open-in-new-icon svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n\n:host(.navigation-item-side-menu) .open-in-new-icon svg,\n:host(.navigation-item-top-nav-child) .open-in-new-icon svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n}\n\n:host(.navigation-item-page-header) .open-in-new-icon svg,\n:host(.navigation-item-top-nav-child) .open-in-new-icon svg,\n:host(.navigation-item-side-menu) .open-in-new-icon svg {\n fill: var(--ic-color-text-primary);\n}\n\n@media (forced-colors: active) {\n .open-in-new-icon svg {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n Listen,\n Method,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCssProperty,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport { IcExpandedDetail } from \"../ic-side-navigation/ic-side-navigation.types\";\n\n/**\n * @part link - The `<a>` within ic-navigation-item\n * @slot badge - Badge component overlaying the top right of the icon.\n * @slot icon - Content will be displayed to the left of the label for expanded navigation items, and in replacement of the label for collapsed navigation items.\n */\n\n@Component({\n tag: \"ic-navigation-item\",\n styleUrl: \"ic-navigation-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationItem {\n private navigationSlot: HTMLElement | null;\n private isInitialRender = true;\n private itemEl?: HTMLElement;\n private hostMutationObserver: MutationObserver | null = null;\n private ANIMATION_DURATION =\n parseInt(getCssProperty(\"--ic-transition-duration-slow\")) || 0;\n private ARIA_LABEL_STRING = \"aria-label\";\n private isInSideNav = false;\n\n @Element() el: HTMLIcNavigationItemElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu = false;\n @State() isSideNavMobile = false;\n @State() isTopNavChild = false;\n\n @State() navigationType: IcNavType | \"\";\n @Watch(\"navigationType\")\n navigationTypeChangeHandler(): void {\n this.isInSideNav = this.navigationType === \"side\";\n }\n\n @State() parentEl: HTMLElement | null;\n @State() sideNavExpanded = false;\n @State() ariaLabel = \"\";\n\n /**\n * @internal If `true`, the icon and label will be displayed when side navigation is collapsed.\n */\n @Prop() collapsedIconLabel = false;\n\n /**\n * @internal If `true`, the navigation item will be displayed within a tooltip.\n */\n @Prop() displayNavigationTooltip = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be expandable.\n */\n @Prop() expandable = false;\n\n /**\n * The destination of the navigation item.\n */\n @Prop() href = \"\";\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label of the navigation item.\n */\n @Prop() label?: string;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * If `true`, the navigation item will be set in a selected state.\n */\n @Prop() selected = false;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: 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 * @internal - Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal - Emitted when navigation item clicked.\n */\n @Event() navItemClicked: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.isInSideNav) {\n this.parentEl?.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n }\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.isInSideNav = this.navigationType === \"side\";\n this.parentEl = parent;\n this.deviceSize = getCurrentDeviceSize();\n\n this.sideNavExpanded =\n this.parentEl?.classList.contains(\"sm-expanded\") ||\n this.parentEl?.classList.contains(\"xs-menu-open\") ||\n false;\n\n if (this.isInSideNav) {\n this.parentEl?.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n if (this.el.parentElement?.tagName === \"IC-NAVIGATION-GROUP\")\n this.isTopNavChild = true;\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint\n )\n this.inTopNavSideMenu = true;\n }\n\n this.navigationSlot = this.el.querySelector('[slot=\"navigation-item\"]');\n if (this.navigationSlot) {\n this.navigationSlot.ariaLabel =\n this.navigationSlot.textContent?.trim() || null;\n }\n\n if (this.el.hasAttribute(this.ARIA_LABEL_STRING)) {\n this.ariaLabel = this.el.getAttribute(this.ARIA_LABEL_STRING) || \"\";\n }\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.focusStyle = detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.itemEl ? this.itemEl.focus() : this.el.querySelector(\"a\")?.focus();\n }\n\n private displayDefaultNavigationItem = (\n href: string,\n label: string,\n hreflang?: string,\n target?: string,\n rel?: string,\n referrerpolicy?: ReferrerPolicy,\n download?: string | boolean\n ) => {\n const variant =\n this.isTopNavChild || this.inTopNavSideMenu ? \"body\" : \"label\";\n const ChevronIconComponent = this.expandable && (\n <div class={{ svg: true }} innerHTML={chevronIcon}></div>\n );\n const slottedBadgeEl = this.el.querySelector('[slot=\"badge\"]');\n const BadgeComponent = slottedBadgeEl && (\n <div class=\"inline-badge\">\n <slot name=\"badge\"></slot>\n </div>\n );\n const IconComponent = this.el.querySelector('[slot=\"icon\"]') && (\n <div class=\"icon\">\n <slot name=\"icon\"></slot>\n {this.isInSideNav && BadgeComponent}\n </div>\n );\n\n return href !== \"\" ? (\n <a\n href={href}\n target={target}\n rel={rel}\n hreflang={hreflang}\n referrerPolicy={referrerpolicy}\n download={download !== false ? download : null}\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n part=\"link\"\n aria-label={this.ariaLabel ? this.ariaLabel : null}\n >\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {target === \"_blank\" && (\n <span class=\"open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n {BadgeComponent}\n <div class=\"chevron-container\">{ChevronIconComponent}</div>\n </a>\n ) : (\n <div tabindex=\"0\" class=\"link\" ref={(el) => (this.itemEl = el)}>\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n {BadgeComponent}\n </div>\n );\n };\n\n private topNavResizedHandler = ({\n detail,\n }: CustomEvent<{ size: number }>) => {\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)\n ?.customMobileBreakpoint || DEVICE_SIZES.L);\n }\n };\n\n private sideNavExpandHandler = ({\n detail,\n }: CustomEvent<IcExpandedDetail>) => {\n const { sideNavExpanded, sideNavMobile } = detail;\n this.sideNavExpanded = sideNavExpanded;\n this.isSideNavMobile = sideNavMobile;\n this.sideNavToggleTooltip(!sideNavExpanded && !sideNavMobile);\n };\n\n private handleBlur = ({ relatedTarget }: FocusEvent) => {\n if (\n relatedTarget === null ||\n (relatedTarget as HTMLElement).tagName !== \"IC-NAVIGATION-ITEM\"\n ) {\n this.childBlur.emit();\n }\n };\n\n private handleClick = () => this.navItemClicked.emit();\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && attributeName === this.ARIA_LABEL_STRING) {\n this.ariaLabel = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private generateTooltipLabel = () => {\n if (this.label) {\n return this.label;\n }\n\n if (this.navigationSlot) {\n return this.navigationSlot.textContent || \"\";\n }\n\n return this.el.children[0]?.textContent || \"\";\n };\n\n private renderNavigationItemContent = () => {\n if (!this.label && !this.navigationSlot) return <slot></slot>;\n\n return this.label ? (\n this.displayDefaultNavigationItem(\n this.href,\n this.label,\n this.hreflang,\n this.target,\n this.rel,\n this.referrerpolicy,\n this.download\n )\n ) : (\n <slot name=\"navigation-item\"></slot>\n );\n };\n\n // Displays tooltip only once the collapsing animation is finished\n private sideNavToggleTooltip = (showTooltip: boolean) => {\n const tooltip = this.el.shadowRoot?.querySelector(\"ic-tooltip\");\n const collapsedClass = \"tooltip-navigation-item-side-nav-collapsed\";\n let timer;\n\n if (!tooltip) return;\n\n if (showTooltip) {\n tooltip.displayTooltip(false); // Hides tooltip for when mouse is hovering over icon\n timer = setTimeout(() => {\n tooltip.classList.add(collapsedClass);\n }, this.ANIMATION_DURATION);\n } else {\n clearTimeout(timer);\n tooltip.classList.remove(collapsedClass);\n }\n };\n\n render() {\n const {\n inTopNavSideMenu,\n isTopNavChild,\n selected,\n navigationType,\n focusStyle,\n isInitialRender,\n sideNavExpanded,\n displayNavigationTooltip,\n collapsedIconLabel,\n isSideNavMobile,\n expandable,\n isInSideNav,\n theme,\n } = this;\n\n const isTopNavChildDesktop = isTopNavChild && !inTopNavSideMenu;\n\n return (\n <Host\n class={{\n \"navigation-item\": true,\n \"navigation-item-selected\": !isTopNavChild && selected,\n \"navigation-item-top-nav\":\n !inTopNavSideMenu && navigationType === \"top\",\n \"navigation-item-top-nav-child\": isTopNavChildDesktop,\n \"navigation-item-top-nav-child-selected\":\n isTopNavChildDesktop && selected,\n \"navigation-item-side-menu\": inTopNavSideMenu,\n \"navigation-item-side-menu-selected\": inTopNavSideMenu && selected,\n \"navigation-item-page-header\": navigationType === \"page-header\",\n \"navigation-item-side-nav\": isInSideNav,\n \"navigation-item-side-nav-collapsed\":\n (!sideNavExpanded || displayNavigationTooltip) && isInSideNav,\n \"navigation-item-side-nav-collapsed-with-label\":\n !sideNavExpanded &&\n isInSideNav &&\n collapsedIconLabel &&\n !isSideNavMobile,\n \"with-transition\": !isInitialRender,\n expandable,\n [focusStyle]: isTopNavChild ? isInSideNav : !inTopNavSideMenu,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onBlur={isTopNavChildDesktop ? this.handleBlur : null}\n onClick={this.handleClick}\n aria-current={selected ? \"page\" : null}\n role=\"listitem\"\n >\n {/* Tooltip enabled by applying navigation-item-side-nav-collapsed class to host */}\n <ic-tooltip\n label={this.generateTooltipLabel()}\n target=\"navigation-item\"\n placement=\"right\"\n class={{\n \"tooltip-navigation-item\": true,\n \"tooltip-navigation-item-side-nav-collapsed\":\n displayNavigationTooltip && isInSideNav,\n \"tooltip-long-label-navigation-item-side-nav-expanded\":\n this.el.hasAttribute(\"[display-navigation-tooltip = 'true']\"),\n }}\n >\n {this.renderNavigationItemContent()}\n </ic-tooltip>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icBackToTopCss","IcBackToTopStyle0","backToTopLabel","BackToTop","constructor","hostRef","this","topObserver","bannerOffset","footerVisible","targetElVisible","position","theme","variant","getObservedEl","document","querySelector","setTargetElVisible","visible","setFooterVisible","checkForClassificationBanner","window","scrollY","targetElObserverCallback","entries","isIntersecting","footerObserverCallback","findTargetEl","target","targetElement","undefined","console","log","startsWith","createTopObserver","targetEl","objParent","observedEl","unobserve","remove","body","firstElementChild","isTargetElNull","parentNode","objBackToTopTargetEl","createElement","setAttribute","insertBefore","marginTop","getComputedStyle","IntersectionObserver","threshold","rootMargin","observe","handleClick","scrollTo","_a","scrollIntoView","focus","banners","querySelectorAll","length","watchPropHandler","newValue","oldValue","onComponentPropUndefinedChange","componentWillLoad","footers","footerEl","footerObserver","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","render","btnVariant","size","label","h","Host","key","class","onClick","innerHTML","ArrowUpward"],"sources":["src/components/ic-back-to-top/ic-back-to-top.css?tag=ic-back-to-top&encapsulation=shadow","src/components/ic-back-to-top/ic-back-to-top.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-back-to-top: z-index of back to top\n * @prop --margin-right: right y-position of back to top\n * @prop --margin-left: left y-position of back to top\n * @prop --footer-offset: offset of x-position from footer\n */\n\n:host {\n display: flex;\n flex: row;\n height: 0.1px;\n}\n\n:host(.ic-back-to-top-right) {\n justify-content: flex-end;\n}\n\n:host(.ic-back-to-top-right) ic-button {\n margin-right: var(--margin-right, 1rem);\n}\n\n:host(.ic-back-to-top-right) .ic-back-to-top-icon {\n padding-top: var(--ic-space-xxs);\n padding-right: var(--ic-space-xs);\n}\n\n:host(.ic-back-to-top-left) {\n justify-content: flex-start;\n}\n\n:host(.ic-back-to-top-left) ic-button {\n margin-left: var(--margin-left, 1rem);\n}\n\n:host(.ic-back-to-top-left) .ic-back-to-top-icon {\n padding-top: var(--ic-space-xxs);\n padding-right: var(--ic-space-xs);\n}\n\n:host(.ic-back-to-top-center) {\n justify-content: center;\n}\n\n:host(.ic-back-to-top-center) .ic-back-to-top-icon {\n padding-top: var(--ic-space-xxs);\n padding-right: var(--ic-space-xs);\n}\n\nic-button {\n height: 2.5rem;\n align-items: center;\n background-color: var(--ic-color-background-primary);\n border-radius: 5rem;\n box-shadow: var(--ic-elevation-overlay);\n visibility: hidden;\n position: fixed;\n bottom: var(--ic-space-md);\n opacity: 0;\n transition: visibility 0s linear var(--ic-transition-duration-slow),\n opacity var(--ic-transition-duration-slow);\n z-index: var(--ic-z-index-back-to-top);\n}\n\n:host(.ic-back-to-top-variant-icon) ic-button::part(button) {\n margin: 0;\n}\n\nic-button::part(button) {\n border-radius: 5rem;\n}\n\nic-button.show {\n visibility: visible;\n opacity: 1;\n transition: visibility 0s linear 0s,\n opacity var(--ic-transition-duration-slow),\n box-shadow var(--ic-easing-transition-fast);\n}\n\nic-button.offset-banner:not(.by-footer) {\n margin-bottom: var(--footer-offset, var(--ic-space-lg));\n}\n\n.ic-back-to-top-icon > svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n}\n\n.icon-only {\n width: 2.5rem;\n}\n\n.icon-only .ic-back-to-top-icon > svg {\n padding-left: calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\nic-button.by-footer {\n position: relative;\n bottom: var(--footer-offset, 3.5rem);\n}\n\n@media (forced-colors: active) {\n .icon-only .ic-back-to-top-icon > svg {\n padding-left: calc(var(--ic-space-xs) - var(--ic-space-xxxs));\n }\n}\n","import { Component, h, Host, Element, Prop, State, Watch } from \"@stencil/core\";\nimport ArrowUpward from \"./assets/ArrowUpward.svg\";\nimport {\n onComponentPropUndefinedChange,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport {\n IcBackToTopVariants,\n IcBackToTopPositions,\n} from \"./ic-back-to-top.types\";\n\nconst backToTopLabel = \"Back to top\";\n\n@Component({\n tag: \"ic-back-to-top\",\n styleUrl: \"ic-back-to-top.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BackToTop {\n private isTargetElNull: boolean;\n private targetEl: Element | null;\n private topObserver: IntersectionObserver | null = null;\n\n @Element() el: HTMLIcBackToTopElement;\n\n @State() bannerOffset: boolean = false;\n @State() footerVisible: boolean = false;\n @State() targetElVisible: boolean = true;\n\n /**\n * The horizontal position of the element.\n */\n @Prop() position?: IcBackToTopPositions = \"right\";\n\n /**\n * The ID of the element to jump back to when the link is clicked.\n */\n @Prop() target!: 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 variant of the button to render\n */\n @Prop() variant?: IcBackToTopVariants = \"default\";\n\n @Watch(\"target\")\n watchPropHandler(newValue: string, oldValue: string): void {\n //added for gatsby rehydration issue where prop is initially undefined but then changes to actual value\n onComponentPropUndefinedChange(oldValue, newValue, () => {\n this.createTopObserver(newValue);\n });\n }\n\n componentWillLoad(): void {\n this.createTopObserver(this.target);\n this.checkForClassificationBanner();\n\n //observer for when footer scrolls into view\n let footers = document.querySelectorAll(\n \"ic-footer\"\n ) as NodeListOf<HTMLElement>;\n if (footers.length === 0) {\n footers = document.querySelectorAll(\"footer\");\n }\n\n if (footers.length) {\n const footerEl = footers[footers.length - 1];\n const threshold = this.bannerOffset ? 0.15 : 0;\n const footerObserver = new IntersectionObserver(\n this.footerObserverCallback,\n { threshold: [threshold] }\n );\n footerObserver.observe(footerEl);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.target, propName: \"target\" }],\n \"Back to Top\"\n );\n }\n\n private getObservedEl = () => {\n return document.querySelector(\"#ic-back-to-top-target\");\n };\n\n private setTargetElVisible = (visible: boolean) => {\n this.targetElVisible = visible;\n };\n\n private setFooterVisible = (visible: boolean) => {\n this.checkForClassificationBanner();\n this.footerVisible =\n typeof window !== \"undefined\" && window.scrollY === 0 ? false : visible;\n };\n\n private targetElObserverCallback = (entries: IntersectionObserverEntry[]) => {\n this.setTargetElVisible(entries[0].isIntersecting);\n };\n\n private footerObserverCallback = (entries: IntersectionObserverEntry[]) => {\n this.setFooterVisible(entries[0].isIntersecting);\n };\n\n private findTargetEl = (target: string): Element | null => {\n let targetElement = null;\n if (target === null || target === undefined) {\n console.log(\n \"Error: No target ID specified for back to top component - defaulting to top of page\"\n );\n } else {\n targetElement = document.querySelector(\n `${target.startsWith(\"#\") ? \"\" : \"#\"}${target}`\n );\n if (targetElement === null) {\n console.log(\n `Error: Back to top target element '${target}' not found - defaulting to top of page`\n );\n }\n }\n return targetElement;\n };\n\n private createTopObserver = (target: string) => {\n this.targetEl = this.findTargetEl(target);\n let objParent: HTMLElement;\n\n //remove old element & observer\n if (this.topObserver !== null) {\n const observedEl = this.getObservedEl();\n if (observedEl !== null) {\n this.topObserver.unobserve(observedEl);\n observedEl.remove();\n }\n }\n\n if (this.targetEl === null) {\n objParent = document.body;\n this.targetEl = objParent.firstElementChild;\n this.isTargetElNull = true;\n } else {\n objParent = this.targetEl.parentNode as HTMLElement;\n this.isTargetElNull = false;\n }\n\n //insert a new 0px height element before specified target that can be used to determine when page is scrolled\n const objBackToTopTargetEl = document.createElement(\"div\");\n objBackToTopTargetEl.setAttribute(\"id\", \"ic-back-to-top-target\");\n objBackToTopTargetEl.setAttribute(\"tabindex\", \"-1\"); // Needed for virtual cursor behaviour to work\n objParent.insertBefore(objBackToTopTargetEl, this.targetEl);\n\n // resize observer needs to factor in any top margin on the target el\n const marginTop = this.targetEl\n ? getComputedStyle(this.targetEl).marginTop\n : 0;\n this.topObserver = new IntersectionObserver(this.targetElObserverCallback, {\n threshold: [0],\n rootMargin: `${marginTop} 0px 0px 0px`,\n });\n this.topObserver.observe(objBackToTopTargetEl);\n };\n\n private handleClick = () => {\n if (this.isTargetElNull) {\n window.scrollTo(0, 0);\n } else {\n this.targetEl?.scrollIntoView();\n }\n // Get virtual cursor to move\n (this.getObservedEl() as HTMLElement).focus();\n };\n\n private checkForClassificationBanner = () => {\n //adjust position for classification banner at bottom\n const banners = document.querySelectorAll(\n \"ic-classification-banner:not([inline='true'])\"\n );\n this.bannerOffset = banners.length > 0;\n };\n\n render() {\n const { variant, bannerOffset, targetElVisible, footerVisible } = this;\n const btnVariant = variant === \"icon\" ? \"icon-secondary\" : \"secondary\";\n const size = variant === \"icon\" ? \"large\" : \"medium\";\n const label = variant === \"icon\" ? \"\" : backToTopLabel;\n\n return (\n <Host\n class={{\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n [`ic-back-to-top-${this.position}`]: true,\n [`ic-back-to-top-variant-icon`]: variant === \"icon\",\n }}\n >\n <ic-button\n aria-label={backToTopLabel}\n variant={btnVariant}\n size={size}\n onClick={this.handleClick}\n class={{\n [\"offset-banner\"]: bannerOffset,\n [\"show\"]: !targetElVisible,\n [\"by-footer\"]: footerVisible,\n [\"icon-only\"]: variant === \"icon\",\n }}\n theme={this.theme}\n >\n <span class=\"ic-back-to-top-icon\" innerHTML={ArrowUpward} />\n {label}\n </ic-button>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icLinkCss","IcLinkStyle0","Link","constructor","hostRef","this","inheritedAttributes","hostMutationObserver","download","monochrome","theme","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","el","getAttribute","IC_INHERITED_ARIA","includes","forceUpdate","setDownloadAttribute","value","undefined","componentWillLoad","inheritAttributes","updateTheme","setAttribute","componentDidLoad","MutationObserver","observe","attributes","disconnectedCallback","_a","disconnect","brandChangeHandler","detail","mode","setFocus","_b","shadowRoot","querySelector","focus","getBrandFromContext","IcBrandForegroundEnum","Default","Light","Dark","hasRouterSlot","routerSlot","ariaLabel","textContent","render","href","hreflang","referrerpolicy","rel","target","h","Host","key","class","name","Object","assign","hrefLang","referrerPolicy","tabindex","part","innerHTML","OpenInNew"],"sources":["src/components/ic-link/ic-link.css?tag=ic-link&encapsulation=shadow","src/components/ic-link/ic-link.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host(.ic-link) .link,\n:host(.ic-link) ::slotted(a) {\n color: var(--ic-link-text);\n text-decoration: underline;\n font-weight: var(--ic-font-weight-bold);\n transition: var(--ic-easing-transition-fast);\n}\n\n:host(.ic-link) .link:visited,\n:host(.ic-link) ::slotted(a:visited),\n:host(.ic-link) .link:visited:hover,\n:host(.ic-link) ::slotted(a:visited:hover),\n:host(.ic-link) .link:visited:active,\n:host(.ic-link) ::slotted(a:visited:active),\n:host(.ic-link) .link:visited:focus,\n:host(.ic-link) ::slotted(a:visited:focus) {\n color: var(--ic-link-text-visited);\n}\n\n:host(.ic-link) .link:hover {\n color: var(--ic-link-text-hover);\n}\n\n:host(.ic-link) .link:active {\n color: var(--ic-link-text-pressed);\n}\n\n:host(.ic-link) .link:focus {\n color: var(--ic-link-text-focused);\n}\n\n:host(.ic-link-monochrome) .link:hover {\n color: var(--ic-link-text-hover-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:active {\n color: var(--ic-link-text-pressed-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:focus {\n color: var(--ic-link-text-focused-monochrome);\n}\n\n:host(.ic-link) .link:hover,\n:host(.ic-link) .link:focus,\n:host(.ic-link) ::slotted(a:hover),\n:host(.ic-link) ::slotted(a:focus) {\n outline: none;\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n@supports (text-underline-offset: 10%) {\n :host(.ic-link) .link:hover,\n :host(.ic-link) .link:focus,\n :host(.ic-link) ::slotted(a:hover),\n :host(.ic-link) ::slotted(a:focus) {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 10%;\n border-bottom: 0 !important;\n margin-bottom: 0 !important;\n }\n}\n\n:host(.ic-link) .link:active,\n:host(.ic-link) .link:focus:active,\n:host(.ic-link) .link:visited:active,\n:host(.ic-link) ::slotted(a:active),\n:host(.ic-link) ::slotted(a:focus:active),\n:host(.ic-link) ::slotted(a:visited:active) {\n text-decoration: none;\n}\n\n.ic-link-open-in-new-icon {\n vertical-align: middle;\n margin-left: var(--ic-space-xxs);\n}\n\n.ic-link-open-in-new-icon > svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n fill: var(--ic-link-icon-launch);\n}\n\n.link:visited > .ic-link-open-in-new-icon > svg {\n fill: var(--ic-link-icon-launch-visited);\n}\n\n:host(.ic-link-monochrome) .link,\n:host(.ic-link-monochrome) ::slotted(a) {\n color: var(--ic-link-text-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:visited,\n:host(.ic-link-monochrome) ::slotted(a:visited),\n:host(.ic-link-monochrome) .link:visited:hover,\n:host(.ic-link-monochrome) ::slotted(a:visited:hover),\n:host(.ic-link-monochrome) .link:visited:active,\n:host(.ic-link-monochrome) ::slotted(a:visited:active),\n:host(.ic-link-monochrome) .link:visited:focus,\n:host(.ic-link-monochrome) ::slotted(a:visited:focus) {\n color: var(--ic-link-text-visited-monochrome);\n}\n\n:host(.ic-link-monochrome) .link > .ic-link-open-in-new-icon > svg {\n fill: var(--ic-link-icon-launch-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:visited > .ic-link-open-in-new-icon > svg {\n fill: var(--ic-link-icon-launch-visited-monochrome);\n}\n\n:host(.breadcrumb-link) .link {\n display: var(--breadcrumb-link-display);\n align-items: var(--breadcrumb-link-align-items);\n gap: var(--breadcrumb-link-gap);\n}\n\n:host(.breadcrumb-link) .link ::slotted(.back-icon) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host(.breadcrumb-link.current-page) a,\n:host(.breadcrumb-link.current-page) ::slotted(a) {\n font-weight: normal;\n color: inherit;\n text-decoration: none;\n display: flex;\n align-items: center;\n}\n\n:host(.breadcrumb-link.current-page) .link,\n:host(.breadcrumb-link.current-page) ::slotted(a:focus) {\n outline: var(--ic-hc-focus-outline);\n text-decoration: none;\n}\n\n:host(.breadcrumb-link.current-page) .link:visited {\n color: var(--ic-color-text-primary);\n}\n\n/* Footer link */\n\n:host(.footer-link) ::slotted(a) {\n color: var(--ic-footer-link) !important;\n}\n\n:host(.footer-link) .ic-link-open-in-new-icon > svg {\n fill: var(--ic-footer-icon) !important;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n :host(.ic-link) .ic-link-open-in-new-icon > svg {\n fill: currentcolor !important;\n }\n}\n","import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport { getBrandFromContext, inheritAttributes } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\n\n/**\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n\n@Component({\n tag: \"ic-link\",\n styleUrl: \"ic-link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Link {\n private inheritedAttributes: { [k: string]: string } = {};\n private routerSlot: HTMLElement | null;\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcLinkElement;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it. If the value is a string, it will be used as the filename for the download.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the link will display as black in the light theme, and white in the dark theme.\n */\n @Prop({ mutable: true }) monochrome?: boolean = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: 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({ mutable: true }) theme?: IcThemeMode = \"inherit\";\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, IC_INHERITED_ARIA);\n this.updateTheme();\n this.el.setAttribute(\"exportparts\", \"link\");\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the link.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot?.querySelector(\"a\")?.focus();\n }\n\n private updateTheme(mode: IcBrandForeground | null = null): void {\n const theme = getBrandFromContext(this.el, mode);\n\n if (theme !== IcBrandForegroundEnum.Default) {\n this.monochrome = true;\n this.theme =\n theme === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setDownloadAttribute = (\n value: string | boolean | undefined\n ): string | undefined => {\n if (typeof value === \"boolean\") {\n return value ? \"\" : undefined;\n } else {\n return value === \"true\" ? \"\" : value === \"false\" ? undefined : value;\n }\n };\n\n render() {\n const {\n download,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n monochrome,\n theme,\n } = this;\n\n return (\n <Host\n class={{\n [\"ic-link\"]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-link-monochrome\"]: !!monochrome,\n }}\n >\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <a\n class={{\n [\"link\"]: !!href,\n }}\n download={this.setDownloadAttribute(download)}\n href={href}\n hrefLang={hreflang}\n referrerPolicy={referrerpolicy}\n rel={rel}\n target={target}\n tabindex={href ? \"0\" : \"-1\"}\n {...this.inheritedAttributes}\n part=\"link\"\n >\n <slot />\n {target === \"_blank\" && (\n <span class=\"ic-link-open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"0LAAA,MAAMA,EAAY,y/LAClB,MAAAC,EAAeD,E,MC+BFE,EAAI,MAPjB,WAAAC,CAAAC,G,UAQUC,KAAAC,oBAA+C,GAE/CD,KAAAE,qBAAgD,KAOhDF,KAAAG,SAA8B,MAebH,KAAAI,WAAuB,MAoBvBJ,KAAAK,MAAsB,UAqDvCL,KAAAM,qBAAwBC,IAC9B,IAAIC,EAAuB,MAC3BD,EAAaE,SAAQ,EAAGC,oBACtB,GAAIA,EAAe,CACjB,MAAMC,EAAYX,KAAKY,GAAGC,aAAaH,GACvC,GAAIC,GAAaG,EAAkBC,SAASL,GAAgB,CAC1DV,KAAKC,oBAAoBS,GAAiBC,EAC1CH,EAAuB,I,MAI7B,GAAIA,EAAsB,CACxBQ,EAAYhB,K,GAIRA,KAAAiB,qBACNC,IAEA,UAAWA,IAAU,UAAW,CAC9B,OAAOA,EAAQ,GAAKC,S,KACf,CACL,OAAOD,IAAU,OAAS,GAAKA,IAAU,QAAUC,UAAYD,C,GAzEnE,iBAAAE,GACEpB,KAAKC,oBAAsBoB,EAAkBrB,KAAKY,GAAIE,GACtDd,KAAKsB,cACLtB,KAAKY,GAAGW,aAAa,cAAe,O,CAGtC,gBAAAC,GACExB,KAAKE,qBAAuB,IAAIuB,iBAAiBzB,KAAKM,sBACtDN,KAAKE,qBAAqBwB,QAAQ1B,KAAKY,GAAI,CACzCe,WAAY,M,CAIhB,oBAAAC,G,OACEC,EAAA7B,KAAKE,wBAAoB,MAAA2B,SAAA,SAAAA,EAAEC,Y,CAI7B,kBAAAC,EAAmBC,OAAEA,IACnBhC,KAAKsB,YAAYU,EAAOC,K,CAO1B,cAAMC,G,SACJC,GAAAN,EAAA7B,KAAKY,GAAGwB,cAAU,MAAAP,SAAA,SAAAA,EAAEQ,cAAc,QAAI,MAAAF,SAAA,SAAAA,EAAEG,O,CAGlC,WAAAhB,CAAYW,EAAiC,MACnD,MAAM5B,EAAQkC,EAAoBvC,KAAKY,GAAIqB,GAE3C,GAAI5B,IAAUmC,EAAsBC,QAAS,CAC3CzC,KAAKI,WAAa,KAClBJ,KAAKK,MACHA,IAAUmC,EAAsBE,MAC5BF,EAAsBG,KACtBH,EAAsBE,K,EAIxB,aAAAE,GACN5C,KAAK6C,WAAa7C,KAAKY,GAAGyB,cAAc,wBACxC,GAAIrC,KAAK6C,WAAY,CACnB7C,KAAK6C,WAAWC,UAAY9C,KAAK6C,WAAWE,W,CAE9C,QAAS/C,KAAK6C,U,CA8BhB,MAAAG,GACE,MAAM7C,SACJA,EAAQ8C,KACRA,EAAIC,SACJA,EAAQC,eACRA,EAAcC,IACdA,EAAGC,OACHA,EAAMjD,WACNA,EAAUC,MACVA,GACEL,KAEJ,OACEsD,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,CAAC,WAAY,KACb,CAAC,YAAYpD,KAAUA,IAAU,UACjC,CAAC,wBAAyBD,IAG3BJ,KAAK4C,gBACJU,EAAA,QAAMI,KAAK,gBAEXJ,EAAA,IAAAK,OAAAC,OAAA,CACEH,MAAO,CACL,CAAC,UAAWR,GAEd9C,SAAUH,KAAKiB,qBAAqBd,GACpC8C,KAAMA,EACNY,SAAUX,EACVY,eAAgBX,EAChBC,IAAKA,EACLC,OAAQA,EACRU,SAAUd,EAAO,IAAM,MACnBjD,KAAKC,oBAAmB,CAC5B+D,KAAK,SAELV,EAAA,aACCD,IAAW,UACVC,EAAA,QAAMG,MAAM,2BAA2BQ,UAAWC,K","ignoreList":[]}