@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 +1 @@
1
- {"version":3,"file":"ic-navigation-item.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-item/ic-navigation-item.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
1
+ {"version":3,"file":"ic-navigation-item.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-item/ic-navigation-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,WAAW,EACX,MAAM,EACN,MAAM,EACN,CAAC,EACD,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GACN,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,WAAW,MAAM,+BAA+B,CAAC;AAExD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAGnD;;;;GAIG;AASH,MAAM,OAAO,cAAc;IAP3B;QASU,oBAAe,GAAG,IAAI,CAAC;QAEvB,yBAAoB,GAA4B,IAAI,CAAC;QACrD,uBAAkB,GACxB,QAAQ,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,sBAAiB,GAAG,YAAY,CAAC;QACjC,gBAAW,GAAG,KAAK,CAAC;QAInB,eAAU,GAAW,YAAY,CAAC,EAAE,CAAC;QACrC,eAAU,GACjB,4BAA4B,EAAE,CAAC;QACxB,qBAAgB,GAAG,KAAK,CAAC;QACzB,oBAAe,GAAG,KAAK,CAAC;QACxB,kBAAa,GAAG,KAAK,CAAC;QAStB,oBAAe,GAAG,KAAK,CAAC;QACxB,cAAS,GAAG,EAAE,CAAC;QAExB;;WAEG;QACK,uBAAkB,GAAG,KAAK,CAAC;QAEnC;;WAEG;QACK,6BAAwB,GAAG,KAAK,CAAC;QAEzC;;WAEG;QACK,aAAQ,GAAqB,KAAK,CAAC;QAE3C;;WAEG;QACK,eAAU,GAAG,KAAK,CAAC;QAE3B;;WAEG;QACK,SAAI,GAAG,EAAE,CAAC;QAsBlB;;WAEG;QACK,aAAQ,GAAG,KAAK,CAAC;QAOzB;;WAEG;QACK,UAAK,GAAgB,SAAS,CAAC;QA6F/B,iCAA4B,GAAG,CACrC,IAAY,EACZ,KAAa,EACb,QAAiB,EACjB,MAAe,EACf,GAAY,EACZ,cAA+B,EAC/B,QAA2B,EAC3B,EAAE;YACF,MAAM,OAAO,GACX,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,IAAI,CAC9C,WAAK,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,GAAQ,CAC1D,CAAC;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,cAAc,IAAI,CACvC,WAAK,KAAK,EAAC,cAAc;gBACvB,YAAM,IAAI,EAAC,OAAO,GAAQ,CACtB,CACP,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAC9D,WAAK,KAAK,EAAC,MAAM;gBACf,YAAM,IAAI,EAAC,MAAM,GAAQ;gBACxB,IAAI,CAAC,WAAW,IAAI,cAAc,CAC/B,CACP,CAAC;YAEF,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CACnB,SACE,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAC9C,KAAK,EAAC,MAAM,EACZ,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,EAC/B,IAAI,EAAC,MAAM,gBACC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;gBAEjD,aAAa;gBACd,qBAAe,OAAO,EAAE,OAAO,IAAG,KAAK,CAAiB;gBACvD,MAAM,KAAK,QAAQ,IAAI,CACtB,YAAM,KAAK,EAAC,kBAAkB,EAAC,SAAS,EAAE,SAAS,GAAI,CACxD;gBACA,cAAc;gBACf,WAAK,KAAK,EAAC,mBAAmB,IAAE,oBAAoB,CAAO,CACzD,CACL,CAAC,CAAC,CAAC,CACF,WAAK,QAAQ,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBAC3D,aAAa;gBACd,qBAAe,OAAO,EAAE,OAAO,IAAG,KAAK,CAAiB;gBACvD,oBAAoB;gBACpB,cAAc,CACX,CACP,CAAC;QACJ,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,EAC9B,MAAM,GACwB,EAAE,EAAE;;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACxB,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,gBAAgB;oBACnB,IAAI;wBACJ,CAAC,CAAA,MAAC,IAAI,CAAC,QAAuC,0CAC1C,sBAAsB,KAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,EAC9B,MAAM,GACwB,EAAE,EAAE;YAClC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;YAClD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,CAAC,eAAe,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,EAAE,aAAa,EAAc,EAAE,EAAE;YACrD,IACE,aAAa,KAAK,IAAI;gBACrB,aAA6B,CAAC,OAAO,KAAK,oBAAoB,EAC/D,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEM,gBAAW,GAAG,CAAC,KAAiC,EAAE,EAAE;YAC1D,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;gBACtB,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBACvB,CAAE,KAAuB,CAAC,GAAG,KAAK,OAAO;wBACtC,KAAuB,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,EAC1C,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEF,mDAAmD;QAC3C,yBAAoB,GAAG,CAAC,YAA8B,EAAE,EAAE;YAChE,IAAI,oBAAoB,GAAG,KAAK,CAAC;YACjC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;gBACzC,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;oBACtD,IAAI,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;wBAC3B,oBAAoB,GAAG,IAAI,CAAC;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,oBAAoB,EAAE,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAEM,yBAAoB,GAAG,GAAG,EAAE;;YAClC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,EAAE,CAAC;YAC/C,CAAC;YAED,OAAO,CAAA,MAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,0CAAE,WAAW,KAAI,EAAE,CAAC;QAChD,CAAC,CAAC;QAEM,gCAA2B,GAAG,GAAG,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO,eAAa,CAAC;YAE9D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAClB,IAAI,CAAC,4BAA4B,CAC/B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,QAAQ,CACd,CACF,CAAC,CAAC,CAAC,CACF,YAAM,IAAI,EAAC,iBAAiB,GAAQ,CACrC,CAAC;QACJ,CAAC,CAAC;QAEF,kEAAkE;QAC1D,yBAAoB,GAAG,CAAC,WAAoB,EAAE,EAAE;;YACtD,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,4CAA4C,CAAC;YACpE,IAAI,KAAK,CAAC;YAEV,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,qDAAqD;gBACpF,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACxC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;KAuEH;IA1YC,2BAA2B;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;IACpD,CAAC;IA4ED,oBAAoB;;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAA,IAAI,CAAC,QAAQ,0CAAE,mBAAmB,CAChC,mBAAmB,EACnB,IAAI,CAAC,oBAAqC,CAC3C,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACzC,MAAA,IAAI,CAAC,QAAQ,0CAAE,mBAAmB,CAChC,iBAAiB,EACjB,IAAI,CAAC,oBAAqC,CAC3C,CAAC;QACJ,CAAC;QACD,MAAA,IAAI,CAAC,oBAAoB,0CAAE,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,iBAAiB;;QACf,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE,CAAC;QAEzC,IAAI,CAAC,eAAe;YAClB,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;iBAChD,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;gBACjD,KAAK,CAAC;QAER,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAA,IAAI,CAAC,QAAQ,0CAAE,gBAAgB,CAC7B,mBAAmB,EACnB,IAAI,CAAC,oBAAqC,CAC3C,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACzC,MAAA,IAAI,CAAC,QAAQ,0CAAE,gBAAgB,CAC7B,iBAAiB,EACjB,IAAI,CAAC,oBAAqC,CAC3C,CAAC;YACF,IAAI,CAAA,MAAA,IAAI,CAAC,EAAE,CAAC,aAAa,0CAAE,OAAO,MAAK,qBAAqB;gBAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,IACE,IAAI,CAAC,UAAU;gBACd,IAAI,CAAC,QAAuC,CAAC,sBAAsB;gBAEpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,SAAS;gBAC3B,CAAA,MAAA,IAAI,CAAC,cAAc,CAAC,WAAW,0CAAE,IAAI,EAAE,KAAI,IAAI,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAGD,kBAAkB,CAAC,EAAE,MAAM,EAAwB;QACjD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;;QACZ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,0CAAE,KAAK,EAAE,CAAC;IAC1E,CAAC;IAwKD,MAAM;QACJ,MAAM,EACJ,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,WAAW,EACX,KAAK,GACN,GAAG,IAAI,CAAC;QAET,MAAM,oBAAoB,GAAG,aAAa,IAAI,CAAC,gBAAgB,CAAC;QAEhE,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,iBAAiB,EAAE,IAAI;gBACvB,0BAA0B,EAAE,CAAC,aAAa,IAAI,QAAQ;gBACtD,yBAAyB,EACvB,CAAC,gBAAgB,IAAI,cAAc,KAAK,KAAK;gBAC/C,+BAA+B,EAAE,oBAAoB;gBACrD,wCAAwC,EACtC,oBAAoB,IAAI,QAAQ;gBAClC,2BAA2B,EAAE,gBAAgB;gBAC7C,oCAAoC,EAAE,gBAAgB,IAAI,QAAQ;gBAClE,6BAA6B,EAAE,cAAc,KAAK,aAAa;gBAC/D,0BAA0B,EAAE,WAAW;gBACvC,oCAAoC,EAClC,CAAC,CAAC,eAAe,IAAI,wBAAwB,CAAC,IAAI,WAAW;gBAC/D,+CAA+C,EAC7C,CAAC,eAAe;oBAChB,WAAW;oBACX,kBAAkB;oBAClB,CAAC,eAAe;gBAClB,iBAAiB,EAAE,CAAC,eAAe;gBACnC,UAAU;gBACV,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB;gBAC7D,CAAC,YAAY,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,SAAS;aAC3C,EACD,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EACrD,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,WAAW,kBACb,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACtC,IAAI,EAAC,UAAU;YAGf,mEACE,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAClC,MAAM,EAAC,iBAAiB,EACxB,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE;oBACL,yBAAyB,EAAE,IAAI;oBAC/B,4CAA4C,EAC1C,wBAAwB,IAAI,WAAW;oBACzC,sDAAsD,EACpD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,uCAAuC,CAAC;iBAChE,IAEA,IAAI,CAAC,2BAA2B,EAAE,CACxB,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n Listen,\n Method,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCssProperty,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport { IcExpandedDetail } from \"../ic-side-navigation/ic-side-navigation.types\";\n\n/**\n * @part link - The `<a>` within ic-navigation-item\n * @slot badge - Badge component overlaying the top right of the icon.\n * @slot icon - Content will be displayed to the left of the label for expanded navigation items, and in replacement of the label for collapsed navigation items.\n */\n\n@Component({\n tag: \"ic-navigation-item\",\n styleUrl: \"ic-navigation-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationItem {\n private navigationSlot: HTMLElement | null;\n private isInitialRender = true;\n private itemEl?: HTMLElement;\n private hostMutationObserver: MutationObserver | null = null;\n private ANIMATION_DURATION =\n parseInt(getCssProperty(\"--ic-transition-duration-slow\")) || 0;\n private ARIA_LABEL_STRING = \"aria-label\";\n private isInSideNav = false;\n\n @Element() el: HTMLIcNavigationItemElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu = false;\n @State() isSideNavMobile = false;\n @State() isTopNavChild = false;\n\n @State() navigationType: IcNavType | \"\";\n @Watch(\"navigationType\")\n navigationTypeChangeHandler(): void {\n this.isInSideNav = this.navigationType === \"side\";\n }\n\n @State() parentEl: HTMLElement | null;\n @State() sideNavExpanded = false;\n @State() ariaLabel = \"\";\n\n /**\n * @internal If `true`, the icon and label will be displayed when side navigation is collapsed.\n */\n @Prop() collapsedIconLabel = false;\n\n /**\n * @internal If `true`, the navigation item will be displayed within a tooltip.\n */\n @Prop() displayNavigationTooltip = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be expandable.\n */\n @Prop() expandable = false;\n\n /**\n * The destination of the navigation item.\n */\n @Prop() href = \"\";\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label of the navigation item.\n */\n @Prop() label?: string;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * If `true`, the navigation item will be set in a selected state.\n */\n @Prop() selected = false;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * @internal - Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal - Emitted when navigation item clicked.\n */\n @Event() navItemClicked: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.isInSideNav) {\n this.parentEl?.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n }\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.isInSideNav = this.navigationType === \"side\";\n this.parentEl = parent;\n this.deviceSize = getCurrentDeviceSize();\n\n this.sideNavExpanded =\n this.parentEl?.classList.contains(\"sm-expanded\") ||\n this.parentEl?.classList.contains(\"xs-menu-open\") ||\n false;\n\n if (this.isInSideNav) {\n this.parentEl?.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n if (this.el.parentElement?.tagName === \"IC-NAVIGATION-GROUP\")\n this.isTopNavChild = true;\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint\n )\n this.inTopNavSideMenu = true;\n }\n\n this.navigationSlot = this.el.querySelector('[slot=\"navigation-item\"]');\n if (this.navigationSlot) {\n this.navigationSlot.ariaLabel =\n this.navigationSlot.textContent?.trim() || null;\n }\n\n if (this.el.hasAttribute(this.ARIA_LABEL_STRING)) {\n this.ariaLabel = this.el.getAttribute(this.ARIA_LABEL_STRING) || \"\";\n }\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.focusStyle = detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.itemEl ? this.itemEl.focus() : this.el.querySelector(\"a\")?.focus();\n }\n\n private displayDefaultNavigationItem = (\n href: string,\n label: string,\n hreflang?: string,\n target?: string,\n rel?: string,\n referrerpolicy?: ReferrerPolicy,\n download?: string | boolean\n ) => {\n const variant =\n this.isTopNavChild || this.inTopNavSideMenu ? \"body\" : \"label\";\n const ChevronIconComponent = this.expandable && (\n <div class={{ svg: true }} innerHTML={chevronIcon}></div>\n );\n const slottedBadgeEl = this.el.querySelector('[slot=\"badge\"]');\n const BadgeComponent = slottedBadgeEl && (\n <div class=\"inline-badge\">\n <slot name=\"badge\"></slot>\n </div>\n );\n const IconComponent = this.el.querySelector('[slot=\"icon\"]') && (\n <div class=\"icon\">\n <slot name=\"icon\"></slot>\n {this.isInSideNav && BadgeComponent}\n </div>\n );\n\n return href !== \"\" ? (\n <a\n href={href}\n target={target}\n rel={rel}\n hreflang={hreflang}\n referrerPolicy={referrerpolicy}\n download={download !== false ? download : null}\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n part=\"link\"\n aria-label={this.ariaLabel ? this.ariaLabel : null}\n >\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {target === \"_blank\" && (\n <span class=\"open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n {BadgeComponent}\n <div class=\"chevron-container\">{ChevronIconComponent}</div>\n </a>\n ) : (\n <div tabindex=\"0\" class=\"link\" ref={(el) => (this.itemEl = el)}>\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n {BadgeComponent}\n </div>\n );\n };\n\n private topNavResizedHandler = ({\n detail,\n }: CustomEvent<{ size: number }>) => {\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)\n ?.customMobileBreakpoint || DEVICE_SIZES.L);\n }\n };\n\n private sideNavExpandHandler = ({\n detail,\n }: CustomEvent<IcExpandedDetail>) => {\n const { sideNavExpanded, sideNavMobile } = detail;\n this.sideNavExpanded = sideNavExpanded;\n this.isSideNavMobile = sideNavMobile;\n this.sideNavToggleTooltip(!sideNavExpanded && !sideNavMobile);\n };\n\n private handleBlur = ({ relatedTarget }: FocusEvent) => {\n if (\n relatedTarget === null ||\n (relatedTarget as HTMLElement).tagName !== \"IC-NAVIGATION-ITEM\"\n ) {\n this.childBlur.emit();\n }\n };\n\n private handleClick = (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"]}
@@ -123,16 +123,16 @@ export class NavigationMenu {
123
123
  }
