@ukic/web-components 3.0.0-alpha.2 → 3.0.0-alpha.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (613) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-f1cf5156.js → helpers-69219f14.js} +24 -1
  3. package/dist/cjs/helpers-69219f14.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +10 -10
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +5 -5
  7. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +7 -5
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +22 -24
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +17 -6
  19. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox.cjs.entry.js +6 -4
  21. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-dialog.cjs.entry.js +4 -2
  27. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-divider.cjs.entry.js +71 -7
  29. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  32. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +4 -3
  40. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +450 -167
  42. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-input-label_2.cjs.entry.js +9 -7
  44. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-menu-group.cjs.entry.js +3 -3
  47. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-menu-item.cjs.entry.js +11 -11
  49. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-group.cjs.entry.js +5 -4
  53. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-item.cjs.entry.js +29 -2
  55. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
  58. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-pagination-item.cjs.entry.js +8 -11
  60. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-pagination.cjs.entry.js +37 -15
  62. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-popover-menu.cjs.entry.js +11 -11
  64. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-radio-group.cjs.entry.js +15 -6
  66. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-radio-option.cjs.entry.js +31 -22
  68. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-search-bar.cjs.entry.js +12 -9
  70. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-select.cjs.entry.js +147 -37
  72. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -3
  74. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-switch.cjs.entry.js +7 -4
  79. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-tab-context.cjs.entry.js +2 -1
  81. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  83. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  84. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  85. package/dist/cjs/ic-text-field.cjs.entry.js +2 -2
  86. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  88. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  89. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
  91. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  93. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  94. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  96. package/dist/cjs/loader.cjs.js +1 -1
  97. package/dist/collection/ag-theme-icds.css +217 -0
  98. package/dist/collection/collection-manifest.json +1 -1
  99. package/dist/collection/components/ic-accordion/ic-accordion.css +21 -19
  100. package/dist/collection/components/ic-accordion/ic-accordion.js +27 -30
  101. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  102. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +3 -3
  103. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -1
  104. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +2 -12
  105. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +18 -18
  106. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  107. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +3 -3
  108. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
  109. package/dist/collection/components/ic-alert/ic-alert.css +25 -18
  110. package/dist/collection/components/ic-alert/ic-alert.js +48 -22
  111. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  112. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +1 -1
  113. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
  114. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +98 -114
  115. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +46 -24
  116. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js.map +1 -1
  117. package/dist/collection/components/ic-checkbox/ic-checkbox.css +47 -39
  118. package/dist/collection/components/ic-checkbox/ic-checkbox.js +29 -3
  119. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  120. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +15 -2
  121. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +40 -3
  122. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  123. package/dist/collection/components/ic-classification-banner/ic-classification-banner.css +13 -25
  124. package/dist/collection/components/ic-dialog/ic-dialog.css +16 -3
  125. package/dist/collection/components/ic-dialog/ic-dialog.js +26 -0
  126. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  127. package/dist/collection/components/ic-divider/ic-divider.css +341 -4
  128. package/dist/collection/components/ic-divider/ic-divider.js +235 -8
  129. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  130. package/dist/collection/components/ic-divider/ic-divider.types.js +2 -0
  131. package/dist/collection/components/ic-divider/ic-divider.types.js.map +1 -0
  132. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +89 -4
  133. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +1 -1
  134. package/dist/collection/components/ic-footer/ic-footer.css +20 -19
  135. package/dist/collection/components/ic-footer-link/ic-footer-link.css +2 -2
  136. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +9 -21
  137. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  138. package/dist/collection/components/ic-hero/ic-hero.css +17 -2
  139. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +3 -2
  140. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  141. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +4 -2
  142. package/dist/collection/components/ic-input-label/ic-input-label.css +13 -1
  143. package/dist/collection/components/ic-input-label/ic-input-label.js +45 -4
  144. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  145. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +35 -49
  146. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -1
  147. package/dist/collection/components/ic-input-validation/ic-input-validation.css +5 -1
  148. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +1 -0
  149. package/dist/collection/components/ic-menu/ic-menu.css +78 -14
  150. package/dist/collection/components/ic-menu/ic-menu.js +488 -194
  151. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  152. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +381 -33
  153. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  154. package/dist/collection/components/ic-menu-group/ic-menu-group.css +2 -2
  155. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  156. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  157. package/dist/collection/components/ic-menu-item/ic-menu-item.css +32 -28
  158. package/dist/collection/components/ic-menu-item/ic-menu-item.js +11 -11
  159. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  160. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +1 -1
  161. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
  162. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  163. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
  164. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +3 -2
  165. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  166. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +31 -3
  167. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  168. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +12 -0
  169. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +1 -1
  170. package/dist/collection/components/ic-page-header/ic-page-header.css +5 -2
  171. package/dist/collection/components/ic-page-header/ic-page-header.js +3 -3
  172. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  173. package/dist/collection/components/ic-pagination/ic-pagination.css +15 -0
  174. package/dist/collection/components/ic-pagination/ic-pagination.js +77 -37
  175. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  176. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +1 -1
  177. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
  178. package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +26 -6
  179. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +48 -33
  180. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  181. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +5 -5
  182. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +33 -9
  183. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  184. package/dist/collection/components/ic-radio-group/ic-radio-group.css +17 -1
  185. package/dist/collection/components/ic-radio-group/ic-radio-group.js +38 -3
  186. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  187. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +2 -2
  188. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  189. package/dist/collection/components/ic-radio-option/ic-radio-option.css +35 -25
  190. package/dist/collection/components/ic-radio-option/ic-radio-option.js +54 -21
  191. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  192. package/dist/collection/components/ic-search-bar/ic-search-bar.css +41 -5
  193. package/dist/collection/components/ic-search-bar/ic-search-bar.js +34 -7
  194. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  195. package/dist/collection/components/ic-select/ic-select.css +37 -16
  196. package/dist/collection/components/ic-select/ic-select.js +191 -43
  197. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  198. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +160 -1
  199. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  200. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +0 -1
  201. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +2 -1
  202. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  203. package/dist/collection/components/ic-switch/ic-switch.css +27 -30
  204. package/dist/collection/components/ic-switch/ic-switch.js +29 -2
  205. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  206. package/dist/collection/components/ic-tab-context/ic-tab-context.js +2 -1
  207. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  208. package/dist/collection/components/ic-text-field/ic-text-field.css +7 -4
  209. package/dist/collection/components/ic-toast/ic-toast.css +25 -16
  210. package/dist/collection/components/ic-toast/ic-toast.js +1 -2
  211. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  212. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +12 -12
  213. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -1
  214. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +1 -1
  215. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  216. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js +1 -0
  217. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js.map +1 -1
  218. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  219. package/dist/collection/utils/helpers.js +20 -0
  220. package/dist/collection/utils/helpers.js.map +1 -1
  221. package/dist/collection/utils/types.js.map +1 -1
  222. package/dist/components/helpers.js +22 -1
  223. package/dist/components/helpers.js.map +1 -1
  224. package/dist/components/ic-accordion-group.js +11 -11
  225. package/dist/components/ic-accordion-group.js.map +1 -1
  226. package/dist/components/ic-accordion.js +5 -5
  227. package/dist/components/ic-accordion.js.map +1 -1
  228. package/dist/components/ic-alert.js +8 -5
  229. package/dist/components/ic-alert.js.map +1 -1
  230. package/dist/components/ic-card-vertical.js +23 -24
  231. package/dist/components/ic-card-vertical.js.map +1 -1
  232. package/dist/components/ic-checkbox-group.js +19 -6
  233. package/dist/components/ic-checkbox-group.js.map +1 -1
  234. package/dist/components/ic-checkbox.js +6 -3
  235. package/dist/components/ic-checkbox.js.map +1 -1
  236. package/dist/components/ic-classification-banner.js +1 -1
  237. package/dist/components/ic-classification-banner.js.map +1 -1
  238. package/dist/components/ic-dialog.js +4 -1
  239. package/dist/components/ic-dialog.js.map +1 -1
  240. package/dist/components/ic-divider2.js +86 -9
  241. package/dist/components/ic-divider2.js.map +1 -1
  242. package/dist/components/ic-footer-link-group.js +1 -1
  243. package/dist/components/ic-footer-link-group.js.map +1 -1
  244. package/dist/components/ic-footer-link.js +1 -1
  245. package/dist/components/ic-footer-link.js.map +1 -1
  246. package/dist/components/ic-footer.js +1 -1
  247. package/dist/components/ic-footer.js.map +1 -1
  248. package/dist/components/ic-hero.js +1 -1
  249. package/dist/components/ic-hero.js.map +1 -1
  250. package/dist/components/ic-horizontal-scroll2.js +3 -2
  251. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  252. package/dist/components/ic-input-component-container2.js +1 -1
  253. package/dist/components/ic-input-component-container2.js.map +1 -1
  254. package/dist/components/ic-input-label2.js +10 -6
  255. package/dist/components/ic-input-label2.js.map +1 -1
  256. package/dist/components/ic-input-validation2.js +1 -1
  257. package/dist/components/ic-input-validation2.js.map +1 -1
  258. package/dist/components/ic-loading-indicator2.js +1 -1
  259. package/dist/components/ic-loading-indicator2.js.map +1 -1
  260. package/dist/components/ic-menu-group.js +2 -2
  261. package/dist/components/ic-menu-group.js.map +1 -1
  262. package/dist/components/ic-menu-item2.js +11 -11
  263. package/dist/components/ic-menu-item2.js.map +1 -1
  264. package/dist/components/ic-menu2.js +453 -169
  265. package/dist/components/ic-menu2.js.map +1 -1
  266. package/dist/components/ic-navigation-button.js.map +1 -1
  267. package/dist/components/ic-navigation-group.js +5 -4
  268. package/dist/components/ic-navigation-group.js.map +1 -1
  269. package/dist/components/ic-navigation-item.js +31 -3
  270. package/dist/components/ic-navigation-item.js.map +1 -1
  271. package/dist/components/ic-navigation-menu2.js +1 -1
  272. package/dist/components/ic-page-header.js +4 -4
  273. package/dist/components/ic-page-header.js.map +1 -1
  274. package/dist/components/ic-pagination-item2.js +10 -12
  275. package/dist/components/ic-pagination-item2.js.map +1 -1
  276. package/dist/components/ic-pagination.js +38 -15
  277. package/dist/components/ic-pagination.js.map +1 -1
  278. package/dist/components/ic-popover-menu.js +11 -10
  279. package/dist/components/ic-popover-menu.js.map +1 -1
  280. package/dist/components/ic-radio-group.js +17 -6
  281. package/dist/components/ic-radio-group.js.map +1 -1
  282. package/dist/components/ic-radio-option.js +32 -22
  283. package/dist/components/ic-radio-option.js.map +1 -1
  284. package/dist/components/ic-search-bar.js +13 -9
  285. package/dist/components/ic-search-bar.js.map +1 -1
  286. package/dist/components/ic-select.js +148 -37
  287. package/dist/components/ic-select.js.map +1 -1
  288. package/dist/components/ic-side-navigation.js +4 -3
  289. package/dist/components/ic-side-navigation.js.map +1 -1
  290. package/dist/components/ic-stepper.js +1 -1
  291. package/dist/components/ic-switch.js +7 -3
  292. package/dist/components/ic-switch.js.map +1 -1
  293. package/dist/components/ic-tab-context.js +2 -1
  294. package/dist/components/ic-tab-context.js.map +1 -1
  295. package/dist/components/ic-text-field2.js +2 -2
  296. package/dist/components/ic-text-field2.js.map +1 -1
  297. package/dist/components/ic-theme.js +1 -1
  298. package/dist/components/ic-toast.js +3 -3
  299. package/dist/components/ic-toast.js.map +1 -1
  300. package/dist/components/ic-toggle-button-group.js +1 -1
  301. package/dist/components/ic-toggle-button-group.js.map +1 -1
  302. package/dist/components/ic-top-navigation.js +1 -1
  303. package/dist/components/ic-top-navigation.js.map +1 -1
  304. package/dist/core/ag-theme-icds.css +217 -0
  305. package/dist/core/core.css +692 -10
  306. package/dist/core/core.esm.js +1 -1
  307. package/dist/core/core.esm.js.map +1 -1
  308. package/dist/core/{p-84526c3e.entry.js → p-13d5875c.entry.js} +2 -2
  309. package/dist/core/p-13d5875c.entry.js.map +1 -0
  310. package/dist/core/p-19872973.entry.js +2 -0
  311. package/dist/core/p-19872973.entry.js.map +1 -0
  312. package/dist/core/p-2140431c.entry.js +2 -0
  313. package/dist/core/p-2140431c.entry.js.map +1 -0
  314. package/dist/core/p-29767574.entry.js +2 -0
  315. package/dist/core/p-29767574.entry.js.map +1 -0
  316. package/dist/core/p-2e909738.entry.js +2 -0
  317. package/dist/core/p-2e909738.entry.js.map +1 -0
  318. package/dist/core/p-2eae9b27.entry.js +2 -0
  319. package/dist/core/p-2eae9b27.entry.js.map +1 -0
  320. package/dist/core/p-2ef46ead.entry.js +2 -0
  321. package/dist/core/p-2ef46ead.entry.js.map +1 -0
  322. package/dist/core/{p-355acffa.entry.js → p-37dea10d.entry.js} +2 -2
  323. package/dist/core/p-3d9726a3.entry.js +2 -0
  324. package/dist/core/{p-408344d3.entry.js.map → p-3d9726a3.entry.js.map} +1 -1
  325. package/dist/core/p-428f95f8.entry.js +2 -0
  326. package/dist/core/p-428f95f8.entry.js.map +1 -0
  327. package/dist/core/p-4973c563.entry.js +2 -0
  328. package/dist/core/p-4973c563.entry.js.map +1 -0
  329. package/dist/core/{p-93c23a35.entry.js → p-4a3b1f06.entry.js} +2 -2
  330. package/dist/core/{p-34db8aaf.entry.js → p-5cd016e1.entry.js} +2 -2
  331. package/dist/core/{p-d2f8e03f.entry.js → p-5ef8e106.entry.js} +2 -2
  332. package/dist/core/p-5f4a6555.entry.js +2 -0
  333. package/dist/core/p-5f4a6555.entry.js.map +1 -0
  334. package/dist/core/p-605c0c92.entry.js +2 -0
  335. package/dist/core/p-605c0c92.entry.js.map +1 -0
  336. package/dist/core/p-655a9e0f.entry.js +2 -0
  337. package/dist/core/p-655a9e0f.entry.js.map +1 -0
  338. package/dist/core/p-65a16de9.entry.js +2 -0
  339. package/dist/core/p-65a16de9.entry.js.map +1 -0
  340. package/dist/core/{p-0a808ec3.entry.js → p-690c5e80.entry.js} +2 -2
  341. package/dist/core/p-705eb610.entry.js +2 -0
  342. package/dist/core/p-705eb610.entry.js.map +1 -0
  343. package/dist/core/{p-f30f3a3e.entry.js → p-76263187.entry.js} +2 -2
  344. package/dist/core/p-78c1f1cc.entry.js +2 -0
  345. package/dist/core/p-78c1f1cc.entry.js.map +1 -0
  346. package/dist/core/p-79d0be03.entry.js +2 -0
  347. package/dist/core/p-79d0be03.entry.js.map +1 -0
  348. package/dist/core/{p-c06a3b97.entry.js → p-7b35de65.entry.js} +2 -2
  349. package/dist/core/p-7bff1e96.entry.js +2 -0
  350. package/dist/core/p-7bff1e96.entry.js.map +1 -0
  351. package/dist/core/{p-4055f22c.entry.js → p-806a0fab.entry.js} +2 -2
  352. package/dist/core/p-806a0fab.entry.js.map +1 -0
  353. package/dist/core/p-85173458.entry.js +2 -0
  354. package/dist/core/p-85173458.entry.js.map +1 -0
  355. package/dist/core/{p-1b573920.entry.js → p-922984cb.entry.js} +2 -2
  356. package/dist/core/{p-aab2c7aa.entry.js → p-95f603dd.entry.js} +2 -2
  357. package/dist/core/{p-b01ffa55.entry.js → p-96b4ca6e.entry.js} +2 -2
  358. package/dist/core/p-96b4ca6e.entry.js.map +1 -0
  359. package/dist/core/p-979c2792.entry.js +2 -0
  360. package/dist/core/p-979c2792.entry.js.map +1 -0
  361. package/dist/core/{p-e4b276b5.entry.js → p-97fb2bdf.entry.js} +2 -2
  362. package/dist/core/p-9ec7f96c.entry.js +2 -0
  363. package/dist/core/p-9ec7f96c.entry.js.map +1 -0
  364. package/dist/core/p-9fa93dfe.entry.js +2 -0
  365. package/dist/core/p-9fa93dfe.entry.js.map +1 -0
  366. package/dist/core/p-a9341313.entry.js +2 -0
  367. package/dist/core/p-a9341313.entry.js.map +1 -0
  368. package/dist/core/{p-e3ed9110.entry.js → p-acbd15ab.entry.js} +2 -2
  369. package/dist/core/{p-31fc8756.entry.js → p-ae0775aa.entry.js} +2 -2
  370. package/dist/core/p-ae0775aa.entry.js.map +1 -0
  371. package/dist/core/{p-312cacae.js → p-b7eb8ef9.js} +2 -2
  372. package/dist/core/p-b7eb8ef9.js.map +1 -0
  373. package/dist/core/{p-4ff6d16f.entry.js → p-ba6ecc15.entry.js} +2 -2
  374. package/dist/core/p-bbeb03ef.entry.js +2 -0
  375. package/dist/core/p-bbeb03ef.entry.js.map +1 -0
  376. package/dist/core/{p-0d30ffab.entry.js → p-c0fc3d02.entry.js} +2 -2
  377. package/dist/core/p-c396bd4d.entry.js +2 -0
  378. package/dist/core/p-c396bd4d.entry.js.map +1 -0
  379. package/dist/core/{p-f828a6e1.entry.js → p-c9cf932c.entry.js} +2 -2
  380. package/dist/core/p-cedc375e.entry.js +2 -0
  381. package/dist/core/p-cedc375e.entry.js.map +1 -0
  382. package/dist/core/{p-d58a10ec.entry.js → p-d4a83e25.entry.js} +2 -2
  383. package/dist/core/p-d4a83e25.entry.js.map +1 -0
  384. package/dist/core/p-d93bac01.entry.js +2 -0
  385. package/dist/core/p-d93bac01.entry.js.map +1 -0
  386. package/dist/core/{p-50ead56c.entry.js → p-df957570.entry.js} +2 -2
  387. package/dist/core/p-df957570.entry.js.map +1 -0
  388. package/dist/core/{p-0fb047e7.entry.js → p-eb3b4935.entry.js} +2 -2
  389. package/dist/core/{p-0fb047e7.entry.js.map → p-eb3b4935.entry.js.map} +1 -1
  390. package/dist/core/{p-60efd7fa.entry.js → p-ebafab37.entry.js} +2 -2
  391. package/dist/core/p-ebafab37.entry.js.map +1 -0
  392. package/dist/core/{p-82375dca.entry.js → p-ee6dd94c.entry.js} +2 -2
  393. package/dist/core/p-ef78bebc.entry.js +2 -0
  394. package/dist/core/p-ef78bebc.entry.js.map +1 -0
  395. package/dist/core/p-f0ae2b99.entry.js +2 -0
  396. package/dist/core/p-f0ae2b99.entry.js.map +1 -0
  397. package/dist/core/{p-49525194.entry.js → p-f24984c5.entry.js} +2 -2
  398. package/dist/core/p-f24984c5.entry.js.map +1 -0
  399. package/dist/core/{p-d8870804.entry.js → p-f5b2b26d.entry.js} +2 -2
  400. package/dist/core/{p-40e9e76a.entry.js → p-f71c00ce.entry.js} +2 -2
  401. package/dist/core/p-fdd0b732.entry.js +2 -0
  402. package/dist/core/p-fdd0b732.entry.js.map +1 -0
  403. package/dist/esm/core.js +1 -1
  404. package/dist/esm/{helpers-1c9151ef.js → helpers-e8797e8d.js} +23 -2
  405. package/dist/esm/helpers-e8797e8d.js.map +1 -0
  406. package/dist/esm/ic-accordion-group.entry.js +10 -10
  407. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  408. package/dist/esm/ic-accordion.entry.js +5 -5
  409. package/dist/esm/ic-accordion.entry.js.map +1 -1
  410. package/dist/esm/ic-alert.entry.js +7 -5
  411. package/dist/esm/ic-alert.entry.js.map +1 -1
  412. package/dist/esm/ic-back-to-top.entry.js +1 -1
  413. package/dist/esm/ic-badge.entry.js +1 -1
  414. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  415. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  416. package/dist/esm/ic-button_3.entry.js +2 -2
  417. package/dist/esm/ic-button_3.entry.js.map +1 -1
  418. package/dist/esm/ic-card-vertical.entry.js +23 -25
  419. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  420. package/dist/esm/ic-checkbox-group.entry.js +17 -6
  421. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  422. package/dist/esm/ic-checkbox.entry.js +6 -4
  423. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  424. package/dist/esm/ic-chip.entry.js +1 -1
  425. package/dist/esm/ic-classification-banner.entry.js +1 -1
  426. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  427. package/dist/esm/ic-data-row.entry.js +1 -1
  428. package/dist/esm/ic-dialog.entry.js +4 -2
  429. package/dist/esm/ic-dialog.entry.js.map +1 -1
  430. package/dist/esm/ic-divider.entry.js +72 -8
  431. package/dist/esm/ic-divider.entry.js.map +1 -1
  432. package/dist/esm/ic-empty-state.entry.js +1 -1
  433. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  434. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  435. package/dist/esm/ic-footer-link.entry.js +2 -2
  436. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  437. package/dist/esm/ic-footer.entry.js +2 -2
  438. package/dist/esm/ic-footer.entry.js.map +1 -1
  439. package/dist/esm/ic-hero.entry.js +2 -2
  440. package/dist/esm/ic-hero.entry.js.map +1 -1
  441. package/dist/esm/ic-horizontal-scroll.entry.js +4 -3
  442. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  443. package/dist/esm/ic-input-component-container_3.entry.js +450 -167
  444. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  445. package/dist/esm/ic-input-label_2.entry.js +9 -7
  446. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  447. package/dist/esm/ic-link.entry.js +1 -1
  448. package/dist/esm/ic-menu-group.entry.js +3 -3
  449. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  450. package/dist/esm/ic-menu-item.entry.js +11 -11
  451. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  452. package/dist/esm/ic-navigation-button.entry.js +1 -1
  453. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  454. package/dist/esm/ic-navigation-group.entry.js +5 -4
  455. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  456. package/dist/esm/ic-navigation-item.entry.js +30 -3
  457. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  458. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  459. package/dist/esm/ic-page-header.entry.js +5 -5
  460. package/dist/esm/ic-page-header.entry.js.map +1 -1
  461. package/dist/esm/ic-pagination-item.entry.js +8 -11
  462. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  463. package/dist/esm/ic-pagination.entry.js +37 -15
  464. package/dist/esm/ic-pagination.entry.js.map +1 -1
  465. package/dist/esm/ic-popover-menu.entry.js +11 -11
  466. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  467. package/dist/esm/ic-radio-group.entry.js +15 -6
  468. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  469. package/dist/esm/ic-radio-option.entry.js +31 -22
  470. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  471. package/dist/esm/ic-search-bar.entry.js +12 -9
  472. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  473. package/dist/esm/ic-select.entry.js +147 -37
  474. package/dist/esm/ic-select.entry.js.map +1 -1
  475. package/dist/esm/ic-side-navigation.entry.js +4 -3
  476. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  477. package/dist/esm/ic-status-tag.entry.js +1 -1
  478. package/dist/esm/ic-step.entry.js +1 -1
  479. package/dist/esm/ic-stepper.entry.js +1 -1
  480. package/dist/esm/ic-switch.entry.js +7 -4
  481. package/dist/esm/ic-switch.entry.js.map +1 -1
  482. package/dist/esm/ic-tab-context.entry.js +2 -1
  483. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  484. package/dist/esm/ic-tab-group.entry.js +1 -1
  485. package/dist/esm/ic-tab-panel.entry.js +1 -1
  486. package/dist/esm/ic-tab.entry.js +1 -1
  487. package/dist/esm/ic-text-field.entry.js +2 -2
  488. package/dist/esm/ic-text-field.entry.js.map +1 -1
  489. package/dist/esm/ic-theme.entry.js +1 -1
  490. package/dist/esm/ic-toast.entry.js +3 -3
  491. package/dist/esm/ic-toast.entry.js.map +1 -1
  492. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  493. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  494. package/dist/esm/ic-toggle-button.entry.js +1 -1
  495. package/dist/esm/ic-top-navigation.entry.js +1 -1
  496. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  497. package/dist/esm/ic-typography.entry.js +1 -1
  498. package/dist/esm/loader.js +1 -1
  499. package/dist/types/components/ic-accordion/ic-accordion.d.ts +5 -5
  500. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +4 -4
  501. package/dist/types/components/ic-alert/ic-alert.d.ts +9 -5
  502. package/dist/types/components/ic-card-vertical/ic-card-vertical.d.ts +7 -3
  503. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +6 -2
  504. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +7 -1
  505. package/dist/types/components/ic-dialog/ic-dialog.d.ts +5 -0
  506. package/dist/types/components/ic-divider/ic-divider.d.ts +31 -1
  507. package/dist/types/components/ic-divider/ic-divider.types.d.ts +3 -0
  508. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +2 -1
  509. package/dist/types/components/ic-input-label/ic-input-label.d.ts +8 -0
  510. package/dist/types/components/ic-menu/ic-menu.d.ts +43 -15
  511. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +1 -1
  512. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +2 -2
  513. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +2 -2
  514. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +7 -2
  515. package/dist/types/components/ic-pagination/ic-pagination.d.ts +13 -5
  516. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +9 -5
  517. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +5 -0
  518. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +6 -1
  519. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +8 -3
  520. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +5 -1
  521. package/dist/types/components/ic-select/ic-select.d.ts +24 -10
  522. package/dist/types/components/ic-switch/ic-switch.d.ts +5 -1
  523. package/dist/types/components.d.ts +242 -51
  524. package/dist/types/utils/helpers.d.ts +9 -2
  525. package/dist/types/utils/types.d.ts +1 -1
  526. package/hydrate/index.js +969 -380
  527. package/package.json +2 -2
  528. package/vscode-data.json +330 -55
  529. package/dist/cjs/helpers-f1cf5156.js.map +0 -1
  530. package/dist/core/p-0c872824.entry.js +0 -2
  531. package/dist/core/p-0c872824.entry.js.map +0 -1
  532. package/dist/core/p-1684c8d4.entry.js +0 -2
  533. package/dist/core/p-1684c8d4.entry.js.map +0 -1
  534. package/dist/core/p-1f1758a9.entry.js +0 -2
  535. package/dist/core/p-1f1758a9.entry.js.map +0 -1
  536. package/dist/core/p-21e5dd29.entry.js +0 -2
  537. package/dist/core/p-21e5dd29.entry.js.map +0 -1
  538. package/dist/core/p-244d6dba.entry.js +0 -2
  539. package/dist/core/p-244d6dba.entry.js.map +0 -1
  540. package/dist/core/p-312cacae.js.map +0 -1
  541. package/dist/core/p-31fc8756.entry.js.map +0 -1
  542. package/dist/core/p-322edabc.entry.js +0 -2
  543. package/dist/core/p-322edabc.entry.js.map +0 -1
  544. package/dist/core/p-363d6e88.entry.js +0 -2
  545. package/dist/core/p-363d6e88.entry.js.map +0 -1
  546. package/dist/core/p-4055f22c.entry.js.map +0 -1
  547. package/dist/core/p-408344d3.entry.js +0 -2
  548. package/dist/core/p-43f9a711.entry.js +0 -2
  549. package/dist/core/p-43f9a711.entry.js.map +0 -1
  550. package/dist/core/p-4502d3c1.entry.js +0 -2
  551. package/dist/core/p-4502d3c1.entry.js.map +0 -1
  552. package/dist/core/p-49525194.entry.js.map +0 -1
  553. package/dist/core/p-50ead56c.entry.js.map +0 -1
  554. package/dist/core/p-5deb9730.entry.js +0 -2
  555. package/dist/core/p-5deb9730.entry.js.map +0 -1
  556. package/dist/core/p-60efd7fa.entry.js.map +0 -1
  557. package/dist/core/p-6bd2e938.entry.js +0 -2
  558. package/dist/core/p-6bd2e938.entry.js.map +0 -1
  559. package/dist/core/p-6d40baa9.entry.js +0 -2
  560. package/dist/core/p-6d40baa9.entry.js.map +0 -1
  561. package/dist/core/p-7c89fc86.entry.js +0 -2
  562. package/dist/core/p-7c89fc86.entry.js.map +0 -1
  563. package/dist/core/p-84526c3e.entry.js.map +0 -1
  564. package/dist/core/p-9dba6823.entry.js +0 -2
  565. package/dist/core/p-9dba6823.entry.js.map +0 -1
  566. package/dist/core/p-aa0619ce.entry.js +0 -2
  567. package/dist/core/p-aa0619ce.entry.js.map +0 -1
  568. package/dist/core/p-af20322c.entry.js +0 -2
  569. package/dist/core/p-af20322c.entry.js.map +0 -1
  570. package/dist/core/p-b01ffa55.entry.js.map +0 -1
  571. package/dist/core/p-bf1f0ac7.entry.js +0 -2
  572. package/dist/core/p-bf1f0ac7.entry.js.map +0 -1
  573. package/dist/core/p-c86d48b6.entry.js +0 -2
  574. package/dist/core/p-c86d48b6.entry.js.map +0 -1
  575. package/dist/core/p-cbcd4427.entry.js +0 -2
  576. package/dist/core/p-cbcd4427.entry.js.map +0 -1
  577. package/dist/core/p-d1c9c32b.entry.js +0 -2
  578. package/dist/core/p-d1c9c32b.entry.js.map +0 -1
  579. package/dist/core/p-d2f89cb5.entry.js +0 -2
  580. package/dist/core/p-d2f89cb5.entry.js.map +0 -1
  581. package/dist/core/p-d58a10ec.entry.js.map +0 -1
  582. package/dist/core/p-da14cd3c.entry.js +0 -2
  583. package/dist/core/p-da14cd3c.entry.js.map +0 -1
  584. package/dist/core/p-dc83a0e9.entry.js +0 -2
  585. package/dist/core/p-dc83a0e9.entry.js.map +0 -1
  586. package/dist/core/p-de3a5423.entry.js +0 -2
  587. package/dist/core/p-de3a5423.entry.js.map +0 -1
  588. package/dist/core/p-e53309b0.entry.js +0 -2
  589. package/dist/core/p-e53309b0.entry.js.map +0 -1
  590. package/dist/core/p-f38bce8d.entry.js +0 -2
  591. package/dist/core/p-f38bce8d.entry.js.map +0 -1
  592. package/dist/core/p-fa1b7a80.entry.js +0 -2
  593. package/dist/core/p-fa1b7a80.entry.js.map +0 -1
  594. package/dist/core/p-fa587e6d.entry.js +0 -2
  595. package/dist/core/p-fa587e6d.entry.js.map +0 -1
  596. package/dist/esm/helpers-1c9151ef.js.map +0 -1
  597. /package/dist/core/{p-355acffa.entry.js.map → p-37dea10d.entry.js.map} +0 -0
  598. /package/dist/core/{p-93c23a35.entry.js.map → p-4a3b1f06.entry.js.map} +0 -0
  599. /package/dist/core/{p-34db8aaf.entry.js.map → p-5cd016e1.entry.js.map} +0 -0
  600. /package/dist/core/{p-d2f8e03f.entry.js.map → p-5ef8e106.entry.js.map} +0 -0
  601. /package/dist/core/{p-0a808ec3.entry.js.map → p-690c5e80.entry.js.map} +0 -0
  602. /package/dist/core/{p-f30f3a3e.entry.js.map → p-76263187.entry.js.map} +0 -0
  603. /package/dist/core/{p-c06a3b97.entry.js.map → p-7b35de65.entry.js.map} +0 -0
  604. /package/dist/core/{p-1b573920.entry.js.map → p-922984cb.entry.js.map} +0 -0
  605. /package/dist/core/{p-aab2c7aa.entry.js.map → p-95f603dd.entry.js.map} +0 -0
  606. /package/dist/core/{p-e4b276b5.entry.js.map → p-97fb2bdf.entry.js.map} +0 -0
  607. /package/dist/core/{p-e3ed9110.entry.js.map → p-acbd15ab.entry.js.map} +0 -0
  608. /package/dist/core/{p-4ff6d16f.entry.js.map → p-ba6ecc15.entry.js.map} +0 -0
  609. /package/dist/core/{p-0d30ffab.entry.js.map → p-c0fc3d02.entry.js.map} +0 -0
  610. /package/dist/core/{p-f828a6e1.entry.js.map → p-c9cf932c.entry.js.map} +0 -0
  611. /package/dist/core/{p-82375dca.entry.js.map → p-ee6dd94c.entry.js.map} +0 -0
  612. /package/dist/core/{p-d8870804.entry.js.map → p-f5b2b26d.entry.js.map} +0 -0
  613. /package/dist/core/{p-40e9e76a.entry.js.map → p-f71c00ce.entry.js.map} +0 -0
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f982899d.js');
6
- const helpers = require('./helpers-f1cf5156.js');
6
+ const helpers = require('./helpers-69219f14.js');
7
7
  const checkIcon = require('./check-icon-7225d79b.js');
