@ukic/web-components 3.4.0 → 3.6.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 (542) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-fc4016d2.js → helpers-8217daf4.js} +42 -32
  3. package/dist/cjs/helpers-8217daf4.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 +8 -8
  7. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-badge.cjs.entry.js +13 -4
  10. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +143 -148
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -5
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-checkbox.cjs.entry.js +9 -8
  19. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  23. package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
  24. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  27. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-footer-link.cjs.entry.js +4 -4
  29. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +19 -14
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +36 -13
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +3 -3
  38. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js +40 -40
  42. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js +7 -4
  44. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js +5 -8
  46. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  48. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  49. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js +16 -11
  52. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
  54. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  56. package/dist/cjs/ic-search-bar.cjs.entry.js +29 -13
  57. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-select.cjs.entry.js +9 -9
  60. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js +16 -17
  62. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  65. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  66. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  67. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  68. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  69. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  72. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-text-field.cjs.entry.js +9 -9
  75. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  79. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  80. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  81. package/dist/cjs/ic-top-navigation.cjs.entry.js +15 -9
  82. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  84. package/dist/cjs/loader.cjs.js +1 -1
  85. package/dist/collection/ag-theme-icds.css +24 -4
  86. package/dist/collection/components/ic-alert/ic-alert.js +7 -7
  87. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  88. package/dist/collection/components/ic-badge/ic-badge.js +12 -3
  89. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  90. package/dist/collection/components/ic-button/ic-button.css +8 -0
  91. package/dist/collection/components/ic-button/ic-button.js +3 -3
  92. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  93. package/dist/collection/components/ic-button/ic-button.stories.js +13 -5
  94. package/dist/collection/components/ic-checkbox/ic-checkbox.css +4 -1
  95. package/dist/collection/components/ic-checkbox/ic-checkbox.js +7 -6
  96. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  97. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +21 -2
  98. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +6 -3
  99. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  100. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +22 -0
  101. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  102. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  103. package/dist/collection/components/ic-dialog/ic-dialog.js +2 -2
  104. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  105. package/dist/collection/components/ic-dialog/ic-dialog.stories.js +39 -30
  106. package/dist/collection/components/ic-divider/ic-divider.stories.js +3 -3
  107. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  108. package/dist/collection/components/ic-footer/ic-footer.stories.js +1 -1
  109. package/dist/collection/components/ic-footer-link/ic-footer-link.css +1 -1
  110. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  111. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  112. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  113. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  114. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  115. package/dist/collection/components/ic-input-label/ic-input-label.css +3 -2
  116. package/dist/collection/components/ic-input-label/ic-input-label.js +31 -8
  117. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  118. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  119. package/dist/collection/components/ic-link/ic-link.css +6 -2
  120. package/dist/collection/components/ic-link/ic-link.js +1 -1
  121. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +3 -3
  122. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +208 -214
  123. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  124. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +5 -5
  125. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
  126. package/dist/collection/components/ic-menu/ic-menu.js +56 -10
  127. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  128. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  129. package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +8 -0
  130. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +53 -47
  131. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  132. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +26 -4
  133. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  134. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +7 -6
  135. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -6
  136. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  137. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  138. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  139. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  140. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  141. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +0 -1
  142. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +57 -11
  143. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  144. package/dist/collection/components/ic-radio-group/ic-radio-group.css +10 -2
  145. package/dist/collection/components/ic-radio-group/ic-radio-group.js +7 -4
  146. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  147. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +22 -0
  148. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  149. package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
  150. package/dist/collection/components/ic-search-bar/ic-search-bar.js +53 -11
  151. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  152. package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +20 -10
  153. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  154. package/dist/collection/components/ic-select/ic-select.css +2 -2
  155. package/dist/collection/components/ic-select/ic-select.js +8 -7
  156. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  157. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +21 -13
  158. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -13
  159. package/dist/collection/components/ic-select/ic-select_(single).stories.js +17 -9
  160. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +15 -16
  161. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  162. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +143 -0
  163. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  164. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  165. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  166. package/dist/collection/components/ic-step/ic-step.js +13 -13
  167. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  168. package/dist/collection/components/ic-switch/ic-switch.css +5 -11
  169. package/dist/collection/components/ic-switch/ic-switch.js +5 -4
  170. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  171. package/dist/collection/components/ic-switch/ic-switch.stories.js +8 -1
  172. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  173. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  174. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  175. package/dist/collection/components/ic-text-field/ic-text-field.css +1 -1
  176. package/dist/collection/components/ic-text-field/ic-text-field.js +8 -7
  177. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  178. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +12 -1
  179. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  180. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  181. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  182. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  183. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  184. package/dist/collection/components/ic-tooltip/ic-tooltip.js +11 -2
  185. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  186. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +33 -0
  187. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +1 -0
  188. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +13 -7
  189. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  190. package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +19 -2
  191. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  192. package/dist/collection/patterns/z-index.stories.js +2 -1
  193. package/dist/collection/utils/constants.js +1 -1
  194. package/dist/collection/utils/constants.js.map +1 -1
  195. package/dist/collection/utils/helpers.js +39 -30
  196. package/dist/collection/utils/helpers.js.map +1 -1
  197. package/dist/components/helpers.js +41 -32
  198. package/dist/components/helpers.js.map +1 -1
  199. package/dist/components/ic-alert.js +7 -7
  200. package/dist/components/ic-alert.js.map +1 -1
  201. package/dist/components/ic-badge.js +12 -3
  202. package/dist/components/ic-badge.js.map +1 -1
  203. package/dist/components/ic-button2.js +4 -4
  204. package/dist/components/ic-button2.js.map +1 -1
  205. package/dist/components/ic-checkbox-group.js +4 -4
  206. package/dist/components/ic-checkbox-group.js.map +1 -1
  207. package/dist/components/ic-checkbox.js +8 -7
  208. package/dist/components/ic-checkbox.js.map +1 -1
  209. package/dist/components/ic-data-list.js +2 -2
  210. package/dist/components/ic-data-row.js +2 -2
  211. package/dist/components/ic-dialog.js +2 -2
  212. package/dist/components/ic-dialog.js.map +1 -1
  213. package/dist/components/ic-empty-state.js +2 -2
  214. package/dist/components/ic-footer-link.js +3 -3
  215. package/dist/components/ic-footer-link.js.map +1 -1
  216. package/dist/components/ic-hero.js +4 -4
  217. package/dist/components/ic-horizontal-scroll2.js +5 -5
  218. package/dist/components/ic-input-component-container2.js +3 -3
  219. package/dist/components/ic-input-container2.js +2 -2
  220. package/dist/components/ic-input-label2.js +33 -10
  221. package/dist/components/ic-input-label2.js.map +1 -1
  222. package/dist/components/ic-input-validation2.js +3 -3
  223. package/dist/components/ic-link2.js +2 -2
  224. package/dist/components/ic-link2.js.map +1 -1
  225. package/dist/components/ic-loading-indicator2.js +136 -145
  226. package/dist/components/ic-loading-indicator2.js.map +1 -1
  227. package/dist/components/ic-menu-group.js +1 -1
  228. package/dist/components/ic-menu2.js +16 -9
  229. package/dist/components/ic-menu2.js.map +1 -1
  230. package/dist/components/ic-navigation-button.js +43 -43
  231. package/dist/components/ic-navigation-button.js.map +1 -1
  232. package/dist/components/ic-navigation-group.js +8 -5
  233. package/dist/components/ic-navigation-group.js.map +1 -1
  234. package/dist/components/ic-navigation-item.js +5 -8
  235. package/dist/components/ic-navigation-item.js.map +1 -1
  236. package/dist/components/ic-navigation-menu2.js +5 -5
  237. package/dist/components/ic-page-header.js +6 -6
  238. package/dist/components/ic-pagination-item2.js +2 -2
  239. package/dist/components/ic-pagination.js +4 -4
  240. package/dist/components/ic-popover-menu.js +18 -11
  241. package/dist/components/ic-popover-menu.js.map +1 -1
  242. package/dist/components/ic-radio-group.js +5 -5
  243. package/dist/components/ic-radio-group.js.map +1 -1
  244. package/dist/components/ic-radio-option.js +4 -4
  245. package/dist/components/ic-search-bar.js +32 -13
  246. package/dist/components/ic-search-bar.js.map +1 -1
  247. package/dist/components/ic-section-container2.js +2 -2
  248. package/dist/components/ic-select.js +9 -9
  249. package/dist/components/ic-select.js.map +1 -1
  250. package/dist/components/ic-side-navigation.js +16 -17
  251. package/dist/components/ic-side-navigation.js.map +1 -1
  252. package/dist/components/ic-skeleton.js +2 -2
  253. package/dist/components/ic-skip-link.js +2 -2
  254. package/dist/components/ic-status-tag.js +2 -2
  255. package/dist/components/ic-step.js +13 -13
  256. package/dist/components/ic-stepper.js +2 -2
  257. package/dist/components/ic-switch.js +5 -5
  258. package/dist/components/ic-switch.js.map +1 -1
  259. package/dist/components/ic-tab-context.js +1 -1
  260. package/dist/components/ic-tab-group.js +2 -2
  261. package/dist/components/ic-tab-panel.js +2 -2
  262. package/dist/components/ic-text-field.js +9 -9
  263. package/dist/components/ic-text-field.js.map +1 -1
  264. package/dist/components/ic-theme.js +2 -2
  265. package/dist/components/ic-toast-region.js +1 -1
  266. package/dist/components/ic-toast.js +4 -4
  267. package/dist/components/ic-toggle-button-group.js +2 -2
  268. package/dist/components/ic-toggle-button.js +3 -3
  269. package/dist/components/ic-tooltip2.js +12 -4
  270. package/dist/components/ic-tooltip2.js.map +1 -1
  271. package/dist/components/ic-top-navigation.js +15 -9
  272. package/dist/components/ic-top-navigation.js.map +1 -1
  273. package/dist/components/ic-typography2.js +2 -2
  274. package/dist/core/ag-theme-icds.css +24 -4
  275. package/dist/core/core.css +67 -49
  276. package/dist/core/core.esm.js +1 -1
  277. package/dist/core/core.esm.js.map +1 -1
  278. package/dist/core/{p-2c371198.entry.js → p-0179fbd3.entry.js} +2 -2
  279. package/dist/core/{p-d8ce39ac.entry.js → p-0549305b.entry.js} +2 -2
  280. package/dist/core/p-056be0df.entry.js +2 -0
  281. package/dist/core/p-056be0df.entry.js.map +1 -0
  282. package/dist/core/{p-56fb0298.entry.js → p-06b0d0f6.entry.js} +2 -2
  283. package/dist/core/{p-fa38ad2e.entry.js → p-06e80441.entry.js} +2 -2
  284. package/dist/core/{p-aad2abbf.entry.js → p-08567369.entry.js} +2 -2
  285. package/dist/core/p-08567369.entry.js.map +1 -0
  286. package/dist/core/{p-c5ffe2cf.entry.js → p-0f86ea09.entry.js} +2 -2
  287. package/dist/core/{p-56e0de32.entry.js → p-29468171.entry.js} +2 -2
  288. package/dist/core/{p-9c47521d.entry.js → p-2ec0d11c.entry.js} +2 -2
  289. package/dist/core/{p-9a6dc8b1.entry.js → p-3194e46c.entry.js} +2 -2
  290. package/dist/core/{p-dee21f6d.entry.js → p-3448c713.entry.js} +2 -2
  291. package/dist/core/p-421b5f2d.entry.js +2 -0
  292. package/dist/core/p-421b5f2d.entry.js.map +1 -0
  293. package/dist/core/{p-cfa9ed7d.entry.js → p-4301e11e.entry.js} +2 -2
  294. package/dist/core/{p-1d254b71.entry.js → p-43b98687.entry.js} +2 -2
  295. package/dist/core/{p-1d254b71.entry.js.map → p-43b98687.entry.js.map} +1 -1
  296. package/dist/core/{p-87fa5add.entry.js → p-4935b899.entry.js} +2 -2
  297. package/dist/core/p-4935b899.entry.js.map +1 -0
  298. package/dist/core/p-4b8bfb59.entry.js +2 -0
  299. package/dist/core/p-4b8bfb59.entry.js.map +1 -0
  300. package/dist/core/{p-a17499ff.entry.js → p-4cd83bfe.entry.js} +2 -2
  301. package/dist/core/{p-6eea869b.entry.js → p-50d13439.entry.js} +2 -2
  302. package/dist/core/p-554c555f.entry.js +2 -0
  303. package/dist/core/p-554c555f.entry.js.map +1 -0
  304. package/dist/core/p-57309502.entry.js +2 -0
  305. package/dist/core/p-57309502.entry.js.map +1 -0
  306. package/dist/core/{p-d82b27df.entry.js → p-5fb58cc8.entry.js} +2 -2
  307. package/dist/core/p-627f7172.entry.js +2 -0
  308. package/dist/core/p-627f7172.entry.js.map +1 -0
  309. package/dist/core/{p-d4903dcd.entry.js → p-6dd73165.entry.js} +2 -2
  310. package/dist/core/p-70abcb2b.js +2 -0
  311. package/dist/core/p-70abcb2b.js.map +1 -0
  312. package/dist/core/p-773ded36.entry.js +2 -0
  313. package/dist/core/p-773ded36.entry.js.map +1 -0
  314. package/dist/core/{p-c8cf1ad5.entry.js → p-77750efc.entry.js} +2 -2
  315. package/dist/core/p-7b9e10a0.entry.js +2 -0
  316. package/dist/core/p-7b9e10a0.entry.js.map +1 -0
  317. package/dist/core/{p-26dfc4db.entry.js → p-7cada631.entry.js} +2 -2
  318. package/dist/core/p-7cada631.entry.js.map +1 -0
  319. package/dist/core/{p-51b49429.entry.js → p-8a5b0fb0.entry.js} +2 -2
  320. package/dist/core/{p-60aad45d.entry.js → p-91f6884a.entry.js} +2 -2
  321. package/dist/core/{p-60aad45d.entry.js.map → p-91f6884a.entry.js.map} +1 -1
  322. package/dist/core/p-939adcae.entry.js +2 -0
  323. package/dist/core/p-939adcae.entry.js.map +1 -0
  324. package/dist/core/{p-628c32b8.entry.js → p-948086f4.entry.js} +2 -2
  325. package/dist/core/{p-5eb2ac90.entry.js → p-97f67617.entry.js} +2 -2
  326. package/dist/core/{p-5aec3757.entry.js → p-98869fe7.entry.js} +2 -2
  327. package/dist/core/{p-8958c60f.entry.js → p-9caa9e7b.entry.js} +2 -2
  328. package/dist/core/{p-aad10013.entry.js → p-9d5e4b62.entry.js} +2 -2
  329. package/dist/core/{p-3cb4ecef.entry.js → p-9e051db4.entry.js} +2 -2
  330. package/dist/core/{p-e38fddbb.entry.js → p-9ed5f11d.entry.js} +2 -2
  331. package/dist/core/p-9ed5f11d.entry.js.map +1 -0
  332. package/dist/core/{p-dcce0dfd.entry.js → p-a2ae5d9e.entry.js} +2 -2
  333. package/dist/core/p-a591ef38.entry.js +2 -0
  334. package/dist/core/p-a591ef38.entry.js.map +1 -0
  335. package/dist/core/p-ae2ea264.entry.js +2 -0
  336. package/dist/core/{p-887e00bb.entry.js.map → p-ae2ea264.entry.js.map} +1 -1
  337. package/dist/core/{p-ef36181d.entry.js → p-afde0edc.entry.js} +2 -2
  338. package/dist/core/{p-e2629bfe.entry.js → p-b1b27b7e.entry.js} +2 -2
  339. package/dist/core/p-b730963a.entry.js +2 -0
  340. package/dist/core/p-b730963a.entry.js.map +1 -0
  341. package/dist/core/{p-6cd0b010.entry.js → p-b83cca09.entry.js} +2 -2
  342. package/dist/core/{p-ef4b752c.entry.js → p-ba89fa16.entry.js} +2 -2
  343. package/dist/core/{p-dfc8cba6.entry.js → p-bb21268f.entry.js} +2 -2
  344. package/dist/core/p-bb21268f.entry.js.map +1 -0
  345. package/dist/core/{p-a140bcaa.entry.js → p-c100724d.entry.js} +2 -2
  346. package/dist/core/p-cd42b7c0.entry.js +2 -0
  347. package/dist/core/p-cd42b7c0.entry.js.map +1 -0
  348. package/dist/core/{p-8c77dd65.entry.js → p-cd8dab55.entry.js} +2 -2
  349. package/dist/core/{p-513628ef.entry.js → p-ce916f35.entry.js} +2 -2
  350. package/dist/core/{p-de1e04ac.entry.js → p-d281c3cf.entry.js} +2 -2
  351. package/dist/core/p-d7c8f10d.entry.js +2 -0
  352. package/dist/core/p-d7c8f10d.entry.js.map +1 -0
  353. package/dist/core/{p-fc4f7180.entry.js → p-e29ba8bd.entry.js} +2 -2
  354. package/dist/core/{p-7d2c07e2.entry.js → p-ec1657fc.entry.js} +2 -2
  355. package/dist/core/{p-4a2acb2e.entry.js → p-f4ee5fbb.entry.js} +2 -2
  356. package/dist/core/p-f9491692.entry.js +2 -0
  357. package/dist/core/p-f9491692.entry.js.map +1 -0
  358. package/dist/core/{p-23536595.entry.js → p-fb6e6ac4.entry.js} +2 -2
  359. package/dist/core/{p-bf3b853e.entry.js → p-fc5661ac.entry.js} +2 -2
  360. package/dist/core/{p-1d172032.entry.js → p-ff47772c.entry.js} +2 -2
  361. package/dist/esm/core.js +1 -1
  362. package/dist/esm/{helpers-f2ffaa7c.js → helpers-f5ff3b42.js} +42 -33
  363. package/dist/esm/helpers-f5ff3b42.js.map +1 -0
  364. package/dist/esm/ic-accordion-group.entry.js +1 -1
  365. package/dist/esm/ic-accordion.entry.js +1 -1
  366. package/dist/esm/ic-alert.entry.js +8 -8
  367. package/dist/esm/ic-alert.entry.js.map +1 -1
  368. package/dist/esm/ic-back-to-top.entry.js +1 -1
  369. package/dist/esm/ic-badge.entry.js +13 -4
  370. package/dist/esm/ic-badge.entry.js.map +1 -1
  371. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  372. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  373. package/dist/esm/ic-button_3.entry.js +143 -148
  374. package/dist/esm/ic-button_3.entry.js.map +1 -1
  375. package/dist/esm/ic-card-vertical.entry.js +1 -1
  376. package/dist/esm/ic-checkbox-group.entry.js +5 -5
  377. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  378. package/dist/esm/ic-checkbox.entry.js +9 -8
  379. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  380. package/dist/esm/ic-chip.entry.js +1 -1
  381. package/dist/esm/ic-data-list.entry.js +2 -2
  382. package/dist/esm/ic-data-row.entry.js +3 -3
  383. package/dist/esm/ic-dialog.entry.js +3 -3
  384. package/dist/esm/ic-dialog.entry.js.map +1 -1
  385. package/dist/esm/ic-divider.entry.js +1 -1
  386. package/dist/esm/ic-empty-state.entry.js +3 -3
  387. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  388. package/dist/esm/ic-footer-link.entry.js +4 -4
  389. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  390. package/dist/esm/ic-footer.entry.js +1 -1
  391. package/dist/esm/ic-hero.entry.js +5 -5
  392. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  393. package/dist/esm/ic-input-component-container_3.entry.js +19 -14
  394. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  395. package/dist/esm/ic-input-label_2.entry.js +36 -13
  396. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  397. package/dist/esm/ic-link.entry.js +3 -3
  398. package/dist/esm/ic-link.entry.js.map +1 -1
  399. package/dist/esm/ic-menu-group.entry.js +2 -2
  400. package/dist/esm/ic-menu-item.entry.js +1 -1
  401. package/dist/esm/ic-navigation-button.entry.js +40 -40
  402. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  403. package/dist/esm/ic-navigation-group.entry.js +7 -4
  404. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  405. package/dist/esm/ic-navigation-item.entry.js +5 -8
  406. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  407. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  408. package/dist/esm/ic-page-header.entry.js +7 -7
  409. package/dist/esm/ic-pagination-item.entry.js +2 -2
  410. package/dist/esm/ic-pagination.entry.js +5 -5
  411. package/dist/esm/ic-popover-menu.entry.js +16 -11
  412. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  413. package/dist/esm/ic-radio-group.entry.js +6 -6
  414. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  415. package/dist/esm/ic-radio-option.entry.js +5 -5
  416. package/dist/esm/ic-search-bar.entry.js +29 -13
  417. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  418. package/dist/esm/ic-section-container.entry.js +2 -2
  419. package/dist/esm/ic-select.entry.js +9 -9
  420. package/dist/esm/ic-select.entry.js.map +1 -1
  421. package/dist/esm/ic-side-navigation.entry.js +16 -17
  422. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  423. package/dist/esm/ic-skeleton.entry.js +2 -2
  424. package/dist/esm/ic-skip-link.entry.js +2 -2
  425. package/dist/esm/ic-status-tag.entry.js +3 -3
  426. package/dist/esm/ic-step.entry.js +14 -14
  427. package/dist/esm/ic-stepper.entry.js +3 -3
  428. package/dist/esm/ic-switch.entry.js +6 -6
  429. package/dist/esm/ic-switch.entry.js.map +1 -1
  430. package/dist/esm/ic-tab-context.entry.js +1 -1
  431. package/dist/esm/ic-tab-group.entry.js +3 -3
  432. package/dist/esm/ic-tab-panel.entry.js +2 -2
  433. package/dist/esm/ic-tab.entry.js +1 -1
  434. package/dist/esm/ic-text-field.entry.js +9 -9
  435. package/dist/esm/ic-text-field.entry.js.map +1 -1
  436. package/dist/esm/ic-theme.entry.js +2 -2
  437. package/dist/esm/ic-toast-region.entry.js +1 -1
  438. package/dist/esm/ic-toast.entry.js +4 -4
  439. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  440. package/dist/esm/ic-toggle-button.entry.js +3 -3
  441. package/dist/esm/ic-top-navigation.entry.js +15 -9
  442. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  443. package/dist/esm/ic-typography.entry.js +3 -3
  444. package/dist/esm/loader.js +1 -1
  445. package/dist/types/components/ic-badge/ic-badge.d.ts +1 -0
  446. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +3 -0
  447. package/dist/types/components/ic-input-label/ic-input-label.d.ts +2 -0
  448. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +29 -33
  449. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -0
  450. package/dist/types/components/ic-menu/ic-menu.d.ts +7 -0
  451. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +13 -5
  452. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -1
  453. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +7 -0
  454. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +3 -0
  455. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +11 -0
  456. package/dist/types/components/ic-select/ic-select.d.ts +1 -0
  457. package/dist/types/components/ic-switch/ic-switch.d.ts +1 -0
  458. package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
  459. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -0
  460. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +1 -0
  461. package/dist/types/components.d.ts +37 -13
  462. package/dist/types/utils/constants.d.ts +1 -1
  463. package/dist/types/utils/helpers.d.ts +3 -2
  464. package/hydrate/index.js +525 -439
  465. package/hydrate/index.mjs +525 -439
  466. package/package.json +3 -5
  467. package/vscode-data.json +8 -0
  468. package/dist/cjs/helpers-fc4016d2.js.map +0 -1
  469. package/dist/core/p-0fb68b4f.entry.js +0 -2
  470. package/dist/core/p-0fb68b4f.entry.js.map +0 -1
  471. package/dist/core/p-15b7adaf.entry.js +0 -2
  472. package/dist/core/p-15b7adaf.entry.js.map +0 -1
  473. package/dist/core/p-26dfc4db.entry.js.map +0 -1
  474. package/dist/core/p-3676ac4e.entry.js +0 -2
  475. package/dist/core/p-3676ac4e.entry.js.map +0 -1
  476. package/dist/core/p-432aeae0.entry.js +0 -2
  477. package/dist/core/p-432aeae0.entry.js.map +0 -1
  478. package/dist/core/p-4dc97b03.entry.js +0 -2
  479. package/dist/core/p-4dc97b03.entry.js.map +0 -1
  480. package/dist/core/p-4e48a671.entry.js +0 -2
  481. package/dist/core/p-4e48a671.entry.js.map +0 -1
  482. package/dist/core/p-554845c4.entry.js +0 -2
  483. package/dist/core/p-554845c4.entry.js.map +0 -1
  484. package/dist/core/p-59b48450.entry.js +0 -2
  485. package/dist/core/p-59b48450.entry.js.map +0 -1
  486. package/dist/core/p-7d352865.entry.js +0 -2
  487. package/dist/core/p-7d352865.entry.js.map +0 -1
  488. package/dist/core/p-7deaf128.entry.js +0 -2
  489. package/dist/core/p-7deaf128.entry.js.map +0 -1
  490. package/dist/core/p-803f2eb8.entry.js +0 -2
  491. package/dist/core/p-803f2eb8.entry.js.map +0 -1
  492. package/dist/core/p-8242c24f.js +0 -2
  493. package/dist/core/p-8242c24f.js.map +0 -1
  494. package/dist/core/p-87fa5add.entry.js.map +0 -1
  495. package/dist/core/p-887e00bb.entry.js +0 -2
  496. package/dist/core/p-aad2abbf.entry.js.map +0 -1
  497. package/dist/core/p-bdcc79dd.entry.js +0 -2
  498. package/dist/core/p-bdcc79dd.entry.js.map +0 -1
  499. package/dist/core/p-c59fd23e.entry.js +0 -2
  500. package/dist/core/p-c59fd23e.entry.js.map +0 -1
  501. package/dist/core/p-dfc8cba6.entry.js.map +0 -1
  502. package/dist/core/p-e38fddbb.entry.js.map +0 -1
  503. package/dist/core/p-eca6e215.entry.js +0 -2
  504. package/dist/core/p-eca6e215.entry.js.map +0 -1
  505. package/dist/esm/helpers-f2ffaa7c.js.map +0 -1
  506. /package/dist/core/{p-2c371198.entry.js.map → p-0179fbd3.entry.js.map} +0 -0
  507. /package/dist/core/{p-d8ce39ac.entry.js.map → p-0549305b.entry.js.map} +0 -0
  508. /package/dist/core/{p-56fb0298.entry.js.map → p-06b0d0f6.entry.js.map} +0 -0
  509. /package/dist/core/{p-fa38ad2e.entry.js.map → p-06e80441.entry.js.map} +0 -0
  510. /package/dist/core/{p-c5ffe2cf.entry.js.map → p-0f86ea09.entry.js.map} +0 -0
  511. /package/dist/core/{p-56e0de32.entry.js.map → p-29468171.entry.js.map} +0 -0
  512. /package/dist/core/{p-9c47521d.entry.js.map → p-2ec0d11c.entry.js.map} +0 -0
  513. /package/dist/core/{p-9a6dc8b1.entry.js.map → p-3194e46c.entry.js.map} +0 -0
  514. /package/dist/core/{p-dee21f6d.entry.js.map → p-3448c713.entry.js.map} +0 -0
  515. /package/dist/core/{p-cfa9ed7d.entry.js.map → p-4301e11e.entry.js.map} +0 -0
  516. /package/dist/core/{p-a17499ff.entry.js.map → p-4cd83bfe.entry.js.map} +0 -0
  517. /package/dist/core/{p-6eea869b.entry.js.map → p-50d13439.entry.js.map} +0 -0
  518. /package/dist/core/{p-d82b27df.entry.js.map → p-5fb58cc8.entry.js.map} +0 -0
  519. /package/dist/core/{p-d4903dcd.entry.js.map → p-6dd73165.entry.js.map} +0 -0
  520. /package/dist/core/{p-c8cf1ad5.entry.js.map → p-77750efc.entry.js.map} +0 -0
  521. /package/dist/core/{p-51b49429.entry.js.map → p-8a5b0fb0.entry.js.map} +0 -0
  522. /package/dist/core/{p-628c32b8.entry.js.map → p-948086f4.entry.js.map} +0 -0
  523. /package/dist/core/{p-5eb2ac90.entry.js.map → p-97f67617.entry.js.map} +0 -0
  524. /package/dist/core/{p-5aec3757.entry.js.map → p-98869fe7.entry.js.map} +0 -0
  525. /package/dist/core/{p-8958c60f.entry.js.map → p-9caa9e7b.entry.js.map} +0 -0
  526. /package/dist/core/{p-aad10013.entry.js.map → p-9d5e4b62.entry.js.map} +0 -0
  527. /package/dist/core/{p-3cb4ecef.entry.js.map → p-9e051db4.entry.js.map} +0 -0
  528. /package/dist/core/{p-dcce0dfd.entry.js.map → p-a2ae5d9e.entry.js.map} +0 -0
  529. /package/dist/core/{p-ef36181d.entry.js.map → p-afde0edc.entry.js.map} +0 -0
  530. /package/dist/core/{p-e2629bfe.entry.js.map → p-b1b27b7e.entry.js.map} +0 -0
  531. /package/dist/core/{p-6cd0b010.entry.js.map → p-b83cca09.entry.js.map} +0 -0
  532. /package/dist/core/{p-ef4b752c.entry.js.map → p-ba89fa16.entry.js.map} +0 -0
  533. /package/dist/core/{p-a140bcaa.entry.js.map → p-c100724d.entry.js.map} +0 -0
  534. /package/dist/core/{p-8c77dd65.entry.js.map → p-cd8dab55.entry.js.map} +0 -0
  535. /package/dist/core/{p-513628ef.entry.js.map → p-ce916f35.entry.js.map} +0 -0
  536. /package/dist/core/{p-de1e04ac.entry.js.map → p-d281c3cf.entry.js.map} +0 -0
  537. /package/dist/core/{p-fc4f7180.entry.js.map → p-e29ba8bd.entry.js.map} +0 -0
  538. /package/dist/core/{p-7d2c07e2.entry.js.map → p-ec1657fc.entry.js.map} +0 -0
  539. /package/dist/core/{p-4a2acb2e.entry.js.map → p-f4ee5fbb.entry.js.map} +0 -0
  540. /package/dist/core/{p-23536595.entry.js.map → p-fb6e6ac4.entry.js.map} +0 -0
  541. /package/dist/core/{p-bf3b853e.entry.js.map → p-fc5661ac.entry.js.map} +0 -0
  542. /package/dist/core/{p-1d172032.entry.js.map → p-ff47772c.entry.js.map} +0 -0
