@ukic/web-components 3.21.0 → 3.22.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 (437) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-3a796e7a.js → helpers-81cd6930.js} +3 -16
  3. package/dist/cjs/helpers-81cd6930.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 +7 -3
  7. package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -5
  19. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-chip.cjs.entry.js +7 -3
  21. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-classification-banner.cjs.entry.js +13 -5
  23. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +212 -80
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-pagination-bar.cjs.entry.js +389 -0
  46. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +1 -0
  47. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-pagination_3.cjs.entry.js +1412 -0
  49. package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -0
  50. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  51. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-search-bar.cjs.entry.js +11 -11
  54. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  56. package/dist/cjs/ic-side-navigation.cjs.entry.js +18 -9
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  61. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  62. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  63. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  65. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -2
  66. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  68. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  69. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-toast.cjs.entry.js +8 -7
  73. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  75. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  76. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  78. package/dist/cjs/index-d337cd8a.js +12 -16
  79. package/dist/cjs/loader.cjs.js +1 -1
  80. package/dist/collection/collection-manifest.json +2 -1
  81. package/dist/collection/components/ic-action-chip/ic-action-chip.css +15 -2
  82. package/dist/collection/components/ic-action-chip/ic-action-chip.js +5 -1
  83. package/dist/collection/components/ic-action-chip/ic-action-chip.js.map +1 -1
  84. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -5
  85. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  86. package/dist/collection/components/ic-chip/ic-chip.css +15 -3
  87. package/dist/collection/components/ic-chip/ic-chip.js +5 -1
  88. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  89. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +33 -5
  90. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  91. package/dist/collection/components/ic-classification-banner/ic-classification-banner.stories.js +32 -0
  92. package/dist/collection/components/ic-menu/ic-menu.css +6 -1
  93. package/dist/collection/components/ic-menu/ic-menu.js +184 -53
  94. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  95. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.css +104 -0
  96. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +895 -0
  97. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -0
  98. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +215 -0
  99. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
  100. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
  101. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  102. package/dist/collection/components/ic-search-bar/ic-search-bar.js +10 -11
  103. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  104. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  105. package/dist/collection/components/ic-select/ic-select.css +1 -2
  106. package/dist/collection/components/ic-select/ic-select.js +414 -589
  107. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  108. package/dist/collection/components/ic-select/ic-select.types.js +2 -0
  109. package/dist/collection/components/ic-select/ic-select.types.js.map +1 -0
  110. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +26 -21
  111. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +18 -9
  112. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  113. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  114. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  115. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  116. package/dist/collection/components/ic-step/ic-step.js +13 -13
  117. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  118. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  119. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  120. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -2
  121. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  122. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  123. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  124. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  125. package/dist/collection/components/ic-toast/ic-toast.js +7 -6
  126. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  127. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  128. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  129. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  130. package/dist/collection/utils/helpers.js +2 -15
  131. package/dist/collection/utils/helpers.js.map +1 -1
  132. package/dist/components/helpers.js +3 -16
  133. package/dist/components/helpers.js.map +1 -1
  134. package/dist/components/ic-action-chip.js +6 -2
  135. package/dist/components/ic-action-chip.js.map +1 -1
  136. package/dist/components/ic-card-vertical.js.map +1 -1
  137. package/dist/components/ic-checkbox.js +4 -4
  138. package/dist/components/ic-checkbox.js.map +1 -1
  139. package/dist/components/ic-chip.js +6 -2
  140. package/dist/components/ic-chip.js.map +1 -1
  141. package/dist/components/ic-classification-banner.js +14 -5
  142. package/dist/components/ic-classification-banner.js.map +1 -1
  143. package/dist/components/ic-menu2.js +213 -79
  144. package/dist/components/ic-menu2.js.map +1 -1
  145. package/dist/components/ic-pagination-bar.d.ts +11 -0
  146. package/dist/components/ic-pagination-bar.js +523 -0
  147. package/dist/components/ic-pagination-bar.js.map +1 -0
  148. package/dist/components/ic-pagination.js +1 -375
  149. package/dist/components/ic-pagination.js.map +1 -1
  150. package/dist/{esm/ic-pagination.entry.js → components/ic-pagination2.js} +82 -11
  151. package/dist/components/ic-pagination2.js.map +1 -0
  152. package/dist/components/ic-popover-menu.js +4 -4
  153. package/dist/components/ic-popover-menu.js.map +1 -1
  154. package/dist/components/ic-radio-group.js.map +1 -1
  155. package/dist/components/ic-radio-option.js.map +1 -1
  156. package/dist/components/ic-search-bar.js +11 -11
  157. package/dist/components/ic-search-bar.js.map +1 -1
  158. package/dist/components/ic-section-container2.js +2 -2
  159. package/dist/components/ic-select.js +1 -994
  160. package/dist/components/ic-select.js.map +1 -1
  161. package/dist/components/ic-select2.js +804 -0
  162. package/dist/components/ic-select2.js.map +1 -0
  163. package/dist/components/ic-side-navigation.js +18 -9
  164. package/dist/components/ic-side-navigation.js.map +1 -1
  165. package/dist/components/ic-skeleton.js +2 -2
  166. package/dist/components/ic-skip-link.js +2 -2
  167. package/dist/components/ic-status-tag.js +2 -2
  168. package/dist/components/ic-step.js +13 -13
  169. package/dist/components/ic-stepper.js +2 -2
  170. package/dist/components/ic-stepper.js.map +1 -1
  171. package/dist/components/ic-switch.js +4 -4
  172. package/dist/components/ic-switch.js.map +1 -1
  173. package/dist/components/ic-tab-context.js +1 -2
  174. package/dist/components/ic-tab-context.js.map +1 -1
  175. package/dist/components/ic-tab-group.js +2 -2
  176. package/dist/components/ic-tab-panel.js +2 -2
  177. package/dist/components/ic-tab-panel.js.map +1 -1
  178. package/dist/components/ic-text-field.js +1 -528
  179. package/dist/components/ic-text-field.js.map +1 -1
  180. package/dist/{esm/ic-text-field.entry.js → components/ic-text-field2.js} +114 -11
  181. package/dist/components/ic-text-field2.js.map +1 -0
  182. package/dist/components/ic-theme.js +1 -1
  183. package/dist/components/ic-toast-region.js +1 -1
  184. package/dist/components/ic-toast.js +7 -6
  185. package/dist/components/ic-toast.js.map +1 -1
  186. package/dist/components/ic-toggle-button-group.js +2 -2
  187. package/dist/components/ic-toggle-button.js +2 -2
  188. package/dist/core/core.esm.js +1 -1
  189. package/dist/core/core.esm.js.map +1 -1
  190. package/dist/core/{p-0a24c536.entry.js → p-05fd2707.entry.js} +2 -2
  191. package/dist/core/{p-85e15d01.entry.js → p-09505807.entry.js} +2 -2
  192. package/dist/core/{p-96bc7d24.entry.js → p-09caf7ed.entry.js} +2 -2
  193. package/dist/core/p-09caf7ed.entry.js.map +1 -0
  194. package/dist/core/{p-9057a186.entry.js → p-0b728f50.entry.js} +2 -2
  195. package/dist/core/{p-9057a186.entry.js.map → p-0b728f50.entry.js.map} +1 -1
  196. package/dist/core/p-0fb7f915.entry.js +2 -0
  197. package/dist/core/p-0fb7f915.entry.js.map +1 -0
  198. package/dist/core/{p-41a5da12.entry.js → p-1b81ec88.entry.js} +2 -2
  199. package/dist/core/{p-99951365.entry.js → p-2691cc80.entry.js} +2 -2
  200. package/dist/core/{p-94916588.entry.js → p-2a124daf.entry.js} +2 -2
  201. package/dist/core/{p-04c77b2d.entry.js → p-2b87c592.entry.js} +2 -2
  202. package/dist/core/{p-4aa56990.entry.js → p-2bd80913.entry.js} +2 -2
  203. package/dist/core/{p-aed1c7e7.entry.js → p-347cc084.entry.js} +2 -2
  204. package/dist/core/p-393af2bc.entry.js +2 -0
  205. package/dist/core/p-393af2bc.entry.js.map +1 -0
  206. package/dist/core/{p-a3dea729.entry.js → p-3aed13ba.entry.js} +2 -2
  207. package/dist/core/{p-8da90b72.entry.js → p-46fd555f.entry.js} +2 -2
  208. package/dist/core/{p-43cc0f1d.entry.js → p-48a628f0.entry.js} +2 -2
  209. package/dist/core/{p-9a4e067f.entry.js → p-4f56acff.entry.js} +2 -2
  210. package/dist/core/{p-3021290f.entry.js → p-506d428a.entry.js} +2 -2
  211. package/dist/core/{p-a1b2f483.entry.js → p-50dca790.entry.js} +2 -2
  212. package/dist/core/p-53ab3c0f.entry.js +2 -0
  213. package/dist/core/p-53ab3c0f.entry.js.map +1 -0
  214. package/dist/core/{p-feef7c2c.entry.js → p-56de4f4b.entry.js} +2 -2
  215. package/dist/core/{p-b4e322fe.entry.js → p-5900cb65.entry.js} +2 -2
  216. package/dist/core/{p-78a54069.entry.js → p-5976de6e.entry.js} +2 -2
  217. package/dist/core/{p-2af89564.entry.js → p-61d79fc6.entry.js} +2 -2
  218. package/dist/core/{p-2af89564.entry.js.map → p-61d79fc6.entry.js.map} +1 -1
  219. package/dist/core/p-659d048d.entry.js +2 -0
  220. package/dist/core/{p-1edf2689.entry.js → p-67de1290.entry.js} +2 -2
  221. package/dist/core/p-6b4ec95f.entry.js +3 -0
  222. package/dist/core/p-6b4ec95f.entry.js.map +1 -0
  223. package/dist/core/{p-f700b759.entry.js → p-73043f57.entry.js} +2 -2
  224. package/dist/core/{p-7b8e5926.entry.js → p-735d3096.entry.js} +2 -2
  225. package/dist/core/{p-07075461.entry.js → p-7b538fd1.entry.js} +2 -2
  226. package/dist/core/{p-cfd43558.entry.js → p-80d85403.entry.js} +2 -2
  227. package/dist/core/{p-7f279c8a.entry.js → p-83578f1d.entry.js} +2 -2
  228. package/dist/core/{p-7f279c8a.entry.js.map → p-83578f1d.entry.js.map} +1 -1
  229. package/dist/core/{p-b8c0c142.entry.js → p-880f7548.entry.js} +2 -2
  230. package/dist/core/p-880f7548.entry.js.map +1 -0
  231. package/dist/core/{p-79949920.entry.js → p-8a833e82.entry.js} +2 -2
  232. package/dist/core/{p-0aba9e31.entry.js → p-90678e67.entry.js} +2 -2
  233. package/dist/core/{p-a851eb65.entry.js → p-9502fb86.entry.js} +2 -2
  234. package/dist/core/{p-2ca7f050.entry.js → p-99433296.entry.js} +2 -2
  235. package/dist/core/p-99433296.entry.js.map +1 -0
  236. package/dist/core/{p-f6de08fb.entry.js → p-9c2b2cb9.entry.js} +2 -2
  237. package/dist/core/{p-949d08d3.entry.js → p-9cb83a2e.entry.js} +2 -2
  238. package/dist/core/{p-f0ecb80b.entry.js → p-a08d6b46.entry.js} +2 -2
  239. package/dist/core/p-a321feee.entry.js +2 -0
  240. package/dist/core/p-a321feee.entry.js.map +1 -0
  241. package/dist/core/{p-208f470f.entry.js → p-a780a34b.entry.js} +2 -2
  242. package/dist/core/{p-387b7bca.entry.js → p-aad03a3c.entry.js} +2 -2
  243. package/dist/core/{p-ec14c783.entry.js → p-aaf4e367.entry.js} +2 -2
  244. package/dist/core/{p-707ae6e9.entry.js → p-b52c44eb.entry.js} +2 -2
  245. package/dist/core/{p-716e7eaf.entry.js → p-b777f0a1.entry.js} +2 -2
  246. package/dist/core/p-b777f0a1.entry.js.map +1 -0
  247. package/dist/core/p-b77b1e1f.js +2 -0
  248. package/dist/core/p-b77b1e1f.js.map +1 -0
  249. package/dist/core/{p-780babc0.entry.js → p-b997ad5e.entry.js} +2 -2
  250. package/dist/core/{p-a0af1b0a.entry.js → p-bb7652cd.entry.js} +2 -2
  251. package/dist/core/{p-ded4cd76.entry.js → p-cbca04bb.entry.js} +2 -2
  252. package/dist/core/{p-99687bce.entry.js → p-cc64e5ef.entry.js} +2 -2
  253. package/dist/core/{p-812c5e61.entry.js → p-cfbacca1.entry.js} +2 -2
  254. package/dist/core/{p-0da2caa2.entry.js → p-daec7e69.entry.js} +2 -2
  255. package/dist/core/{p-1590fd69.entry.js → p-e7767c0d.entry.js} +2 -2
  256. package/dist/core/p-e938eb31.entry.js +2 -0
  257. package/dist/core/p-e938eb31.entry.js.map +1 -0
  258. package/dist/core/{p-dce11b9d.entry.js → p-ea7a3d30.entry.js} +2 -2
  259. package/dist/core/{p-880afd4b.entry.js → p-ebd688b9.entry.js} +2 -2
  260. package/dist/core/p-ebd688b9.entry.js.map +1 -0
  261. package/dist/core/{p-a674b13b.entry.js → p-ef70ea50.entry.js} +2 -2
  262. package/dist/core/{p-d25d0aad.entry.js → p-f64996f1.entry.js} +2 -2
  263. package/dist/core/{p-db17a793.entry.js → p-f661ba76.entry.js} +2 -2
  264. package/dist/core/{p-a03bb31c.entry.js → p-f84ac9c6.entry.js} +2 -2
  265. package/dist/core/{p-f3406b42.entry.js → p-fb9376f0.entry.js} +2 -2
  266. package/dist/esm/core.js +1 -1
  267. package/dist/esm/{helpers-0f85537f.js → helpers-66681c73.js} +4 -17
  268. package/dist/esm/helpers-66681c73.js.map +1 -0
  269. package/dist/esm/ic-accordion-group.entry.js +1 -1
  270. package/dist/esm/ic-accordion.entry.js +1 -1
  271. package/dist/esm/ic-action-chip.entry.js +7 -3
  272. package/dist/esm/ic-action-chip.entry.js.map +1 -1
  273. package/dist/esm/ic-alert.entry.js +1 -1
  274. package/dist/esm/ic-back-to-top.entry.js +1 -1
  275. package/dist/esm/ic-badge.entry.js +1 -1
  276. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  277. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  278. package/dist/esm/ic-button_3.entry.js +1 -1
  279. package/dist/esm/ic-button_3.entry.js.map +1 -1
  280. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  281. package/dist/esm/ic-card-vertical.entry.js +1 -1
  282. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  283. package/dist/esm/ic-checkbox.entry.js +5 -5
  284. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  285. package/dist/esm/ic-chip.entry.js +7 -3
  286. package/dist/esm/ic-chip.entry.js.map +1 -1
  287. package/dist/esm/ic-classification-banner.entry.js +13 -5
  288. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  289. package/dist/esm/ic-data-row.entry.js +1 -1
  290. package/dist/esm/ic-dialog.entry.js +1 -1
  291. package/dist/esm/ic-divider.entry.js +1 -1
  292. package/dist/esm/ic-empty-state.entry.js +1 -1
  293. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  294. package/dist/esm/ic-footer-link.entry.js +1 -1
  295. package/dist/esm/ic-footer.entry.js +1 -1
  296. package/dist/esm/ic-hero.entry.js +1 -1
  297. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  298. package/dist/esm/ic-input-component-container_3.entry.js +212 -80
  299. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  300. package/dist/esm/ic-input-label_2.entry.js +1 -1
  301. package/dist/esm/ic-link.entry.js +1 -1
  302. package/dist/esm/ic-menu-group.entry.js +1 -1
  303. package/dist/esm/ic-menu-item.entry.js +1 -1
  304. package/dist/esm/ic-navigation-button.entry.js +1 -1
  305. package/dist/esm/ic-navigation-group.entry.js +1 -1
  306. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  307. package/dist/esm/ic-navigation-item.entry.js +1 -1
  308. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  309. package/dist/esm/ic-page-header.entry.js +1 -1
  310. package/dist/esm/ic-pagination-bar.entry.js +385 -0
  311. package/dist/esm/ic-pagination-bar.entry.js.map +1 -0
  312. package/dist/esm/ic-pagination-item.entry.js +1 -1
  313. package/dist/esm/ic-pagination_3.entry.js +1406 -0
  314. package/dist/esm/ic-pagination_3.entry.js.map +1 -0
  315. package/dist/esm/ic-popover-menu.entry.js +5 -5
  316. package/dist/esm/ic-radio-group.entry.js +1 -1
  317. package/dist/esm/ic-radio-option.entry.js +1 -1
  318. package/dist/esm/ic-search-bar.entry.js +11 -11
  319. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  320. package/dist/esm/ic-section-container.entry.js +2 -2
  321. package/dist/esm/ic-side-navigation.entry.js +18 -9
  322. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  323. package/dist/esm/ic-skeleton.entry.js +2 -2
  324. package/dist/esm/ic-skip-link.entry.js +2 -2
  325. package/dist/esm/ic-status-tag.entry.js +3 -3
  326. package/dist/esm/ic-step.entry.js +14 -14
  327. package/dist/esm/ic-stepper.entry.js +3 -3
  328. package/dist/esm/ic-stepper.entry.js.map +1 -1
  329. package/dist/esm/ic-switch.entry.js +5 -5
  330. package/dist/esm/ic-tab-context.entry.js +1 -2
  331. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  332. package/dist/esm/ic-tab-group.entry.js +3 -3
  333. package/dist/esm/ic-tab-panel.entry.js +2 -2
  334. package/dist/esm/ic-tab.entry.js +1 -1
  335. package/dist/esm/ic-theme.entry.js +2 -2
  336. package/dist/esm/ic-toast-region.entry.js +1 -1
  337. package/dist/esm/ic-toast.entry.js +8 -7
  338. package/dist/esm/ic-toast.entry.js.map +1 -1
  339. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  340. package/dist/esm/ic-toggle-button.entry.js +3 -3
  341. package/dist/esm/ic-top-navigation.entry.js +1 -1
  342. package/dist/esm/ic-typography.entry.js +1 -1
  343. package/dist/esm/index-a7a720e7.js +12 -16
  344. package/dist/esm/loader.js +1 -1
  345. package/dist/types/components/ic-classification-banner/ic-classification-banner.d.ts +4 -0
  346. package/dist/types/components/ic-menu/ic-menu.d.ts +11 -1
  347. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +162 -0
  348. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +8 -0
  349. package/dist/types/components/ic-select/ic-select.d.ts +53 -80
  350. package/dist/types/components/ic-select/ic-select.types.d.ts +43 -0
  351. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +3 -2
  352. package/dist/types/components.d.ts +234 -5
  353. package/dist/types/utils/helpers.d.ts +2 -4
  354. package/hydrate/index.js +1141 -771
  355. package/hydrate/index.mjs +1141 -771
  356. package/package.json +2 -2
  357. package/vscode-data.json +131 -0
  358. package/dist/cjs/helpers-3a796e7a.js.map +0 -1
  359. package/dist/cjs/ic-pagination.cjs.entry.js +0 -312
  360. package/dist/cjs/ic-pagination.cjs.entry.js.map +0 -1
  361. package/dist/cjs/ic-select.cjs.entry.js +0 -879
  362. package/dist/cjs/ic-select.cjs.entry.js.map +0 -1
  363. package/dist/cjs/ic-text-field.cjs.entry.js +0 -433
  364. package/dist/cjs/ic-text-field.cjs.entry.js.map +0 -1
  365. package/dist/core/p-0d7fd892.entry.js +0 -2
  366. package/dist/core/p-29b61bb5.entry.js +0 -3
  367. package/dist/core/p-29b61bb5.entry.js.map +0 -1
  368. package/dist/core/p-2ca7f050.entry.js.map +0 -1
  369. package/dist/core/p-4aadabc8.entry.js +0 -2
  370. package/dist/core/p-4aadabc8.entry.js.map +0 -1
  371. package/dist/core/p-716e7eaf.entry.js.map +0 -1
  372. package/dist/core/p-808e1ef5.entry.js +0 -2
  373. package/dist/core/p-808e1ef5.entry.js.map +0 -1
  374. package/dist/core/p-880afd4b.entry.js.map +0 -1
  375. package/dist/core/p-8fe4e0ad.entry.js +0 -2
  376. package/dist/core/p-8fe4e0ad.entry.js.map +0 -1
  377. package/dist/core/p-96bc7d24.entry.js.map +0 -1
  378. package/dist/core/p-b8c0c142.entry.js.map +0 -1
  379. package/dist/core/p-c5b9519d.entry.js +0 -2
  380. package/dist/core/p-c5b9519d.entry.js.map +0 -1
  381. package/dist/core/p-d1730d4d.entry.js +0 -2
  382. package/dist/core/p-d1730d4d.entry.js.map +0 -1
  383. package/dist/core/p-dbc8bf0c.js +0 -2
  384. package/dist/core/p-dbc8bf0c.js.map +0 -1
  385. package/dist/core/p-fdb587ab.entry.js +0 -2
  386. package/dist/core/p-fdb587ab.entry.js.map +0 -1
  387. package/dist/esm/helpers-0f85537f.js.map +0 -1
  388. package/dist/esm/ic-pagination.entry.js.map +0 -1
  389. package/dist/esm/ic-select.entry.js +0 -875
  390. package/dist/esm/ic-select.entry.js.map +0 -1
  391. package/dist/esm/ic-text-field.entry.js.map +0 -1
  392. /package/dist/core/{p-0a24c536.entry.js.map → p-05fd2707.entry.js.map} +0 -0
  393. /package/dist/core/{p-85e15d01.entry.js.map → p-09505807.entry.js.map} +0 -0
  394. /package/dist/core/{p-41a5da12.entry.js.map → p-1b81ec88.entry.js.map} +0 -0
  395. /package/dist/core/{p-99951365.entry.js.map → p-2691cc80.entry.js.map} +0 -0
  396. /package/dist/core/{p-94916588.entry.js.map → p-2a124daf.entry.js.map} +0 -0
  397. /package/dist/core/{p-04c77b2d.entry.js.map → p-2b87c592.entry.js.map} +0 -0
  398. /package/dist/core/{p-4aa56990.entry.js.map → p-2bd80913.entry.js.map} +0 -0
  399. /package/dist/core/{p-aed1c7e7.entry.js.map → p-347cc084.entry.js.map} +0 -0
  400. /package/dist/core/{p-a3dea729.entry.js.map → p-3aed13ba.entry.js.map} +0 -0
  401. /package/dist/core/{p-8da90b72.entry.js.map → p-46fd555f.entry.js.map} +0 -0
  402. /package/dist/core/{p-43cc0f1d.entry.js.map → p-48a628f0.entry.js.map} +0 -0
  403. /package/dist/core/{p-9a4e067f.entry.js.map → p-4f56acff.entry.js.map} +0 -0
  404. /package/dist/core/{p-3021290f.entry.js.map → p-506d428a.entry.js.map} +0 -0
  405. /package/dist/core/{p-a1b2f483.entry.js.map → p-50dca790.entry.js.map} +0 -0
  406. /package/dist/core/{p-feef7c2c.entry.js.map → p-56de4f4b.entry.js.map} +0 -0
  407. /package/dist/core/{p-b4e322fe.entry.js.map → p-5900cb65.entry.js.map} +0 -0
  408. /package/dist/core/{p-78a54069.entry.js.map → p-5976de6e.entry.js.map} +0 -0
  409. /package/dist/core/{p-0d7fd892.entry.js.map → p-659d048d.entry.js.map} +0 -0
  410. /package/dist/core/{p-1edf2689.entry.js.map → p-67de1290.entry.js.map} +0 -0
  411. /package/dist/core/{p-f700b759.entry.js.map → p-73043f57.entry.js.map} +0 -0
  412. /package/dist/core/{p-7b8e5926.entry.js.map → p-735d3096.entry.js.map} +0 -0
  413. /package/dist/core/{p-07075461.entry.js.map → p-7b538fd1.entry.js.map} +0 -0
  414. /package/dist/core/{p-cfd43558.entry.js.map → p-80d85403.entry.js.map} +0 -0
  415. /package/dist/core/{p-79949920.entry.js.map → p-8a833e82.entry.js.map} +0 -0
  416. /package/dist/core/{p-0aba9e31.entry.js.map → p-90678e67.entry.js.map} +0 -0
  417. /package/dist/core/{p-a851eb65.entry.js.map → p-9502fb86.entry.js.map} +0 -0
  418. /package/dist/core/{p-f6de08fb.entry.js.map → p-9c2b2cb9.entry.js.map} +0 -0
  419. /package/dist/core/{p-949d08d3.entry.js.map → p-9cb83a2e.entry.js.map} +0 -0
  420. /package/dist/core/{p-f0ecb80b.entry.js.map → p-a08d6b46.entry.js.map} +0 -0
  421. /package/dist/core/{p-208f470f.entry.js.map → p-a780a34b.entry.js.map} +0 -0
  422. /package/dist/core/{p-387b7bca.entry.js.map → p-aad03a3c.entry.js.map} +0 -0
  423. /package/dist/core/{p-ec14c783.entry.js.map → p-aaf4e367.entry.js.map} +0 -0
  424. /package/dist/core/{p-707ae6e9.entry.js.map → p-b52c44eb.entry.js.map} +0 -0
  425. /package/dist/core/{p-780babc0.entry.js.map → p-b997ad5e.entry.js.map} +0 -0
  426. /package/dist/core/{p-a0af1b0a.entry.js.map → p-bb7652cd.entry.js.map} +0 -0
  427. /package/dist/core/{p-ded4cd76.entry.js.map → p-cbca04bb.entry.js.map} +0 -0
  428. /package/dist/core/{p-99687bce.entry.js.map → p-cc64e5ef.entry.js.map} +0 -0
  429. /package/dist/core/{p-812c5e61.entry.js.map → p-cfbacca1.entry.js.map} +0 -0
  430. /package/dist/core/{p-0da2caa2.entry.js.map → p-daec7e69.entry.js.map} +0 -0
  431. /package/dist/core/{p-1590fd69.entry.js.map → p-e7767c0d.entry.js.map} +0 -0
  432. /package/dist/core/{p-dce11b9d.entry.js.map → p-ea7a3d30.entry.js.map} +0 -0
  433. /package/dist/core/{p-a674b13b.entry.js.map → p-ef70ea50.entry.js.map} +0 -0
  434. /package/dist/core/{p-d25d0aad.entry.js.map → p-f64996f1.entry.js.map} +0 -0
  435. /package/dist/core/{p-db17a793.entry.js.map → p-f661ba76.entry.js.map} +0 -0
  436. /package/dist/core/{p-a03bb31c.entry.js.map → p-f84ac9c6.entry.js.map} +0 -0
  437. /package/dist/core/{p-f3406b42.entry.js.map → p-fb9376f0.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement, c as createEvent, F as Fragment } from './index-a7a720e7.js';
