@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
@@ -11,7 +11,7 @@ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof win
11
11
 
12
12
  var purify = {exports: {}};
13
13
 
14
- /*! @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 */
14
+ /*! @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 */
15
15
 
16
16
  (function (module, exports) {
17
17
  (function (global, factory) {
@@ -44,12 +44,18 @@ var purify = {exports: {}};
44
44
  };
45
45
  }
46
46
  if (!apply) {
47
- apply = function apply(fun, thisValue, args) {
48
- return fun.apply(thisValue, args);
47
+ apply = function apply(func, thisArg) {
48
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
49
+ args[_key - 2] = arguments[_key];
50
+ }
51
+ return func.apply(thisArg, args);
49
52
  };
50
53
  }
51
54
  if (!construct) {
52
- construct = function construct(Func, args) {
55
+ construct = function construct(Func) {
56
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
57
+ args[_key2 - 1] = arguments[_key2];
58
+ }
53
59
  return new Func(...args);
54
60
  };
55
61
  }
@@ -78,8 +84,8 @@ var purify = {exports: {}};
78
84
  if (thisArg instanceof RegExp) {
79
85
  thisArg.lastIndex = 0;
80
86
  }
81
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
82
- args[_key - 1] = arguments[_key];
87
+ for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
88
+ args[_key3 - 1] = arguments[_key3];
83
89
  }
84
90
  return apply(func, thisArg, args);
85
91
  };
@@ -90,12 +96,12 @@ var purify = {exports: {}};
90
96
  * @param func - The constructor function to be wrapped and called.
91
97
  * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
92
98
  */
93
- function unconstruct(func) {
99
+ function unconstruct(Func) {
94
100
  return function () {
95
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
96
- args[_key2] = arguments[_key2];
101
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
102
+ args[_key4] = arguments[_key4];
97
103
  }
98
- return construct(func, args);
104
+ return construct(Func, args);
99
105
  };
100
106
  }
101
107
  /**
@@ -194,8 +200,8 @@ var purify = {exports: {}};
194
200
  return fallbackValue;
195
201
  }
196
202
 
197
- 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']);
198
- 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']);
203
+ 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']);
204
+ 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']);
199
205
  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']);
200
206
  // List of SVG elements that are disallowed by default.
201
207
  // We still need to know them so that we can do namespace
@@ -208,8 +214,8 @@ var purify = {exports: {}};
208
214
  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
209
215
  const text = freeze(['#text']);
210
216
 
211
- 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']);
212
- 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']);
217
+ 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']);
218
+ 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']);
213
219
  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']);
214
220
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
215
221
 
@@ -316,7 +322,7 @@ var purify = {exports: {}};
316
322
  function createDOMPurify() {
317
323
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
318
324
  const DOMPurify = root => createDOMPurify(root);
319
- DOMPurify.version = '3.2.6';
325
+ DOMPurify.version = '3.3.3';
320
326
  DOMPurify.removed = [];
321
327
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
322
328
  // Not running in a browser, provide a factory function
@@ -427,6 +433,21 @@ var purify = {exports: {}};
427
433
  let FORBID_TAGS = null;
428
434
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
429
435
  let FORBID_ATTR = null;
436
+ /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
437
+ const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
438
+ tagCheck: {
439
+ writable: true,
440
+ configurable: false,
441
+ enumerable: true,
442
+ value: null
443
+ },
444
+ attributeCheck: {
445
+ writable: true,
446
+ configurable: false,
447
+ enumerable: true,
448
+ value: null
449
+ }
450
+ }));
430
451
  /* Decide if ARIA attributes are okay */
431
452
  let ALLOW_ARIA_ATTR = true;
432
453
  /* Decide if custom data attributes are okay */
@@ -596,7 +617,7 @@ var purify = {exports: {}};
596
617
  /* Parse profile info */
597
618
  if (USE_PROFILES) {
598
619
  ALLOWED_TAGS = addToSet({}, text);
599
- ALLOWED_ATTR = [];
620
+ ALLOWED_ATTR = create(null);
600
621
  if (USE_PROFILES.html === true) {
601
622
  addToSet(ALLOWED_TAGS, html$1);
602
623
  addToSet(ALLOWED_ATTR, html);
@@ -617,18 +638,33 @@ var purify = {exports: {}};
617
638
  addToSet(ALLOWED_ATTR, xml);
618
639
  }
619
640
  }