8
8
  const popper = require('./popper-31badbf8.js');
9
9
 
10
- const icInputComponentContainerCss = "ic-input-component-container{display:flex;border:var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-slow);height:2.5rem;width:var(--input-width, 20rem);padding:var(--ic-space-1px);background-color:var(--ic-architectural-white);box-sizing:border-box;fill:var(--ic-architectural-400);outline:none}ic-input-component-container.ic-input-component-container-full-width{width:100%}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed var(--ic-architectural-200)}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-readonly:hover{border:none;padding:0}ic-input-component-container.ic-input-component-container-error{border:var(--ic-border-error);padding:0}ic-input-component-container.ic-input-component-container-error:hover{border:var(--ic-border-error-hover)}ic-input-component-container.ic-input-component-container-error:focus-within{border:var(--ic-border-error-pressed)}ic-input-component-container.ic-input-component-container-warning{border:var(--ic-border-warning);padding:0}ic-input-component-container.ic-input-component-container-warning:hover{border:var(--ic-border-warning-hover)}ic-input-component-container.ic-input-component-container-warning:focus-within{border:var(--ic-border-warning-pressed)}ic-input-component-container.ic-input-component-container-success{border:var(--ic-border-success);padding:0}ic-input-component-container.ic-input-component-container-success:hover{border:var(--ic-border-success-hover)}ic-input-component-container.ic-input-component-container-success:focus-within{border:var(--ic-success-border-pressed)}ic-input-component-container.ic-input-component-container-small{height:var(--ic-space-xl)}ic-input-component-container.ic-input-component-container-large{height:var(--ic-space-xxl)}ic-input-component-container.ic-input-component-container-multiline{height:auto}ic-input-component-container .icon-container{margin-top:var(--ic-space-xxs);margin-left:0.438rem;display:flex;align-items:center}ic-input-component-container.ic-input-component-container-multiline .icon-container,ic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small .icon-container{margin-top:0.375rem;display:block}ic-input-component-container.ic-input-component-container-readonly .icon-container{margin-left:-0.313rem}ic-input-component-container.ic-input-component-container-disabled ::-moz-placeholder{display:none}ic-input-component-container.ic-input-component-container-disabled ::placeholder{display:none}ic-input-component-container .inline-success{margin:var(--ic-space-xs) 0.375rem;display:flex;align-items:center}ic-input-component-container.ic-input-component-container-dark:hover{--border-color:var(--ic-architectural-400)}ic-input-component-container .inline-success>svg{fill:var(--ic-status-success-default);height:1.25rem;width:1.25rem}ic-input-component-container:hover{border:var(--ic-border-hover);color:var(--ic-action-dark-hover)}ic-input-component-container:focus{border:var(--ic-border-pressed)}.focus-indicator{display:flex;width:100%;margin:-0.125rem;padding:0.125rem;border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.focus-indicator:focus-within,.focus-indicator-enabled{box-shadow:var(--ic-border-focus)}.focus-indicator.ic-input-component-container-dark:focus-within{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){ic-input-component-container,.focus-indicator{transition:none}ic-input-component-container:focus-within{border:var(--ic-border-width) solid Highlight;outline:0.125rem solid Highlight}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed GrayText}}";
10
+ const icInputComponentContainerCss = "ic-input-component-container{display:flex;border:var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-slow);height:2.5rem;width:var(--input-width, 20rem);padding:var(--ic-space-1px);background-color:var(--input-bg-color, var(--ic-architectural-white));box-sizing:border-box;fill:var(--ic-architectural-400);outline:none}ic-input-component-container.ic-input-component-container-full-width{width:100%}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-architectural-200))}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-readonly:hover{border:none;padding:0}ic-input-component-container.ic-input-component-container-error{border:var(--ic-border-error);padding:0}ic-input-component-container.ic-input-component-container-error:hover{border:var(--ic-border-error-hover)}ic-input-component-container.ic-input-component-container-error:focus-within{border:var(--ic-border-error-pressed)}ic-input-component-container.ic-input-component-container-warning{border:var(--ic-border-warning);padding:0}ic-input-component-container.ic-input-component-container-warning:hover{border:var(--ic-border-warning-hover)}ic-input-component-container.ic-input-component-container-warning:focus-within{border:var(--ic-border-warning-pressed)}ic-input-component-container.ic-input-component-container-success{border:var(--ic-border-success);padding:0}ic-input-component-container.ic-input-component-container-success:hover{border:var(--ic-border-success-hover)}ic-input-component-container.ic-input-component-container-success:focus-within{border:var(--ic-success-border-pressed)}ic-input-component-container.ic-input-component-container-small{height:var(--ic-space-xl)}ic-input-component-container.ic-input-component-container-large{height:var(--ic-space-xxl)}ic-input-component-container.ic-input-component-container-multiline{height:auto}ic-input-component-container .icon-container{margin-top:var(--ic-space-xxs);margin-left:0.438rem;display:flex;align-items:center}ic-input-component-container.ic-input-component-container-multiline .icon-container,ic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small .icon-container{margin-top:0.375rem;display:block}ic-input-component-container.ic-input-component-container-readonly .icon-container{margin-left:-0.313rem}ic-input-component-container.ic-input-component-container-disabled ::-moz-placeholder{display:none}ic-input-component-container.ic-input-component-container-disabled ::placeholder{display:none}ic-input-component-container .inline-success{margin:var(--ic-space-xs) 0.375rem;display:flex;align-items:center}ic-input-component-container.ic-input-component-container-dark:hover{--border-color:var(--ic-architectural-400)}ic-input-component-container .inline-success>svg{fill:var(--ic-status-success-default);height:1.25rem;width:1.25rem}ic-input-component-container:hover{border:var(--ic-border-hover);color:var(--ic-action-dark-hover)}ic-input-component-container:focus{border:var(--ic-border-pressed)}.focus-indicator{display:flex;width:100%;margin:-0.125rem;padding:0.125rem;border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.focus-indicator:focus-within,.focus-indicator-enabled{box-shadow:var(--ic-border-focus)}.focus-indicator.ic-input-component-container-dark:focus-within{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){ic-input-component-container,.focus-indicator{transition:none}ic-input-component-container:focus-within{border:var(--ic-border-width) solid Highlight;outline:0.125rem solid Highlight}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed GrayText}}";
11
11
 