2
- import { r as removeDisabledFalse, a as renderDynamicChildSlots, t as slotHasContent, O as IcInformationStatus, L as isMacDevice, o as onComponentRequiredPropUndefined, M as getOptionsWithoutGroupTitlesCount } from './helpers-0f85537f.js';
2
+ import { r as removeDisabledFalse, a as renderDynamicChildSlots, t as slotHasContent, S as IcInformationStatus, U as isMacDevice, o as onComponentRequiredPropUndefined, V as getOptionsWithoutGroupTitlesCount } from './helpers-66681c73.js';
3
3
  import { s as successIcon, f as IC_CUSTOM_ALLOWED_COMPONENTS } from './constants-ab12fdcf.js';
4
4
  import { C as Check } from './check-icon-4a9f8371.js';
5
5
  import { c as createPopper } from './popper-0fbeff6d.js';
@@ -97,7 +97,7 @@ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof win
97
97
 
98
98
  var purify = {exports: {}};
99
99
 
100
- /*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
100
+ /*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */
101
101
 
102
102
  (function (module, exports) {
103
103
  (function (global, factory) {
@@ -130,12 +130,18 @@ var purify = {exports: {}};
130
130
  };
131
131
  }
132
132
  if (!apply) {
133
- apply = function apply(fun, thisValue, args) {
134
- return fun.apply(thisValue, args);
133
+ apply = function apply(func, thisArg) {
134
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
135
+ args[_key - 2] = arguments[_key];
136
+ }
137
+ return func.apply(thisArg, args);
135
138
  };
136
139
  }
137
140
  if (!construct) {
138
- construct = function construct(Func, args) {
141
+ construct = function construct(Func) {
142
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
143
+ args[_key2 - 1] = arguments[_key2];
144
+ }
139
145
  return new Func(...args);
140
146
  };
141
147
  }
@@ -164,8 +170,8 @@ var purify = {exports: {}};
164
170
  if (thisArg instanceof RegExp) {
165
171
  thisArg.lastIndex = 0;
166
172
  }
167
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
168
- args[_key - 1] = arguments[_key];
173
+ for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
174
+ args[_key3 - 1] = arguments[_key3];
169
175
  }
170
176
  return apply(func, thisArg, args);
171
177
  };