124
124
  }
125
125
  render() {
126
- return (h(Host, { key: 'd37a801a1b4c312fb3d1e301150ce4b731b8e378', class: { [`ic-theme-${this.theme}`]: this.theme !== "inherit" } }, h("div", { key: 'e243034b5ec260c946217f411c4c0c56773a3ff0', class: "popout-modal", onClick: this.closeMenu }), h("div", { key: '3958153a358974fa0ba7260f985ca48bbe010a5d', class: "popout-menu", role: "dialog", "aria-modal": "true", "aria-label": `${this.hasNavigation ? "Navigation" : "App"} menu` }, h("span", { key: 'ec3a59243f6fe8bc839f09cf6cb23013f1258cc0', "aria-hidden": "true", id: "navigation-landmark-text", class: "navigation-landmark-text" }, "Main navigation"), h("nav", { key: 'f0fe76cf4eeec54e3382344abec7fe80b6ab5ba5', "aria-labelledby": "navigation-landmark-text", "aria-hidden": this.hasNavigation ? "false" : "true" }, h("div", { key: '246f1b43500b11e0ec9b133030c79f140b5aacd3', class: {
126
+ return (h(Host, { key: '238491dcf801f29d30b1da0e65546592557fde24', class: { [`ic-theme-${this.theme}`]: this.theme !== "inherit" } }, h("div", { key: '1f4c1f5653cf725ea520300c56f7769716ed5c2a', class: "popout-modal", onClick: this.closeMenu }), h("div", { key: '7b1ff84083af3b3ceb6e309844c99d7e3a0ae350', class: "popout-menu", role: "dialog", "aria-modal": "true", "aria-label": `${this.hasNavigation ? "Navigation" : "App"} menu` }, h("span", { key: '3fbc25efa5a16c9f091ab455379e2c94ae5f35ca', "aria-hidden": "true", id: "navigation-landmark-text", class: "navigation-landmark-text" }, "Main navigation"), h("nav", { key: '2847e0434b96df094d4d14dc39aaa65d9b504435', "aria-labelledby": "navigation-landmark-text", "aria-hidden": this.hasNavigation ? "false" : "true" }, h("div", { key: 'a9543c0611d2c8dd1427500b1cd4cbf2de448b7b', class: {
127
127
  ["menu-close-button-container"]: true,
128
128
  ["nav-group-first"]: this.navGroupFirst,
129
- } }, h("ic-button", { key: 'c836f86ad0ca67841cca01b8a6717d78982163ed', ref: (el) => (this.closeButton = el), id: "menu-close-button", class: "menu-close-button", variant: "icon", size: "large", "aria-label": `Close ${this.hasNavigation ? "navigation" : "app"} menu`, onClick: this.closeMenu }, h("svg", { key: 'd7524666b3f08ed7ab9ece6b33843fab72e521d7', width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'd659007ab35980d78395c7acbc2a34f333108d68', d: "M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z" })))), this.hasNavigation && h("slot", { key: '4067b296fb1eade8a35e62340be0b682faeebf0c', name: "navigation" })), this.hasButtons && (h("div", { key: '6020b1dea12858619b1c4e42a9c28829ce9d926b', class: {
129
+ } }, h("ic-button", { key: 'c6116c335e9c6c29bde6485421b3d72456e4c485', ref: (el) => (this.closeButton = el), id: "menu-close-button", class: "menu-close-button", variant: "icon", size: "large", "aria-label": `Close ${this.hasNavigation ? "navigation" : "app"} menu`, onClick: this.closeMenu }, h("svg", { key: 'f224bd0fbc219bb6ae337399e6f08c3187d32fb7', width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'a4419dfcec4df358e35bb7c9b623e5a720b89a3e', d: "M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z" })))), this.hasNavigation && h("slot", { key: '29d722a813544e8e82a07e2642a7014b32673dda', name: "navigation" })), this.hasButtons && (h("div", { key: '96ee54e19b08c60e1de050dc06367009bb15484f', class: {
130
130
  ["menu-buttons-container"]: true,
131
131
  ["menu-buttons-container-nav-item-above"]: this.navItemAboveButtons,
132
- } }, h("slot", { key: '751e587cc503a8db8a668a8ca2335da12893e459', name: "buttons" }))), (this.status !== "" || this.version !== "") && (h("div", { key: 'e368dacc5061176d89f726b891cc5cc2f3913b9d', class: {
132
+ } }, h("slot", { key: '851897a3d08d4a74078379b16fb66f74392380dd', name: "buttons" }))), (this.status !== "" || this.version !== "") && (h("div", { key: 'faa0f531a4f2232c343b7197a798f7b79bfaaa17', class: {
133
133
  ["menu-status-version-container"]: true,
134
134
  ["status-version-no-buttons"]: !this.hasButtons,
135
- } }, this.status !== "" && (h("div", { key: '7745d4b718c9644598220a5625a260995d195ce1', class: "menu-status" }, h("ic-typography", { key: '448b1a0d774fd9ffda795969c2184539e6d13ee3', variant: "label-uppercase", "aria-label": "app tag", class: "menu-status-text" }, this.status))), this.version !== "" && (h("div", { key: '79a7a1467b334acf390661808a7c0eb9bbedcd6e', class: "menu-version" }, h("ic-typography", { key: '87cc4741151c42401646094fb3ae20bc6efbc54d', variant: "label", class: "menu-version-text", "aria-label": "app version" }, this.version))))))));
135
+ } }, this.status !== "" && (h("div", { key: '43000a7655c49bdd7c15beaaef8f371f20c59049', class: "menu-status" }, h("ic-typography", { key: 'f92edc3ead11de1eb052835e0fef11ea26f70e91', variant: "label-uppercase", "aria-label": "app tag", class: "menu-status-text" }, this.status))), this.version !== "" && (h("div", { key: '84b3193b76f979b9dfd967fe549eb996dedf3631', class: "menu-version" }, h("ic-typography", { key: 'f3ea4120a05fc6707ff54ce634aa6798d7dbade3', variant: "label", class: "menu-version-text", "aria-label": "app version" }, this.version))))))));
136
136
  }