641
+ /* Prevent function-based ADD_ATTR / ADD_TAGS from leaking across calls */
642
+ if (!objectHasOwnProperty(cfg, 'ADD_TAGS')) {
643
+ EXTRA_ELEMENT_HANDLING.tagCheck = null;
644
+ }
645
+ if (!objectHasOwnProperty(cfg, 'ADD_ATTR')) {
646
+ EXTRA_ELEMENT_HANDLING.attributeCheck = null;
647
+ }
620
648
  /* Merge configuration parameters */
621
649
  if (cfg.ADD_TAGS) {
622
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
623
- ALLOWED_TAGS = clone(ALLOWED_TAGS);
650
+ if (typeof cfg.ADD_TAGS === 'function') {
651
+ EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
652
+ } else {
653
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
654
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
655
+ }
656
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
624
657
  }
625
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
626
658
  }
627
659
  if (cfg.ADD_ATTR) {
628
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
629
- ALLOWED_ATTR = clone(ALLOWED_ATTR);
660
+ if (typeof cfg.ADD_ATTR === 'function') {
661
+ EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
662
+ } else {
663
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
664
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
665
+ }
666
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
630
667
  }
631
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
632
668
  }
633
669
  if (cfg.ADD_URI_SAFE_ATTR) {
634
670
  addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
@@ -639,6 +675,12 @@ var purify = {exports: {}};
639
675
  }
640
676
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
641
677
  }
678
+ if (cfg.ADD_FORBID_CONTENTS) {
679
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
680
+ FORBID_CONTENTS = clone(FORBID_CONTENTS);
681
+ }
682
+ addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
683
+ }
642
684
  /* Add #text in case KEEP_CONTENT is set to true */
643
685
  if (KEEP_CONTENT) {
644
686
  ALLOWED_TAGS['#text'] = true;
@@ -936,7 +978,7 @@ var purify = {exports: {}};
936
978
  return true;
937
979
  }
938
980
  /* Remove element if anything forbids its presence */
939
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
981
+ if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
940
982
  /* Check if we have a custom element to handle */
941
983
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
942
984
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -1000,6 +1042,10 @@ var purify = {exports: {}};
1000
1042
  */
1001
1043
  // eslint-disable-next-line complexity
1002
1044
  const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
1045
+ /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */
1046
+ if (FORBID_ATTR[lcName]) {
1047
+ return false;
1048
+ }
1003
1049
  /* Make sure attribute cannot clobber */
1004
1050
  if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
1005
1051
  return false;
@@ -1008,12 +1054,12 @@ var purify = {exports: {}};
1008
1054
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
1009
1055
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
1010
1056
  We don't need to check the value; it's always URI safe. */
1011
- 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]) {
1057
+ 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]) {
1012
1058
  if (
1013
1059
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
1014
1060
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
1015
1061
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
1016
- _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)) ||
1062
+ _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)) ||
1017
1063
  // Alternative, second condition checks if it's an `is`-attribute, AND
1018
1064
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
1019
1065
  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 {
@@ -1092,7 +1138,12 @@ var purify = {exports: {}};
1092
1138
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
1093
1139
  }
1094
1140
  /* Work around a security issue with comments inside attributes */
1095
- if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
1141
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {
1142
+ _removeAttribute(name, currentNode);
1143
+ continue;
1144
+ }
1145
+ /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
1146
+ if (lcName === 'attributename' && stringMatch(value, 'href')) {
1096
1147
  _removeAttribute(name, currentNode);
1097
1148
  continue;
1098
1149
  }
@@ -1382,7 +1433,7 @@ const sanitizeHTMLIconString = (html) => {
1382
1433
  return purifier.sanitize(html, getCustomElementHandling(false));
1383
1434
  };
1384
1435
 
1385
- 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}}";
1436
+ 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}}";
1386
1437
  const IcMenuStyle0 = icMenuCss;
1387
1438
 
1388
1439
  const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
@@ -1465,6 +1516,30 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1465
1516
  * The custom name for the value field for IcMenuOption.
1466
1517
  */
1467
1518
  this.valueField = "value";