@@ -176,12 +182,12 @@ var purify = {exports: {}};
176
182
  * @param func - The constructor function to be wrapped and called.
177
183
  * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
178
184
  */
179
- function unconstruct(func) {
185
+ function unconstruct(Func) {
180
186
  return function () {
181
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
182
- args[_key2] = arguments[_key2];
187
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
188
+ args[_key4] = arguments[_key4];
183
189
  }
184
- return construct(func, args);
190
+ return construct(Func, args);
185
191
  };
186
192
  }
187
193
  /**
@@ -280,8 +286,8 @@ var purify = {exports: {}};
280
286
  return fallbackValue;
281
287
  }
282
288
 
283
- const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
284
- const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
289
+ const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
290
+ const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
285
291
  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
286
292
  // List of SVG elements that are disallowed by default.
287
293
  // We still need to know them so that we can do namespace
@@ -294,8 +300,8 @@ var purify = {exports: {}};
294
300
  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
295
301
  const text = freeze(['#text']);
296
302
 
297
- const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
298
- const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
303
+ const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
304
+ const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
299
305
  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
300
306
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
301
307
 
@@ -402,7 +408,7 @@ var purify = {exports: {}};
402
408
  function createDOMPurify() {
403
409
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
404
410
  const DOMPurify = root => createDOMPurify(root);
405
- DOMPurify.version = '3.2.6';
411
+ DOMPurify.version = '3.3.3';
406
412
  DOMPurify.removed = [];
407
413
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
408
414
  // Not running in a browser, provide a factory function
@@ -513,6 +519,21 @@ var purify = {exports: {}};
513
519
  let FORBID_TAGS = null;
514
520
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
515
521
  let FORBID_ATTR = null;
522
+ /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
523
+ const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
524
+ tagCheck: {
525
+ writable: true,
526
+ configurable: false,
527
+ enumerable: true,
528
+ value: null
529
+ },
530
+ attributeCheck: {
531
+ writable: true,
532
+ configurable: false,
533
+ enumerable: true,
534
+ value: null
535
+ }
536
+ }));
516
537
  /* Decide if ARIA attributes are okay */
