@ukic/web-components 3.3.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-fc4016d2.js → helpers-931fd72e.js} +30 -32
  3. package/dist/cjs/helpers-931fd72e.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +10 -8
  6. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -3
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -3
  13. package/dist/cjs/ic-button_3.cjs.entry.js +138 -145
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -5
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +8 -13
  20. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  24. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  25. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  27. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  29. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-hero.cjs.entry.js +7 -6
  31. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +33 -27
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +36 -13
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +12 -22
  38. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js +31 -39
  42. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js +121 -166
  44. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js +65 -62
  46. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  48. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  49. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js +6 -6
  52. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
  54. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  56. package/dist/cjs/ic-search-bar.cjs.entry.js +68 -34
  57. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-select.cjs.entry.js +142 -218
  60. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js +35 -17
  62. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  65. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  66. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  67. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  68. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  69. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  72. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-text-field.cjs.entry.js +16 -11
  75. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  79. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +54 -68
  80. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-toggle-button.cjs.entry.js +62 -64
  82. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-top-navigation.cjs.entry.js +74 -66
  84. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  86. package/dist/cjs/loader.cjs.js +1 -1
  87. package/dist/collection/ag-theme-icds.css +24 -4
  88. package/dist/collection/components/ic-accordion/ic-accordion.js +9 -7
  89. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  90. package/dist/collection/components/ic-accordion/ic-accordion.stories.js +1 -1
  91. package/dist/collection/components/ic-alert/ic-alert.css +4 -0
  92. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -2
  93. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  94. package/dist/collection/components/ic-button/ic-button.css +0 -8
  95. package/dist/collection/components/ic-button/ic-button.js +3 -3
  96. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  97. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +3 -0
  98. package/dist/collection/components/ic-checkbox/ic-checkbox.css +9 -1
  99. package/dist/collection/components/ic-checkbox/ic-checkbox.js +6 -11
  100. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  101. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +10 -2
  102. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +6 -3
  103. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  104. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +22 -0
  105. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  106. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  107. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  108. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  109. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  110. package/dist/collection/components/ic-hero/ic-hero.css +13 -4
  111. package/dist/collection/components/ic-hero/ic-hero.js +5 -4
  112. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  113. package/dist/collection/components/ic-hero/ic-hero.stories.js +1 -0
  114. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  115. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  116. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  117. package/dist/collection/components/ic-input-label/ic-input-label.css +2 -1
  118. package/dist/collection/components/ic-input-label/ic-input-label.js +31 -8
  119. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  120. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  121. package/dist/collection/components/ic-link/ic-link.js +12 -25
  122. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  123. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +3 -3
  124. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +210 -211
  125. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  126. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +1 -1
  127. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
  128. package/dist/collection/components/ic-menu/ic-menu.js +94 -47
  129. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  130. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  131. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +38 -47
  132. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  133. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +144 -170
  134. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  135. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +10 -14
  136. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +80 -74
  137. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  138. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  139. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  140. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  141. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  142. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +3 -0
  143. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  144. package/dist/collection/components/ic-radio-group/ic-radio-group.css +10 -2
  145. package/dist/collection/components/ic-radio-group/ic-radio-group.js +7 -4
  146. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  147. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +22 -0
  148. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  149. package/dist/collection/components/ic-search-bar/ic-search-bar.js +96 -34
  150. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  151. package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +29 -18
  152. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  153. package/dist/collection/components/ic-select/ic-select.js +197 -271
  154. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  155. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +21 -13
  156. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -13
  157. package/dist/collection/components/ic-select/ic-select_(single).stories.js +47 -30
  158. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +54 -16
  159. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  160. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +390 -0
  161. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  162. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  163. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  164. package/dist/collection/components/ic-step/ic-step.js +13 -13
  165. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  166. package/dist/collection/components/ic-switch/ic-switch.css +1 -4
  167. package/dist/collection/components/ic-switch/ic-switch.js +5 -4
  168. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  169. package/dist/collection/components/ic-switch/ic-switch.stories.js +8 -1
  170. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  171. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  172. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  173. package/dist/collection/components/ic-text-field/ic-text-field.js +21 -14
  174. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  175. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +12 -1
  176. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  177. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  178. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  179. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +40 -7
  180. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +80 -82
  181. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  182. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +79 -88
  183. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  184. package/dist/collection/components/ic-tooltip/ic-tooltip.js +2 -2
  185. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +1 -0
  186. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +89 -81
  187. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  188. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  189. package/dist/collection/utils/constants.js +1 -1
  190. package/dist/collection/utils/constants.js.map +1 -1
  191. package/dist/collection/utils/helpers.js +27 -30
  192. package/dist/collection/utils/helpers.js.map +1 -1
  193. package/dist/components/helpers.js +29 -32
  194. package/dist/components/helpers.js.map +1 -1
  195. package/dist/components/ic-accordion.js +9 -7
  196. package/dist/components/ic-accordion.js.map +1 -1
  197. package/dist/components/ic-alert.js +1 -1
  198. package/dist/components/ic-alert.js.map +1 -1
  199. package/dist/components/ic-breadcrumb-group.js +2 -2
  200. package/dist/components/ic-breadcrumb2.js +2 -2
  201. package/dist/components/ic-button2.js +4 -4
  202. package/dist/components/ic-button2.js.map +1 -1
  203. package/dist/components/ic-card-vertical.js +1 -1
  204. package/dist/components/ic-card-vertical.js.map +1 -1
  205. package/dist/components/ic-checkbox-group.js +4 -4
  206. package/dist/components/ic-checkbox-group.js.map +1 -1
  207. package/dist/components/ic-checkbox.js +7 -12
  208. package/dist/components/ic-checkbox.js.map +1 -1
  209. package/dist/components/ic-data-list.js +2 -2
  210. package/dist/components/ic-data-row.js +2 -2
  211. package/dist/components/ic-dialog.js +1 -1
  212. package/dist/components/ic-empty-state.js +2 -2
  213. package/dist/components/ic-footer-link.js +2 -2
  214. package/dist/components/ic-hero.js +6 -5
  215. package/dist/components/ic-hero.js.map +1 -1
  216. package/dist/components/ic-horizontal-scroll2.js +5 -5
  217. package/dist/components/ic-input-component-container2.js +3 -3
  218. package/dist/components/ic-input-container2.js +2 -2
  219. package/dist/components/ic-input-label2.js +33 -10
  220. package/dist/components/ic-input-label2.js.map +1 -1
  221. package/dist/components/ic-input-validation2.js +3 -3
  222. package/dist/components/ic-link2.js +12 -24
  223. package/dist/components/ic-link2.js.map +1 -1
  224. package/dist/components/ic-loading-indicator2.js +139 -143
  225. package/dist/components/ic-loading-indicator2.js.map +1 -1
  226. package/dist/components/ic-menu-group.js +1 -1
  227. package/dist/components/ic-menu2.js +30 -22
  228. package/dist/components/ic-menu2.js.map +1 -1
  229. package/dist/components/ic-navigation-button.js +32 -41
  230. package/dist/components/ic-navigation-button.js.map +1 -1
  231. package/dist/components/ic-navigation-group.js +122 -167
  232. package/dist/components/ic-navigation-group.js.map +1 -1
  233. package/dist/components/ic-navigation-item.js +68 -63
  234. package/dist/components/ic-navigation-item.js.map +1 -1
  235. package/dist/components/ic-navigation-menu2.js +5 -5
  236. package/dist/components/ic-page-header.js +6 -6
  237. package/dist/components/ic-pagination-item2.js +2 -2
  238. package/dist/components/ic-pagination.js +4 -4
  239. package/dist/components/ic-popover-menu.js +5 -5
  240. package/dist/components/ic-popover-menu.js.map +1 -1
  241. package/dist/components/ic-radio-group.js +5 -5
  242. package/dist/components/ic-radio-group.js.map +1 -1
  243. package/dist/components/ic-radio-option.js +4 -4
  244. package/dist/components/ic-radio-option.js.map +1 -1
  245. package/dist/components/ic-search-bar.js +72 -34
  246. package/dist/components/ic-search-bar.js.map +1 -1
  247. package/dist/components/ic-section-container2.js +2 -2
  248. package/dist/components/ic-select.js +141 -217
  249. package/dist/components/ic-select.js.map +1 -1
  250. package/dist/components/ic-side-navigation.js +36 -17
  251. package/dist/components/ic-side-navigation.js.map +1 -1
  252. package/dist/components/ic-skeleton.js +2 -2
  253. package/dist/components/ic-skip-link.js +2 -2
  254. package/dist/components/ic-status-tag.js +2 -2
  255. package/dist/components/ic-step.js +13 -13
  256. package/dist/components/ic-stepper.js +2 -2
  257. package/dist/components/ic-switch.js +5 -5
  258. package/dist/components/ic-switch.js.map +1 -1
  259. package/dist/components/ic-tab-context.js +1 -1
  260. package/dist/components/ic-tab-group.js +2 -2
  261. package/dist/components/ic-tab-panel.js +2 -2
  262. package/dist/components/ic-tab-panel.js.map +1 -1
  263. package/dist/components/ic-text-field.js +17 -11
  264. package/dist/components/ic-text-field.js.map +1 -1
  265. package/dist/components/ic-theme.js +2 -2
  266. package/dist/components/ic-toast-region.js +1 -1
  267. package/dist/components/ic-toast.js +4 -4
  268. package/dist/components/ic-toggle-button-group.js +53 -67
  269. package/dist/components/ic-toggle-button-group.js.map +1 -1
  270. package/dist/components/ic-toggle-button.js +62 -64
  271. package/dist/components/ic-toggle-button.js.map +1 -1
  272. package/dist/components/ic-tooltip2.js +2 -2
  273. package/dist/components/ic-top-navigation.js +75 -67
  274. package/dist/components/ic-top-navigation.js.map +1 -1
  275. package/dist/components/ic-typography2.js +2 -2
  276. package/dist/core/ag-theme-icds.css +24 -4
  277. package/dist/core/core.css +29 -25
  278. package/dist/core/core.esm.js +1 -1
  279. package/dist/core/core.esm.js.map +1 -1
  280. package/dist/core/{p-b371a498.entry.js → p-0f3a56bb.entry.js} +2 -2
  281. package/dist/core/p-0f3a56bb.entry.js.map +1 -0
  282. package/dist/core/{p-72c117b6.entry.js → p-0f86ea09.entry.js} +2 -2
  283. package/dist/core/p-1228fd8c.entry.js +2 -0
  284. package/dist/core/{p-b8da5c07.entry.js.map → p-1228fd8c.entry.js.map} +1 -1
  285. package/dist/core/p-1286b234.entry.js +2 -0
  286. package/dist/core/p-1286b234.entry.js.map +1 -0
  287. package/dist/core/{p-8c4f7c63.entry.js → p-13e65198.entry.js} +2 -2
  288. package/dist/core/{p-fbf57f0a.entry.js → p-20a6dc40.entry.js} +2 -2
  289. package/dist/core/p-20a6dc40.entry.js.map +1 -0
  290. package/dist/core/{p-cdf56a5d.entry.js → p-21ed856c.entry.js} +2 -2
  291. package/dist/core/p-21ed856c.entry.js.map +1 -0
  292. package/dist/core/p-226406d6.entry.js +2 -0
  293. package/dist/core/{p-70a6cff1.entry.js → p-24bb2265.entry.js} +2 -2
  294. package/dist/core/{p-d45d66c0.entry.js → p-2b342b23.entry.js} +2 -2
  295. package/dist/core/p-334672c1.entry.js +2 -0
  296. package/dist/core/p-334672c1.entry.js.map +1 -0
  297. package/dist/core/{p-8b5022bc.entry.js → p-3448c713.entry.js} +2 -2
  298. package/dist/core/p-37900547.entry.js +2 -0
  299. package/dist/core/p-37900547.entry.js.map +1 -0
  300. package/dist/core/p-3abaa877.entry.js +2 -0
  301. package/dist/core/p-3abaa877.entry.js.map +1 -0
  302. package/dist/core/{p-ef36181d.entry.js → p-3afc2870.entry.js} +2 -2
  303. package/dist/core/{p-aad10013.entry.js → p-3d7d2ff4.entry.js} +2 -2
  304. package/dist/core/p-41bb4db1.entry.js +2 -0
  305. package/dist/core/p-41bb4db1.entry.js.map +1 -0
  306. package/dist/core/{p-788c96ac.entry.js → p-44902a33.entry.js} +2 -2
  307. package/dist/core/{p-628c32b8.entry.js → p-476eac8c.entry.js} +2 -2
  308. package/dist/core/{p-9479f272.entry.js → p-49ca3f54.entry.js} +2 -2
  309. package/dist/core/{p-ebab7a9e.entry.js → p-4dfc41e7.entry.js} +2 -2
  310. package/dist/core/{p-83764268.entry.js → p-5026eeaf.entry.js} +2 -2
  311. package/dist/core/{p-2c17cc67.entry.js → p-54ea7120.entry.js} +2 -2
  312. package/dist/core/{p-a17499ff.entry.js → p-5b2bf9bb.entry.js} +2 -2
  313. package/dist/core/{p-0a436c47.entry.js → p-5d9b23ce.entry.js} +2 -2
  314. package/dist/core/p-5d9b23ce.entry.js.map +1 -0
  315. package/dist/core/{p-c9a4fe37.entry.js → p-5f9d1977.entry.js} +2 -2
  316. package/dist/core/p-5f9d1977.entry.js.map +1 -0
  317. package/dist/core/{p-1b2690b4.entry.js → p-6c10e1a2.entry.js} +2 -2
  318. package/dist/core/p-6c10e1a2.entry.js.map +1 -0
  319. package/dist/core/{p-1440847f.entry.js → p-6cb81f35.entry.js} +2 -2
  320. package/dist/core/{p-df88ff5b.entry.js → p-6dd73165.entry.js} +2 -2
  321. package/dist/core/p-7ead8535.entry.js +2 -0
  322. package/dist/core/p-7ead8535.entry.js.map +1 -0
  323. package/dist/core/{p-c8cf1ad5.entry.js → p-831e884c.entry.js} +2 -2
  324. package/dist/core/{p-267a19d4.entry.js → p-85f735ed.entry.js} +2 -2
  325. package/dist/core/p-89f493f3.entry.js +2 -0
  326. package/dist/core/p-89f493f3.entry.js.map +1 -0
  327. package/dist/core/{p-00bc353b.entry.js → p-8da025b5.entry.js} +2 -2
  328. package/dist/core/p-990c37aa.entry.js +2 -0
  329. package/dist/core/p-990c37aa.entry.js.map +1 -0
  330. package/dist/core/p-9e039aba.entry.js +2 -0
  331. package/dist/core/p-9e039aba.entry.js.map +1 -0
  332. package/dist/core/{p-bc2ca778.entry.js → p-9e051db4.entry.js} +2 -2
  333. package/dist/core/{p-a0161990.entry.js → p-9edc5973.entry.js} +2 -2
  334. package/dist/core/{p-2c371198.entry.js → p-a14025cc.entry.js} +2 -2
  335. package/dist/core/p-a7286727.entry.js +2 -0
  336. package/dist/core/p-a7286727.entry.js.map +1 -0
  337. package/dist/core/{p-c4663e1a.entry.js → p-ab4e8b4a.entry.js} +2 -2
  338. package/dist/core/{p-42a7d0b6.entry.js → p-ab7a5536.entry.js} +2 -2
  339. package/dist/core/{p-26dfc4db.entry.js → p-ac73cfb8.entry.js} +2 -2
  340. package/dist/core/{p-f0388d68.entry.js → p-ad374f0b.entry.js} +2 -2
  341. package/dist/core/p-ad374f0b.entry.js.map +1 -0
  342. package/dist/core/{p-513628ef.entry.js → p-b08bb522.entry.js} +2 -2
  343. package/dist/core/{p-1be17f22.entry.js → p-b1b27b7e.entry.js} +2 -2
  344. package/dist/core/p-b40ecf16.js +2 -0
  345. package/dist/core/p-b40ecf16.js.map +1 -0
  346. package/dist/core/{p-10e1e227.entry.js → p-b59007a3.entry.js} +2 -2
  347. package/dist/core/{p-16f55230.entry.js → p-b811c7a1.entry.js} +2 -2
  348. package/dist/core/p-b811c7a1.entry.js.map +1 -0
  349. package/dist/core/p-bae2df5e.entry.js +2 -0
  350. package/dist/core/p-bae2df5e.entry.js.map +1 -0
  351. package/dist/core/{p-bdc72446.entry.js → p-c8555360.entry.js} +2 -2
  352. package/dist/core/{p-a4f9b5bf.entry.js → p-ced2e6ca.entry.js} +2 -2
  353. package/dist/core/{p-9ca147f3.entry.js → p-d281c3cf.entry.js} +2 -2
  354. package/dist/core/p-d32c377d.entry.js +2 -0
  355. package/dist/core/p-d32c377d.entry.js.map +1 -0
  356. package/dist/core/p-d4a77f80.entry.js +2 -0
  357. package/dist/core/p-d4a77f80.entry.js.map +1 -0
  358. package/dist/core/{p-9c47521d.entry.js → p-d7476f6d.entry.js} +2 -2
  359. package/dist/core/{p-1838d1e9.entry.js → p-e107d1dd.entry.js} +2 -2
  360. package/dist/core/p-e506ec91.entry.js +2 -0
  361. package/dist/core/p-e506ec91.entry.js.map +1 -0
  362. package/dist/core/{p-b9459ba2.entry.js → p-fc5661ac.entry.js} +2 -2
  363. package/dist/core/p-fca45edb.entry.js +2 -0
  364. package/dist/core/p-fca45edb.entry.js.map +1 -0
  365. package/dist/esm/core.js +1 -1
  366. package/dist/esm/{helpers-f2ffaa7c.js → helpers-91abc444.js} +30 -33
  367. package/dist/esm/helpers-91abc444.js.map +1 -0
  368. package/dist/esm/ic-accordion-group.entry.js +1 -1
  369. package/dist/esm/ic-accordion.entry.js +10 -8
  370. package/dist/esm/ic-accordion.entry.js.map +1 -1
  371. package/dist/esm/ic-alert.entry.js +2 -2
  372. package/dist/esm/ic-alert.entry.js.map +1 -1
  373. package/dist/esm/ic-back-to-top.entry.js +1 -1
  374. package/dist/esm/ic-badge.entry.js +1 -1
  375. package/dist/esm/ic-breadcrumb-group.entry.js +3 -3
  376. package/dist/esm/ic-breadcrumb.entry.js +3 -3
  377. package/dist/esm/ic-button_3.entry.js +138 -145
  378. package/dist/esm/ic-button_3.entry.js.map +1 -1
  379. package/dist/esm/ic-card-vertical.entry.js +2 -2
  380. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  381. package/dist/esm/ic-checkbox-group.entry.js +5 -5
  382. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  383. package/dist/esm/ic-checkbox.entry.js +8 -13
  384. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  385. package/dist/esm/ic-chip.entry.js +1 -1
  386. package/dist/esm/ic-data-list.entry.js +2 -2
  387. package/dist/esm/ic-data-row.entry.js +3 -3
  388. package/dist/esm/ic-dialog.entry.js +2 -2
  389. package/dist/esm/ic-divider.entry.js +1 -1
  390. package/dist/esm/ic-empty-state.entry.js +3 -3
  391. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  392. package/dist/esm/ic-footer-link.entry.js +3 -3
  393. package/dist/esm/ic-footer.entry.js +1 -1
  394. package/dist/esm/ic-hero.entry.js +7 -6
  395. package/dist/esm/ic-hero.entry.js.map +1 -1
  396. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  397. package/dist/esm/ic-input-component-container_3.entry.js +33 -27
  398. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  399. package/dist/esm/ic-input-label_2.entry.js +36 -13
  400. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  401. package/dist/esm/ic-link.entry.js +12 -22
  402. package/dist/esm/ic-link.entry.js.map +1 -1
  403. package/dist/esm/ic-menu-group.entry.js +2 -2
  404. package/dist/esm/ic-menu-item.entry.js +1 -1
  405. package/dist/esm/ic-navigation-button.entry.js +31 -39
  406. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  407. package/dist/esm/ic-navigation-group.entry.js +121 -166
  408. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  409. package/dist/esm/ic-navigation-item.entry.js +65 -62
  410. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  411. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  412. package/dist/esm/ic-page-header.entry.js +7 -7
  413. package/dist/esm/ic-pagination-item.entry.js +2 -2
  414. package/dist/esm/ic-pagination.entry.js +5 -5
  415. package/dist/esm/ic-popover-menu.entry.js +6 -6
  416. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  417. package/dist/esm/ic-radio-group.entry.js +6 -6
  418. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  419. package/dist/esm/ic-radio-option.entry.js +5 -5
  420. package/dist/esm/ic-search-bar.entry.js +68 -34
  421. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  422. package/dist/esm/ic-section-container.entry.js +2 -2
  423. package/dist/esm/ic-select.entry.js +142 -218
  424. package/dist/esm/ic-select.entry.js.map +1 -1
  425. package/dist/esm/ic-side-navigation.entry.js +35 -17
  426. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  427. package/dist/esm/ic-skeleton.entry.js +2 -2
  428. package/dist/esm/ic-skip-link.entry.js +2 -2
  429. package/dist/esm/ic-status-tag.entry.js +3 -3
  430. package/dist/esm/ic-step.entry.js +14 -14
  431. package/dist/esm/ic-stepper.entry.js +3 -3
  432. package/dist/esm/ic-switch.entry.js +6 -6
  433. package/dist/esm/ic-switch.entry.js.map +1 -1
  434. package/dist/esm/ic-tab-context.entry.js +1 -1
  435. package/dist/esm/ic-tab-group.entry.js +3 -3
  436. package/dist/esm/ic-tab-panel.entry.js +2 -2
  437. package/dist/esm/ic-tab.entry.js +1 -1
  438. package/dist/esm/ic-text-field.entry.js +16 -11
  439. package/dist/esm/ic-text-field.entry.js.map +1 -1
  440. package/dist/esm/ic-theme.entry.js +2 -2
  441. package/dist/esm/ic-toast-region.entry.js +1 -1
  442. package/dist/esm/ic-toast.entry.js +4 -4
  443. package/dist/esm/ic-toggle-button-group.entry.js +54 -68
  444. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  445. package/dist/esm/ic-toggle-button.entry.js +62 -64
  446. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  447. package/dist/esm/ic-top-navigation.entry.js +75 -67
  448. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  449. package/dist/esm/ic-typography.entry.js +3 -3
  450. package/dist/esm/loader.js +1 -1
  451. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +3 -0
  452. package/dist/types/components/ic-input-label/ic-input-label.d.ts +2 -0
  453. package/dist/types/components/ic-link/ic-link.d.ts +2 -3
  454. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +28 -32
  455. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -0
  456. package/dist/types/components/ic-menu/ic-menu.d.ts +19 -12
  457. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +8 -5
  458. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +8 -19
  459. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +9 -7
  460. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +3 -0
  461. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +13 -0
  462. package/dist/types/components/ic-select/ic-select.d.ts +37 -38
  463. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  464. package/dist/types/components/ic-switch/ic-switch.d.ts +1 -0
  465. package/dist/types/components/ic-text-field/ic-text-field.d.ts +4 -2
  466. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +10 -11
  467. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +10 -12
  468. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +10 -8
  469. package/dist/types/components.d.ts +122 -94
  470. package/dist/types/utils/constants.d.ts +1 -1
  471. package/dist/types/utils/helpers.d.ts +1 -1
  472. package/hydrate/index.js +1047 -1100
  473. package/hydrate/index.mjs +1047 -1100
  474. package/package.json +3 -5
  475. package/vscode-data.json +16 -4
  476. package/dist/cjs/helpers-fc4016d2.js.map +0 -1
  477. package/dist/core/p-0a436c47.entry.js.map +0 -1
  478. package/dist/core/p-15b7adaf.entry.js +0 -2
  479. package/dist/core/p-15b7adaf.entry.js.map +0 -1
  480. package/dist/core/p-16f55230.entry.js.map +0 -1
  481. package/dist/core/p-18714198.entry.js +0 -2
  482. package/dist/core/p-18714198.entry.js.map +0 -1
  483. package/dist/core/p-1b2690b4.entry.js.map +0 -1
  484. package/dist/core/p-206c2a26.entry.js +0 -2
  485. package/dist/core/p-206c2a26.entry.js.map +0 -1
  486. package/dist/core/p-2e44cf53.entry.js +0 -2
  487. package/dist/core/p-2e44cf53.entry.js.map +0 -1
  488. package/dist/core/p-730d2f6e.entry.js +0 -2
  489. package/dist/core/p-730d2f6e.entry.js.map +0 -1
  490. package/dist/core/p-7fb79e87.entry.js +0 -2
  491. package/dist/core/p-7fb79e87.entry.js.map +0 -1
  492. package/dist/core/p-8242c24f.js +0 -2
  493. package/dist/core/p-8242c24f.js.map +0 -1
  494. package/dist/core/p-910f5f14.entry.js +0 -2
  495. package/dist/core/p-910f5f14.entry.js.map +0 -1
  496. package/dist/core/p-9cfc2bac.entry.js +0 -2
  497. package/dist/core/p-9cfc2bac.entry.js.map +0 -1
  498. package/dist/core/p-b371a498.entry.js.map +0 -1
  499. package/dist/core/p-b7568944.entry.js +0 -2
  500. package/dist/core/p-b7568944.entry.js.map +0 -1
  501. package/dist/core/p-b8da5c07.entry.js +0 -2
  502. package/dist/core/p-ba600947.entry.js +0 -2
  503. package/dist/core/p-ba600947.entry.js.map +0 -1
  504. package/dist/core/p-c45023b7.entry.js +0 -2
  505. package/dist/core/p-c45023b7.entry.js.map +0 -1
  506. package/dist/core/p-c9a4fe37.entry.js.map +0 -1
  507. package/dist/core/p-cdf56a5d.entry.js.map +0 -1
  508. package/dist/core/p-d6c50565.entry.js +0 -2
  509. package/dist/core/p-d6c50565.entry.js.map +0 -1
  510. package/dist/core/p-d975bf2f.entry.js +0 -2
  511. package/dist/core/p-d975bf2f.entry.js.map +0 -1
  512. package/dist/core/p-dede4974.entry.js +0 -2
  513. package/dist/core/p-dede4974.entry.js.map +0 -1
  514. package/dist/core/p-e86a6d2d.entry.js +0 -2
  515. package/dist/core/p-eeab3a2e.entry.js +0 -2
  516. package/dist/core/p-eeab3a2e.entry.js.map +0 -1
  517. package/dist/core/p-f0388d68.entry.js.map +0 -1
  518. package/dist/core/p-fbf57f0a.entry.js.map +0 -1
  519. package/dist/esm/helpers-f2ffaa7c.js.map +0 -1
  520. /package/dist/core/{p-72c117b6.entry.js.map → p-0f86ea09.entry.js.map} +0 -0
  521. /package/dist/core/{p-8c4f7c63.entry.js.map → p-13e65198.entry.js.map} +0 -0
  522. /package/dist/core/{p-e86a6d2d.entry.js.map → p-226406d6.entry.js.map} +0 -0
  523. /package/dist/core/{p-70a6cff1.entry.js.map → p-24bb2265.entry.js.map} +0 -0
  524. /package/dist/core/{p-d45d66c0.entry.js.map → p-2b342b23.entry.js.map} +0 -0
  525. /package/dist/core/{p-8b5022bc.entry.js.map → p-3448c713.entry.js.map} +0 -0
  526. /package/dist/core/{p-ef36181d.entry.js.map → p-3afc2870.entry.js.map} +0 -0
  527. /package/dist/core/{p-aad10013.entry.js.map → p-3d7d2ff4.entry.js.map} +0 -0
  528. /package/dist/core/{p-788c96ac.entry.js.map → p-44902a33.entry.js.map} +0 -0
  529. /package/dist/core/{p-628c32b8.entry.js.map → p-476eac8c.entry.js.map} +0 -0
  530. /package/dist/core/{p-9479f272.entry.js.map → p-49ca3f54.entry.js.map} +0 -0
  531. /package/dist/core/{p-ebab7a9e.entry.js.map → p-4dfc41e7.entry.js.map} +0 -0
  532. /package/dist/core/{p-83764268.entry.js.map → p-5026eeaf.entry.js.map} +0 -0
  533. /package/dist/core/{p-2c17cc67.entry.js.map → p-54ea7120.entry.js.map} +0 -0
  534. /package/dist/core/{p-a17499ff.entry.js.map → p-5b2bf9bb.entry.js.map} +0 -0
  535. /package/dist/core/{p-1440847f.entry.js.map → p-6cb81f35.entry.js.map} +0 -0
  536. /package/dist/core/{p-df88ff5b.entry.js.map → p-6dd73165.entry.js.map} +0 -0
  537. /package/dist/core/{p-c8cf1ad5.entry.js.map → p-831e884c.entry.js.map} +0 -0
  538. /package/dist/core/{p-267a19d4.entry.js.map → p-85f735ed.entry.js.map} +0 -0
  539. /package/dist/core/{p-00bc353b.entry.js.map → p-8da025b5.entry.js.map} +0 -0
  540. /package/dist/core/{p-bc2ca778.entry.js.map → p-9e051db4.entry.js.map} +0 -0
  541. /package/dist/core/{p-a0161990.entry.js.map → p-9edc5973.entry.js.map} +0 -0
  542. /package/dist/core/{p-2c371198.entry.js.map → p-a14025cc.entry.js.map} +0 -0
  543. /package/dist/core/{p-c4663e1a.entry.js.map → p-ab4e8b4a.entry.js.map} +0 -0
  544. /package/dist/core/{p-42a7d0b6.entry.js.map → p-ab7a5536.entry.js.map} +0 -0
  545. /package/dist/core/{p-26dfc4db.entry.js.map → p-ac73cfb8.entry.js.map} +0 -0
  546. /package/dist/core/{p-513628ef.entry.js.map → p-b08bb522.entry.js.map} +0 -0
  547. /package/dist/core/{p-1be17f22.entry.js.map → p-b1b27b7e.entry.js.map} +0 -0
  548. /package/dist/core/{p-10e1e227.entry.js.map → p-b59007a3.entry.js.map} +0 -0
  549. /package/dist/core/{p-bdc72446.entry.js.map → p-c8555360.entry.js.map} +0 -0
  550. /package/dist/core/{p-a4f9b5bf.entry.js.map → p-ced2e6ca.entry.js.map} +0 -0
  551. /package/dist/core/{p-9ca147f3.entry.js.map → p-d281c3cf.entry.js.map} +0 -0
  552. /package/dist/core/{p-9c47521d.entry.js.map → p-d7476f6d.entry.js.map} +0 -0
  553. /package/dist/core/{p-1838d1e9.entry.js.map → p-e107d1dd.entry.js.map} +0 -0
  554. /package/dist/core/{p-b9459ba2.entry.js.map → p-fc5661ac.entry.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-d337cd8a.js');
6
- const helpers = require('./helpers-fc4016d2.js');
6
+ const helpers = require('./helpers-931fd72e.js');
7
7
 
8
8
  const Expand = `<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
9
9
  <path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor" />
@@ -33,11 +33,14 @@ const Select = class {
33
33
  this.icOptionSelect = index.createEvent(this, "icOptionSelect", 7);
34
34
  this.icOptionDeselect = index.createEvent(this, "icOptionDeselect", 7);
35
35
  this.icRetryLoad = index.createEvent(this, "icRetryLoad", 7);
36
+ this.blurredBecauseButtonPressed = false;
36
37
  this.hasSetDefaultValue = false;
38
+ this.hasTimedOut = false;
37
39
  this.inheritedAttributes = {};
38
40
  this.initialOptionsEmpty = false;
39
41
  this.inputId = `ic-select-input-${inputIds++}`;
40
42
  this.menuId = `${this.inputId}-menu`;
43
+ this.retryButtonClick = false;
41
44
  this.searchableMenuItemSelected = false;
42
45
  this.ungroupedOptions = [];
43
46
  this.hostMutationObserver = null;
@@ -153,6 +156,12 @@ const Select = class {
153
156
  */
154
157
  this.debounce = 0;
155
158
  this.currDebounce = this.debounce;
159
+ /**
160
+ * The value of the select, reflected by the value of the currently selected option.
161
+ * For the searchable variant, the value is also reflected by the user input.
162
+ * For the multi-select variant, the value must be an array of option values.
163
+ */
164
+ this.value = null;
156
165
  this.initialValue = this.value;
157
166
  this.inputValueToFilter = this.value;
158
167
  // triggered when attributes of host element change
@@ -190,13 +199,27 @@ const Select = class {
190
199
  this.emitIcChange = (value) => {
191
200
  // If "Select all" button clicked, replace value with new value (array of all option values)
192
201
  if (this.multiple && !Array.isArray(value) && value !== null) {
193
- this.handleMultipleSelectChange(String(value));
202
+ // Update selected options - adds / removes them, in order of option list
203
+ // Create new array if value prop is undefined
204
+ if (this.value) {
205
+ let valueArray = this.value.slice();
206
+ if (this.value.includes(value)) {
207
+ valueArray.splice(valueArray.indexOf(value), 1);
208
+ }
209
+ else {
210
+ valueArray.push(value);
211
+ valueArray = this.getValueSortedByOptions(valueArray);
212
+ }
213
+ this.value = valueArray.length === 0 ? null : valueArray;
214
+ }
215
+ else {
216
+ this.value = [value];
217
+ }
194
218
  }
195
219
  else {
196
220
  this.value = value;
197
221
  }
198
- const valueToEmit = this.multiple ? this.value : value;
199
- this.icChange.emit({ value: valueToEmit || null });
222
+ this.icChange.emit({ value: this.multiple ? this.value : value });
200
223
  };
201
224
  this.emitIcInput = (value) => {
202
225
  clearTimeout(this.debounceIcInput);
@@ -209,30 +232,25 @@ const Select = class {
209
232
  if (this.options.length > 0) {
210
233
  this.setOptionsValuesFromLabels();
211
234
  this.uniqueOptions = this.deduplicateOptions(this.options);
212
- this.filteredOptions = this.uniqueOptions;
213
235
  }
214
236
  else {
215
237
  this.noOptions = [{ label: this.emptyOptionListText, value: "" }];
216
238
  this.uniqueOptions = this.noOptions;
217
- this.filteredOptions = this.noOptions;
218
239
  }
240
+ this.filteredOptions = this.uniqueOptions;
219
241
  if (this.isExternalFiltering()) {
220
242
  // When searchable select
221
243
  this.noOptions = null;
222
244
  this.updateSearchableSelectResultAriaLive();
223
245
  this.setDefaultValue();
224
246
  }
225
- else {
226
- if (this.initialOptionsEmpty) {
227
- this.setDefaultValue();
228
- this.initialOptionsEmpty = false;
229
- }
247
+ else if (this.initialOptionsEmpty) {
248
+ this.setDefaultValue();
249
+ this.initialOptionsEmpty = false;
230
250
  }
231
251
  }
232
- else {
233
- if (!this.searchable) {
234
- this.options = this.noOptions || [];
235
- }
252
+ else if (!this.searchable) {
253
+ this.options = this.noOptions || [];
236
254
  }
237
255
  };
238
256
  /**
@@ -243,11 +261,10 @@ const Select = class {
243
261
  this.deduplicateOptions = (options) => {
244
262
  const uniqueValues = [];
245
263
  const dedupedOptions = [];
246
- let dedupedChildren;
247
264
  options.forEach((option) => {
248
265
  if (option.children) {
249
266
  //If an option has children, we will loop through them
250
- dedupedChildren = [];
267
+ const dedupedChildren = [];
251
268
  option.children.forEach((child) => {
252
269
  if (uniqueValues.includes(child.value)) {
253
270
  console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`);
