@ukic/web-components 3.4.0 → 3.5.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 (477) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-fc4016d2.js → helpers-931fd72e.js} +30 -32
  3. package/dist/cjs/helpers-931fd72e.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-button_3.cjs.entry.js +135 -142
  12. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -5
  15. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  19. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  20. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  21. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  23. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  27. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  28. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +19 -14
  29. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-input-label_2.cjs.entry.js +36 -13
  31. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-navigation-button.cjs.entry.js +31 -39
  36. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-navigation-group.cjs.entry.js +7 -4
  38. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  42. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  43. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  45. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  46. package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
  47. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  49. package/dist/cjs/ic-search-bar.cjs.entry.js +28 -12
  50. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  52. package/dist/cjs/ic-select.cjs.entry.js +8 -8
  53. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-side-navigation.cjs.entry.js +16 -17
  55. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  59. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  60. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  61. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  62. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  65. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-text-field.cjs.entry.js +8 -8
  68. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  70. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  72. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  73. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  74. package/dist/cjs/ic-top-navigation.cjs.entry.js +15 -9
  75. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  77. package/dist/cjs/loader.cjs.js +1 -1
  78. package/dist/collection/ag-theme-icds.css +24 -4
  79. package/dist/collection/components/ic-button/ic-button.js +3 -3
  80. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  81. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +10 -2
  82. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +6 -3
  83. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  84. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +22 -0
  85. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  86. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  87. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  88. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  89. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  90. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  91. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  92. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  93. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  94. package/dist/collection/components/ic-input-label/ic-input-label.css +2 -1
  95. package/dist/collection/components/ic-input-label/ic-input-label.js +31 -8
  96. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  97. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  98. package/dist/collection/components/ic-link/ic-link.js +1 -1
  99. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +3 -3
  100. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +210 -211
  101. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  102. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +1 -1
  103. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
  104. package/dist/collection/components/ic-menu/ic-menu.js +56 -10
  105. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  106. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  107. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +38 -47
  108. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  109. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +26 -4
  110. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  111. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +6 -4
  112. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  113. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  114. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  115. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  116. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  117. package/dist/collection/components/ic-radio-group/ic-radio-group.css +10 -2
  118. package/dist/collection/components/ic-radio-group/ic-radio-group.js +7 -4
  119. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  120. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +22 -0
  121. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  122. package/dist/collection/components/ic-search-bar/ic-search-bar.js +53 -11
  123. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  124. package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +20 -10
  125. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  126. package/dist/collection/components/ic-select/ic-select.js +8 -7
  127. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  128. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +21 -13
  129. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -13
  130. package/dist/collection/components/ic-select/ic-select_(single).stories.js +17 -9
  131. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +15 -16
  132. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  133. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +143 -0
  134. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  135. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  136. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  137. package/dist/collection/components/ic-step/ic-step.js +13 -13
  138. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  139. package/dist/collection/components/ic-switch/ic-switch.css +1 -4
  140. package/dist/collection/components/ic-switch/ic-switch.js +5 -4
  141. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  142. package/dist/collection/components/ic-switch/ic-switch.stories.js +8 -1
  143. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  144. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  145. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  146. package/dist/collection/components/ic-text-field/ic-text-field.js +8 -7
  147. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  148. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +12 -1
  149. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  150. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  151. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  152. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  153. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  154. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +1 -0
  155. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +13 -7
  156. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  157. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  158. package/dist/collection/utils/constants.js +1 -1
  159. package/dist/collection/utils/constants.js.map +1 -1
  160. package/dist/collection/utils/helpers.js +27 -30
  161. package/dist/collection/utils/helpers.js.map +1 -1
  162. package/dist/components/helpers.js +29 -32
  163. package/dist/components/helpers.js.map +1 -1
  164. package/dist/components/ic-button2.js +3 -3
  165. package/dist/components/ic-button2.js.map +1 -1
  166. package/dist/components/ic-checkbox-group.js +4 -4
  167. package/dist/components/ic-checkbox-group.js.map +1 -1
  168. package/dist/components/ic-data-list.js +2 -2
  169. package/dist/components/ic-data-row.js +2 -2
  170. package/dist/components/ic-dialog.js +1 -1
  171. package/dist/components/ic-empty-state.js +2 -2
  172. package/dist/components/ic-footer-link.js +2 -2
  173. package/dist/components/ic-hero.js +4 -4
  174. package/dist/components/ic-horizontal-scroll2.js +5 -5
  175. package/dist/components/ic-input-component-container2.js +3 -3
  176. package/dist/components/ic-input-container2.js +2 -2
  177. package/dist/components/ic-input-label2.js +33 -10
  178. package/dist/components/ic-input-label2.js.map +1 -1
  179. package/dist/components/ic-input-validation2.js +3 -3
  180. package/dist/components/ic-link2.js +1 -1
  181. package/dist/components/ic-loading-indicator2.js +139 -143
  182. package/dist/components/ic-loading-indicator2.js.map +1 -1
  183. package/dist/components/ic-menu-group.js +1 -1
  184. package/dist/components/ic-menu2.js +16 -9
  185. package/dist/components/ic-menu2.js.map +1 -1
  186. package/dist/components/ic-navigation-button.js +32 -41
  187. package/dist/components/ic-navigation-button.js.map +1 -1
  188. package/dist/components/ic-navigation-group.js +8 -5
  189. package/dist/components/ic-navigation-group.js.map +1 -1
  190. package/dist/components/ic-navigation-item.js +2 -2
  191. package/dist/components/ic-navigation-item.js.map +1 -1
  192. package/dist/components/ic-navigation-menu2.js +5 -5
  193. package/dist/components/ic-page-header.js +6 -6
  194. package/dist/components/ic-pagination-item2.js +2 -2
  195. package/dist/components/ic-pagination.js +4 -4
  196. package/dist/components/ic-popover-menu.js +4 -4
  197. package/dist/components/ic-radio-group.js +5 -5
  198. package/dist/components/ic-radio-group.js.map +1 -1
  199. package/dist/components/ic-radio-option.js +4 -4
  200. package/dist/components/ic-radio-option.js.map +1 -1
  201. package/dist/components/ic-search-bar.js +31 -12
  202. package/dist/components/ic-search-bar.js.map +1 -1
  203. package/dist/components/ic-section-container2.js +2 -2
  204. package/dist/components/ic-select.js +8 -8
  205. package/dist/components/ic-select.js.map +1 -1
  206. package/dist/components/ic-side-navigation.js +16 -17
  207. package/dist/components/ic-side-navigation.js.map +1 -1
  208. package/dist/components/ic-skeleton.js +2 -2
  209. package/dist/components/ic-skip-link.js +2 -2
  210. package/dist/components/ic-status-tag.js +2 -2
  211. package/dist/components/ic-step.js +13 -13
  212. package/dist/components/ic-stepper.js +2 -2
  213. package/dist/components/ic-switch.js +5 -5
  214. package/dist/components/ic-switch.js.map +1 -1
  215. package/dist/components/ic-tab-context.js +1 -1
  216. package/dist/components/ic-tab-group.js +2 -2
  217. package/dist/components/ic-tab-panel.js +2 -2
  218. package/dist/components/ic-tab-panel.js.map +1 -1
  219. package/dist/components/ic-text-field.js +8 -8
  220. package/dist/components/ic-text-field.js.map +1 -1
  221. package/dist/components/ic-theme.js +2 -2
  222. package/dist/components/ic-toast-region.js +1 -1
  223. package/dist/components/ic-toast.js +4 -4
  224. package/dist/components/ic-toggle-button-group.js +2 -2
  225. package/dist/components/ic-toggle-button.js +3 -3
  226. package/dist/components/ic-top-navigation.js +15 -9
  227. package/dist/components/ic-top-navigation.js.map +1 -1
  228. package/dist/components/ic-typography2.js +2 -2
  229. package/dist/core/ag-theme-icds.css +24 -4
  230. package/dist/core/core.css +29 -25
  231. package/dist/core/core.esm.js +1 -1
  232. package/dist/core/core.esm.js.map +1 -1
  233. package/dist/core/{p-7deaf128.entry.js → p-0f3a56bb.entry.js} +2 -2
  234. package/dist/core/p-0f3a56bb.entry.js.map +1 -0
  235. package/dist/core/{p-c5ffe2cf.entry.js → p-0f86ea09.entry.js} +2 -2
  236. package/dist/core/p-1228fd8c.entry.js +2 -0
  237. package/dist/core/{p-887e00bb.entry.js.map → p-1228fd8c.entry.js.map} +1 -1
  238. package/dist/core/{p-aad2abbf.entry.js → p-1286b234.entry.js} +2 -2
  239. package/dist/core/p-1286b234.entry.js.map +1 -0
  240. package/dist/core/{p-d82b27df.entry.js → p-13e65198.entry.js} +2 -2
  241. package/dist/core/{p-9a6dc8b1.entry.js → p-20a6dc40.entry.js} +2 -2
  242. package/dist/core/{p-4e48a671.entry.js → p-21ed856c.entry.js} +2 -2
  243. package/dist/core/{p-a140bcaa.entry.js → p-226406d6.entry.js} +2 -2
  244. package/dist/core/{p-7d2c07e2.entry.js → p-24bb2265.entry.js} +2 -2
  245. package/dist/core/{p-5eb2ac90.entry.js → p-2b342b23.entry.js} +2 -2
  246. package/dist/core/{p-8958c60f.entry.js → p-334672c1.entry.js} +2 -2
  247. package/dist/core/{p-dee21f6d.entry.js → p-3448c713.entry.js} +2 -2
  248. package/dist/core/{p-6cd0b010.entry.js → p-37900547.entry.js} +2 -2
  249. package/dist/core/{p-7d352865.entry.js → p-3abaa877.entry.js} +2 -2
  250. package/dist/core/p-3abaa877.entry.js.map +1 -0
  251. package/dist/core/{p-ef36181d.entry.js → p-3afc2870.entry.js} +2 -2
  252. package/dist/core/{p-aad10013.entry.js → p-3d7d2ff4.entry.js} +2 -2
  253. package/dist/core/p-41bb4db1.entry.js +2 -0
  254. package/dist/core/p-41bb4db1.entry.js.map +1 -0
  255. package/dist/core/{p-6eea869b.entry.js → p-44902a33.entry.js} +2 -2
  256. package/dist/core/{p-628c32b8.entry.js → p-476eac8c.entry.js} +2 -2
  257. package/dist/core/{p-56e0de32.entry.js → p-49ca3f54.entry.js} +2 -2
  258. package/dist/core/{p-56fb0298.entry.js → p-4dfc41e7.entry.js} +2 -2
  259. package/dist/core/{p-23536595.entry.js → p-5026eeaf.entry.js} +2 -2
  260. package/dist/core/{p-4a2acb2e.entry.js → p-54ea7120.entry.js} +2 -2
  261. package/dist/core/{p-a17499ff.entry.js → p-5b2bf9bb.entry.js} +2 -2
  262. package/dist/core/{p-ef4b752c.entry.js → p-5d9b23ce.entry.js} +2 -2
  263. package/dist/core/{p-4dc97b03.entry.js → p-5f9d1977.entry.js} +2 -2
  264. package/dist/core/p-5f9d1977.entry.js.map +1 -0
  265. package/dist/core/{p-e38fddbb.entry.js → p-6c10e1a2.entry.js} +2 -2
  266. package/dist/core/{p-51b49429.entry.js → p-6cb81f35.entry.js} +2 -2
  267. package/dist/core/{p-d4903dcd.entry.js → p-6dd73165.entry.js} +2 -2
  268. package/dist/core/{p-fc4f7180.entry.js → p-7ead8535.entry.js} +2 -2
  269. package/dist/core/{p-c8cf1ad5.entry.js → p-831e884c.entry.js} +2 -2
  270. package/dist/core/{p-fa38ad2e.entry.js → p-85f735ed.entry.js} +2 -2
  271. package/dist/core/p-89f493f3.entry.js +2 -0
  272. package/dist/core/p-89f493f3.entry.js.map +1 -0
  273. package/dist/core/{p-dfc8cba6.entry.js → p-8da025b5.entry.js} +2 -2
  274. package/dist/core/p-990c37aa.entry.js +2 -0
  275. package/dist/core/p-990c37aa.entry.js.map +1 -0
  276. package/dist/core/{p-803f2eb8.entry.js → p-9e039aba.entry.js} +2 -2
  277. package/dist/core/{p-3cb4ecef.entry.js → p-9e051db4.entry.js} +2 -2
  278. package/dist/core/{p-1d172032.entry.js → p-9edc5973.entry.js} +2 -2
  279. package/dist/core/{p-2c371198.entry.js → p-a14025cc.entry.js} +2 -2
  280. package/dist/core/p-a7286727.entry.js +2 -0
  281. package/dist/core/p-a7286727.entry.js.map +1 -0
  282. package/dist/core/{p-cfa9ed7d.entry.js → p-ab4e8b4a.entry.js} +2 -2
  283. package/dist/core/{p-dcce0dfd.entry.js → p-ab7a5536.entry.js} +2 -2
  284. package/dist/core/{p-26dfc4db.entry.js → p-ac73cfb8.entry.js} +2 -2
  285. package/dist/core/{p-1d254b71.entry.js → p-ad374f0b.entry.js} +2 -2
  286. package/dist/core/{p-513628ef.entry.js → p-b08bb522.entry.js} +2 -2
  287. package/dist/core/{p-e2629bfe.entry.js → p-b1b27b7e.entry.js} +2 -2
  288. package/dist/core/p-b40ecf16.js +2 -0
  289. package/dist/core/p-b40ecf16.js.map +1 -0
  290. package/dist/core/{p-5aec3757.entry.js → p-b59007a3.entry.js} +2 -2
  291. package/dist/core/{p-87fa5add.entry.js → p-b811c7a1.entry.js} +2 -2
  292. package/dist/core/p-b811c7a1.entry.js.map +1 -0
  293. package/dist/core/p-bae2df5e.entry.js +2 -0
  294. package/dist/core/p-bae2df5e.entry.js.map +1 -0
  295. package/dist/core/{p-d8ce39ac.entry.js → p-c8555360.entry.js} +2 -2
  296. package/dist/core/{p-60aad45d.entry.js → p-ced2e6ca.entry.js} +2 -2
  297. package/dist/core/{p-de1e04ac.entry.js → p-d281c3cf.entry.js} +2 -2
  298. package/dist/core/p-d32c377d.entry.js +2 -0
  299. package/dist/core/p-d32c377d.entry.js.map +1 -0
  300. package/dist/core/p-d4a77f80.entry.js +2 -0
  301. package/dist/core/p-d4a77f80.entry.js.map +1 -0
  302. package/dist/core/{p-9c47521d.entry.js → p-d7476f6d.entry.js} +2 -2
  303. package/dist/core/{p-8c77dd65.entry.js → p-e107d1dd.entry.js} +2 -2
  304. package/dist/core/p-e506ec91.entry.js +2 -0
  305. package/dist/core/p-e506ec91.entry.js.map +1 -0
  306. package/dist/core/{p-bf3b853e.entry.js → p-fc5661ac.entry.js} +2 -2
  307. package/dist/core/p-fca45edb.entry.js +2 -0
  308. package/dist/core/p-fca45edb.entry.js.map +1 -0
  309. package/dist/esm/core.js +1 -1
  310. package/dist/esm/{helpers-f2ffaa7c.js → helpers-91abc444.js} +30 -33
  311. package/dist/esm/helpers-91abc444.js.map +1 -0
  312. package/dist/esm/ic-accordion-group.entry.js +1 -1
  313. package/dist/esm/ic-accordion.entry.js +1 -1
  314. package/dist/esm/ic-alert.entry.js +1 -1
  315. package/dist/esm/ic-back-to-top.entry.js +1 -1
  316. package/dist/esm/ic-badge.entry.js +1 -1
  317. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  318. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  319. package/dist/esm/ic-button_3.entry.js +135 -142
  320. package/dist/esm/ic-button_3.entry.js.map +1 -1
  321. package/dist/esm/ic-card-vertical.entry.js +1 -1
  322. package/dist/esm/ic-checkbox-group.entry.js +5 -5
  323. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  324. package/dist/esm/ic-checkbox.entry.js +1 -1
  325. package/dist/esm/ic-chip.entry.js +1 -1
  326. package/dist/esm/ic-data-list.entry.js +2 -2
  327. package/dist/esm/ic-data-row.entry.js +3 -3
  328. package/dist/esm/ic-dialog.entry.js +2 -2
  329. package/dist/esm/ic-divider.entry.js +1 -1
  330. package/dist/esm/ic-empty-state.entry.js +3 -3
  331. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  332. package/dist/esm/ic-footer-link.entry.js +3 -3
  333. package/dist/esm/ic-footer.entry.js +1 -1
  334. package/dist/esm/ic-hero.entry.js +5 -5
  335. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  336. package/dist/esm/ic-input-component-container_3.entry.js +19 -14
  337. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  338. package/dist/esm/ic-input-label_2.entry.js +36 -13
  339. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  340. package/dist/esm/ic-link.entry.js +2 -2
  341. package/dist/esm/ic-menu-group.entry.js +2 -2
  342. package/dist/esm/ic-menu-item.entry.js +1 -1
  343. package/dist/esm/ic-navigation-button.entry.js +31 -39
  344. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  345. package/dist/esm/ic-navigation-group.entry.js +7 -4
  346. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  347. package/dist/esm/ic-navigation-item.entry.js +2 -2
  348. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  349. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  350. package/dist/esm/ic-page-header.entry.js +7 -7
  351. package/dist/esm/ic-pagination-item.entry.js +2 -2
  352. package/dist/esm/ic-pagination.entry.js +5 -5
  353. package/dist/esm/ic-popover-menu.entry.js +5 -5
  354. package/dist/esm/ic-radio-group.entry.js +6 -6
  355. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  356. package/dist/esm/ic-radio-option.entry.js +5 -5
  357. package/dist/esm/ic-search-bar.entry.js +28 -12
  358. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  359. package/dist/esm/ic-section-container.entry.js +2 -2
  360. package/dist/esm/ic-select.entry.js +8 -8
  361. package/dist/esm/ic-select.entry.js.map +1 -1
  362. package/dist/esm/ic-side-navigation.entry.js +16 -17
  363. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  364. package/dist/esm/ic-skeleton.entry.js +2 -2
  365. package/dist/esm/ic-skip-link.entry.js +2 -2
  366. package/dist/esm/ic-status-tag.entry.js +3 -3
  367. package/dist/esm/ic-step.entry.js +14 -14
  368. package/dist/esm/ic-stepper.entry.js +3 -3
  369. package/dist/esm/ic-switch.entry.js +6 -6
  370. package/dist/esm/ic-switch.entry.js.map +1 -1
  371. package/dist/esm/ic-tab-context.entry.js +1 -1
  372. package/dist/esm/ic-tab-group.entry.js +3 -3
  373. package/dist/esm/ic-tab-panel.entry.js +2 -2
  374. package/dist/esm/ic-tab.entry.js +1 -1
  375. package/dist/esm/ic-text-field.entry.js +8 -8
  376. package/dist/esm/ic-text-field.entry.js.map +1 -1
  377. package/dist/esm/ic-theme.entry.js +2 -2
  378. package/dist/esm/ic-toast-region.entry.js +1 -1
  379. package/dist/esm/ic-toast.entry.js +4 -4
  380. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  381. package/dist/esm/ic-toggle-button.entry.js +3 -3
  382. package/dist/esm/ic-top-navigation.entry.js +15 -9
  383. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  384. package/dist/esm/ic-typography.entry.js +3 -3
  385. package/dist/esm/loader.js +1 -1
  386. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +3 -0
  387. package/dist/types/components/ic-input-label/ic-input-label.d.ts +2 -0
  388. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +28 -32
  389. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -0
  390. package/dist/types/components/ic-menu/ic-menu.d.ts +7 -0
  391. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +8 -5
  392. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -1
  393. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +3 -0
  394. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +11 -0
  395. package/dist/types/components/ic-select/ic-select.d.ts +1 -0
  396. package/dist/types/components/ic-switch/ic-switch.d.ts +1 -0
  397. package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
  398. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +1 -0
  399. package/dist/types/components.d.ts +33 -13
  400. package/dist/types/utils/constants.d.ts +1 -1
  401. package/dist/types/utils/helpers.d.ts +1 -1
  402. package/hydrate/index.js +445 -396
  403. package/hydrate/index.mjs +445 -396
  404. package/package.json +3 -5
  405. package/vscode-data.json +8 -0
  406. package/dist/cjs/helpers-fc4016d2.js.map +0 -1
  407. package/dist/core/p-0fb68b4f.entry.js +0 -2
  408. package/dist/core/p-0fb68b4f.entry.js.map +0 -1
  409. package/dist/core/p-15b7adaf.entry.js +0 -2
  410. package/dist/core/p-15b7adaf.entry.js.map +0 -1
  411. package/dist/core/p-3676ac4e.entry.js +0 -2
  412. package/dist/core/p-3676ac4e.entry.js.map +0 -1
  413. package/dist/core/p-432aeae0.entry.js +0 -2
  414. package/dist/core/p-432aeae0.entry.js.map +0 -1
  415. package/dist/core/p-4dc97b03.entry.js.map +0 -1
  416. package/dist/core/p-554845c4.entry.js +0 -2
  417. package/dist/core/p-554845c4.entry.js.map +0 -1
  418. package/dist/core/p-59b48450.entry.js +0 -2
  419. package/dist/core/p-59b48450.entry.js.map +0 -1
  420. package/dist/core/p-7d352865.entry.js.map +0 -1
  421. package/dist/core/p-7deaf128.entry.js.map +0 -1
  422. package/dist/core/p-8242c24f.js +0 -2
  423. package/dist/core/p-8242c24f.js.map +0 -1
  424. package/dist/core/p-87fa5add.entry.js.map +0 -1
  425. package/dist/core/p-887e00bb.entry.js +0 -2
  426. package/dist/core/p-aad2abbf.entry.js.map +0 -1
  427. package/dist/core/p-bdcc79dd.entry.js +0 -2
  428. package/dist/core/p-bdcc79dd.entry.js.map +0 -1
  429. package/dist/core/p-c59fd23e.entry.js +0 -2
  430. package/dist/core/p-c59fd23e.entry.js.map +0 -1
  431. package/dist/core/p-eca6e215.entry.js +0 -2
  432. package/dist/core/p-eca6e215.entry.js.map +0 -1
  433. package/dist/esm/helpers-f2ffaa7c.js.map +0 -1
  434. /package/dist/core/{p-c5ffe2cf.entry.js.map → p-0f86ea09.entry.js.map} +0 -0
  435. /package/dist/core/{p-d82b27df.entry.js.map → p-13e65198.entry.js.map} +0 -0
  436. /package/dist/core/{p-9a6dc8b1.entry.js.map → p-20a6dc40.entry.js.map} +0 -0
  437. /package/dist/core/{p-4e48a671.entry.js.map → p-21ed856c.entry.js.map} +0 -0
  438. /package/dist/core/{p-a140bcaa.entry.js.map → p-226406d6.entry.js.map} +0 -0
  439. /package/dist/core/{p-7d2c07e2.entry.js.map → p-24bb2265.entry.js.map} +0 -0
  440. /package/dist/core/{p-5eb2ac90.entry.js.map → p-2b342b23.entry.js.map} +0 -0
  441. /package/dist/core/{p-8958c60f.entry.js.map → p-334672c1.entry.js.map} +0 -0
  442. /package/dist/core/{p-dee21f6d.entry.js.map → p-3448c713.entry.js.map} +0 -0
  443. /package/dist/core/{p-6cd0b010.entry.js.map → p-37900547.entry.js.map} +0 -0
  444. /package/dist/core/{p-ef36181d.entry.js.map → p-3afc2870.entry.js.map} +0 -0
  445. /package/dist/core/{p-aad10013.entry.js.map → p-3d7d2ff4.entry.js.map} +0 -0
  446. /package/dist/core/{p-6eea869b.entry.js.map → p-44902a33.entry.js.map} +0 -0
  447. /package/dist/core/{p-628c32b8.entry.js.map → p-476eac8c.entry.js.map} +0 -0
  448. /package/dist/core/{p-56e0de32.entry.js.map → p-49ca3f54.entry.js.map} +0 -0
  449. /package/dist/core/{p-56fb0298.entry.js.map → p-4dfc41e7.entry.js.map} +0 -0
  450. /package/dist/core/{p-23536595.entry.js.map → p-5026eeaf.entry.js.map} +0 -0
  451. /package/dist/core/{p-4a2acb2e.entry.js.map → p-54ea7120.entry.js.map} +0 -0
  452. /package/dist/core/{p-a17499ff.entry.js.map → p-5b2bf9bb.entry.js.map} +0 -0
  453. /package/dist/core/{p-ef4b752c.entry.js.map → p-5d9b23ce.entry.js.map} +0 -0
  454. /package/dist/core/{p-e38fddbb.entry.js.map → p-6c10e1a2.entry.js.map} +0 -0
  455. /package/dist/core/{p-51b49429.entry.js.map → p-6cb81f35.entry.js.map} +0 -0
  456. /package/dist/core/{p-d4903dcd.entry.js.map → p-6dd73165.entry.js.map} +0 -0
  457. /package/dist/core/{p-fc4f7180.entry.js.map → p-7ead8535.entry.js.map} +0 -0
  458. /package/dist/core/{p-c8cf1ad5.entry.js.map → p-831e884c.entry.js.map} +0 -0
  459. /package/dist/core/{p-fa38ad2e.entry.js.map → p-85f735ed.entry.js.map} +0 -0
  460. /package/dist/core/{p-dfc8cba6.entry.js.map → p-8da025b5.entry.js.map} +0 -0
  461. /package/dist/core/{p-803f2eb8.entry.js.map → p-9e039aba.entry.js.map} +0 -0
  462. /package/dist/core/{p-3cb4ecef.entry.js.map → p-9e051db4.entry.js.map} +0 -0
  463. /package/dist/core/{p-1d172032.entry.js.map → p-9edc5973.entry.js.map} +0 -0
  464. /package/dist/core/{p-2c371198.entry.js.map → p-a14025cc.entry.js.map} +0 -0
  465. /package/dist/core/{p-cfa9ed7d.entry.js.map → p-ab4e8b4a.entry.js.map} +0 -0
  466. /package/dist/core/{p-dcce0dfd.entry.js.map → p-ab7a5536.entry.js.map} +0 -0
  467. /package/dist/core/{p-26dfc4db.entry.js.map → p-ac73cfb8.entry.js.map} +0 -0
  468. /package/dist/core/{p-1d254b71.entry.js.map → p-ad374f0b.entry.js.map} +0 -0
  469. /package/dist/core/{p-513628ef.entry.js.map → p-b08bb522.entry.js.map} +0 -0
  470. /package/dist/core/{p-e2629bfe.entry.js.map → p-b1b27b7e.entry.js.map} +0 -0
  471. /package/dist/core/{p-5aec3757.entry.js.map → p-b59007a3.entry.js.map} +0 -0
  472. /package/dist/core/{p-d8ce39ac.entry.js.map → p-c8555360.entry.js.map} +0 -0
  473. /package/dist/core/{p-60aad45d.entry.js.map → p-ced2e6ca.entry.js.map} +0 -0
  474. /package/dist/core/{p-de1e04ac.entry.js.map → p-d281c3cf.entry.js.map} +0 -0
  475. /package/dist/core/{p-9c47521d.entry.js.map → p-d7476f6d.entry.js.map} +0 -0
  476. /package/dist/core/{p-8c77dd65.entry.js.map → p-e107d1dd.entry.js.map} +0 -0
  477. /package/dist/core/{p-bf3b853e.entry.js.map → p-fc5661ac.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["IcInformationStatus","IcBrandForegroundEnum","VARIANT_ICONS","neutral","icon","neutralIcon","ariaLabel","info","infoIcon","warning","warningIcon","error","errorIcon","success","successIcon","IC_INHERITED_ARIA","IC_DEVICE_SIZES","XS","S","M","L","XL","IC_BLOCK_COLOR_COMPONENTS","IC_FIXED_COLOR_COMPONENTS","IC_BLOCK_COLOR_EXCEPTIONS","BLACK_MIN_COLOR_BRIGHTNESS","WHITE_MAX_COLOR_BRIGHTNESS","IGNORED_KEYBOARD_CHARACTERS","DARK_MODE_THRESHOLD","ANYWHERE_SEARCH_POSITION","icInput","inheritAttributes","element","attributes","attributeObject","forEach","attr","value","getAttribute","removeAttribute","debounceEvent","event","wait","original","_original","emit","debounce","bind","func","timer","args","clearTimeout","setTimeout","renderHiddenInput","container","name","disabled","always","hasShadowDom","input","getHiddenInputElement","ownerDocument","createElement","type","classList","add","appendChild","Date","toISOString","Array","from","querySelectorAll","filter","el","parentElement","renderFileHiddenInput","multiple","accept","undefined","hidden","files","onchange","click","removeHiddenInput","_a","remove","shadowRoot","attachShadow","getInputHelperTextID","id","getInputValidationTextID","getInputDescribedByText","inputId","helperText","validationText","trim","getBrandFromContext","brandFromEvent","getRootNode","host","blockColorParent","closest","join","parentTag","tagName","toLowerCase","currentTag","includes","Default","contains","Dark","Light","isMobileOrTablet","navigator","maxTouchPoints","test","userAgent","handleHiddenFormButtonClick","form","button","hiddenFormButton","document","setAttribute","style","display","isEmptyString","length","isPropDefined","prop","getLabelFromValue","options","valueField","labelField","ungroupedOptions","map","option","children","push","matchingValue","find","getFilteredMenuOptions","includeDescriptions","searchString","position","label","description","lowerSearchString","startsWith","getOptionsWithoutGroupTitlesCount","optionsWithoutGroupTitles","deviceSizeMatches","size","window","matchMedia","matches","getCurrentDeviceSize","DEVICE_SIZES","UNDEFINED","getCssProperty","cssVar","getComputedStyle","documentElement","getPropertyValue","getBrandColorBrightness","themeRed","themeGreen","themeBlue","parseInt","getBrandForegroundAppearance","brightness","getSlot","querySelector","slotHasContent","getSlotContent","slot","getSlotElements","slotContent","firstElementChild","elements","assignedElements","childNodes","getNavItemParentDetails","navType","parent","Number","replace","hasValidationStatus","status","isSlotUsed","slotName","some","child","onComponentPropUndefinedChange","oldValue","newValue","callback","onComponentRequiredPropUndefined","props","component","propName","console","kebabToCamelCase","kebabCase","split","word","index","substring","toUpperCase","checkResizeObserver","callbackFn","ResizeObserver","hex2dec","v","hexToRgba","hex","hexChars","char","repeat","r","slice","g","b","a","rgbaStrToObj","rgbaStr","isRGBA","rgbValues","elementOverflowsX","scrollWidth","clientWidth","hasClassificationBanner","addFormResetListener","addEventListener","removeFormResetListener","removeEventListener","pxToRem","px","base","removeDisabledFalse","isMacDevice","indexOf","convertToRGBA","color","firstChar","capitalize","text","charAt","checkSlotInChildMutations","addedNodes","removedNodes","hasSlot","nodeList","node","isArray","isElInAGGrid","isSlottedInGroup","hasDynamicChildSlots","mutationList","slotNames","renderDynamicChildSlots","ref","forceUpdate"],"sources":["src/utils/types.ts","src/utils/constants.ts","src/utils/helpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type IcFocusableComponents =\n | HTMLIcBreadcrumbElement\n | HTMLIcButtonElement\n | HTMLIcCardVerticalElement\n | HTMLIcCheckboxElement\n | HTMLIcChipElement\n | HTMLIcLinkElement\n | HTMLIcNavigationButtonElement\n | HTMLIcNavigationGroupElement\n | HTMLIcNavigationItemElement\n | HTMLIcRadioOptionElement\n | HTMLIcSearchBarElement\n | HTMLIcSelectElement\n | HTMLIcSwitchElement\n | HTMLIcTabElement\n | HTMLIcTextFieldElement;\n\nexport type IcStatusVariants =\n | \"neutral\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcSizes = \"medium\" | \"large\" | \"small\";\n\nexport type IcSizesNoLarge = \"medium\" | \"small\";\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcNavType = \"side\" | \"top\" | \"page-header\";\n\n// From: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\nexport type IcAutocompleteTypes =\n | \"on\"\n | \"off\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\";\n\nexport type IcAlignment = \"left\" | \"center\" | \"full-width\";\n\nexport enum IcBrandForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport type IcThemeMode = \"dark\" | \"light\" | \"inherit\";\n\nexport type IcBrandForeground = \"default\" | \"dark\" | \"light\";\n\nexport type IcBrandForegroundNoDefault = \"dark\" | \"light\";\n\nexport type IcBrand = {\n mode: IcBrandForeground;\n color: IcColorRGB;\n};\n\nexport type IcAdditionalFieldTypes = \"static\" | \"dynamic\";\n\nexport type IcColorRGB = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type IcColorRGBA = IcColorRGB & {\n a: number;\n};\n\nexport type IcActivationTypes = \"automatic\" | \"manual\";\n\nexport type IcAutocorrectStates = \"on\" | \"off\";\n\nexport type IcNavParentDetails = {\n navType: IcNavType | \"\";\n parent: HTMLElement | null;\n};\n\nexport type IcTypographyVariants =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"subtitle-large\"\n | \"subtitle-small\"\n | \"body\"\n | \"label\"\n | \"label-uppercase\"\n | \"caption\"\n | \"caption-uppercase\"\n | \"code-large\"\n | \"code-small\"\n | \"code-extra-small\"\n | \"badge\"\n | \"badge-small\";\n\n/**\n * @interface IcMenuOption\n * @field {string} A label field to options. Defaults to \"label\", but can have any custom name.\n * @field {string} A value field to options. Defaults to \"value\", but can have any custom name.\n */\nexport interface IcMenuOption {\n description?: string;\n disabled?: boolean;\n recommended?: boolean;\n children?: IcMenuOption[];\n loading?: boolean;\n timedOut?: boolean;\n [key: string]: any;\n element?: {\n component: any;\n ariaLabel: string;\n };\n icon?: any;\n}\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport type IcCallbackFunctionNoReturn = (...args: unknown[]) => void;\n\nexport type IcRequiredPropsTypes =\n | string\n | boolean\n | number\n | HTMLElement\n | IcMenuOption[]\n | undefined;\n\nexport type IcPropObject = { prop: IcRequiredPropsTypes; propName: string };\n\nexport type IcRelatedTarget = EventTarget | undefined;\n\nexport type IcOrientation = \"horizontal\" | \"vertical\";\n\nexport type IcEmphasisType = \"filled\" | \"outlined\";\n\nexport interface IcValueEventDetail {\n value: string;\n keyPressed?: string;\n}\n\nexport interface IcMultiValueEventDetail {\n value: string | string[] | null;\n keyPressed?: string;\n}\n\nexport interface IcBlurEventDetail {\n relatedTarget: IcRelatedTarget | null;\n}\n\nexport type IcSelectTypes = \"single\" | \"multi\";\n\nexport type IcSelectMethodTypes = \"auto\" | \"manual\";\n\nexport type IcDeviceSizes = 0 | 576 | 768 | 992 | 1200;\n\ntype RGB = `rgb(${string})`;\ntype RGBA = `rgba(${string})`;\ntype HEX = `#${string}`;\n\nexport type IcColor = RGB | RGBA | HEX;\n\nexport type IcIconPlacementOptions = \"left\" | \"right\" | \"top\";\n\nexport type IcButtonTooltipPlacement = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nexport type IcThemeSettings = \"dark\" | \"light\" | \"system\";\n","import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\", \"ic-button\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n\n// Keyboard characters that do not affect the content of an input control when pressed\nexport const IGNORED_KEYBOARD_CHARACTERS = [\n \"Alt\",\n \"AltGraph\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"AudioVolumeDown\",\n \"AudioVolumeMute\",\n \"AudioVolumeUp\",\n \"CapsLock\",\n \"ContextMenu\",\n \"Control\",\n \"Delete\",\n \"End\",\n \"Enter\",\n \"Escape\",\n \"F1\",\n \"F10\",\n \"F11\",\n \"F12\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"Home\",\n \"Insert\",\n \"Meta\",\n \"NumLock\",\n \"PageDown\",\n \"PageUp\",\n \"Shift\",\n \"Tab\",\n];\n","import { EventEmitter, forceUpdate } from \"@stencil/core\";\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n IcDeviceSizes,\n IcColor,\n IcBrandForegroundNoDefault,\n} from \"./types\";\n\nimport {\n IcMenuOption,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../utils/types\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\";\n\nconst DARK_MODE_THRESHOLD = 133.3505;\nconst ANYWHERE_SEARCH_POSITION = \"anywhere\";\nconst icInput = \"ic-input\";\n\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (\n theEnum: Record<string, string | number>\n): string[] => {\n const arr: string[] = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val as string;\n arr.push(str);\n }\n });\n return arr;\n};\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: string } => {\n const attributeObject: { [key: string]: string } = {};\n\n attributes.forEach((attr) => {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = value;\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param container The element where the input will be added\n * @param value The value of the input\n * @param name The name of the input\n * @param disabled If true, the input is disabled\n * @param always Add a hidden input even if the container does not use Shadow\n */\nexport const renderHiddenInput = (\n container: HTMLElement,\n value?: string | Date | null,\n name?: string,\n disabled = false,\n always = true\n): void => {\n if (name && (always || hasShadowDom(container))) {\n let input = getHiddenInputElement(container);\n\n if (!input) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value instanceof Date ? value.toISOString() : value || \"\";\n }\n};\n\nconst getHiddenInputElement = (container: HTMLElement) =>\n Array.from(\n container.querySelectorAll<HTMLInputElement>(`input.${icInput}`)\n ).filter((el) => container === el.parentElement)[0];\n\n/**\n * This method is used to add a hidden file input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param event: The event that is emitted once a file is selected.\n * @param container The element where the input will be added\n * @param multiple If true, multiple files can be selected\n * @param disabled If true, the input is disabled\n * @param accept A string of the accepted files\n * @param name The name of the input\n * @param value The value of the input\n */\nexport const renderFileHiddenInput = (\n event: EventEmitter,\n container: HTMLElement,\n multiple: boolean,\n disabled: boolean,\n accept?: string,\n name?: string,\n value?: FileList\n): void => {\n if (name !== undefined && hasShadowDom(container)) {\n let input = getHiddenInputElement(container);\n\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.type = \"file\";\n input.hidden = true;\n input.multiple = multiple;\n input.name = name;\n input.disabled = disabled;\n\n if (value) input.files = value;\n if (accept) input.accept = accept;\n\n input.onchange = () => {\n event.emit(input.files);\n };\n input.click();\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n getHiddenInputElement(container)?.remove();\n};\n\nexport const hasShadowDom = (el: HTMLElement | null | undefined): boolean =>\n !!el && !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${helperText ? getInputHelperTextID(inputId) : \"\"} ${\n validationText ? getInputValidationTextID(inputId) : \"\"\n }`.trim();\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcBrandForeground depending on the context\n */\nexport const getBrandFromContext = (\n el: Element,\n brandFromEvent: IcBrandForeground | null = null\n): IcBrandForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement?.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcBrandForegroundEnum.Default;\n } else if (\n brandFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return brandFromEvent;\n } else if (\n blockColorParent.classList.contains(\n `${parentTag}-${IcBrandForegroundEnum.Dark}`\n ) ||\n blockColorParent.classList.contains(IcBrandForegroundEnum.Dark)\n ) {\n return IcBrandForegroundEnum.Dark;\n }\n\n return IcBrandForegroundEnum.Light;\n }\n\n return IcBrandForegroundEnum.Default;\n};\n\n/**\n * Checks if the current device is a mobile or tablet device.\n * @returns {boolean} Returns true if the device is a mobile or tablet device, otherwise returns false.\n */\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator && \"userAgent\" in navigator\n ? navigator.maxTouchPoints > 0 &&\n /iPad|iPhone|iPod|Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n )\n : false;\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n button.type && hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value?: string): boolean =>\n !value || value.trim().length === 0;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop?: string): string | undefined =>\n prop !== undefined ? prop : undefined;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions = ANYWHERE_SEARCH_POSITION,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === ANYWHERE_SEARCH_POSITION\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\n/**\n * Gets count of options where only group title \"parent\" options have been removed.\n * Disabled options are included in the count.\n * @param options - array of options\n * @returns number of options not including group titles\n */\nexport const getOptionsWithoutGroupTitlesCount = (\n options: IcMenuOption[]\n): number => {\n const optionsWithoutGroupTitles: IcMenuOption[] = [];\n\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => optionsWithoutGroupTitles.push(option));\n } else {\n optionsWithoutGroupTitles.push(option);\n }\n });\n }\n\n return optionsWithoutGroupTitles.length;\n};\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-brand-text-color\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getBrandColorBrightness = (): number => {\n const themeRed = getCssProperty(\"--ic-brand-color-primary-r\");\n const themeGreen = getCssProperty(\"--ic-brand-color-primary-g\");\n const themeBlue = getCssProperty(\"--ic-brand-color-primary-b\");\n return (\n (parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000\n );\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n * @param brightness - Optional custom brightness value. Defaults to `getBrandColorBrightness`\n */\nexport const getBrandForegroundAppearance = (\n brightness = getBrandColorBrightness()\n): IcBrandForegroundNoDefault =>\n brightness > DARK_MODE_THRESHOLD\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n\nexport const getSlot = (\n element: HTMLElement | undefined,\n name: string\n): Element | null => element?.querySelector(`[slot=\"${name}\"]`) || null;\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n return slot ? getSlotElements(slot) : null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] | null => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent === null) return [slot];\n\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : slot.tagName ? [slot] : null;\n};\n\nexport const getNavItemParentDetails = ({\n parentElement,\n}: HTMLElement): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n if (parentElement) {\n switch (parentElement.tagName) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: parentElement };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: parentElement };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n }\n\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(\n getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 0\n S: Number(\n getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 576\n M: Number(\n getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 768\n L: Number(\n getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 992\n XL: Number(\n getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 1200\n UNDEFINED: 1200,\n};\n\nexport const hasValidationStatus = (\n status?: IcInformationStatusOrEmpty,\n disabled?: boolean\n): boolean => !!status && !disabled;\n\nexport const isSlotUsed = (\n { children }: HTMLElement,\n slotName: string\n): boolean =>\n Array.from(children).some((child) => child.getAttribute(\"slot\") === slotName);\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n props.forEach(({ prop, propName }) => {\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n });\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string =>\n kebabCase\n .toLowerCase()\n .split(\"-\")\n .map((word, index) =>\n index === 0\n ? word\n : `${word.substring(0, 1).toUpperCase()}${word.substring(1)}`\n )\n .join(\"\");\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nconst hex2dec = (v: string) => parseInt(v, 16);\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n const hexChars = hex\n .replace(\"#\", \"\")\n .split(\"\")\n .map((char) => char.repeat(2));\n return {\n r: hex2dec(hex.length === 4 ? hexChars[0] : hex.slice(1, 3)),\n g: hex2dec(hex.length === 4 ? hexChars[1] : hex.slice(3, 5)),\n b: hex2dec(hex.length === 4 ? hexChars[2] : hex.slice(5)),\n a: 1,\n };\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const isRGBA = rgbaStr.slice(3, 4).toLowerCase() === \"a\";\n const rgbValues = rgbaStr\n .substring(isRGBA ? 5 : 4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\")\n .map(Number);\n return {\n r: rgbValues[0],\n g: rgbValues[1],\n b: rgbValues[2],\n a: isRGBA ? rgbValues[3] : 1,\n };\n};\n\nexport const elementOverflowsX = ({\n scrollWidth,\n clientWidth,\n}: HTMLElement): boolean => scrollWidth > clientWidth;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.addEventListener(\"reset\", callbackFn);\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.removeEventListener(\"reset\", callbackFn);\n};\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\n/**\n * Removes the disabled attribute from the provided element when its value is set to false.\n * This effectively makes it null, to not confuse screen readers that cannot interpret the false value\n */\nexport const removeDisabledFalse = (\n disabled: boolean | undefined,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean =>\n window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n\nexport const isNumeric = (value: string): boolean => /^-?\\d+$/.test(value);\n\nexport async function waitForHydration(): Promise<boolean> {\n const elements = document.getElementsByTagName(\"*\");\n\n for (let i = 0; i < elements.length; i++) {\n if (elements[i].tagName.startsWith(\"IC-\")) {\n if (elements[i].classList.contains(\"hydrated\")) {\n return true;\n }\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nexport const convertToRGBA = (color: IcColor): IcColorRGBA | null => {\n const firstChar = color?.slice(0, 1).toLowerCase();\n\n if (firstChar !== \"#\" && firstChar !== \"r\") return null;\n return firstChar === \"#\" ? hexToRgba(color) : rgbaStrToObj(color);\n};\n\nexport const capitalize = (text: string): string =>\n text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const checkSlotInChildMutations = (\n addedNodes: NodeList,\n removedNodes: NodeList,\n slotName: string | string[]\n): boolean => {\n const hasSlot = (nodeList: NodeList) =>\n Array.from(nodeList).some((node) =>\n Array.isArray(slotName)\n ? slotName.some((name) => (node as Element).slot === name)\n : (node as Element).slot === slotName\n );\n return hasSlot(addedNodes) || hasSlot(removedNodes);\n};\n\nexport const isElInAGGrid = (el: HTMLElement): boolean =>\n !!el.closest(\".ag-cell\") && !!el.closest(\".ag-root\");\n\n/**\n * Checks if the component is slotted in its relevant 'group' component\n * @param component - the component to check\n */\nexport const isSlottedInGroup = (component: HTMLElement): boolean =>\n component.parentElement?.tagName === `${component.tagName}-GROUP`;\n\nexport const hasDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[]\n): boolean =>\n mutationList.some(\n ({ type, addedNodes, removedNodes }) =>\n type === \"childList\" &&\n checkSlotInChildMutations(addedNodes, removedNodes, slotNames)\n );\n\nexport const renderDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[],\n ref: any\n): void => {\n if (hasDynamicChildSlots(mutationList, slotNames)) {\n forceUpdate(ref);\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icSideNavigationCss","IcSideNavigationStyle0","SideNavigation","constructor","hostRef","this","ANIMATION_DURATION","parseInt","getCssProperty","IC_NAVIGATION_ITEM","resizeObserver","COLLAPSED_ICON_LABELS_END","COLLAPSED_ICON_LABELS_START","deviceSize","getCurrentDeviceSize","deviceSizeAppTitle","DEVICE_SIZES","S","foregroundColor","getBrandForegroundAppearance","hasSecondaryNavigation","menuExpanded","menuOpen","closeOnNavItemClick","collapsedIconLabels","disableAutoParentStyling","disableTopBarBehaviour","expanded","href","inline","shortAppTitle","static","emitSideNavigationExpanded","objDetails","icSideNavExpanded","emit","sideNavExpanded","sideNavMobile","toggleMenu","setMobileMenuAriaAttributes","arrangeSlottedNavigationItem","setToggleMenuFlyoutMenuVisibility","sideNav","_a","el","shadowRoot","querySelector","sideNavInner","bottomWrapper","menuVisibilityVisible","classList","add","setTimeout","remove","menuButton","setAttribute","setAndRemoveNoWrapAfterMenuExpanded","appTitle","toggleMenuExpanded","_b","style","setProperty","_d","_c","addEventListener","e","propertyName","displayTooltipWithExpandedLongLabel","animateCollapsedIconLabels","setExpandedButtonHeight","navItems","querySelectorAll","forEach","navItem","isNamedSlot","isSlotUsed","isUnnamedSlot","children","getAttribute","navItemSlot","iconWrapper","document","createElement","icon","badge","label","textContent","trim","icTypography","position","height","append","styleSlottedCollapsedIconLabels","styleSlottedIconLabels","marginTop","whiteSpace","overflow","textOverflow","appStatusWrapper","offsetHeight","opacity","visibility","transition","transitionHandler","type","primaryNavigationWrapper","secondaryNavigationWrapper","classToRemove","classToAdd","transitionEndHandler","paddingIconWidth","navItemLink","navItemSVG","navStyles","gap","window","getComputedStyle","iconWidth","width","paddingLeft","Object","values","reduce","prev","curr","timer","sideNavWidth","clientWidth","navigationItems","Array","from","paddingIconDelta","length","navigationItem","icTypographyScrollWidth","scrollWidth","clearTimeout","setMenuExpanded","handleNavItemClicked","setParentPaddingTop","value","parentElement","setParentPaddingLeft","renderAppTitle","isAppNameSubtitleVariant","displayShortAppTitle","isEmptyString","h","variant","undefined","resizeObserverCallback","currSize","isSmallAndDisableTopBar","topBarHeight","scrollHeight","L","M","runResizeObserver","ResizeObserver","observe","body","box","setCollapsedIconLabels","styleSlottedCollapsedIconLabel","dynamicSlottedIcTypographyComps","contains","renderTopBar","isSDevice","hasTitle","isPropDefined","Component","attrs","class","id","size","theme","monochrome","onClick","ariaOwnsId","ref","slot","innerHTML","closeIcon","menuIcon","assign","name","watchExpandedHandler","componentWillLoad","componentDidLoad","checkResizeObserver","onComponentRequiredPropUndefined","prop","propName","disconnectedCallback","disconnect","removeEventListener","brandChangeHandler","detail","mode","render","status","version","isMdDevice","isLgDevice","displayExpandBtn","topBarProps","Host","key","IcBrandForegroundEnum","Dark","hasClassificationBanner","chevronIcon"],"sources":["src/components/ic-side-navigation/ic-side-navigation.css?tag=ic-side-navigation&encapsulation=shadow","src/components/ic-side-navigation/ic-side-navigation.tsx"],"sourcesContent":["/**\n * @prop --ic-z-index-side-navigation: z-index of side navigation panel\n */\n\n:host {\n display: block;\n\n --ic-typography-color: currentcolor;\n --side-navigation-position: fixed;\n --side-navigation-position-left: 0;\n --side-navigation-position-top: var(--ic-space-xxl);\n --side-navigation-height: var(--ic-space-xxl);\n --sm-side-navigation-top-bar-height: 3.5rem;\n --sm-side-navigation-collapsed-labels-width: 6rem;\n --sm-side-navigation-expand-transition-duration: var(\n --ic-transition-duration-slow\n );\n --side-navigation-width: 20rem;\n --sm-side-navigation-bottom-bar-height: 3.5rem;\n --keyline-lighten: var(--ic-space-1px) solid var(--ic-side-navigation-keyline);\n --keyline-darken: var(--ic-space-1px) solid var(--ic-state-layer-darken-20);\n --ic-button-secondary-text-monochrome: var(--ic-brand-text-color);\n --ic-button-secondary-border-monochrome: var(--ic-brand-text-color);\n\n z-index: var(--ic-z-index-side-navigation);\n}\n\n:host > * {\n box-sizing: border-box;\n}\n\n.side-navigation {\n display: flex;\n flex-direction: column;\n width: var(--side-navigation-width);\n color: var(--ic-side-navigation-text);\n position: var(--side-navigation-position);\n top: var(--side-navigation-position-top);\n left: calc(var(--side-navigation-width) * -1);\n bottom: 0;\n background-color: var(--ic-side-navigation-background);\n z-index: var(--ic-z-index-side-navigation);\n}\n\n:host(.ic-side-navigation-inline) .side-navigation {\n position: absolute;\n height: 100%;\n}\n\n:host(.anchor-right) .side-navigation {\n right: calc(var(--side-navigation-width) * -1);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n.navigation-list {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.side-navigation-inner {\n background-color: var(--ic-side-navigation-background);\n display: flex;\n flex-direction: column;\n flex: 1 1 4rem;\n overflow: auto;\n}\n\n:host(.ic-side-navigation-inline) .side-navigation-inner {\n flex: 1;\n}\n\n:host(.xs-menu-open) .side-navigation {\n transition: left var(--ic-easing-transition-slow);\n left: 0;\n}\n\n:host(:has(.xs-menu-open, .xs-menu-close)) ::slotted(ic-navigation-item) {\n --navigation-item-side-nav-right: var(--ic-space-xl);\n}\n\n:host(.xs-menu-close) .side-navigation {\n left: calc(var(--side-navigation-width) * -1);\n transition: left var(--ic-easing-transition-slow);\n}\n\n:host(.xs-menu-close) .side-navigation > * {\n visibility: hidden;\n}\n\n:host(.anchor-right.xs-menu-open) .side-navigation {\n right: 0;\n left: auto;\n}\n\n:host(.anchor-right.xs-menu-close) .side-navigation {\n right: calc(var(--side-navigation-width) * -1);\n left: auto;\n transition: right var(--ic-easing-transition-slow);\n}\n\n.bottom-wrapper {\n border-top: var(--keyline-lighten);\n bottom: 0;\n left: 0;\n z-index: 2;\n background-color: var(--ic-side-navigation-background);\n display: flex;\n flex-direction: column;\n}\n\n:host(.ic-side-navigation-inline) .bottom-wrapper {\n position: sticky;\n}\n\n:host(.ic-side-navigation-dark) .bottom-wrapper {\n border-top: var(--keyline-darken);\n}\n\n/* Mobile Top Bar */\n\n.top-bar {\n display: flex;\n flex-direction: row;\n align-items: center;\n min-height: var(--side-navigation-height);\n padding: var(--ic-space-xs);\n box-sizing: border-box;\n background-color: var(--ic-side-navigation-background);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n border-bottom: var(--keyline-lighten);\n box-shadow: var(--ic-elevation-overlay);\n z-index: 2;\n overflow: hidden;\n visibility: visible;\n}\n\n:host(.ic-side-navigation-inline) .top-bar {\n position: absolute;\n}\n\n:host(.ic-side-navigation-dark) .top-bar {\n border-bottom: var(--keyline-darken);\n}\n\n.top-bar.dark a:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.app-title-wrapper {\n display: flex;\n margin-left: var(--ic-space-xs);\n border-left: var(--keyline-lighten);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-side-navigation-text);\n align-items: center;\n}\n\n:host(.ic-side-navigation-dark) .app-title-wrapper {\n border-left: var(--keyline-darken);\n}\n\n.app-title-wrapper ic-typography h1 {\n margin: 0;\n}\n\n@media screen and (min-width: 340px) {\n .app-title-wrapper ic-typography {\n margin-left: var(--ic-space-xs);\n }\n}\n\n:host .title-link {\n display: flex;\n align-items: center;\n transition: box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);\n text-decoration: none;\n padding: var(--ic-space-xxs);\n color: var(--ic-side-navigation-text);\n}\n\n:host .title-link:visited,\n:host .title-link:active {\n color: var(--ic-side-navigation-text);\n}\n\nslot[name=\"app-title\"]::slotted(a),\nslot[name=\"app-icon\"]::slotted(a) {\n color: var(--ic-side-navigation-text);\n outline: none;\n text-decoration: none;\n display: flex;\n}\n\nslot[name=\"app-title\"]::slotted(ic-typography),\nslot[name=\"app-title\"]::slotted(a) {\n margin-left: var(--ic-space-xs) !important;\n}\n\nslot[name=\"app-title\"]::slotted(a) {\n font: var(--ic-font-subtitle-small);\n}\n\n@media screen and (min-width: 577px) {\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(ic-typography),\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(a) {\n position: absolute;\n left: -9999px;\n opacity: 0;\n transition: opacity var(--ic-easing-transition-slow);\n }\n\n :host(.sm-collapsed) slot[name=\"app-title\"]:dir(rtl)::slotted(ic-typography),\n :host(.sm-collapsed) slot[name=\"app-title\"]:dir(rtl)::slotted(a) {\n right: -9999px;\n }\n\n :host(.sm-expanded) slot[name=\"app-title\"]::slotted(a) {\n font: var(--ic-font-h3) !important;\n font-weight: var(--ic-font-weight-semibold) !important;\n margin-left: var(--ic-space-xs) !important;\n }\n}\n\n:host .title-link:hover {\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-side-navigation-hover);\n}\n\n:host .title-link:active {\n background-color: var(--ic-side-navigation-pressed);\n}\n\n:host .title-link:focus,\n:host .title-link:focus-within {\n border-radius: var(--ic-border-radius);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n background-color: transparent;\n}\n\n:host .title-link ic-typography {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.app-title-wrapper ::slotted(svg) {\n fill: var(--ic-side-navigation-text);\n}\n\n.app-icon-container {\n display: none;\n}\n\n.button-label {\n display: flex;\n align-items: center;\n}\n\n.mobile-top-bar-menu-icon {\n display: flex;\n}\n\n.menu-button {\n width: 6.5rem;\n}\n\n.app-status-wrapper {\n inset: 0 var(--ic-space-sm) 0 3.5rem;\n width: auto;\n display: flex;\n gap: var(--ic-space-xs);\n padding: var(--ic-space-sm) 0;\n justify-content: flex-end;\n align-items: flex-end;\n pointer-events: none;\n height: fit-content;\n margin: 0 var(--ic-space-xs);\n}\n\n.app-status-wrapper .app-version {\n display: flex;\n overflow-wrap: break-word;\n padding-bottom: var(--ic-space-xxs);\n}\n\n.app-status-wrapper .app-status {\n display: flex;\n border-radius: 1rem;\n background-color: var(--ic-side-navigation-text);\n color: var(--ic-side-navigation-status-tag-text);\n padding: var(--ic-space-xxs) var(--ic-space-lg);\n min-width: 1rem;\n}\n\n.app-status-wrapper .app-status-text {\n overflow-wrap: break-word;\n}\n\n:host(.ic-side-navigation-dark) .app-status-wrapper .app-status {\n --ic-typography-color: var(--ic-architectural-white);\n}\n\n.navigation-landmark-title {\n position: absolute;\n width: var(--ic-space-1px);\n height: var(--ic-space-1px);\n padding: 0;\n margin: calc(-1 * var(--ic-space-1px));\n overflow: hidden;\n}\n\n/* Navigation Group */\n\n::slotted(ic-navigation-group) {\n --navigation-group-height: 2.75rem;\n --navigation-group-justify-content: space-between;\n --navigation-group-hover: var(--ic-side-navigation-hover);\n --navigation-group-text-hover: var(--ic-side-navigation-text);\n --navigation-item-child-height: 3.5rem;\n --navigation-item-child-active: var(--ic-action-dark-bg-pressed);\n --navigation-item-child-color: var(--ic-side-navigation-text);\n --navigation-group-expand-toggle-padding: 0.25rem;\n}\n\n/* Navigation Items */\n\n::slotted(ic-navigation-item),\n::slotted(ic-navigation-group) {\n --navigation-item-justify-content: flex-start;\n --navigation-item-min-height: 56px;\n --navigation-item-height: auto;\n}\n\n/* Toggle Chevron */\n\n.bottom-side-nav {\n position: relative;\n align-content: flex-end;\n min-height: var(--sm-side-navigation-top-bar-height);\n}\n\n.bottom-side-nav ic-divider {\n position: absolute;\n top: 0;\n}\n\n.primary-navigation {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n\n /* Hide scrollbar when required but keep functionality */\n scrollbar-width: none;\n}\n\n.primary-navigation::-webkit-scrollbar {\n display: none;\n}\n\n.primary-navigation,\n.secondary-navigation {\n overflow-x: hidden;\n}\n\n.bottom-side-nav .menu-expand-button {\n position: absolute;\n display: none;\n}\n\n.menu-visibility-visible {\n visibility: visible;\n width: 100%;\n}\n\n.app-title-show {\n min-width: 15.5rem;\n}\n\n:host(.side-display) {\n display: flex;\n flex-direction: column;\n height: 100vh;\n position: var(--side-navigation-position);\n left: 0;\n top: 0;\n bottom: 0;\n}\n\n:host(.side-display) .app-icon-container {\n height: 40px;\n display: flex;\n align-items: center;\n}\n\n:host(.side-display) .top-bar {\n --side-navigation-height: var(--sm-side-navigation-top-bar-height);\n\n position: relative;\n padding: 0;\n box-shadow: none;\n}\n\n:host(.ic-side-navigation-inline.side-display) .top-bar {\n position: sticky;\n}\n\n:host(.anchor-right.side-display) .top-bar {\n box-shadow: 0.188rem 0.188rem 0.5rem rgb(0 0 0 / 20%);\n}\n\n:host(.anchor-right.side-display) .bottom-wrapper {\n box-shadow: 0.188rem -0.188rem 0.5rem rgb(0 0 0 / 20%);\n}\n\n:host(.side-display) .side-navigation,\n:host(.side-display) .top-bar {\n width: var(--sm-side-navigation-top-bar-height);\n}\n\n:host(.sm-collapsed.side-display) {\n width: var(--sm-side-navigation-top-bar-height);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) {\n width: var(--sm-side-navigation-collapsed-labels-width);\n}\n\n:host(.sm-expanded.side-display) {\n width: var(--side-navigation-width);\n transition: width var(--ic-easing-transition-slow);\n box-shadow: var(--ic-elevation-overlay);\n}\n\n:host(.side-display) .side-navigation {\n --side-navigation-position-top: 0;\n\n flex: 1;\n position: relative;\n top: auto;\n left: auto;\n bottom: auto;\n}\n\n:host(.ic-side-navigation-inline.side-display) .side-navigation {\n position: relative;\n}\n\n:host(.anchor-right.side-display) .side-navigation {\n left: auto;\n right: 0;\n}\n\n:host(.side-display) .app-title-wrapper {\n margin-left: 0;\n border-left: none;\n padding: var(--ic-space-xs) var(--ic-space-sm);\n}\n\n:host(.side-display) .app-title-wrapper ::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host(.side-display) .app-title-wrapper ic-typography {\n font-weight: var(--ic-font-weight-semibold);\n}\n\n:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography {\n position: absolute;\n left: -9999px;\n opacity: 0;\n transition: opacity var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography:dir(rtl) {\n right: -9999px;\n}\n\n:host(.sm-expanded.side-display) ic-typography {\n position: relative;\n left: 0;\n}\n\n:host(.sm-expanded.side-display) :is(.side-navigation, .top-bar) {\n width: var(--side-navigation-width);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.side-display) :is(.side-navigation, .top-bar) {\n width: var(--sm-side-navigation-top-bar-height);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.anchor-right.sm-expanded.side-display) :is(.side-navigation, .top-bar) {\n left: auto;\n right: 0;\n}\n\n:host(.side-display) .app-status-wrapper,\n:host(.sm-collapsed.side-display) .app-status-wrapper {\n display: none;\n margin-left: 0;\n}\n\n:host(.sm-expanded.side-display) .app-status-wrapper {\n display: flex;\n max-width: 16rem;\n margin-right: calc(var(--ic-space-xxxs) + var(--ic-space-xs));\n}\n\n:host(.side-display) .bottom-side-nav {\n justify-items: flex-end;\n align-items: flex-end;\n justify-content: flex-end;\n display: flex;\n outline: none;\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button {\n padding-left: var(--ic-space-md);\n height: var(--sm-side-navigation-top-bar-height);\n width: 100%;\n color: var(--ic-side-navigation-text);\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n border: none;\n cursor: pointer;\n display: flex;\n transition: var(--ic-easing-transition-fast);\n}\n\n:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button {\n height: 100%;\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button svg {\n justify-items: flex-start;\n align-self: center;\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button:hover {\n background-color: var(--ic-side-navigation-hover);\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button: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(.sm-collapsed.side-display) .bottom-side-nav .menu-expand-button svg {\n transform: scaleX(1);\n transition: transform var(--ic-easing-transition-slow);\n}\n\n:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button svg {\n transform: scaleX(-1);\n transition: transform var(--ic-easing-transition-slow);\n align-self: flex-end;\n margin-bottom: 0.875rem;\n}\n\n:host(.anchor-right.sm-collapsed.side-display)\n .bottom-side-nav\n .menu-expand-button\n svg {\n transform: scaleX(-1);\n}\n\n:host(.anchor-right.sm-expanded.side-display)\n .bottom-side-nav\n .menu-expand-button\n svg {\n transform: scaleX(1);\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item) {\n --navigation-item-label-opacity: 1;\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item),\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group) {\n --navigation-item-label-opacity: 0;\n --navigation-item-min-height: 3.5rem;\n --navigation-item-height: 3.5rem;\n}\n\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-item),\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-group) {\n --navigation-item-label-opacity: 1;\n --navigation-item-height: auto;\n --navigation-item-min-height: 3.5rem;\n --navigation-item-width: 20rem;\n --navigation-item-side-nav-right: var(--ic-space-xl);\n --navigation-group-width: 20rem;\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group) {\n --navigation-group-title-position: absolute;\n --navigation-group-title-position-left: -9999px;\n --navigation-group-title-opacity: none;\n}\n\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-group) {\n --navigation-group-title-position: relative;\n --navigation-group-title-position-left: 0;\n --navigation-group-expand-toggle-padding: 0.25rem;\n --navigation-group-title-opacity: flex;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .side-navigation,\n:host(.sm-collapsed.collapsed-labels.side-display) .top-bar {\n width: var(--sm-side-navigation-collapsed-labels-width);\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .menu-expand-button {\n padding: 0;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .app-title-wrapper {\n width: 100%;\n justify-content: center;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display)\n ::slotted(ic-navigation-group) {\n --navigation-group-justify-content: center;\n --navigation-item-label-opacity: 1;\n --navigation-group-item-min-width: 100%;\n --navigation-group-expand-toggle-padding: 1rem;\n}\n\n:host(.collapsed-labels.side-display) .bottom-side-nav .menu-expand-button {\n justify-content: center;\n}\n\n:host(.side-display) .collapsed-icon-labels-start {\n visibility: hidden;\n opacity: 0;\n}\n\n:host(.side-display) .collapsed-icon-labels-end {\n visibility: visible;\n opacity: 1;\n transition: visibility 0s, opacity var(--ic-easing-transition-slow);\n}\n\n/* Media Queries */\n\n@media screen and (max-width: 419px) {\n .top-bar {\n height: var(--side-navigation-height);\n }\n\n .side-navigation {\n width: 100%;\n }\n}\n\n@media screen and (min-width: 340px) {\n .app-icon-container {\n display: flex;\n }\n}\n\n@media screen and (min-width: 993px) {\n :host(.side-display) {\n position: sticky;\n left: auto;\n top: 0;\n bottom: 0;\n }\n\n :host(.sm-expanded.side-display) {\n box-shadow: none;\n }\n}\n\n@media (forced-colors: active) {\n .side-navigation,\n .top-bar {\n border-right: var(--ic-border-hc);\n }\n\n .menu-expand-button {\n color: Highlight !important;\n }\n\n slot[name=\"app-icon\"]::slotted(svg) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Listen,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\n\nimport menuIcon from \"../../assets/hamburger-menu-icon.svg\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport {\n getCurrentDeviceSize,\n DEVICE_SIZES,\n checkResizeObserver,\n isSlotUsed,\n getBrandForegroundAppearance,\n getCssProperty,\n hasClassificationBanner,\n onComponentRequiredPropUndefined,\n isEmptyString,\n isPropDefined,\n} from \"../../utils/helpers\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../../utils/types\";\nimport { IcTopBar, IcExpandedDetail } from \"./ic-side-navigation.types\";\n\n/**\n * @slot app-icon - Content will be rendered adjacent to the app title at the very top of the side navigation.\n * @slot app-title - Handle routing by nesting a route in the app title.\n * @slot primary-navigation - Content will be rendered at the top of the side navigation.\n * @slot secondary-navigation - Content will be rendered at the bottom of the side navigation.\n */\n\n@Component({\n tag: \"ic-side-navigation\",\n styleUrl: \"ic-side-navigation.css\",\n shadow: true,\n})\nexport class SideNavigation {\n private ANIMATION_DURATION =\n parseInt(getCssProperty(\"--ic-transition-duration-slow\")) || 0;\n private IC_NAVIGATION_ITEM: string = \"ic-navigation-item\";\n private resizeObserver: ResizeObserver | null = null;\n private COLLAPSED_ICON_LABELS_END = \"collapsed-icon-labels-end\";\n private COLLAPSED_ICON_LABELS_START = \"collapsed-icon-labels-start\";\n private menuButton?: HTMLIcButtonElement;\n\n @Element() el: HTMLIcSideNavigationElement;\n\n @State() deviceSize: number = getCurrentDeviceSize();\n @State() deviceSizeAppTitle: number = DEVICE_SIZES.S;\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n @State() hasSecondaryNavigation: boolean = false;\n @State() menuExpanded: boolean = false;\n @State() menuOpen: boolean = false;\n\n /**\n * The app title to be displayed. This is required, unless a slotted app title link is used.\n */\n @Prop() appTitle?: string;\n\n /**\n * If `true`, the side navigation will close when a navigation item is clicked. This behaviour is only applicable on larger device sizes.\n */\n @Prop() closeOnNavItemClick?: boolean = false;\n\n /**\n * If `true`, the icon and label will appear when side navigation is collapsed.\n */\n @Prop() collapsedIconLabels?: boolean = false;\n\n /**\n * If `true`, automatic parent wrapper styling will be disabled.\n */\n @Prop() disableAutoParentStyling?: boolean = false;\n\n /**\n * If `true`, the side navigation will not display as a top bar on small devices.\n */\n @Prop() disableTopBarBehaviour?: boolean = false;\n\n /**\n * If `true`, the side navigation will display in an expanded state.\n */\n @Prop() expanded?: boolean = false;\n\n @Watch(\"expanded\")\n watchExpandedHandler(): void {\n this.toggleMenuExpanded(this.expanded!);\n }\n\n /**\n * The URL that the app title link points to.\n */\n @Prop() href?: string = \"/\";\n\n /**\n * @internal If `true`, side navigation will be contained by its parent element.\n */\n @Prop() inline?: boolean = false;\n\n /**\n * The short title of the app to be displayed at small screen sizes in place of the app title.\n */\n @Prop() shortAppTitle?: string = \"\";\n\n /**\n * If `true`, the menu expand button will be removed (PLEASE NOTE: This takes effect on screen sizes 992px and above).\n */\n @Prop() static?: boolean = false;\n\n /**\n * The status of the app to be displayed.\n */\n @Prop() status?: string;\n\n /**\n * The version of the app to be displayed.\n */\n @Prop() version?: string;\n\n /**\n * Emitted when the side navigation is collapsed and expanded.\n */\n @Event() icSideNavExpanded: EventEmitter<IcExpandedDetail>;\n\n componentWillLoad(): void {\n this.setMenuExpanded(this.expanded!);\n\n if (this.collapsedIconLabels) {\n this.setCollapsedIconLabels();\n }\n\n this.hasSecondaryNavigation = isSlotUsed(this.el, \"secondary-navigation\");\n }\n\n componentDidLoad(): void {\n this.emitSideNavigationExpanded({\n sideNavExpanded: this.menuExpanded,\n sideNavMobile:\n this.deviceSize === DEVICE_SIZES.S && !this.disableTopBarBehaviour,\n });\n\n checkResizeObserver(this.runResizeObserver);\n this.styleSlottedCollapsedIconLabel();\n this.arrangeSlottedNavigationItem(this.menuExpanded);\n this.displayTooltipWithExpandedLongLabel(this.menuExpanded);\n\n this.setExpandedButtonHeight();\n\n if (this.closeOnNavItemClick) {\n this.el.addEventListener(\n \"navItemClicked\",\n this.handleNavItemClicked as EventListener\n );\n }\n\n !isSlotUsed(this.el, \"app-title\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.appTitle, propName: \"app-title\" }],\n \"Side Navigation\"\n );\n }\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n\n this.el?.removeEventListener(\"transitionend\", this.transitionEndHandler);\n\n if (this.closeOnNavItemClick) {\n this.el.removeEventListener(\n \"navItemClicked\",\n this.handleNavItemClicked as EventListener\n );\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.foregroundColor = detail.mode;\n }\n\n private emitSideNavigationExpanded = (objDetails: {\n sideNavExpanded: boolean;\n sideNavMobile?: boolean;\n }): void => {\n this.icSideNavExpanded.emit({\n sideNavExpanded: objDetails.sideNavExpanded,\n sideNavMobile: !!objDetails.sideNavMobile,\n });\n };\n\n private toggleMenu = (): void => {\n this.menuOpen = !this.menuOpen;\n this.setMobileMenuAriaAttributes(this.menuOpen);\n\n this.arrangeSlottedNavigationItem(this.menuOpen);\n\n this.setToggleMenuFlyoutMenuVisibility(this.menuOpen);\n\n this.emitSideNavigationExpanded({\n sideNavExpanded: this.menuOpen,\n sideNavMobile: true,\n });\n };\n\n private setToggleMenuFlyoutMenuVisibility = (menuOpen: boolean) => {\n const sideNav = this.el.shadowRoot?.querySelector(\n \"#side-navigation\"\n ) as HTMLDivElement;\n const sideNavInner = sideNav.querySelector(\n \".side-navigation-inner\"\n ) as HTMLElement;\n const bottomWrapper = sideNav.querySelector(\n \".bottom-wrapper\"\n ) as HTMLElement;\n\n const menuVisibilityVisible = \"menu-visibility-visible\";\n\n if (menuOpen) {\n bottomWrapper.classList.add(menuVisibilityVisible);\n sideNavInner.classList.add(menuVisibilityVisible);\n } else {\n setTimeout(() => {\n sideNavInner.classList.remove(menuVisibilityVisible);\n bottomWrapper.classList.remove(menuVisibilityVisible);\n }, this.ANIMATION_DURATION);\n }\n };\n\n private setMobileMenuAriaAttributes = (menuOpen: boolean) => {\n if (this.menuButton) {\n this.menuButton.setAttribute(\"aria-expanded\", `${menuOpen}`);\n this.menuButton.setAttribute(\n \"aria-label\",\n `${menuOpen ? \"Close\" : \"Open\"} navigation menu`\n );\n }\n };\n\n private setAndRemoveNoWrapAfterMenuExpanded = () => {\n const appTitle =\n this.el.shadowRoot?.querySelector(\".title-link ic-typography\") ||\n this.el.querySelector(\"[slot='app-title']\");\n\n appTitle?.classList.add(\"ic-typography-no-wrap\");\n\n setTimeout(() => {\n appTitle?.classList.remove(\"ic-typography-no-wrap\");\n }, this.ANIMATION_DURATION);\n };\n\n private toggleMenuExpanded = (expanded: boolean): void => {\n if (this.deviceSize > DEVICE_SIZES.S) {\n this.menuExpanded = expanded;\n }\n\n if (this.menuExpanded) {\n this.setAndRemoveNoWrapAfterMenuExpanded();\n this.el.shadowRoot\n ?.querySelector(\".app-title-inner-wrapper\")\n ?.classList.add(\"app-title-show\");\n } else {\n this.el.style.setProperty(\"--navigation-item-width\", \"320px\");\n this.el.shadowRoot\n ?.querySelector(\".app-title-inner-wrapper\")\n ?.classList.remove(\"app-title-show\");\n\n this.el.addEventListener(\"transitionend\", (e) => {\n if (e.propertyName === \"width\") {\n this.el.style.setProperty(\"--navigation-item-width\", null);\n }\n });\n }\n\n this.arrangeSlottedNavigationItem(this.menuExpanded);\n\n this.displayTooltipWithExpandedLongLabel(this.menuExpanded);\n\n if (this.collapsedIconLabels) {\n this.animateCollapsedIconLabels();\n }\n\n this.setExpandedButtonHeight();\n this.emitSideNavigationExpanded({ sideNavExpanded: this.menuExpanded });\n };\n\n /**\n * In order to style nested slotted elements (e.g. using React Router components), this method\n * rearranges the a tag and labels and adds inline styling expand/collapsed animations as external CSS classes are not\n * do not take affect.\n * @param menuExpanded boolean - true or false depending on side navigation state\n */\n private arrangeSlottedNavigationItem = (menuExpanded?: boolean) => {\n const navItems = this.el.querySelectorAll(\"ic-navigation-item\");\n navItems.forEach((navItem) => {\n const isNamedSlot = isSlotUsed(navItem, \"navigation-item\");\n const isUnnamedSlot =\n navItem.children[0] && !navItem.children[0].getAttribute(\"slot\");\n if (isNamedSlot || isUnnamedSlot) {\n let navItemSlot;\n if (isNamedSlot) {\n navItemSlot = navItem.querySelector(\"[slot='navigation-item']\");\n } else {\n navItemSlot = navItem.children[0];\n }\n const iconWrapper = document.createElement(\"div\");\n const icon = navItemSlot?.querySelector(\"svg\");\n const badge = navItemSlot?.querySelector(\"ic-badge\");\n const label = navItem.textContent?.trim();\n const icTypography = document.createElement(\"ic-typography\");\n icTypography.classList.add(\n \"ic-typography-label\",\n \"hydrated\",\n \"navigation-item-side-nav-slotted-text\"\n );\n\n iconWrapper.style.position = \"relative\";\n iconWrapper.style.height = \"var(--ic-space-lg)\";\n\n icon && iconWrapper.append(icon);\n badge && iconWrapper.append(badge);\n\n if (label) {\n icTypography.textContent = label;\n }\n\n if (navItemSlot) {\n navItemSlot.textContent = \"\";\n navItemSlot.append(iconWrapper);\n navItemSlot.append(icTypography);\n }\n\n if (this.collapsedIconLabels) {\n this.styleSlottedCollapsedIconLabels(!!menuExpanded, icTypography);\n } else {\n this.styleSlottedIconLabels(!!menuExpanded, icTypography);\n }\n }\n });\n };\n\n private styleSlottedCollapsedIconLabels = (\n menuExpanded: boolean,\n icTypography: HTMLIcTypographyElement\n ) => {\n if (menuExpanded) {\n icTypography.style.marginTop = \"0\";\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n } else {\n icTypography.style.marginTop = \"10px\";\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n }\n };\n\n private setExpandedButtonHeight = () => {\n const appStatusWrapper = this.el.shadowRoot?.querySelector(\n \"#side-navigation > .bottom-wrapper > .bottom-side-nav > .app-status-wrapper\"\n ) as HTMLDivElement;\n\n if (appStatusWrapper.offsetHeight !== 0) {\n this.el.style.setProperty(\n \"--sm-side-navigation-bottom-bar-height\",\n `${appStatusWrapper.offsetHeight}px`\n );\n }\n };\n\n private styleSlottedIconLabels = (\n menuExpanded: boolean,\n icTypography: HTMLSpanElement\n ) => {\n if (menuExpanded) {\n icTypography.style.opacity = \"1\";\n icTypography.style.visibility = \"visible\";\n icTypography.style.transition =\n \"visibility 0s, opacity var(--ic-easing-transition-slow)\";\n } else {\n icTypography.style.opacity = \"0\";\n icTypography.style.visibility = \"hidden\";\n icTypography.style.transition =\n \"visibility 0s, opacity var(--ic-easing-transition-slow)\";\n }\n };\n\n private transitionHandler = (type: string) => {\n const primaryNavigationWrapper = this.el.shadowRoot?.querySelector(\n \".primary-navigation\"\n );\n\n const secondaryNavigationWrapper = this.el.shadowRoot?.querySelector(\n \".bottom-wrapper > .secondary-navigation\"\n );\n\n const classToRemove =\n type === \"start\"\n ? this.COLLAPSED_ICON_LABELS_END\n : this.COLLAPSED_ICON_LABELS_START;\n\n const classToAdd =\n type === \"start\"\n ? this.COLLAPSED_ICON_LABELS_START\n : this.COLLAPSED_ICON_LABELS_END;\n\n if (primaryNavigationWrapper) {\n primaryNavigationWrapper.classList.remove(classToRemove);\n primaryNavigationWrapper.classList.add(classToAdd);\n }\n\n if (secondaryNavigationWrapper) {\n secondaryNavigationWrapper.classList.remove(classToRemove);\n secondaryNavigationWrapper.classList.add(classToAdd);\n }\n };\n\n private transitionEndHandler = () => {\n this.transitionHandler(\"end\");\n };\n\n private animateCollapsedIconLabels = () => {\n this.transitionHandler(\"start\");\n this.transitionEndHandler();\n\n this.el.addEventListener(\"transitionend\", this.transitionEndHandler);\n };\n\n private paddingIconWidth = (\n navItems: HTMLIcNavigationItemElement[]\n ): number => {\n const navItemLink =\n (navItems[0].shadowRoot &&\n (navItems[0].shadowRoot.querySelector(\"ic-tooltip a\") ||\n navItems[0].shadowRoot.querySelector(\"ic-tooltip div\"))) ||\n navItems[0].querySelector(\"a\") ||\n navItems[0].querySelector(\"div\");\n const navItemSVG = navItems[0].querySelector(\"svg\");\n\n if (navItemLink && navItemSVG) {\n const navStyles = {\n gap: window.getComputedStyle(navItemLink).gap,\n iconWidth: window.getComputedStyle(navItemSVG).width,\n paddingLeft: window.getComputedStyle(navItemLink).paddingLeft,\n };\n\n return Object.values(navStyles).reduce((prev, curr) => {\n return (prev += parseInt(curr));\n }, 0);\n }\n\n return 0;\n };\n\n private displayTooltipWithExpandedLongLabel = (menuExpanded: boolean) => {\n let timer;\n\n if (menuExpanded) {\n timer = setTimeout(() => {\n const sideNavWidth = this.el.clientWidth;\n\n const navigationItems: HTMLIcNavigationItemElement[] = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n const paddingIconDelta = navigationItems.length\n ? this.paddingIconWidth(navigationItems)\n : 0;\n\n navigationItems.forEach(\n (navigationItem: HTMLIcNavigationItemElement) => {\n const icTypographyScrollWidth =\n (\n navigationItem.shadowRoot &&\n navigationItem.shadowRoot.querySelector(\n \"ic-tooltip .link ic-typography.ic-typography-label\"\n )\n )?.scrollWidth ||\n navigationItem.querySelector(\"ic-typography.ic-typography-label\")\n ?.scrollWidth;\n\n if (\n icTypographyScrollWidth &&\n icTypographyScrollWidth > sideNavWidth - paddingIconDelta\n ) {\n navigationItem.setAttribute(\"display-navigation-tooltip\", \"true\");\n }\n }\n );\n }, this.ANIMATION_DURATION);\n } else {\n clearTimeout(timer);\n\n const navigationItems: HTMLIcNavigationItemElement[] = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n navigationItems.forEach((navigationItem: HTMLIcNavigationItemElement) => {\n navigationItem.setAttribute(\"display-navigation-tooltip\", \"false\");\n });\n }\n };\n\n private setMenuExpanded = (expanded: boolean): void => {\n this.menuExpanded = expanded;\n };\n\n private handleNavItemClicked = () => {\n if (\n !this.menuOpen &&\n this.deviceSize > DEVICE_SIZES.S &&\n this.menuExpanded\n ) {\n setTimeout(() => {\n this.toggleMenuExpanded(false);\n }, 0);\n }\n };\n\n /**\n * As the mobile top bar is fixed, a padding top is required\n * to push main content down the height of the mobile top bar\n * @param value - padding-top css value\n */\n private setParentPaddingTop = (value: string) => {\n this.el.parentElement?.style.setProperty(\"padding-top\", value);\n };\n\n private setParentPaddingLeft = (value: string) => {\n this.el.parentElement?.style.setProperty(\"padding-left\", value);\n };\n\n private renderAppTitle = (isAppNameSubtitleVariant: boolean) => {\n const displayShortAppTitle =\n this.deviceSize <= DEVICE_SIZES.S && !isEmptyString(this.shortAppTitle);\n return (\n <ic-typography\n variant={\n displayShortAppTitle || isAppNameSubtitleVariant\n ? \"subtitle-small\"\n : \"h3\"\n }\n aria-label={\n displayShortAppTitle\n ? `${this.appTitle} (${this.shortAppTitle})`\n : undefined\n }\n >\n <h1>{displayShortAppTitle ? this.shortAppTitle : this.appTitle}</h1>\n </ic-typography>\n );\n };\n\n private resizeObserverCallback = (currSize: number) => {\n this.deviceSize = currSize;\n\n const isSmallAndDisableTopBar =\n currSize === DEVICE_SIZES.S && !this.disableTopBarBehaviour;\n\n if (!this.disableAutoParentStyling) {\n const topBarHeight =\n this.el.shadowRoot?.querySelector(\".top-bar\")?.scrollHeight;\n this.setParentPaddingTop(\n isSmallAndDisableTopBar ? `${topBarHeight}px` : \"0\"\n );\n if (isSmallAndDisableTopBar) this.setParentPaddingLeft(\"0\");\n if (isSmallAndDisableTopBar && this.inline) {\n this.el.parentElement?.style.setProperty(\n \"height\",\n `calc(100% - ${topBarHeight}px)`\n );\n } else if (!isSmallAndDisableTopBar) {\n this.el.parentElement?.style.setProperty(\"height\", \"100%\");\n }\n }\n\n if (!this.disableAutoParentStyling) {\n const paddingLeft = `calc(var(--ic-space-xxl) ${\n this.collapsedIconLabels ? \"* 2\" : \"+ var(--ic-space-xs)\"\n })`;\n\n if (currSize > DEVICE_SIZES.L) {\n this.setParentPaddingTop(\"0\");\n this.setParentPaddingLeft(\"0\");\n } else if (\n (currSize > DEVICE_SIZES.S || this.disableTopBarBehaviour) &&\n currSize <= DEVICE_SIZES.M &&\n this.static\n ) {\n this.setParentPaddingLeft(paddingLeft);\n } else if (\n (currSize > DEVICE_SIZES.S || this.disableTopBarBehaviour) &&\n currSize <= DEVICE_SIZES.L\n ) {\n this.setParentPaddingLeft(\n this.static && this.menuExpanded\n ? \"calc(var(--ic-space-xl) * 10)\"\n : paddingLeft\n );\n }\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.deviceSizeAppTitle = currSize;\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(document.body, { box: \"content-box\" });\n };\n\n private setCollapsedIconLabels = () => {\n const navigationItems: HTMLIcNavigationItemElement[] = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n navigationItems.forEach((navigationItem: HTMLIcNavigationItemElement) => {\n navigationItem.setAttribute(\"collapsed-icon-label\", \"true\");\n });\n };\n\n private styleSlottedCollapsedIconLabel = () => {\n const dynamicSlottedIcTypographyComps: HTMLIcTypographyElement[] =\n Array.from(\n this.el.querySelectorAll(\".navigation-item-side-nav-slotted-text\")\n );\n\n dynamicSlottedIcTypographyComps.forEach((icTypography) => {\n if (\n icTypography.parentElement?.parentElement?.classList.contains(\n \"navigation-item-side-nav-collapsed-with-label\"\n )\n ) {\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n icTypography.style.marginTop = \"10px\";\n }\n });\n };\n\n private renderTopBar = ({\n isSDevice,\n foregroundColor,\n menuOpen,\n href,\n isAppNameSubtitleVariant,\n }: IcTopBar) => {\n const hasTitle = this.appTitle !== \"\" && isPropDefined(this.appTitle);\n\n const Component = isSlotUsed(this.el, \"app-title\") ? \"div\" : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n };\n\n return (\n <div\n class={{\n \"top-bar\": true,\n [this.foregroundColor]: true,\n }}\n >\n {isSDevice && (\n <nav\n aria-labelledby=\"menu-navigation-toggle-button-landmark\"\n aria-hidden=\"false\"\n >\n <ic-button\n aria-label=\"Open navigation menu\"\n class=\"menu-button\"\n id=\"menu-button\"\n variant=\"secondary\"\n size=\"small\"\n full-width=\"true\"\n theme={\n foregroundColor == \"default\" || foregroundColor == \"light\"\n ? \"light\"\n : \"dark\"\n }\n monochrome\n onClick={this.toggleMenu}\n ariaOwnsId=\"side-navigation\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n ref={(el) => (this.menuButton = el)}\n >\n <span\n class=\"mobile-top-bar-menu-icon\"\n slot=\"left-icon\"\n innerHTML={menuOpen ? closeIcon : menuIcon}\n ></span>\n {menuOpen ? \"Close\" : \"Menu\"}\n </ic-button>\n <span\n id=\"menu-navigation-toggle-button-landmark\"\n class=\"navigation-landmark-title\"\n aria-hidden=\"true\"\n >\n Navigation menu toggle button\n </span>\n </nav>\n )}\n <div class=\"app-title-wrapper\">\n {(hasTitle || isSlotUsed(this.el, \"app-title\")) && (\n <Component {...attrs} class=\"title-link\">\n <div class=\"app-icon-container\" aria-hidden=\"true\">\n <slot name=\"app-icon\"></slot>\n </div>\n <div class=\"app-title-inner-wrapper\">\n {isSlotUsed(this.el, \"app-title\") ? (\n <slot name=\"app-title\"></slot>\n ) : (\n this.renderAppTitle(isAppNameSubtitleVariant)\n )}\n </div>\n </Component>\n )}\n </div>\n </div>\n );\n };\n\n render() {\n const {\n appTitle,\n menuOpen,\n foregroundColor,\n menuExpanded,\n href,\n status,\n version,\n collapsedIconLabels,\n inline,\n } = this;\n\n const isSDevice =\n !this.disableTopBarBehaviour && this.deviceSize === DEVICE_SIZES.S;\n const isMdDevice = this.deviceSize === DEVICE_SIZES.M;\n const isLgDevice = this.deviceSize >= DEVICE_SIZES.L;\n const isAppNameSubtitleVariant = this.deviceSizeAppTitle === DEVICE_SIZES.S;\n const displayExpandBtn =\n isMdDevice || this.disableTopBarBehaviour || (isLgDevice && !this.static);\n\n const topBarProps: IcTopBar = {\n isSDevice,\n foregroundColor,\n menuOpen,\n href: href!,\n isAppNameSubtitleVariant,\n appTitle: appTitle || \"\",\n };\n\n return (\n <Host\n class={{\n \"xs-menu-open\": menuOpen && isSDevice,\n \"xs-menu-close\": !menuOpen && isSDevice,\n \"sm-collapsed\": !isSDevice && !menuExpanded,\n \"sm-expanded\": !isSDevice && menuExpanded,\n \"side-display\":\n this.deviceSize > DEVICE_SIZES.S || !!this.disableTopBarBehaviour,\n [`ic-side-navigation-${IcBrandForegroundEnum.Dark}`]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [\"collapsed-labels\"]:\n !isSDevice && !menuExpanded && !!collapsedIconLabels,\n [\"ic-side-navigation-inline\"]: !!inline,\n }}\n >\n {isSDevice && this.renderTopBar({ ...topBarProps })}\n <div class=\"side-navigation\" id=\"side-navigation\">\n {!isSDevice && this.renderTopBar({ ...topBarProps })}\n <div class=\"side-navigation-inner\">\n {isSlotUsed(this.el, \"primary-navigation\") && (\n <nav\n class=\"primary-navigation\"\n aria-labelledby=\"primary-navigation-landmark\"\n >\n <span\n aria-hidden=\"true\"\n class=\"navigation-landmark-title\"\n id=\"primary-navigation-landmark\"\n >\n Primary\n </span>\n <ul class=\"navigation-list\">\n <slot name=\"primary-navigation\"></slot>\n </ul>\n </nav>\n )}\n </div>\n <div\n class={{\n [\"bottom-wrapper\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n {isSlotUsed(this.el, \"secondary-navigation\") && (\n <nav\n class=\"secondary-navigation\"\n aria-labelledby=\"secondary-navigation-landmark\"\n >\n <span\n aria-hidden=\"true\"\n class=\"navigation-landmark-title\"\n id=\"secondary-navigation-landmark\"\n >\n Secondary\n </span>\n <ul class=\"navigation-list\">\n <slot name=\"secondary-navigation\"></slot>\n </ul>\n </nav>\n )}\n <div class=\"bottom-side-nav\">\n {this.hasSecondaryNavigation && <ic-divider></ic-divider>}\n {displayExpandBtn && (\n <button\n class=\"menu-expand-button\"\n innerHTML={chevronIcon}\n onClick={() => this.toggleMenuExpanded(!this.menuExpanded)}\n aria-label={`${\n menuExpanded ? \"Collapse\" : \"Expand\"\n } side navigation`}\n ></button>\n )}\n <div class=\"app-status-wrapper\">\n {status !== \"\" && (\n <div\n class={{\n [\"app-status\"]: true,\n }}\n >\n <ic-typography\n aria-label=\"app tag\"\n variant=\"label-uppercase\"\n class=\"app-status-text\"\n >\n {status}\n </ic-typography>\n </div>\n )}\n {version !== \"\" && (\n <ic-typography\n variant=\"label\"\n class=\"app-version\"\n aria-label=\"app version\"\n >\n {version}\n </ic-typography>\n )}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as o,c as t,h as r,H as e}from"./p-8e4e97b4.js";import{N as s,O as i,W as a,c,g as h}from"./p-8242c24f.js";const n=class{constructor(r){o(this,r);this.brandChange=t(this,"brandChange",7);this.icThemeChange=t(this,"icThemeChange",7);this.themeClass="";this.brandColor=null;this.theme="light";this.darkModeChangeHandler=()=>{if(this.theme==="system"){this.themeClass=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"ic-theme-dark":"ic-theme-light"}else{this.themeClass=`ic-theme-${this.theme}`}this.icThemeChange.emit(this.theme)};this.checkBrandColorContrast=()=>{if(s()<i&&s()>a){console.warn(`The brand colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`)}};this.setBrandColor=()=>{const o=this.brandColor?c(this.brandColor):null;if(o){const{r:t,g:r,b:e,a:s}=o;const{style:i}=document.documentElement;i.setProperty("--ic-brand-color-primary-r",`${t}`);i.setProperty("--ic-brand-color-primary-g",`${r}`);i.setProperty("--ic-brand-color-primary-b",`${e}`);i.setProperty("--ic-brand-color-primary-a",`${s}`);this.checkBrandColorContrast();this.brandChange.emit({mode:h(),color:o})}}}watchBrandColorPropHandler(){this.setBrandColor()}watchThemePropHandler(){this.darkModeChangeHandler()}componentWillLoad(){this.darkModeChangeHandler();this.setBrandColor();window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",this.darkModeChangeHandler)}render(){const{themeClass:o}=this;return r(e,{key:"e353f7e1a95badecf478559b39cb0ecc20bd4c75",class:o},r("slot",{key:"727a7e7a3240118efbc8b00dea9ff51f80a94878"}))}static get watchers(){return{brandColor:["watchBrandColorPropHandler"],theme:["watchThemePropHandler"]}}};export{n as ic_theme};
