@ukic/web-components 3.7.0 → 3.9.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 (533) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-8217daf4.js → helpers-a0e78e2e.js} +31 -7
  3. package/dist/cjs/helpers-a0e78e2e.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-action-chip.cjs.entry.js +116 -0
  7. package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -0
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +4 -4
  11. package/dist/cjs/ic-badge.cjs.entry.js +4 -4
  12. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -3
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -3
  15. package/dist/cjs/ic-button_3.cjs.entry.js +56 -96
  16. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js +5 -5
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +6 -6
  20. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +13 -5
  22. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-data-list.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-data-row.cjs.entry.js +4 -4
  27. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  31. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  33. package/dist/cjs/ic-footer.cjs.entry.js +4 -4
  34. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  35. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  36. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -9
  37. package/dist/cjs/ic-input-label_2.cjs.entry.js +6 -6
  38. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +70 -0
  39. package/dist/cjs/ic-layout-grid-item.cjs.entry.js.map +1 -0
  40. package/dist/cjs/ic-layout-grid.cjs.entry.js +156 -0
  41. package/dist/cjs/ic-layout-grid.cjs.entry.js.map +1 -0
  42. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  43. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  46. package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -3
  47. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -3
  49. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  50. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  51. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  52. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  53. package/dist/cjs/ic-popover-menu.cjs.entry.js +10 -6
  54. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  56. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  57. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  58. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-select.cjs.entry.js +7 -7
  60. package/dist/cjs/ic-side-navigation.cjs.entry.js +5 -5
  61. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  62. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  64. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  65. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  66. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  67. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  69. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  70. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  71. package/dist/cjs/ic-text-field.cjs.entry.js +7 -7
  72. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-toast.cjs.entry.js +5 -5
  75. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  77. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  78. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  79. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  80. package/dist/cjs/index-d337cd8a.js +12 -0
  81. package/dist/cjs/loader.cjs.js +1 -1
  82. package/dist/collection/assets/ai-icon.svg +11 -0
  83. package/dist/collection/collection-manifest.json +3 -0
  84. package/dist/collection/components/ic-action-chip/ic-action-chip.css +644 -0
  85. package/dist/collection/components/ic-action-chip/ic-action-chip.js +564 -0
  86. package/dist/collection/components/ic-action-chip/ic-action-chip.js.map +1 -0
  87. package/dist/collection/components/ic-action-chip/ic-action-chip.stories.js +386 -0
  88. package/dist/collection/components/ic-alert/ic-alert.css +13 -0
  89. package/dist/collection/components/ic-alert/ic-alert.js +1 -1
  90. package/dist/collection/components/ic-alert/ic-alert.stories.js +7 -2
  91. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -3
  92. package/dist/collection/components/ic-badge/ic-badge.css +4 -0
  93. package/dist/collection/components/ic-badge/ic-badge.js +3 -3
  94. package/dist/collection/components/ic-badge/ic-badge.stories.js +98 -0
  95. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -2
  96. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  97. package/dist/collection/components/ic-button/ic-button.css +3 -11
  98. package/dist/collection/components/ic-button/ic-button.js +33 -12
  99. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  100. package/dist/collection/components/ic-button/ic-button.stories.js +181 -2
  101. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  102. package/dist/collection/components/ic-checkbox/ic-checkbox.css +1 -0
  103. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
  104. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +2 -2
  105. package/dist/collection/components/ic-chip/ic-chip.css +3 -3
  106. package/dist/collection/components/ic-chip/ic-chip.js +12 -4
  107. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  108. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +2 -2
  109. package/dist/collection/components/ic-data-list/ic-data-list.css +5 -0
  110. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  111. package/dist/collection/components/ic-data-list/ic-data-list.stories.js +50 -0
  112. package/dist/collection/components/ic-data-row/ic-data-row.css +3 -1
  113. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  114. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  115. package/dist/collection/components/ic-dialog/ic-dialog.stories.js +31 -4
  116. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  117. package/dist/collection/components/ic-footer/ic-footer.js +3 -3
  118. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  119. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  120. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  121. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  122. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  123. package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
  124. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  125. package/dist/collection/components/ic-layout-grid/ic-layout-grid.css +540 -0
  126. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +377 -0
  127. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js.map +1 -0
  128. package/dist/collection/components/ic-layout-grid/ic-layout-grid.stories.js +429 -0
  129. package/dist/collection/components/ic-layout-grid/ic-layout-grid.types.js +2 -0
  130. package/dist/collection/components/ic-layout-grid/ic-layout-grid.types.js.map +1 -0
  131. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.css +12 -0
  132. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +182 -0
  133. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js.map +1 -0
  134. package/dist/collection/components/ic-link/ic-link.js +1 -1
  135. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
  136. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  137. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  138. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  139. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +2 -0
  140. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  141. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +2 -2
  142. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  143. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  144. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  145. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  146. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +29 -5
  147. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  148. package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +94 -0
  149. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  150. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  151. package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
  152. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  153. package/dist/collection/components/ic-select/ic-select.js +6 -6
  154. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  155. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  156. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  157. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  158. package/dist/collection/components/ic-step/ic-step.js +13 -13
  159. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  160. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  161. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  162. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  163. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  164. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  165. package/dist/collection/components/ic-text-field/ic-text-field.js +6 -6
  166. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  167. package/dist/collection/components/ic-toast/ic-toast.css +8 -0
  168. package/dist/collection/components/ic-toast/ic-toast.js +4 -4
  169. package/dist/collection/components/ic-toast/ic-toast.stories.js +2 -2
  170. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  171. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  172. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  173. package/dist/collection/components/ic-tooltip/ic-tooltip.css +2 -5
  174. package/dist/collection/components/ic-tooltip/ic-tooltip.js +57 -78
  175. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  176. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +38 -0
  177. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  178. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  179. package/dist/collection/utils/constants.js +5 -0
  180. package/dist/collection/utils/constants.js.map +1 -1
  181. package/dist/collection/utils/helpers.js +14 -6
  182. package/dist/collection/utils/helpers.js.map +1 -1
  183. package/dist/collection/utils/types.js.map +1 -1
  184. package/dist/components/helpers.js +31 -7
  185. package/dist/components/helpers.js.map +1 -1
  186. package/dist/components/ic-action-chip.d.ts +11 -0
  187. package/dist/components/ic-action-chip.js +160 -0
  188. package/dist/components/ic-action-chip.js.map +1 -0
  189. package/dist/components/ic-alert.js +1 -1
  190. package/dist/components/ic-alert.js.map +1 -1
  191. package/dist/components/ic-back-to-top.js +4 -4
  192. package/dist/components/ic-back-to-top.js.map +1 -1
  193. package/dist/components/ic-badge.js +4 -4
  194. package/dist/components/ic-badge.js.map +1 -1
  195. package/dist/components/ic-breadcrumb-group.js +3 -3
  196. package/dist/components/ic-breadcrumb2.js +3 -3
  197. package/dist/components/ic-button2.js +15 -13
  198. package/dist/components/ic-button2.js.map +1 -1
  199. package/dist/components/ic-card-vertical.js +4 -4
  200. package/dist/components/ic-checkbox-group.js +3 -3
  201. package/dist/components/ic-checkbox.js +6 -6
  202. package/dist/components/ic-checkbox.js.map +1 -1
  203. package/dist/components/ic-chip.js +13 -5
  204. package/dist/components/ic-chip.js.map +1 -1
  205. package/dist/components/ic-classification-banner.js +2 -2
  206. package/dist/components/ic-data-list.js +3 -3
  207. package/dist/components/ic-data-list.js.map +1 -1
  208. package/dist/components/ic-data-row.js +4 -4
  209. package/dist/components/ic-data-row.js.map +1 -1
  210. package/dist/components/ic-dialog.js +2 -2
  211. package/dist/components/ic-divider2.js +1 -1
  212. package/dist/components/ic-empty-state.js +2 -2
  213. package/dist/components/ic-footer-link-group.js +1 -1
  214. package/dist/components/ic-footer-link.js +3 -3
  215. package/dist/components/ic-footer.js +4 -4
  216. package/dist/components/ic-hero.js +5 -5
  217. package/dist/components/ic-horizontal-scroll2.js +6 -6
  218. package/dist/components/ic-input-component-container2.js +4 -4
  219. package/dist/components/ic-input-container2.js +2 -2
  220. package/dist/components/ic-input-label2.js +3 -3
  221. package/dist/components/ic-input-validation2.js +4 -4
  222. package/dist/components/ic-layout-grid-item.d.ts +11 -0
  223. package/dist/components/ic-layout-grid-item.js +95 -0
  224. package/dist/components/ic-layout-grid-item.js.map +1 -0
  225. package/dist/components/ic-layout-grid.d.ts +11 -0
  226. package/dist/components/ic-layout-grid.js +188 -0
  227. package/dist/components/ic-layout-grid.js.map +1 -0
  228. package/dist/components/ic-link2.js +1 -1
  229. package/dist/components/ic-loading-indicator2.js +5 -5
  230. package/dist/components/ic-menu-group.js +2 -2
  231. package/dist/components/ic-menu-item2.js +1 -1
  232. package/dist/components/ic-menu2.js +4 -4
  233. package/dist/components/ic-navigation-button.js +3 -3
  234. package/dist/components/ic-navigation-group.js +3 -3
  235. package/dist/components/ic-navigation-group.js.map +1 -1
  236. package/dist/components/ic-navigation-item.js +3 -3
  237. package/dist/components/ic-navigation-menu2.js +5 -5
  238. package/dist/components/ic-page-header.js +7 -7
  239. package/dist/components/ic-pagination-item2.js +2 -2
  240. package/dist/components/ic-pagination.js +4 -4
  241. package/dist/components/ic-pagination.js.map +1 -1
  242. package/dist/components/ic-popover-menu.js +11 -6
  243. package/dist/components/ic-popover-menu.js.map +1 -1
  244. package/dist/components/ic-radio-group.js +5 -5
  245. package/dist/components/ic-radio-group.js.map +1 -1
  246. package/dist/components/ic-radio-option.js +5 -5
  247. package/dist/components/ic-radio-option.js.map +1 -1
  248. package/dist/components/ic-search-bar.js +10 -10
  249. package/dist/components/ic-section-container2.js +2 -2
  250. package/dist/components/ic-select.js +7 -7
  251. package/dist/components/ic-side-navigation.js +5 -5
  252. package/dist/components/ic-skeleton.js +2 -2
  253. package/dist/components/ic-skip-link.js +2 -2
  254. package/dist/components/ic-status-tag.js +2 -2
  255. package/dist/components/ic-status-tag.js.map +1 -1
  256. package/dist/components/ic-step.js +14 -14
  257. package/dist/components/ic-stepper.js +2 -2
  258. package/dist/components/ic-switch.js +5 -5
  259. package/dist/components/ic-tab-context.js +1 -1
  260. package/dist/components/ic-tab-group.js +2 -2
  261. package/dist/components/ic-tab-panel.js +2 -2
  262. package/dist/components/ic-tab.js +2 -2
  263. package/dist/components/ic-tab.js.map +1 -1
  264. package/dist/components/ic-text-field.js +7 -7
  265. package/dist/components/ic-theme.js +2 -2
  266. package/dist/components/ic-toast-region.js +1 -1
  267. package/dist/components/ic-toast.js +5 -5
  268. package/dist/components/ic-toast.js.map +1 -1
  269. package/dist/components/ic-toggle-button-group.js +2 -2
  270. package/dist/components/ic-toggle-button.js +2 -2
  271. package/dist/components/ic-tooltip2.js +39 -79
  272. package/dist/components/ic-tooltip2.js.map +1 -1
  273. package/dist/components/ic-top-navigation.js +5 -5
  274. package/dist/components/ic-typography2.js +2 -2
  275. package/dist/core/core.css +236 -16
  276. package/dist/core/core.esm.js +1 -1
  277. package/dist/core/core.esm.js.map +1 -1
  278. package/dist/core/p-0d680d19.entry.js +2 -0
  279. package/dist/core/p-0d680d19.entry.js.map +1 -0
  280. package/dist/core/{p-06e80441.entry.js → p-15dbccc2.entry.js} +2 -2
  281. package/dist/core/{p-91f6884a.entry.js → p-19cf2327.entry.js} +2 -2
  282. package/dist/core/{p-4b6818d9.entry.js → p-1cc402b8.entry.js} +2 -2
  283. package/dist/core/p-1d37ac1c.entry.js +2 -0
  284. package/dist/core/p-1d37ac1c.entry.js.map +1 -0
  285. package/dist/core/{p-182b7037.entry.js → p-1e2f40b0.entry.js} +2 -2
  286. package/dist/core/{p-9d5e4b62.entry.js → p-21cf2beb.entry.js} +2 -2
  287. package/dist/core/p-25007ec9.js +2 -0
  288. package/dist/core/p-25007ec9.js.map +1 -0
  289. package/dist/core/{p-fc5661ac.entry.js → p-287e5c17.entry.js} +2 -2
  290. package/dist/core/{p-543b90c5.entry.js → p-28efe829.entry.js} +2 -2
  291. package/dist/core/{p-fb6e6ac4.entry.js → p-2f4f392f.entry.js} +2 -2
  292. package/dist/core/{p-4301e11e.entry.js → p-313a8a2f.entry.js} +2 -2
  293. package/dist/core/p-317e005f.entry.js +2 -0
  294. package/dist/core/{p-ff47772c.entry.js.map → p-317e005f.entry.js.map} +1 -1
  295. package/dist/core/{p-f4ee5fbb.entry.js → p-3dc54847.entry.js} +2 -2
  296. package/dist/core/{p-0549305b.entry.js → p-3e5d7a3d.entry.js} +2 -2
  297. package/dist/core/p-41ef74a7.entry.js +2 -0
  298. package/dist/core/p-41ef74a7.entry.js.map +1 -0
  299. package/dist/core/{p-ae2ea264.entry.js → p-41f92698.entry.js} +2 -2
  300. package/dist/core/p-43324339.entry.js +2 -0
  301. package/dist/core/p-43324339.entry.js.map +1 -0
  302. package/dist/core/{p-9e051db4.entry.js → p-45dd12ee.entry.js} +2 -2
  303. package/dist/core/{p-018eaee0.entry.js → p-493eaabb.entry.js} +2 -2
  304. package/dist/core/{p-a591ef38.entry.js → p-4ca782eb.entry.js} +2 -2
  305. package/dist/core/{p-056be0df.entry.js → p-4d1a3036.entry.js} +2 -2
  306. package/dist/core/p-52748d5c.entry.js +2 -0
  307. package/dist/core/p-52748d5c.entry.js.map +1 -0
  308. package/dist/core/p-595a4d06.entry.js +2 -0
  309. package/dist/core/p-595a4d06.entry.js.map +1 -0
  310. package/dist/core/p-5daa7915.entry.js +2 -0
  311. package/dist/core/{p-02132a4c.entry.js.map → p-5daa7915.entry.js.map} +1 -1
  312. package/dist/core/{p-421b5f2d.entry.js → p-5f68f62b.entry.js} +2 -2
  313. package/dist/core/{p-d281c3cf.entry.js → p-5fbc8e62.entry.js} +2 -2
  314. package/dist/core/{p-06b0d0f6.entry.js → p-6014ab64.entry.js} +2 -2
  315. package/dist/core/{p-afde0edc.entry.js → p-661ae402.entry.js} +2 -2
  316. package/dist/core/{p-a2ae5d9e.entry.js → p-6a576a8b.entry.js} +2 -2
  317. package/dist/core/{p-b1b27b7e.entry.js → p-6e8ef73c.entry.js} +2 -2
  318. package/dist/core/p-6ed0ac48.entry.js +2 -0
  319. package/dist/core/{p-3194e46c.entry.js.map → p-6ed0ac48.entry.js.map} +1 -1
  320. package/dist/core/p-711bfeed.entry.js +2 -0
  321. package/dist/core/p-711bfeed.entry.js.map +1 -0
  322. package/dist/core/{p-2ec0d11c.entry.js → p-72a9909c.entry.js} +2 -2
  323. package/dist/core/{p-f9491692.entry.js → p-742a9181.entry.js} +2 -2
  324. package/dist/core/p-7cd4f6a6.entry.js +2 -0
  325. package/dist/core/{p-773ded36.entry.js.map → p-7cd4f6a6.entry.js.map} +1 -1
  326. package/dist/core/{p-152ddde9.entry.js → p-8a4b12e4.entry.js} +2 -2
  327. package/dist/core/{p-3448c713.entry.js → p-8b5022bc.entry.js} +2 -2
  328. package/dist/core/{p-ce916f35.entry.js → p-9323c234.entry.js} +2 -2
  329. package/dist/core/{p-50d13439.entry.js → p-948f89a0.entry.js} +2 -2
  330. package/dist/core/p-97b93ddf.entry.js +2 -0
  331. package/dist/core/p-97b93ddf.entry.js.map +1 -0
  332. package/dist/core/{p-0f86ea09.entry.js → p-999f0a5d.entry.js} +2 -2
  333. package/dist/core/p-999f0a5d.entry.js.map +1 -0
  334. package/dist/core/{p-ba89fa16.entry.js → p-9c013333.entry.js} +2 -2
  335. package/dist/core/{p-b83cca09.entry.js → p-9eeb5e85.entry.js} +2 -2
  336. package/dist/core/{p-0179fbd3.entry.js → p-9f36791b.entry.js} +2 -2
  337. package/dist/core/{p-8a5b0fb0.entry.js → p-a602a8e1.entry.js} +2 -2
  338. package/dist/core/{p-98869fe7.entry.js → p-a77364f5.entry.js} +2 -2
  339. package/dist/core/{p-6b52e47f.entry.js → p-af9c391d.entry.js} +2 -2
  340. package/dist/core/{p-77750efc.entry.js → p-b0d488d0.entry.js} +2 -2
  341. package/dist/core/p-b25d33d8.entry.js +2 -0
  342. package/dist/core/{p-627f7172.entry.js.map → p-b25d33d8.entry.js.map} +1 -1
  343. package/dist/core/{p-cd8dab55.entry.js → p-b52000d9.entry.js} +2 -2
  344. package/dist/core/p-cbe0d1bb.entry.js +2 -0
  345. package/dist/core/{p-ec1657fc.entry.js.map → p-cbe0d1bb.entry.js.map} +1 -1
  346. package/dist/core/p-ceea1712.entry.js +2 -0
  347. package/dist/core/p-ceea1712.entry.js.map +1 -0
  348. package/dist/core/p-cf631191.entry.js +2 -0
  349. package/dist/core/{p-6dd73165.entry.js → p-df88ff5b.entry.js} +2 -2
  350. package/dist/core/{p-bb21268f.entry.js → p-e652ab09.entry.js} +2 -2
  351. package/dist/core/{p-29468171.entry.js → p-e876e47c.entry.js} +2 -2
  352. package/dist/core/p-ea061ccf.entry.js +2 -0
  353. package/dist/core/p-ea061ccf.entry.js.map +1 -0
  354. package/dist/core/{p-ab1103e1.entry.js → p-ea778379.entry.js} +2 -2
  355. package/dist/core/{p-948086f4.entry.js → p-ef4b5469.entry.js} +2 -2
  356. package/dist/core/p-f309d3af.entry.js +2 -0
  357. package/dist/core/{p-554c555f.entry.js.map → p-f309d3af.entry.js.map} +1 -1
  358. package/dist/core/{p-9ed5f11d.entry.js → p-f6a02202.entry.js} +2 -2
  359. package/dist/core/p-fc3b1155.entry.js +2 -0
  360. package/dist/core/p-fc3b1155.entry.js.map +1 -0
  361. package/dist/core/p-ffac41d6.entry.js +2 -0
  362. package/dist/core/p-ffac41d6.entry.js.map +1 -0
  363. package/dist/esm/core.js +1 -1
  364. package/dist/esm/{helpers-f5ff3b42.js → helpers-56631aa0.js} +32 -8
  365. package/dist/esm/helpers-56631aa0.js.map +1 -0
  366. package/dist/esm/ic-accordion-group.entry.js +1 -1
  367. package/dist/esm/ic-accordion.entry.js +1 -1
  368. package/dist/esm/ic-action-chip.entry.js +112 -0
  369. package/dist/esm/ic-action-chip.entry.js.map +1 -0
  370. package/dist/esm/ic-alert.entry.js +2 -2
  371. package/dist/esm/ic-alert.entry.js.map +1 -1
  372. package/dist/esm/ic-back-to-top.entry.js +4 -4
  373. package/dist/esm/ic-badge.entry.js +4 -4
  374. package/dist/esm/ic-badge.entry.js.map +1 -1
  375. package/dist/esm/ic-breadcrumb-group.entry.js +3 -3
  376. package/dist/esm/ic-breadcrumb.entry.js +3 -3
  377. package/dist/esm/ic-button_3.entry.js +56 -96
  378. package/dist/esm/ic-button_3.entry.js.map +1 -1
  379. package/dist/esm/ic-card-vertical.entry.js +5 -5
  380. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  381. package/dist/esm/ic-checkbox.entry.js +6 -6
  382. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  383. package/dist/esm/ic-chip.entry.js +13 -5
  384. package/dist/esm/ic-chip.entry.js.map +1 -1
  385. package/dist/esm/ic-classification-banner.entry.js +2 -2
  386. package/dist/esm/ic-data-list.entry.js +3 -3
  387. package/dist/esm/ic-data-list.entry.js.map +1 -1
  388. package/dist/esm/ic-data-row.entry.js +4 -4
  389. package/dist/esm/ic-data-row.entry.js.map +1 -1
  390. package/dist/esm/ic-dialog.entry.js +2 -2
  391. package/dist/esm/ic-divider.entry.js +1 -1
  392. package/dist/esm/ic-empty-state.entry.js +3 -3
  393. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  394. package/dist/esm/ic-footer-link.entry.js +3 -3
  395. package/dist/esm/ic-footer.entry.js +4 -4
  396. package/dist/esm/ic-hero.entry.js +5 -5
  397. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  398. package/dist/esm/ic-input-component-container_3.entry.js +9 -9
  399. package/dist/esm/ic-input-label_2.entry.js +6 -6
  400. package/dist/esm/ic-layout-grid-item.entry.js +66 -0
  401. package/dist/esm/ic-layout-grid-item.entry.js.map +1 -0
  402. package/dist/esm/ic-layout-grid.entry.js +152 -0
  403. package/dist/esm/ic-layout-grid.entry.js.map +1 -0
  404. package/dist/esm/ic-link.entry.js +2 -2
  405. package/dist/esm/ic-menu-group.entry.js +2 -2
  406. package/dist/esm/ic-menu-item.entry.js +1 -1
  407. package/dist/esm/ic-navigation-button.entry.js +3 -3
  408. package/dist/esm/ic-navigation-group.entry.js +3 -3
  409. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  410. package/dist/esm/ic-navigation-item.entry.js +3 -3
  411. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  412. package/dist/esm/ic-page-header.entry.js +7 -7
  413. package/dist/esm/ic-pagination-item.entry.js +2 -2
  414. package/dist/esm/ic-pagination.entry.js +5 -5
  415. package/dist/esm/ic-popover-menu.entry.js +10 -6
  416. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  417. package/dist/esm/ic-radio-group.entry.js +5 -5
  418. package/dist/esm/ic-radio-option.entry.js +5 -5
  419. package/dist/esm/ic-search-bar.entry.js +10 -10
  420. package/dist/esm/ic-section-container.entry.js +2 -2
  421. package/dist/esm/ic-select.entry.js +7 -7
  422. package/dist/esm/ic-side-navigation.entry.js +5 -5
  423. package/dist/esm/ic-skeleton.entry.js +2 -2
  424. package/dist/esm/ic-skip-link.entry.js +2 -2
  425. package/dist/esm/ic-status-tag.entry.js +3 -3
  426. package/dist/esm/ic-step.entry.js +14 -14
  427. package/dist/esm/ic-stepper.entry.js +3 -3
  428. package/dist/esm/ic-switch.entry.js +5 -5
  429. package/dist/esm/ic-tab-context.entry.js +1 -1
  430. package/dist/esm/ic-tab-group.entry.js +3 -3
  431. package/dist/esm/ic-tab-panel.entry.js +2 -2
  432. package/dist/esm/ic-tab.entry.js +3 -3
  433. package/dist/esm/ic-text-field.entry.js +7 -7
  434. package/dist/esm/ic-theme.entry.js +2 -2
  435. package/dist/esm/ic-toast-region.entry.js +1 -1
  436. package/dist/esm/ic-toast.entry.js +5 -5
  437. package/dist/esm/ic-toast.entry.js.map +1 -1
  438. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  439. package/dist/esm/ic-toggle-button.entry.js +3 -3
  440. package/dist/esm/ic-top-navigation.entry.js +5 -5
  441. package/dist/esm/ic-typography.entry.js +3 -3
  442. package/dist/esm/index-a7a720e7.js +12 -0
  443. package/dist/esm/loader.js +1 -1
  444. package/dist/types/components/ic-action-chip/ic-action-chip.d.ts +100 -0
  445. package/dist/types/components/ic-button/ic-button.d.ts +4 -0
  446. package/dist/types/components/ic-chip/ic-chip.d.ts +2 -0
  447. package/dist/types/components/ic-layout-grid/ic-layout-grid.d.ts +56 -0
  448. package/dist/types/components/ic-layout-grid/ic-layout-grid.types.d.ts +8 -0
  449. package/dist/types/components/ic-layout-grid-item/ic-layout-grid-item.d.ts +29 -0
  450. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +4 -0
  451. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -4
  452. package/dist/types/components.d.ts +343 -2
  453. package/dist/types/utils/constants.d.ts +4 -0
  454. package/dist/types/utils/helpers.d.ts +3 -3
  455. package/dist/types/utils/types.d.ts +1 -1
  456. package/hydrate/index.js +659 -278
  457. package/hydrate/index.mjs +659 -278
  458. package/package.json +2 -2
  459. package/vscode-data.json +270 -0
  460. package/dist/cjs/helpers-8217daf4.js.map +0 -1
  461. package/dist/core/p-02132a4c.entry.js +0 -2
  462. package/dist/core/p-08567369.entry.js +0 -2
  463. package/dist/core/p-08567369.entry.js.map +0 -1
  464. package/dist/core/p-0f86ea09.entry.js.map +0 -1
  465. package/dist/core/p-3194e46c.entry.js +0 -2
  466. package/dist/core/p-43b98687.entry.js +0 -2
  467. package/dist/core/p-43b98687.entry.js.map +0 -1
  468. package/dist/core/p-4b8bfb59.entry.js +0 -2
  469. package/dist/core/p-4b8bfb59.entry.js.map +0 -1
  470. package/dist/core/p-4cd83bfe.entry.js +0 -2
  471. package/dist/core/p-4cd83bfe.entry.js.map +0 -1
  472. package/dist/core/p-554c555f.entry.js +0 -2
  473. package/dist/core/p-5fb58cc8.entry.js +0 -2
  474. package/dist/core/p-5fb58cc8.entry.js.map +0 -1
  475. package/dist/core/p-627f7172.entry.js +0 -2
  476. package/dist/core/p-70abcb2b.js +0 -2
  477. package/dist/core/p-70abcb2b.js.map +0 -1
  478. package/dist/core/p-773ded36.entry.js +0 -2
  479. package/dist/core/p-7cada631.entry.js +0 -2
  480. package/dist/core/p-7cada631.entry.js.map +0 -1
  481. package/dist/core/p-939adcae.entry.js +0 -2
  482. package/dist/core/p-939adcae.entry.js.map +0 -1
  483. package/dist/core/p-97f67617.entry.js +0 -2
  484. package/dist/core/p-97f67617.entry.js.map +0 -1
  485. package/dist/core/p-c100724d.entry.js +0 -2
  486. package/dist/core/p-d85b438a.entry.js +0 -2
  487. package/dist/core/p-d85b438a.entry.js.map +0 -1
  488. package/dist/core/p-ec1657fc.entry.js +0 -2
  489. package/dist/core/p-ff47772c.entry.js +0 -2
  490. package/dist/esm/helpers-f5ff3b42.js.map +0 -1
  491. /package/dist/core/{p-06e80441.entry.js.map → p-15dbccc2.entry.js.map} +0 -0
  492. /package/dist/core/{p-91f6884a.entry.js.map → p-19cf2327.entry.js.map} +0 -0
  493. /package/dist/core/{p-4b6818d9.entry.js.map → p-1cc402b8.entry.js.map} +0 -0
  494. /package/dist/core/{p-182b7037.entry.js.map → p-1e2f40b0.entry.js.map} +0 -0
  495. /package/dist/core/{p-9d5e4b62.entry.js.map → p-21cf2beb.entry.js.map} +0 -0
  496. /package/dist/core/{p-fc5661ac.entry.js.map → p-287e5c17.entry.js.map} +0 -0
  497. /package/dist/core/{p-543b90c5.entry.js.map → p-28efe829.entry.js.map} +0 -0
  498. /package/dist/core/{p-fb6e6ac4.entry.js.map → p-2f4f392f.entry.js.map} +0 -0
  499. /package/dist/core/{p-4301e11e.entry.js.map → p-313a8a2f.entry.js.map} +0 -0
  500. /package/dist/core/{p-f4ee5fbb.entry.js.map → p-3dc54847.entry.js.map} +0 -0
  501. /package/dist/core/{p-0549305b.entry.js.map → p-3e5d7a3d.entry.js.map} +0 -0
  502. /package/dist/core/{p-ae2ea264.entry.js.map → p-41f92698.entry.js.map} +0 -0
  503. /package/dist/core/{p-9e051db4.entry.js.map → p-45dd12ee.entry.js.map} +0 -0
  504. /package/dist/core/{p-018eaee0.entry.js.map → p-493eaabb.entry.js.map} +0 -0
  505. /package/dist/core/{p-a591ef38.entry.js.map → p-4ca782eb.entry.js.map} +0 -0
  506. /package/dist/core/{p-056be0df.entry.js.map → p-4d1a3036.entry.js.map} +0 -0
  507. /package/dist/core/{p-421b5f2d.entry.js.map → p-5f68f62b.entry.js.map} +0 -0
  508. /package/dist/core/{p-d281c3cf.entry.js.map → p-5fbc8e62.entry.js.map} +0 -0
  509. /package/dist/core/{p-06b0d0f6.entry.js.map → p-6014ab64.entry.js.map} +0 -0
  510. /package/dist/core/{p-afde0edc.entry.js.map → p-661ae402.entry.js.map} +0 -0
  511. /package/dist/core/{p-a2ae5d9e.entry.js.map → p-6a576a8b.entry.js.map} +0 -0
  512. /package/dist/core/{p-b1b27b7e.entry.js.map → p-6e8ef73c.entry.js.map} +0 -0
  513. /package/dist/core/{p-2ec0d11c.entry.js.map → p-72a9909c.entry.js.map} +0 -0
  514. /package/dist/core/{p-f9491692.entry.js.map → p-742a9181.entry.js.map} +0 -0
  515. /package/dist/core/{p-152ddde9.entry.js.map → p-8a4b12e4.entry.js.map} +0 -0
  516. /package/dist/core/{p-3448c713.entry.js.map → p-8b5022bc.entry.js.map} +0 -0
  517. /package/dist/core/{p-ce916f35.entry.js.map → p-9323c234.entry.js.map} +0 -0
  518. /package/dist/core/{p-50d13439.entry.js.map → p-948f89a0.entry.js.map} +0 -0
  519. /package/dist/core/{p-ba89fa16.entry.js.map → p-9c013333.entry.js.map} +0 -0
  520. /package/dist/core/{p-b83cca09.entry.js.map → p-9eeb5e85.entry.js.map} +0 -0
  521. /package/dist/core/{p-0179fbd3.entry.js.map → p-9f36791b.entry.js.map} +0 -0
  522. /package/dist/core/{p-8a5b0fb0.entry.js.map → p-a602a8e1.entry.js.map} +0 -0
  523. /package/dist/core/{p-98869fe7.entry.js.map → p-a77364f5.entry.js.map} +0 -0
  524. /package/dist/core/{p-6b52e47f.entry.js.map → p-af9c391d.entry.js.map} +0 -0
  525. /package/dist/core/{p-77750efc.entry.js.map → p-b0d488d0.entry.js.map} +0 -0
  526. /package/dist/core/{p-cd8dab55.entry.js.map → p-b52000d9.entry.js.map} +0 -0
  527. /package/dist/core/{p-c100724d.entry.js.map → p-cf631191.entry.js.map} +0 -0
  528. /package/dist/core/{p-6dd73165.entry.js.map → p-df88ff5b.entry.js.map} +0 -0
  529. /package/dist/core/{p-bb21268f.entry.js.map → p-e652ab09.entry.js.map} +0 -0
  530. /package/dist/core/{p-29468171.entry.js.map → p-e876e47c.entry.js.map} +0 -0
  531. /package/dist/core/{p-ab1103e1.entry.js.map → p-ea778379.entry.js.map} +0 -0
  532. /package/dist/core/{p-948086f4.entry.js.map → p-ef4b5469.entry.js.map} +0 -0
  533. /package/dist/core/{p-9ed5f11d.entry.js.map → p-f6a02202.entry.js.map} +0 -0