@@ -258,8 +275,7 @@ const Select = class {
258
275
  }
259
276
  });
260
277
  // construct a modified option, inserting the deduplicated children alongside the original information
261
- const modifiedParent = Object.assign(Object.assign({}, option), { children: dedupedChildren });
262
- dedupedOptions.push(modifiedParent);
278
+ dedupedOptions.push(Object.assign(Object.assign({}, option), { children: dedupedChildren }));
263
279
  }
264
280
  else {
265
281
  // If an option does not have children, assess to see if it's value has been included already
@@ -291,12 +307,10 @@ const Select = class {
291
307
  };
292
308
  this.setTextColor = () => {
293
309
  if (this.nativeSelectElement) {
294
- if (this.nativeSelectElement.selectedIndex === 0) {
295
- this.nativeSelectElement.className = "placeholder";
296
- }
297
- else {
298
- this.nativeSelectElement.className = "select-option-selected";
299
- }
310
+ this.nativeSelectElement.className =
311
+ this.nativeSelectElement.selectedIndex === 0
312
+ ? "placeholder"
313
+ : "select-option-selected";
300
314
  }
301
315
  };
302
316
  this.setMenuChange = (open) => {
@@ -304,27 +318,12 @@ const Select = class {
304
318
  this.open = open;
305
319
  }
306
320
  };
307
- this.getLabelFromValue = (value) => {
308
- return helpers.getLabelFromValue(value, this.uniqueOptions);
309
- };
310
- this.getMultipleOptionsString = (selectedValues) => {
311
- const selectedLabels = selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map((value) => this.getLabelFromValue(value)).filter((label) => !!label);
312
- return selectedLabels === null || selectedLabels === void 0 ? void 0 : selectedLabels.join(", ");
313
- };
314
- this.getFilteredChildMenuOptions = (option) => {
315
- let children = option.children;
316
- if (option.children) {
317
- if (this.searchable) {
318
- children = helpers.getFilteredMenuOptions(option.children, !!this.includeDescriptionsInSearch, this.searchableSelectInputValue || "", this.searchMatchPosition);
319
- }
320
- else {
321
- children = helpers.getFilteredMenuOptions(option.children, false, this.pressedCharacters, "start");
322
- }
323
- }
324
- const newOption = Object.assign({}, option);
325
- newOption.children = children;
326
- return newOption;
327
- };
321
+ this.getLabelFromValue = (value) => helpers.getLabelFromValue(value, this.uniqueOptions);
322
+ this.getMultipleOptionsString = (selectedValues) => selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map((value) => this.getLabelFromValue(value)).filter((label) => !!label).join(", ");
323
+ this.getFilteredChildMenuOptions = (option) => (Object.assign(Object.assign({}, option), { children: option.children &&
324
+ helpers.getFilteredMenuOptions(option.children, this.searchable && !!this.includeDescriptionsInSearch, this.searchable
325
+ ? this.searchableSelectInputValue || ""
326
+ : this.pressedCharacters, this.searchable ? this.searchMatchPosition : "start") }));
328
327
  // (For multi-select) get value array, i.e. selected option values, in order they appear in option list
329
328
  this.getValueSortedByOptions = (value) => {
330
329
  const valueArray = value;
@@ -343,13 +342,13 @@ const Select = class {
343
342
  // (rather than native <select> - rendered when viewed on a mobile / tablet screen)
344
343
  this.handleCustomSelectChange = (event) => {
345
344
  var _a, _b;
346
- const value = event.detail.value;
347
- if (event.detail.label === this.emptyOptionListText) {
345
+ const { value, label, optionId } = event.detail;
346
+ if (label === this.emptyOptionListText) {
348
347
  (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.focus();
349
348
  return;
350
349
  }
351
350
  if (this.searchable) {
352
- this.value = value;
351
+ this.value = value || null;
353
352
  this.searchableMenuItemSelected = true;
354
353
  // After editing the input, if selecting the same option as before, set the input value to label again
355
354
  if (this.value === this.currValue) {
@@ -360,64 +359,39 @@ const Select = class {
360
359
  this.hiddenInputValue =
361
360
  this.getValueFromLabel(this.searchableSelectInputValue) || null;
362
361
  }
363
- if (this.multiple && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.includes(value))) {
364
- this.icOptionDeselect.emit({ value });
365
- }
366
- else {
367
- this.icOptionSelect.emit({ value });
368
- }
369
- this.ariaActiveDescendant = event.detail.optionId;
370
- this.emitIcChange(value);
371
- };
372
- // Update selected options - adds / removes them, in order of option list
373
- // Create new array if value prop is undefined
374
- this.handleMultipleSelectChange = (value) => {
375
- if (this.value) {
376
- let valueArray = this.value.slice();
377
- if (this.value.includes(value)) {
378
- const valueIndex = valueArray.indexOf(value);
379
- valueArray.splice(valueIndex, 1);
362
+ if (value) {
363
+ if (this.multiple && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.includes(value))) {
364
+ this.icOptionDeselect.emit({ value });
380
365
  }
381
366
  else {
382
- valueArray.push(value);
383
- valueArray = this.getValueSortedByOptions(valueArray);
367
+ this.icOptionSelect.emit({ value });
384
368
  }
385
- this.value = valueArray.length === 0 ? null : valueArray;
386
369
  }
387
- else {
388
- const valueArray = [];
389
- valueArray.push(value);
390
- this.value = valueArray;
391
- }
392
- };
393
- this.handleSelectAllChange = (event) => {
394
- const selectAllOptions = event.detail.select;
395
- const allEnabledOptions = this.ungroupedOptions.filter((option) => !option.disabled);
396
- const allValues = allEnabledOptions.map((option) => option.value);
397
- let newValue;
398
- if (selectAllOptions) {
399
- let unselectedValues;
370
+ this.ariaActiveDescendant = optionId;
371
+ this.emitIcChange(value || null);
372
+ };
373
+ this.handleSelectAllChange = ({ detail, }) => {
374
+ const allValues = this.ungroupedOptions
375
+ .filter((option) => !option.disabled)
376
+ .map((option) => option.value);
377
+ if (detail.select) {
400
378
  // Only emit icOptionSelect for all values that are newly selected
401
- if (this.value) {
402
- unselectedValues = allValues.filter((value) => this.value && !this.value.includes(value));
403
- }
404
- else {
405
- unselectedValues = allValues;
406
- }
379
+ const unselectedValues = this.value
380
+ ? allValues.filter((value) => this.value && !this.value.includes(value))
381
+ : allValues;
407
382
  unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));
408
- newValue = allValues;
409
383
  }
410
384
  else {
411
385
  // Only emit icOptionDeselect for values that were selected
412
386
  this.value.forEach((value) => this.icOptionDeselect.emit({ value }));
413
- newValue = null;
414
387
  }
415
- this.emitIcChange(newValue);
388
+ this.emitIcChange(detail.select ? allValues : null);
416
389
  };
417
390
  this.handleMenuChange = (event) => {
418
391
  this.open = event.detail.open;
419
392
  this.pressedCharacters = "";
420
- this.searchable && this.handleFocusIndicatorDisplay();
393
+ if (this.searchable)
394
+ this.handleFocusIndicatorDisplay();
421
395
  };
422
396
  // clears the debounce delay when navigating the menu with arrow keys etc
423
397
  // to prevent delay in change event, which should only occur when typing in input
@@ -492,19 +466,18 @@ const Select = class {
492
466
  if (this.open && key === " " && this.pressedCharacters.length === 0) {
493
467
  this.setMenuChange(false);
494
468
  }
495
- if (key.length === 1 && !this.searchable) {
496
- window.clearTimeout(this.characterKeyPressTimer);
497
- this.characterKeyPressTimer = window.setTimeout(() => (this.pressedCharacters = ""), 1000);
498
- if (!(key === " " && !this.pressedCharacters)) {
499
- this.pressedCharacters += key;
500
- this.handleFilter();
501
- if (!this.noOptions) {
502
- this.emitIcChange(this.filteredOptions[0].value);
503
- }
504
- }
505
- }
506
- else {
469
+ if (key.length !== 1 || this.searchable) {
507
470
  this.pressedCharacters = "";
471
+ return;
472
+ }
473
+ window.clearTimeout(this.characterKeyPressTimer);
474
+ this.characterKeyPressTimer = window.setTimeout(() => (this.pressedCharacters = ""), 1000);
475
+ if (key !== " " || !!this.pressedCharacters) {
476
+ this.pressedCharacters += key;
477
+ this.handleFilter();
478
+ if (!this.noOptions) {
479
+ this.emitIcChange(this.filteredOptions[0].value);
480
+ }
508
481
  }
509
482
  };
510
483
  this.handleNativeSelectKeyDown = (event) => {
@@ -523,19 +496,17 @@ const Select = class {
523
496
  if (this.isExternalFiltering() && (event.key === "Enter" || isArrowKey)) {
524
497
  this.menu.options = this.filteredOptions;
525
498
  }
526
- else {
527
- if (!this.hasTimedOut) {
528
- this.noOptions = null;
529
- this.menu.options = this.uniqueOptions;
530
- }
499
+ else if (!this.hasTimedOut) {
500
+ this.noOptions = null;
501
+ this.menu.options = this.uniqueOptions;
531
502
  }
532
503
  }
533
504
  if (this.open && event.key === "Enter") {
534
505
  this.setMenuChange(false);
535
506
  }
536
507
  else {
537
- if (!(isArrowKey && this.noOptions !== null)) {
538
- if (!(event.key === " " && this.pressedCharacters.length > 0)) {
508
+ if (!isArrowKey || this.noOptions === null) {
509
+ if (event.key !== " " || this.pressedCharacters.length <= 0) {
539
510
  // Keyboard events get passed onto ic-menu
540
511
  (_a = this.menu) === null || _a === void 0 ? void 0 : _a.handleKeyboardOpen(event);
541
512
  }
@@ -551,9 +522,9 @@ const Select = class {
551
522
  this.handleClearButtonBlur = (ev) => {
552
523
  var _a;
553
524
  const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector("#retry-button");
554
- if (!(this.searchableSelectElement &&
555
- ev.relatedTarget === this.searchableSelectElement) &&
556
- !(retryButton && ev.relatedTarget === retryButton)) {
525
+ if ((!this.searchableSelectElement ||
526
+ ev.relatedTarget !== this.searchableSelectElement) &&
527
+ (!retryButton || ev.relatedTarget !== retryButton)) {
557
528
  this.setMenuChange(false);
558
529
  this.handleFocusIndicatorDisplay();
559
530
  }
@@ -562,12 +533,8 @@ const Select = class {
562
533
  this.handleFilter = () => {
563
534
  var _a;
564
535
  const options = this.deduplicateOptions(this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions);
565
- let isGrouped = false;
536
+ const isGrouped = options.some((option) => !!option.children);
566
537
  let newFilteredOptions = [];
567
- options.map((option) => {
568
- if (option.children)
569
- isGrouped = true;
570
- });
571
538
  let menuOptionsFiltered;
572
539
  if (this.searchable) {
573
540
  menuOptionsFiltered = helpers.getFilteredMenuOptions(options, !!this.includeDescriptionsInSearch, this.inputValueToFilter || "", this.searchMatchPosition);
@@ -581,30 +548,14 @@ const Select = class {
581
548
  newFilteredOptions = menuOptionsFiltered;
582
549
  }
583
550
  else if (isGrouped) {
584
- options.map((option) => {
585
- if (this.includeGroupTitlesInSearch) {
586
- if (menuOptionsFiltered.indexOf(option) !== -1) {
587
- newFilteredOptions.push(option);
588
- }
589
- else {
590
- newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
591
- }
592
- }
593
- else {
594
- newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
595
- }
596
- });
597
- }
598
- let noChildOptionsWhenFiltered = false;
599
- if (isGrouped) {
600
- noChildOptionsWhenFiltered = true;
601
- newFilteredOptions.map((option) => {
602
- if (option.children && option.children.length > 0) {
603
- noChildOptionsWhenFiltered = false;
604
- }
605
- });
606
- }
607
- if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {
551
+ newFilteredOptions = options.map((option) => this.includeGroupTitlesInSearch &&
552
+ menuOptionsFiltered.indexOf(option) !== -1
553
+ ? option
554
+ : this.getFilteredChildMenuOptions(option));
555
+ }
556
+ if (newFilteredOptions.length > 0 &&
557
+ (!isGrouped ||
558
+ newFilteredOptions.some(({ children }) => children && children.length > 0))) {
608
559
  this.noOptions = null;
609
560
  this.filteredOptions = newFilteredOptions;
610
561
  }
@@ -639,11 +590,7 @@ const Select = class {
639
590
  }, this.timeout);
640
591
  }
641
592
  };
642
- this.getValueFromLabel = (label) => {
643
- var _a;
644
- return (label &&
645
- ((_a = this.uniqueOptions.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value));
646
- };
593
+ this.getValueFromLabel = (label) => { var _a; return label && ((_a = this.uniqueOptions.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value); };
647
594
  this.handleSearchableSelectInput = (event) => {
648
595
  this.searchableSelectInputValue = event.target.value;
649
596
  this.emitIcInput(this.searchableSelectInputValue);
@@ -657,19 +604,18 @@ const Select = class {
657
604
  this.setMenuChange(true);
658
605
  if (!this.disableAutoFiltering) {
659
606
  this.handleFilter();
660
- this.debounceAriaLiveUpdate();
607
+ clearTimeout(this.debounceAria);
608
+ window.setTimeout(() => {
609
+ this.updateSearchableSelectResultAriaLive();
610
+ }, 800);
661
611
  }
662
612
  };
663
613
  this.updateSearchableSelectResultAriaLive = () => {
664
614
  var _a;
665
615
  const searchableSelectResultsStatusEl = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".searchable-select-results-status");
666
616
  if (searchableSelectResultsStatusEl) {
667
- if (this.noOptions !== null) {
668
- searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;
669
- }
670
- else {
671
- searchableSelectResultsStatusEl.innerText = "";
672
- }
617
+ searchableSelectResultsStatusEl.innerText =
618
+ this.noOptions !== null ? this.emptyOptionListText : "";
673
619
  }
674
620
  };
675
621
  this.updateMultiSelectedCountAriaLive = () => {
@@ -703,13 +649,12 @@ const Select = class {
703
649
  return;
704
650
  }
705
651
  const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector("#retry-button");
706
- const isSearchableAndNoFocusedInternalElements = this.searchable &&
652
+ if (this.searchable &&
707
653
  !!this.menu &&
708
654
  target !== this.menu &&
709
655
  !Array.from(this.menu.querySelectorAll("[role='option']")).includes(target) &&
710
- !(this.clearButton && target === this.clearButton) &&
711
- !(retryButton && target === retryButton);
712
- if (isSearchableAndNoFocusedInternalElements) {
656
+ (!this.clearButton || target !== this.clearButton) &&
657
+ (!retryButton || target !== retryButton)) {
713
658
  if (!this.retryButtonClick) {
714
659
  this.setMenuChange(false);
715
660
  // Clear input field on blur when searchable if no option is selected
@@ -748,6 +693,7 @@ const Select = class {
748
693
  this.filteredOptions = this.uniqueOptions;
749
694
  }
750
695
  };
696
+ this.renderNativeOption = (option) => (index.h("option", { value: option.value, disabled: option.disabled, selected: option.value === this.currValue }, option.label));
751
697
  }
752
698
  watchDisabledHandler() {
753
699
  helpers.removeDisabledFalse(this.disabled, this.el);
@@ -759,7 +705,9 @@ const Select = class {
759
705
  this.setOptions();
760
706
  }
761
707
  debounceChangedHandler(newValue) {
762
- this.updateOnChangeDebounce(newValue);
708
+ if (this.currDebounce !== newValue) {
709
+ this.currDebounce = newValue;
710
+ }
763
711
  }
764
712
  valueChangedHandler() {
765
713
  if (this.value !== this.currValue) {
@@ -842,83 +790,59 @@ const Select = class {
842
790
  this.searchableSelectElement.focus();
843
791
  }
844
792
  }
845
- updateOnChangeDebounce(newValue) {
846
- if (this.currDebounce !== newValue) {
847
- this.currDebounce = newValue;
848
- }
849
- }
850
- debounceAriaLiveUpdate() {
851
- clearTimeout(this.debounceAria);
852
- window.setTimeout(() => {
853
- this.updateSearchableSelectResultAriaLive();
854
- }, 800);
855
- }
856
793
  render() {
857
- const { size, disabled, fullWidth, helperText, hideLabel, label, menuId, multiple, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, currValue, theme, } = this;
794
+ var _a;
795
+ const { size, disabled, fullWidth, helperText, hideLabel, label, menuId, multiple, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, currValue, theme, hiddenInputValue, open, inputId, searchableSelectInputValue, loading, value, emptyOptionListText, uniqueOptions, selectOnEnter, form, inheritedAttributes, ariaActiveDescendant, hasTimedOut, noOptions, filteredOptions, clearButtonFocused, } = this;
858
796
  // HTML inputs only accept 'string' for their value
859
797
  // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string
860
- helpers.renderHiddenInput(this.el, this.searchable ? this.hiddenInputValue : currValue, name || this.inputId, disabled);
798
+ helpers.renderHiddenInput(this.el, searchable ? hiddenInputValue : currValue, name || inputId, disabled);
861
799
  const invalid = `${validationStatus === helpers.IcInformationStatus.Error}`;
862
- const describedBy = helpers.getInputDescribedByText(this.inputId, helperText !== "", helpers.hasValidationStatus(this.validationStatus, !!this.disabled)).trim();
863
- let showLeftIcon = !!this.el.querySelector(`[slot="icon"]`);
864
- if (showLeftIcon && (disabled || (readonly && !this.value))) {
865
- showLeftIcon = false;
866
- }
867
- const optionsSelectedCount = `${currValue === null || currValue === void 0 ? void 0 : currValue.length} of ${helpers.getOptionsWithoutGroupTitlesCount(this.options)} selected`;
800
+ const describedBy = helpers.getInputDescribedByText(this.el, inputId, helperText !== "", helpers.hasValidationStatus(validationStatus, !!disabled)).trim();
868
801
  const valueLabelString = multiple
869
802
  ? this.getMultipleOptionsString(currValue)
870
803
  : this.getLabelFromValue(currValue);
871
804
  const isClearable = !disabled &&
872
805
  (searchable
873
- ? this.searchableSelectInputValue
874
- : currValue && !this.loading && showClearButton);
875
- return (index.h(index.Host, { key: '456f6fa40aca4f93fba6e0c43c57cc171c358ede', class: {
876
- "ic-select-disabled": !!disabled,
877
- "ic-select-searchable": !!searchable,
806
+ ? !!searchableSelectInputValue
807
+ : !!currValue && !loading && showClearButton);
808
+ return (index.h(index.Host, { key: '4772c66e1053f7c19cafff3753af54715eab05d9', class: {
809
+ "ic-select-disabled": disabled,
810
+ "ic-select-searchable": searchable,
878
811
  [`ic-select-${size}`]: size !== "medium",
879
- "ic-select-full-width": !!fullWidth,
812
+ "ic-select-full-width": fullWidth,
880
813
  [`ic-theme-${theme}`]: theme !== "inherit",
881
- }, onBlur: this.onBlur }, index.h("ic-input-container", { key: 'f97234577ffc014d5da69a0ebbf8abac0a97e034', readonly: readonly }, !hideLabel && (index.h("ic-input-label", { key: 'a6a1bf8152904b7a845de920bd9717c76ea47f2e', for: this.inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), index.h("ic-input-component-container", { key: '6515fb2dca1c45d6388123ea2d75f5de57f1bc36', ref: (el) => (this.anchorEl = el), class: { "menu-open": this.open }, size: size, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, showLeftIcon && (index.h("span", { key: '0f70c956b1be70903d518c3dc787fc3980a0c205', slot: "left-icon", class: {
882
- ["readonly"]: !!readonly,
883
- ["has-value"]: !!this.value,
884
- } }, index.h("slot", { key: '7e602e257167e4397fc131b118da86b0e3d38583', name: "icon" }))), readonly ? (index.h("ic-typography", null, index.h("p", null, valueLabelString))) : helpers.isMobileOrTablet() && !multiple ? (index.h("select", Object.assign({ ref: (el) => (this.nativeSelectElement = el), disabled: disabled, onChange: this.handleNativeSelectChange, required: required, id: this.inputId, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.handleNativeSelectKeyDown, form: this.form }, this.inheritedAttributes), index.h("option", { value: "", selected: true, disabled: !showClearButton }, placeholder), options.map((option) => {
885
- if (option.children) {
886
- return (index.h("optgroup", { label: option.label }, option.children.map((option) => (index.h("option", { value: option.value, disabled: option.disabled, selected: option.value === currValue }, option.label)))));
887
- }
888
- else {
889
- return (index.h("option", { value: option.value, disabled: option.disabled, selected: option.value === currValue }, option.label));
890
- }
891
- }))) : searchable ? (index.h("div", { class: "searchable-select-container" }, index.h("input", { class: {
814
+ }, onBlur: this.onBlur }, index.h("ic-input-container", { key: '8d4a5a0b53f01cc6740b9fc1f5fa0805e45c8169', readonly: readonly }, !hideLabel && (index.h("ic-input-label", { key: '37e19194734f052932dd6ac7c56994f67802a1bd', for: inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly }, index.h("slot", { key: '3b27f513ffc78d514c7695b1e5941041837efd55', name: "helper-text", slot: "helper-text" }))), index.h("ic-input-component-container", { key: 'a5bf5d711e23862ec08fb8f8e85ce0beec436ccc', ref: (el) => (this.anchorEl = el), class: { "menu-open": open }, size: size, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, helpers.isSlotUsed(this.el, "icon") &&
815
+ !disabled &&
816
+ (!readonly || !!value) && (index.h("span", { key: '42fc8c78302cde968d3c96ad72c9aac66652829e', slot: "left-icon", class: {
817
+ readonly,
818
+ "has-value": !!value,
819
+ } }, index.h("slot", { key: '0cf7160335785716303e4e2e602be1a2d975098e', name: "icon" }))), readonly ? (index.h("ic-typography", null, index.h("p", null, valueLabelString))) : helpers.isMobileOrTablet() && !multiple ? (index.h("select", Object.assign({ ref: (el) => (this.nativeSelectElement = el), disabled: disabled, onChange: this.handleNativeSelectChange, required: required, id: inputId, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.handleNativeSelectKeyDown, form: form }, inheritedAttributes), index.h("option", { value: "", selected: true, disabled: !showClearButton }, placeholder), options.map((option) => option.children ? (index.h("optgroup", { label: option.label }, option.children.map((child) => this.renderNativeOption(child)))) : (this.renderNativeOption(option))))) : searchable ? (index.h("div", { class: "searchable-select-container" }, index.h("input", { class: {
892
820
  "select-input": true,
893
- "with-clear-button": !!this.searchableSelectInputValue,
894
- }, role: "combobox", autocomplete: "off", "aria-label": label, "aria-describedby": describedBy, "aria-activedescendant": this.ariaActiveDescendant, "aria-autocomplete": "list", "aria-expanded": `${this.open}`, "aria-invalid": invalid, "aria-required": `${required}`, "aria-controls": menuId, ref: (el) => (this.searchableSelectElement = el), id: this.inputId, value: this.searchableSelectInputValue || undefined, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, form: this.form }), isClearable && (index.h("div", { class: "clear-button-container" }, index.h("ic-button", { id: "clear-button", ref: (el) => (this.clearButton = el), "aria-label": this.searchableSelectInputValue &&
895
- (currValue === null || this.loading)
821
+ "with-clear-button": !!searchableSelectInputValue,
822
+ }, role: "combobox", autocomplete: "off", "aria-label": label, "aria-describedby": describedBy, "aria-activedescendant": ariaActiveDescendant, "aria-autocomplete": "list", "aria-expanded": `${open}`, "aria-invalid": invalid, "aria-required": `${required}`, "aria-controls": menuId, ref: (el) => (this.searchableSelectElement = el), id: inputId, value: searchableSelectInputValue || undefined, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, form: form }), isClearable && (index.h("div", { class: "clear-button-container" }, index.h("ic-button", { id: "clear-button", ref: (el) => (this.clearButton = el), "aria-label": searchableSelectInputValue &&
823
+ (currValue === null || loading)
896
824
  ? "Clear input"
897
- : "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon", theme: this.clearButtonFocused ? "light" : "dark" }), index.h("div", { class: "divider" }))), index.h("span", { onMouseDown: this.handleExpandIconMouseDown, class: {
825
+ : "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon", theme: clearButtonFocused ? "light" : "dark" }), index.h("div", { class: "divider" }))), index.h("span", { onMouseDown: this.handleExpandIconMouseDown, class: {
898
826
  "expand-icon": true,
899
- "expand-icon-open": this.open,
900
- }, innerHTML: Expand, "aria-hidden": "true" }), index.h("div", { "aria-live": "polite", role: "status", class: "searchable-select-results-status" }))) : (index.h("div", { class: "select-container" }, index.h("button", { class: "select-input", ref: (el) => (this.customSelectElement = el), id: this.inputId, "aria-label": `${label}, ${(multiple && currValue
901
- ? `${optionsSelectedCount}, ${valueLabelString}`
902
- : valueLabelString) || placeholder}${required ? ", required" : ""}`, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-haspopup": "listbox", "aria-expanded": this.open ? "true" : "false", "aria-owns": menuId, "aria-controls": menuId, disabled: disabled, onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.handleClick, onMouseDown: this.handleMouseDown, onKeyDown: this.handleKeyDown }, index.h("ic-typography", { variant: "body", class: {
827
+ "expand-icon-open": open,
828
+ }, innerHTML: Expand, "aria-hidden": "true" }), index.h("div", { "aria-live": "polite", role: "status", class: "searchable-select-results-status" }))) : (index.h("div", { class: "select-container" }, index.h("button", { class: "select-input", ref: (el) => (this.customSelectElement = el), id: inputId, "aria-label": `${label}, ${(multiple && currValue
829
+ ? `${currValue.length} of ${helpers.getOptionsWithoutGroupTitlesCount(options)} selected, ${valueLabelString}`
830
+ : valueLabelString) || placeholder}${required ? ", required" : ""}`, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-haspopup": "listbox", "aria-expanded": `${open}`, "aria-owns": menuId, "aria-controls": menuId, disabled: disabled, onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.handleClick, onMouseDown: this.handleMouseDown, onKeyDown: this.handleKeyDown }, index.h("ic-typography", { variant: "body", class: {
903
831
  "value-text": true,
904
- "with-clear-button": !!isClearable,
905
- placeholder: !this.loading && multiple
906
- ? !this.value || this.value.length < 1
832
+ "with-clear-button": isClearable,
833
+ placeholder: !loading && multiple
834
+ ? !value || value.length < 1
907
835
  : !this.getLabelFromValue(currValue),
908
836
  } }, valueLabelString || placeholder), index.h("div", { class: "select-input-end" }, isClearable && index.h("div", { class: "divider" }), index.h("span", { class: {
909
837
  "expand-icon": true,
910
- "expand-icon-open": this.open,
911
- }, innerHTML: Expand, "aria-hidden": "true" }))), isClearable && (index.h("ic-button", { id: "clear-button", "aria-label": "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon", theme: this.clearButtonFocused ? "light" : "dark" }))))), (!helpers.isMobileOrTablet() || multiple) && (index.h("ic-menu", { key: 'f54e79314035d2c04a47292eb9e8e2ecd4421545', class: {
912
- "no-results": this.loading ||
913
- this.hasTimedOut ||
914
- (this.noOptions !== null &&
915
- this.noOptions[0] &&
916
- this.noOptions[0].label === this.emptyOptionListText),
917
- }, ref: (el) => (this.menu = el), inputEl: (searchable
838
+ "expand-icon-open": open,
839
+ }, innerHTML: Expand, "aria-hidden": "true" }))), isClearable && (index.h("ic-button", { id: "clear-button", "aria-label": "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon", theme: clearButtonFocused ? "light" : "dark" }))))), (!helpers.isMobileOrTablet() || multiple) && (index.h("ic-menu", { key: '3c09e05b72ddab09e9cfe2fb3ba2e403964dcb37', class: {
840
+ "no-results": loading ||
841
+ hasTimedOut ||
842
+ ((_a = noOptions === null || noOptions === void 0 ? void 0 : noOptions[0]) === null || _a === void 0 ? void 0 : _a.label) === emptyOptionListText,
843
+ }, ref: (el) => (this.menu = el), inputEl: searchable
918
844
  ? this.searchableSelectElement
919
- : this.customSelectElement), inputLabel: label, anchorEl: this.anchorEl, size: size, menuId: menuId, open: this.open, options: searchable ? this.filteredOptions : this.uniqueOptions, value: multiple ? currValue : currValue, fullWidth: fullWidth, selectOnEnter: this.selectOnEnter, onMenuStateChange: this.handleMenuChange, onMenuOptionSelect: this.handleCustomSelectChange, onMenuOptionSelectAll: this.handleSelectAllChange, onMenuKeyPress: this.handleMenuKeyPress, onUngroupedOptionsSet: this.setUngroupedOptions, onRetryButtonClicked: this.handleRetry, parentEl: this.el, onTimeoutBlur: this.onTimeoutBlur, activationType: this.searchable || multiple || this.selectOnEnter
920
- ? "manual"
921
- : "automatic", closeOnSelect: !multiple })), this.multiple && (index.h("div", { key: 'b1a65d56087d6603846cdd9cfc8c086e49597001', "aria-live": "polite", role: "status", class: "multi-select-selected-count" })), helpers.hasValidationStatus(this.validationStatus, !!this.disabled) && (index.h("ic-input-validation", { key: 'e5553be7be57e5ae847bcd1a4d2525b18c4d1429', class: { "menu-open": this.open }, ariaLiveMode: "polite", status: validationStatus, message: validationText || "", for: this.inputId })))));
845
+ : this.customSelectElement, inputLabel: label, anchorEl: this.anchorEl, size: size, menuId: menuId, open: open, options: searchable ? filteredOptions : uniqueOptions, value: multiple ? currValue : currValue, fullWidth: fullWidth, selectOnEnter: selectOnEnter, onMenuStateChange: this.handleMenuChange, onMenuOptionSelect: this.handleCustomSelectChange, onMenuOptionSelectAll: this.handleSelectAllChange, onMenuKeyPress: this.handleMenuKeyPress, onUngroupedOptionsSet: this.setUngroupedOptions, onRetryButtonClicked: this.handleRetry, parentEl: this.el, onTimeoutBlur: this.onTimeoutBlur, activationType: searchable || multiple || selectOnEnter ? "manual" : "automatic", closeOnSelect: !multiple })), multiple && (index.h("div", { key: '744fd85d0482cc49928b5d167691a58ff87d22ab', "aria-live": "polite", role: "status", class: "multi-select-selected-count" })), helpers.hasValidationStatus(validationStatus, disabled) && (index.h("ic-input-validation", { key: '034f52ca6c0b23f29d784ec342a83e9434a0e352', class: { "menu-open": open }, ariaLiveMode: "polite", status: validationStatus, message: validationText, for: inputId })))));
922
846
  }
923
847
  static get delegatesFocus() { return true; }
924
848
  get el() { return index.getElement(this); }