12
12
  const InputComponentContainer = class {
13
13
  constructor(hostRef) {
@@ -77,7 +77,7 @@ const InputContainer = class {
77
77
  };
78
78
  InputContainer.style = icInputContainerCss;
79
79
 
80
- 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{border-radius:var(--ic-border-radius);max-height:0;width:var(--input-width, 20rem);color:var(--ic-color-text-primary);--ic-typography-color:var(--ic-color-text-primary);background-color:var(--ic-architectural-white);position:relative;z-index:var(--ic-z-index-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay)}.sc-ic-menu-h:not(.ic-menu-no-focus):focus-within{box-shadow:var(--ic-border-focus)}#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:var(--ic-border-width) solid var(--ic-architectural-400);border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);visibility:hidden;max-height:0;overflow-y:hidden}.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:block}.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-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;overflow-wrap:anywhere}.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 var(--ic-space-1px) var(--ic-space-1px)}.option.sc-ic-menu:first-child{border-radius:var(--ic-space-1px) var(--ic-space-1px) 0 0}.option.sc-ic-menu:not(.disabled-option):hover{background-color:var(--ic-action-dark-bg-hover)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-action-dark-bg-pressed)}.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(--ic-color-text-secondary)}.option.sc-ic-menu .option-label.sc-ic-menu{display:flex;flex-direction:row;align-items:top}.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-xxxs)}.option-text-container.sc-ic-menu{pointer-events:none}.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-color-text-secondary);--ic-typography-color:var(--ic-color-text-secondary)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-status-error-default);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);width:var(--ic-space-lg);margin-left:var(--ic-space-xs);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-color-text-tertiary)}.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-border-default)}.disabled-option.sc-ic-menu{color:var(--ic-architectural-200);--ic-typography-color:var(--ic-architectural-200);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-architectural-white) !important;--ic-typography-color:var(--ic-architectural-white) !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}@media (forced-colors: active){.focused-option.sc-ic-menu:focus{outline:none;border:0.125rem solid transparent}}";
80
+ 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-color-text-primary));--ic-typography-color:var(\n --menu-item-text-color,\n var(--ic-color-text-primary)\n );background-color:var(--menu-bg-color, var(--ic-architectural-white));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(--menu-bg-color, var(--ic-architectural-white));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-architectural-400));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}.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-action-dark-bg-hover)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-action-dark-bg-pressed)}.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(--ic-color-text-secondary)}.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-xxxs)}.option-text-container.sc-ic-menu{pointer-events:none;width:100%}.option-text-container.show-check-icon.sc-ic-menu{width:calc(var(--ic-space-lg) * 10 + var(--ic-space-xl))}.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-color-text-secondary);--ic-typography-color:var(--ic-color-text-secondary)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-status-error-default);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);margin-left:var(--ic-space-xs);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-color-text-tertiary)}.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-border-default)}.disabled-option.sc-ic-menu{color:var(--ic-architectural-200);--ic-typography-color:var(--ic-architectural-200);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-architectural-white) !important;--ic-typography-color:var(--ic-architectural-white) !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-architectural-40);visibility:hidden;border-bottom:var(--ic-border-width) solid var(--ic-architectural-400);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}}";
81
81
 