1519
+ /**
1520
+ * @internal If `true`, allows the menu to receive focus when opened.
1521
+ */
1522
+ this.allowMenuFocus = true;
1523
+ this.emitOptionId = (index) => {
1524
+ let option;
1525
+ if (index >= 0 && index < this.ungroupedOptions.length) {
1526
+ option = this.ungroupedOptions[index];
1527
+ }
1528
+ else if (this.ungroupedOptions.length > 0) {
1529
+ option =
1530
+ index < 0
1531
+ ? this.ungroupedOptions[this.ungroupedOptions.length - 1]
1532
+ : this.ungroupedOptions[0];
1533
+ }
1534
+ if (option) {
1535
+ this.menuOptionId.emit({
1536
+ optionId: this.getOptionId(option[this.valueField]),
1537
+ });
1538
+ }
1539
+ else {
1540
+ this.menuOptionId.emit({ optionId: undefined });
1541
+ }
1542
+ };
1468
1543
  this.handleClearListener = () => {
1469
1544
  this.optionHighlighted = "";
1470
1545
  };
@@ -1477,7 +1552,9 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1477
1552
  this.menuStateChange.emit({ open, focusInput });
1478
1553
  if (!open) {
1479
1554
  if (focusInput !== false) {
1480
- (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
1555
+ if (this.allowMenuFocus) {
1556
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
1557
+ }
1481
1558
  this.preventClickOpen = false;
1482
1559
  }
1483
1560
  // Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed
@@ -1536,16 +1613,42 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1536
1613
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
1537
1614
  this.keyboardNav = false;
1538
1615
  switch (event.key) {
1539
- case "ArrowDown":
1616
+ case "ArrowDown": {
1540
1617
  this.keyboardNav = true;
1541
1618
  this.arrowBehaviour(event);
1619
+ const nextIndex = selectedOptionIndex < this.ungroupedOptions.length - 1
1620
+ ? selectedOptionIndex + 1
1621
+ : 0;
1542
1622
  this.setNextOptionValue(selectedOptionIndex);
1623
+ this.emitOptionId(nextIndex);
1543
1624
  break;
1544
- case "ArrowUp":
1625
+ }
1626
+ case "ArrowUp": {
1545
1627
  this.keyboardNav = true;
1546
1628
  this.arrowBehaviour(event);
1629
+ const prevIndex = selectedOptionIndex > 0
1630
+ ? selectedOptionIndex - 1
1631
+ : this.ungroupedOptions.length - 1;
1547
1632
  this.setPreviousOptionValue(selectedOptionIndex);
1633
+ this.emitOptionId(prevIndex);
1634
+ break;
1635
+ }
1636
+ case "Home": {
1637
+ this.keyboardNav = true;
1638
+ event.preventDefault();
1639
+ this.arrowBehaviour(event);
1640
+ this.setNextOptionValue(-1);
1641
+ this.emitOptionId(0);
1642
+ break;
1643
+ }
1644
+ case "End": {
1645
+ this.keyboardNav = true;
1646
+ event.preventDefault();
1647
+ this.arrowBehaviour(event);
1648
+ this.setPreviousOptionValue(this.ungroupedOptions.length);
1649
+ this.emitOptionId(this.ungroupedOptions.length - 1);
1548
1650
  break;
1651
+ }
1549
1652
  case " ":
1550
1653
  case "Enter":
1551
1654
  if (event.target.id !== this.CLEAR_BUTTON_ID) {
@@ -1745,14 +1848,15 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1745
1848
  if (this.open) {
1746
1849
  event.stopImmediatePropagation();
1747
1850
  }
1748
- this.handleMenuChange(false);
1851
+ this.handleMenuChange(false, !this.allowMenuFocus);
1749
1852
  this.menuOptionId.emit({ optionId: undefined });
1750
1853
  break;
1751
1854
  case "a":
1752
1855
  // Checks if Cmd (meta) key is pressed if Mac device (while excluding meta key on Windows)
1753
1856
  // Otherwise, if a different OS, checks Ctrl key
1754
- if ((isMacDevice() && event.metaKey) ||
1755
- (!isMacDevice() && event.ctrlKey)) {
1857
+ if (this.multiSelect &&
1858
+ ((isMacDevice() && event.metaKey) ||
1859
+ (!isMacDevice() && event.ctrlKey))) {
1756
1860
  this.emitSelectAllEvents();
1757
1861
  this.lastOptionFocused = null;
1758
1862
  this.lastOptionSelected = null;
@@ -1857,14 +1961,6 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1857
1961
  this.handleMouseDown = (event) => {
1858
1962
  event.preventDefault();
1859
1963
  };
1860
- this.handleMenuKeyDown = (event) => {
1861
- if (this.activationType === "automatic") {
1862
- this.autoSetValueOnMenuKeyDown(event);
1863
- }
1864
- else if (this.activationType === "manual" && !this.searchBar) {
1865
- this.manualSetInputValueKeyboardOpen(event);
1866
- }
1867
- };
1868
1964
  this.handleMenuKeyUp = (event) => {
1869
1965
  if (event.key === "Tab" && event.shiftKey) {
1870
1966
  this.preventClickOpen = false;
@@ -1880,15 +1976,19 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1880
1976
  this.handleSelectAllClick = () => {
1881
1977
  var _a;
1882
1978
  this.keyboardNav = false;
1883
- (_a = this.menu) === null || _a === void 0 ? void 0 : _a.focus();
1979
+ if (this.allowMenuFocus) {
1980
+ (_a = this.menu) === null || _a === void 0 ? void 0 : _a.focus();
1981
+ }
1884
1982
  this.emitSelectAllEvents();
1885
1983
  this.lastOptionFocused = null;
1886
1984
  this.lastOptionSelected = null;
1887
1985
  };
1888
1986
  this.handleSelectAllBlur = (event) => {
1889
- var _a;
1987
+ var _a, _b, _c;
1890
1988
  this.host.classList.remove("ic-select-select-all-focused");
1891
- if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.contains(event.relatedTarget))) {
1989
+ const relatedTarget = event.relatedTarget;
1990
+ if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget)) &&
1991
+ !((_c = (_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.contains(relatedTarget))) {
1892
1992
  this.handleMenuChange(false, false);
1893
1993
  }
1894
1994
  };
@@ -1972,7 +2072,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1972
2072
  // (i.e. you don't have to press Enter select an option - just focus on it)
1973
2073
  // and menu is focused
1974
2074
  this.autoSetValueOnMenuKeyDown = (event) => {
1975
- var _a, _b;
2075
+ var _a;
1976
2076
  event.cancelBubble = true;
1977
2077
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
1978
2078
  const isSearchableSelect = !!this.inputEl && this.inputEl.tagName === "INPUT";
@@ -1985,6 +2085,9 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1985
2085
  if (!this.hasTimedOut) {
1986
2086
  event.preventDefault();
1987
2087
  this.setPreviousOptionValue(selectedOptionIndex);
2088
+ this.emitOptionId(selectedOptionIndex > 0
2089
+ ? selectedOptionIndex - 1
2090
+ : this.ungroupedOptions.length - 1);
1988
2091
  this.keyboardNav = true;
1989
2092
  }
1990
2093
  break;
@@ -1992,6 +2095,9 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1992
2095
  if (!this.hasTimedOut) {
1993
2096
  event.preventDefault();
1994
2097
  this.setNextOptionValue(selectedOptionIndex);
2098
+ this.emitOptionId(selectedOptionIndex < this.ungroupedOptions.length - 1
2099
+ ? selectedOptionIndex + 1
2100
+ : 0);
1995
2101
  this.keyboardNav = true;
1996
2102
  }
1997
2103
  break;
@@ -1999,30 +2105,29 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
1999
2105
  this.menuOptionSelect.emit({
2000
2106
  value: this.ungroupedOptions[0][this.valueField],
2001
2107
  });
2108
+ this.emitOptionId(0);
2002
2109
  this.keyboardNav = true;
2003
2110
  break;
2004
2111
  case "End":
2005
2112
  this.menuOptionSelect.emit({
2006
2113
  value: this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField],
2007
2114
  });
2115
+ this.emitOptionId(this.ungroupedOptions.length - 1);
2008
2116
  this.keyboardNav = true;
2009
2117
  break;
2010
2118
  case "Enter":
2011
2119
  !this.hasTimedOut && this.handleMenuChange(false);
2012
2120
  break;
2013
2121
  case "Escape":
2014
- this.handleMenuChange(false);
2122
+ this.handleMenuChange(false, !this.allowMenuFocus);
2015
2123
  break;
2016
2124
  case "Backspace":
2017
- if (isSearchableSelect) {
2018
- (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
2019
- }
2020
2125
  break;
2021
2126
  case "Shift":
2022
2127
  break;
2023
2128
  default:
2024
2129
  if (isSearchableSelect && event.key !== "Tab" && !this.hasTimedOut) {
2025
- (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
2130
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
2026
2131
  }
2027
2132
  if (event.key.length === 1) {
2028
2133
  this.keyboardNav = true;
@@ -2061,21 +2166,28 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2061
2166
  return menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
2062
2167
  };
2063
2168
  this.isManualMode = this.activationType === "manual";
2064
- this.scrollToSelected = (menu) => {
2169
+ // Scroll to highlighted option, or selected option if no highlighted option (i.e. when the menu opens)
2170
+ this.scrollToSelected = () => {
2065
2171
  var _a;
2066
- const selectedOption = this.selectOnEnter
2172
+ const menu = this.menu;
2173
+ const selectedOption = this.selectOnEnter || this.searchableSelect || this.multiSelect
2067
2174
  ? this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`)
2068
2175
  : menu.querySelector(".option[aria-selected='true']");
2069
2176
  if (selectedOption) {
2070
- const elTop = selectedOption.offsetTop + selectedOption.offsetHeight;
2071
- if (elTop > menu.scrollTop + menu.offsetHeight ||
2072
- elTop < menu.scrollTop + menu.offsetHeight) {
2073
- menu.scrollTop = selectedOption.offsetTop;
2177
+ const menuRect = menu.getBoundingClientRect();
2178
+ const optionRect = selectedOption.getBoundingClientRect();
2179
+ if (optionRect.top < menuRect.top) {
2180
+ menu.scrollTop -= menuRect.top - optionRect.top;
2181
+ }
2182
+ else if (optionRect.bottom > menuRect.bottom) {
2183
+ menu.scrollTop += optionRect.bottom - menuRect.bottom;
2074
2184
  }
2075
2185
  // 'aria-activedescendant' affects screen reader focus
2076
2186
  // https://www.w3.org/TR/2017/WD-wai-aria-practices-1.1-20170628/#kbd_focus_activedescendant
2077
2187
  (_a = this.menu) === null || _a === void 0 ? void 0 : _a.setAttribute(this.ACTIVE_DESCENDANT, selectedOption.id);
2078
- selectedOption.focus();
2188
+ if (this.allowMenuFocus) {
2189
+ selectedOption.focus();
2190
+ }
2079
2191
  }
2080
2192
  };
2081
2193
  // Set 'ungroupedOptions' variable and emit its value
@@ -2118,7 +2230,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2118
2230
  "show-check-icon": showCheckIcon,
2119
2231
  } }, (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: {
2120
2232
  "option-element": option.icon || !option.hideLabel || option.description,
2121
- }, innerHTML: sanitizeHTMLString(option.element.component), "aria-hidden": "true" }))), showCheckIcon && h("span", { class: "check-icon", innerHTML: checkIcon })));
2233
+ }, innerHTML: sanitizeHTMLString(option.element.component), "aria-hidden": "true" }))), showCheckIcon && (h("span", { class: "check-icon", innerHTML: checkIcon, "aria-hidden": "true" }))));
2122
2234
  };
2123
2235
  this.displayOption = (option, selected, index, parentOption) => {
2124
2236
  var _a;
@@ -2135,11 +2247,13 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2135
2247
  "disabled-option": !!option.disabled,
2136
2248
  "loading-option": !!option.loading,
2137
2249
  timeout: !!option.timedOut,
2138
- }, role: "option", tabindex: open &&
2139
- (selected || option[this.valueField] === optionHighlighted) &&
2140
- keyboardNav
2141
- ? "0"
2142
- : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": selected ? "true" : "false", "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading
2250
+ }, role: "option", tabindex: !this.allowMenuFocus
2251
+ ? "-1"
2252
+ : open &&
2253
+ (selected || option[this.valueField] === optionHighlighted) &&
2254
+ keyboardNav
2255
+ ? "0"
2256
+ : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": selected ? "true" : "false", "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading
2143
2257
  ? this.handleOptionClick
2144
2258
  : 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))));
2145
2259
  };
@@ -2201,10 +2315,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2201
2315
  inputValueInOptions &&
2202
2316
  this.autofocusOnSelected &&
2203
2317
  !this.searchableSelect) {
2204
- this.scrollToSelected(this.menu);
2205
- }
2206
- else if (this.selectOnEnter) {
2207
- this.menu.focus();
2318
+ this.scrollToSelected();
2208
2319
  }
2209
2320
  else if (!!this.optionHighlighted &&
2210
2321
  !this.focusFromSearchKeypress &&
@@ -2212,15 +2323,19 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2212
2323
  const highlightedEl = this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`);
2213
2324
  if (highlightedEl) {
2214
2325
  this.menu.setAttribute(this.ACTIVE_DESCENDANT, highlightedEl.id);
2215
- highlightedEl.focus();
2326
+ if (this.allowMenuFocus) {
2327
+ highlightedEl.focus();
2328
+ }
2216
2329
  }
2217
2330
  }
2218
- else if (this.inputEl && this.inputEl.tagName !== "INPUT") {
2331
+ else if (this.inputEl &&
2332
+ this.inputEl.tagName !== "INPUT" &&
2333
+ this.allowMenuFocus) {
2219
2334
  this.menu.focus();
2220
2335
  }
2221
2336
  }
2222
- if (this.menu && this.open && !this.value && this.selectOnEnter) {
2223
- this.scrollToSelected(this.menu);
2337
+ if (this.menu && this.open) {
2338
+ this.scrollToSelected();
2224
2339
  }
2225
2340
  this.preventMenuFocus = false;
2226
2341
  }
@@ -2255,6 +2370,19 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2255
2370
  this.manualSetInputValueKeyboardOpen(event);
2256
2371
  }
2257
2372
  }
2373
+ /**
2374
+ * Used alongside activationType
2375
+ * If menu is open and user navigates options via keyboard, emit optionSelect custom event.
2376
+ * @param {KeyboardEvent} event The keyboard event which is available when handleMenuKeydown is invoked.
2377
+ */
2378
+ async handleMenuKeyDown(event) {
2379
+ if (this.activationType === "automatic") {
2380
+ this.autoSetValueOnMenuKeyDown(event);
2381
+ }
2382
+ else if (this.activationType === "manual" && !this.searchBar) {
2383
+ this.manualSetInputValueKeyboardOpen(event);
2384
+ }
2385
+ }
2258
2386
  /**
2259
2387
  * @internal Used to highlight the first option in the menu.
2260
2388
  */
@@ -2308,7 +2436,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2308
2436
  const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, parentEl, SEARCH_BAR_TAG, multiSelect, } = this;
2309
2437
  const selectAllButtonText = `${(value === null || value === void 0 ? void 0 : value.length) === this.ungroupedOptions.length ? "Clear" : "Select"} all`;
2310
2438
  const hasNoResults = this.host.classList.contains("no-results");
2311
- return (h(Host, { key: 'a2934ccf16727c0f37d89f77186a58b5ba8e25e1', class: {
2439
+ return (h(Host, { key: '8b0e06f14c1979c3658e6e13fca3e4c6828c795d', class: {
2312
2440
  "ic-menu-full-width": !!fullWidth,
2313
2441
  "ic-menu-no-focus": ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === "INPUT" &&
2314
2442
  (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) !== SEARCH_BAR_TAG) ||
@@ -2317,12 +2445,16 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2317
2445
  [`ic-menu-${size}`]: true,
2318
2446
  "ic-menu-open": open && options.length !== 0,
2319
2447
  "ic-menu-multiple": multiSelect,
2320
- } }, 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 &&
2321
- !keyboardNav &&
2322
- ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ||
2323
- (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === SEARCH_BAR_TAG)
2324
- ? "0"
2325
- : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index) => {
2448
+ } }, 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
2449
+ ? this.getOptionId(this.optionHighlighted)
2450
+ : undefined, tabindex: !this.allowMenuFocus
2451
+ ? "-1"
2452
+ : open &&
2453
+ !keyboardNav &&
2454
+ ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ||
2455
+ (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === SEARCH_BAR_TAG)
2456
+ ? "0"
2457
+ : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index) => {
2326
2458
  if (option.children) {
2327
2459
  if (option.children.length > 0) {
2328
2460
  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] &&
@@ -2345,7 +2477,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2345
2477
  multiSelect &&
2346
2478
  !isLoading &&
2347
2479
  !hasTimedOut &&
2348
- !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)))));
2480
+ !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)))));
2349
2481
  }
2350
2482
  get host() { return this; }
2351
2483
  static get watchers() { return {
@@ -2374,6 +2506,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2374
2506
  "options": [16],
2375
2507
  "value": [1],
2376
2508
  "valueField": [1, "value-field"],
2509
+ "allowMenuFocus": [4, "allow-menu-focus"],
2377
2510
  "focusFromSearchKeypress": [32],
2378
2511
  "initialOptionsListRender": [32],
2379
2512
  "keyboardNav": [32],
@@ -2383,6 +2516,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
2383
2516
  "popperProps": [32],
2384
2517
  "handleClickOpen": [64],
2385
2518
  "handleKeyboardOpen": [64],
2519
+ "handleMenuKeyDown": [64],
2386
2520
  "handleSetFirstOption": [64],
2387
2521
  "initPopperJs": [64],
2388
2522
  "setExternalPopperProps": [64]