@@ -1,6 +1,6 @@
1
- import { Host, h, forceUpdate, } from "@stencil/core";
2
- import { getBrandForegroundAppearance, inheritAttributes, onComponentRequiredPropUndefined, isSlotUsed, } from "../../utils/helpers";
1
+ import { Host, forceUpdate, h, } from "@stencil/core";
3
2
  import { IC_INHERITED_ARIA } from "../../utils/constants";
3
+ import { getBrandForegroundAppearance, getElementInheritedTheme, inheritAttributes, isSlotUsed, onComponentRequiredPropUndefined, } from "../../utils/helpers";
4
4
  import { IcBrandForegroundEnum, } from "../../utils/types";
5
5
  const MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, "title"];
6
6
  /**
@@ -11,11 +11,14 @@ export class NavigationButton {
11
11
  constructor() {
12
12
  this.inheritedAttributes = {};
13
13
  this.hostMutationObserver = null;
14
- this.initialAppearance = getBrandForegroundAppearance();
15
14
  /**
16
15
  * The display mode.
17
16
  */
18
17
  this.mode = "navbar";
18
+ /**
19
+ * The parent theme used to inherit external colour tokens such as focus indicator.
20
+ */
21
+ this.parentThemeDark = false;
19
22
  /**
20
23
  * If `true`, the user can save the linked URL instead of navigating to it.
21
24
  */