@@ -912,7 +912,7 @@ export class Menu {
912
912
  const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, parentEl, SEARCH_BAR_TAG, multiSelect, } = this;
913
913
  const selectAllButtonText = `${(value === null || value === void 0 ? void 0 : value.length) === this.ungroupedOptions.length ? "Clear" : "Select"} all`;
914
914
  const hasNoResults = this.host.classList.contains("no-results");
915
- return (h(Host, { key: 'bce19ee8d7929f03d2de173ad6f2b639cd2fbf2c', class: {
915
+ return (h(Host, { key: '61aef706407716bbd85f087d6baeac4e393f5bb5', class: {
916
916
  "ic-menu-full-width": !!fullWidth,
917
917
  "ic-menu-no-focus": ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === "INPUT" &&
918
918
  (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) !== SEARCH_BAR_TAG) ||
@@ -921,7 +921,7 @@ export class Menu {
921
921
  [`ic-menu-${size}`]: true,
922
922
  "ic-menu-open": open && options.length !== 0,
923
923
  "ic-menu-multiple": multiSelect,
924
- } }, options.length !== 0 && (h("ul", { key: 'edbb9d969dd8218a45c6d012abf8964fc2acd0a7', id: menuId, class: "menu", role: "listbox", "aria-label": `${inputLabel} pop-up`, "aria-multiselectable": multiSelect ? "true" : "false", tabindex: open &&
924
+ } }, options.length !== 0 && (h("ul", { key: '5800fadeb848cfad908cdbd2bb7bfd7ecba08811', id: menuId, class: "menu", role: "listbox", "aria-label": `${inputLabel} pop-up`, "aria-multiselectable": multiSelect ? "true" : "false", tabindex: open &&
925
925
  !keyboardNav &&
926
926
  ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ||
927
927
  (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === SEARCH_BAR_TAG)
@@ -949,7 +949,7 @@ export class Menu {
949
949
  multiSelect &&
950
950
  !isLoading &&
951
951
  !hasTimedOut &&
952
- !hasNoResults && (h("div", { key: '317f18bd8ff88fadf840ccc5666bf7ae7a6b1e65', class: "option-bar" }, h("ic-typography", { key: '32e28e814c9c3d4ac243e2d45cb2487a99a900ba' }, h("p", { key: '6ed28e350ad356ef669b4b6b9f3d8718a7274782' }, `${value ? value.length : 0}/${getOptionsWithoutGroupTitlesCount(this.options)} selected`)), h("ic-button", { key: 'e66e1b04732d26ebbc05751eadc49968c11ac92c', class: "select-all-button", "aria-label": `${selectAllButtonText} options for ${inputLabel}`, ref: (el) => (this.selectAllButton = el), variant: "tertiary", onClick: this.handleSelectAllClick, onMouseDown: this.handleSelectAllMouseDown, onBlur: this.handleSelectAllBlur, onFocus: this.handleSelectAllFocus, size: size === "small" ? "small" : "medium" }, selectAllButtonText)))));
952
+ !hasNoResults && (h("div", { key: '3036b8e8b5727e354d45e9ae4a64a5e61b0caf59', class: "option-bar" }, h("ic-typography", { key: 'a797367880dd2a45638c65dcb353e6b4892e5db0' }, h("p", { key: 'ba309efe02198f93aa62329cf99d05e2e538434d' }, `${value ? value.length : 0}/${getOptionsWithoutGroupTitlesCount(this.options)} selected`)), h("ic-button", { key: '785eba9a6e82e745c7f4ccb054a1fbaf87df281e', class: "select-all-button", "aria-label": `${selectAllButtonText} options for ${inputLabel}`, ref: (el) => (this.selectAllButton = el), variant: "tertiary", onClick: this.handleSelectAllClick, onMouseDown: this.handleSelectAllMouseDown, onBlur: this.handleSelectAllBlur, onFocus: this.handleSelectAllFocus, size: size === "small" ? "small" : "medium" }, selectAllButtonText)))));
953
953
  }
954
954
  static get is() { return "ic-menu"; }
955
955
  static get encapsulation() { return "scoped"; }
@@ -3,7 +3,7 @@ import { isPropDefined } from "../../utils/helpers";
3
3
  export class MenuGroup {
4
4
  render() {
5
5
  const parentMenu = this.el.closest("ic-popover-menu");
6
- return (h(Host, { key: 'ec777b0d41cd1bb5d7751e61e702a45341f3080a', role: "group", "aria-label": this.label !== null ? this.label : "" }, isPropDefined(this.label) && (h("ic-typography", { key: '31d4b7ba6d46a89c8c843654a2ded8ca993b1803', variant: "subtitle-small" }, this.label)), h("span", { key: '3f1472c581431ea8c80dfc79a98b34d6ad2418f2', class: "menu-items-wrapper" }, h("slot", { key: '68c43747e9948fdec7dff7c5e0d2a69d2bc73b62' })), this.el !== (parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.querySelector("ic-menu-group:last-child")) && (h("hr", { key: 'b6540d15632b2d798ec6ead8d55fde5bca1e49f6' }))));
6
+ return (h(Host, { key: 'e80513cbfafcba84a75297272b402bfb60acdf80', role: "group", "aria-label": this.label !== null ? this.label : "" }, isPropDefined(this.label) && (h("ic-typography", { key: '726deba27f96a3bdb84856d851e484aab1be1301', variant: "subtitle-small" }, this.label)), h("span", { key: 'a383d9a234af9acceb9a746a891c290225dc8e37', class: "menu-items-wrapper" }, h("slot", { key: '60219f7f2cf0ee516c908a5ed3f45c0d27686293' })), this.el !== (parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.querySelector("ic-menu-group:last-child")) && (h("hr", { key: '85128f561dcc20d70937c690b9bfc56d34b698b8' }))));
7
7
  }
8
8
  static get is() { return "ic-menu-group"; }
9
9
  static get encapsulation() { return "shadow"; }
@@ -105,11 +105,11 @@ export class NavigationButton {
105
105
  target,
106
106
  theme,
107
107
  };
108
- return (h(Host, { key: '6798f875b7e5ba35703800d95c76a8f0e532f09b', class: {
108
+ return (h(Host, { key: '6d5b61877075117e4e5a88b0d1edf1cf986f4bcd', class: {
109
109
  "in-side-menu": isMenuMode,
110
110
  [`ic-theme-${theme}`]: theme !== "inherit",
111
111
  dark: parentThemeDark,
112
- } }, h("ic-button", Object.assign({ key: '94bb6ce72a9f7ad8298e3244c65abefeae577891', ref: (el) => (this.buttonEl = el), class: { "popout-menu-button": isMenuMode }, "aria-label": !isMenuMode ? label : null, disableTooltip: isMenuMode, fullWidth: isMenuMode, monochrome: !isMenuMode, size: isMenuMode ? "medium" : "large", variant: isMenuMode ? "tertiary" : "icon-tertiary" }, buttonProps, inheritedAttributes), isMenuMode ? label : "", h("slot", { key: '7f9fbb6283627d5eb425067939da08f53e5295b2', slot: "left-icon", name: "icon" }), isSlotUsed(this.el, "badge") && h("slot", { key: '3b0766eaf9b37e4b1953868b667c2c1d88eaaead', name: "badge" }))));
112
+ } }, h("ic-button", Object.assign({ key: 'd1e885683fd648f260bec94656aeb818497899e2', ref: (el) => (this.buttonEl = el), class: { "popout-menu-button": isMenuMode }, "aria-label": !isMenuMode ? label : null, disableTooltip: isMenuMode, fullWidth: isMenuMode, monochrome: !isMenuMode, size: isMenuMode ? "medium" : "large", variant: isMenuMode ? "tertiary" : "icon-tertiary" }, buttonProps, inheritedAttributes), isMenuMode ? label : "", h("slot", { key: 'c3ae147f7bccd4f10f9259d442b86636c1a332ca', slot: "left-icon", name: "icon" }), isSlotUsed(this.el, "badge") && h("slot", { key: 'f5f961eb88638804430696e0e5b3424ad3b9ac6c', name: "badge" }))));
113
113
  }
114
114
  static get is() { return "ic-navigation-button"; }
115
115
  static get encapsulation() { return "shadow"; }
@@ -606,6 +606,8 @@ video {
606
606
 
607
607
  :host(.ic-navigation-group-side-nav) .navigation-group {
608
608
  min-height: var(--navigation-group-height);
609
+ height: -moz-fit-content;
610
+ height: fit-content;
609
611
  min-width: 100%;
610
612
  width: var(--navigation-group-width, auto);
611
613
  justify-content: var(--navigation-group-justify-content);
@@ -261,7 +261,7 @@ export class NavigationGroup {
261
261
  const isTopNav = this.navigationType === "top";
262
262
  const isTopNavDesktop = !inTopNavSideMenu && isTopNav;
263
263
  const ariaExpanded = (isSideNav && expanded) || (isTopNav && dropdownOpen);
264
- return (h(Host, { key: '1c16958eaa37fb0d37d04178e7bd2d469af832f6', class: {
264
+ return (h(Host, { key: '70872453ddb1b66747a517e4757ef0d5fbb6337c', class: {
265
265
  "in-side-menu": inTopNavSideMenu,
266
266
  "ic-navigation-group-expandable": expandable,
267
267
  "ic-navigation-group-side-nav": isSideNav,
@@ -197,7 +197,7 @@ export class NavigationItem {
197
197
  render() {
198
198
  const { inTopNavSideMenu, isTopNavChild, selected, navigationType, focusStyle, isInitialRender, sideNavExpanded, displayNavigationTooltip, collapsedIconLabel, isSideNavMobile, expandable, isInSideNav, theme, } = this;
199
199
  const isTopNavChildDesktop = isTopNavChild && !inTopNavSideMenu;
200
- return (h(Host, { key: 'a5e0183131fc3228cff0026de3f6ce21020abd82', class: {
200
+ return (h(Host, { key: '6d3d330011cb09ae9fd95b59f98a9d18ffc25ba0', class: {
201
201
  "navigation-item": true,
202
202
  "navigation-item-selected": !isTopNavChild && selected,
203
203
  "navigation-item-top-nav": !inTopNavSideMenu && navigationType === "top",
@@ -216,7 +216,7 @@ export class NavigationItem {
216
216
  expandable,
217
217
  [focusStyle]: isTopNavChild ? isInSideNav : !inTopNavSideMenu,
218
218
  [`ic-theme-${theme}`]: theme !== "inherit",
219
- }, onBlur: isTopNavChildDesktop ? this.handleBlur : null, onClick: this.handleClick, "aria-current": selected ? "page" : null, role: "listitem" }, h("ic-tooltip", { key: 'c02cac09250e3517005841deac60a95f042a4334', label: this.generateTooltipLabel(), target: "navigation-item", placement: "right", class: {
219
+ }, onBlur: isTopNavChildDesktop ? this.handleBlur : null, onClick: this.handleClick, "aria-current": selected ? "page" : null, role: "listitem" }, h("ic-tooltip", { key: 'af3a3de698b102182ff030ffcfb66b419d7ac857', label: this.generateTooltipLabel(), target: "navigation-item", placement: "right", class: {
220
220
  "tooltip-navigation-item": true,
221
221
  "tooltip-navigation-item-side-nav-collapsed": displayNavigationTooltip && isInSideNav,
222
222
  "tooltip-long-label-navigation-item-side-nav-expanded": this.el.hasAttribute("[display-navigation-tooltip = 'true']"),
@@ -123,16 +123,16 @@ export class NavigationMenu {
123
123
  }
124
124
  }
125
125
  render() {
126
- return (h(Host, { key: '238491dcf801f29d30b1da0e65546592557fde24', class: { [`ic-theme-${this.theme}`]: this.theme !== "inherit" } }, h("div", { key: '1f4c1f5653cf725ea520300c56f7769716ed5c2a', class: "popout-modal", onClick: this.closeMenu }), h("div", { key: '7b1ff84083af3b3ceb6e309844c99d7e3a0ae350', class: "popout-menu", role: "dialog", "aria-modal": "true", "aria-label": `${this.hasNavigation ? "Navigation" : "App"} menu` }, h("span", { key: '3fbc25efa5a16c9f091ab455379e2c94ae5f35ca', "aria-hidden": "true", id: "navigation-landmark-text", class: "navigation-landmark-text" }, "Main navigation"), h("nav", { key: '2847e0434b96df094d4d14dc39aaa65d9b504435', "aria-labelledby": "navigation-landmark-text", "aria-hidden": this.hasNavigation ? "false" : "true" }, h("div", { key: 'a9543c0611d2c8dd1427500b1cd4cbf2de448b7b', class: {
126
+ return (h(Host, { key: '559f8e30c0ea9585c1cd85db3fbb432f0afa6476', class: { [`ic-theme-${this.theme}`]: this.theme !== "inherit" } }, h("div", { key: 'acd727b39a74104530268e38ee3d7b89ac79e97d', class: "popout-modal", onClick: this.closeMenu }), h("div", { key: '8142144f62990711e407791838feedfb3f25a9d6', class: "popout-menu", role: "dialog", "aria-modal": "true", "aria-label": `${this.hasNavigation ? "Navigation" : "App"} menu` }, h("span", { key: '4c52bc614ede7b80e3cd233ed43f16e22701bcdb', "aria-hidden": "true", id: "navigation-landmark-text", class: "navigation-landmark-text" }, "Main navigation"), h("nav", { key: '90569f1809e977cda9f8c2695c1108d2d4976318', "aria-labelledby": "navigation-landmark-text", "aria-hidden": this.hasNavigation ? "false" : "true" }, h("div", { key: '503d419f95dadd93abdd2d54821f791bdf050b8d', class: {
127
127
  ["menu-close-button-container"]: true,
128
128
  ["nav-group-first"]: this.navGroupFirst,
129
- } }, h("ic-button", { key: 'c6116c335e9c6c29bde6485421b3d72456e4c485', ref: (el) => (this.closeButton = el), id: "menu-close-button", class: "menu-close-button", variant: "icon", size: "large", "aria-label": `Close ${this.hasNavigation ? "navigation" : "app"} menu`, onClick: this.closeMenu }, h("svg", { key: 'f224bd0fbc219bb6ae337399e6f08c3187d32fb7', width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'a4419dfcec4df358e35bb7c9b623e5a720b89a3e', d: "M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z" })))), this.hasNavigation && h("slot", { key: '29d722a813544e8e82a07e2642a7014b32673dda', name: "navigation" })), this.hasButtons && (h("div", { key: '96ee54e19b08c60e1de050dc06367009bb15484f', class: {
129
+ } }, h("ic-button", { key: '1120f293997c552117944e4361575605de0fcaf2', ref: (el) => (this.closeButton = el), id: "menu-close-button", class: "menu-close-button", variant: "icon", size: "large", "aria-label": `Close ${this.hasNavigation ? "navigation" : "app"} menu`, onClick: this.closeMenu }, h("svg", { key: '3dc7a4fcafd3e72c558bb3aa07e9051b992da933', width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '5ed28065cad4812472d9c036926b119ad625ad53', d: "M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z" })))), this.hasNavigation && h("slot", { key: '07e9e48d1c18782dd993ded29fa10c110e33ac45', name: "navigation" })), this.hasButtons && (h("div", { key: 'c612c03b21a75159952df5fef4d8e4675016f08f', class: {
130
130
  ["menu-buttons-container"]: true,
131
131
  ["menu-buttons-container-nav-item-above"]: this.navItemAboveButtons,
132
- } }, h("slot", { key: '851897a3d08d4a74078379b16fb66f74392380dd', name: "buttons" }))), (this.status !== "" || this.version !== "") && (h("div", { key: 'faa0f531a4f2232c343b7197a798f7b79bfaaa17', class: {
132
+ } }, h("slot", { key: '131e946d6f9e945fe7b1cbd4fde77b98b9b70a0c', name: "buttons" }))), (this.status !== "" || this.version !== "") && (h("div", { key: '384bda4e21929e99d7fe5a00e4cfc24099c8e6a3', class: {
133
133
  ["menu-status-version-container"]: true,
134
134
  ["status-version-no-buttons"]: !this.hasButtons,
135
- } }, this.status !== "" && (h("div", { key: '43000a7655c49bdd7c15beaaef8f371f20c59049', class: "menu-status" }, h("ic-typography", { key: 'f92edc3ead11de1eb052835e0fef11ea26f70e91', variant: "label-uppercase", "aria-label": "app tag", class: "menu-status-text" }, this.status))), this.version !== "" && (h("div", { key: '84b3193b76f979b9dfd967fe549eb996dedf3631', class: "menu-version" }, h("ic-typography", { key: 'f3ea4120a05fc6707ff54ce634aa6798d7dbade3', variant: "label", class: "menu-version-text", "aria-label": "app version" }, this.version))))))));
135
+ } }, this.status !== "" && (h("div", { key: 'd24f9fd062b4bde97398c554e00d29a4b167cda7', class: "menu-status" }, h("ic-typography", { key: 'd4637e8dde7947670ad8fd74a459de41c5b7cbae', variant: "label-uppercase", "aria-label": "app tag", class: "menu-status-text" }, this.status))), this.version !== "" && (h("div", { key: '249add67c9c6edc58003c2359861f203e411bf64', class: "menu-version" }, h("ic-typography", { key: '3115e920fb4ce107b2d377eeefef649159a1f0f1', variant: "label", class: "menu-version-text", "aria-label": "app version" }, this.version))))))));
136
136
  }
137
137
  static get is() { return "ic-navigation-menu"; }
138
138
  static get encapsulation() { return "shadow"; }
@@ -111,19 +111,19 @@ export class PageHeader {
111
111
  const navAriaLabel = `${isSlotUsed(this.el, "heading")
112
112
  ? (_b = (_a = this.el.querySelector('[slot="heading"]')) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : ""
113
113
  : heading !== null && heading !== void 0 ? heading : ""} page sections`;
114
- return (h(Host, { key: 'f988d0a582d79cad1f4356f95723c8773bf17190', class: {
114
+ return (h(Host, { key: '3f81ad49917a1bebdda22330e6f5330ddb8e4607', class: {
115
115
  ["ic-page-header-sticky"]: !!sticky,
116
116
  ["ic-page-header-sticky-desktop"]: !sticky && !!stickyDesktopOnly,
117
117
  [`ic-theme-${theme}`]: theme !== "inherit",
118
- }, "aria-label": this.el.ariaLabel || "page header" }, h("header", { key: 'e4b8a519550fc032df5155fcff89c73ff81f85ee', class: {
118
+ }, "aria-label": this.el.ariaLabel || "page header" }, h("header", { key: '4e676a6514eadeea3d5cae863e75af7ff3b94649', class: {
119
119
  ["border-bottom"]: !!border,
120
120
  ["tabs"]: isSlotUsed(this.el, "tabs"),
121
- }, role: "presentation" }, h("ic-section-container", { key: '88196b15dc099dcd58cb05b85b9a658af8a0870f', aligned: aligned, fullHeight: isSlotUsed(this.el, "tabs") }, isSlotUsed(this.el, "breadcrumbs") && (h("div", { key: '6766660061af3380f50b0c947b36ce82a71256cd', class: "breadcrumb-area" }, h("slot", { key: '489b45909344aa2cfecf01bcc9ebc3d1b8089c45', name: "breadcrumbs" }))), h("div", { key: '47de9346bf042254a6c085fa94e049ba1eb15264', class: "main-content" }, h("div", { key: 'f90a01c812d8abcc73c92c54e00eb3944b8c433d', class: "title-area" }, h("div", { key: '966f731d25f434ce6f83f79175d0341c22a56687', class: "header-content" }, h("slot", { key: '9025f92b304b3e2c67cb63339bdc33699ddb7fde', name: "heading" }, h("ic-typography", { key: 'fe72a4b26d562fa57bbe52289c1a5a949b89f772', variant: size === "small" ? "h4" : "h2", class: "heading" }, h("h2", { key: 'd86917ae13eb27ba68de7755bfdd727d814770e7' }, heading))), h("slot", { key: '8c9fca603f02ffaf1318ce855b6a17bed99ff6f0', name: "heading-adornment" })), h("div", { key: 'aa5559ddfef89fd22fe0994f620b06c7d317f562', class: {
121
+ }, role: "presentation" }, h("ic-section-container", { key: 'f5c3eceb50af527dc0a6e9ae0a37f31a22334234', aligned: aligned, fullHeight: isSlotUsed(this.el, "tabs") }, isSlotUsed(this.el, "breadcrumbs") && (h("div", { key: 'e5c57032784f736af68fb587d49c2d91dd6dfe2f', class: "breadcrumb-area" }, h("slot", { key: 'ebd6a9ea582e9ab9352475fd93a1d01da8691ce5', name: "breadcrumbs" }))), h("div", { key: 'f017c563594f1cd82ae1f2dc56f1303933a358b7', class: "main-content" }, h("div", { key: '6e9fd38352c39faac30c7bc0b3d3bb1bf0541bde', class: "title-area" }, h("div", { key: '214882f62caa4ed6ff23f9f87414c82fa4f1ee7b', class: "header-content" }, h("slot", { key: 'fd99c8e27de2c92f4b8ba0c15c4daf681709531f', name: "heading" }, h("ic-typography", { key: 'd7230bbe28b9fb91f03e87fdaaf41b6deca5a542', variant: size === "small" ? "h4" : "h2", class: "heading" }, h("h2", { key: '63fe762aba268afa25aff458fc1e824272544f33' }, heading))), h("slot", { key: '2039cc87272f3ab1a479350223238e537b6ee2f4', name: "heading-adornment" })), h("div", { key: 'd1253c48dbd399c24a059e62f2545f477811e815', class: {
122
122
  ["subheading-content"]: !!subheading || isSlotUsed(this.el, "subheading"),
123
123
  ["small"]: size === "small",
124
- } }, h("slot", { key: '8ca2ec4f5e79385004d82721b32aaa4477e5e383', name: "subheading" }, h("ic-typography", { key: 'e3abaf1b025005164883f6aac049425101703a0a', variant: "body" }, subheading)))), isSlotUsed(this.el, "actions") && (h("div", { key: '501f5d87bcc67f92a7fc109e1507ecfc82de113d', class: "action-area" }, h("slot", { key: '59b2c28e72936af87fca0d3b5fc78a9292235278', name: "actions" }))), isSlotUsed(this.el, "input") && (h("div", { key: '50a7b161cad03ca332d7ba189bbe3e07845b5b3b', class: "input-area" }, h("slot", { key: 'e3dabe11caf744a6b1293fa45bb668b959c330c5', name: "input" })))), (isSlotUsed(this.el, "stepper") ||
125
- isSlotUsed(this.el, "tabs")) && (h("div", { key: '7399fec29cf8483d3a0150fb66f8b51fd9bcccf9', class: "navigation-area" }, isSlotUsed(this.el, "stepper") &&
126
- !isSlotUsed(this.el, "tabs") && h("slot", { key: '60243b69d094b1842c7ba0841170d263c512b83f', name: "stepper" }), isSlotUsed(this.el, "tabs") && (h("nav", { key: 'f7b3cfd55bb421b3f9a988c65d66b3206d2ded1b', "aria-label": navAriaLabel }, h("ic-horizontal-scroll", { key: '8344abb3186738bda94429804dcc927b87578c66' }, h("ul", { key: '4c7e5ffe0acf83738cea0b93ef68910cde3a68fb', class: "tabs-slot" }, h("slot", { key: '1634b736035f20da485de5cd90590a2d8e07be3a', name: "tabs" })))))))))));
124
+ } }, h("slot", { key: '656675e2ded3fdd2027b0215709cf6faaab7322c', name: "subheading" }, h("ic-typography", { key: 'fe3bb6b5feb0b725d77e6cf8f5edc212f4c4b506', variant: "body" }, subheading)))), isSlotUsed(this.el, "actions") && (h("div", { key: 'f4a2e70fd311c12810eabc05e3a865e4efbba6b8', class: "action-area" }, h("slot", { key: 'a89c115c6e17021786908022ffc58abe07a88343', name: "actions" }))), isSlotUsed(this.el, "input") && (h("div", { key: 'a26a7f73e3ee189f6bd9310339cda77cf128a309', class: "input-area" }, h("slot", { key: '245383298b97190b21f9723326ac34422bd197ac', name: "input" })))), (isSlotUsed(this.el, "stepper") ||
125
+ isSlotUsed(this.el, "tabs")) && (h("div", { key: 'c80f1d04a4300b4f80ff4e2dfa418f985a13e047', class: "navigation-area" }, isSlotUsed(this.el, "stepper") &&
126
+ !isSlotUsed(this.el, "tabs") && h("slot", { key: '5646084a82aefc58c4912f9b765149393973f8c0', name: "stepper" }), isSlotUsed(this.el, "tabs") && (h("nav", { key: 'd7cccfe9d053d1e6849d57665157c841f2434a36', "aria-label": navAriaLabel }, h("ic-horizontal-scroll", { key: '2ca15ea3dc35db5f9a9003cdbce55b113bae12c8' }, h("ul", { key: '3007121bcc05264e5df9986b5231693808b72368', class: "tabs-slot" }, h("slot", { key: 'd124be273a3cbc36154b2add48ea1c7a36d6e592', name: "tabs" })))))))))));
127
127
  }
128
128
  static get is() { return "ic-page-header"; }
129
129
  static get encapsulation() { return "shadow"; }
@@ -239,14 +239,14 @@ export class Pagination {
239
239
  }
240
240
  render() {
241
241
  const { type, currentPage, hideCurrentPage, disabled, hideFirstAndLastPageButton, label, theme, monochrome, } = this;
242
- return (h(Host, { key: 'f0bb93865da97a2978792da0ecec7398d17fd0cd', class: {
242
+ return (h(Host, { key: '2acdd8b04920cef0c72fc4651292abc9bd69ec1e', class: {
243
243
  [`ic-theme-${theme}`]: theme !== "inherit",
244
244
  ["ic-pagination-monochrome"]: !!monochrome,
245
- } }, type === "simple" && (h("nav", { key: 'd98096aea9467c15560cf5bee82f979a27a6e72b', class: {
245
+ } }, type === "simple" && (h("nav", { key: 'b63e353f7fe95cf279ae4ed80431a4c7dab237ef', class: {
246
246
  ["disabled"]: !!disabled,
247
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h("ic-pagination-item", { key: 'e578665c5de2260f824cf4ff3c3e29dafabe7037', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("nav", { key: 'e1172d5a137f47d778f3878155bb747b32303179', class: {
247
+ }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h("ic-pagination-item", { key: '6399e68f44cd106050e227c0492cea207911193f', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("nav", { key: 'c7dba8035b72f606bc69ae9daac63f150671a309', class: {
248
248
  ["disabled"]: !!disabled,
249
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("span", { key: '2094451eaeb1eb5f6f52f4a93f8b30534bd31162', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
249
+ }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("span", { key: 'a7f3861bf255d89f193da8e630865c972e319a71', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
250
250
  }
251
251
  static get is() { return "ic-pagination"; }
252
252
  static get encapsulation() { return "shadow"; }
@@ -38,7 +38,7 @@ export class PaginationItem {
38
38
  }
39
39
  render() {
40
40
  const { page, selected, type, disabled, label, capitalizedLabel, monochrome, } = this;
41
- return (h("a", { key: '96dd8b411124b3276fdd7b630d6b1d15528398a0', class: { ["monochrome"]: !!monochrome } }, type === "ellipsis" ? (h("div", { class: {
41
+ return (h("a", { key: '9b34e182ea83cdb24f48997314fe5f456d37e5f8', class: { ["monochrome"]: !!monochrome } }, type === "ellipsis" ? (h("div", { class: {
42
42
  ["item-container"]: true,
43
43
  ["ellipsis"]: true,
44
44
  ["disabled"]: !!disabled,
@@ -9,6 +9,10 @@ export class PopoverMenu {
9
9
  this.openingFromChild = false;
10
10
  this.openingFromParent = false;
11
11
  this.popperProps = {};
12
+ /**
13
+ * Setting to `true` can help in situations where tooltip content is clipped by a parent element.
14
+ */
15
+ this.fixedPositioning = false;
12
16
  /**
13
17
  * @internal The level of menu being displayed.
14
18
  */
@@ -94,7 +98,7 @@ export class PopoverMenu {
94
98
  };
95
99
  this.initPopperJS = () => {
96
100
  if (this.anchorEl) {
97
- this.popperInstance = createPopper(this.anchorEl, this.el, Object.assign({ placement: "bottom-start", modifiers: [
101
+ this.popperInstance = createPopper(this.anchorEl, this.el, Object.assign({ strategy: this.fixedPositioning ? "fixed" : "absolute", placement: "bottom-start", modifiers: [
98
102
  {
99
103
  name: "offset",
100
104
  options: {
@@ -269,17 +273,17 @@ export class PopoverMenu {
269
273
  this.popperProps = props;
270
274
  }
271
275
  render() {
272
- return (h(Host, { key: '008abc92ccfd90773e9d566adf8893a2c995ff79', class: {
276
+ return (h(Host, { key: '5ffa8a51af3508448af45892be2854e7caadfc1d', class: {
273
277
  ["ic-popover-menu-open"]: !!this.open,
274
278
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
275
- } }, h("div", { key: '8ae1ae8843f91ccae211e7f9c540a8c77b64f0df', id: this.parentPopover === undefined
279
+ } }, h("div", { key: 'c3160d601be3e64a081da71a369e5c91258000ae', id: this.parentPopover === undefined
276
280
  ? `ic-popover-submenu-${this.submenuId}`
277
281
  : "", class: {
278
282
  menu: true,
279
- } }, h("span", { key: '575a4741825c2336288602abdd7c28710aec3374', class: {
283
+ } }, h("span", { key: 'ae7a23ecfc8d5bba00f00e921292d227be204de4', class: {
280
284
  "opening-from-parent": this.openingFromParent,
281
285
  "opening-from-child": this.openingFromChild,
282
- } }, isPropDefined(this.submenuId) && (h("span", { key: '2da339d48d6f3350b9fc93f3d3317e78f676803a' }, h("span", { key: '45c2e0ef1f165774dee5b415166fc440e580a264', role: "menu" }, h("ic-menu-item", { key: '446898ddd29b9ae6dba6b0add0db299e9287a4c9', class: "ic-popover-submenu-back-button", ref: (el) => (this.backButton = el), label: "Back", onClick: this.handleBackButtonClick, id: `ic-popover-submenu-back-button-${this.submenuLevel}` }, h("svg", { key: 'cf4ad24eec5fd0a52e496e544b7d95d2e2dd0888', slot: "icon", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "submenu-back-icon" }, h("path", { key: '0c3f32a0366c400e0611692e11566a33e1188e97', d: "M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z", fill: "currentColor" })))), h("ic-typography", { key: 'a187923d769356a7d8b36bf602d8b86f923b5bcb', variant: "subtitle-small", class: "parent-label" }, this.parentLabel))), h("div", { key: '34097af3c166b8ba904542a6b181d98e4a98afbf', class: "menu-body", "aria-label": this.getMenuAriaLabel(), role: "menu" }, h("slot", { key: 'ad07288d0f6c7e45237b3e76df31faf848a705b1' }))))));
286
+ } }, isPropDefined(this.submenuId) && (h("span", { key: '003ba26d863d718db5b8b6d2ff54710e02eb7677' }, h("span", { key: '4db795ec37a6ac82956e483bb2bf5a73961377e5', role: "menu" }, h("ic-menu-item", { key: 'a102e3c94bb5ba26c8f37c1948230f5dd2bd2c5a', class: "ic-popover-submenu-back-button", ref: (el) => (this.backButton = el), label: "Back", onClick: this.handleBackButtonClick, id: `ic-popover-submenu-back-button-${this.submenuLevel}` }, h("svg", { key: 'e97bd20445b09d2ba20bfbf9a6808a9e925b1c39', slot: "icon", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "submenu-back-icon" }, h("path", { key: '1e8b35769c14f03ee11c26250f84d0dc23963dc0', d: "M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z", fill: "currentColor" })))), h("ic-typography", { key: 'cfbbf43ec26066f7aa1879baf0ef4c8705248bcb', variant: "subtitle-small", class: "parent-label" }, this.parentLabel))), h("div", { key: '54ac1fa4283a77f2678a21e2869be48db726aa09', class: "menu-body", "aria-label": this.getMenuAriaLabel(), role: "menu" }, h("slot", { key: '986dfbed5c2337812f4ac529910240cfc4ffe216' }))))));
283
287
  }
284
288
  static get is() { return "ic-popover-menu"; }
285
289
  static get encapsulation() { return "shadow"; }
@@ -315,6 +319,26 @@ export class PopoverMenu {
315
319
  "attribute": "anchor",
316
320
  "reflect": false
317
321
  },
322
+ "fixedPositioning": {
323
+ "type": "boolean",
324
+ "mutable": false,
325
+ "complexType": {
326
+ "original": "boolean",
327
+ "resolved": "boolean",
328
+ "references": {}
329
+ },
330
+ "required": false,
331
+ "optional": false,
332
+ "docs": {
333
+ "tags": [],
334
+ "text": "Setting to `true` can help in situations where tooltip content is clipped by a parent element."
335
+ },
336
+ "getter": false,
337
+ "setter": false,
338
+ "attribute": "fixed-positioning",
339
+ "reflect": false,
340
+ "defaultValue": "false"
341
+ },
318
342
  "parentLabel": {
319
343
  "type": "string",
320
344
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-popover-menu.js","sourceRoot":"","sources":["../../../src/components/ic-popover-menu/ic-popover-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { getSlotElements, isPropDefined } from \"../../utils/helpers\";\nimport {\n createPopper,\n Instance as PopperInstance,\n Options,\n} from \"@popperjs/core\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst MENU_SELECTOR = \"div.menu-body\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n private anchorEl: HTMLElement | null;\n private ARIA_LABEL: string = \"aria-label\";\n private backButton?: HTMLIcMenuItemElement;\n private currentFocus: number;\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n private popperInstance: PopperInstance | null;\n\n @Element() el: HTMLIcPopoverMenuElement;\n\n @State() openingFromChild: boolean = false;\n @State() openingFromParent: boolean = false;\n @State() popperProps: Partial<Options> = {};\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel?: number = 1;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open?: boolean | undefined =\n undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n const popoverArr = this.el.parentElement?.querySelectorAll(\n `ic-popover-menu`\n ) as NodeListOf<HTMLIcPopoverMenuElement>;\n if (this.open) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.backButton && this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n } else if (this.popperInstance) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n /**\n * Emitted when the popover menu is closed.\n */\n @Event() icPopoverClosed: EventEmitter<HTMLIcMenuItemElement>;\n\n disconnectedCallback(): void {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.el.shadowRoot?.querySelector(MENU_SELECTOR);\n if (slotWrapper) {\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n }\n\n if (\n this.submenuId === undefined &&\n this.el.getAttribute(this.ARIA_LABEL) === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n\n this.watchOpenHandler();\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidRender(): void {\n if (this.open && !this.popperInstance) {\n this.initPopperJS();\n }\n }\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent<HTMLIcMenuItemElement>): void {\n if (!ev.detail.submenuTriggerFor && ev.detail.label !== \"Back\") {\n this.closeMenu(false, ev.detail);\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.el;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel! + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(\n this.currentFocus,\n ev.key === \"ArrowDown\"\n );\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n ev.preventDefault();\n if (this.open) {\n this.closeMenu(true);\n this.el.blur();\n }\n break;\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string | undefined): HTMLElement | null => {\n let anchorElement: HTMLElement | null = null;\n if (!anchor) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const { id, tagName } = ev.target as HTMLElement;\n return (\n id !== this.anchor &&\n tagName !== \"IC-MENU-ITEM\" &&\n tagName !== \"IC-MENU-GROUP\" &&\n tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n /**\n * @internal Close the menu, emit icPopoverClosed of the root popover\n * @param setFocusToAnchor when true return focus to anchor element when menu is closed\n */\n @Method()\n async closeMenu(\n setFocusToAnchor = false,\n menuElement?: HTMLIcMenuItemElement\n ): Promise<void> {\n this.open = false;\n if (this.parentPopover) {\n this.parentPopover.closeMenu(setFocusToAnchor, menuElement);\n } else {\n if (setFocusToAnchor) {\n this.anchorEl?.focus();\n }\n this.icPopoverClosed.emit(menuElement);\n }\n }\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of the popover menu\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot?.querySelector(\n \".menu-items-wrapper\"\n );\n if (groupSlotWrapper) {\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n menuGroupElements && this.addMenuItems(menuGroupElements);\n }\n }\n }\n };\n\n private getMenuAriaLabel = (): string | null => {\n const ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n\n if (isPropDefined(this.submenuId)) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover?.openFromChild();\n this.open = false;\n };\n\n private initPopperJS = () => {\n if (this.anchorEl) {\n this.popperInstance = createPopper(this.anchorEl, this.el, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\", \"top-end\", \"bottom-end\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n ...this.popperProps,\n });\n }\n };\n\n render() {\n return (\n <Host\n class={{\n [\"ic-popover-menu-open\"]: !!this.open,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n >\n <span\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {isPropDefined(this.submenuId) && (\n <span>\n <span role=\"menu\">\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n </span>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </span>\n )}\n <div\n class=\"menu-body\"\n aria-label={this.getMenuAriaLabel()}\n role=\"menu\"\n >\n <slot></slot>\n </div>\n </span>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-popover-menu.js","sourceRoot":"","sources":["../../../src/components/ic-popover-menu/ic-popover-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { getSlotElements, isPropDefined } from \"../../utils/helpers\";\nimport {\n createPopper,\n Instance as PopperInstance,\n Options,\n} from \"@popperjs/core\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst MENU_SELECTOR = \"div.menu-body\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n private anchorEl: HTMLElement | null;\n private ARIA_LABEL: string = \"aria-label\";\n private backButton?: HTMLIcMenuItemElement;\n private currentFocus: number;\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n private popperInstance: PopperInstance | null;\n\n @Element() el: HTMLIcPopoverMenuElement;\n\n @State() openingFromChild: boolean = false;\n @State() openingFromParent: boolean = false;\n @State() popperProps: Partial<Options> = {};\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor?: string;\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() fixedPositioning: boolean = false;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel?: number = 1;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open?: boolean | undefined =\n undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n const popoverArr = this.el.parentElement?.querySelectorAll(\n `ic-popover-menu`\n ) as NodeListOf<HTMLIcPopoverMenuElement>;\n if (this.open) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.backButton && this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n } else if (this.popperInstance) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n /**\n * Emitted when the popover menu is closed.\n */\n @Event() icPopoverClosed: EventEmitter<HTMLIcMenuItemElement>;\n\n disconnectedCallback(): void {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.el.shadowRoot?.querySelector(MENU_SELECTOR);\n if (slotWrapper) {\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n }\n\n if (\n this.submenuId === undefined &&\n this.el.getAttribute(this.ARIA_LABEL) === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n\n this.watchOpenHandler();\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidRender(): void {\n if (this.open && !this.popperInstance) {\n this.initPopperJS();\n }\n }\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent<HTMLIcMenuItemElement>): void {\n if (!ev.detail.submenuTriggerFor && ev.detail.label !== \"Back\") {\n this.closeMenu(false, ev.detail);\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.el;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel! + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(\n this.currentFocus,\n ev.key === \"ArrowDown\"\n );\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n ev.preventDefault();\n if (this.open) {\n this.closeMenu(true);\n this.el.blur();\n }\n break;\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string | undefined): HTMLElement | null => {\n let anchorElement: HTMLElement | null = null;\n if (!anchor) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const { id, tagName } = ev.target as HTMLElement;\n return (\n id !== this.anchor &&\n tagName !== \"IC-MENU-ITEM\" &&\n tagName !== \"IC-MENU-GROUP\" &&\n tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n /**\n * @internal Close the menu, emit icPopoverClosed of the root popover\n * @param setFocusToAnchor when true return focus to anchor element when menu is closed\n */\n @Method()\n async closeMenu(\n setFocusToAnchor = false,\n menuElement?: HTMLIcMenuItemElement\n ): Promise<void> {\n this.open = false;\n if (this.parentPopover) {\n this.parentPopover.closeMenu(setFocusToAnchor, menuElement);\n } else {\n if (setFocusToAnchor) {\n this.anchorEl?.focus();\n }\n this.icPopoverClosed.emit(menuElement);\n }\n }\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of the popover menu\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot?.querySelector(\n \".menu-items-wrapper\"\n );\n if (groupSlotWrapper) {\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n menuGroupElements && this.addMenuItems(menuGroupElements);\n }\n }\n }\n };\n\n private getMenuAriaLabel = (): string | null => {\n const ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n\n if (isPropDefined(this.submenuId)) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover?.openFromChild();\n this.open = false;\n };\n\n private initPopperJS = () => {\n if (this.anchorEl) {\n this.popperInstance = createPopper(this.anchorEl, this.el, {\n strategy: this.fixedPositioning ? \"fixed\" : \"absolute\",\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\", \"top-end\", \"bottom-end\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n ...this.popperProps,\n });\n }\n };\n\n render() {\n return (\n <Host\n class={{\n [\"ic-popover-menu-open\"]: !!this.open,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n >\n <span\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {isPropDefined(this.submenuId) && (\n <span>\n <span role=\"menu\">\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n </span>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </span>\n )}\n <div\n class=\"menu-body\"\n aria-label={this.getMenuAriaLabel()}\n role=\"menu\"\n >\n <slot></slot>\n </div>\n </span>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -497,6 +497,100 @@ export const AutoOpening = {
497
497
  name: "Auto opening",
498
498
  };
499
499
 
500
+ export const PositioningStrategy = {
501
+ render: (args) => html`
502
+ <script>
503
+ var icPopovers = document.querySelectorAll("ic-popover-menu");
504
+ var icParentPopover = icPopovers[0];
505
+ var switchEl = document.querySelector("ic-switch");
506
+ switchEl.addEventListener("icChange", (ev) => {
507
+ icPopovers.forEach((popover) => {
508
+ popover.fixedPositioning = ev.detail.checked;
509
+ });
510
+ });
511
+ function buttonClick() {
512
+ icParentPopover.open = !icParentPopover.open;
513
+ }
514
+ icParentPopover.addEventListener("icPopoverClosed", handleClosed);
515
+ function handleClosed(event) {
516
+ console.log("icPopoverClosed: ", event);
517
+ }
518
+ </script>
519
+ <div style="display:flex; flex-direction:column; gap:var(--ic-space-xs)">
520
+ <ic-typography>
521
+ Toggle the fixed positioning switch and open the popover to see it take
522
+ effect
523
+ </ic-typography>
524
+ <div
525
+ style="display:flex; flex-direction:column; gap:var(--ic-space-xs); padding:var(--ic-space-md); border:1px solid var(--ic-color-text-primary); overflow:hidden; width:160px; position:relative"
526
+ >
527
+ <ic-button id="button-1" onclick="buttonClick()"
528
+ >Show/Hide popover</ic-button
529
+ >
530
+ <ic-popover-menu anchor="button-1" aria-label="popover">
531
+ <ic-menu-item label="Copy code" disabled="true"></ic-menu-item>
532
+ <ic-menu-group label="View">
533
+ <ic-menu-item
534
+ label="Zoom in"
535
+ keyboard-shortcut-label="Cmd+"
536
+ ></ic-menu-item>
537
+ <ic-menu-item
538
+ label="Zoom out"
539
+ keyboard-shortcut-label="Cmd-"
540
+ ></ic-menu-item>
541
+ </ic-menu-group>
542
+ <ic-menu-item
543
+ label="Actions"
544
+ submenu-trigger-for="abc"
545
+ ></ic-menu-item>
546
+ <ic-menu-item
547
+ label="Logout"
548
+ variant="destructive"
549
+ disabled="true"
550
+ ></ic-menu-item>
551
+ </ic-popover-menu>
552
+ <ic-popover-menu submenu-id="abc">
553
+ <ic-menu-item label="Edit"></ic-menu-item>
554
+ <ic-menu-item
555
+ label="Find"
556
+ submenu-trigger-for="abc123"
557
+ ></ic-menu-item>
558
+ <ic-menu-item label="Delete" variant="destructive"></ic-menu-item>
559
+ </ic-popover-menu>
560
+ <ic-popover-menu submenu-id="abc123">
561
+ <ic-menu-item
562
+ disabled="true"
563
+ label="Search the web"
564
+ description="This will search the web to find the thing you are looking for."
565
+ ></ic-menu-item>
566
+ <ic-menu-item label="Find..."></ic-menu-item>
567
+ <ic-menu-item label="Find icons">
568
+ <svg
569
+ slot="icon"
570
+ xmlns="http://www.w3.org/2000/svg"
571
+ height="24px"
572
+ viewBox="0 0 24 24"
573
+ width="24px"
574
+ >
575
+ <path d="M0 0h24v24H0V0z" fill="none" />
576
+ <path
577
+ d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"
578
+ />
579
+ </svg>
580
+ </ic-menu-item>
581
+ <ic-menu-item
582
+ label="Show found results"
583
+ variant="toggle"
584
+ ></ic-menu-item>
585
+ </ic-popover-menu>
586
+ </div>
587
+ <ic-switch label="Fixed popover positioning"></ic-switch>
588
+ </div>
589
+ `,
590
+
591
+ name: "Positioning strategy",
592
+ };
593
+
500
594
  export const Playground = {
501
595
  render: (args) =>
502
596
  html`<div>
@@ -225,16 +225,16 @@ export class RadioGroup {
225
225
  }
226
226
  render() {
227
227
  const { currentOrientation, disabled, handleKeyDown, helperText, hideLabel, label, required, size, validationStatus, validationText, theme, } = this;
228
- return (h(Host, { key: '04d5db82b3be0bd747a4bbbf540ff38a2344bb18', onKeyDown: handleKeyDown, class: {
228
+ return (h(Host, { key: '94f34265abb206036b1d9ded9dd959647a710999', onKeyDown: handleKeyDown, class: {
229
229
  "ic-radio-group-small": size === "small",
230
230
  [`ic-theme-${theme}`]: theme !== "inherit",
231
- } }, h("div", { key: '7293abe2277d46aa27ffd81ad47982f6f7d63e51', role: "radiogroup", "aria-label": `${label}${required ? ", required" : ""}` }, !hideLabel && (h("ic-input-label", { key: '90c7d78da23c13d04df52dcdf554af8a15de6e05', class: {
231
+ } }, h("div", { key: 'ecb2a958a94beb49129c1548fafa4c3220036218', role: "radiogroup", "aria-label": `${label}${required ? ", required" : ""}` }, !hideLabel && (h("ic-input-label", { key: 'f11f98513d71d6ea942519fc38a91e96824da3e7', class: {
232
232
  [`${validationStatus}`]: true,
233
233
  ["disabled"]: !!disabled,
234
- }, label: label, helperText: helperText, required: required, disabled: disabled }, h("slot", { key: 'fe90706c42c1abebb7bbf757808af7219b577aa8', name: "helper-text", slot: "helper-text" }))), h("div", { key: 'd2e61e45ecdcb0c40229f4d25a2c6c0ed1247f11', class: {
234
+ }, label: label, helperText: helperText, required: required, disabled: disabled }, h("slot", { key: '88578f95a79fe95d58294a93e8470dd663b42903', name: "helper-text", slot: "helper-text" }))), h("div", { key: '9a5ea35f9f684085a25b40def44a29a992306ac1', class: {
235
235
  "radio-buttons-container": true,
236
236
  horizontal: currentOrientation === this.RADIO_HORIZONTAL,
237
- }, ref: (el) => (this.radioContainer = el) }, h("slot", { key: 'bac88f9fba9a5a242aced76a20f21933f4de6299' }))), hasValidationStatus(validationStatus, disabled) && (h("ic-input-validation", { key: 'f7a0dc8e5d1ac3d774644910600153aba9caacd5', ariaLiveMode: "polite", status: validationStatus, message: validationText }))));
237
+ }, ref: (el) => (this.radioContainer = el) }, h("slot", { key: 'dafa17bf5bc76e8697f802a3376bb2bfe1cc249e' }))), hasValidationStatus(validationStatus, disabled) && (h("ic-input-validation", { key: '6b8a5b2aa258870a00b462d48a978b5cd3a4e33b', ariaLiveMode: "polite", status: validationStatus, message: validationText }))));
238
238
  }
239
239
  static get is() { return "ic-radio-group"; }
240
240
  static get encapsulation() { return "shadow"; }
@@ -139,15 +139,15 @@ export class RadioOption {
139
139
  render() {
140
140
  const { additionalFieldDisplay, disabled, dynamicText, form, groupLabel, handleClick, handleKeyDown, hasAdditionalField, label, name, selected, value, theme, } = this;
141
141
  const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;
142
- return (h(Host, { key: '66293449ae3f0f896a661395663aa6c6dba7120b', onClick: handleClick, onKeyDown: handleKeyDown, class: {
142
+ return (h(Host, { key: 'ee36e924b1c248c87724903313bc778976c36522', onClick: handleClick, onKeyDown: handleKeyDown, class: {
143
143
  ["ic-radio-option-disabled"]: !!disabled,
144
144
  [`ic-theme-${theme}`]: theme !== "inherit",
145
- } }, h("div", { key: 'a2c09f392610f5396c21fb5d5b07844eb8e4db08', class: { container: true, disabled: !!disabled } }, h("div", { key: 'b51d23e434eb9ab8545047f93b60458dcfaac2b1' }, h("input", { key: '7a53942a42b170e7110b1faa688480fab5080a02', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: 'a307412594b305b08290b7fa488f8600a0f4b527', class: "checkmark" })), h("ic-typography", { key: 'aab05754fdff4e00b3078593d0dd1e2457dcaded', class: "radio-label", variant: "body" }, h("label", { key: '88947c4ea40c1dea292edc9a5aa649ec19ab29b9', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '06c1920d96ec36c622b258a7d4ff8a02edc0789d', class: {
145
+ } }, h("div", { key: '35871b7136c8dd16432e2a0683b13db53f2a1bd0', class: { container: true, disabled: !!disabled } }, h("div", { key: 'daead4b95901afb27be2d2640d1210783ec4c14e' }, h("input", { key: '69d0c5dec724714118475529e021ed9d30350383', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: '7ae687fb075f60e33fb7edd48b1f323c5833b9fb', class: "checkmark" })), h("ic-typography", { key: 'a3990ac2ea9a3898a436f2fd05966f920a493fa4', class: "radio-label", variant: "body" }, h("label", { key: '0b83a00e2f215d9d051e71650584fb1e0aad55a4', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '47b6a141f6956e78d4516985d2e70f00c1bdf1cf', class: {
146
146
  "dynamic-container": true,
147
147
  hidden: additionalFieldDisplay === "dynamic" && !selected,
148
- } }, additionalFieldDisplay === "dynamic" && (h("div", { key: '79324c51055d3d6223f79857a72d0eb2b0c22f69', class: "branch-corner" })), h("div", { key: 'df7eb14bf1776611bf956140821b16d025b72bd8' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '0eecaca9a48b8ccef541736e453c58d2f29fd15b', variant: "caption" }, h("p", { key: '45fba47da58602ccc13f1420cba7a7108c9c5615', class: "dynamic-text" }, dynamicText))), h("div", { key: '764e735294d09ea889cc3bc241dee272e7afae31', class: {
148
+ } }, additionalFieldDisplay === "dynamic" && (h("div", { key: '2c06cbb85ba445972698c02757a07e048a09ce40', class: "branch-corner" })), h("div", { key: 'ecc00a96cfb580b9f386ea148106a1dae5a31332' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: 'eeacd2d66085bd2bdb16698e6050e552d410d11b', variant: "caption" }, h("p", { key: 'da0327cfe9a9a09405c86e268e7a84ca090b437f', class: "dynamic-text" }, dynamicText))), h("div", { key: 'c9177d6cd8174c92665a3c59a1fe38aeedf6e17b', class: {
149
149
  "additional-field-wrapper": additionalFieldDisplay === "static",
150
- } }, h("slot", { key: 'a3e127198c155be9c525e0159506f852f4000b86', name: ADDITIONAL_FIELD })))))));
150
+ } }, h("slot", { key: '1f4fdd0f5eeca0900aeaa04d49191e0b65d843ab', name: ADDITIONAL_FIELD })))))));
151
151
  }
152
152
  static get is() { return "ic-radio-option"; }
153
153
  static get originalStyleUrls() {