82
82
  const Menu = class {
83
83
  constructor(hostRef) {
@@ -85,19 +85,26 @@ const Menu = class {
85
85
  this.menuKeyPress = index.createEvent(this, "menuKeyPress", 7);
86
86
  this.menuOptionId = index.createEvent(this, "menuOptionId", 7);
87
87
  this.menuOptionSelect = index.createEvent(this, "menuOptionSelect", 7);
88
+ this.menuOptionSelectAll = index.createEvent(this, "menuOptionSelectAll", 7);
88
89
  this.menuStateChange = index.createEvent(this, "menuStateChange", 7);
89
- this.menuValueChange = index.createEvent(this, "menuValueChange", 7);
90
90
  this.retryButtonClicked = index.createEvent(this, "retryButtonClicked", 7);
91
91
  this.timeoutBlur = index.createEvent(this, "timeoutBlur", 7);
92
92
  this.ungroupedOptionsSet = index.createEvent(this, "ungroupedOptionsSet", 7);
93
+ this.ACTIVE_DESCENDANT = "aria-activedescendant";
94
+ this.CLEAR_BUTTON_ID = "clear-button";
93
95
  this.disabledOptionSelected = false;
94
96
  this.hasPreviouslyBlurred = false;
95
97
  this.hasTimedOut = false;
96
98
  this.isLoading = false;
99
+ this.isMultiSelect = false;
97
100
  this.isSearchBar = false;
98
101
  this.isSearchableSelect = false;
99
- // Prevents menu re-opening immediately after it is closed on blur when clicking input.
100
- this.preventClickOpen = false;
102
+ this.lastOptionSelected = null; // Index of last option selected
103
+ this.lastOptionFocused = null; // Index of last option focused
104
+ this.multiOptionClicked = null;
105
+ this.preventClickOpen = false; // Prevents menu re-opening immediately after it is closed on blur when clicking input.
106
+ this.preventMenuFocus = false; // (When multiple) ensures focus moves straight to select all button from menu.
107
+ this.shiftPressed = false;
101
108
  this.ungroupedOptions = [];
102
109
  this.handleClearListener = () => {
103
110
  this.optionHighlighted = "";
@@ -108,9 +115,16 @@ const Menu = class {
108
115
  };
109
116
  this.handleMenuChange = (open, focusInput) => {
110
117
  this.menuStateChange.emit({ open, focusInput });
111
- if (!open && focusInput !== false) {
112
- this.inputEl.focus();
113
- this.preventClickOpen = false;
118
+ if (!open) {
119
+ if (focusInput !== false) {
120
+ this.inputEl.focus();
121
+ this.preventClickOpen = false;
122
+ }
123
+ // Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed
124
+ if (this.isMultiSelect) {
125
+ this.optionHighlighted = undefined;
126
+ this.multiOptionClicked = null;
127
+ }
114
128
  }
115
129
  };
116
130
  this.setNextOptionValue = (selectedOptionIndex) => {
@@ -145,24 +159,34 @@ const Menu = class {
145
159
  if (parent.tagName === "IC-SEARCH-BAR") {
146
160
  this.isSearchBar = true;
147
161
  }
148
- else if (parent.tagName === "IC-SELECT" &&
149
- parent.getAttribute("searchable") !== null &&
150
- parent.getAttribute("searchable") !== undefined) {
151
- this.isSearchableSelect = true;
162
+ else if (parent.tagName === "IC-SELECT") {
163
+ if (parent.getAttribute("searchable") !== null &&
164
+ parent.getAttribute("searchable") !== undefined) {
165
+ this.isSearchableSelect = true;
166
+ }
167
+ else if (parent.getAttribute("multiple") !== null &&
168
+ parent.getAttribute("multiple") !== undefined) {
169
+ this.isMultiSelect = true;
170
+ }
152
171
  }
153
172
  };
173
+ // Open menu when up or down arrow keys are pressed
154
174
  this.arrowBehaviour = (event) => {
155
175
  event.preventDefault();
156
176
  this.handleMenuChange(true);
157
177
  };
158
- this.setMenuOptions = () => this.isSearchBar ? this.options : this.ungroupedOptions;
178
+ this.getMenuOptions = () => this.isSearchBar ? this.options : this.ungroupedOptions;
179
+ // Set option that is focused and so should show focus state
159
180
  this.setHighlightedOption = (highlightedIndex) => {
160
- const menuOptions = this.setMenuOptions();
181
+ const menuOptions = this.getMenuOptions();
161
182
  menuOptions[highlightedIndex] &&
162
183
  !menuOptions[highlightedIndex].timedOut &&
163
184
  (this.optionHighlighted =
164
185
  menuOptions[highlightedIndex][this.valueField] || undefined);
165
186
  };
187
+ // Determines keyboard behaviour when selection is automatic
188
+ // (i.e. you don't have to press Enter select an option - just focus on it)
189
+ // and menu is closed
166
190
  this.autoSetInputValueKeyboardOpen = (event) => {
167
191
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
168
192
  this.keyboardNav = false;
@@ -179,147 +203,278 @@ const Menu = class {
179
203
  break;
180
204
  case " ":
181
205
  case "Enter":
182
- if (event.target.id !== "clear-button") {
206
+ if (event.target.id !== this.CLEAR_BUTTON_ID) {
183
207
  this.handleMenuChange(true);
184
208
  }
185
209
  break;
186
210
  }
187
211
  };
188
- this.manSetInputValueKeyboardOpen = (event) => {
189
- const menuOptions = this.setMenuOptions();
190
- const highlightedOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
191
- const getOptionId = (index) => { var _a; return (_a = Array.from(this.host.querySelectorAll("li"))[index]) === null || _a === void 0 ? void 0 : _a.id; };
212
+ this.selectHighlightedOption = (options, highlightedOptionIndex) => {
213
+ if (!this.isLoading && !this.hasTimedOut) {
214
+ this.keyboardNav = true;
215
+ }
192
216
  const isOpen = this.isSearchBar || this.isSearchableSelect || this.open;
193
- switch (event.key) {
194
- case "ArrowDown":
195
- this.keyboardNav = true;
196
- this.arrowBehaviour(event);
197
- if (highlightedOptionIndex < menuOptions.length - 1) {
198
- this.setHighlightedOption(highlightedOptionIndex + 1);
199
- this.menuOptionId.emit({
200
- optionId: getOptionId(highlightedOptionIndex + 1),
201
- });
202
- }
203
- else {
204
- this.setHighlightedOption(0);
205
- this.menuOptionId.emit({
206
- optionId: getOptionId(0),
207
- });
217
+ if (isOpen) {
218
+ if (highlightedOptionIndex >= 0) {
219
+ if (options[highlightedOptionIndex] !== undefined) {
220
+ if (this.isSearchBar &&
221
+ options[highlightedOptionIndex].disabled === true) {
222
+ this.disabledOptionSelected = true;
223
+ }
224
+ else {
225
+ this.setInputValue(highlightedOptionIndex);
226
+ }
208
227
  }
209
- this.preventIncorrectTabOrder = false;
210
- this.focusFromSearchKeypress = false;
211
- break;
212
- case "ArrowUp":
213
- this.keyboardNav = true;
214
- this.arrowBehaviour(event);
215
- if (highlightedOptionIndex <= 0 ||
216
- highlightedOptionIndex > menuOptions.length + 1) {
217
- this.setHighlightedOption(menuOptions.length - 1);
228
+ }
229
+ else {
230
+ this.setInputValue(highlightedOptionIndex);
231
+ }
232
+ }
233
+ else {
234
+ this.handleMenuChange(true);
235
+ }
236
+ };
237
+ // Check if option is selected based on the index of the option
238
+ this.isOptionSelected = (index) => {
239
+ const menuOptions = this.getMenuOptions();
240
+ return this.value
241
+ ? this.value.includes(menuOptions[index][this.valueField])
242
+ : false;
243
+ };
244
+ // Deselect currently selected options when shift pressed, but keep certain options selected
245
+ this.deselectSelectedOptions = (optionsToKeepSelected) => {
246
+ const menuOptions = this.getMenuOptions();
247
+ if (this.value) {
248
+ const selectedOptionIndexes = this.value.map((value) => {
249
+ return menuOptions.findIndex((option) => option[this.valueField] === value);
250
+ });
251
+ // Call setInputValue (which toggles the selected state) on options that need to be deselected
252
+ selectedOptionIndexes.forEach((index) => !optionsToKeepSelected.includes(index) && this.setInputValue(index));
253
+ }
254
+ };
255
+ // Determines keyboard behaviour when selection is manual (i.e. when you have to press Enter to select an option)
256
+ this.manualSetInputValueKeyboardOpen = (event) => {
257
+ const menuOptions = this.getMenuOptions();
258
+ // For preventing focus disappearing on currently focused option when Shift / Cmd / Ctrl pressed
259
+ // (i.e. when user is likely in the middle of executing a keyboard combination to select options)
260
+ const isKeyboardCombination = event.shiftKey || event.metaKey || event.ctrlKey;
261
+ const highlightedOptionIndex = this.getOptionHighlightedIndex();
262
+ const clickedMultiOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.multiOptionClicked);
263
+ const getOptionId = (index) => { var _a; return (_a = Array.from(this.host.querySelectorAll("li"))[index]) === null || _a === void 0 ? void 0 : _a.id; };
264
+ // Space press should be equivalent to Enter when multi-select
265
+ if (event.key === " " && this.isMultiSelect) {
266
+ this.handleOptionSelect(event, highlightedOptionIndex);
267
+ }
268
+ else {
269
+ switch (event.key) {
270
+ case "ArrowDown":
271
+ this.keyboardNav = true;
272
+ this.arrowBehaviour(event);
273
+ if (this.multiOptionClicked) {
274
+ // Set focus to option last clicked
275
+ // Prevents it resetting to the top of the menu when user switches to using keyboard
276
+ this.setHighlightedOption(clickedMultiOptionIndex);
277
+ this.multiOptionClicked = null;
278
+ }
279
+ else {
280
+ this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);
281
+ if (highlightedOptionIndex < menuOptions.length - 1) {
282
+ this.setHighlightedOption(highlightedOptionIndex + 1);
283
+ this.menuOptionId.emit({
284
+ optionId: getOptionId(highlightedOptionIndex + 1),
285
+ });
286
+ this.handleSingleShiftSelect(event, highlightedOptionIndex + 1, menuOptions);
287
+ }
288
+ else {
289
+ this.setHighlightedOption(0);
290
+ this.menuOptionId.emit({
291
+ optionId: getOptionId(0),
292
+ });
293
+ this.handleSingleShiftSelect(event, 0, menuOptions);
294
+ }
295
+ // Deselect currently selected options if arrow was pressed for first time after shift is held
296
+ if (this.isMultiSelect && this.shiftPressed) {
297
+ this.deselectSelectedOptions([
298
+ highlightedOptionIndex,
299
+ this.getOptionHighlightedIndex(),
300
+ ]);
301
+ this.shiftPressed = false;
302
+ }
303
+ }
304
+ this.lastOptionFocused = this.getOptionHighlightedIndex();
305
+ this.preventIncorrectTabOrder = false;
306
+ this.focusFromSearchKeypress = false;
307
+ break;
308
+ case "ArrowUp":
309
+ this.keyboardNav = true;
310
+ this.arrowBehaviour(event);
311
+ if (this.multiOptionClicked) {
312
+ // Set focus to option last clicked
313
+ // Prevents it resetting to the bottom of the menu when user switches to using keyboard
314
+ this.setHighlightedOption(clickedMultiOptionIndex);
315
+ this.multiOptionClicked = null;
316
+ }
317
+ else {
318
+ this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);
319
+ if (highlightedOptionIndex <= 0 ||
320
+ highlightedOptionIndex > menuOptions.length + 1) {
321
+ this.setHighlightedOption(menuOptions.length - 1);
322
+ this.menuOptionId.emit({
323
+ optionId: getOptionId(menuOptions.length - 1),
324
+ });
325
+ this.handleSingleShiftSelect(event, menuOptions.length - 1, menuOptions);
326
+ }
327
+ else {
328
+ this.setHighlightedOption(highlightedOptionIndex - 1);
329
+ this.menuOptionId.emit({
330
+ optionId: getOptionId(highlightedOptionIndex - 1),
331
+ });
332
+ this.handleSingleShiftSelect(event, highlightedOptionIndex - 1, menuOptions);
333
+ }
334
+ // Deselect currently selected options if arrow was pressed for first time after shift is held
335
+ if (this.isMultiSelect && this.shiftPressed) {
336
+ this.deselectSelectedOptions([
337
+ highlightedOptionIndex,
338
+ this.getOptionHighlightedIndex(),
339
+ ]);
340
+ this.shiftPressed = false;
341
+ }
342
+ }
343
+ this.lastOptionFocused = this.getOptionHighlightedIndex();
344
+ this.preventIncorrectTabOrder = false;
345
+ this.focusFromSearchKeypress = false;
346
+ break;
347
+ case "Home": {
348
+ const startOptionIndex = 0;
349
+ this.keyboardNav = true;
350
+ event.preventDefault();
351
+ this.arrowBehaviour(event);
352
+ this.setHighlightedOption(startOptionIndex);
218
353
  this.menuOptionId.emit({
219
- optionId: getOptionId(menuOptions.length - 1),
354
+ optionId: getOptionId(startOptionIndex),
220
355
  });
356
+ if (event.shiftKey && event.ctrlKey) {
357
+ this.handleMultipleShiftSelect(startOptionIndex);
358
+ }
359
+ this.lastOptionFocused = startOptionIndex;
360
+ this.lastOptionSelected = startOptionIndex;
361
+ break;
221
362
  }
222
- else {
223
- this.setHighlightedOption(highlightedOptionIndex - 1);
363
+ case "End": {
364
+ const endOptionIndex = menuOptions.length - 1;
365
+ this.keyboardNav = true;
366
+ event.preventDefault();
367
+ this.arrowBehaviour(event);
368
+ this.setHighlightedOption(endOptionIndex);
224
369
  this.menuOptionId.emit({
225
- optionId: getOptionId(highlightedOptionIndex - 1),
370
+ optionId: getOptionId(endOptionIndex),
226
371
  });
227
- }
228
- this.preventIncorrectTabOrder = false;
229
- this.focusFromSearchKeypress = false;
230
- break;
231
- case "Home":
232
- this.keyboardNav = true;
233
- event.preventDefault();
234
- this.arrowBehaviour(event);
235
- this.setHighlightedOption(0);
236
- this.menuOptionId.emit({
237
- optionId: getOptionId(0),
238
- });
239
- break;
240
- case "End":
241
- this.keyboardNav = true;
242
- event.preventDefault();
243
- this.arrowBehaviour(event);
244
- this.setHighlightedOption(menuOptions.length - 1);
245
- this.menuOptionId.emit({
246
- optionId: getOptionId(menuOptions.length - 1),
247
- });
248
- break;
249
- case " ":
250
- this.keyboardNav = false;
251
- if (this.isSearchBar || this.isSearchableSelect) {
372
+ if (event.shiftKey && event.ctrlKey) {
373
+ this.handleMultipleShiftSelect(endOptionIndex);
374
+ }
375
+ this.lastOptionFocused = endOptionIndex;
376
+ this.lastOptionSelected = endOptionIndex;
252
377
  break;
253
378
  }
254
- else {
255
- if (event.target.id !== "clear-button") {
256
- this.handleMenuChange(true);
379
+ case " ":
380
+ if (!isKeyboardCombination) {
381
+ this.keyboardNav = false;
257
382
  }
258
- }
259
- break;
260
- case "Enter":
261
- event.preventDefault();
262
- this.keyboardNav = false;
263
- if (isOpen) {
264
- if (highlightedOptionIndex >= 0) {
265
- if (menuOptions[highlightedOptionIndex] !== undefined) {
266
- if (this.isSearchBar &&
267
- menuOptions[highlightedOptionIndex].disabled === true) {
268
- this.disabledOptionSelected = true;
269
- }
270
- else {
271
- this.setInputValue(highlightedOptionIndex);
272
- this.value =
273
- menuOptions[highlightedOptionIndex][this.valueField];
274
- }
383
+ if (this.isSearchBar || this.isSearchableSelect) {
384
+ break;
385
+ }
386
+ else {
387
+ if (event.target.id !== this.CLEAR_BUTTON_ID) {
388
+ this.handleMenuChange(true);
389
+ }
390
+ }
391
+ break;
392
+ case "Enter":
393
+ event.preventDefault();
394
+ if (!isKeyboardCombination) {
395
+ this.keyboardNav = false;
396
+ }
397
+ this.handleOptionSelect(event, highlightedOptionIndex);
398
+ break;
399
+ case "Escape":
400
+ if (this.open) {
401
+ event.stopImmediatePropagation();
402
+ }
403
+ this.handleMenuChange(false);
404
+ this.menuOptionId.emit({ optionId: undefined });
405
+ break;
406
+ case "a":
407
+ // Checks if Cmd (meta) key is pressed if Mac device (while excluding meta key on Windows)
408
+ // Otherwise, if a different OS, checks Ctrl key
409
+ if ((helpers.isMacDevice() && event.metaKey) ||
410
+ (!helpers.isMacDevice() && event.ctrlKey)) {
411
+ this.emitSelectAll();
412
+ this.lastOptionFocused = null;
413
+ this.lastOptionSelected = null;
414
+ }
415
+ break;
416
+ case "Shift":
417
+ case "Tab":
418
+ if (event.key === "Shift") {
419
+ this.shiftPressed = true;
420
+ }
421
+ if (this.isSearchBar) {
422
+ this.keyboardNav = true;
423
+ }
424
+ if (this.isMultiSelect) {
425
+ if (this.open && !event.shiftKey && this.selectAllButton) {
426
+ event.preventDefault();
427
+ this.selectAllButton.focus(); // Move focus to select all button instead of focused option
428
+ this.preventMenuFocus = true;
429
+ this.preventClickOpen = true;
430
+ this.optionHighlighted = undefined; // Stop any option focus states showing when focus moved to select all button
275
431
  }
276
432
  }
277
433
  else {
278
- this.setInputValue(highlightedOptionIndex);
434
+ this.preventIncorrectTabOrder = true;
279
435
  }
280
- }
281
- else {
282
- this.handleMenuChange(true);
283
- }
284
- break;
285
- case "Escape":
286
- if (this.open) {
287
- event.stopImmediatePropagation();
288
- }
289
- this.handleMenuChange(false);
290
- this.menuOptionId.emit({ optionId: undefined });
291
- break;
292
- case "Shift":
293
- case "Tab":
294
- if (this.isSearchBar) {
295
- this.keyboardNav = true;
296
- }
297
- this.preventIncorrectTabOrder = true;
298
- break;
299
- default:
300
- this.keyboardNav = false;
301
- this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);
302
- break;
436
+ break;
437
+ default:
438
+ if (!isKeyboardCombination) {
439
+ this.keyboardNav = false;
440
+ }
441
+ this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);
442
+ }
303
443
  }
304
444
  };
305
445
  this.setInputValue = (highlightedOptionIndex) => {
306
- const menuOptions = this.setMenuOptions();
446
+ const menuOptions = this.getMenuOptions();
307
447
  if (menuOptions[highlightedOptionIndex] !== undefined) {
308
448
  this.menuOptionSelect.emit({
309
449
  value: menuOptions[highlightedOptionIndex][this.valueField],
310
450
  });
311
- this.optionHighlighted = undefined;
312
- this.menuOptionId.emit({ optionId: undefined });
451
+ if (this.closeOnSelect) {
452
+ this.optionHighlighted = undefined;
453
+ this.menuOptionId.emit({ optionId: undefined });
454
+ }
455
+ }
456
+ if (this.closeOnSelect) {
457
+ if (!this.hasTimedOut) {
458
+ this.handleMenuChange(false);
459
+ }
460
+ else {
461
+ this.parentEl.setFocus();
462
+ }
313
463
  }
314
- if (!this.hasTimedOut)
315
- this.handleMenuChange(false);
316
- else
317
- this.parentEl.setFocus();
318
464
  };
319
465
  this.handleOptionClick = (event) => {
320
466
  const { value, label } = event.target.dataset;
321
- this.menuOptionSelect.emit({ value, label });
322
- this.handleMenuChange(false);
467
+ if (this.isMultiSelect) {
468
+ const menuOptions = this.getMenuOptions();
469
+ const selectedOptionIndex = menuOptions.findIndex((option) => option.value === value);
470
+ this.handleOptionSelect(event, selectedOptionIndex, true);
471
+ this.multiOptionClicked = value;
472
+ }
473
+ else {
474
+ this.menuOptionSelect.emit({ value, label });
475
+ this.handleMenuChange(false);
476
+ }
477
+ this.optionHighlighted = undefined;
323
478
  };
324
479
  this.handleRetry = () => {
325
480
  this.retryButtonClicked.emit({ value: this.value });
@@ -332,13 +487,23 @@ const Menu = class {
332
487
  };
333
488
  this.handleBlur = (event) => {
334
489
  if (event.relatedTarget !== this.inputEl) {
335
- if (!this.menu.contains(event.relatedTarget)) {
490
+ if (event.relatedTarget === this.selectAllButton) {
491
+ this.menu.removeAttribute(this.ACTIVE_DESCENDANT);
492
+ }
493
+ if (!(this.menu.contains(event.relatedTarget) ||
494
+ event.relatedTarget === this.selectAllButton)) {
336
495
  this.handleMenuChange(false, this.hasPreviouslyBlurred);
496
+ this.menu.removeAttribute(this.ACTIVE_DESCENDANT);
497
+ this.lastOptionFocused = null;
498
+ this.lastOptionSelected = null;
337
499
  }
338
500
  }
339
501
  else {
340
502
  this.handleMenuChange(false);
341
503
  this.preventClickOpen = true;
504
+ this.menu.removeAttribute(this.ACTIVE_DESCENDANT);
505
+ this.lastOptionFocused = null;
506
+ this.lastOptionSelected = null;
342
507
  }
343
508
  if (!this.isSearchBar)
344
509
  this.hasPreviouslyBlurred = !!event.relatedTarget;
@@ -351,12 +516,109 @@ const Menu = class {
351
516
  this.autoSetValueOnMenuKeyDown(event);
352
517
  }
353
518
  else if (this.activationType === "manual" && !this.isSearchBar) {
354
- this.manSetInputValueKeyboardOpen(event);
519
+ this.manualSetInputValueKeyboardOpen(event);
520
+ }
521
+ };
522
+ this.handleMenuKeyUp = (event) => {
523
+ if (event.key === "Tab" && event.shiftKey) {
524
+ this.preventClickOpen = false;
525
+ }
526
+ if (event.key === "Enter" && this.disabledOptionSelected) {
527
+ this.disabledOptionSelected = false;
528
+ event.stopImmediatePropagation();
529
+ }
530
+ if (event.key === "Shift") {
531
+ this.shiftPressed = false;
532
+ }
533
+ };
534
+ this.handleSelectAllClick = () => {
535
+ this.keyboardNav = false;
536
+ this.menu.focus();
537
+ this.emitSelectAll();
538
+ this.lastOptionFocused = null;
539
+ this.lastOptionSelected = null;
540
+ };
541
+ this.handleSelectAllBlur = (event) => {
542
+ this.host.classList.remove("ic-select-select-all-focused");
543
+ if (!this.menu.contains(event.relatedTarget)) {
544
+ this.handleMenuChange(false, false);
355
545
  }
356
546
  };
547
+ this.handleSelectAllFocus = () => {
548
+ this.host.classList.add("ic-select-select-all-focused");
549
+ this.lastOptionFocused = null;
550
+ this.lastOptionSelected = null;
551
+ };
552
+ // Fix for Safari - select all button click was causing menu to close
553
+ this.handleSelectAllMouseDown = (event) => {
554
+ event.preventDefault();
555
+ };
556
+ // When shift key is being used to select contiguous options one by one on a multi-select
557
+ // I.e. holding shift and pressing up and down arrow keys
558
+ this.handleSingleShiftSelect = (event, optionToSelectIndex, options) => {
559
+ if (this.isMultiSelect &&
560
+ event.shiftKey &&
561
+ !this.isOptionSelected(optionToSelectIndex)) {
562
+ this.selectHighlightedOption(options, optionToSelectIndex);
563
+ this.lastOptionSelected = optionToSelectIndex;
564
+ }
565
+ };
566
+ // When shift key is being used to select multiple options at once on a multi-select
567
+ // I.e. holding shift when selecting another option
568
+ this.handleMultipleShiftSelect = (lastOptionInSelection, useFocusForSelection = false, firstOptionSelected = null) => {
569
+ this.shiftPressed = false;
570
+ const firstOptionInSelection = firstOptionSelected === null
571
+ ? this.getFirstOptionInSelection(useFocusForSelection)
572
+ : firstOptionSelected;
573
+ if (firstOptionInSelection !== null) {
574
+ const optionsToSelect = [];
575
+ if (firstOptionInSelection < lastOptionInSelection) {
576
+ for (let i = firstOptionInSelection; i < lastOptionInSelection + 1; i++) {
577
+ optionsToSelect.push(i);
578
+ }
579
+ }
580
+ else {
581
+ for (let i = firstOptionInSelection; i > lastOptionInSelection - 1; i--) {
582
+ optionsToSelect.push(i);
583
+ }
584
+ }
585
+ optionsToSelect.forEach((optionIndex) => !this.isOptionSelected(optionIndex) && this.setInputValue(optionIndex));
586
+ this.deselectSelectedOptions(optionsToSelect);
587
+ }
588
+ };
589
+ this.handleOptionSelect = (event, optionIndex, useFocusForSelection = false) => {
590
+ const menuOptions = this.getMenuOptions();
591
+ const firstOptionInSelection = this.getFirstOptionInSelection(useFocusForSelection);
592
+ if (event.shiftKey && firstOptionInSelection !== null) {
593
+ this.handleMultipleShiftSelect(optionIndex, useFocusForSelection, firstOptionInSelection);
594
+ }
595
+ else {
596
+ this.selectHighlightedOption(menuOptions, optionIndex);
597
+ }
598
+ this.lastOptionFocused = optionIndex;
599
+ this.lastOptionSelected = optionIndex;
600
+ };
601
+ this.getFirstOptionInSelection = (useFocusForSelection) => {
602
+ return useFocusForSelection && this.lastOptionFocused !== null
603
+ ? this.lastOptionFocused
604
+ : this.lastOptionSelected !== null
605
+ ? this.lastOptionSelected
606
+ : null;
607
+ };
608
+ this.emitSelectAll = () => {
609
+ var _a;
610
+ // Select all if there is either no value or not all options are selected
611
+ // 'true' means select all, 'false' means clear all
612
+ this.menuOptionSelectAll.emit({
613
+ select: !this.value || !(((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) === this.ungroupedOptions.length),
614
+ });
615
+ };
357
616
  this.emitMenuKeyPress = (isNavKey, key) => {
358
617
  this.menuKeyPress.emit({ isNavKey: isNavKey, key: key });
359
618
  };
619
+ // Determines keyboard behaviour when selection is automatic
620
+ // (i.e. you don't have to press Enter select an option - just focus on it)
621
+ // and menu is focused
360
622
  this.autoSetValueOnMenuKeyDown = (event) => {
361
623
  event.cancelBubble = true;
362
624
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
@@ -416,15 +678,6 @@ const Menu = class {
416
678
  }
417
679
  this.emitMenuKeyPress(this.keyboardNav, event.key);
418
680
  };
419
- this.handleMenuKeyUp = (event) => {
420
- if (event.key === "Tab" && event.shiftKey) {
421
- this.preventClickOpen = false;
422
- }
423
- if (event.key === "Enter" && this.disabledOptionSelected) {
424
- this.disabledOptionSelected = false;
425
- event.stopImmediatePropagation();
426
- }
427
- };
428
681
  this.getOptionId = (value) => {
429
682
  return `${this.menuId}-${value}`;
430
683
  };
@@ -450,6 +703,10 @@ const Menu = class {
450
703
  }
451
704
  return sorted;
452
705
  };
706
+ this.getOptionHighlightedIndex = () => {
707
+ const menuOptions = this.getMenuOptions();
708
+ return menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
709
+ };
453
710
  this.isManualMode = this.activationType === "manual";
454
711
  this.scrollToSelected = (menu) => {
455
712
  const selectedOption = this.selectOnEnter
@@ -461,9 +718,14 @@ const Menu = class {
461
718
  elTop < menu.scrollTop + menu.offsetHeight) {
462
719
  menu.scrollTop = selectedOption.offsetTop;
463
720
  }
721
+ // 'aria-activedescendant' affects screen reader focus
722
+ // https://www.w3.org/TR/2017/WD-wai-aria-practices-1.1-20170628/#kbd_focus_activedescendant
723
+ this.menu.setAttribute(this.ACTIVE_DESCENDANT, selectedOption.id);
464
724
  selectedOption.focus();
465
725
  }
466
726
  };
727
+ // Set 'ungroupedOptions' variable and emit its value
728
+ // - this is all the options with disabled options and group titles removed
467
729
  this.loadUngroupedOptions = () => {
468
730
  if (this.options.length > 0 && this.options.map) {
469
731
  this.options.map((option) => {
@@ -490,21 +752,24 @@ const Menu = class {
490
752
  this.handleTimeoutBlur = (ev) => {
491
753
  this.timeoutBlur.emit({ ev });
492
754
  };
493
- this.optionContent = (option) => {
494
- var _a;
495
- return (index.h(index.Fragment, null, option.loading && index.h("ic-loading-indicator", { size: "icon" }), index.h("div", { class: "option-text-container" }, index.h("div", { class: "option-label" }, option.icon && (index.h("div", { class: "option-icon", innerHTML: option.icon, "aria-hidden": "true" })), index.h("ic-typography", { variant: "body", "aria-hidden": "true" }, option[this.labelField])), option.description && (index.h("ic-typography", { id: `${this.getOptionId(option[this.valueField])}-description`, class: "option-description", variant: "caption", "aria-hidden": "true" }, index.h("p", null, option.description))), option.element && (index.h("div", { class: "option-element", innerHTML: option.element.component, "aria-hidden": "true" }))), !!option[this.valueField] &&
755
+ this.optionContent = (option, selected) => {
756
+ const showCheckIcon = !!option[this.valueField] &&
496
757
  !!this.value &&
497
- option[this.valueField].toLowerCase() === ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toLowerCase()) &&
498
- this.parentEl.tagName !== "IC-SEARCH-BAR" && (index.h("span", { class: "check-icon", innerHTML: checkIcon.Check }))));
758
+ selected &&
759
+ this.parentEl.tagName !== "IC-SEARCH-BAR";
760
+ return (index.h(index.Fragment, null, option.loading && index.h("ic-loading-indicator", { size: "icon" }), index.h("div", { class: {
761
+ "option-text-container": true,
762
+ "show-check-icon": showCheckIcon,
763
+ } }, index.h("div", { class: "option-label" }, option.icon && (index.h("div", { class: "option-icon", innerHTML: option.icon, "aria-hidden": "true" })), index.h("ic-typography", { variant: "body", "aria-hidden": "true" }, option[this.labelField])), option.description && (index.h("ic-typography", { id: `${this.getOptionId(option[this.valueField])}-description`, class: "option-description", variant: "caption", "aria-hidden": "true" }, index.h("p", null, option.description))), option.element && (index.h("div", { class: "option-element", innerHTML: option.element.component, "aria-hidden": "true" }))), showCheckIcon && index.h("span", { class: "check-icon", innerHTML: checkIcon.Check })));
499
764
  };
500
- this.displayOption = (option, index$1, parentOption) => {
501
- const { open, value, keyboardNav, isManualMode, initialOptionsListRender, optionHighlighted, options, } = this;
765
+ this.displayOption = (option, selected, index$1, parentOption) => {
766
+ const { open, keyboardNav, isManualMode, initialOptionsListRender, optionHighlighted, options, } = this;
502
767
  return (index.h("li", { id: this.getOptionId(option[this.valueField]), class: {
503
768
  option: true,
504
769
  "focused-option": isManualMode
505
770
  ? (keyboardNav || initialOptionsListRender) &&
506
771
  option[this.valueField] === optionHighlighted
507
- : keyboardNav && option[this.valueField] === value,
772
+ : keyboardNav && selected,
508
773
  "last-recommended-option": option.recommended &&
509
774
  options[index$1 + 1] &&
510
775
  !options[index$1 + 1].recommended,
@@ -512,20 +777,21 @@ const Menu = class {
512
777
  "loading-option": option.loading,
513
778
  timeout: option.timedOut,
514
779
  }, role: "option", tabindex: open &&
515
- (option[this.valueField] === value ||
516
- option[this.valueField] === optionHighlighted) &&
780
+ (selected || option[this.valueField] === optionHighlighted) &&
517
781
  keyboardNav
518
782
  ? "0"
519
- : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": `${option[this.valueField] === value}`, "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading && this.handleOptionClick, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, "data-value": option[this.valueField], "data-label": option[this.labelField] }, option.timedOut ? (index.h(index.Fragment, null, index.h("div", { class: "loading-error-info" }, index.h("svg", { class: "error-icon-svg", "aria-labelledby": "error-title", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#000000" }, index.h("title", { id: "error-title" }, "Error"), index.h("g", { id: "close-octagon" }, index.h("path", { id: "Vector", 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" }))), index.h("ic-typography", { variant: "label" }, option[this.labelField])), index.h("ic-button", { size: "small", variant: "tertiary", onClick: this.handleRetry, onKeyDown: this.handleRetryKeyDown, onBlur: this.handleTimeoutBlur, id: "retry-button" }, "Retry"))) : (this.optionContent(option))));
783
+ : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": selected ? "true" : "false", "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading && this.handleOptionClick, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, "data-value": option[this.valueField], "data-label": option[this.labelField] }, option.timedOut ? (index.h(index.Fragment, null, index.h("div", { class: "loading-error-info" }, index.h("svg", { class: "error-icon-svg", "aria-labelledby": "error-title", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#000000" }, index.h("title", { id: "error-title" }, "Error"), index.h("g", { id: "close-octagon" }, index.h("path", { id: "Vector", 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" }))), index.h("ic-typography", { variant: "label" }, option[this.labelField])), index.h("ic-button", { size: "small", variant: "tertiary", onClick: this.handleRetry, onKeyDown: this.handleRetryKeyDown, onBlur: this.handleTimeoutBlur, id: "retry-button" }, "Retry"))) : (this.optionContent(option, selected))));
520
784
  };
521
785
  this.focusFromSearchKeypress = false;
522
786
  this.initialOptionsListRender = false;
523
787
  this.keyboardNav = false;
524
788
  this.optionHighlighted = undefined;
525
789
  this.preventIncorrectTabOrder = false;
790
+ this.menuOptions = undefined;
526
791
  this.activationType = "automatic";
527
792
  this.anchorEl = undefined;
528
793
  this.autoFocusOnSelected = true;
794
+ this.closeOnSelect = true;
529
795
  this.fullWidth = false;
530
796
  this.inputEl = undefined;
531
797
  this.inputLabel = undefined;
@@ -552,9 +818,6 @@ const Menu = class {
552
818
  this.ungroupedOptions = [];
553
819
  this.loadUngroupedOptions();
554
820
  }
555
- watchValueHandler() {
556
- this.menuValueChange.emit({ value: this.value });
557
- }
558
821
  connectedCallback() {
559
822
  this.getParentEl(this.parentEl);
560
823
  if (this.isSearchBar) {
@@ -564,11 +827,12 @@ const Menu = class {
564
827
  }
565
828
  }
566
829
  disconnectedCallback() {
830
+ var _a, _b;
567
831
  if (this.popperInstance) {
568
832
  this.popperInstance.destroy();
569
833
  }
570
- this.parentEl.removeEventListener("icClear", this.handleClearListener);
571
- this.parentEl.removeEventListener("icSubmitSearch", this.handleSubmitSearch);
834
+ (_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.removeEventListener("icClear", this.handleClearListener);
835
+ (_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.removeEventListener("icSubmitSearch", this.handleSubmitSearch);
572
836
  }
573
837
  componentWillLoad() {
574
838
  var _a, _b;
@@ -593,7 +857,7 @@ const Menu = class {
593
857
  }
594
858
  componentDidUpdate() {
595
859
  const inputValueInOptions = this.options.some((option) => option[this.valueField] === this.value);
596
- if (this.open && this.options.length !== 0) {
860
+ if (this.open && this.options.length !== 0 && !this.preventMenuFocus) {
597
861
  if (this.value &&
598
862
  this.keyboardNav &&
599
863
  inputValueInOptions &&
@@ -601,8 +865,7 @@ const Menu = class {
601
865
  !this.isSearchableSelect) {
602
866
  this.scrollToSelected(this.menu);
603
867
  }
604
- else if (this.inputEl.tagName !== "IC-TEXT-FIELD" &&
605
- this.inputEl.tagName !== "INPUT") {
868
+ else if (this.selectOnEnter) {
606
869
  this.menu.focus();
607
870
  }
608
871
  else if (!!this.optionHighlighted &&
@@ -610,13 +873,19 @@ const Menu = class {
610
873
  !this.preventIncorrectTabOrder) {
611
874
  const highlightedEl = this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`);
612
875
  if (highlightedEl) {
876
+ this.menu.setAttribute(this.ACTIVE_DESCENDANT, highlightedEl.id);
613
877
  highlightedEl.focus();
614
878
  }
615
879
  }
880
+ else if (this.inputEl.tagName !== "IC-TEXT-FIELD" &&
881
+ this.inputEl.tagName !== "INPUT") {
882
+ this.menu.focus();
883
+ }
616
884
  }
617
885
  if (this.open && !this.value && this.selectOnEnter) {
618
886
  this.scrollToSelected(this.menu);
619
887
  }
888
+ this.preventMenuFocus = false;
620
889
  }
621
890
  componentDidRender() {
622
891
  if (this.open && !this.popperInstance && this.anchorEl) {
@@ -646,7 +915,7 @@ const Menu = class {
646
915
  this.autoSetInputValueKeyboardOpen(event);
647
916
  }
648
917
  else {
649
- this.manSetInputValueKeyboardOpen(event);
918
+ this.manualSetInputValueKeyboardOpen(event);
650
919
  }
651
920
  }
652
921
  /**
@@ -661,8 +930,9 @@ const Menu = class {
661
930
  * boundary behaviour so sticking with PopperJS.
662
931
  */
663
932
  async initPopperJs(anchor) {
933
+ // Placements set to "-start" to accommodate for custom menu width - menu should always be aligned to the left
664
934
  this.popperInstance = popper.createPopper(anchor, this.host, {
665
- placement: "bottom",
935
+ placement: "bottom-start",
666
936
  modifiers: [
667
937
  {
668
938
  name: "offset",
@@ -673,7 +943,7 @@ const Menu = class {
673
943
  {
674
944
  name: "flip",
675
945
  options: {
676
- fallbackPlacements: ["top"],
946
+ fallbackPlacements: ["top-start"],
677
947
  rootBoundary: "viewport",
678
948
  },
679
949
  },
@@ -695,30 +965,43 @@ const Menu = class {
695
965
  }
696
966
  render() {
697
967
  const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, } = this;
968
+ const selectAllButtonText = `${(value === null || value === void 0 ? void 0 : value.length) === this.ungroupedOptions.length ? "Clear" : "Select"} all`;
969
+ const hasNoResults = this.host.classList.contains("no-results");
698
970
  return (index.h(index.Host, { class: {
699
971
  "ic-menu-full-width": fullWidth,
700
972
  "ic-menu-no-focus": (inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === "INPUT" || hasTimedOut || isLoading,
701
973
  [`ic-menu-${size}`]: true,
702
- "ic-menu-open": open,
703
- } }, options.length !== 0 && (index.h("ul", { id: menuId, class: "menu", role: "listbox", "aria-label": inputLabel, "aria-activedescendant": value != null && value !== "" ? this.getOptionId(value) : "", tabindex: open && !keyboardNav && (inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ? "0" : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index$1) => {
974
+ "ic-menu-open": open && options.length !== 0,
975
+ "ic-menu-multiple": this.isMultiSelect,
976
+ } }, options.length !== 0 && (index.h("ul", { id: menuId, class: "menu", role: "listbox", "aria-label": `${inputLabel} pop-up`, "aria-multiselectable": this.isMultiSelect ? "true" : "false", tabindex: open && !keyboardNav && (inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ? "0" : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index$1) => {
704
977
  if (option.children) {
705
978
  if (option.children.length > 0) {
706
- return (index.h("div", null, index.h("ic-typography", { class: "option-group-title", role: "presentation", variant: "subtitle-small" }, index.h("p", null, option[this.labelField])), option.children.map((childOption) => this.displayOption(childOption, index$1, option))));
979
+ return (index.h("div", null, index.h("ic-typography", { class: "option-group-title", role: "presentation", variant: "subtitle-small" }, index.h("p", null, option[this.labelField])), option.children.map((childOption) => childOption.label &&
980
+ this.displayOption(childOption, this.isMultiSelect
981
+ ? value === null || value === void 0 ? void 0 : value.includes(childOption[this.valueField])
982
+ : childOption[this.valueField] === value, index$1, option))));
707
983
  }
708
984
  else {
709
985
  return null;
710
986
  }
711
987
  }
712
988
  else {
713
- return this.displayOption(option, index$1);
714
- }
715
- })))));
989
+ // Display option only if it has a label (rather than displaying an empty space)
990
+ return (option.label &&
991
+ this.displayOption(option, this.isMultiSelect
992
+ ? value === null || value === void 0 ? void 0 : value.includes(option[this.valueField])
993
+ : option[this.valueField] === value, index$1));
994
+ }
995
+ }))), options.length !== 0 &&
996
+ this.isMultiSelect &&
997
+ !isLoading &&
998
+ !hasTimedOut &&
999
+ !hasNoResults && (index.h("div", { class: "option-bar" }, index.h("ic-typography", null, index.h("p", null, `${value ? value.length : 0}/${helpers.getOptionsWithoutGroupTitlesCount(this.options)} selected`)), index.h("ic-button", { 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)))));
716
1000
  }
717
1001
  get host() { return index.getElement(this); }
718
1002
  static get watchers() { return {
719
1003
  "open": ["watchOpenHandler"],
720
- "options": ["watchOptionsHandler"],
721
- "value": ["watchValueHandler"]
1004
+ "options": ["watchOptionsHandler"]
722
1005
  }; }
723
1006
  };
724
1007
  Menu.style = icMenuCss;