@@ -24,7 +27,9 @@ export class NavigationButton {
24
27
  * 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.
25
28
  */
26
29
  this.theme = "inherit";
27
- // triggered when attributes of host element change
30
+ /**
31
+ * Triggered when attributes of host element change
32
+ */
28
33
  this.hostMutationCallback = (mutationList) => {
29
34
  let forceComponentUpdate = false;
30
35
  mutationList.forEach(({ attributeName }) => {
@@ -45,6 +50,7 @@ export class NavigationButton {
45
50
  this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);
46
51
  }
47
52
  componentDidLoad() {
53
+ this.updateTheme();
48
54
  onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Navigation Button");
49
55
  this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
50
56
  this.hostMutationObserver.observe(this.el, {
@@ -52,8 +58,10 @@ export class NavigationButton {
52
58
  });
53
59
  }
54
60
  componentWillRender() {
55
- const iconEl = this.el.querySelector(`[slot="icon"]`);
56
- iconEl !== null && iconEl.setAttribute("viewBox", "0 0 24 24");
61
+ var _a;
62
+ (_a = this.el
63
+ .querySelector(`[slot="icon"]`)) === null || _a === void 0 ? void 0 : _a.setAttribute("viewBox", "0 0 24 24");
64
+ this.parentThemeChangeHandler();
57
65
  }
58
66
  disconnectedCallback() {
59
67
  var _a;
@@ -61,55 +69,47 @@ export class NavigationButton {
61
69
  }
62
70
  navBarMenuOpenHandler() {
63
71
  this.mode = "menu";
72
+ this.theme = this.el.parentElement.theme;
64
73
  }
65
74
  navBarMenuCloseHandler() {
66
75
  this.mode = "navbar";
76
+ this.updateTheme();
77
+ }
78
+ brandChangeHandler({ detail: { mode } }) {
79
+ this.updateTheme(mode);
67
80
  }
68
- brandChangeHandler(ev) {
69
- this.initialAppearance = ev.detail.mode;
81
+ parentThemeChangeHandler() {
82
+ this.parentThemeDark = getElementInheritedTheme(this.el) === "dark";
70
83
  }
71
84
  /**
72
85
  * Sets focus on the native `button`.
73
86
  */
74
87
  async setFocus() {
75
- if (this.buttonEl) {
76
- this.buttonEl.focus();
77
- }
88
+ var _a;
89
+ (_a = this.buttonEl) === null || _a === void 0 ? void 0 : _a.setFocus();
90
+ }
91
+ updateTheme(mode = getBrandForegroundAppearance()) {
92
+ this.theme =
93
+ mode === IcBrandForegroundEnum.Light
94
+ ? IcBrandForegroundEnum.Dark
95
+ : IcBrandForegroundEnum.Light;
78
96
  }
79
97
  render() {
80
- const { href, target, rel, download, referrerpolicy } = this;
81
- let label = "";
82
- let className = "";
83
- let variant = "icon";
84
- let appearance = this.initialAppearance;
85
- let size = "large";
86
- let fullWidth = false;
87
- let disableTooltip = false;
88
- if (this.mode === "menu") {
89
- label = this.label;
90
- variant = "tertiary";
91
- appearance = IcBrandForegroundEnum.Default;
92
- size = "medium";
93
- fullWidth = true;
94
- className = "popout-menu-button";
95
- disableTooltip = true;
96
- }
98
+ const { download, href, inheritedAttributes, label, mode, parentThemeDark, referrerpolicy, rel, target, theme, } = this;
99
+ const isMenuMode = mode === "menu";
97
100
  const buttonProps = {
98
- variant,
99
- appearance,
100
- size,
101
- href,
102
- target,
103
- rel,
104
101
  download,
102
+ href,
105
103
  referrerpolicy,
106
- fullWidth,
107
- disableTooltip,
104
+ rel,
105
+ target,
106
+ theme,
108
107
  };
109
- return (h(Host, { key: 'a750cb73987d5c9d0c7bcdb6ece9807bcc688c9f', class: {
110
- ["in-side-menu"]: this.mode === "menu",
111
- [`ic-theme-${this.theme}`]: this.theme !== "inherit",
112
- } }, h("ic-button", Object.assign({ key: 'd55eb3e8c54c6bb76e61044af2a5b1a2dddafbf6', class: className, "aria-label": variant == "icon" ? this.label : null, ref: (el) => (this.buttonEl = el) }, buttonProps, this.inheritedAttributes, { monochrome: this.mode !== "menu", theme: getBrandForegroundAppearance() == "light" ? "light" : "dark" }), label, h("slot", { key: '4193d9cd02c05a3b12946233cb86256e2c729abc', slot: "left-icon", name: "icon" }), isSlotUsed(this.el, "badge") && h("slot", { key: 'a53d6158424e97fddc62b25006f6060b2cbee4c5', name: "badge" }))));
108
+ return (h(Host, { key: '6798f875b7e5ba35703800d95c76a8f0e532f09b', class: {
109
+ "in-side-menu": isMenuMode,
110
+ [`ic-theme-${theme}`]: theme !== "inherit",
111
+ dark: parentThemeDark,
112
+ } }, h("ic-button", Object.assign({ key: '94bb6ce72a9f7ad8298e3244c65abefeae577891', ref: (el) => (this.buttonEl = el), class: { "popout-menu-button": isMenuMode }, "aria-label": !isMenuMode ? label : null, disableTooltip: isMenuMode, fullWidth: isMenuMode, monochrome: !isMenuMode, size: isMenuMode ? "medium" : "large", variant: isMenuMode ? "tertiary" : "icon-tertiary" }, buttonProps, inheritedAttributes), isMenuMode ? label : "", h("slot", { key: '7f9fbb6283627d5eb425067939da08f53e5295b2', slot: "left-icon", name: "icon" }), isSlotUsed(this.el, "badge") && h("slot", { key: '3b0766eaf9b37e4b1953868b667c2c1d88eaaead', name: "badge" }))));
113
113
  }
114
114
  static get is() { return "ic-navigation-button"; }
115
115
  static get encapsulation() { return "shadow"; }
@@ -131,11 +131,11 @@ export class NavigationButton {
131
131
  "mutable": false,
132
132
  "complexType": {
133
133
  "original": "string | boolean",
134
- "resolved": "boolean | string | undefined",
134
+ "resolved": "boolean | string",
135
135
  "references": {}
136
136
  },
137
137
  "required": false,
138
- "optional": true,
138
+ "optional": false,
139
139
  "docs": {
140
140
  "tags": [],
141
141
  "text": "If `true`, the user can save the linked URL instead of navigating to it."
@@ -267,10 +267,10 @@ export class NavigationButton {
267
267
  },
268
268
  "theme": {
269
269
  "type": "string",
270
- "mutable": false,
270
+ "mutable": true,
271
271
  "complexType": {
272
272
  "original": "IcThemeMode",
273
- "resolved": "\"dark\" | \"inherit\" | \"light\" | undefined",
273
+ "resolved": "\"dark\" | \"inherit\" | \"light\"",
274
274
  "references": {
275
275
  "IcThemeMode": {
276
276
  "location": "import",
@@ -280,7 +280,7 @@ export class NavigationButton {
280
280
  }
281
281
  },
282
282
  "required": false,
283
- "optional": true,
283
+ "optional": false,
284
284
  "docs": {
285
285
  "tags": [],
286
286
  "text": "Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component."
@@ -295,8 +295,8 @@ export class NavigationButton {
295
295
  }
296
296
  static get states() {
297
297
  return {
298
- "initialAppearance": {},
299
- "mode": {}
298
+ "mode": {},
299
+ "parentThemeDark": {}
300
300
  };
301
301
  }
302
302
  static get methods() {
@@ -340,6 +340,12 @@ export class NavigationButton {
340
340
  "target": "document",
341
341
  "capture": false,
342
342
  "passive": false
343
+ }, {
344
+ "name": "icThemeChange",
345
+ "method": "parentThemeChangeHandler",
346
+ "target": "document",
347
+ "capture": false,
348
+ "passive": false
343
349
  }];
344
350
  }
345
351
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-navigation-button.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-button/ic-navigation-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n h,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getBrandForegroundAppearance,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcNavButtonModes } from \"./ic-navigation-button.types\";\n\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\n\n@Component({\n tag: \"ic-navigation-button\",\n styleUrl: \"ic-navigation-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationButton {\n private buttonEl?: HTMLIcButtonElement;\n private inheritedAttributes: { [k: string]: string } = {};\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcNavigationButtonElement;\n\n @State() initialAppearance: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n /**\n * The display mode.\n */\n @State() mode: IcNavButtonModes = \"navbar\";\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 * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label info to display.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The 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 componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Navigation Button\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentWillRender(): void {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n iconEl !== null && iconEl.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.mode = \"menu\";\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.mode = \"navbar\";\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.initialAppearance = ev.detail.mode;\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const { href, target, rel, download, referrerpolicy } = this;\n\n let label = \"\";\n let className = \"\";\n let variant: \"icon\" | \"tertiary\" = \"icon\";\n let appearance: IcBrandForeground | IcBrandForegroundEnum.Default =\n this.initialAppearance;\n let size: \"medium\" | \"large\" = \"large\";\n let fullWidth = false;\n let disableTooltip = false;\n\n if (this.mode === \"menu\") {\n label = this.label;\n variant = \"tertiary\";\n appearance = IcBrandForegroundEnum.Default;\n size = \"medium\";\n fullWidth = true;\n className = \"popout-menu-button\";\n disableTooltip = true;\n }\n\n const buttonProps = {\n variant,\n appearance,\n size,\n href,\n target,\n rel,\n download,\n referrerpolicy,\n fullWidth,\n disableTooltip,\n };\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: this.mode === \"menu\",\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <ic-button\n class={className}\n aria-label={variant == \"icon\" ? this.label : null}\n ref={(el) => (this.buttonEl = el)}\n {...buttonProps}\n {...this.inheritedAttributes}\n monochrome={this.mode !== \"menu\"}\n theme={getBrandForegroundAppearance() == \"light\" ? \"light\" : \"dark\"}\n >\n {label}\n <slot slot=\"left-icon\" name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-navigation-button.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-button/ic-navigation-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n} from \"@stencil/core\";\n\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n getBrandForegroundAppearance,\n getElementInheritedTheme,\n inheritAttributes,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcNavButtonModes } from \"./ic-navigation-button.types\";\n\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\n\n@Component({\n tag: \"ic-navigation-button\",\n styleUrl: \"ic-navigation-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationButton {\n private buttonEl?: HTMLIcButtonElement;\n private inheritedAttributes: { [k: string]: string } = {};\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcNavigationButtonElement;\n\n /**\n * The display mode.\n */\n @State() mode: IcNavButtonModes = \"navbar\";\n\n /**\n * The parent theme used to inherit external colour tokens such as focus indicator.\n */\n @State() parentThemeDark = 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 * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label info to display.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Navigation Button\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentWillRender(): void {\n this.el\n .querySelector(`[slot=\"icon\"]`)\n ?.setAttribute(\"viewBox\", \"0 0 24 24\");\n this.parentThemeChangeHandler();\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.mode = \"menu\";\n this.theme = (this.el.parentElement as HTMLIcTopNavigationElement).theme;\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.mode = \"navbar\";\n this.updateTheme();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail: { mode } }: CustomEvent<IcBrand>): void {\n this.updateTheme(mode);\n }\n\n @Listen(\"icThemeChange\", { target: \"document\" })\n parentThemeChangeHandler(): void {\n this.parentThemeDark = getElementInheritedTheme(this.el) === \"dark\";\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.setFocus();\n }\n\n /**\n * Triggered when attributes of host element change\n */\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private updateTheme(\n mode: IcBrandForeground = getBrandForegroundAppearance()\n ) {\n this.theme =\n mode === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n\n render() {\n const {\n download,\n href,\n inheritedAttributes,\n label,\n mode,\n parentThemeDark,\n referrerpolicy,\n rel,\n target,\n theme,\n } = this;\n\n const isMenuMode = mode === \"menu\";\n\n const buttonProps = {\n download,\n href,\n referrerpolicy,\n rel,\n target,\n theme,\n };\n\n return (\n <Host\n class={{\n \"in-side-menu\": isMenuMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n dark: parentThemeDark,\n }}\n >\n <ic-button\n ref={(el) => (this.buttonEl = el)}\n class={{ \"popout-menu-button\": isMenuMode }}\n aria-label={!isMenuMode ? label : null}\n disableTooltip={isMenuMode}\n fullWidth={isMenuMode}\n monochrome={!isMenuMode}\n size={isMenuMode ? \"medium\" : \"large\"}\n variant={isMenuMode ? \"tertiary\" : \"icon-tertiary\"}\n {...buttonProps}\n {...inheritedAttributes}\n >\n {isMenuMode ? label : \"\"}\n <slot slot=\"left-icon\" name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
@@ -12,7 +12,6 @@ export class NavigationGroup {
12
12
  this.mouseGate = false;
13
13
  this.deviceSize = DEVICE_SIZES.XL;
14
14
  this.dropdownOpen = false;
15
- this.expanded = true;
16
15
  this.focusStyle = getBrandForegroundAppearance();
17
16
  this.inTopNavSideMenu = false;
18
17
  this.isSideNavExpanded = false;
@@ -20,6 +19,10 @@ export class NavigationGroup {
20
19
  * 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.
21
20
  */
22
21
  this.expandable = false;
22
+ /**
23
+ * If `true`, the expandable group will be expanded by default when in an ic-side-navigation component. To enable this prop, `expandable` must also be set to `true`.
24
+ */
25
+ this.expanded = true;
23
26
  /**
24
27
  * 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.
25
28
  */
@@ -258,7 +261,7 @@ export class NavigationGroup {
258
261
  const isTopNav = this.navigationType === "top";
259
262
  const isTopNavDesktop = !inTopNavSideMenu && isTopNav;
260
263
  const ariaExpanded = (isSideNav && expanded) || (isTopNav && dropdownOpen);
261
- return (h(Host, { key: 'ae7929d3d2206250e982dbe9475b4ecb63835369', class: {
264
+ return (h(Host, { key: '1c16958eaa37fb0d37d04178e7bd2d469af832f6', class: {
262
265
  "in-side-menu": inTopNavSideMenu,
263
266
  "ic-navigation-group-expandable": expandable,
264
267
  "ic-navigation-group-side-nav": isSideNav,
@@ -266,7 +269,7 @@ export class NavigationGroup {
266
269
  [`ic-theme-${theme}`]: theme !== "inherit",
267
270
  }, role: "listitem" }, expandable || isTopNavDesktop ? (h("button", { onMouseEnter: isTopNavDesktop ? this.handleMouseEnter : undefined, onMouseLeave: isTopNav ? this.handleMouseLeave : undefined, onBlur: this.handleBlur, onClick: this.handleClick, onKeyDown: this.handleKeydown, class: navGroupTitleClassNames, ref: (el) => (this.groupEl = el), "aria-expanded": `${ariaExpanded}`, "aria-haspopup": `${isTopNavDesktop}` }, this.renderGroupTitleText(), isSideNav && expandable && (h("div", { class: {
268
271
  "chevron-toggle-icon-wrapper": true,
269
- "chevron-toggle-icon-closed": expanded,
272
+ "chevron-toggle-icon-closed": !!expanded,
270
273
  }, innerHTML: chevronIcon })))) : ((!isSideNav || isSideNavExpanded) && (h("div", { class: navGroupTitleClassNames }, this.renderGroupTitleText()))), this.renderNavigationItems()));
271
274
  }
272
275
  static get is() { return "ic-navigation-group"; }
@@ -304,6 +307,26 @@ export class NavigationGroup {
304
307
  "reflect": false,
305
308
  "defaultValue": "false"
306
309
  },
310
+ "expanded": {
311
+ "type": "boolean",
312
+ "mutable": true,
313
+ "complexType": {
314
+ "original": "boolean",
315
+ "resolved": "boolean",
316
+ "references": {}
317
+ },
318
+ "required": false,
319
+ "optional": false,
320
+ "docs": {
321
+ "tags": [],
322
+ "text": "If `true`, the expandable group will be expanded by default when in an ic-side-navigation component. To enable this prop, `expandable` must also be set to `true`."
323
+ },
324
+ "getter": false,
325
+ "setter": false,
326
+ "attribute": "expanded",
327
+ "reflect": false,
328
+ "defaultValue": "true"
329
+ },
307
330
  "label": {
308
331
  "type": "string",
309
332
  "mutable": false,
@@ -355,7 +378,6 @@ export class NavigationGroup {
355
378
  return {
356
379
  "deviceSize": {},
357
380
  "dropdownOpen": {},
358
- "expanded": {},
359
381
  "focusStyle": {},
360
382
  "inTopNavSideMenu": {},
361
383
  "navigationType": {},
@@ -1 +1 @@
1
- {"version":3,"file":"ic-navigation-group.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
1
+ {"version":3,"file":"ic-navigation-group.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.tsx"],"names":[],"mappings":"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","sourcesContent":["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() 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 * If `true`, the expandable group will be expanded by default when in an ic-side-navigation component. To enable this prop, `expandable` must also be set to `true`.\n */\n @Prop({ mutable: true }) expanded = true;\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"]}
@@ -533,6 +533,12 @@ svg {
533
533
  cursor: pointer;
534
534
  }
535
535
 
536
+ :host(.navigation-item:not(.navigation-item-page-header, .navigation-item-side-menu, .navigation-item-top-nav-child))
537
+ ::slotted(a:hover:not(:focus)),
538
+ :host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {
539
+ background-color: var(--ic-brand-hover) !important;
540
+ }
541
+
536
542
  :host(.navigation-item:not(.navigation-item-top-nav-child, .navigation-item-side-menu, .navigation-item-top-nav-child-selected
537
543
  .navigation-item-side-menu-selected))
538
544
  .focus-indicator:focus-within {
@@ -629,8 +635,7 @@ svg {
629
635
  :host(.navigation-item-top-nav-child) .link,
630
636
  :host(.navigation-item-top-nav-child) ::slotted(a) {
631
637
  height: 2.5rem;
632
- width: -moz-fit-content;
633
- width: fit-content;
638
+ width: calc(100% - var(--ic-space-xl));
634
639
  min-width: 9.063rem;
635
640
  color: var(--ic-top-navigation-nav-item);
636
641
  display: flex;
@@ -964,10 +969,6 @@ svg {
964
969
  border-radius: 0;
965
970
  }
966
971
 
967
- :host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {
968
- background-color: var(--ic-brand-hover) !important;
969
- }
970
-
971
972
  :host(.navigation-item-page-header).link,
972
973
  :host(.navigation-item-page-header) a,
973
974
  :host(.navigation-item-page-header) ::slotted(a) {
@@ -53,10 +53,7 @@ export class NavigationItem {
53
53
  const variant = this.isTopNavChild || this.inTopNavSideMenu ? "body" : "label";
54
54
  const ChevronIconComponent = this.expandable && (h("div", { class: { svg: true }, innerHTML: chevronIcon }));
55
55
  const slottedBadgeEl = this.el.querySelector('[slot="badge"]');
56
- const BadgeComponent = slottedBadgeEl && (h("div", { class: slottedBadgeEl.getAttribute("position") === "inline" ||
57
- this.inTopNavSideMenu
58
- ? "inline-badge"
59
- : "badge" }, h("slot", { name: "badge" })));
56
+ const BadgeComponent = slottedBadgeEl && (h("div", { class: "inline-badge" }, h("slot", { name: "badge" })));
60
57
  const IconComponent = this.el.querySelector('[slot="icon"]') && (h("div", { class: "icon" }, h("slot", { name: "icon" }), this.isInSideNav && BadgeComponent));
61
58
  return href !== "" ? (h("a", { href: href, target: target, rel: rel, hreflang: hreflang, referrerPolicy: referrerpolicy, download: download !== false ? download : null, class: "link", ref: (el) => (this.itemEl = el), part: "link", "aria-label": this.ariaLabel ? this.ariaLabel : null }, IconComponent, h("ic-typography", { variant: variant }, label), target === "_blank" && (h("span", { class: "open-in-new-icon", innerHTML: OpenInNew })), BadgeComponent, h("div", { class: "chevron-container" }, ChevronIconComponent))) : (h("div", { tabindex: "0", class: "link", ref: (el) => (this.itemEl = el) }, IconComponent, h("ic-typography", { variant: variant }, label), ChevronIconComponent, BadgeComponent));
62
59
  };
@@ -207,7 +204,7 @@ export class NavigationItem {
207
204
  render() {
208
205
  const { inTopNavSideMenu, isTopNavChild, selected, navigationType, focusStyle, isInitialRender, sideNavExpanded, displayNavigationTooltip, collapsedIconLabel, isSideNavMobile, expandable, isInSideNav, theme, } = this;
209
206
  const isTopNavChildDesktop = isTopNavChild && !inTopNavSideMenu;
210
- return (h(Host, { key: 'a46e99d4929b5257bd6b1fecabfae154e896d1a6', class: {
207
+ return (h(Host, { key: 'fbc3ed6180f0dcf2430f28de0a8c94f397269054', class: {
211
208
  "navigation-item": true,
212
209
  "navigation-item-selected": !isTopNavChild && selected,
213
210
  "navigation-item-top-nav": !inTopNavSideMenu && navigationType === "top",
@@ -226,7 +223,7 @@ export class NavigationItem {
226
223
  expandable,
227
224
  [focusStyle]: isTopNavChild ? isInSideNav : !inTopNavSideMenu,
228
225
  [`ic-theme-${theme}`]: theme !== "inherit",
229
- }, onBlur: isTopNavChildDesktop ? this.handleBlur : null, onClick: this.handleClick, onKeyDown: this.handleClick, "aria-current": selected ? "page" : null, role: "listitem" }, h("ic-tooltip", { key: 'ace34ef496173488d3957ef6e09e7dd6b8804ca1', label: this.generateTooltipLabel(), target: "navigation-item", placement: "right", class: {
226
+ }, onBlur: isTopNavChildDesktop ? this.handleBlur : null, onClick: this.handleClick, onKeyDown: this.handleClick, "aria-current": selected ? "page" : null, role: "listitem" }, h("ic-tooltip", { key: 'd308ed029016a9d3c6c0d2400880b74eaa1e0b2e', label: this.generateTooltipLabel(), target: "navigation-item", placement: "right", class: {
230
227
  "tooltip-navigation-item": true,
231
228
  "tooltip-navigation-item-side-nav-collapsed": displayNavigationTooltip && isInSideNav,
232
229
  "tooltip-long-label-navigation-item-side-nav-expanded": this.el.hasAttribute("[display-navigation-tooltip = 'true']"),