2
- //# sourceMappingURL=p-887e00bb.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationGroupCss","IcNavigationGroupStyle0","IC_NAVIGATION_ITEM","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","NODE_NAME","NavigationGroup","constructor","hostRef","this","allGroupedNavigationItemHeights","collapsedNavItemsHeight","expandedNavItemsHeight","mouseGate","deviceSize","DEVICE_SIZES","XL","dropdownOpen","expanded","focusStyle","getBrandForegroundAppearance","inTopNavSideMenu","isSideNavExpanded","expandable","theme","sideNavExpandHandler","event","detail","sideNavExpanded","linkWrapper","navItemsHeight","setGroupedLinksElementHeight","setTimeout","topNavResizedHandler","size","_a","parentEl","customMobileBreakpoint","L","toggleExpanded","el","querySelectorAll","forEach","navigationItem","navItem","shadowRoot","querySelector","setAttribute","handleClick","ev","navigationType","toggleDropdown","handleBlur","contains","relatedTarget","hideDropdown","handleKeydown","key","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","nodeName","handleMouseEnter","addEventListener","showDropdown","renderGroupTitleText","h","id","variant","label","renderNavigationItems","class","selected","onMouseLeave","undefined","ref","height","style","setProperty","disconnectedCallback","removeEventListener","_b","componentWillLoad","getCurrentDeviceSize","navType","parent","getNavItemParentDetails","componentDidLoad","Array","from","reduce","childrenHeights","offsetHeight","childBlurHandler","handleNavigationGroupOpened","source","navItemClickHandler","brandChangeHandler","mode","setFocus","groupEl","focus","navigationGroupExpanded","emit","navigationGroupOpened","render","getExpandedClassSuffix","prop","navGroupTitleClassNames","isSideNav","isTopNav","isTopNavDesktop","ariaExpanded","Host","role","onMouseEnter","onBlur","onClick","onKeyDown","innerHTML","chevronIcon"],"sources":["src/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","src/components/ic-navigation-group/ic-navigation-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n\n --ic-typography-color: currentcolor;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-border-width) solid\n var(--ic-divider-background-monochrome);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: fit-content;\n color: var(--ic-brand-text-color);\n display: flex;\n gap: var(--ic-space-xxs);\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n text-align: left;\n box-sizing: border-box;\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-text-primary-light);\n outline: none;\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group {\n min-height: 2.5rem;\n width: 100%;\n gap: 1.25rem;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 100%;\n}\n\n:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-top-navigation-nav-group-link);\n justify-content: flex-start;\n padding: var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n min-height: 0.45em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n min-width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-top-navigation-nav-group-hover);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-top-navigation-nav-group-pressed);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n background: none;\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-top-navigation-menu-background);\n border-bottom: var(--ic-space-1px) solid var(--ic-top-navigation-menu-border);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.ic-navigation-group-expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .link,\n:host(.ic-navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.ic-navigation-group-collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group {\n min-height: var(--navigation-group-height);\n min-width: 100%;\n width: var(--navigation-group-width, auto);\n justify-content: var(--navigation-group-justify-content);\n padding: var(--ic-space-md) var(--navigation-group-expand-toggle-padding)\n var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable))\n .navigation-group {\n padding-right: var(--ic-space-md);\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:hover,\n:host(.ic-navigation-group-side-nav) .navigation-group:active,\n:host(.ic-navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable))\n .navigation-group:hover,\n:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable))\n .navigation-group:active,\n:host(.in-side-menu:not(.ic-navigation-group-expandable))\n .navigation-group:hover,\n:host(.in-side-menu:not(.ic-navigation-group-expandable))\n .navigation-group:active {\n background: none;\n cursor: auto;\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.ic-navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\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\";\nimport {\n IcNavigationExpandEventDetail,\n IcNavigationOpenEventDetail,\n} from \"./ic-navigation-group.types\";\n\nconst IC_NAVIGATION_ITEM = \"ic-navigation-item\";\nconst DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\nconst NODE_NAME = \"IC-NAVIGATION-GROUP\";\n\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItemHeights = \"\";\n private collapsedNavItemsHeight: string | null = null;\n private dropdown?: HTMLElement;\n private expandedNavItemsHeight: string | null = null;\n private groupEl?: HTMLElement;\n private mouseGate = false;\n private linkWrapper?: HTMLUListElement;\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen = false;\n @State() expanded = true;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement | null;\n @State() isSideNavExpanded = false;\n\n /**\n * If `true`, the group will be expandable when in an ic-side-navigation component, or, when in an ic-top-navigation component, in the side menu displayed at small screen sizes.\n */\n @Prop() expandable = false;\n\n /**\n * The label to display on the group.\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 * @internal Emitted when a navigation group is opened - when within an ic-top-navigation at large screen sizes.\n */\n @Event() navigationGroupOpened: EventEmitter<IcNavigationOpenEventDetail>;\n\n /**\n * @internal Emitted when a navigation group is expanded - when within an ic-top-navigation at small screen sizes.\n */\n @Event() navigationGroupExpanded: EventEmitter<IcNavigationExpandEventDetail>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\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 }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n\n if (this.navigationType === \"side\") {\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 (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint\n )\n this.inTopNavSideMenu = true;\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItemHeights = `${Array.from(\n this.el.querySelectorAll(IC_NAVIGATION_ITEM)\n ).reduce(\n (childrenHeights, { offsetHeight }) => childrenHeights + offsetHeight,\n 0\n )}px`;\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(() => {\n if (!this.linkWrapper || !this.expanded) return;\n\n if (!this.isSideNavExpanded)\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n else this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navigationGroupOpened\", { target: \"document\" })\n handleNavigationGroupOpened(event: CustomEvent): void {\n if (event.detail.source !== this.el) {\n this.hideDropdown();\n }\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.focusStyle = ev.detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.groupEl?.focus();\n }\n\n private sideNavExpandHandler = (event: CustomEvent) => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n\n if (!this.linkWrapper || !this.expanded) return;\n\n const navItemsHeight = this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight;\n\n if (navItemsHeight) {\n this.setGroupedLinksElementHeight(navItemsHeight);\n } else {\n setTimeout(() => {\n if (this.isSideNavExpanded) {\n this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n } else {\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n }\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n };\n\n private topNavResizedHandler = ({\n detail: { size },\n }: CustomEvent<{ size: number }>) => {\n if (size === this.deviceSize) return;\n\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)?.customMobileBreakpoint ||\n DEVICE_SIZES.L);\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n if (this.inTopNavSideMenu) {\n this.navigationGroupExpanded.emit({ expanded: this.dropdownOpen });\n }\n }\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n if (!this.linkWrapper) return;\n\n this.setGroupedLinksElementHeight(\n !this.expanded\n ? \"0\"\n : this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight\n );\n\n this.el.querySelectorAll(IC_NAVIGATION_ITEM).forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot?.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n navItem?.setAttribute(\"tabindex\", this.expanded ? \"0\" : \"-1\");\n });\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.navigationGroupOpened.emit({\n source: this.el,\n });\n\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n if (!this.el.contains(ev.relatedTarget as HTMLElement)) {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (key !== \"Enter\" && key !== \" \" && key !== \"Escape\") return;\n\n switch (this.navigationType) {\n case \"top\":\n if (key === \" \" || key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu) {\n this.hideDropdown();\n }\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n this.el.contains(relTarget) ||\n relTarget === this.dropdown ||\n this.el.contains(document.activeElement)\n )\n return;\n\n if (\n document.activeElement !== this.el &&\n relTarget?.nodeName === NODE_NAME &&\n this.dropdownOpen\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement | null;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === NODE_NAME && this.mouseGate) {\n this.showDropdown();\n } else if (!this.dropdownOpen && !this.mouseGate) {\n this.mouseGate = true;\n setTimeout(() => {\n if (this.mouseGate) this.showDropdown();\n }, 500);\n }\n };\n\n private renderGroupTitleText = () => (\n <ic-typography\n id=\"nav-group-title\"\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {this.label}\n </ic-typography>\n );\n\n private renderNavigationItems = () => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return (\n <div\n class={{\n [this.inTopNavSideMenu\n ? \"navigation-group-dropdown-side-menu\"\n : \"navigation-group-dropdown\"]: true,\n selected: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={\n !this.inTopNavSideMenu ? this.handleMouseLeave : undefined\n }\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n \"navigation-group-dropdown-items\": !this.inTopNavSideMenu,\n }}\n aria-labelledby=\"nav-group-title\"\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n }\n\n if (this.navigationType !== \"top\") {\n return (\n <ul ref={(el) => (this.linkWrapper = el)} class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight = (height: string | null) => {\n this.linkWrapper?.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n };\n\n render() {\n const {\n dropdownOpen,\n expanded,\n inTopNavSideMenu,\n expandable,\n theme,\n isSideNavExpanded,\n focusStyle,\n } = this;\n\n const getExpandedClassSuffix = (prop: boolean) =>\n prop ? \"expanded\" : \"collapsed\";\n\n const navGroupTitleClassNames = {\n \"navigation-group\": true,\n [focusStyle]: !inTopNavSideMenu,\n [`navigation-group-side-menu-${getExpandedClassSuffix(dropdownOpen)}`]:\n inTopNavSideMenu && expandable,\n selected: dropdownOpen && !inTopNavSideMenu,\n };\n\n const isSideNav = this.navigationType === \"side\";\n const isTopNav = this.navigationType === \"top\";\n const isTopNavDesktop = !inTopNavSideMenu && isTopNav;\n\n const ariaExpanded = (isSideNav && expanded) || (isTopNav && dropdownOpen);\n\n return (\n <Host\n class={{\n \"in-side-menu\": inTopNavSideMenu,\n \"ic-navigation-group-expandable\": expandable,\n \"ic-navigation-group-side-nav\": isSideNav,\n [`ic-navigation-group-${getExpandedClassSuffix(expanded)}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n {expandable || isTopNavDesktop ? (\n <button\n onMouseEnter={isTopNavDesktop ? this.handleMouseEnter : undefined}\n onMouseLeave={isTopNav ? this.handleMouseLeave : undefined}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n class={navGroupTitleClassNames}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${ariaExpanded}`}\n aria-haspopup={`${isTopNavDesktop}`}\n >\n {this.renderGroupTitleText()}\n {isSideNav && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n ) : (\n (!isSideNav || isSideNavExpanded) && (\n <div class={navGroupTitleClassNames}>\n {this.renderGroupTitleText()}\n </div>\n )\n )}\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as i,c as t,h as e,f as a,H as n,g as o}from"./p-8e4e97b4.js";import{A as s,D as r,g as d,e as l,z as c}from"./p-8242c24f.js";import{C as v}from"./p-3b185c32.js";import{O as h}from"./p-426ec638.js";const g='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--navigation-link-colour:var(--ic-brand-text-color)}:host(:focus-within){z-index:var(--ic-z-index-navigation-item)}svg{width:var(--ic-space-xl);fill:var(--ic-brand-text-color)}.svg{margin-left:auto}.chevron-container svg,.chevron-container .svg{width:var(--ic-space-lg);height:var(--ic-space-lg)}.chevron-container{flex-grow:1}:host(.expandable.navigation-item) .link,:host(.expandable.navigation-item) ::slotted(a){padding-right:0}:host(.navigation-item) .link,:host(.navigation-item) ::slotted(a){height:calc(100% - var(--ic-space-xxs));width:-moz-fit-content;width:fit-content;color:var(--navigation-link-colour);display:flex;align-items:center;justify-content:center;padding:0 var(--ic-space-md) var(--ic-space-xxs);text-decoration:none;transition:var(--ic-easing-transition-fast);position:relative;white-space:nowrap}:host(.navigation-item) ::slotted(a){height:100%;font:var(--ic-font-label) !important;letter-spacing:var(--ic-font-letter-spacing-0pt025) !important;padding:0 var(--ic-space-md) !important}:host(.navigation-item-selected) .link::after,:host(.navigation-item-selected) ::slotted(a.active)::after,:host(.navigation-item-top-nav) ::slotted(a.active)::after{content:"";height:0.25rem;width:100%;position:absolute;bottom:0;background-color:var(--ic-top-navigation-theme)}:host(.navigation-item-selected.navigation-item-page-header) ::slotted(a.active)::after,:host(.navigation-item-selected.navigation-item-page-header) .link::after,:host(.navigation-item.navigation-item-page-header) ::slotted(a.active)::after,:host(.navigation-item-top-nav-child) ::slotted(a.active)::after{content:none}:host(.navigation-item-side-menu-selected) .link,:host(.navigation-item-side-menu) ::slotted(a.active),:host(.navigation-item-top-nav-child) ::slotted(a.active){box-shadow:none}:host(.navigation-item) .link:hover:not(:focus){background-color:var(--ic-brand-hover);cursor:pointer}:host(.navigation-item:not(.navigation-item-top-nav-child,.navigation-item-side-menu,.navigation-item-top-nav-child-selected .navigation-item-side-menu-selected)) .focus-indicator:focus-within{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius)}:host(.navigation-item) .link:focus,:host(.navigation-item) ::slotted(a:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);outline-offset:calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2))}:host(.navigation-item-selected) .link:focus,:host(.navigation-item) ::slotted(a.active:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);outline-offset:calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2))}:host(.navigation-item) .link:active:not(:focus),:host(.navigation-item) ::slotted(a:active:not(:focus)){background-color:var(--ic-brand-active)}:host(.navigation-item-side-menu) .link,:host(.navigation-item-side-menu) ::slotted(a){min-height:2.5rem;height:auto;width:100%;box-sizing:border-box;color:var(--ic-top-navigation-nav-item);--ic-typography-color:var(--ic-top-navigation-nav-item);display:flex;align-items:center;justify-content:flex-start;text-decoration:none;text-wrap:wrap;white-space:normal;transition:box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-fast)}:host(.navigation-item-top-nav-child) ::slotted(svg),:host(.navigation-item-side-menu) ::slotted(svg),:host(.navigation-item-page-header) ::slotted(svg){fill:var(--ic-color-text-primary)}:host(.navigation-item-side-menu) ::slotted(a){font:var(--ic-font-body) !important;letter-spacing:var(--ic-font-letter-spacing-0pt005) !important;transition:box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast)}:host(.navigation-item-side-menu) .link:hover:not(:focus){background-color:var(--ic-top-navigation-nav-item-hover)}:host(.navigation-item-side-menu) ::slotted(a:hover:not(:focus)){background-color:var(--ic-top-navigation-nav-item-hover) !important}:host(.navigation-item-side-menu) .focus-indicator:focus-within{box-shadow:none}:host(.navigation-item-side-menu) .link:focus,:host(.navigation-item-side-menu) ::slotted(a:focus){box-shadow:var(--ic-border-focus-inset) !important;width:auto;border-radius:var(--ic-border-radius-inset) !important}:host(.navigation-item-side-menu-selected) .link,:host(.navigation-item-side-menu-selected) ::slotted(a){transition:box-shadow var(--ic-easing-transition-slow),\n background-color var(--ic-easing-transition-slow)}:host(.navigation-item-side-menu-selected) .link:focus,:host(.navigation-item-side-menu) ::slotted(a.active:focus),:host(.navigation-item-top-nav-child) ::slotted(a.active:focus){margin-left:var(--ic-space-xs) !important;padding-left:var(--ic-space-xs) !important}:host(.navigation-item-top-nav-child) .link,:host(.navigation-item-top-nav-child) ::slotted(a){height:2.5rem;width:-moz-fit-content;width:fit-content;min-width:9.063rem;color:var(--ic-top-navigation-nav-item);display:flex;align-items:center;justify-content:flex-start;padding:0 var(--ic-space-md) !important;text-decoration:none;position:relative;transition:box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-slow)}:host(.navigation-item-top-nav-child) ::slotted(a){font:var(--ic-font-body) !important;letter-spacing:var(--ic-font-letter-spacing-0pt005) !important}:host(.navigation-item-top-nav-child) .link:hover:not(:focus),:host(.navigation-item-top-nav-child) ::slotted(a:hover:not(:focus)){background-color:var(--ic-top-navigation-nav-item-hover) !important}:host(.navigation-item-top-nav-child) .link:focus,:host(.navigation-item-top-nav-child) ::slotted(a:focus){z-index:1;outline:var(--ic-hc-focus-outline);border-radius:var(--ic-border-radius-inset);box-shadow:var(--ic-border-focus-inset);transition:border-radius 0s, box-shadow var(--ic-transition-duration-fast)}:host(.navigation-item-top-nav-child) ::slotted(a.active:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset)}:host(.navigation-item-side-menu) .link:active:not(:focus){background-color:var(--ic-top-navigation-nav-item-pressed)}:host(.navigation-item-top-nav-child) .link:active:not(:focus),:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)){outline:var(--ic-hc-focus-outline);background-color:var(--ic-top-navigation-nav-item-pressed)}:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)),:host(.navigation-item-side-menu) ::slotted(a:active:not(:focus)){background-color:var(--ic-top-navigation-nav-item-pressed) !important}:host(.navigation-item-side-menu-selected) *,:host(.navigation-item-top-nav-child-selected) *,:host(.navigation-item-side-menu) ::slotted(a.active),:host(.navigation-item-top-nav-child) ::slotted(a.active){font-weight:700 !important}:host(.navigation-item-top-nav-child) ::slotted(a.active)::before,:host(.navigation-item-top-nav-child-selected) .link::before,:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu) ::slotted(a.active)::before,:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before{content:"";position:absolute;left:0;width:var(--ic-space-xs);height:inherit;min-height:2.5rem;background-color:var(--ic-top-navigation-nav-item-banner);transition:left 0s}:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu-selected) .link:focus::before{margin-top:var(--ic-space-xxs)}:host(.navigation-item-top-nav-child-selected) .link:focus{margin-left:var(--ic-space-xs);margin-right:calc(-1 * var(--ic-space-xs));padding-left:var(--ic-space-xs) !important}:host(.navigation-item-top-nav-child-selected) .link:focus::before{left:calc(-1 * var(--ic-space-xs));z-index:1}:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu) ::slotted(a.active)::before,:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before{z-index:1}:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before,:host(.navigation-item-top-nav-child) ::slotted(a.active:focus)::before{left:calc(-1 * var(--ic-space-xs))}:host(.navigation-item-side-menu-selected) .link::after{display:none}:host(.navigation-item-side-nav-collapsed) .link{height:100%}:host(.navigation-item-side-nav-collapsed) ::slotted(svg),:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(svg){margin:auto;pointer-events:none}:host(.navigation-item-side-nav-collapsed) .icon,:host(.navigation-item-side-nav-collapsed-with-label) .icon,:host(.navigation-item-side-nav-collapsed-with-label) ic-typography{align-items:center;padding:0;margin:auto 0;width:-moz-fit-content;width:fit-content;pointer-events:none}:host(.navigation-item-side-nav-collapsed-with-label) ic-typography{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:center}:host(.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;padding:var(--ic-space-xs) !important;gap:var(--ic-space-xxs)}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) ::slotted(a){height:auto !important;gap:0;width:auto;padding:var(--ic-space-xs) !important}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:block;text-align:center}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link ic-typography{opacity:1;min-width:-moz-min-content;min-width:min-content}:host(.navigation-item-side-nav-collapsed) svg,:host(.navigation-item-side-nav-collapsed-with-label) svg{display:none}::slotted(svg){fill:var(--ic-brand-text-color);height:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-md)}.icon{height:1.5rem;width:var(--ic-space-xxl);margin-left:calc(-1 * var(--ic-space-md));flex:0 1 0%;position:relative}.icon>::slotted(*){margin-left:var(--ic-space-md) !important;margin-right:var(--ic-space-xs)}.inline-badge{margin-left:var(--ic-space-xs)}.badge{margin-left:0}:host(.navigation-item-side-nav-collapsed) .icon>::slotted(*){margin:auto !important}:host(.navigation-item-side-nav) .icon>::slotted(*){margin-right:0}:host(.navigation-item-side-nav) .link,:host(.navigation-item-side-nav) ::slotted(a){height:var(--navigation-item-height, 4rem);min-height:var(--navigation-item-min-height);width:var(--navigation-item-width, auto);justify-content:var(--navigation-item-justify-content);display:flex;gap:var(--ic-space-xs);box-sizing:border-box;color:var(--navigation-item-child-color) !important;text-decoration:none !important;white-space:nowrap;padding:0 var(--ic-space-md);text-wrap:wrap}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a){height:var(--navigation-item-child-height);width:var(--navigation-group-width);color:var(--navigation-item-child-color) !important;display:flex;gap:0.625rem;box-sizing:border-box;min-width:0;transition:box-shadow var(--ic-easing-transition-fast);text-decoration:none !important;white-space:nowrap}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:focus,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a:focus){box-shadow:var(--ic-border-focus-dark)}:host(.navigation-item-side-nav.navigation-item-side-menu) .link:active{background-color:var(--navigation-item-child-active)}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:active,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a:active){background-color:var(--navigation-item-child-active)}:host(.navigation-item-side-nav) a.link ic-typography,:host(.navigation-item-side-nav.navigation-item-top-nav-child) a.link ic-typography,:host(.navigation-item-side-nav) div.link ic-typography,:host(.navigation-item-side-nav.navigation-item-top-nav-child) div.link ic-typography,.navigation-item-side-nav-slotted-text{opacity:var(--navigation-item-label-opacity);transition:opacity var(--ic-easing-transition-slow);white-space:wrap;text-overflow:ellipsis;overflow:hidden}:host(.navigation-item-side-nav.navigation-item-selected) .link,:host(.navigation-item-side-nav.navigation-item) ::slotted(a.active){box-shadow:inset 0.313rem 0 0 var(--ic-brand-text-color)}:host(.navigation-item-side-nav.navigation-item-selected) .link::before,:host(.navigation-item-side-nav) ::slotted(a.active)::before{content:"";display:block;position:absolute;inset:0 0 0 0.313rem;border-radius:0.688rem !important;transition:var(--ic-easing-transition-slow)}:host(.navigation-item-side-nav.navigation-item-selected) .link:focus::before,:host(.navigation-item-side-nav) ::slotted(a.active:focus)::before{box-shadow:var(--ic-border-focus-inset)}:host(:not(.navigation-item-side-nav-collapsed).navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link{opacity:var(--navigation-item-label-opacity);height:auto}:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) ::slotted(a){min-width:var(--navigation-group-item-min-width);padding:var(--ic-space-xs) !important;height:auto;gap:0}:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:block}:host(.navigation-item-side-nav.navigation-item-selected) .link::after,:host(.navigation-item-side-nav) ::slotted(a.active)::after{display:none}:host(.navigation-item-side-nav.navigation-item) .link:focus,:host(.navigation-item-side-nav.navigation-item) ::slotted(a:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background-color:transparent}:host(.navigation-item-side-nav.navigation-item-selected) .link:focus,:host(.navigation-item-side-nav) ::slotted(a.active:focus){margin:0 auto;box-shadow:inset 0.313rem 0 0 var(--ic-brand-text-color);border-radius:0}:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus){background-color:var(--ic-brand-hover) !important}:host(.navigation-item-page-header).link,:host(.navigation-item-page-header) a,:host(.navigation-item-page-header) ::slotted(a){height:2.5rem !important;color:var(--ic-color-text-primary) !important;transition:all var(--ic-easing-transition-fast) !important;box-shadow:rgba(23 89 188 / 0%) !important}:host(.navigation-item-page-header.navigation-item-selected) .link::after,:host(.navigation-item-page-header) ::slotted(a.active)::after{content:" " !important;position:absolute;bottom:0;left:0;right:0;height:var(--ic-space-xxs);background-color:var(--ic-action-default) !important}:host(.navigation-item-page-header) .link:hover,:host(.navigation-item-page-header) ::slotted(.link:hover),:host(.navigation-item-page-header) ::slotted(a:hover),:host(.navigation-item-page-header) .link:hover:not(:focus){background-color:var(--ic-action-default-bg-hover) !important;cursor:pointer}:host(.navigation-item-page-header) .link:focus,:host(.navigation-item-page-header) ::slotted(a:focus){box-shadow:var(--ic-border-focus)}:host(.navigation-item-page-header) .link:active,:host(.navigation-item-page-header) ::slotted(a:active){background-color:var(--ic-action-default-bg-pressed) !important}:host(.navigation-item-page-header.navigation-item-selected) .link:focus::after,:host(.navigation-item-page-header) ::slotted(a.active:focus)::after{border-bottom-left-radius:var(--ic-border-radius);border-bottom-right-radius:var(--ic-border-radius)}:host(.navigation-item-page-header.navigation-item-selected.with-transition) .link,:host(.navigation-item-page-header.navigation-item-selected.with-transition) ::slotted(a.active){transition:all var(--ic-easing-transition-fast),\n border-color var(--ic-transition-duration-fast)}:host(.navigation-item-page-header) ::slotted(a.active)::before,:host(.navigation-item-page-header) ::slotted(a.active:focus)::before,:host(.navigation-item-page-header.navigation-item-selected) .link:focus::before{display:none}.open-in-new-icon{flex:1}.open-in-new-icon svg{margin-top:var(--ic-space-xxs);padding-left:var(--ic-space-xs)}:host(.navigation-item-side-nav) .open-in-new-icon{margin-left:calc(-1 * var(--ic-space-xs))}:host(.navigation-item-top-nav) .open-in-new-icon svg,:host(.navigation-item-page-header) .open-in-new-icon svg,:host(.navigation-item-side-nav) .open-in-new-icon svg{height:0.875rem;width:0.875rem}:host(.navigation-item-side-menu) .open-in-new-icon svg,:host(.navigation-item-top-nav-child) .open-in-new-icon svg{height:var(--ic-space-md);width:var(--ic-space-md)}:host(.navigation-item-page-header) .open-in-new-icon svg,:host(.navigation-item-top-nav-child) .open-in-new-icon svg,:host(.navigation-item-side-menu) .open-in-new-icon svg{fill:var(--ic-color-text-primary)}@media (forced-colors: active){.open-in-new-icon svg{fill:currentcolor}}';const m=g;const p=class{constructor(n){i(this,n);this.childBlur=t(this,"childBlur",7);this.navItemClicked=t(this,"navItemClicked",7);this.isInitialRender=true;this.hostMutationObserver=null;this.ANIMATION_DURATION=parseInt(s("--ic-transition-duration-slow"))||0;this.ARIA_LABEL_STRING="aria-label";this.isInSideNav=false;this.deviceSize=r.XL;this.focusStyle=d();this.inTopNavSideMenu=false;this.isSideNavMobile=false;this.isTopNavChild=false;this.sideNavExpanded=false;this.ariaLabel="";this.collapsedIconLabel=false;this.displayNavigationTooltip=false;this.download=false;this.expandable=false;this.href="";this.selected=false;this.theme="inherit";this.displayDefaultNavigationItem=(i,t,a,n,o,s,r)=>{const d=this.isTopNavChild||this.inTopNavSideMenu?"body":"label";const l=this.expandable&&e("div",{class:{svg:true},innerHTML:v});const c=this.el.querySelector('[slot="badge"]');const g=c&&e("div",{class:c.getAttribute("position")==="inline"||this.inTopNavSideMenu?"inline-badge":"badge"},e("slot",{name:"badge"}));const m=this.el.querySelector('[slot="icon"]')&&e("div",{class:"icon"},e("slot",{name:"icon"}),this.isInSideNav&&g);return i!==""?e("a",{href:i,target:n,rel:o,hreflang:a,referrerPolicy:s,download:r!==false?r:null,class:"link",ref:i=>this.itemEl=i,part:"link","aria-label":this.ariaLabel?this.ariaLabel:null},m,e("ic-typography",{variant:d},t),n==="_blank"&&e("span",{class:"open-in-new-icon",innerHTML:h}),g,e("div",{class:"chevron-container"},l)):e("div",{tabindex:"0",class:"link",ref:i=>this.itemEl=i},m,e("ic-typography",{variant:d},t),l,g)};this.topNavResizedHandler=({detail:i})=>{var t;const{size:e}=i;if(e!==this.deviceSize){this.deviceSize=e;this.inTopNavSideMenu=e<=(((t=this.parentEl)===null||t===void 0?void 0:t.customMobileBreakpoint)||r.L)}};this.sideNavExpandHandler=({detail:i})=>{const{sideNavExpanded:t,sideNavMobile:e}=i;this.sideNavExpanded=t;this.isSideNavMobile=e;this.sideNavToggleTooltip(!t&&!e)};this.handleBlur=({relatedTarget:i})=>{if(i===null||i.tagName!=="IC-NAVIGATION-ITEM"){this.childBlur.emit()}};this.handleClick=i=>{if(i.type==="click"||i.type==="keydown"&&(i.key==="Enter"||i.key===" ")){this.navItemClicked.emit()}};this.hostMutationCallback=i=>{let t=false;i.forEach((({attributeName:i})=>{if(i){const e=this.el.getAttribute(i);if(e&&i===this.ARIA_LABEL_STRING){this.ariaLabel=e;t=true}}}));if(t){a(this)}};this.generateTooltipLabel=()=>{var i;if(this.label){return this.label}if(this.navigationSlot){return this.navigationSlot.textContent||""}return((i=this.el.children[0])===null||i===void 0?void 0:i.textContent)||""};this.renderNavigationItemContent=()=>{if(!this.label&&!this.navigationSlot)return e("slot",null);return this.label?this.displayDefaultNavigationItem(this.href,this.label,this.hreflang,this.target,this.rel,this.referrerpolicy,this.download):e("slot",{name:"navigation-item"})};this.sideNavToggleTooltip=i=>{var t;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-tooltip");const a="tooltip-navigation-item-side-nav-collapsed";let n;if(!e)return;if(i){e.displayTooltip(false);n=setTimeout((()=>{e.classList.add(a)}),this.ANIMATION_DURATION)}else{clearTimeout(n);e.classList.remove(a)}}}navigationTypeChangeHandler(){this.isInSideNav=this.navigationType==="side"}disconnectedCallback(){var i,t,e;if(this.isInSideNav){(i=this.parentEl)===null||i===void 0?void 0:i.removeEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icTopNavResized",this.topNavResizedHandler)}(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}componentWillLoad(){var i,t,e,a,n,o;const{navType:s,parent:r}=c(this.el);this.navigationType=s;this.isInSideNav=this.navigationType==="side";this.parentEl=r;this.deviceSize=l();this.sideNavExpanded=((i=this.parentEl)===null||i===void 0?void 0:i.classList.contains("sm-expanded"))||((t=this.parentEl)===null||t===void 0?void 0:t.classList.contains("xs-menu-open"))||false;if(this.isInSideNav){(e=this.parentEl)===null||e===void 0?void 0:e.addEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(a=this.parentEl)===null||a===void 0?void 0:a.addEventListener("icTopNavResized",this.topNavResizedHandler);if(((n=this.el.parentElement)===null||n===void 0?void 0:n.tagName)==="IC-NAVIGATION-GROUP")this.isTopNavChild=true;if(this.deviceSize<=this.parentEl.customMobileBreakpoint)this.inTopNavSideMenu=true}this.navigationSlot=this.el.querySelector('[slot="navigation-item"]');if(this.navigationSlot){this.navigationSlot.ariaLabel=((o=this.navigationSlot.textContent)===null||o===void 0?void 0:o.trim())||null}if(this.el.hasAttribute(this.ARIA_LABEL_STRING)){this.ariaLabel=this.el.getAttribute(this.ARIA_LABEL_STRING)||""}}componentDidLoad(){this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true})}componentDidUpdate(){this.isInitialRender=false}brandChangeHandler({detail:i}){this.focusStyle=i.mode}async setFocus(){var i;this.itemEl?this.itemEl.focus():(i=this.el.querySelector("a"))===null||i===void 0?void 0:i.focus()}render(){const{inTopNavSideMenu:i,isTopNavChild:t,selected:a,navigationType:o,focusStyle:s,isInitialRender:r,sideNavExpanded:d,displayNavigationTooltip:l,collapsedIconLabel:c,isSideNavMobile:v,expandable:h,isInSideNav:g,theme:m}=this;const p=t&&!i;return e(n,{key:"a46e99d4929b5257bd6b1fecabfae154e896d1a6",class:{"navigation-item":true,"navigation-item-selected":!t&&a,"navigation-item-top-nav":!i&&o==="top","navigation-item-top-nav-child":p,"navigation-item-top-nav-child-selected":p&&a,"navigation-item-side-menu":i,"navigation-item-side-menu-selected":i&&a,"navigation-item-page-header":o==="page-header","navigation-item-side-nav":g,"navigation-item-side-nav-collapsed":(!d||l)&&g,"navigation-item-side-nav-collapsed-with-label":!d&&g&&c&&!v,"with-transition":!r,expandable:h,[s]:t?g:!i,[`ic-theme-${m}`]:m!=="inherit"},onBlur:p?this.handleBlur:null,onClick:this.handleClick,onKeyDown:this.handleClick,"aria-current":a?"page":null,role:"listitem"},e("ic-tooltip",{key:"ace34ef496173488d3957ef6e09e7dd6b8804ca1",label:this.generateTooltipLabel(),target:"navigation-item",placement:"right",class:{"tooltip-navigation-item":true,"tooltip-navigation-item-side-nav-collapsed":l&&g,"tooltip-long-label-navigation-item-side-nav-expanded":this.el.hasAttribute("[display-navigation-tooltip = 'true']")}},this.renderNavigationItemContent()))}static get delegatesFocus(){return true}get el(){return o(this)}static get watchers(){return{navigationType:["navigationTypeChangeHandler"]}}};p.style=m;export{p as ic_navigation_item};
2
- //# sourceMappingURL=p-bdcc79dd.entry.js.map
@@ -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","getAttribute","name","IconComponent","referrerPolicy","ref","itemEl","part","OpenInNew","tabindex","topNavResizedHandler","detail","size","_a","parentEl","customMobileBreakpoint","L","sideNavExpandHandler","sideNavMobile","sideNavToggleTooltip","handleBlur","relatedTarget","tagName","childBlur","emit","handleClick","event","type","key","navItemClicked","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","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","onBlur","onClick","onKeyDown","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\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-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: fit-content;\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\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-side-nav.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-brand-hover) !important;\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\n class={\n slottedBadgeEl.getAttribute(\"position\") === \"inline\" ||\n this.inTopNavSideMenu\n ? \"inline-badge\"\n : \"badge\"\n }\n >\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 = (event: MouseEvent | KeyboardEvent) => {\n if (\n event.type === \"click\" ||\n (event.type === \"keydown\" &&\n ((event as KeyboardEvent).key === \"Enter\" ||\n (event as KeyboardEvent).key === \" \"))\n ) {\n this.navItemClicked.emit();\n }\n };\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 onKeyDown={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,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-8e4e97b4.js";import{t as o,r as n,f as r,b as l,q as h}from"./p-8242c24f.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--ic-input-label-text-color:var(--ic-radio-button-input-field-label);--ic-input-label-helper-text-color:var(\n --ic-radio-button-input-field-subtitle\n );--ic-input-validation-status-text-color:var(--ic-radio-button-state-text);--ic-input-validation-error:var(--ic-radio-button-state-icon-error)}ic-input-label.error{--ic-input-label-text-color:var(--ic-radio-button-input-field-label-error)}ic-input-label.disabled{--ic-input-label-text-color:var(\n --ic-radio-button-input-field-label-disabled\n );--ic-input-label-helper-text-color:var(\n --ic-radio-button-input-field-subtitle-disabled\n )}ic-input-validation{margin-top:var(--ic-space-sm)}:host(.ic-radio-group-small) ic-input-validation{margin-top:calc(var(--ic-space-sm) / 2)}ic-input-label ic-typography{margin-bottom:var(--ic-space-sm)}:host(.ic-radio-group-small) ic-input-label ic-typography{margin-bottom:calc(var(--ic-space-sm) / 2)}:host .radio-buttons-container{display:flex;flex-direction:column;gap:var(--ic-space-xxs)}:host(.ic-radio-group-small) .radio-buttons-container{gap:var(--ic-space-xxxs)}:host .radio-buttons-container.horizontal{display:flex;flex-direction:row;gap:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-radio-group-small) .radio-buttons-container.horizontal{gap:var(--ic-space-xl)}';const c=d;const p=class{constructor(e){t(this,e);this.icChange=i(this,"icChange",7);this.resizeObserver=null;this.ADDITIONAL_FIELD="additional-field";this.RADIO_HORIZONTAL="horizontal";this.RADIO_VERTICAL="vertical";this.checkedValue="";this.selectedChild=-1;this.disabled=false;this.hideLabel=false;this.orientation="vertical";this.required=false;this.size="medium";this.validationStatus="";this.validationText="";this.theme="inherit";this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.checkOrientation()}));this.resizeObserver.observe(this.el)};this.handleKeyDown=t=>{const i=Array.from(this.el.querySelectorAll('ic-text-field[slot="additional-field"]'));const e=document.activeElement;if(i.length>0&&this.radioOptions.map((t=>o(t,this.ADDITIONAL_FIELD)))&&i.map((t=>t==e))){return}t.stopPropagation();switch(t.key){case"ArrowDown":case"ArrowRight":this.radioOptions[this.getNextItemToSelect(this.selectedChild,true)].click();t.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.radioOptions[this.getNextItemToSelect(this.selectedChild,false)].click();t.preventDefault()}};this.getNextItemToSelect=(t,i)=>{const e=this.radioOptions.length-1;if(t<1){t=0}let s=i?t+1:t-1;if(s<0){s=e}else if(s>e){s=0}if(this.radioOptions[s].disabled){s=this.getNextItemToSelect(s,i)}return s};this.addSlotChangeListener=()=>{var t;(t=this.radioContainer)===null||t===void 0?void 0:t.addEventListener("slotchange",this.setRadioOptions)};this.setFirstRadioOptionTabIndex=t=>{this.radioOptions[0].setTabIndex(t)};this.setRadioOptions=()=>{this.selectedChild=-1;this.checkedValue="";this.radioOptions=Array.from(this.el.children).filter((t=>t.tagName==="IC-RADIO-OPTION"));if(this.radioOptions.length>0){this.radioOptions.forEach(((t,i)=>{if(!t.selected){t.selected=this.checkedValue===t.value}t.name=this.name;t.groupLabel=this.label;if(t.selected){this.selectedChild=i;this.checkedValue=t.value}if(this.disabled){t.disabled=true}}));this.setFirstRadioOptionTabIndex(this.selectedChild>0?-1:0);if(this.initialOrientation===this.RADIO_HORIZONTAL&&this.radioOptions!==undefined&&(this.radioOptions.length>2||this.radioOptions.length===2&&(o(this.radioOptions[0],this.ADDITIONAL_FIELD)||o(this.radioOptions[1],this.ADDITIONAL_FIELD)))){this.currentOrientation=this.RADIO_VERTICAL}}}}watchDisabledHandler(t){this.radioOptions.forEach((i=>i.disabled=t));n(this.disabled,this.el)}orientationChangeHandler(){this.initialOrientation=this.orientation;this.checkOrientation()}watchThemeHandler(t){this.radioOptions.forEach((i=>i.theme=t))}disconnectedCallback(){var t,i;(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect();(i=this.radioContainer)===null||i===void 0?void 0:i.removeEventListener("slotchange",this.setRadioOptions)}componentWillLoad(){n(this.disabled,this.el);this.orientationChangeHandler();this.currentOrientation=this.initialOrientation}componentDidLoad(){this.setRadioOptions();r(this.runResizeObserver);this.addSlotChangeListener();l([{prop:this.label,propName:"label"},{prop:this.name,propName:"name"}],"Radio Group");this.watchThemeHandler(this.theme)}selectHandler({detail:t,target:i}){var e;const s=i;if(s.parentElement===this.el){this.checkedValue=t.value;this.icChange.emit({value:this.checkedValue,selectedOption:{radio:s,textFieldValue:(e=s===null||s===void 0?void 0:s.querySelector("ic-text-field"))===null||e===void 0?void 0:e.value}});if(this.radioOptions!==undefined){this.radioOptions.forEach(((t,i)=>{t.selected=s===t;if(t.selected){this.selectedChild=i}}));this.setFirstRadioOptionTabIndex(this.selectedChild>0?-1:0)}}}changeHandler(){var t;const i=(t=this.radioOptions)===null||t===void 0?void 0:t.findIndex((t=>t.selected));if(i<0){this.setFirstRadioOptionTabIndex(0);this.selectedChild=i}}checkOrientation(){if(this.initialOrientation===this.RADIO_HORIZONTAL){let t=0;if(Array.isArray(this.radioOptions)&&this.radioOptions.length>0){this.radioOptions.forEach((({clientWidth:i},e,s)=>{t+=i;if(e<s.length-1)t+=40}))}else{t=0}if(this.initialOrientation==this.RADIO_HORIZONTAL){if(this.radioOptions!==undefined&&(this.radioOptions.length>2||this.radioOptions.length===2&&(o(this.radioOptions[0],this.ADDITIONAL_FIELD)||o(this.radioOptions[1],this.ADDITIONAL_FIELD)))){this.currentOrientation=this.RADIO_VERTICAL}else{if(this.radioContainer){if(t>=this.radioContainer.clientWidth){this.currentOrientation=this.RADIO_VERTICAL}else if(t<this.radioContainer.clientWidth){this.currentOrientation=this.RADIO_HORIZONTAL}}}}}}render(){const{currentOrientation:t,disabled:i,handleKeyDown:a,helperText:o,hideLabel:n,label:r,required:l,size:d,validationStatus:c,validationText:p,theme:b}=this;return e(s,{key:"820e82c681a22e98737769e9571cbe75d2223956",onKeyDown:a,class:{"ic-radio-group-small":d==="small",[`ic-theme-${b}`]:b!=="inherit"}},e("div",{key:"a95fd7bd0138f04cd3cf0b1e75df29183792d8cc",role:"radiogroup","aria-label":`${r}${l?", required":""}`},!n&&e("ic-input-label",{key:"484c655cfd75c5994c3c5ee1b1e70aed491ad361",class:{[`${c}`]:true,["disabled"]:!!i},label:r,helperText:o,required:l,disabled:i}),e("div",{key:"eed17f3169436eb1f8b672ecfdd51759443d5f1c",class:{"radio-buttons-container":true,horizontal:t===this.RADIO_HORIZONTAL},ref:t=>this.radioContainer=t},e("slot",{key:"878666c0c36d6456ed072ee0eddc6683b98ef4a5"}))),h(c,i)&&e("ic-input-validation",{key:"79458eb93662029a89c31bb26b5174c2fd70c3af",ariaLiveMode:"polite",status:c,message:p}))}get el(){return a(this)}static get watchers(){return{disabled:["watchDisabledHandler"],orientation:["orientationChangeHandler"],theme:["watchThemeHandler"]}}};p.style=c;export{p as ic_radio_group};
2
- //# sourceMappingURL=p-c59fd23e.entry.js.map