137
137
  static get is() { return "ic-navigation-menu"; }
138
138
  static get encapsulation() { return "shadow"; }
@@ -111,19 +111,19 @@ export class PageHeader {
111
111
  const navAriaLabel = `${isSlotUsed(this.el, "heading")
112
112
  ? (_b = (_a = this.el.querySelector('[slot="heading"]')) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : ""
113
113
  : heading !== null && heading !== void 0 ? heading : ""} page sections`;
114
- return (h(Host, { key: 'd824bd22834b5c42ab5457e0ad6f09d2cc0d1f6f', class: {
114
+ return (h(Host, { key: 'f988d0a582d79cad1f4356f95723c8773bf17190', class: {
115
115
  ["ic-page-header-sticky"]: !!sticky,
116
116
  ["ic-page-header-sticky-desktop"]: !sticky && !!stickyDesktopOnly,
117
117
  [`ic-theme-${theme}`]: theme !== "inherit",
118
- }, "aria-label": this.el.ariaLabel || "page header" }, h("header", { key: '078f234437a6b6031215abdef6889f0f022445c9', class: {
118
+ }, "aria-label": this.el.ariaLabel || "page header" }, h("header", { key: 'e4b8a519550fc032df5155fcff89c73ff81f85ee', class: {
119
119
  ["border-bottom"]: !!border,
120
120
  ["tabs"]: isSlotUsed(this.el, "tabs"),
121
- }, role: "presentation" }, h("ic-section-container", { key: '28365d7114d33baad19f681213e386b838f4daee', aligned: aligned, fullHeight: isSlotUsed(this.el, "tabs") }, isSlotUsed(this.el, "breadcrumbs") && (h("div", { key: '5fd705035a0e0ad4959168808033106328da53cb', class: "breadcrumb-area" }, h("slot", { key: '9b42e05e754c78870462b306b9874bc04533ff3a', name: "breadcrumbs" }))), h("div", { key: 'e908d529ef2434efcc7fb3ad49443f308f019b15', class: "main-content" }, h("div", { key: 'd6822ad86688e22f45d8a87eedf22a1b3c7e9218', class: "title-area" }, h("div", { key: '4682ccbb1b9aa9b10bb884538f83d9f355bc6002', class: "header-content" }, h("slot", { key: 'f578b80bf86ea81c26a44561fbd62501045b5de2', name: "heading" }, h("ic-typography", { key: 'c2149b8207c2d873e93002835bfb4ee099e6cd8d', variant: size === "small" ? "h4" : "h2", class: "heading" }, h("h2", { key: '24d19a7676e5c4cf93628d16384a6bbb30ee8ad5' }, heading))), h("slot", { key: 'cd1c120dbd2c417273122ad8336a3d08c381e802', name: "heading-adornment" })), h("div", { key: '23ba15f70724b5d33a10973a95371c71f07dcbaf', class: {
121
+ }, role: "presentation" }, h("ic-section-container", { key: '88196b15dc099dcd58cb05b85b9a658af8a0870f', aligned: aligned, fullHeight: isSlotUsed(this.el, "tabs") }, isSlotUsed(this.el, "breadcrumbs") && (h("div", { key: '6766660061af3380f50b0c947b36ce82a71256cd', class: "breadcrumb-area" }, h("slot", { key: '489b45909344aa2cfecf01bcc9ebc3d1b8089c45', name: "breadcrumbs" }))), h("div", { key: '47de9346bf042254a6c085fa94e049ba1eb15264', class: "main-content" }, h("div", { key: 'f90a01c812d8abcc73c92c54e00eb3944b8c433d', class: "title-area" }, h("div", { key: '966f731d25f434ce6f83f79175d0341c22a56687', class: "header-content" }, h("slot", { key: '9025f92b304b3e2c67cb63339bdc33699ddb7fde', name: "heading" }, h("ic-typography", { key: 'fe72a4b26d562fa57bbe52289c1a5a949b89f772', variant: size === "small" ? "h4" : "h2", class: "heading" }, h("h2", { key: 'd86917ae13eb27ba68de7755bfdd727d814770e7' }, heading))), h("slot", { key: '8c9fca603f02ffaf1318ce855b6a17bed99ff6f0', name: "heading-adornment" })), h("div", { key: 'aa5559ddfef89fd22fe0994f620b06c7d317f562', class: {
122
122
  ["subheading-content"]: !!subheading || isSlotUsed(this.el, "subheading"),
123
123
  ["small"]: size === "small",
124
- } }, h("slot", { key: 'f7d11c2051d787989caf27a43a216b106102be03', name: "subheading" }, h("ic-typography", { key: 'fe349a99d560b3a4cea6b055bb7bda1e0224aeac', variant: "body" }, subheading)))), isSlotUsed(this.el, "actions") && (h("div", { key: '943b5348b38bd35faae3d9fad3b0127972d585bc', class: "action-area" }, h("slot", { key: '474d1aed9a1c6df3ceb7e6422ff0b58b1faeddda', name: "actions" }))), isSlotUsed(this.el, "input") && (h("div", { key: 'd8b844fd28539346ab546a74b83e84b4a8837f47', class: "input-area" }, h("slot", { key: '74a70bf47c9d6e9f2973ac7cd57b5171f1cdb859', name: "input" })))), (isSlotUsed(this.el, "stepper") ||
125
- isSlotUsed(this.el, "tabs")) && (h("div", { key: 'a514e3cca152162977d3dccdd0037f57ac073507', class: "navigation-area" }, isSlotUsed(this.el, "stepper") &&
126
- !isSlotUsed(this.el, "tabs") && h("slot", { key: '545c22316ae4bd5069fa1922c56dfad651af74ef', name: "stepper" }), isSlotUsed(this.el, "tabs") && (h("nav", { key: '4a50c3f0ef99b0ca3839262d2be1d77cbe0b1c3a', "aria-label": navAriaLabel }, h("ic-horizontal-scroll", { key: 'ff72b71abd6491ac2fe79aa05a4629aa4cd20ada' }, h("ul", { key: '6c1b9eadc2d11a1c7073309987d52b376c149d08', class: "tabs-slot" }, h("slot", { key: '86082f4787bab5cc0eb4fb69eb6db4a46e29a454', name: "tabs" })))))))))));
124
+ } }, h("slot", { key: '8ca2ec4f5e79385004d82721b32aaa4477e5e383', name: "subheading" }, h("ic-typography", { key: 'e3abaf1b025005164883f6aac049425101703a0a', variant: "body" }, subheading)))), isSlotUsed(this.el, "actions") && (h("div", { key: '501f5d87bcc67f92a7fc109e1507ecfc82de113d', class: "action-area" }, h("slot", { key: '59b2c28e72936af87fca0d3b5fc78a9292235278', name: "actions" }))), isSlotUsed(this.el, "input") && (h("div", { key: '50a7b161cad03ca332d7ba189bbe3e07845b5b3b', class: "input-area" }, h("slot", { key: 'e3dabe11caf744a6b1293fa45bb668b959c330c5', name: "input" })))), (isSlotUsed(this.el, "stepper") ||
125
+ isSlotUsed(this.el, "tabs")) && (h("div", { key: '7399fec29cf8483d3a0150fb66f8b51fd9bcccf9', class: "navigation-area" }, isSlotUsed(this.el, "stepper") &&
126
+ !isSlotUsed(this.el, "tabs") && h("slot", { key: '60243b69d094b1842c7ba0841170d263c512b83f', name: "stepper" }), isSlotUsed(this.el, "tabs") && (h("nav", { key: 'f7b3cfd55bb421b3f9a988c65d66b3206d2ded1b', "aria-label": navAriaLabel }, h("ic-horizontal-scroll", { key: '8344abb3186738bda94429804dcc927b87578c66' }, h("ul", { key: '4c7e5ffe0acf83738cea0b93ef68910cde3a68fb', class: "tabs-slot" }, h("slot", { key: '1634b736035f20da485de5cd90590a2d8e07be3a', name: "tabs" })))))))))));
127
127
  }