517
538
  let ALLOW_ARIA_ATTR = true;
518
539
  /* Decide if custom data attributes are okay */
@@ -682,7 +703,7 @@ var purify = {exports: {}};
682
703
  /* Parse profile info */
683
704
  if (USE_PROFILES) {
684
705
  ALLOWED_TAGS = addToSet({}, text);
685
- ALLOWED_ATTR = [];
706
+ ALLOWED_ATTR = create(null);
686
707
  if (USE_PROFILES.html === true) {
687
708
  addToSet(ALLOWED_TAGS, html$1);
688
709
  addToSet(ALLOWED_ATTR, html);
@@ -703,18 +724,33 @@ var purify = {exports: {}};
703
724
  addToSet(ALLOWED_ATTR, xml);
704
725
  }
705
726
  }
727
+ /* Prevent function-based ADD_ATTR / ADD_TAGS from leaking across calls */
728
+ if (!objectHasOwnProperty(cfg, 'ADD_TAGS')) {
729
+ EXTRA_ELEMENT_HANDLING.tagCheck = null;
730
+ }
731
+ if (!objectHasOwnProperty(cfg, 'ADD_ATTR')) {
732
+ EXTRA_ELEMENT_HANDLING.attributeCheck = null;
733
+ }
706
734
  /* Merge configuration parameters */
707
735
  if (cfg.ADD_TAGS) {
708
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
709
- ALLOWED_TAGS = clone(ALLOWED_TAGS);
736
+ if (typeof cfg.ADD_TAGS === 'function') {
737
+ EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
738
+ } else {
739
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
740
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
741
+ }
742
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
710
743
  }
711
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
712
744
  }
713
745
  if (cfg.ADD_ATTR) {
714
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
715
- ALLOWED_ATTR = clone(ALLOWED_ATTR);
746
+ if (typeof cfg.ADD_ATTR === 'function') {
747
+ EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
748
+ } else {
749
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
750
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
751
+ }
752
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
716
753
  }
717
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
718
754
  }
719
755
  if (cfg.ADD_URI_SAFE_ATTR) {
720
756
  addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
@@ -725,6 +761,12 @@ var purify = {exports: {}};
725
761
  }
726
762
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
727
763
  }
764
+ if (cfg.ADD_FORBID_CONTENTS) {
765
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
766
+ FORBID_CONTENTS = clone(FORBID_CONTENTS);
767
+ }
768
+ addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
769
+ }
728
770
  /* Add #text in case KEEP_CONTENT is set to true */
729
771
  if (KEEP_CONTENT) {
730
772
  ALLOWED_TAGS['#text'] = true;
@@ -1022,7 +1064,7 @@ var purify = {exports: {}};
1022
1064
  return true;
1023
1065
  }
1024
1066
  /* Remove element if anything forbids its presence */
1025
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
1067
+ if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
1026
1068
  /* Check if we have a custom element to handle */
1027
1069
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
1028
1070
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -1086,6 +1128,10 @@ var purify = {exports: {}};
1086
1128
  */
1087
1129
  // eslint-disable-next-line complexity
1088
1130
  const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
1131
+ /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */
1132
+ if (FORBID_ATTR[lcName]) {
1133
+ return false;
1134
+ }
1089
1135
  /* Make sure attribute cannot clobber */
1090
1136
  if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
1091
1137
  return false;
@@ -1094,12 +1140,12 @@ var purify = {exports: {}};
1094
1140
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
1095
1141
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
1096
1142
  We don't need to check the value; it's always URI safe. */
1097
- if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
1143
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
1098
1144
  if (
1099
1145
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
1100
1146
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
1101
1147
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
1102
- _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||
1148
+ _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||
1103
1149
  // Alternative, second condition checks if it's an `is`-attribute, AND
1104
1150
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
1105
1151
  lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
@@ -1178,7 +1224,12 @@ var purify = {exports: {}};
1178
1224
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
1179
1225
  }
1180
1226
  /* Work around a security issue with comments inside attributes */
1181
- if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
1227
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {
1228
+ _removeAttribute(name, currentNode);
1229
+ continue;
1230
+ }
1231
+ /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
1232
+ if (lcName === 'attributename' && stringMatch(value, 'href')) {
1182
1233
  _removeAttribute(name, currentNode);
1183
1234
  continue;
1184
1235
  }
@@ -1468,7 +1519,7 @@ const sanitizeHTMLIconString = (html) => {
1468
1519
  return purifier.sanitize(html, getCustomElementHandling(false));
1469
1520
  };
1470
1521
 
