@ukic/web-components 3.18.0 → 3.20.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 (493) hide show
  1. package/dist/cjs/{constants-3a9ba64a.js → constants-4d389abc.js} +14 -1
  2. package/dist/cjs/constants-4d389abc.js.map +1 -0
  3. package/dist/cjs/core.cjs.js +1 -1
  4. package/dist/cjs/{helpers-15fae358.js → helpers-3a796e7a.js} +161 -2
  5. package/dist/cjs/helpers-3a796e7a.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +8 -5
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-action-chip.cjs.entry.js +5 -5
  10. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +5 -5
  12. package/dist/cjs/ic-badge.cjs.entry.js +4 -4
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +4 -4
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js +4 -4
  15. package/dist/cjs/ic-button_3.cjs.entry.js +23 -22
  16. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js +6 -6
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +4 -4
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +6 -6
  20. package/dist/cjs/ic-chip.cjs.entry.js +14 -7
  21. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-data-list.cjs.entry.js +4 -3
  24. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-data-row.cjs.entry.js +4 -4
  26. package/dist/cjs/ic-dialog.cjs.entry.js +34 -125
  27. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-empty-state.cjs.entry.js +4 -4
  30. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  31. package/dist/cjs/ic-footer-link.cjs.entry.js +4 -4
  32. package/dist/cjs/ic-footer.cjs.entry.js +5 -5
  33. package/dist/cjs/ic-hero.cjs.entry.js +6 -6
  34. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +7 -7
  35. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +10 -10
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js +7 -7
  37. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-link.cjs.entry.js +3 -3
  41. package/dist/cjs/ic-menu-group.cjs.entry.js +3 -3
  42. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  43. package/dist/cjs/ic-navigation-button.cjs.entry.js +4 -4
  44. package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -3
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js +6 -6
  47. package/dist/cjs/ic-page-header.cjs.entry.js +8 -8
  48. package/dist/cjs/ic-pagination-item.cjs.entry.js +3 -3
  49. package/dist/cjs/ic-pagination.cjs.entry.js +31 -6
  50. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js +6 -6
  52. package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
  53. package/dist/cjs/ic-radio-option.cjs.entry.js +6 -6
  54. package/dist/cjs/ic-search-bar.cjs.entry.js +11 -11
  55. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  56. package/dist/cjs/ic-select.cjs.entry.js +8 -8
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -6
  58. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +4 -4
  61. package/dist/cjs/ic-step.cjs.entry.js +15 -15
  62. package/dist/cjs/ic-stepper.cjs.entry.js +4 -4
  63. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  64. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-tab-group.cjs.entry.js +4 -4
  66. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-tab.cjs.entry.js +4 -4
  68. package/dist/cjs/ic-text-field.cjs.entry.js +7 -7
  69. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-theme.cjs.entry.js +3 -3
  71. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-toast.cjs.entry.js +7 -7
  73. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +4 -4
  74. package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -4
  75. package/dist/cjs/ic-top-navigation.cjs.entry.js +9 -6
  76. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-typography.cjs.entry.js +4 -4
  78. package/dist/cjs/index.cjs.js +7 -1
  79. package/dist/cjs/index.cjs.js.map +1 -1
  80. package/dist/cjs/loader.cjs.js +1 -1
  81. package/dist/collection/components/ic-accordion/ic-accordion.stories.js +21 -0
  82. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +11 -0
  83. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +6 -2
  84. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  85. package/dist/collection/components/ic-action-chip/ic-action-chip.js +3 -3
  86. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -3
  87. package/dist/collection/components/ic-badge/ic-badge.js +2 -2
  88. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -2
  89. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  90. package/dist/collection/components/ic-button/ic-button.js +2 -2
  91. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  92. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
  93. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +2 -2
  94. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +1 -1
  95. package/dist/collection/components/ic-chip/ic-chip.css +12 -0
  96. package/dist/collection/components/ic-chip/ic-chip.js +31 -4
  97. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  98. package/dist/collection/components/ic-chip/ic-chip.stories.js +15 -0
  99. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +2 -2
  100. package/dist/collection/components/ic-data-list/ic-data-list.css +4 -0
  101. package/dist/collection/components/ic-data-list/ic-data-list.js +3 -2
  102. package/dist/collection/components/ic-data-list/ic-data-list.js.map +1 -1
  103. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  104. package/dist/collection/components/ic-dialog/ic-dialog.js +33 -124
  105. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  106. package/dist/collection/components/ic-dialog/ic-dialog.stories.js +3 -2
  107. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  108. package/dist/collection/components/ic-footer/ic-footer.js +3 -3
  109. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  110. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  111. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  112. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  113. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  114. package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
  115. package/dist/collection/components/ic-input-validation/ic-input-validation.js +5 -4
  116. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  117. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
  118. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
  119. package/dist/collection/components/ic-link/ic-link.js +1 -1
  120. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
  121. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  122. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  123. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  124. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  125. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +2 -2
  126. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  127. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  128. package/dist/collection/components/ic-pagination/ic-pagination.js +35 -4
  129. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  130. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  131. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  132. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  133. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  134. package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
  135. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  136. package/dist/collection/components/ic-select/ic-select.js +6 -6
  137. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  138. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  139. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  140. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  141. package/dist/collection/components/ic-step/ic-step.js +13 -13
  142. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  143. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  144. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  145. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  146. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  147. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  148. package/dist/collection/components/ic-text-field/ic-text-field.js +6 -5
  149. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  150. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +12 -1
  151. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  152. package/dist/collection/components/ic-toast/ic-toast.js +5 -5
  153. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  154. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  155. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  156. package/dist/collection/components/ic-tooltip/ic-tooltip.css +1 -1
  157. package/dist/collection/components/ic-tooltip/ic-tooltip.js +13 -12
  158. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  159. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +7 -4
  160. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  161. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  162. package/dist/collection/utils/constants.js +7 -0
  163. package/dist/collection/utils/constants.js.map +1 -1
  164. package/dist/collection/utils/helpers.js +169 -2
  165. package/dist/collection/utils/helpers.js.map +1 -1
  166. package/dist/collection/utils/types.js.map +1 -1
  167. package/dist/components/constants.js +8 -1
  168. package/dist/components/constants.js.map +1 -1
  169. package/dist/components/helpers.js +157 -2
  170. package/dist/components/helpers.js.map +1 -1
  171. package/dist/components/ic-accordion-group.js +6 -3
  172. package/dist/components/ic-accordion-group.js.map +1 -1
  173. package/dist/components/ic-action-chip.js +3 -3
  174. package/dist/components/ic-back-to-top.js +3 -3
  175. package/dist/components/ic-badge.js +2 -2
  176. package/dist/components/ic-breadcrumb-group.js +2 -2
  177. package/dist/components/ic-breadcrumb2.js +2 -2
  178. package/dist/components/ic-button2.js +2 -2
  179. package/dist/components/ic-card-vertical.js +4 -4
  180. package/dist/components/ic-checkbox-group.js +2 -2
  181. package/dist/components/ic-checkbox.js +4 -4
  182. package/dist/components/ic-chip.js +13 -5
  183. package/dist/components/ic-chip.js.map +1 -1
  184. package/dist/components/ic-classification-banner.js +2 -2
  185. package/dist/components/ic-data-list.js +4 -3
  186. package/dist/components/ic-data-list.js.map +1 -1
  187. package/dist/components/ic-data-row.js +2 -2
  188. package/dist/components/ic-dialog.js +33 -124
  189. package/dist/components/ic-dialog.js.map +1 -1
  190. package/dist/components/ic-divider2.js +1 -1
  191. package/dist/components/ic-empty-state.js +2 -2
  192. package/dist/components/ic-footer-link.js +2 -2
  193. package/dist/components/ic-footer.js +4 -4
  194. package/dist/components/ic-hero.js +4 -4
  195. package/dist/components/ic-horizontal-scroll2.js +6 -6
  196. package/dist/components/ic-input-component-container2.js +3 -3
  197. package/dist/components/ic-input-container2.js +2 -2
  198. package/dist/components/ic-input-label2.js +2 -2
  199. package/dist/components/ic-input-validation2.js +5 -5
  200. package/dist/components/ic-input-validation2.js.map +1 -1
  201. package/dist/components/ic-layout-grid-item.js +2 -2
  202. package/dist/components/ic-layout-grid.js +2 -2
  203. package/dist/components/ic-link2.js +1 -1
  204. package/dist/components/ic-loading-indicator2.js +5 -5
  205. package/dist/components/ic-menu-group.js +1 -1
  206. package/dist/components/ic-menu2.js +4 -4
  207. package/dist/components/ic-navigation-button.js +3 -3
  208. package/dist/components/ic-navigation-group.js +2 -2
  209. package/dist/components/ic-navigation-item.js +3 -3
  210. package/dist/components/ic-navigation-menu2.js +5 -5
  211. package/dist/components/ic-page-header.js +6 -6
  212. package/dist/components/ic-pagination-item2.js +2 -2
  213. package/dist/components/ic-pagination.js +30 -5
  214. package/dist/components/ic-pagination.js.map +1 -1
  215. package/dist/components/ic-popover-menu.js +4 -4
  216. package/dist/components/ic-radio-group.js +4 -4
  217. package/dist/components/ic-radio-group.js.map +1 -1
  218. package/dist/components/ic-radio-option.js +4 -4
  219. package/dist/components/ic-search-bar.js +10 -10
  220. package/dist/components/ic-section-container2.js +2 -2
  221. package/dist/components/ic-select.js +7 -7
  222. package/dist/components/ic-side-navigation.js +5 -5
  223. package/dist/components/ic-skeleton.js +2 -2
  224. package/dist/components/ic-skip-link.js +2 -2
  225. package/dist/components/ic-status-tag.js +2 -2
  226. package/dist/components/ic-step.js +13 -13
  227. package/dist/components/ic-stepper.js +2 -2
  228. package/dist/components/ic-switch.js +4 -4
  229. package/dist/components/ic-tab-context.js +1 -1
  230. package/dist/components/ic-tab-group.js +2 -2
  231. package/dist/components/ic-tab-panel.js +2 -2
  232. package/dist/components/ic-tab.js +2 -2
  233. package/dist/components/ic-text-field.js +6 -6
  234. package/dist/components/ic-text-field.js.map +1 -1
  235. package/dist/components/ic-theme.js +2 -2
  236. package/dist/components/ic-toast-region.js +1 -1
  237. package/dist/components/ic-toast.js +6 -6
  238. package/dist/components/ic-toggle-button-group.js +2 -2
  239. package/dist/components/ic-toggle-button.js +3 -3
  240. package/dist/components/ic-tooltip2.js +14 -13
  241. package/dist/components/ic-tooltip2.js.map +1 -1
  242. package/dist/components/ic-top-navigation.js +8 -5
  243. package/dist/components/ic-top-navigation.js.map +1 -1
  244. package/dist/components/ic-typography2.js +2 -2
  245. package/dist/components/index.js +1 -1
  246. package/dist/core/core.css +4 -4
  247. package/dist/core/core.esm.js +1 -1
  248. package/dist/core/core.esm.js.map +1 -1
  249. package/dist/core/index.esm.js +1 -1
  250. package/dist/core/{p-ffd0d9d1.entry.js → p-0301d1c8.entry.js} +2 -2
  251. package/dist/core/{p-3238389a.entry.js → p-0722d7b6.entry.js} +2 -2
  252. package/dist/core/{p-d376858f.entry.js → p-09c31ac6.entry.js} +2 -2
  253. package/dist/core/{p-5d2efd2d.entry.js → p-0d711c6a.entry.js} +2 -2
  254. package/dist/core/{p-f7105cf9.entry.js → p-0f6fd5d3.entry.js} +2 -2
  255. package/dist/core/{p-f57729b8.entry.js → p-0f998905.entry.js} +2 -2
  256. package/dist/core/{p-a8e4258f.entry.js → p-107281c4.entry.js} +2 -2
  257. package/dist/core/p-107281c4.entry.js.map +1 -0
  258. package/dist/core/{p-9674b63f.entry.js → p-1d8559f0.entry.js} +2 -2
  259. package/dist/core/{p-62b9e7bf.entry.js → p-1edf2689.entry.js} +2 -2
  260. package/dist/core/{p-a7583faf.entry.js → p-1fc4b88f.entry.js} +2 -2
  261. package/dist/core/{p-703f3de1.entry.js → p-23dc27a8.entry.js} +2 -2
  262. package/dist/core/{p-4631ac1b.entry.js → p-276a6c8f.entry.js} +2 -2
  263. package/dist/core/{p-a5295f66.entry.js → p-3582c7df.entry.js} +2 -2
  264. package/dist/core/{p-7dff646d.entry.js → p-3c7e90a7.entry.js} +2 -2
  265. package/dist/core/p-45076d7e.entry.js +2 -0
  266. package/dist/core/{p-e82d9a6f.entry.js → p-45c553db.entry.js} +2 -2
  267. package/dist/core/p-4e43b272.entry.js +2 -0
  268. package/dist/core/p-4e43b272.entry.js.map +1 -0
  269. package/dist/core/{p-2026f4fa.entry.js → p-57ce68e5.entry.js} +2 -2
  270. package/dist/core/{p-2026f4fa.entry.js.map → p-57ce68e5.entry.js.map} +1 -1
  271. package/dist/core/{p-c4ffcc64.entry.js → p-5ac3adb9.entry.js} +2 -2
  272. package/dist/core/{p-9ca147f3.entry.js → p-608b4912.entry.js} +2 -2
  273. package/dist/core/{p-bddf799a.js → p-6215e2ae.js} +2 -2
  274. package/dist/core/p-6215e2ae.js.map +1 -0
  275. package/dist/core/{p-ca82850f.entry.js → p-656a9127.entry.js} +2 -2
  276. package/dist/core/p-656a9127.entry.js.map +1 -0
  277. package/dist/core/{p-0648dd8e.entry.js → p-6740c915.entry.js} +2 -2
  278. package/dist/core/{p-de630a9a.entry.js → p-6aa8d3ce.entry.js} +2 -2
  279. package/dist/core/{p-52c66bfe.entry.js → p-72344764.entry.js} +2 -2
  280. package/dist/core/{p-ae11583f.entry.js → p-76e8df31.entry.js} +2 -2
  281. package/dist/core/p-7b8e5926.entry.js +2 -0
  282. package/dist/core/p-7b8e5926.entry.js.map +1 -0
  283. package/dist/core/{p-c397b33f.entry.js → p-7c38dd1f.entry.js} +2 -2
  284. package/dist/core/{p-355d0914.entry.js → p-81f60443.entry.js} +2 -2
  285. package/dist/core/{p-1ca4a5ed.entry.js → p-840c647f.entry.js} +2 -2
  286. package/dist/core/{p-3785c740.entry.js → p-86989873.entry.js} +2 -2
  287. package/dist/core/{p-1cc402b8.entry.js → p-880afd4b.entry.js} +2 -2
  288. package/dist/core/{p-b9459ba2.entry.js → p-889bb8db.entry.js} +2 -2
  289. package/dist/core/{p-049839cd.entry.js → p-8b1567c9.entry.js} +2 -2
  290. package/dist/core/p-8b1567c9.entry.js.map +1 -0
  291. package/dist/core/{p-a8310dfd.entry.js → p-8c00614c.entry.js} +2 -2
  292. package/dist/core/{p-8abcc114.entry.js → p-8f45f956.entry.js} +2 -2
  293. package/dist/core/{p-319e3d5b.entry.js → p-90814d32.entry.js} +2 -2
  294. package/dist/core/{p-1be17f22.entry.js → p-93e1ba0a.entry.js} +2 -2
  295. package/dist/core/{p-a7f21494.entry.js → p-949d08d3.entry.js} +2 -2
  296. package/dist/core/{p-601d4e3f.entry.js → p-9b60ca02.entry.js} +2 -2
  297. package/dist/core/{p-49444c33.entry.js → p-a0af1b0a.entry.js} +2 -2
  298. package/dist/core/{p-ed3aaa3a.entry.js → p-a16415e4.entry.js} +3 -3
  299. package/dist/core/{p-b4a2f6fa.entry.js → p-ad5aca6f.entry.js} +2 -2
  300. package/dist/core/p-ad5aca6f.entry.js.map +1 -0
  301. package/dist/core/{p-bdda404b.entry.js → p-aed1c7e7.entry.js} +2 -2
  302. package/dist/core/p-b22fc28d.entry.js +2 -0
  303. package/dist/core/p-b22fc28d.entry.js.map +1 -0
  304. package/dist/core/{p-f4e3bb5b.entry.js → p-b5e39585.entry.js} +2 -2
  305. package/dist/core/{p-3a94849e.entry.js → p-b8c0c142.entry.js} +2 -2
  306. package/dist/core/{p-12c30491.entry.js → p-ba4abeac.entry.js} +2 -2
  307. package/dist/core/{p-a61fa6ad.entry.js → p-c16e982c.entry.js} +2 -2
  308. package/dist/core/{p-f247db14.entry.js → p-c3f5907e.entry.js} +2 -2
  309. package/dist/core/{p-e0423c7e.entry.js → p-c7f8547d.entry.js} +2 -2
  310. package/dist/core/{p-411527a1.entry.js → p-cdbbcef4.entry.js} +2 -2
  311. package/dist/core/{p-af728534.entry.js → p-cf056074.entry.js} +2 -2
  312. package/dist/core/{p-9c52ee48.entry.js → p-d2d17d6d.entry.js} +2 -2
  313. package/dist/core/{p-082e0068.entry.js → p-d478d13e.entry.js} +2 -2
  314. package/dist/core/p-dbc8bf0c.js +2 -0
  315. package/dist/core/p-dbc8bf0c.js.map +1 -0
  316. package/dist/core/{p-77a6c3f7.entry.js → p-df029b1b.entry.js} +2 -2
  317. package/dist/core/{p-6ed48c46.entry.js → p-e176881a.entry.js} +2 -2
  318. package/dist/core/{p-67c3985d.entry.js → p-e1814e7e.entry.js} +2 -2
  319. package/dist/core/{p-d3223b89.entry.js → p-ebc47282.entry.js} +2 -2
  320. package/dist/core/{p-ae7dcbd5.entry.js → p-ec14c783.entry.js} +2 -2
  321. package/dist/core/{p-eca43f7d.entry.js → p-f5fd4a76.entry.js} +2 -2
  322. package/dist/core/{p-911b4aa4.entry.js → p-f700b759.entry.js} +2 -2
  323. package/dist/core/p-fdb587ab.entry.js +2 -0
  324. package/dist/core/p-fdb587ab.entry.js.map +1 -0
  325. package/dist/core/{p-f6bb691a.entry.js → p-fe0153ec.entry.js} +2 -2
  326. package/dist/esm/{constants-7960cba4.js → constants-ab12fdcf.js} +9 -2
  327. package/dist/esm/constants-ab12fdcf.js.map +1 -0
  328. package/dist/esm/core.js +1 -1
  329. package/dist/esm/{helpers-dcedb279.js → helpers-0f85537f.js} +158 -3
  330. package/dist/esm/helpers-0f85537f.js.map +1 -0
  331. package/dist/esm/ic-accordion-group.entry.js +8 -5
  332. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  333. package/dist/esm/ic-accordion.entry.js +2 -2
  334. package/dist/esm/ic-action-chip.entry.js +5 -5
  335. package/dist/esm/ic-alert.entry.js +2 -2
  336. package/dist/esm/ic-back-to-top.entry.js +5 -5
  337. package/dist/esm/ic-badge.entry.js +4 -4
  338. package/dist/esm/ic-breadcrumb-group.entry.js +4 -4
  339. package/dist/esm/ic-breadcrumb.entry.js +4 -4
  340. package/dist/esm/ic-button_3.entry.js +23 -22
  341. package/dist/esm/ic-button_3.entry.js.map +1 -1
  342. package/dist/esm/ic-card-vertical.entry.js +6 -6
  343. package/dist/esm/ic-checkbox-group.entry.js +4 -4
  344. package/dist/esm/ic-checkbox.entry.js +6 -6
  345. package/dist/esm/ic-chip.entry.js +14 -7
  346. package/dist/esm/ic-chip.entry.js.map +1 -1
  347. package/dist/esm/ic-classification-banner.entry.js +2 -2
  348. package/dist/esm/ic-data-list.entry.js +4 -3
  349. package/dist/esm/ic-data-list.entry.js.map +1 -1
  350. package/dist/esm/ic-data-row.entry.js +4 -4
  351. package/dist/esm/ic-dialog.entry.js +34 -125
  352. package/dist/esm/ic-dialog.entry.js.map +1 -1
  353. package/dist/esm/ic-divider.entry.js +2 -2
  354. package/dist/esm/ic-empty-state.entry.js +4 -4
  355. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  356. package/dist/esm/ic-footer-link.entry.js +4 -4
  357. package/dist/esm/ic-footer.entry.js +5 -5
  358. package/dist/esm/ic-hero.entry.js +6 -6
  359. package/dist/esm/ic-horizontal-scroll.entry.js +7 -7
  360. package/dist/esm/ic-input-component-container_3.entry.js +10 -10
  361. package/dist/esm/ic-input-label_2.entry.js +7 -7
  362. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  363. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  364. package/dist/esm/ic-layout-grid.entry.js +2 -2
  365. package/dist/esm/ic-link.entry.js +3 -3
  366. package/dist/esm/ic-menu-group.entry.js +3 -3
  367. package/dist/esm/ic-menu-item.entry.js +2 -2
  368. package/dist/esm/ic-navigation-button.entry.js +4 -4
  369. package/dist/esm/ic-navigation-group.entry.js +3 -3
  370. package/dist/esm/ic-navigation-item.entry.js +4 -4
  371. package/dist/esm/ic-navigation-menu.entry.js +6 -6
  372. package/dist/esm/ic-page-header.entry.js +8 -8
  373. package/dist/esm/ic-pagination-item.entry.js +3 -3
  374. package/dist/esm/ic-pagination.entry.js +31 -6
  375. package/dist/esm/ic-pagination.entry.js.map +1 -1
  376. package/dist/esm/ic-popover-menu.entry.js +6 -6
  377. package/dist/esm/ic-radio-group.entry.js +6 -6
  378. package/dist/esm/ic-radio-option.entry.js +6 -6
  379. package/dist/esm/ic-search-bar.entry.js +11 -11
  380. package/dist/esm/ic-section-container.entry.js +2 -2
  381. package/dist/esm/ic-select.entry.js +8 -8
  382. package/dist/esm/ic-side-navigation.entry.js +6 -6
  383. package/dist/esm/ic-skeleton.entry.js +2 -2
  384. package/dist/esm/ic-skip-link.entry.js +2 -2
  385. package/dist/esm/ic-status-tag.entry.js +4 -4
  386. package/dist/esm/ic-step.entry.js +15 -15
  387. package/dist/esm/ic-stepper.entry.js +4 -4
  388. package/dist/esm/ic-switch.entry.js +6 -6
  389. package/dist/esm/ic-tab-context.entry.js +1 -1
  390. package/dist/esm/ic-tab-group.entry.js +4 -4
  391. package/dist/esm/ic-tab-panel.entry.js +2 -2
  392. package/dist/esm/ic-tab.entry.js +4 -4
  393. package/dist/esm/ic-text-field.entry.js +7 -7
  394. package/dist/esm/ic-text-field.entry.js.map +1 -1
  395. package/dist/esm/ic-theme.entry.js +3 -3
  396. package/dist/esm/ic-toast-region.entry.js +1 -1
  397. package/dist/esm/ic-toast.entry.js +7 -7
  398. package/dist/esm/ic-toggle-button-group.entry.js +4 -4
  399. package/dist/esm/ic-toggle-button.entry.js +4 -4
  400. package/dist/esm/ic-top-navigation.entry.js +9 -6
  401. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  402. package/dist/esm/ic-typography.entry.js +4 -4
  403. package/dist/esm/index.js +1 -1
  404. package/dist/esm/loader.js +1 -1
  405. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +1 -0
  406. package/dist/types/components/ic-chip/ic-chip.d.ts +5 -0
  407. package/dist/types/components/ic-dialog/ic-dialog.d.ts +2 -15
  408. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +1 -0
  409. package/dist/types/components/ic-pagination/ic-pagination.d.ts +7 -0
  410. package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
  411. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -1
  412. package/dist/types/components.d.ts +8 -0
  413. package/dist/types/utils/constants.d.ts +6 -0
  414. package/dist/types/utils/helpers.d.ts +69 -2
  415. package/dist/types/utils/types.d.ts +1 -0
  416. package/hydrate/index.js +438 -323
  417. package/hydrate/index.mjs +438 -323
  418. package/package.json +17 -23
  419. package/vscode-data.json +4 -0
  420. package/dist/cjs/constants-3a9ba64a.js.map +0 -1
  421. package/dist/cjs/helpers-15fae358.js.map +0 -1
  422. package/dist/core/p-049839cd.entry.js.map +0 -1
  423. package/dist/core/p-177d3c2f.entry.js +0 -2
  424. package/dist/core/p-199c5ff6.entry.js +0 -2
  425. package/dist/core/p-199c5ff6.entry.js.map +0 -1
  426. package/dist/core/p-6329ddcb.entry.js +0 -2
  427. package/dist/core/p-6329ddcb.entry.js.map +0 -1
  428. package/dist/core/p-72e5eb70.entry.js +0 -2
  429. package/dist/core/p-72e5eb70.entry.js.map +0 -1
  430. package/dist/core/p-a45de09d.entry.js +0 -2
  431. package/dist/core/p-a45de09d.entry.js.map +0 -1
  432. package/dist/core/p-a5658054.js +0 -2
  433. package/dist/core/p-a5658054.js.map +0 -1
  434. package/dist/core/p-a8e4258f.entry.js.map +0 -1
  435. package/dist/core/p-b4a2f6fa.entry.js.map +0 -1
  436. package/dist/core/p-bddf799a.js.map +0 -1
  437. package/dist/core/p-ca82850f.entry.js.map +0 -1
  438. package/dist/esm/constants-7960cba4.js.map +0 -1
  439. package/dist/esm/helpers-dcedb279.js.map +0 -1
  440. /package/dist/core/{p-ffd0d9d1.entry.js.map → p-0301d1c8.entry.js.map} +0 -0
  441. /package/dist/core/{p-3238389a.entry.js.map → p-0722d7b6.entry.js.map} +0 -0
  442. /package/dist/core/{p-d376858f.entry.js.map → p-09c31ac6.entry.js.map} +0 -0
  443. /package/dist/core/{p-5d2efd2d.entry.js.map → p-0d711c6a.entry.js.map} +0 -0
  444. /package/dist/core/{p-f7105cf9.entry.js.map → p-0f6fd5d3.entry.js.map} +0 -0
  445. /package/dist/core/{p-f57729b8.entry.js.map → p-0f998905.entry.js.map} +0 -0
  446. /package/dist/core/{p-9674b63f.entry.js.map → p-1d8559f0.entry.js.map} +0 -0
  447. /package/dist/core/{p-62b9e7bf.entry.js.map → p-1edf2689.entry.js.map} +0 -0
  448. /package/dist/core/{p-a7583faf.entry.js.map → p-1fc4b88f.entry.js.map} +0 -0
  449. /package/dist/core/{p-703f3de1.entry.js.map → p-23dc27a8.entry.js.map} +0 -0
  450. /package/dist/core/{p-4631ac1b.entry.js.map → p-276a6c8f.entry.js.map} +0 -0
  451. /package/dist/core/{p-a5295f66.entry.js.map → p-3582c7df.entry.js.map} +0 -0
  452. /package/dist/core/{p-7dff646d.entry.js.map → p-3c7e90a7.entry.js.map} +0 -0
  453. /package/dist/core/{p-177d3c2f.entry.js.map → p-45076d7e.entry.js.map} +0 -0
  454. /package/dist/core/{p-e82d9a6f.entry.js.map → p-45c553db.entry.js.map} +0 -0
  455. /package/dist/core/{p-c4ffcc64.entry.js.map → p-5ac3adb9.entry.js.map} +0 -0
  456. /package/dist/core/{p-9ca147f3.entry.js.map → p-608b4912.entry.js.map} +0 -0
  457. /package/dist/core/{p-0648dd8e.entry.js.map → p-6740c915.entry.js.map} +0 -0
  458. /package/dist/core/{p-de630a9a.entry.js.map → p-6aa8d3ce.entry.js.map} +0 -0
  459. /package/dist/core/{p-52c66bfe.entry.js.map → p-72344764.entry.js.map} +0 -0
  460. /package/dist/core/{p-ae11583f.entry.js.map → p-76e8df31.entry.js.map} +0 -0
  461. /package/dist/core/{p-c397b33f.entry.js.map → p-7c38dd1f.entry.js.map} +0 -0
  462. /package/dist/core/{p-355d0914.entry.js.map → p-81f60443.entry.js.map} +0 -0
  463. /package/dist/core/{p-1ca4a5ed.entry.js.map → p-840c647f.entry.js.map} +0 -0
  464. /package/dist/core/{p-3785c740.entry.js.map → p-86989873.entry.js.map} +0 -0
  465. /package/dist/core/{p-1cc402b8.entry.js.map → p-880afd4b.entry.js.map} +0 -0
  466. /package/dist/core/{p-b9459ba2.entry.js.map → p-889bb8db.entry.js.map} +0 -0
  467. /package/dist/core/{p-a8310dfd.entry.js.map → p-8c00614c.entry.js.map} +0 -0
  468. /package/dist/core/{p-8abcc114.entry.js.map → p-8f45f956.entry.js.map} +0 -0
  469. /package/dist/core/{p-319e3d5b.entry.js.map → p-90814d32.entry.js.map} +0 -0
  470. /package/dist/core/{p-1be17f22.entry.js.map → p-93e1ba0a.entry.js.map} +0 -0
  471. /package/dist/core/{p-a7f21494.entry.js.map → p-949d08d3.entry.js.map} +0 -0
  472. /package/dist/core/{p-601d4e3f.entry.js.map → p-9b60ca02.entry.js.map} +0 -0
  473. /package/dist/core/{p-49444c33.entry.js.map → p-a0af1b0a.entry.js.map} +0 -0
  474. /package/dist/core/{p-ed3aaa3a.entry.js.map → p-a16415e4.entry.js.map} +0 -0
  475. /package/dist/core/{p-bdda404b.entry.js.map → p-aed1c7e7.entry.js.map} +0 -0
  476. /package/dist/core/{p-f4e3bb5b.entry.js.map → p-b5e39585.entry.js.map} +0 -0
  477. /package/dist/core/{p-3a94849e.entry.js.map → p-b8c0c142.entry.js.map} +0 -0
  478. /package/dist/core/{p-12c30491.entry.js.map → p-ba4abeac.entry.js.map} +0 -0
  479. /package/dist/core/{p-a61fa6ad.entry.js.map → p-c16e982c.entry.js.map} +0 -0
  480. /package/dist/core/{p-f247db14.entry.js.map → p-c3f5907e.entry.js.map} +0 -0
  481. /package/dist/core/{p-e0423c7e.entry.js.map → p-c7f8547d.entry.js.map} +0 -0
  482. /package/dist/core/{p-411527a1.entry.js.map → p-cdbbcef4.entry.js.map} +0 -0
  483. /package/dist/core/{p-af728534.entry.js.map → p-cf056074.entry.js.map} +0 -0
  484. /package/dist/core/{p-9c52ee48.entry.js.map → p-d2d17d6d.entry.js.map} +0 -0
  485. /package/dist/core/{p-082e0068.entry.js.map → p-d478d13e.entry.js.map} +0 -0
  486. /package/dist/core/{p-77a6c3f7.entry.js.map → p-df029b1b.entry.js.map} +0 -0
  487. /package/dist/core/{p-6ed48c46.entry.js.map → p-e176881a.entry.js.map} +0 -0
  488. /package/dist/core/{p-67c3985d.entry.js.map → p-e1814e7e.entry.js.map} +0 -0
  489. /package/dist/core/{p-d3223b89.entry.js.map → p-ebc47282.entry.js.map} +0 -0
  490. /package/dist/core/{p-ae7dcbd5.entry.js.map → p-ec14c783.entry.js.map} +0 -0
  491. /package/dist/core/{p-eca43f7d.entry.js.map → p-f5fd4a76.entry.js.map} +0 -0
  492. /package/dist/core/{p-911b4aa4.entry.js.map → p-f700b759.entry.js.map} +0 -0
  493. /package/dist/core/{p-f6bb691a.entry.js.map → p-fe0153ec.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-top-navigation.js","sourceRoot":"","sources":["../../../src/components/ic-top-navigation/ic-top-navigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,CAAC,EACD,KAAK,EACL,MAAM,EACN,KAAK,EAEL,KAAK,EACL,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAIL,qBAAqB,GAKtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,4BAA4B,EAC5B,OAAO,EACP,8BAA8B,EAC9B,gCAAgC,EAChC,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B;;;;;;;;GAQG;AAMH,MAAM,OAAO,aAAa;IAL1B;QAMU,eAAU,GAAG,KAAK,CAAC;QACnB,oBAAe,GAAG,KAAK,CAAC;QACxB,mBAAc,GAAG,KAAK,CAAC;QACvB,kBAAa,GAAG,KAAK,CAAC;QACtB,yBAAoB,GAAG,KAAK,CAAC;QAE7B,mBAAc,GAA0B,IAAI,CAAC;QAC7C,cAAS,GAAkC,IAAI,CAAC;QAK/C,eAAU,GAAW,YAAY,CAAC,EAAE,CAAC;QACrC,oBAAe,GAAsB,4BAA4B,EAAE,CAAC;QACpE,0BAAqB,GAAG,KAAK,CAAC;QAC9B,2BAAsB,GAAG,KAAK,CAAC;QAC/B,6BAAwB,GAAG,KAAK,CAAC;QACjC,mBAAc,GAAG,KAAK,CAAC;QACvB,sBAAiB,GAAG,KAAK,CAAC;QAC1B,gBAAW,GAAG,EAAE,CAAC;QAE1B;;WAEG;QACK,mBAAc,GAAgB,YAAY,CAAC;QACnD;;;WAGG;QACK,2BAAsB,GAAkB,YAAY,CAAC,CAAC,CAAC;QAC/D;;WAEG;QACK,SAAI,GAAG,GAAG,CAAC;QAEnB;;WAEG;QACK,WAAM,GAAG,KAAK,CAAC;QAEvB;;WAEG;QACK,kBAAa,GAAG,EAAE,CAAC;QAE3B;;WAEG;QACK,WAAM,GAAG,EAAE,CAAC;QAEpB;;WAEG;QACK,UAAK,GAAgB,SAAS,CAAC;QAEvC;;WAEG;QACK,YAAO,GAAG,EAAE,CAAC;QAqFb,eAAU,GAAG,GAAG,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAE1D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,cAAc,GAClB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAc,mBAAmB,CAAC,CAAC;gBAC1D,IAAI,cAAc,IAAI,cAAc,CAAC,OAAO,KAAK,GAAG;oBAClD,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC;QAEM,wBAAmB,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,oBAAoB;gBAAE,OAAO;YAEvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,eAAe,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,IAA8B,CAAC;YAClD,CAAC;iBAAM,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,MAAM,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;;YAC7B,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAE3D,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE5B,MAAA,IAAI,CAAC,oBAAoB,0CAAE,YAAY,CACrC,YAAY,EACZ,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,SAAS,CAC1D,CAAC;YACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACvD,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,UAAU,CAAC,GAAG,EAAE;;oBACd,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE,CAAC;gBAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QAEM,gBAAW,GAAG,CAAC,IAAa,EAAE,EAAE;YACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,CAAC,CAAC;QAEM,iCAA4B,GAAG,GAAG,EAAE;YAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;QAEM,6BAAwB,GAAG,GAAG,EAAE;YACtC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACjC,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAAC,QAAgB,EAAE,EAAE;YACpD,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;gBAAE,OAAO;YAEzC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;YAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAChC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC9C,+DAA+D;gBAC/D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACzC,UAAU,CAAC,GAAG,EAAE;;oBACd,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE,CAAC;gBAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;gBAC5C,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;KAmRH;IAlcC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QACjD,uGAAuG;QACvG,mEAAmE;QACnE,8BAA8B,CAC5B,QAAQ,EACR,QAAQ,EACR,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACJ,CAAC;IAiBD,oBAAoB;;QAClB,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACd,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAChD,gBAAgB,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAGD,sBAAsB;;QACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAGD,sBAAsB,CAAC,EACrB,MAAM,GACkC;QACxC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3D,qGAAqG;gBACrG,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAe,CAAC;QAC5C,CAAC;IACH,CAAC;IAGD,wBAAwB,CAAC,EAAE,MAAM,EAAmC;QAClE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IAClC,CAAC;IAGD,kBAAkB,CAAC,EAAE,MAAM,EAAwB;QACjD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;IACrC,CAAC;IAqGD,MAAM;QACJ,MAAM,EACJ,QAAQ,EACR,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,EAAE,EACF,eAAe,EACf,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,IAAI,EACJ,MAAM,EACN,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,MAAM,EACN,OAAO,EACP,KAAK,GACN,GAAG,IAAI,CAAC;QAET,MAAM,SAAS,GAAG,MAAM,KAAK,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,OAAO,KAAK,EAAE,CAAC;QAClC,MAAM,cAAc,GAClB,aAAa,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU,CAAC;QAE7D,MAAM,iBAAiB,GAAG,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC;QAEvD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,MAAM,QAAQ,GAAG,QAAQ,KAAK,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,oBAAoB,GAAG,UAAU,IAAI,sBAAsB,CAAC;QAElE,MAAM,eAAe,GAAyB,oBAAoB;YAChE,CAAC,CAAC,iBAAiB;gBACjB,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,uBAAuB,GAAG,GAC9B,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MACpC,SAAS,CAAC;QACV,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAExD,MAAM,iBAAiB,GAAG,UAAU,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,MAAM,KAAK,GAAG,SAAS,IAAI,GAAG,IAAI;YAChC,IAAI,EAAE,IAAI;SACX,CAAC;QAEF,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,qBAAqB,EAAE,qBAAqB;gBAC5C,aAAa,EAAE,oBAAoB;gBACnC,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAC1B,eAAe,KAAK,qBAAqB,CAAC,IAAI;gBAChD,CAAC,YAAY,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,SAAS;aAC3C;YAED,4DAAK,KAAK,EAAC,gBAAgB;gBACzB,6EAAsB,OAAO,EAAE,cAAc;oBAC3C,+DAAQ,IAAI,EAAC,QAAQ;wBACnB,4DAAK,KAAK,EAAC,qBAAqB;4BAC9B,4DAAK,KAAK,EAAC,uBAAuB;gCAC/B,CAAC,QAAQ,IAAI,eAAe,CAAC,IAAI,CAChC,EAAC,SAAS,mEAAC,KAAK,EAAC,YAAY,IAAK,KAAK;oCACpC,UAAU,IAAI,CACb,4DAAK,KAAK,EAAC,oBAAoB;wCAC7B,6DAAM,IAAI,EAAC,UAAU,GAAG,CACpB,CACP;oCACA,iBAAiB;wCAClB,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CACrD,qBACE,OAAO,EAAC,gBAAgB,gBAEtB,CAAC,CAAC,eAAe,IAAI,CAAC,iBAAiB,CAAC;4CACxC,GAAG,QAAQ,KAAK,aAAa,GAAG;wCAGlC,cACG,iBAAiB,CAAC,CAAC,CAAC,CACnB,YAAM,IAAI,EAAC,iBAAiB,GAAQ,CACrC,CAAC,CAAC,CAAC,CACF,aAAa,CACd,CACE,CACS,CACjB,CAAC,CAAC,CAAC,CACF,qBAAe,OAAO,EAAE,eAAe;wCACrC,UAAI,KAAK,EAAC,YAAY,IACnB,eAAe,CAAC,CAAC,CAAC,CACjB,YAAM,IAAI,EAAC,WAAW,GAAQ,CAC/B,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CACE,CACS,CACjB,CACS,CACb;gCACA,SAAS,IAAI,CACZ,4DAAK,KAAK,EAAC,YAAY;oCACrB,oFACa,SAAS,EACpB,OAAO,EAAC,iBAAiB,EACzB,KAAK,EAAC,iBAAiB,IAEtB,MAAM,CACO,CACZ,CACP;gCACA,UAAU,IAAI,CACb,4DAAK,KAAK,EAAC,aAAa;oCACtB,sEACE,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,kBAAkB,gBACb,aAAa,IAEvB,OAAO,CACM,CACZ,CACP,CACG;4BAEL,CAAC,oBAAoB,IAAI,cAAc,CAAC,IAAI,CAC3C,4DAAK,KAAK,EAAC,uBAAuB;gCAChC,4DAAK,KAAK,EAAC,0BAA0B,IAClC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CACvB,EAAC,QAAQ;oCACP,YAAM,IAAI,EAAC,QAAQ,GAAQ;oCAC1B,cAAc,IAAI,CACjB,WAAK,KAAK,EAAC,wBAAwB;wCACjC,YAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACP,CACQ,CACZ,CAAC,CAAC,CAAC,CACF,EAAC,QAAQ;oCACN,oBAAoB,IAAI,CACvB,iBACE,EAAE,EAAC,sBAAsB,EACzB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,EAC7C,WAAW,EAAE,4BAA4B,EACzC,OAAO,EAAC,eAAe,EACvB,UAAU,QACV,IAAI,EAAE,gBAAgB,gBACV,uBAAuB,EACnC,KAAK,EAAE,eAA8B,EACrC,OAAO,EAAE,wBAAwB;wCAEjC,YAAM,IAAI,EAAC,aAAa;4CACtB,WACE,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,SAAS;gDAEd,YAAM,CAAC,EAAC,iBAAiB,EAAC,IAAI,EAAC,MAAM,GAAG;gDACxC,YAAM,CAAC,EAAC,4OAA4O,GAAG,CACnP,CACD,CACG,CACb;oCACA,cAAc,IAAI,CACjB,WAAK,KAAK,EAAC,uBAAuB;wCAChC,YACE,EAAE,EAAC,iCAAiC,EACpC,KAAK,EAAC,iCAAiC,iBAC3B,MAAM,6BAGb;wCACP,8BACkB,iCAAiC,iBACpC,GAAG,cAAc,EAAE;4CAEhC,iBACE,EAAE,EAAC,aAAa,EAChB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACrC,KAAK,EAAE,eAA8B,EACrC,OAAO,EAAC,WAAW,EACnB,UAAU,yBACI,OAAO,mBACP,MAAM,gBACR,QACV,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KACjC,OAAO,EACP,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,eAAe;;gDAGxB,WACE,KAAK,EAAC,4BAA4B,EAClC,MAAM,EAAC,MAAM,EACb,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,SAAS,EACd,IAAI,EAAC,WAAW;oDAEhB,YAAM,CAAC,EAAC,iBAAiB,EAAC,IAAI,EAAC,MAAM,GAAG;oDACxC,YAAM,CAAC,EAAC,+CAA+C,GAAG,CACtD,CACI,CACR,CACF,CACP,CACQ,CACZ,CACG,CACF,CACP,CACG;wBAEL,sBAAsB,IAAI,CACzB,4DAAK,KAAK,EAAC,sBAAsB;4BAC/B,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACP;wBAEA,aAAa,IAAI,CAAC,oBAAoB,IAAI,CACzC,4DAAK,KAAK,EAAC,iBAAiB;4BAC1B,6DACE,EAAE,EAAC,0BAA0B,EAC7B,KAAK,EAAC,0BAA0B,iBACpB,MAAM,iBAGb;4BACP,+EACkB,0BAA0B,EAC1C,KAAK,EAAC,qBAAqB;gCAE3B,6EACE,UAAU,QACV,UAAU,EAAE,eAAe;oCAE3B,2DAAI,KAAK,EAAC,sBAAsB,EAAC,QAAQ,EAAC,IAAI;wCAC5C,6DAAM,IAAI,EAAC,YAAY,GAAQ,CAC5B,CACgB,CACnB,CACF,CACP,CACM,CACY,CACnB;YACL,cAAc,IAAI,CACjB,2EACE,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;oBACL,MAAM;iBACP;gBAEA,cAAc,IAAI,CACjB,4DAAK,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,SAAS;oBAC3C,6DAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACP;gBACD,2DAAI,IAAI,EAAC,YAAY;oBACnB,6DAAM,IAAI,EAAC,YAAY,GAAQ,CAC5B,CACc,CACtB,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Listen,\n Event,\n EventEmitter,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n IcTypographyVariants,\n IcAlignment,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcBrand,\n IcDeviceSizes,\n IcValueEventDetail,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getSlot,\n onComponentPropUndefinedChange,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n isEmptyString,\n isPropDefined,\n} from \"../../utils/helpers\";\nimport { IcSearchBarBlurEventDetail } from \"../ic-search-bar/ic-search-bar.types\";\n\n/**\n * @slot app-icon - Content will be rendered to left of app title. Anything that is slotted here will be hidden from screen readers.\n * @slot app-title - Handle routing by nesting a route in the app title.\n * @slot short-app-title - Handle routing by nesting a route in the short app title (to be displayed in place of app title on small screen sizes).\n * @slot search - Content will be rendered in search area to left of buttons.\n * @slot toggle-icon - Icon to be displayed on the button to toggle search slot content on smaller devices\n * @slot navigation - Content will be rendered in navigation panel.\n * @slot buttons - Content will be rendered to right of search bar.\n */\n@Component({\n tag: \"ic-top-navigation\",\n styleUrl: \"ic-top-navigation.css\",\n shadow: true,\n})\nexport class TopNavigation {\n private hasAppIcon = false;\n private hasAppTitleSlot = false;\n private hasIconButtons = false;\n private hasNavigation = false;\n private hasSearchSlotContent = false;\n private mobileSearchButtonEl?: HTMLIcButtonElement;\n private resizeObserver: ResizeObserver | null = null;\n private searchBar: HTMLIcSearchBarElement | null = null;\n private menuButtonEl?: HTMLIcButtonElement;\n\n @Element() el: HTMLIcTopNavigationElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n @State() hasFullWidthSearchBar = false;\n @State() mobileSearchBarVisible = false;\n @State() mobileSearchHiddenOnBlur = false;\n @State() navMenuVisible = false;\n @State() searchButtonClick = false;\n @State() searchValue = \"\";\n\n /**\n * The alignment of the top navigation content.\n */\n @Prop() contentAligned: IcAlignment = \"full-width\";\n /**\n * Can set a custom breakpoint for the top navigation to switch to mobile mode.\n * Must be one of our specified breakpoints in px: `0`, `576`, `768`, `992`, `1200`.\n */\n @Prop() customMobileBreakpoint: IcDeviceSizes = DEVICE_SIZES.L;\n /**\n * The URL to navigate to when the app title is clicked.\n */\n @Prop() href = \"/\";\n\n /**\n * If `true`, the flyout navigation menu on small devices will be contained by the parent element.\n */\n @Prop() inline = false;\n\n /**\n * The short title of the app to be displayed at small screen sizes in place of the app title.\n */\n @Prop() shortAppTitle = \"\";\n\n /**\n * The status info to be displayed.\n */\n @Prop() status = \"\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The version info to be displayed.\n */\n @Prop() version = \"\";\n\n /**\n * The app title to be displayed. This is required, unless a slotted app title link is used.\n */\n @Prop() appTitle?: string;\n @Watch(\"appTitle\")\n watchPropHandler(newValue: string, oldValue: string): void {\n //added for Gatsby rehydration issue where prop is initially undefined but then changes to actual value\n //this watch can be removed once Gatsby hydration issue is resolved\n onComponentPropUndefinedChange(\n oldValue,\n newValue,\n this.initialiseSearchBar\n );\n }\n\n /**\n * @internal - Emitted when the menu is closed.\n */\n @Event() icNavigationMenuClosed: EventEmitter<void>;\n\n /**\n * @internal - Emitted when the menu is opened.\n */\n @Event() icNavigationMenuOpened: EventEmitter<void>;\n\n /**\n * Emitted when the top navigation is resized.\n */\n @Event() icTopNavResized: EventEmitter<{ size: number }>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.checkSlots();\n this.deviceSize = getCurrentDeviceSize();\n this.initialiseSearchBar();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (!this.hasAppTitleSlot) {\n onComponentRequiredPropUndefined(\n [{ prop: this.appTitle, propName: \"app-title\" }],\n \"Top Navigation\"\n );\n }\n }\n\n componentWillRender(): void {\n this.checkSlots();\n }\n\n @Listen(\"icNavigationMenuClose\", {})\n navBarMenuCloseHandler(): void {\n this.showNavMenu(false);\n this.menuButtonEl?.setFocus();\n }\n\n @Listen(\"icSearchBarBlur\", {})\n searchInputBlurHandler({\n detail,\n }: CustomEvent<IcSearchBarBlurEventDetail>): void {\n if (detail !== null) {\n if (this.mobileSearchBarVisible && !this.searchButtonClick) {\n //don't hide if blur was triggered by click on search button - let the click handler toggle the state\n this.toggleSearchBar();\n }\n this.searchValue = detail.value as string;\n }\n }\n\n @Listen(\"icChange\", {})\n searchValueChangeHandler({ detail }: CustomEvent<IcValueEventDetail>): void {\n this.searchValue = detail.value;\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.foregroundColor = detail.mode;\n }\n\n private checkSlots = () => {\n this.hasAppIcon = isSlotUsed(this.el, \"app-icon\");\n this.hasAppTitleSlot = isSlotUsed(this.el, \"app-title\");\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasIconButtons = isSlotUsed(this.el, \"buttons\");\n this.hasSearchSlotContent = isSlotUsed(this.el, \"search\");\n\n if (this.hasAppIcon) {\n const slottedAppIcon =\n this.el.querySelector<HTMLElement>('[slot=\"app-icon\"]');\n if (slottedAppIcon && slottedAppIcon.tagName === \"A\")\n slottedAppIcon.tabIndex = -1;\n }\n };\n\n private initialiseSearchBar = () => {\n if (!this.hasSearchSlotContent) return;\n\n const slot = getSlot(this.el, \"search\");\n if (slot?.tagName === \"IC-SEARCH-BAR\") {\n this.searchBar = slot as HTMLIcSearchBarElement;\n } else if (slot?.tagName === \"FORM\") {\n this.searchBar = slot.querySelector(\"ic-search-bar\");\n }\n\n if (this.searchBar !== null) {\n this.searchBar.hideLabel = true;\n }\n };\n\n private toggleSearchBar = () => {\n this.mobileSearchBarVisible = !this.mobileSearchBarVisible;\n\n if (!this.searchBar) return;\n\n this.mobileSearchButtonEl?.setAttribute(\n \"aria-label\",\n `${this.mobileSearchBarVisible ? \"Hide\" : \"Show\"} search`\n );\n this.hasFullWidthSearchBar = this.mobileSearchBarVisible;\n this.searchBar.fullWidth = this.mobileSearchBarVisible;\n if (this.mobileSearchBarVisible) {\n setTimeout(() => {\n this.searchBar?.focus();\n }, 100);\n }\n };\n\n private menuButtonClick = () => {\n this.showNavMenu(true);\n };\n\n private showNavMenu = (show: boolean) => {\n this.navMenuVisible = show;\n (show ? this.icNavigationMenuOpened : this.icNavigationMenuClosed).emit();\n document.body.style.height = show ? \"100%\" : \"auto\";\n document.body.style.overflow = show ? \"hidden\" : \"auto\";\n };\n\n private searchButtonMouseDownHandler = () => {\n this.searchButtonClick = true;\n };\n\n private searchButtonClickHandler = () => {\n this.toggleSearchBar();\n this.searchButtonClick = false;\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize === this.deviceSize) return;\n\n this.deviceSize = currSize;\n if (currSize > this.customMobileBreakpoint) {\n this.showNavMenu(false);\n if (this.mobileSearchBarVisible) {\n this.toggleSearchBar();\n }\n }\n this.icTopNavResized.emit({\n size: currSize,\n });\n if (this.searchBar && document.activeElement === this.searchBar) {\n this.searchBar.setAttribute(\"hidden\", \"true\");\n //remove attribute again as this trigger a redraw & applies css\n this.searchBar.removeAttribute(\"hidden\");\n setTimeout(() => {\n this.searchBar?.focus();\n }, 100);\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback(getCurrentDeviceSize());\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n render() {\n const {\n appTitle,\n contentAligned,\n customMobileBreakpoint,\n deviceSize,\n el,\n foregroundColor,\n hasAppIcon,\n hasAppTitleSlot,\n hasFullWidthSearchBar,\n hasIconButtons,\n hasNavigation,\n hasSearchSlotContent,\n href,\n inline,\n menuButtonClick,\n mobileSearchBarVisible,\n navMenuVisible,\n searchButtonClickHandler,\n searchButtonMouseDownHandler,\n shortAppTitle,\n status,\n version,\n theme,\n } = this;\n\n const hasStatus = status !== \"\";\n const hasVersion = version !== \"\";\n const hasMenuContent =\n hasNavigation || hasIconButtons || hasStatus || hasVersion;\n\n const isSmallDeviceSize = deviceSize <= DEVICE_SIZES.S;\n\n const searchButtonSize = isSmallDeviceSize ? \"medium\" : \"large\";\n const hasTitle = appTitle !== \"\" && isPropDefined(appTitle);\n const overMobileBreakpoint = deviceSize <= customMobileBreakpoint;\n\n const appTitleVariant: IcTypographyVariants = overMobileBreakpoint\n ? isSmallDeviceSize\n ? \"subtitle-small\"\n : \"h4\"\n : \"h3\";\n\n const mobileSearchButtonTitle = `${\n mobileSearchBarVisible ? \"Hide\" : \"Show\"\n } search`;\n const menuSize = isSmallDeviceSize ? \"small\" : \"medium\";\n\n const shortAppTitleSlot = isSlotUsed(el, \"short-app-title\");\n const Component = hasAppTitleSlot ? \"div\" : \"a\";\n const attrs = Component == \"a\" && {\n href: href,\n };\n\n return (\n <Host\n class={{\n \"fullwidth-searchbar\": hasFullWidthSearchBar,\n \"mobile-mode\": overMobileBreakpoint,\n [IcBrandForegroundEnum.Dark]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"top-navigation\">\n <ic-section-container aligned={contentAligned} full-height>\n <header role=\"banner\">\n <div class=\"top-panel-container\">\n <div class=\"app-details-container\">\n {(hasTitle || hasAppTitleSlot) && (\n <Component class=\"title-link\" {...attrs}>\n {hasAppIcon && (\n <div class=\"app-icon-container\">\n <slot name=\"app-icon\" />\n </div>\n )}\n {isSmallDeviceSize &&\n (!isEmptyString(shortAppTitle) || shortAppTitleSlot) ? (\n <ic-typography\n variant=\"subtitle-small\"\n aria-label={\n (!hasAppTitleSlot || !shortAppTitleSlot) &&\n `${appTitle} (${shortAppTitle})`\n }\n >\n <h1>\n {shortAppTitleSlot ? (\n <slot name=\"short-app-title\"></slot>\n ) : (\n shortAppTitle\n )}\n </h1>\n </ic-typography>\n ) : (\n <ic-typography variant={appTitleVariant}>\n <h1 class=\"title-wrap\">\n {hasAppTitleSlot ? (\n <slot name=\"app-title\"></slot>\n ) : (\n appTitle\n )}\n </h1>\n </ic-typography>\n )}\n </Component>\n )}\n {hasStatus && (\n <div class=\"app-status\">\n <ic-typography\n aria-label=\"app tag\"\n variant=\"label-uppercase\"\n class=\"app-status-text\"\n >\n {status}\n </ic-typography>\n </div>\n )}\n {hasVersion && (\n <div class=\"app-version\">\n <ic-typography\n variant=\"label\"\n class=\"app-version-text\"\n aria-label=\"app version\"\n >\n {version}\n </ic-typography>\n </div>\n )}\n </div>\n\n {(hasSearchSlotContent || hasMenuContent) && (\n <div class=\"search-menu-container\">\n <div class=\"search-actions-container\">\n {!overMobileBreakpoint ? (\n <Fragment>\n <slot name=\"search\"></slot>\n {hasIconButtons && (\n <div class=\"icon-buttons-container\">\n <slot name=\"buttons\"></slot>\n </div>\n )}\n </Fragment>\n ) : (\n <Fragment>\n {hasSearchSlotContent && (\n <ic-button\n id=\"search-toggle-button\"\n ref={(el) => (this.mobileSearchButtonEl = el)}\n onMouseDown={searchButtonMouseDownHandler}\n variant=\"icon-tertiary\"\n monochrome\n size={searchButtonSize}\n aria-label={mobileSearchButtonTitle}\n theme={foregroundColor as IcThemeMode}\n onClick={searchButtonClickHandler}\n >\n <slot name=\"toggle-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"#ffffff\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" />\n </svg>\n </slot>\n </ic-button>\n )}\n {hasMenuContent && (\n <div class=\"menu-button-container\">\n <span\n id=\"navigation-landmark-button-text\"\n class=\"navigation-landmark-button-text\"\n aria-hidden=\"true\"\n >\n Main navigation button\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-button-text\"\n aria-hidden={`${navMenuVisible}`}\n >\n <ic-button\n id=\"menu-button\"\n ref={(el) => (this.menuButtonEl = el)}\n theme={foregroundColor as IcThemeMode}\n variant=\"secondary\"\n monochrome\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n aria-label={`Open ${\n hasNavigation ? \"navigation\" : \"app\"\n } menu`}\n size={menuSize}\n onClick={menuButtonClick}\n >\n Menu\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#ffffff\"\n slot=\"left-icon\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" />\n </svg>\n </ic-button>\n </nav>\n </div>\n )}\n </Fragment>\n )}\n </div>\n </div>\n )}\n </div>\n\n {mobileSearchBarVisible && (\n <div class=\"search-bar-container\">\n <slot name=\"search\"></slot>\n </div>\n )}\n\n {hasNavigation && !overMobileBreakpoint && (\n <div class=\"navigation-tabs\">\n <span\n id=\"navigation-landmark-text\"\n class=\"navigation-landmark-text\"\n aria-hidden=\"true\"\n >\n Main pages\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-text\"\n class=\"nav-panel-container\"\n >\n <ic-horizontal-scroll\n monochrome\n appearance={foregroundColor}\n >\n <ul class=\"navigation-item-list\" tabindex=\"-1\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-horizontal-scroll>\n </nav>\n </div>\n )}\n </header>\n </ic-section-container>\n </div>\n {navMenuVisible && (\n <ic-navigation-menu\n version={version}\n status={status}\n class={{\n inline,\n }}\n >\n {hasIconButtons && (\n <div class=\"menu-buttons-slot\" slot=\"buttons\">\n <slot name=\"buttons\"></slot>\n </div>\n )}\n <ul slot=\"navigation\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-navigation-menu>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-top-navigation.js","sourceRoot":"","sources":["../../../src/components/ic-top-navigation/ic-top-navigation.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Listen,\n Event,\n EventEmitter,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n IcTypographyVariants,\n IcAlignment,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcBrand,\n IcDeviceSizes,\n IcValueEventDetail,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getSlot,\n onComponentPropUndefinedChange,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n isEmptyString,\n isPropDefined,\n} from \"../../utils/helpers\";\nimport { IcSearchBarBlurEventDetail } from \"../ic-search-bar/ic-search-bar.types\";\n\n/**\n * @slot app-icon - Content will be rendered to left of app title. Anything that is slotted here will be hidden from screen readers.\n * @slot app-title - Handle routing by nesting a route in the app title.\n * @slot short-app-title - Handle routing by nesting a route in the short app title (to be displayed in place of app title on small screen sizes).\n * @slot search - Content will be rendered in search area to left of buttons.\n * @slot toggle-icon - Icon to be displayed on the button to toggle search slot content on smaller devices\n * @slot navigation - Content will be rendered in navigation panel.\n * @slot buttons - Content will be rendered to right of search bar.\n */\n@Component({\n tag: \"ic-top-navigation\",\n styleUrl: \"ic-top-navigation.css\",\n shadow: true,\n})\nexport class TopNavigation {\n private hasAppIcon = false;\n private hasAppTitleSlot = false;\n private hasIconButtons = false;\n private hasNavigation = false;\n private hasSearchSlotContent = false;\n private mobileSearchButtonEl?: HTMLIcButtonElement;\n private resizeObserver: ResizeObserver | null = null;\n private searchBar: HTMLIcSearchBarElement | null = null;\n private menuButtonEl?: HTMLIcButtonElement;\n\n @Element() el: HTMLIcTopNavigationElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n @State() hasFullWidthSearchBar = false;\n @State() mobileSearchBarVisible = false;\n @State() mobileSearchHiddenOnBlur = false;\n @State() navMenuVisible = false;\n @State() searchButtonClick = false;\n @State() searchValue = \"\";\n\n /**\n * The alignment of the top navigation content.\n */\n @Prop() contentAligned: IcAlignment = \"full-width\";\n /**\n * Can set a custom breakpoint for the top navigation to switch to mobile mode.\n * Must be one of our specified breakpoints in px: `0`, `576`, `768`, `992`, `1200`.\n */\n @Prop() customMobileBreakpoint: IcDeviceSizes = DEVICE_SIZES.L;\n /**\n * The URL to navigate to when the app title is clicked.\n */\n @Prop() href = \"/\";\n\n /**\n * If `true`, the flyout navigation menu on small devices will be contained by the parent element.\n */\n @Prop() inline = false;\n\n /**\n * The short title of the app to be displayed at small screen sizes in place of the app title.\n */\n @Prop() shortAppTitle = \"\";\n\n /**\n * The status info to be displayed.\n */\n @Prop() status = \"\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The version info to be displayed.\n */\n @Prop() version = \"\";\n\n /**\n * The app title to be displayed. This is required, unless a slotted app title link is used.\n */\n @Prop() appTitle?: string;\n @Watch(\"appTitle\")\n watchPropHandler(newValue: string, oldValue: string): void {\n //added for Gatsby rehydration issue where prop is initially undefined but then changes to actual value\n //this watch can be removed once Gatsby hydration issue is resolved\n onComponentPropUndefinedChange(\n oldValue,\n newValue,\n this.initialiseSearchBar\n );\n }\n\n /**\n * @internal - Emitted when the menu is closed.\n */\n @Event() icNavigationMenuClosed: EventEmitter<void>;\n\n /**\n * @internal - Emitted when the menu is opened.\n */\n @Event() icNavigationMenuOpened: EventEmitter<void>;\n\n /**\n * Emitted when the top navigation is resized.\n */\n @Event() icTopNavResized: EventEmitter<{ size: number }>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.checkSlots();\n this.deviceSize = getCurrentDeviceSize();\n this.initialiseSearchBar();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (!this.hasAppTitleSlot) {\n onComponentRequiredPropUndefined(\n [{ prop: this.appTitle, propName: \"app-title\" }],\n \"Top Navigation\"\n );\n }\n }\n\n componentWillRender(): void {\n this.checkSlots();\n }\n\n @Listen(\"icNavigationMenuClose\", {})\n navBarMenuCloseHandler(): void {\n this.showNavMenu(false);\n this.menuButtonEl?.setFocus();\n }\n\n @Listen(\"icSearchBarBlur\", {})\n searchInputBlurHandler({\n detail,\n }: CustomEvent<IcSearchBarBlurEventDetail>): void {\n if (detail !== null) {\n if (this.mobileSearchBarVisible && !this.searchButtonClick) {\n //don't hide if blur was triggered by click on search button - let the click handler toggle the state\n this.toggleSearchBar();\n }\n this.searchValue = detail.value as string;\n }\n }\n\n @Listen(\"icChange\", {})\n searchValueChangeHandler({ detail }: CustomEvent<IcValueEventDetail>): void {\n this.searchValue = detail.value;\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.foregroundColor = detail.mode;\n }\n\n private checkSlots = () => {\n this.hasAppIcon = isSlotUsed(this.el, \"app-icon\");\n this.hasAppTitleSlot = isSlotUsed(this.el, \"app-title\");\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasIconButtons = isSlotUsed(this.el, \"buttons\");\n this.hasSearchSlotContent = isSlotUsed(this.el, \"search\");\n\n if (this.hasAppIcon) {\n const slottedAppIcon =\n this.el.querySelector<HTMLElement>('[slot=\"app-icon\"]');\n if (slottedAppIcon && slottedAppIcon.tagName === \"A\")\n slottedAppIcon.tabIndex = -1;\n }\n };\n\n private initialiseSearchBar = () => {\n if (!this.hasSearchSlotContent) return;\n\n const slot = getSlot(this.el, \"search\");\n if (slot?.tagName === \"IC-SEARCH-BAR\") {\n this.searchBar = slot as HTMLIcSearchBarElement;\n } else if (slot?.tagName === \"FORM\") {\n this.searchBar = slot.querySelector(\"ic-search-bar\");\n }\n\n if (this.searchBar !== null) {\n this.searchBar.hideLabel = true;\n }\n };\n\n private toggleSearchBar = () => {\n this.mobileSearchBarVisible = !this.mobileSearchBarVisible;\n\n if (!this.searchBar) return;\n\n this.mobileSearchButtonEl?.setAttribute(\n \"aria-label\",\n `${this.mobileSearchBarVisible ? \"Hide\" : \"Show\"} search`\n );\n this.hasFullWidthSearchBar = this.mobileSearchBarVisible;\n this.searchBar.fullWidth = this.mobileSearchBarVisible;\n if (this.mobileSearchBarVisible) {\n setTimeout(() => {\n this.searchBar?.focus();\n }, 100);\n }\n };\n\n private menuButtonClick = () => {\n this.showNavMenu(true);\n };\n\n private showNavMenu = (show: boolean) => {\n this.navMenuVisible = show;\n (show ? this.icNavigationMenuOpened : this.icNavigationMenuClosed).emit();\n document.body.style.height = show ? \"100%\" : \"auto\";\n document.body.style.overflow = show ? \"hidden\" : \"auto\";\n };\n\n private searchButtonMouseDownHandler = () => {\n this.searchButtonClick = true;\n };\n\n private searchButtonClickHandler = () => {\n this.toggleSearchBar();\n this.searchButtonClick = false;\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize === this.deviceSize) return;\n\n this.deviceSize = currSize;\n if (currSize > this.customMobileBreakpoint) {\n this.showNavMenu(false);\n if (this.mobileSearchBarVisible) {\n this.toggleSearchBar();\n }\n }\n this.icTopNavResized.emit({\n size: currSize,\n });\n if (this.searchBar && document.activeElement === this.searchBar) {\n this.searchBar.setAttribute(\"hidden\", \"true\");\n //remove attribute again as this trigger a redraw & applies css\n this.searchBar.removeAttribute(\"hidden\");\n setTimeout(() => {\n this.searchBar?.focus();\n }, 100);\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback(getCurrentDeviceSize());\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n render() {\n const {\n appTitle,\n contentAligned,\n customMobileBreakpoint,\n deviceSize,\n el,\n foregroundColor,\n hasAppIcon,\n hasAppTitleSlot,\n hasFullWidthSearchBar,\n hasIconButtons,\n hasNavigation,\n hasSearchSlotContent,\n href,\n inline,\n menuButtonClick,\n mobileSearchBarVisible,\n navMenuVisible,\n searchButtonClickHandler,\n searchButtonMouseDownHandler,\n shortAppTitle,\n status,\n version,\n theme,\n } = this;\n\n const hasStatus = status !== \"\";\n const hasVersion = version !== \"\";\n const hasMenuContent =\n hasNavigation || hasIconButtons || hasStatus || hasVersion;\n\n const isSmallDeviceSize = deviceSize <= DEVICE_SIZES.S;\n\n const searchButtonSize = isSmallDeviceSize ? \"medium\" : \"large\";\n const hasTitle = appTitle !== \"\" && isPropDefined(appTitle);\n const overMobileBreakpoint = deviceSize <= customMobileBreakpoint;\n\n const appTitleVariant: IcTypographyVariants = overMobileBreakpoint\n ? isSmallDeviceSize\n ? \"subtitle-small\"\n : \"h4\"\n : \"h3\";\n\n const mobileSearchButtonTitle = `${\n mobileSearchBarVisible ? \"Hide\" : \"Show\"\n } search`;\n const menuSize = isSmallDeviceSize ? \"small\" : \"medium\";\n\n const shortAppTitleSlot = isSlotUsed(el, \"short-app-title\");\n const Component = hasAppTitleSlot ? \"div\" : \"a\";\n const attrs = Component == \"a\" && {\n href: href,\n };\n\n return (\n <Host\n class={{\n \"fullwidth-searchbar\": hasFullWidthSearchBar,\n \"mobile-mode\": overMobileBreakpoint,\n [IcBrandForegroundEnum.Dark]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"top-navigation\">\n <ic-section-container aligned={contentAligned} full-height>\n <header role=\"banner\">\n <div class=\"top-panel-container\">\n <div class=\"app-details-container\">\n {(hasTitle || hasAppTitleSlot) && (\n <Component class=\"title-link\" {...attrs}>\n {hasAppIcon && (\n <div class=\"app-icon-container\">\n <slot name=\"app-icon\" />\n </div>\n )}\n {isSmallDeviceSize &&\n (!isEmptyString(shortAppTitle) || shortAppTitleSlot) ? (\n <ic-typography\n variant=\"subtitle-small\"\n aria-label={\n (!hasAppTitleSlot || !shortAppTitleSlot) &&\n `${appTitle} (${shortAppTitle})`\n }\n >\n <h1>\n {shortAppTitleSlot ? (\n <slot name=\"short-app-title\"></slot>\n ) : (\n shortAppTitle\n )}\n </h1>\n </ic-typography>\n ) : (\n <ic-typography variant={appTitleVariant}>\n <h1 class=\"title-wrap\">\n {hasAppTitleSlot ? (\n <slot name=\"app-title\"></slot>\n ) : (\n appTitle\n )}\n </h1>\n </ic-typography>\n )}\n </Component>\n )}\n {hasStatus && (\n <div class=\"app-status\">\n <ic-typography\n aria-label=\"app tag\"\n variant=\"label-uppercase\"\n class=\"app-status-text\"\n >\n {status}\n </ic-typography>\n </div>\n )}\n {hasVersion && (\n <div class=\"app-version\">\n <ic-typography\n variant=\"label\"\n class=\"app-version-text\"\n aria-label=\"app version\"\n >\n {version}\n </ic-typography>\n </div>\n )}\n </div>\n\n {(hasSearchSlotContent || hasMenuContent) && (\n <div class=\"search-menu-container\">\n <div class=\"search-actions-container\">\n {!overMobileBreakpoint ? (\n <Fragment>\n <slot name=\"search\"></slot>\n {hasIconButtons && (\n <div class=\"icon-buttons-container\">\n <slot name=\"buttons\"></slot>\n </div>\n )}\n </Fragment>\n ) : (\n <Fragment>\n {hasSearchSlotContent && (\n <ic-button\n id=\"search-toggle-button\"\n ref={(el) => (this.mobileSearchButtonEl = el)}\n onMouseDown={searchButtonMouseDownHandler}\n variant=\"icon-tertiary\"\n monochrome\n size={searchButtonSize}\n aria-label={mobileSearchButtonTitle}\n theme={foregroundColor as IcThemeMode}\n onClick={searchButtonClickHandler}\n >\n <slot name=\"toggle-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"#ffffff\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" />\n </svg>\n </slot>\n </ic-button>\n )}\n {hasMenuContent && (\n <div class=\"menu-button-container\">\n <span\n id=\"navigation-landmark-button-text\"\n class=\"navigation-landmark-button-text\"\n aria-hidden=\"true\"\n >\n Main navigation button\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-button-text\"\n aria-hidden={`${navMenuVisible}`}\n >\n <ic-button\n id=\"menu-button\"\n ref={(el) => (this.menuButtonEl = el)}\n theme={foregroundColor as IcThemeMode}\n variant=\"secondary\"\n monochrome\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n aria-label={`Open ${\n hasNavigation ? \"navigation\" : \"app\"\n } menu`}\n size={menuSize}\n onClick={menuButtonClick}\n >\n Menu\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#ffffff\"\n slot=\"left-icon\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" />\n </svg>\n </ic-button>\n </nav>\n </div>\n )}\n </Fragment>\n )}\n </div>\n </div>\n )}\n </div>\n\n {mobileSearchBarVisible && (\n <div class=\"search-bar-container\">\n <slot name=\"search\"></slot>\n </div>\n )}\n\n {hasNavigation && !overMobileBreakpoint && (\n <div class=\"navigation-tabs\">\n <span\n id=\"navigation-landmark-text\"\n class=\"navigation-landmark-text\"\n aria-hidden=\"true\"\n >\n Main pages\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-text\"\n class=\"nav-panel-container\"\n >\n <ic-horizontal-scroll\n // eslint-disable-next-line\n // @ts-ignore\n monochrome\n appearance={foregroundColor}\n >\n <ul class=\"navigation-item-list\" tabindex=\"-1\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-horizontal-scroll>\n </nav>\n </div>\n )}\n </header>\n </ic-section-container>\n </div>\n {navMenuVisible && (\n <ic-navigation-menu\n version={version}\n status={status}\n class={{\n inline,\n }}\n >\n {hasIconButtons && (\n <div class=\"menu-buttons-slot\" slot=\"buttons\">\n <slot name=\"buttons\"></slot>\n </div>\n )}\n <ul slot=\"navigation\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-navigation-menu>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -163,7 +163,7 @@ export class Typography {