128
128
  static get is() { return "ic-page-header"; }
129
129
  static get encapsulation() { return "shadow"; }
@@ -239,14 +239,14 @@ export class Pagination {
239
239
  }
240
240
  render() {
241
241
  const { type, currentPage, hideCurrentPage, disabled, hideFirstAndLastPageButton, label, theme, monochrome, } = this;
242
- return (h(Host, { key: 'def082d6417770159241eaf69660011a9fa56978', class: {
242
+ return (h(Host, { key: 'f0bb93865da97a2978792da0ecec7398d17fd0cd', class: {
243
243
  [`ic-theme-${theme}`]: theme !== "inherit",
244
244
  ["ic-pagination-monochrome"]: !!monochrome,
245
- } }, type === "simple" && (h("nav", { key: '7d2a663d826de4c5916d6ece70222bf28157b57b', class: {
245
+ } }, type === "simple" && (h("nav", { key: 'd98096aea9467c15560cf5bee82f979a27a6e72b', class: {
246
246
  ["disabled"]: !!disabled,
247
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h("ic-pagination-item", { key: '010243beef572daba8a9c1f58978213f02446b2e', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("nav", { key: '7ab291c9e698dfb1ead08c7a59858a4f3f715488', class: {
247
+ }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h("ic-pagination-item", { key: 'e578665c5de2260f824cf4ff3c3e29dafabe7037', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("nav", { key: 'e1172d5a137f47d778f3878155bb747b32303179', class: {
248
248
  ["disabled"]: !!disabled,
249
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("span", { key: '2b7be6cd03fb72ccaf3a2bd08fbf5ef5f52e5050', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
249
+ }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("span", { key: '2094451eaeb1eb5f6f52f4a93f8b30534bd31162', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
250
250
  }
251
251
  static get is() { return "ic-pagination"; }
252
252
  static get encapsulation() { return "shadow"; }
@@ -38,7 +38,7 @@ export class PaginationItem {
38
38
  }
39
39
  render() {
40
40
  const { page, selected, type, disabled, label, capitalizedLabel, monochrome, } = this;
41
- return (h("a", { key: '775649dcb0b2df73e18ddbb563cb088f5e4bf394', class: { ["monochrome"]: !!monochrome } }, type === "ellipsis" ? (h("div", { class: {
41
+ return (h("a", { key: '96dd8b411124b3276fdd7b630d6b1d15528398a0', class: { ["monochrome"]: !!monochrome } }, type === "ellipsis" ? (h("div", { class: {
42
42
  ["item-container"]: true,
43
43
  ["ellipsis"]: true,
44
44
  ["disabled"]: !!disabled,
@@ -468,7 +468,6 @@ video {
468
468
  box-sizing: border-box;
469
469
  box-shadow: var(--ic-elevation-overlay);
470
470
  display: none;
471
- overflow-x: clip;
472
471
  }
473
472
 
474
473
  :host(.on-dialog) {
@@ -1,6 +1,6 @@
1
1
  import { Host, h, } from "@stencil/core";
2
2
  import { getSlotElements, isPropDefined } from "../../utils/helpers";
3
- import { createPopper } from "@popperjs/core";
3
+ import { createPopper, } from "@popperjs/core";
4
4
  const MENU_SELECTOR = "div.menu-body";
5
5
  export class PopoverMenu {
6
6
  constructor() {
@@ -8,6 +8,7 @@ export class PopoverMenu {
8
8
  this.popoverMenuEls = [];
9
9
  this.openingFromChild = false;
10
10
  this.openingFromParent = false;
11
+ this.popperProps = {};
11
12
  /**
12
13
  * @internal The level of menu being displayed.
13
14
  */
@@ -93,9 +94,7 @@ export class PopoverMenu {
93
94
  };
94
95
  this.initPopperJS = () => {
95
96
  if (this.anchorEl) {
96
- this.popperInstance = createPopper(this.anchorEl, this.el, {
97
- placement: "bottom-start",
98
- modifiers: [
97
+ this.popperInstance = createPopper(this.anchorEl, this.el, Object.assign({ placement: "bottom-start", modifiers: [
99
98
  {
100
99
  name: "offset",
101
100
  options: {
@@ -109,8 +108,7 @@ export class PopoverMenu {
109
108
  rootBoundary: "viewport",
110
109
  },
111
110
  },
112
- ],
113
- });
111
+ ] }, this.popperProps));
114
112
  }
115
113
  };
116
114
  }
@@ -263,18 +261,25 @@ export class PopoverMenu {
263
261
  this.icPopoverClosed.emit(menuElement);
264
262
  }
265
263
  }
264
+ /**
265
+ * @internal This method allows props to be added to the PopperJS createPopper instance outside of the popover menu
266
+ * @param props object - createPopper props set externally
267
+ */
268
+ async setExternalPopperProps(props) {
269
+ this.popperProps = props;
270
+ }
266
271
  render() {
267
- return (h(Host, { key: '25b16bfd5f6ad9dd7ed1fcfedc773cb3bc1c76d2', class: {
272
+ return (h(Host, { key: '008abc92ccfd90773e9d566adf8893a2c995ff79', class: {
268
273
  ["ic-popover-menu-open"]: !!this.open,
269
274
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
270
- } }, h("div", { key: '73acc30bb2ef5c83924e47508ad093dcbbc5adbe', id: this.parentPopover === undefined
275
+ } }, h("div", { key: '8ae1ae8843f91ccae211e7f9c540a8c77b64f0df', id: this.parentPopover === undefined
271
276
  ? `ic-popover-submenu-${this.submenuId}`
272
277
  : "", class: {
273
278
  menu: true,
274
- } }, h("span", { key: 'd0392b2ce914c01539f7a66c5aee443de194d434', class: {
279
+ } }, h("span", { key: '575a4741825c2336288602abdd7c28710aec3374', class: {
275
280
  "opening-from-parent": this.openingFromParent,
276
281
  "opening-from-child": this.openingFromChild,
277
- } }, isPropDefined(this.submenuId) && (h("span", { key: 'eb92f3ac08c7cb711d31ed8a12fd210aa44f7cc2' }, h("span", { key: 'b0a051fe820b3a933dc09fdd370227a8cb19c2b2', role: "menu" }, h("ic-menu-item", { key: '9f18829d0c1245e3539e4a74d62c37f5a8857203', class: "ic-popover-submenu-back-button", ref: (el) => (this.backButton = el), label: "Back", onClick: this.handleBackButtonClick, id: `ic-popover-submenu-back-button-${this.submenuLevel}` }, h("svg", { key: '5f6918d86d7b179cef7f90c94e72a4055aaffd24', slot: "icon", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "submenu-back-icon" }, h("path", { key: 'e8dc4472dff2b10e5f127608a437efd19522ccd3', d: "M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z", fill: "currentColor" })))), h("ic-typography", { key: '3c3b99b9548a300b37b1ae99a0d40de0eb748086', variant: "subtitle-small", class: "parent-label" }, this.parentLabel))), h("div", { key: 'dc87929934a320edf8bb2ae3a6936c26500f4f11', class: "menu-body", "aria-label": this.getMenuAriaLabel(), role: "menu" }, h("slot", { key: '6df2182e3b8832790238aded793393ec1f2f34ff' }))))));
282
+ } }, isPropDefined(this.submenuId) && (h("span", { key: '2da339d48d6f3350b9fc93f3d3317e78f676803a' }, h("span", { key: '45c2e0ef1f165774dee5b415166fc440e580a264', role: "menu" }, h("ic-menu-item", { key: '446898ddd29b9ae6dba6b0add0db299e9287a4c9', class: "ic-popover-submenu-back-button", ref: (el) => (this.backButton = el), label: "Back", onClick: this.handleBackButtonClick, id: `ic-popover-submenu-back-button-${this.submenuLevel}` }, h("svg", { key: 'cf4ad24eec5fd0a52e496e544b7d95d2e2dd0888', slot: "icon", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "submenu-back-icon" }, h("path", { key: '0c3f32a0366c400e0611692e11566a33e1188e97', d: "M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z", fill: "currentColor" })))), h("ic-typography", { key: 'a187923d769356a7d8b36bf602d8b86f923b5bcb', variant: "subtitle-small", class: "parent-label" }, this.parentLabel))), h("div", { key: '34097af3c166b8ba904542a6b181d98e4a98afbf', class: "menu-body", "aria-label": this.getMenuAriaLabel(), role: "menu" }, h("slot", { key: 'ad07288d0f6c7e45237b3e76df31faf848a705b1' }))))));
278
283
  }
279
284
  static get is() { return "ic-popover-menu"; }
280
285
  static get encapsulation() { return "shadow"; }
@@ -450,7 +455,8 @@ export class PopoverMenu {
450
455
  static get states() {
451
456
  return {
452
457
  "openingFromChild": {},
453
- "openingFromParent": {}
458
+ "openingFromParent": {},
459
+ "popperProps": {}
454
460
  };
455
461
  }
456
462
  static get events() {
@@ -552,6 +558,46 @@ export class PopoverMenu {
552
558
  "text": "setFocusToAnchor when true return focus to anchor element when menu is closed"
553
559
  }]
554
560
  }
561
+ },
562
+ "setExternalPopperProps": {
563
+ "complexType": {
564
+ "signature": "<T extends Partial<Options>>(props: T) => Promise<void>",
565
+ "parameters": [{
566
+ "name": "props",
567
+ "type": "T",
568
+ "docs": "object - createPopper props set externally"
569
+ }],
570
+ "references": {
571
+ "Promise": {
572
+ "location": "global",
573
+ "id": "global::Promise"
574
+ },
575
+ "Partial": {
576
+ "location": "global",
577
+ "id": "global::Partial"
578
+ },
579
+ "Options": {
580
+ "location": "import",
581
+ "path": "@popperjs/core",
582
+ "id": "node_modules::Options"
583
+ },
584
+ "T": {
585
+ "location": "global",
586
+ "id": "global::T"
587
+ }
588
+ },
589
+ "return": "Promise<void>"
590
+ },
591
+ "docs": {
592
+ "text": "",
593
+ "tags": [{
594
+ "name": "internal",
595
+ "text": "This method allows props to be added to the PopperJS createPopper instance outside of the popover menu"
596
+ }, {
597
+ "name": "param",
598
+ "text": "props object - createPopper props set externally"
599
+ }]
600
+ }
555
601
  }
556
602
  };
557
603
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-popover-menu.js","sourceRoot":"","sources":["../../../src/components/ic-popover-menu/ic-popover-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { getSlotElements, isPropDefined } from \"../../utils/helpers\";\nimport { createPopper, Instance as PopperInstance } from \"@popperjs/core\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst MENU_SELECTOR = \"div.menu-body\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n private anchorEl: HTMLElement | null;\n private ARIA_LABEL: string = \"aria-label\";\n private backButton?: HTMLIcMenuItemElement;\n private currentFocus: number;\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n private popperInstance: PopperInstance | null;\n\n @Element() el: HTMLIcPopoverMenuElement;\n\n @State() openingFromChild: boolean = false;\n @State() openingFromParent: boolean = false;\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel?: number = 1;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open?: boolean | undefined =\n undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n const popoverArr = this.el.parentElement?.querySelectorAll(\n `ic-popover-menu`\n ) as NodeListOf<HTMLIcPopoverMenuElement>;\n if (this.open) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.backButton && this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n } else if (this.popperInstance) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n /**\n * Emitted when the popover menu is closed.\n */\n @Event() icPopoverClosed: EventEmitter<HTMLIcMenuItemElement>;\n\n disconnectedCallback(): void {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.el.shadowRoot?.querySelector(MENU_SELECTOR);\n if (slotWrapper) {\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n }\n\n if (\n this.submenuId === undefined &&\n this.el.getAttribute(this.ARIA_LABEL) === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n\n this.watchOpenHandler();\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidRender(): void {\n if (this.open && !this.popperInstance) {\n this.initPopperJS();\n }\n }\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent<HTMLIcMenuItemElement>): void {\n if (!ev.detail.submenuTriggerFor && ev.detail.label !== \"Back\") {\n this.closeMenu(false, ev.detail);\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.el;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel! + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(\n this.currentFocus,\n ev.key === \"ArrowDown\"\n );\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n ev.preventDefault();\n if (this.open) {\n this.closeMenu(true);\n this.el.blur();\n }\n break;\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string | undefined): HTMLElement | null => {\n let anchorElement: HTMLElement | null = null;\n if (!anchor) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const { id, tagName } = ev.target as HTMLElement;\n return (\n id !== this.anchor &&\n tagName !== \"IC-MENU-ITEM\" &&\n tagName !== \"IC-MENU-GROUP\" &&\n tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n /**\n * @internal Close the menu, emit icPopoverClosed of the root popover\n * @param setFocusToAnchor when true return focus to anchor element when menu is closed\n */\n @Method()\n async closeMenu(\n setFocusToAnchor = false,\n menuElement?: HTMLIcMenuItemElement\n ): Promise<void> {\n this.open = false;\n if (this.parentPopover) {\n this.parentPopover.closeMenu(setFocusToAnchor, menuElement);\n } else {\n if (setFocusToAnchor) {\n this.anchorEl?.focus();\n }\n this.icPopoverClosed.emit(menuElement);\n }\n }\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot?.querySelector(\n \".menu-items-wrapper\"\n );\n if (groupSlotWrapper) {\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n menuGroupElements && this.addMenuItems(menuGroupElements);\n }\n }\n }\n };\n\n private getMenuAriaLabel = (): string | null => {\n const ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n\n if (isPropDefined(this.submenuId)) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover?.openFromChild();\n this.open = false;\n };\n\n private initPopperJS = () => {\n if (this.anchorEl) {\n this.popperInstance = createPopper(this.anchorEl, this.el, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\", \"top-end\", \"bottom-end\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n });\n }\n };\n\n render() {\n return (\n <Host\n class={{\n [\"ic-popover-menu-open\"]: !!this.open,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n >\n <span\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {isPropDefined(this.submenuId) && (\n <span>\n <span role=\"menu\">\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n </span>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </span>\n )}\n <div\n class=\"menu-body\"\n aria-label={this.getMenuAriaLabel()}\n role=\"menu\"\n >\n <slot></slot>\n </div>\n </span>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-popover-menu.js","sourceRoot":"","sources":["../../../src/components/ic-popover-menu/ic-popover-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { getSlotElements, isPropDefined } from \"../../utils/helpers\";\nimport {\n createPopper,\n Instance as PopperInstance,\n Options,\n} from \"@popperjs/core\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst MENU_SELECTOR = \"div.menu-body\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n private anchorEl: HTMLElement | null;\n private ARIA_LABEL: string = \"aria-label\";\n private backButton?: HTMLIcMenuItemElement;\n private currentFocus: number;\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n private popperInstance: PopperInstance | null;\n\n @Element() el: HTMLIcPopoverMenuElement;\n\n @State() openingFromChild: boolean = false;\n @State() openingFromParent: boolean = false;\n @State() popperProps: Partial<Options> = {};\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel?: number = 1;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open?: boolean | undefined =\n undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n const popoverArr = this.el.parentElement?.querySelectorAll(\n `ic-popover-menu`\n ) as NodeListOf<HTMLIcPopoverMenuElement>;\n if (this.open) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.backButton && this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n } else if (this.popperInstance) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n /**\n * Emitted when the popover menu is closed.\n */\n @Event() icPopoverClosed: EventEmitter<HTMLIcMenuItemElement>;\n\n disconnectedCallback(): void {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.el.shadowRoot?.querySelector(MENU_SELECTOR);\n if (slotWrapper) {\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n }\n\n if (\n this.submenuId === undefined &&\n this.el.getAttribute(this.ARIA_LABEL) === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n\n this.watchOpenHandler();\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidRender(): void {\n if (this.open && !this.popperInstance) {\n this.initPopperJS();\n }\n }\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent<HTMLIcMenuItemElement>): void {\n if (!ev.detail.submenuTriggerFor && ev.detail.label !== \"Back\") {\n this.closeMenu(false, ev.detail);\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.el;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel! + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(\n this.currentFocus,\n ev.key === \"ArrowDown\"\n );\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n ev.preventDefault();\n if (this.open) {\n this.closeMenu(true);\n this.el.blur();\n }\n break;\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string | undefined): HTMLElement | null => {\n let anchorElement: HTMLElement | null = null;\n if (!anchor) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const { id, tagName } = ev.target as HTMLElement;\n return (\n id !== this.anchor &&\n tagName !== \"IC-MENU-ITEM\" &&\n tagName !== \"IC-MENU-GROUP\" &&\n tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n /**\n * @internal Close the menu, emit icPopoverClosed of the root popover\n * @param setFocusToAnchor when true return focus to anchor element when menu is closed\n */\n @Method()\n async closeMenu(\n setFocusToAnchor = false,\n menuElement?: HTMLIcMenuItemElement\n ): Promise<void> {\n this.open = false;\n if (this.parentPopover) {\n this.parentPopover.closeMenu(setFocusToAnchor, menuElement);\n } else {\n if (setFocusToAnchor) {\n this.anchorEl?.focus();\n }\n this.icPopoverClosed.emit(menuElement);\n }\n }\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of the popover menu\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot?.querySelector(\n \".menu-items-wrapper\"\n );\n if (groupSlotWrapper) {\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n menuGroupElements && this.addMenuItems(menuGroupElements);\n }\n }\n }\n };\n\n private getMenuAriaLabel = (): string | null => {\n const ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n\n if (isPropDefined(this.submenuId)) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover?.openFromChild();\n this.open = false;\n };\n\n private initPopperJS = () => {\n if (this.anchorEl) {\n this.popperInstance = createPopper(this.anchorEl, this.el, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\", \"top-end\", \"bottom-end\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n ...this.popperProps,\n });\n }\n };\n\n render() {\n return (\n <Host\n class={{\n [\"ic-popover-menu-open\"]: !!this.open,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n >\n <span\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {isPropDefined(this.submenuId) && (\n <span>\n <span role=\"menu\">\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n </span>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </span>\n )}\n <div\n class=\"menu-body\"\n aria-label={this.getMenuAriaLabel()}\n role=\"menu\"\n >\n <slot></slot>\n </div>\n </span>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -473,14 +473,22 @@ ic-input-validation {
473
473
  margin-top: calc(var(--ic-space-sm) / 2);
474
474
  }
475
475
 
476
- ic-input-label ic-typography {
476
+ ic-input-label:not(.with-helper) .ic-typography-label,
477
+ ic-input-label .helpertext {
477
478
  margin-bottom: var(--ic-space-sm);
478
479
  }
479
480
 
480
- :host(.ic-radio-group-small) ic-input-label ic-typography {
481
+ :host(.ic-radio-group-small)
482
+ ic-input-label:not(.with-helper)
483
+ .ic-typography-label,
484
+ :host(.ic-radio-group-small) ic-input-label .helpertext {
481
485
  margin-bottom: calc(var(--ic-space-sm) / 2);
482
486
  }
483
487
 
488
+ ic-input-label .helpertext {
489
+ display: block;
490
+ }
491
+
484
492
  :host .radio-buttons-container {
485
493
  display: flex;
486
494
  flex-direction: column;
@@ -1,5 +1,8 @@
1
1
  import { Host, h, } from "@stencil/core";
2
2
  import { hasValidationStatus, slotHasContent, onComponentRequiredPropUndefined, removeDisabledFalse, checkResizeObserver, } from "../../utils/helpers";
3
+ /**
4
+ * @slot helper-text - Content is set as the helper text for the radio group.
5
+ */
3
6
  export class RadioGroup {
4
7
  constructor() {
5
8
  this.resizeObserver = null;
@@ -222,16 +225,16 @@ export class RadioGroup {
222
225
  }
223
226
  render() {
224
227
  const { currentOrientation, disabled, handleKeyDown, helperText, hideLabel, label, required, size, validationStatus, validationText, theme, } = this;
225
- return (h(Host, { key: '820e82c681a22e98737769e9571cbe75d2223956', onKeyDown: handleKeyDown, class: {
228
+ return (h(Host, { key: '04d5db82b3be0bd747a4bbbf540ff38a2344bb18', onKeyDown: handleKeyDown, class: {
226
229
  "ic-radio-group-small": size === "small",
227
230
  [`ic-theme-${theme}`]: theme !== "inherit",
228
- } }, h("div", { key: 'a95fd7bd0138f04cd3cf0b1e75df29183792d8cc', role: "radiogroup", "aria-label": `${label}${required ? ", required" : ""}` }, !hideLabel && (h("ic-input-label", { key: '484c655cfd75c5994c3c5ee1b1e70aed491ad361', class: {
231
+ } }, h("div", { key: '7293abe2277d46aa27ffd81ad47982f6f7d63e51', role: "radiogroup", "aria-label": `${label}${required ? ", required" : ""}` }, !hideLabel && (h("ic-input-label", { key: '90c7d78da23c13d04df52dcdf554af8a15de6e05', class: {
229
232
  [`${validationStatus}`]: true,
230
233
  ["disabled"]: !!disabled,
231
- }, label: label, helperText: helperText, required: required, disabled: disabled })), h("div", { key: 'eed17f3169436eb1f8b672ecfdd51759443d5f1c', class: {
234
+ }, label: label, helperText: helperText, required: required, disabled: disabled }, h("slot", { key: 'fe90706c42c1abebb7bbf757808af7219b577aa8', name: "helper-text", slot: "helper-text" }))), h("div", { key: 'd2e61e45ecdcb0c40229f4d25a2c6c0ed1247f11', class: {
232
235
  "radio-buttons-container": true,
233
236
  horizontal: currentOrientation === this.RADIO_HORIZONTAL,
234
- }, ref: (el) => (this.radioContainer = el) }, h("slot", { key: '878666c0c36d6456ed072ee0eddc6683b98ef4a5' }))), hasValidationStatus(validationStatus, disabled) && (h("ic-input-validation", { key: '79458eb93662029a89c31bb26b5174c2fd70c3af', ariaLiveMode: "polite", status: validationStatus, message: validationText }))));
237
+ }, ref: (el) => (this.radioContainer = el) }, h("slot", { key: 'bac88f9fba9a5a242aced76a20f21933f4de6299' }))), hasValidationStatus(validationStatus, disabled) && (h("ic-input-validation", { key: 'f7a0dc8e5d1ac3d774644910600153aba9caacd5', ariaLiveMode: "polite", status: validationStatus, message: validationText }))));
235
238
  }
236
239
  static get is() { return "ic-radio-group"; }
237
240
  static get encapsulation() { return "shadow"; }