1471
- const icMenuCss = "html.sc-ic-menu{line-height:1.15;-webkit-text-size-adjust:100%}body.sc-ic-menu{margin:0}main.sc-ic-menu{display:block}h1.sc-ic-menu{font-size:2em;margin:0.67em 0}hr.sc-ic-menu{box-sizing:content-box;height:0;overflow:visible}pre.sc-ic-menu{font-family:monospace, monospace;font-size:1em}a.sc-ic-menu{background-color:transparent}abbr[title].sc-ic-menu{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b.sc-ic-menu,strong.sc-ic-menu{font-weight:bolder}code.sc-ic-menu,kbd.sc-ic-menu,samp.sc-ic-menu{font-family:monospace, monospace;font-size:1em}small.sc-ic-menu{font-size:80%}sub.sc-ic-menu,sup.sc-ic-menu{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub.sc-ic-menu{bottom:-0.25em}sup.sc-ic-menu{top:-0.5em}img.sc-ic-menu{border-style:none}button.sc-ic-menu,input.sc-ic-menu,optgroup.sc-ic-menu,select.sc-ic-menu,textarea.sc-ic-menu{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button.sc-ic-menu,input.sc-ic-menu{overflow:visible}button.sc-ic-menu,select.sc-ic-menu{text-transform:none}button.sc-ic-menu,[type=\"button\"].sc-ic-menu,[type=\"reset\"].sc-ic-menu,[type=\"submit\"].sc-ic-menu{-webkit-appearance:button}button.sc-ic-menu::-moz-focus-inner,[type=\"button\"].sc-ic-menu::-moz-focus-inner,[type=\"reset\"].sc-ic-menu::-moz-focus-inner,[type=\"submit\"].sc-ic-menu::-moz-focus-inner{border-style:none;padding:0}button.sc-ic-menu:-moz-focusring,[type=\"button\"].sc-ic-menu:-moz-focusring,[type=\"reset\"].sc-ic-menu:-moz-focusring,[type=\"submit\"].sc-ic-menu:-moz-focusring{outline:1px dotted ButtonText}fieldset.sc-ic-menu{padding:0.35em 0.75em 0.625em}legend.sc-ic-menu{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress.sc-ic-menu{vertical-align:baseline}textarea.sc-ic-menu{overflow:auto}[type=\"checkbox\"].sc-ic-menu,[type=\"radio\"].sc-ic-menu{box-sizing:border-box;padding:0}[type=\"number\"].sc-ic-menu::-webkit-inner-spin-button,[type=\"number\"].sc-ic-menu::-webkit-outer-spin-button{height:auto}[type=\"search\"].sc-ic-menu{-webkit-appearance:textfield;outline-offset:-2px}[type=\"search\"].sc-ic-menu::-webkit-search-decoration{-webkit-appearance:none}.sc-ic-menu::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details.sc-ic-menu{display:block}summary.sc-ic-menu{display:list-item}template.sc-ic-menu{display:none}[hidden].sc-ic-menu{display:none}html.sc-ic-menu,body.sc-ic-menu,div.sc-ic-menu,span.sc-ic-menu,applet.sc-ic-menu,object.sc-ic-menu,iframe.sc-ic-menu,h1.sc-ic-menu,h2.sc-ic-menu,h3.sc-ic-menu,h4.sc-ic-menu,h5.sc-ic-menu,h6.sc-ic-menu,p.sc-ic-menu,blockquote.sc-ic-menu,pre.sc-ic-menu,a.sc-ic-menu,abbr.sc-ic-menu,acronym.sc-ic-menu,address.sc-ic-menu,big.sc-ic-menu,cite.sc-ic-menu,code.sc-ic-menu,del.sc-ic-menu,dfn.sc-ic-menu,em.sc-ic-menu,img.sc-ic-menu,ins.sc-ic-menu,kbd.sc-ic-menu,q.sc-ic-menu,s.sc-ic-menu,samp.sc-ic-menu,small.sc-ic-menu,strike.sc-ic-menu,strong.sc-ic-menu,sub.sc-ic-menu,sup.sc-ic-menu,tt.sc-ic-menu,var.sc-ic-menu,b.sc-ic-menu,u.sc-ic-menu,i.sc-ic-menu,center.sc-ic-menu,dl.sc-ic-menu,dt.sc-ic-menu,dd.sc-ic-menu,ol.sc-ic-menu,ul.sc-ic-menu,li.sc-ic-menu,fieldset.sc-ic-menu,form.sc-ic-menu,label.sc-ic-menu,legend.sc-ic-menu,table.sc-ic-menu,caption.sc-ic-menu,tbody.sc-ic-menu,tfoot.sc-ic-menu,thead.sc-ic-menu,tr.sc-ic-menu,th.sc-ic-menu,td.sc-ic-menu,article.sc-ic-menu,aside.sc-ic-menu,canvas.sc-ic-menu,details.sc-ic-menu,embed.sc-ic-menu,figure.sc-ic-menu,figcaption.sc-ic-menu,footer.sc-ic-menu,header.sc-ic-menu,hgroup.sc-ic-menu,menu.sc-ic-menu,nav.sc-ic-menu,output.sc-ic-menu,ruby.sc-ic-menu,section.sc-ic-menu,summary.sc-ic-menu,time.sc-ic-menu,mark.sc-ic-menu,audio.sc-ic-menu,video.sc-ic-menu{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{transition:max-height var(--ic-transition-duration-slow)}}.sc-ic-menu-h{max-height:0;width:var(--menu-width, var(--input-width, 20rem));color:var(--menu-item-text-color, var(--ic-menu-list-option-text-color));--ic-typography-color:var(\n --menu-item-text-color,\n var(--ic-menu-list-option-text-color)\n );background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );position:relative;z-index:var(--ic-z-index-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:var(--ic-border-radius)}.ic-menu-open.sc-ic-menu-h:not(.ic-menu-no-focus):focus-within{box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline)}.ic-select-select-all-focused.sc-ic-menu-h{box-shadow:var(--ic-elevation-overlay) !important}#retry-button.sc-ic-menu::part(button){height:var(--ic-space-lg)}.small.sc-ic-menu #retry-button.sc-ic-menu::part(button){height:var(--ic-space-md)}.on-dialog.sc-ic-menu-h{inset:auto !important}.menu.sc-ic-menu{text-decoration:none;list-style-type:none;border-radius:1px;background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );visibility:hidden;max-height:0;overflow-y:hidden}.menu.sc-ic-menu:has(+.option-bar).sc-ic-menu{border-radius:0 0 1px 1px}.menu-scroll.sc-ic-menu{overflow-y:auto}.menu.sc-ic-menu:focus-visible{outline:none}.ic-menu-open.sc-ic-menu-h{max-height:none;display:flex;flex-direction:column-reverse;border:var(--ic-border-width) solid\n var(--menu-border-color, var(--ic-menu-border-color));transition:box-shadow var(--ic-easing-transition-fast)}.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{visibility:visible;max-height:calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs))}.ic-menu-open.sc-ic-menu-h .option-bar.sc-ic-menu{visibility:visible}.ic-menu-open.sc-ic-menu-h .select-all-button.sc-ic-menu{display:block}.ic-menu-full-width.sc-ic-menu-h{width:100%}.option.sc-ic-menu{padding:var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));cursor:pointer;display:flex;align-items:center;gap:var(--ic-space-xs)}.loading-option.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.option.sc-ic-menu:not(.loading-option){justify-content:space-between}.ic-menu-small.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px))}.ic-menu-large.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))}.option.sc-ic-menu:last-child{border-radius:0 0 1px 1px}.sc-ic-menu:not(.menu:has(+.option-bar)).sc-ic-menu .option.sc-ic-menu:first-child{border-radius:1px 1px 0 0}.option.sc-ic-menu:not(.disabled-option):hover{background-color:var(--ic-menu-list-option-hover-background-color)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-menu-list-option-pressed-background-color)}.option.sc-ic-menu:focus-visible{outline:var(--ic-hc-focus-outline)}.option.sc-ic-menu:not(.disabled-option) .option-description.sc-ic-menu{--ic-typography-color:var(\n --menu-item-desc-text-color,\n var(--ic-menu-list-option-description-text-color)\n )}.option.sc-ic-menu .option-label.sc-ic-menu{display:flex;flex-direction:row;align-items:top}.option.sc-ic-menu .option-label.sc-ic-menu ic-typography.sc-ic-menu{max-width:100%;word-wrap:break-word}.option.sc-ic-menu .option-element.sc-ic-menu{margin-top:var(--ic-space-xxs)}.option.sc-ic-menu .option-icon.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);margin-top:var(--ic-space-xxs);margin-right:var(--ic-space-xxs)}.option-text-container.sc-ic-menu{pointer-events:none;width:100%}.option-text-container.show-check-icon.sc-ic-menu{flex-grow:1}.option.loading-option.sc-ic-menu .option-text-container.sc-ic-menu{margin-left:calc(var(--ic-space-xs) + var(--ic-space-xxxs));color:var(--ic-menu-loading-list-option-text-color);--ic-typography-color:var(--ic-menu-loading-list-option-text-color)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-atoms-status-icon-error);align-self:center;display:flex;margin-right:calc(var(--ic-space-xxs) * 1.2)}.loading-error-info.sc-ic-menu{display:flex}.check-icon.sc-ic-menu{height:var(--ic-space-lg);min-width:var(--ic-space-lg);width:var(--ic-space-lg);pointer-events:none}.focused-option.sc-ic-menu .check-icon.sc-ic-menu *.sc-ic-menu{fill:currentcolor}.option-group-title.sc-ic-menu{padding:var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);--ic-typography-color:var(--ic-menu-option-group-label-text-color)}.ic-menu-small.sc-ic-menu-h .option-group-title.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs)}.last-recommended-option.sc-ic-menu{border-bottom:var(--ic-menu-last-recommended-option-border)}.disabled-option.sc-ic-menu{color:var(--ic-atoms-list-option-text-disabled-light);--ic-typography-color:var(--ic-atoms-list-option-text-disabled-light);cursor:default;pointer-events:none}.focused-option.sc-ic-menu,.focused-option.sc-ic-menu .option-description.sc-ic-menu{background-color:var(--ic-color-focus-inner) !important;color:var(--ic-atoms-list-option-text-focused-light) !important;--ic-typography-color:var(\n --ic-atoms-list-option-text-focused-light\n ) !important}.no-results.sc-ic-menu-h li.sc-ic-menu{cursor:no-drop}.no-results.sc-ic-menu-h li.sc-ic-menu:hover{background-color:transparent}.option-bar.sc-ic-menu{padding:var(--ic-space-xxs) var(--ic-space-xs);display:flex;align-items:center;justify-content:space-between;background-color:var(--ic-menu-option-bar-background-color);visibility:hidden;border-bottom:var(--ic-border-width) solid\n var(--ic-menu-option-bar-divider-color);border-radius:1px 1px 0 0}.option-bar.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.ic-menu-large.sc-ic-menu-h .option-bar.sc-ic-menu{padding:var(--ic-space-xs)}.select-all-button.sc-ic-menu{display:none}.select-all-button.sc-ic-menu:focus{z-index:calc(var(--ic-z-index-menu) + 1)}@media (forced-colors: active){.focused-option.sc-ic-menu:focus{outline:none;border:0.125rem solid transparent}.disabled-option.sc-ic-menu{color:GrayText;--ic-typography-color:GrayText}}@media screen AND (max-width: 22rem){.sc-ic-menu-h{max-width:var(--menu-width, var(--input-width, 20rem));width:100%}}@media (prefers-reduced-motion: reduce){.ic-menu-open.sc-ic-menu-h{transition:none}}";
1522
+ const icMenuCss = "html.sc-ic-menu{line-height:1.15;-webkit-text-size-adjust:100%}body.sc-ic-menu{margin:0}main.sc-ic-menu{display:block}h1.sc-ic-menu{font-size:2em;margin:0.67em 0}hr.sc-ic-menu{box-sizing:content-box;height:0;overflow:visible}pre.sc-ic-menu{font-family:monospace, monospace;font-size:1em}a.sc-ic-menu{background-color:transparent}abbr[title].sc-ic-menu{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b.sc-ic-menu,strong.sc-ic-menu{font-weight:bolder}code.sc-ic-menu,kbd.sc-ic-menu,samp.sc-ic-menu{font-family:monospace, monospace;font-size:1em}small.sc-ic-menu{font-size:80%}sub.sc-ic-menu,sup.sc-ic-menu{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub.sc-ic-menu{bottom:-0.25em}sup.sc-ic-menu{top:-0.5em}img.sc-ic-menu{border-style:none}button.sc-ic-menu,input.sc-ic-menu,optgroup.sc-ic-menu,select.sc-ic-menu,textarea.sc-ic-menu{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button.sc-ic-menu,input.sc-ic-menu{overflow:visible}button.sc-ic-menu,select.sc-ic-menu{text-transform:none}button.sc-ic-menu,[type=\"button\"].sc-ic-menu,[type=\"reset\"].sc-ic-menu,[type=\"submit\"].sc-ic-menu{-webkit-appearance:button}button.sc-ic-menu::-moz-focus-inner,[type=\"button\"].sc-ic-menu::-moz-focus-inner,[type=\"reset\"].sc-ic-menu::-moz-focus-inner,[type=\"submit\"].sc-ic-menu::-moz-focus-inner{border-style:none;padding:0}button.sc-ic-menu:-moz-focusring,[type=\"button\"].sc-ic-menu:-moz-focusring,[type=\"reset\"].sc-ic-menu:-moz-focusring,[type=\"submit\"].sc-ic-menu:-moz-focusring{outline:1px dotted ButtonText}fieldset.sc-ic-menu{padding:0.35em 0.75em 0.625em}legend.sc-ic-menu{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress.sc-ic-menu{vertical-align:baseline}textarea.sc-ic-menu{overflow:auto}[type=\"checkbox\"].sc-ic-menu,[type=\"radio\"].sc-ic-menu{box-sizing:border-box;padding:0}[type=\"number\"].sc-ic-menu::-webkit-inner-spin-button,[type=\"number\"].sc-ic-menu::-webkit-outer-spin-button{height:auto}[type=\"search\"].sc-ic-menu{-webkit-appearance:textfield;outline-offset:-2px}[type=\"search\"].sc-ic-menu::-webkit-search-decoration{-webkit-appearance:none}.sc-ic-menu::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details.sc-ic-menu{display:block}summary.sc-ic-menu{display:list-item}template.sc-ic-menu{display:none}[hidden].sc-ic-menu{display:none}html.sc-ic-menu,body.sc-ic-menu,div.sc-ic-menu,span.sc-ic-menu,applet.sc-ic-menu,object.sc-ic-menu,iframe.sc-ic-menu,h1.sc-ic-menu,h2.sc-ic-menu,h3.sc-ic-menu,h4.sc-ic-menu,h5.sc-ic-menu,h6.sc-ic-menu,p.sc-ic-menu,blockquote.sc-ic-menu,pre.sc-ic-menu,a.sc-ic-menu,abbr.sc-ic-menu,acronym.sc-ic-menu,address.sc-ic-menu,big.sc-ic-menu,cite.sc-ic-menu,code.sc-ic-menu,del.sc-ic-menu,dfn.sc-ic-menu,em.sc-ic-menu,img.sc-ic-menu,ins.sc-ic-menu,kbd.sc-ic-menu,q.sc-ic-menu,s.sc-ic-menu,samp.sc-ic-menu,small.sc-ic-menu,strike.sc-ic-menu,strong.sc-ic-menu,sub.sc-ic-menu,sup.sc-ic-menu,tt.sc-ic-menu,var.sc-ic-menu,b.sc-ic-menu,u.sc-ic-menu,i.sc-ic-menu,center.sc-ic-menu,dl.sc-ic-menu,dt.sc-ic-menu,dd.sc-ic-menu,ol.sc-ic-menu,ul.sc-ic-menu,li.sc-ic-menu,fieldset.sc-ic-menu,form.sc-ic-menu,label.sc-ic-menu,legend.sc-ic-menu,table.sc-ic-menu,caption.sc-ic-menu,tbody.sc-ic-menu,tfoot.sc-ic-menu,thead.sc-ic-menu,tr.sc-ic-menu,th.sc-ic-menu,td.sc-ic-menu,article.sc-ic-menu,aside.sc-ic-menu,canvas.sc-ic-menu,details.sc-ic-menu,embed.sc-ic-menu,figure.sc-ic-menu,figcaption.sc-ic-menu,footer.sc-ic-menu,header.sc-ic-menu,hgroup.sc-ic-menu,menu.sc-ic-menu,nav.sc-ic-menu,output.sc-ic-menu,ruby.sc-ic-menu,section.sc-ic-menu,summary.sc-ic-menu,time.sc-ic-menu,mark.sc-ic-menu,audio.sc-ic-menu,video.sc-ic-menu{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{transition:max-height var(--ic-transition-duration-slow)}}.sc-ic-menu-h{max-height:0;width:var(--menu-width, var(--input-width, 20rem));color:var(--menu-item-text-color, var(--ic-menu-list-option-text-color));--ic-typography-color:var(\n --menu-item-text-color,\n var(--ic-menu-list-option-text-color)\n );background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );position:relative;z-index:var(--ic-z-index-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:var(--ic-border-radius)}.ic-menu-open.sc-ic-menu-h:not(.ic-menu-no-focus):focus-within{box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline)}.ic-select-select-all-focused.sc-ic-menu-h{box-shadow:var(--ic-elevation-overlay) !important}#retry-button.sc-ic-menu::part(button){height:var(--ic-space-lg)}.small.sc-ic-menu #retry-button.sc-ic-menu::part(button){height:var(--ic-space-md)}.on-dialog.sc-ic-menu-h{inset:auto !important}.menu.sc-ic-menu{text-decoration:none;list-style-type:none;border-radius:1px;background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );visibility:hidden;max-height:0;overflow-y:hidden}.menu.sc-ic-menu:has(+.option-bar).sc-ic-menu{border-radius:0 0 1px 1px}.menu-scroll.sc-ic-menu{overflow-y:auto}.menu.sc-ic-menu:focus-visible{outline:none}.ic-menu-open.sc-ic-menu-h{max-height:none;display:flex;flex-direction:column-reverse;border:var(--ic-border-width) solid\n var(--menu-border-color, var(--ic-menu-border-color));transition:box-shadow var(--ic-easing-transition-fast)}.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{visibility:visible;max-height:calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs))}.ic-menu-open.sc-ic-menu-h .option-bar.sc-ic-menu{visibility:visible}.ic-menu-open.sc-ic-menu-h .select-all-button.sc-ic-menu{display:block}.ic-menu-full-width.sc-ic-menu-h{width:100%}.option.sc-ic-menu{padding:var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));cursor:pointer;display:flex;align-items:center;gap:var(--ic-space-xs)}.loading-option.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.option.sc-ic-menu:not(.loading-option){justify-content:space-between}.ic-menu-small.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px))}.ic-menu-large.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))}.option.sc-ic-menu:last-child{border-radius:0 0 1px 1px}.sc-ic-menu:not(.menu:has(+.option-bar)).sc-ic-menu .option.sc-ic-menu:first-child{border-radius:1px 1px 0 0}.option.sc-ic-menu:not(.disabled-option):hover{background-color:var(--ic-menu-list-option-hover-background-color)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-menu-list-option-pressed-background-color)}.option.sc-ic-menu:focus-visible{outline:var(--ic-hc-focus-outline)}.option.sc-ic-menu:not(.disabled-option) .option-description.sc-ic-menu{--ic-typography-color:var(\n --menu-item-desc-text-color,\n var(--ic-menu-list-option-description-text-color)\n )}.option.sc-ic-menu .option-label.sc-ic-menu{display:flex;flex-direction:row;align-items:top}.option.sc-ic-menu .option-label.sc-ic-menu ic-typography.sc-ic-menu{max-width:100%;word-wrap:break-word}.option.sc-ic-menu .option-element.sc-ic-menu{margin-top:var(--ic-space-xxs)}.option.sc-ic-menu .option-icon.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);margin-top:var(--ic-space-xxs);margin-right:var(--ic-space-xxs)}.option-text-container.sc-ic-menu{pointer-events:none;width:100%}.option-text-container.show-check-icon.sc-ic-menu{flex-grow:1}.option.loading-option.sc-ic-menu .option-text-container.sc-ic-menu{margin-left:calc(var(--ic-space-xs) + var(--ic-space-xxxs));color:var(--ic-menu-loading-list-option-text-color);--ic-typography-color:var(--ic-menu-loading-list-option-text-color)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-atoms-status-icon-error);align-self:center;display:flex;margin-right:calc(var(--ic-space-xxs) * 1.2)}.loading-error-info.sc-ic-menu{display:flex}.check-icon.sc-ic-menu{height:var(--ic-space-lg);min-width:var(--ic-space-lg);width:var(--ic-space-lg);pointer-events:none}.focused-option.sc-ic-menu .check-icon.sc-ic-menu *.sc-ic-menu{fill:currentcolor}.sc-ic-menu:first-child>.option-group-title.sc-ic-menu{padding:var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs)}.option-group-title.sc-ic-menu{padding:var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);--ic-typography-color:var(--ic-menu-option-group-label-text-color)}.ic-menu-small.sc-ic-menu-h .option-group-title.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs)}.last-recommended-option.sc-ic-menu{border-bottom:var(--ic-menu-last-recommended-option-border)}.disabled-option.sc-ic-menu{color:var(--ic-atoms-list-option-text-disabled-light);--ic-typography-color:var(--ic-atoms-list-option-text-disabled-light);cursor:default;pointer-events:none}.focused-option.sc-ic-menu,.focused-option.sc-ic-menu .option-description.sc-ic-menu{background-color:var(--ic-color-focus-inner) !important;color:var(--ic-atoms-list-option-text-focused-light) !important;--ic-typography-color:var(\n --ic-atoms-list-option-text-focused-light\n ) !important}.no-results.sc-ic-menu-h li.sc-ic-menu{cursor:no-drop}.no-results.sc-ic-menu-h li.sc-ic-menu:hover{background-color:transparent}.option-bar.sc-ic-menu{padding:var(--ic-space-xxs) var(--ic-space-xs);display:flex;align-items:center;justify-content:space-between;background-color:var(--ic-menu-option-bar-background-color);visibility:hidden;border-bottom:var(--ic-border-width) solid\n var(--ic-menu-option-bar-divider-color);border-radius:1px 1px 0 0}.option-bar.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.ic-menu-large.sc-ic-menu-h .option-bar.sc-ic-menu{padding:var(--ic-space-xs)}.select-all-button.sc-ic-menu{display:none}.select-all-button.sc-ic-menu:focus{z-index:calc(var(--ic-z-index-menu) + 1)}@media (forced-colors: active){.focused-option.sc-ic-menu{outline:none;border:0.125rem solid transparent}.disabled-option.sc-ic-menu{color:GrayText;--ic-typography-color:GrayText}}@media screen AND (max-width: 22rem){.sc-ic-menu-h{max-width:var(--menu-width, var(--input-width, 20rem));width:100%}}@media (prefers-reduced-motion: reduce){.ic-menu-open.sc-ic-menu-h{transition:none}}";
1472
1523
  const IcMenuStyle0 = icMenuCss;