163
163
  render() {
164
164
  var _a, _b;
165
165
  const { variant, applyVerticalMargins, maxLines, truncated, expanded, strikethrough, underline, italic, bold, theme, } = this;
166
- return (h(Host, { key: 'af405939b9fe0b1d4410d862343471b849e4fdd7', class: {
166
+ return (h(Host, { key: '9628fbe7b5d9c10f640fe189fe454c332e1f6011', class: {
167
167
  [`ic-typography-${variant}`]: true,
168
168
  [`ic-typography-vertical-margins-${variant}`]: !!applyVerticalMargins,
169
169
  ["ic-typography-bold"]: !!bold,
@@ -176,7 +176,7 @@ export class Typography {
176
176
  ((_b = (_a = this.el.getRootNode()) === null || _a === void 0 ? void 0 : _a.host) === null || _b === void 0 ? void 0 : _b.tagName) ===
177
177
  "IC-TOOLTIP") &&
178
178
  maxLines &&
179
- maxLines > 0 ? (h("div", { class: "trunc-wrapper", ref: (el) => (this.truncWrapperEl = el) }, h("slot", null))) : (h("slot", null)), variant === "body" && maxLines && maxLines > 0 && truncated && (h("button", { key: 'ca78a64f9853cbf2d26df99f3c13970ce94de37d', class: { "trunc-btn": true, focus: this.truncButtonFocussed }, onFocus: this.truncButtonFocus, onBlur: this.truncButtonBlur, onMouseDown: this.truncButtonFocusFromMouse, onClick: this.toggleExpanded }, expanded ? "See less" : "See more"))));
179
+ maxLines > 0 ? (h("div", { class: "trunc-wrapper", ref: (el) => (this.truncWrapperEl = el) }, h("slot", null))) : (h("slot", null)), variant === "body" && maxLines && maxLines > 0 && truncated && (h("button", { key: 'e66a10144ba334ab8b2530e2cf666634ce335717', class: { "trunc-btn": true, focus: this.truncButtonFocussed }, onFocus: this.truncButtonFocus, onBlur: this.truncButtonBlur, onMouseDown: this.truncButtonFocusFromMouse, onClick: this.toggleExpanded }, expanded ? "See less" : "See more"))));
180
180
  }
181
181
  static get is() { return "ic-typography"; }
182
182
  static get encapsulation() { return "shadow"; }
@@ -125,4 +125,11 @@ export const IGNORED_KEYBOARD_CHARACTERS = [
125
125
  "Tab",
126
126
  ];
127
127
  export const IC_CUSTOM_ALLOWED_COMPONENTS = [];
128
+ // Component tag names used in focus trapping helper functions
129
+ export const IC_ACCORDION = "IC-ACCORDION";
130
+ export const IC_ACCORDION_GROUP = "IC-ACCORDION-GROUP";
131
+ export const IC_CHECKBOX = "IC-CHECKBOX";
132
+ export const IC_SEARCH_BAR = "IC-SEARCH-BAR";
133
+ export const IC_TAB_CONTEXT = "IC-TAB-CONTEXT";
134
+ export const IC_TEXT_FIELD = "IC-TEXT-FIELD";
128
135
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,sBAAsB;AACtB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,SAAS;KACrB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,sBAAsB;KAClC;IACD,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,SAAS;KACrB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,OAAO;KACnB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,SAAS;KACrB;IACD,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,IAAI;KAChB;CACF,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa;IACb,mBAAmB;IACnB,WAAW;IACX,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,iBAAiB;IACjB,WAAW;IACX,WAAW;IACX,eAAe;IACf,sBAAsB;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,GAAG;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,KAAK;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,SAAS;IACT,mBAAmB;IACnB,WAAW;IACX,oBAAoB;IACpB,UAAU;CACX,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,CAAC;AAMtD,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;CACrC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAClD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,sFAAsF;AACtF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,KAAK;IACL,UAAU;IACV,WAAW;IACX,WAAW;IACX,YAAY;IACZ,SAAS;IACT,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,UAAU;IACV,aAAa;IACb,SAAS;IACT,QAAQ;IACR,KAAK;IACL,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAa,EAAE,CAAC","sourcesContent":["import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\nimport aiIcon from \"../assets/ai-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n ai: {\n icon: aiIcon,\n ariaLabel: \"AI\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n].join(\",\");\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\", \"ic-button\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n\n// Keyboard characters that do not affect the content of an input control when pressed\nexport const IGNORED_KEYBOARD_CHARACTERS = [\n \"Alt\",\n \"AltGraph\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"AudioVolumeDown\",\n \"AudioVolumeMute\",\n \"AudioVolumeUp\",\n \"CapsLock\",\n \"ContextMenu\",\n \"Control\",\n \"Delete\",\n \"End\",\n \"Enter\",\n \"Escape\",\n \"F1\",\n \"F10\",\n \"F11\",\n \"F12\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"Home\",\n \"Insert\",\n \"Meta\",\n \"NumLock\",\n \"PageDown\",\n \"PageUp\",\n \"Shift\",\n \"Tab\",\n];\n\nexport const IC_CUSTOM_ALLOWED_COMPONENTS: string[] = [];\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\nimport aiIcon from \"../assets/ai-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n ai: {\n icon: aiIcon,\n ariaLabel: \"AI\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n].join(\",\");\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\", \"ic-button\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n\n// Keyboard characters that do not affect the content of an input control when pressed\nexport const IGNORED_KEYBOARD_CHARACTERS = [\n \"Alt\",\n \"AltGraph\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"AudioVolumeDown\",\n \"AudioVolumeMute\",\n \"AudioVolumeUp\",\n \"CapsLock\",\n \"ContextMenu\",\n \"Control\",\n \"Delete\",\n \"End\",\n \"Enter\",\n \"Escape\",\n \"F1\",\n \"F10\",\n \"F11\",\n \"F12\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"Home\",\n \"Insert\",\n \"Meta\",\n \"NumLock\",\n \"PageDown\",\n \"PageUp\",\n \"Shift\",\n \"Tab\",\n];\n\nexport const IC_CUSTOM_ALLOWED_COMPONENTS: string[] = [];\n\n// Component tag names used in focus trapping helper functions\nexport const IC_ACCORDION = \"IC-ACCORDION\";\nexport const IC_ACCORDION_GROUP = \"IC-ACCORDION-GROUP\";\nexport const IC_CHECKBOX = \"IC-CHECKBOX\";\nexport const IC_SEARCH_BAR = \"IC-SEARCH-BAR\";\nexport const IC_TAB_CONTEXT = \"IC-TAB-CONTEXT\";\nexport const IC_TEXT_FIELD = \"IC-TEXT-FIELD\";\n"]}
@@ -1,6 +1,6 @@
1
1
  import { forceUpdate } from "@stencil/core";
2
- import { IcBrandForegroundEnum, } from "../utils/types";
3
- import { IC_BLOCK_COLOR_COMPONENTS, IC_BLOCK_COLOR_EXCEPTIONS, IC_FIXED_COLOR_COMPONENTS, } from "./constants";
2
+ import { IcBrandForegroundEnum, } from "./types";
3
+ import { IC_ACCORDION, IC_ACCORDION_GROUP, IC_BLOCK_COLOR_COMPONENTS, IC_BLOCK_COLOR_EXCEPTIONS, IC_CHECKBOX, IC_FIXED_COLOR_COMPONENTS, IC_SEARCH_BAR, IC_TAB_CONTEXT, IC_TEXT_FIELD, } from "./constants";
4
4
  const DARK_MODE_THRESHOLD = 133.3505;
5
5
  const ANYWHERE_SEARCH_POSITION = "anywhere";
6
6
  const icInput = "ic-input";
@@ -472,4 +472,171 @@ export const getElementInheritedTheme = (el) => {
472
472
  export const isSafari = /safari/i.test(window.navigator.userAgent) &&
473
473
  !/Edge/i.test(window.navigator.userAgent) &&
474
474
  !/chrome/i.test(window.navigator.userAgent);
475
+ /**
476
+ * Focuses the provided element, or the next focusable element if it should be skipped. Used for focus trapping.
477
+ * @param focusAttemptCount - number of focus attempts that have been made
478
+ * @param focusedElementIndex - current focused element index
479
+ * @param interactiveElementList - list of interactive elements
480
+ * @param shiftKey - whether the shift key is pressed
481
+ */
482
+ export const focusElement = (focusAttemptCount, focusedElementIndex, interactiveElementList, shiftKey = false) => {
483
+ const element = interactiveElementList[focusedElementIndex];
484
+ if (!element) {
485
+ return;
486
+ }
487
+ let newFocusAttemptCount = focusAttemptCount;
488
+ if (newFocusAttemptCount++ > interactiveElementList.length) {
489
+ return;
490
+ }
491
+ let newFocusedElementIndex = focusedElementIndex;
492
+ if (shouldSkipElement(element)) {
493
+ newFocusedElementIndex = getFocusIndexBasedOnShiftKey(newFocusedElementIndex, shiftKey);
494
+ newFocusedElementIndex = getLoopedNextFocusIndexIfLastElement(newFocusedElementIndex, interactiveElementList);
495
+ return focusElement(newFocusAttemptCount, newFocusedElementIndex, interactiveElementList, shiftKey);
496
+ }
497
+ else {
498
+ switch (element.tagName) {
499
+ case IC_ACCORDION:
500
+ case IC_ACCORDION_GROUP:
501
+ case IC_CHECKBOX:
502
+ case IC_SEARCH_BAR:
503
+ case IC_TAB_CONTEXT:
504
+ case IC_TEXT_FIELD:
505
+ element.setFocus();
506
+ break;
507
+ default:
508
+ element.focus();
509
+ }
510
+ return { newFocusAttemptCount, newFocusedElementIndex };
511
+ }
512
+ };
513
+ /**
514
+ * Gets the index of the currently focused element. Used for focus trapping.
515
+ * @param el - host element of the component
516
+ * @param interactiveElementList - list of interactive elements
517
+ */
518
+ export const getFocusedElementIndex = (el, interactiveElementList) => {
519
+ var _a;
520
+ for (let i = 0; i < interactiveElementList.length; i++) {
521
+ if (interactiveElementList[i] ===
522
+ (((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) || document.activeElement)) {
523
+ return i;
524
+ }
525
+ }
526
+ return null;
527
+ };
528
+ /**
529
+ * Gets the next focusable element index based on whether the shift key is pressed. Used for focus trapping.
530
+ * @param focusedElementIndex - current focused element index
531
+ * @param shiftKey - whether the shift key is pressed
532
+ */
533
+ export const getFocusIndexBasedOnShiftKey = (focusedElementIndex, shiftKey) => (shiftKey ? (focusedElementIndex -= 1) : (focusedElementIndex += 1));
534
+ /**
535
+ * Gets the next focusable element index, looping back to the start or end if necessary. Used for focus trapping.
536
+ * @param focusedElementIndex - current focused element index
537
+ * @param interactiveElementList - list of interactive elements
538
+ */
539
+ export const getLoopedNextFocusIndexIfLastElement = (focusedElementIndex, interactiveElementList) => {
540
+ if (focusedElementIndex > interactiveElementList.length - 1) {
541
+ return 0;
542
+ }
543
+ else if (focusedElementIndex < 0) {
544
+ return interactiveElementList.length - 1;
545
+ }
546
+ return focusedElementIndex;
547
+ };
548
+ /**
549
+ * Handles tab key press for focus trapping.
550
+ * @param el - host element of the component
551
+ * @param focusAttemptCount - number of focus attempts that have been made
552
+ * @param focusedElementIndex - current focused element index
553
+ * @param interactiveElementList - list of interactive elements
554
+ * @param shiftKey - whether the shift key is pressed
555
+ */
556
+ export function handleFocusTrapTabKeyPress(el, focusAttemptCount, focusedElementIndex, interactiveElementList, shiftKey) {
557
+ var _a;
558
+ let newFocusAttemptCount = focusAttemptCount;
559
+ let newFocusedElementIndex = getFocusedElementIndex(el, interactiveElementList) || focusedElementIndex;
560
+ if (((_a = interactiveElementList[focusedElementIndex]) === null || _a === void 0 ? void 0 : _a.tagName) === IC_SEARCH_BAR) {
561
+ return {
562
+ newFocusAttemptCount,
563
+ newFocusedElementIndex,
564
+ preventDefault: false,
565
+ };
566
+ }
567
+ newFocusedElementIndex = getFocusIndexBasedOnShiftKey(newFocusedElementIndex, shiftKey);
568
+ newFocusedElementIndex = getLoopedNextFocusIndexIfLastElement(newFocusedElementIndex, interactiveElementList);
569
+ newFocusAttemptCount = 0;
570
+ const focusElementResult = focusElement(newFocusAttemptCount, newFocusedElementIndex, interactiveElementList, shiftKey);
571
+ if (focusElementResult) {
572
+ newFocusedElementIndex = focusElementResult.newFocusedElementIndex;
573
+ newFocusAttemptCount = focusElementResult.newFocusAttemptCount;
574
+ }
575
+ return { newFocusAttemptCount, newFocusedElementIndex, preventDefault: true };
576
+ }
577
+ /**
578
+ * Sets up listener and mutation observer to refresh interactive elements on slot changes. Used for focus trapping.
579
+ * @param contentWrapper - content wrapper element
580
+ * @param getInteractiveElements - function to get interactive elements
581
+ */
582
+ export const refreshInteractiveElementsOnSlotChange = (contentWrapper, getInteractiveElements) => {
583
+ var _a;
584
+ let contentAreaSlot = null;
585
+ let contentAreaMutationObserver = null;
586
+ if (contentWrapper) {
587
+ contentAreaSlot = contentWrapper.querySelector("slot");
588
+ // Detect changes to slotted elements
589
+ contentAreaSlot === null || contentAreaSlot === void 0 ? void 0 : contentAreaSlot.addEventListener("slotchange", getInteractiveElements);
590
+ contentAreaMutationObserver = new MutationObserver(() => {
591
+ getInteractiveElements();
592
+ });
593
+ // Detect changes to children of slotted elements
594
+ (_a = getSlotElements(contentWrapper)) === null || _a === void 0 ? void 0 : _a.forEach((el) => {
595
+ contentAreaMutationObserver === null || contentAreaMutationObserver === void 0 ? void 0 : contentAreaMutationObserver.observe(el, {
596
+ childList: true,
597
+ subtree: true,
598
+ });
599
+ });
600
+ }
601
+ return { contentAreaSlot, contentAreaMutationObserver };
602
+ };
603
+ /**
604
+ * Removes listener and disconnects mutation observer for slot changes. Used for focus trapping.
605
+ * @param contentAreaSlotMutationObserver - mutation observer for content area slot
606
+ * @param contentAreaSlot - content area slot element
607
+ * @param getInteractiveElements - function to get interactive elements
608
+ */
609
+ export const removeInteractiveElementSlotChangeListener = (contentAreaSlot, contentAreaSlotMutationObserver, getInteractiveElements) => {
610
+ if (contentAreaSlot) {
611
+ contentAreaSlot.removeEventListener("slotchange", getInteractiveElements);
612
+ contentAreaSlotMutationObserver === null || contentAreaSlotMutationObserver === void 0 ? void 0 : contentAreaSlotMutationObserver.disconnect();
613
+ }
614
+ };
615
+ /**
616
+ * Determines whether an element should be skipped when focusing interactive elements. Used for focus trapping.
617
+ * @param element - element to check
618
+ */
619
+ export const shouldSkipElement = (element) => {
620
+ if (!element) {
621
+ return true;
622
+ }
623
+ const isHidden = getComputedStyle(element).visibility === "hidden" ||
624
+ element.offsetHeight === 0 ||
625
+ element.hasAttribute("disabled") ||
626
+ (element.tagName === IC_ACCORDION_GROUP &&
627
+ element.hasAttribute("single-expansion"));
628
+ const radioEl = element.closest("ic-radio-option");
629
+ return (isHidden ||
630
+ (element.getAttribute("type") === "radio" &&
631
+ !!radioEl &&
632
+ !(radioEl.hasAttribute("selected") || element.tabIndex === 0)));
633
+ };
634
+ /**
635
+ * Gets all interactive elements slotted within a component. Used for focus trapping.
636
+ * @param el - host element of the component
637
+ */
638
+ export const slottedInteractiveElements = (el) => Array.from(el.querySelectorAll(`a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex="-1"]),
639
+ ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-context,
640
+ ic-back-to-top, ic-breadcrumb, ic-chip[dismissible="true"], ic-footer-link, ic-link, ic-navigation-button,
641
+ ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion, ic-date-input, ic-date-picker, ic-action-chip, ic-time-input`));
475
642
  //# sourceMappingURL=helpers.js.map