1473
1524
 
1474
1525
  const Menu = class {
@@ -1550,6 +1601,30 @@ const Menu = class {
1550
1601
  * The custom name for the value field for IcMenuOption.
1551
1602
  */
1552
1603
  this.valueField = "value";
1604
+ /**
1605
+ * @internal If `true`, allows the menu to receive focus when opened.
1606
+ */
1607
+ this.allowMenuFocus = true;
1608
+ this.emitOptionId = (index) => {
1609
+ let option;
1610
+ if (index >= 0 && index < this.ungroupedOptions.length) {
1611
+ option = this.ungroupedOptions[index];
1612
+ }
1613
+ else if (this.ungroupedOptions.length > 0) {
1614
+ option =
1615
+ index < 0
1616
+ ? this.ungroupedOptions[this.ungroupedOptions.length - 1]
1617
+ : this.ungroupedOptions[0];
1618
+ }
1619
+ if (option) {
1620
+ this.menuOptionId.emit({
1621
+ optionId: this.getOptionId(option[this.valueField]),
1622
+ });
1623
+ }
1624
+ else {
1625
+ this.menuOptionId.emit({ optionId: undefined });
1626
+ }
1627
+ };
1553
1628
  this.handleClearListener = () => {
1554
1629
  this.optionHighlighted = "";
1555
1630
  };
@@ -1562,7 +1637,9 @@ const Menu = class {
1562
1637
  this.menuStateChange.emit({ open, focusInput });
1563
1638
  if (!open) {
1564
1639
  if (focusInput !== false) {
1565
- (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
1640
+ if (this.allowMenuFocus) {
1641
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
1642
+ }
1566
1643
  this.preventClickOpen = false;
1567
1644
  }
1568
1645
  // Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed
@@ -1621,16 +1698,42 @@ const Menu = class {
1621
1698
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
1622
1699
  this.keyboardNav = false;
1623
1700
  switch (event.key) {
1624
- case "ArrowDown":
1701
+ case "ArrowDown": {
1625
1702
  this.keyboardNav = true;
1626
1703
  this.arrowBehaviour(event);
1704
+ const nextIndex = selectedOptionIndex < this.ungroupedOptions.length - 1
1705
+ ? selectedOptionIndex + 1
1706
+ : 0;
1627
1707
  this.setNextOptionValue(selectedOptionIndex);
1708
+ this.emitOptionId(nextIndex);
1628
1709
  break;
1629
- case "ArrowUp":
1710
+ }
1711
+ case "ArrowUp": {
1630
1712
  this.keyboardNav = true;
1631
1713
  this.arrowBehaviour(event);
1714
+ const prevIndex = selectedOptionIndex > 0
1715
+ ? selectedOptionIndex - 1
1716
+ : this.ungroupedOptions.length - 1;
1632
1717
  this.setPreviousOptionValue(selectedOptionIndex);
1718
+ this.emitOptionId(prevIndex);
1719
+ break;
1720
+ }
1721
+ case "Home": {
1722
+ this.keyboardNav = true;
1723
+ event.preventDefault();
1724
+ this.arrowBehaviour(event);
1725
+ this.setNextOptionValue(-1);
1726
+ this.emitOptionId(0);
1727
+ break;
1728
+ }
1729
+ case "End": {
1730
+ this.keyboardNav = true;
1731
+ event.preventDefault();
1732
+ this.arrowBehaviour(event);
1733
+ this.setPreviousOptionValue(this.ungroupedOptions.length);
1734
+ this.emitOptionId(this.ungroupedOptions.length - 1);
1633
1735
  break;
1736
+ }
1634
1737
  case " ":
1635
1738
  case "Enter":
1636
1739
  if (event.target.id !== this.CLEAR_BUTTON_ID) {
@@ -1830,14 +1933,15 @@ const Menu = class {
1830
1933
  if (this.open) {
1831
1934
  event.stopImmediatePropagation();
1832
1935
  }
1833
- this.handleMenuChange(false);
1936
+ this.handleMenuChange(false, !this.allowMenuFocus);
1834
1937
  this.menuOptionId.emit({ optionId: undefined });
1835
1938
  break;
1836
1939
  case "a":
1837
1940
  // Checks if Cmd (meta) key is pressed if Mac device (while excluding meta key on Windows)
1838
1941
  // Otherwise, if a different OS, checks Ctrl key
1839
- if ((isMacDevice() && event.metaKey) ||
1840
- (!isMacDevice() && event.ctrlKey)) {
1942
+ if (this.multiSelect &&
1943
+ ((isMacDevice() && event.metaKey) ||
1944
+ (!isMacDevice() && event.ctrlKey))) {
1841
1945
  this.emitSelectAllEvents();
1842
1946
  this.lastOptionFocused = null;
1843
1947
  this.lastOptionSelected = null;
@@ -1942,14 +2046,6 @@ const Menu = class {
1942
2046
  this.handleMouseDown = (event) => {
1943
2047
  event.preventDefault();
1944
2048
  };
1945
- this.handleMenuKeyDown = (event) => {
1946
- if (this.activationType === "automatic") {
1947
- this.autoSetValueOnMenuKeyDown(event);
1948
- }
1949
- else if (this.activationType === "manual" && !this.searchBar) {
1950
- this.manualSetInputValueKeyboardOpen(event);
1951
- }
1952
- };
1953
2049
  this.handleMenuKeyUp = (event) => {
1954
2050
  if (event.key === "Tab" && event.shiftKey) {
1955
2051
  this.preventClickOpen = false;
@@ -1965,15 +2061,19 @@ const Menu = class {
1965
2061
  this.handleSelectAllClick = () => {
1966
2062
  var _a;
1967
2063
  this.keyboardNav = false;
1968
- (_a = this.menu) === null || _a === void 0 ? void 0 : _a.focus();
2064
+ if (this.allowMenuFocus) {
2065
+ (_a = this.menu) === null || _a === void 0 ? void 0 : _a.focus();
2066
+ }
1969
2067
  this.emitSelectAllEvents();
1970
2068
  this.lastOptionFocused = null;
1971
2069
  this.lastOptionSelected = null;
1972
2070
  };
1973
2071
  this.handleSelectAllBlur = (event) => {
1974
- var _a;
2072
+ var _a, _b, _c;
1975
2073
  this.host.classList.remove("ic-select-select-all-focused");
1976
- if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.contains(event.relatedTarget))) {
2074
+ const relatedTarget = event.relatedTarget;
2075
+ if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget)) &&
2076
+ !((_c = (_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.contains(relatedTarget))) {
1977
2077
  this.handleMenuChange(false, false);
1978
2078
  }
1979
2079
  };
@@ -2057,7 +2157,7 @@ const Menu = class {
2057
2157
  // (i.e. you don't have to press Enter select an option - just focus on it)
2058
2158
  // and menu is focused
2059
2159
  this.autoSetValueOnMenuKeyDown = (event) => {
2060
- var _a, _b;
2160
+ var _a;
2061
2161
  event.cancelBubble = true;
2062
2162
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
2063
2163
  const isSearchableSelect = !!this.inputEl && this.inputEl.tagName === "INPUT";
@@ -2070,6 +2170,9 @@ const Menu = class {
2070
2170
  if (!this.hasTimedOut) {
2071
2171
  event.preventDefault();
2072
2172
  this.setPreviousOptionValue(selectedOptionIndex);
2173
+ this.emitOptionId(selectedOptionIndex > 0
2174
+ ? selectedOptionIndex - 1
2175
+ : this.ungroupedOptions.length - 1);
2073
2176
  this.keyboardNav = true;
2074
2177
  }
2075
2178
  break;
@@ -2077,6 +2180,9 @@ const Menu = class {
2077
2180
  if (!this.hasTimedOut) {
2078
2181
  event.preventDefault();
2079
2182
  this.setNextOptionValue(selectedOptionIndex);
2183
+ this.emitOptionId(selectedOptionIndex < this.ungroupedOptions.length - 1
2184
+ ? selectedOptionIndex + 1
2185
+ : 0);
2080
2186
  this.keyboardNav = true;
2081
2187
  }
2082
2188
  break;
@@ -2084,30 +2190,29 @@ const Menu = class {
2084
2190
  this.menuOptionSelect.emit({
2085
2191
  value: this.ungroupedOptions[0][this.valueField],
2086
2192
  });
2193
+ this.emitOptionId(0);
2087
2194
  this.keyboardNav = true;
2088
2195
  break;
2089
2196
  case "End":
2090
2197
  this.menuOptionSelect.emit({
2091
2198
  value: this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField],
2092
2199
  });
2200
+ this.emitOptionId(this.ungroupedOptions.length - 1);
2093
2201
  this.keyboardNav = true;
2094
2202
  break;
2095
2203
  case "Enter":
2096
2204
  !this.hasTimedOut && this.handleMenuChange(false);
2097
2205
  break;
2098
2206
  case "Escape":
2099
- this.handleMenuChange(false);
2207
+ this.handleMenuChange(false, !this.allowMenuFocus);
2100
2208
  break;
2101
2209
  case "Backspace":
2102
- if (isSearchableSelect) {
2103
- (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
2104
- }
2105
2210
  break;
2106
2211
  case "Shift":
2107
2212
  break;
2108
2213
  default:
2109
2214
  if (isSearchableSelect && event.key !== "Tab" && !this.hasTimedOut) {
2110
- (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
2215
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
2111
2216
  }
2112
2217
  if (event.key.length === 1) {
2113
2218
  this.keyboardNav = true;
@@ -2146,21 +2251,28 @@ const Menu = class {
2146
2251
  return menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
2147
2252
  };
2148
2253
  this.isManualMode = this.activationType === "manual";
2149
- this.scrollToSelected = (menu) => {
2254
+ // Scroll to highlighted option, or selected option if no highlighted option (i.e. when the menu opens)
2255
+ this.scrollToSelected = () => {
2150
2256
  var _a;
2151
- const selectedOption = this.selectOnEnter
2257
+ const menu = this.menu;
2258
+ const selectedOption = this.selectOnEnter || this.searchableSelect || this.multiSelect
2152
2259
  ? this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`)
2153
2260
  : menu.querySelector(".option[aria-selected='true']");
2154
2261
  if (selectedOption) {
2155
- const elTop = selectedOption.offsetTop + selectedOption.offsetHeight;
2156
- if (elTop > menu.scrollTop + menu.offsetHeight ||
2157
- elTop < menu.scrollTop + menu.offsetHeight) {
2158
- menu.scrollTop = selectedOption.offsetTop;
2262
+ const menuRect = menu.getBoundingClientRect();
2263
+ const optionRect = selectedOption.getBoundingClientRect();
2264
+ if (optionRect.top < menuRect.top) {
2265
+ menu.scrollTop -= menuRect.top - optionRect.top;
2266
+ }
2267
+ else if (optionRect.bottom > menuRect.bottom) {
2268
+ menu.scrollTop += optionRect.bottom - menuRect.bottom;
2159
2269
  }
2160
2270
  // 'aria-activedescendant' affects screen reader focus
2161
2271
  // https://www.w3.org/TR/2017/WD-wai-aria-practices-1.1-20170628/#kbd_focus_activedescendant
2162
2272
  (_a = this.menu) === null || _a === void 0 ? void 0 : _a.setAttribute(this.ACTIVE_DESCENDANT, selectedOption.id);
2163
- selectedOption.focus();
2273
+ if (this.allowMenuFocus) {
2274
+ selectedOption.focus();
2275
+ }
2164
2276
  }
2165
2277
  };
2166
2278
  // Set 'ungroupedOptions' variable and emit its value
@@ -2203,7 +2315,7 @@ const Menu = class {
2203
2315
  "show-check-icon": showCheckIcon,
2204
2316
  } }, (option.icon || !option.hideLabel) && (h("div", { class: "option-label" }, option.icon && (h("div", { class: "option-icon", innerHTML: sanitizeHTMLIconString(option.icon), "aria-hidden": "true" })), !option.hideLabel && (h("ic-typography", { variant: "body", "aria-hidden": "true" }, option[this.labelField])))), option.description && (h("ic-typography", { id: `${this.getOptionId(option[this.valueField])}-description`, class: "option-description", variant: "caption", "aria-hidden": "true" }, h("p", null, option.description))), option.element && (h("div", { class: {
2205
2317
  "option-element": option.icon || !option.hideLabel || option.description,
2206
- }, innerHTML: sanitizeHTMLString(option.element.component), "aria-hidden": "true" }))), showCheckIcon && h("span", { class: "check-icon", innerHTML: Check })));
2318
+ }, innerHTML: sanitizeHTMLString(option.element.component), "aria-hidden": "true" }))), showCheckIcon && (h("span", { class: "check-icon", innerHTML: Check, "aria-hidden": "true" }))));
2207
2319
  };
2208
2320
  this.displayOption = (option, selected, index, parentOption) => {
2209
2321
  var _a;
@@ -2220,11 +2332,13 @@ const Menu = class {
2220
2332
  "disabled-option": !!option.disabled,
2221
2333
  "loading-option": !!option.loading,
2222
2334
  timeout: !!option.timedOut,
2223
- }, role: "option", tabindex: open &&
2224
- (selected || option[this.valueField] === optionHighlighted) &&
2225
- keyboardNav
2226
- ? "0"
2227
- : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": selected ? "true" : "false", "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading
2335
+ }, role: "option", tabindex: !this.allowMenuFocus
2336
+ ? "-1"
2337
+ : open &&
2338
+ (selected || option[this.valueField] === optionHighlighted) &&
2339
+ keyboardNav
2340
+ ? "0"
2341
+ : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": selected ? "true" : "false", "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading
2228
2342
  ? this.handleOptionClick
2229
2343
  : undefined, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, "data-value": option[this.valueField], "data-label": option[this.labelField] }, ((_a = option.htmlProps) !== null && _a !== void 0 ? _a : {})), option.timedOut ? (h(Fragment, null, h("div", { class: "loading-error-info" }, h("svg", { class: "error-icon-svg", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#000000" }, h("title", null, "Error"), h("g", null, h("path", { d: "M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41" }))), h("ic-typography", { variant: "label" }, option[this.labelField])), h("ic-button", { size: "small", variant: "tertiary", onClick: this.handleRetry, onKeyDown: this.handleRetryKeyDown, onBlur: this.handleTimeoutBlur, id: "retry-button" }, "Retry"))) : (this.optionContent(option, selected))));
2230
2344
  };
@@ -2286,10 +2400,7 @@ const Menu = class {
2286
2400
  inputValueInOptions &&
2287
2401
  this.autofocusOnSelected &&
2288
2402
  !this.searchableSelect) {
2289
- this.scrollToSelected(this.menu);
2290
- }
2291
- else if (this.selectOnEnter) {
2292
- this.menu.focus();
2403
+ this.scrollToSelected();
2293
2404
  }
2294
2405
  else if (!!this.optionHighlighted &&
2295
2406
  !this.focusFromSearchKeypress &&
@@ -2297,15 +2408,19 @@ const Menu = class {
2297
2408
  const highlightedEl = this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`);
2298
2409
  if (highlightedEl) {
2299
2410
  this.menu.setAttribute(this.ACTIVE_DESCENDANT, highlightedEl.id);
2300
- highlightedEl.focus();
2411
+ if (this.allowMenuFocus) {
2412
+ highlightedEl.focus();
2413
+ }
2301
2414
  }
2302
2415
  }
2303
- else if (this.inputEl && this.inputEl.tagName !== "INPUT") {
2416
+ else if (this.inputEl &&
2417
+ this.inputEl.tagName !== "INPUT" &&
2418
+ this.allowMenuFocus) {
2304
2419
  this.menu.focus();
2305
2420
  }
2306
2421
  }
2307
- if (this.menu && this.open && !this.value && this.selectOnEnter) {
2308
- this.scrollToSelected(this.menu);
2422
+ if (this.menu && this.open) {
2423
+ this.scrollToSelected();
2309
2424
  }
2310
2425
  this.preventMenuFocus = false;
2311
2426
  }
@@ -2340,6 +2455,19 @@ const Menu = class {
2340
2455
  this.manualSetInputValueKeyboardOpen(event);
2341
2456
  }
2342
2457
  }
2458
+ /**
2459
+ * Used alongside activationType
2460
+ * If menu is open and user navigates options via keyboard, emit optionSelect custom event.
2461
+ * @param {KeyboardEvent} event The keyboard event which is available when handleMenuKeydown is invoked.
2462
+ */
2463
+ async handleMenuKeyDown(event) {
2464
+ if (this.activationType === "automatic") {
2465
+ this.autoSetValueOnMenuKeyDown(event);
2466
+ }
2467
+ else if (this.activationType === "manual" && !this.searchBar) {
2468
+ this.manualSetInputValueKeyboardOpen(event);
2469
+ }
2470
+ }
2343
2471
  /**
2344
2472
  * @internal Used to highlight the first option in the menu.
2345
2473
  */
@@ -2393,7 +2521,7 @@ const Menu = class {
2393
2521
  const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, parentEl, SEARCH_BAR_TAG, multiSelect, } = this;
2394
2522
  const selectAllButtonText = `${(value === null || value === void 0 ? void 0 : value.length) === this.ungroupedOptions.length ? "Clear" : "Select"} all`;
2395
2523
  const hasNoResults = this.host.classList.contains("no-results");
2396
- return (h(Host, { key: 'a2934ccf16727c0f37d89f77186a58b5ba8e25e1', class: {
2524
+ return (h(Host, { key: '8b0e06f14c1979c3658e6e13fca3e4c6828c795d', class: {
2397
2525
  "ic-menu-full-width": !!fullWidth,
2398
2526
  "ic-menu-no-focus": ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === "INPUT" &&
2399
2527
  (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) !== SEARCH_BAR_TAG) ||
@@ -2402,12 +2530,16 @@ const Menu = class {
2402
2530
  [`ic-menu-${size}`]: true,
2403
2531
  "ic-menu-open": open && options.length !== 0,
2404
2532
  "ic-menu-multiple": multiSelect,
2405
- } }, options.length !== 0 && (h("ul", { key: '7ba54b5a6c29e2ca30f893806d9ee076324469bf', id: menuId, class: "menu", role: "listbox", "aria-label": `${inputLabel} pop-up`, "aria-multiselectable": multiSelect ? "true" : "false", tabindex: open &&
2406
- !keyboardNav &&
2407
- ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ||
2408
- (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === SEARCH_BAR_TAG)
2409
- ? "0"
2410
- : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index) => {
2533
+ } }, options.length !== 0 && (h("ul", { key: '5af8ebaf798f09d020cab17adf4ef04e0fe2f9d4', id: menuId, class: "menu", role: "listbox", "aria-label": `${inputLabel} pop-up`, "aria-multiselectable": multiSelect ? "true" : "false", "aria-activedescendant": this.optionHighlighted
2534
+ ? this.getOptionId(this.optionHighlighted)
2535
+ : undefined, tabindex: !this.allowMenuFocus
2536
+ ? "-1"
2537
+ : open &&
2538
+ !keyboardNav &&
2539
+ ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ||
2540
+ (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === SEARCH_BAR_TAG)
2541
+ ? "0"
2542
+ : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index) => {
2411
2543
  if (option.children) {
2412
2544
  if (option.children.length > 0) {
2413
2545
  return (h("div", null, h("ic-typography", { class: "option-group-title", role: "presentation", variant: "subtitle-small" }, h("p", null, option[this.labelField])), option.children.map((childOption) => childOption[this.labelField] &&
@@ -2430,7 +2562,7 @@ const Menu = class {
2430
2562
  multiSelect &&
2431
2563
  !isLoading &&
2432
2564
  !hasTimedOut &&
2433
- !hasNoResults && (h("div", { key: '0cdb01a79cabee7e3a18d16d0372b67a759b0af4', class: "option-bar" }, h("ic-typography", { key: '05d91feb3af7fb333972edf4dece4d337af15de4' }, h("p", { key: 'e7238b5cf18695dd705ad1fb71c1ab72dbde3fc2' }, `${value ? value.length : 0}/${getOptionsWithoutGroupTitlesCount(this.options)} selected`)), h("ic-button", { key: '4aaa496abb80408776573f5ae26cf1adf62d7ed3', 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)))));
2565
+ !hasNoResults && (h("div", { key: 'f1a670781a41df910d8d55d2a956e062faf5a425', class: "option-bar" }, h("ic-typography", { key: '9687b26a0a275e9a6cff54180f2962d836ef4262' }, h("p", { key: '33e219ebba6ad3eb4ed60d77d9ed86551cb93a48' }, `${value ? value.length : 0}/${getOptionsWithoutGroupTitlesCount(this.options)} selected`)), h("ic-button", { key: '05e39e54ef176fb303ba59dcc3b91745cf38deef', 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)))));
2434
2566
  }
2435
2567
  get host() { return getElement(this); }
2436
2568
  static get watchers() { return {