@ukic/canary-web-components 3.0.0-canary.18 → 3.0.0-canary.19

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 (480) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-6f33d131.js → helpers-a5405964.js} +12 -20
  3. package/dist/cjs/helpers-a5405964.js.map +1 -0
  4. package/dist/cjs/ic-accordion.cjs.entry.js +9 -7
  5. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-button_3.cjs.entry.js +8 -8
  13. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox_3.cjs.entry.js +20 -37
  20. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-data-table.cjs.entry.js +311 -319
  27. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-date-input.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-hero.cjs.entry.js +6 -5
  35. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  37. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +22 -21
  39. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-input-label_2.cjs.entry.js +7 -7
  41. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-link.cjs.entry.js +11 -21
  43. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-navigation-group.cjs.entry.js +115 -163
  47. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-navigation-item.cjs.entry.js +64 -61
  49. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  51. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
  53. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-pagination_4.cjs.entry.js +160 -231
  55. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  57. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
  59. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
  61. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-search-bar.cjs.entry.js +49 -31
  63. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  65. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-side-navigation.cjs.entry.js +23 -4
  67. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  69. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  75. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  79. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  81. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  83. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  85. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  87. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  89. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  91. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +53 -67
  93. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-toggle-button.cjs.entry.js +61 -63
  95. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-top-navigation.cjs.entry.js +64 -62
  97. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-tree-item.cjs.entry.js +1 -1
  99. package/dist/cjs/ic-tree-view.cjs.entry.js +1 -1
  100. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  101. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  102. package/dist/cjs/loader.cjs.js +1 -1
  103. package/dist/collection/components/ic-data-table/ic-data-table.css +3 -5
  104. package/dist/collection/components/ic-data-table/ic-data-table.js +310 -318
  105. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  106. package/dist/collection/components/ic-data-table/story-data.js +1 -0
  107. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  108. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +30 -22
  109. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  110. package/dist/collection/utils/helpers.js +23 -51
  111. package/dist/collection/utils/helpers.js.map +1 -1
  112. package/dist/collection/utils/types.js.map +1 -1
  113. package/dist/components/helpers2.js +12 -20
  114. package/dist/components/helpers2.js.map +1 -1
  115. package/dist/components/ic-accordion.js +9 -7
  116. package/dist/components/ic-accordion.js.map +1 -1
  117. package/dist/components/ic-alert.js +1 -1
  118. package/dist/components/ic-alert.js.map +1 -1
  119. package/dist/components/ic-breadcrumb-group.js +2 -2
  120. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  121. package/dist/components/ic-breadcrumb2.js +2 -2
  122. package/dist/components/ic-breadcrumb2.js.map +1 -1
  123. package/dist/components/ic-button2.js +3 -3
  124. package/dist/components/ic-button2.js.map +1 -1
  125. package/dist/components/ic-card-vertical.js +1 -1
  126. package/dist/components/ic-card-vertical.js.map +1 -1
  127. package/dist/components/ic-checkbox-group.js +2 -2
  128. package/dist/components/ic-checkbox-group.js.map +1 -1
  129. package/dist/components/ic-checkbox2.js +7 -12
  130. package/dist/components/ic-checkbox2.js.map +1 -1
  131. package/dist/components/ic-data-list.js +2 -2
  132. package/dist/components/ic-data-list.js.map +1 -1
  133. package/dist/components/ic-data-row.js +2 -2
  134. package/dist/components/ic-data-row.js.map +1 -1
  135. package/dist/components/ic-data-table.js +311 -319
  136. package/dist/components/ic-data-table.js.map +1 -1
  137. package/dist/components/ic-dialog.js +1 -1
  138. package/dist/components/ic-dialog.js.map +1 -1
  139. package/dist/components/ic-empty-state2.js +2 -2
  140. package/dist/components/ic-empty-state2.js.map +1 -1
  141. package/dist/components/ic-footer-link.js +2 -2
  142. package/dist/components/ic-footer-link.js.map +1 -1
  143. package/dist/components/ic-hero.js +6 -5
  144. package/dist/components/ic-hero.js.map +1 -1
  145. package/dist/components/ic-horizontal-scroll2.js +5 -5
  146. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  147. package/dist/components/ic-input-component-container2.js +3 -3
  148. package/dist/components/ic-input-component-container2.js.map +1 -1
  149. package/dist/components/ic-input-container2.js +2 -2
  150. package/dist/components/ic-input-container2.js.map +1 -1
  151. package/dist/components/ic-input-label2.js +4 -4
  152. package/dist/components/ic-input-label2.js.map +1 -1
  153. package/dist/components/ic-input-validation2.js +3 -3
  154. package/dist/components/ic-input-validation2.js.map +1 -1
  155. package/dist/components/ic-link2.js +12 -24
  156. package/dist/components/ic-link2.js.map +1 -1
  157. package/dist/components/ic-loading-indicator2.js +3 -3
  158. package/dist/components/ic-loading-indicator2.js.map +1 -1
  159. package/dist/components/ic-menu-group.js +1 -1
  160. package/dist/components/ic-menu-group.js.map +1 -1
  161. package/dist/components/ic-menu2.js +17 -16
  162. package/dist/components/ic-menu2.js.map +1 -1
  163. package/dist/components/ic-navigation-group.js +115 -163
  164. package/dist/components/ic-navigation-group.js.map +1 -1
  165. package/dist/components/ic-navigation-item.js +67 -62
  166. package/dist/components/ic-navigation-item.js.map +1 -1
  167. package/dist/components/ic-navigation-menu2.js +4 -4
  168. package/dist/components/ic-navigation-menu2.js.map +1 -1
  169. package/dist/components/ic-page-header.js +6 -6
  170. package/dist/components/ic-page-header.js.map +1 -1
  171. package/dist/components/ic-pagination-bar2.js +12 -23
  172. package/dist/components/ic-pagination-bar2.js.map +1 -1
  173. package/dist/components/ic-pagination-item2.js +1 -1
  174. package/dist/components/ic-pagination-item2.js.map +1 -1
  175. package/dist/components/ic-pagination2.js +4 -4
  176. package/dist/components/ic-pagination2.js.map +1 -1
  177. package/dist/components/ic-popover-menu.js +5 -5
  178. package/dist/components/ic-popover-menu.js.map +1 -1
  179. package/dist/components/ic-radio-group.js +4 -4
  180. package/dist/components/ic-radio-group.js.map +1 -1
  181. package/dist/components/ic-radio-option.js +4 -4
  182. package/dist/components/ic-radio-option.js.map +1 -1
  183. package/dist/components/ic-search-bar.js +50 -31
  184. package/dist/components/ic-search-bar.js.map +1 -1
  185. package/dist/components/ic-section-container2.js +2 -2
  186. package/dist/components/ic-section-container2.js.map +1 -1
  187. package/dist/components/ic-select2.js +141 -217
  188. package/dist/components/ic-select2.js.map +1 -1
  189. package/dist/components/ic-side-navigation.js +24 -4
  190. package/dist/components/ic-side-navigation.js.map +1 -1
  191. package/dist/components/ic-skeleton.js +2 -2
  192. package/dist/components/ic-skeleton.js.map +1 -1
  193. package/dist/components/ic-skip-link.js +2 -2
  194. package/dist/components/ic-skip-link.js.map +1 -1
  195. package/dist/components/ic-status-tag.js +2 -2
  196. package/dist/components/ic-status-tag.js.map +1 -1
  197. package/dist/components/ic-step.js +13 -13
  198. package/dist/components/ic-step.js.map +1 -1
  199. package/dist/components/ic-stepper.js +2 -2
  200. package/dist/components/ic-stepper.js.map +1 -1
  201. package/dist/components/ic-switch.js +4 -4
  202. package/dist/components/ic-switch.js.map +1 -1
  203. package/dist/components/ic-tab-context.js +1 -1
  204. package/dist/components/ic-tab-context.js.map +1 -1
  205. package/dist/components/ic-tab-group.js +2 -2
  206. package/dist/components/ic-tab-group.js.map +1 -1
  207. package/dist/components/ic-tab-panel.js +2 -2
  208. package/dist/components/ic-tab-panel.js.map +1 -1
  209. package/dist/components/ic-text-field2.js +16 -10
  210. package/dist/components/ic-text-field2.js.map +1 -1
  211. package/dist/components/ic-theme.js +1 -1
  212. package/dist/components/ic-theme.js.map +1 -1
  213. package/dist/components/ic-toast-region.js +1 -1
  214. package/dist/components/ic-toast-region.js.map +1 -1
  215. package/dist/components/ic-toast.js +3 -3
  216. package/dist/components/ic-toast.js.map +1 -1
  217. package/dist/components/ic-toggle-button-group.js +53 -67
  218. package/dist/components/ic-toggle-button-group.js.map +1 -1
  219. package/dist/components/ic-toggle-button.js +61 -63
  220. package/dist/components/ic-toggle-button.js.map +1 -1
  221. package/dist/components/ic-tooltip2.js +2 -2
  222. package/dist/components/ic-tooltip2.js.map +1 -1
  223. package/dist/components/ic-top-navigation.js +65 -63
  224. package/dist/components/ic-top-navigation.js.map +1 -1
  225. package/dist/components/ic-tree-view.js +1 -1
  226. package/dist/components/ic-typography2.js +2 -2
  227. package/dist/components/ic-typography2.js.map +1 -1
  228. package/dist/core/core.esm.js +1 -1
  229. package/dist/core/core.esm.js.map +1 -1
  230. package/dist/core/{p-ef07630d.entry.js → p-0c9c6c31.entry.js} +2 -2
  231. package/dist/core/{p-ef07630d.entry.js.map → p-0c9c6c31.entry.js.map} +1 -1
  232. package/dist/core/p-0e0e0942.js +2 -0
  233. package/dist/core/p-0e0e0942.js.map +1 -0
  234. package/dist/core/{p-824cbf95.entry.js → p-1673d010.entry.js} +2 -2
  235. package/dist/core/{p-824cbf95.entry.js.map → p-1673d010.entry.js.map} +1 -1
  236. package/dist/core/{p-e9683f52.entry.js → p-16e78c1d.entry.js} +2 -2
  237. package/dist/core/p-16e78c1d.entry.js.map +1 -0
  238. package/dist/core/p-17926ee3.entry.js +2 -0
  239. package/dist/core/p-17926ee3.entry.js.map +1 -0
  240. package/dist/core/{p-fbcc2a11.entry.js → p-188ba287.entry.js} +2 -2
  241. package/dist/core/{p-fbcc2a11.entry.js.map → p-188ba287.entry.js.map} +1 -1
  242. package/dist/core/{p-bff6fef6.entry.js → p-1f18bbf6.entry.js} +2 -2
  243. package/dist/core/{p-bff6fef6.entry.js.map → p-1f18bbf6.entry.js.map} +1 -1
  244. package/dist/core/{p-0e3a62cc.entry.js → p-2667c808.entry.js} +2 -2
  245. package/dist/core/{p-3800cda8.entry.js → p-28611f52.entry.js} +2 -2
  246. package/dist/core/p-28611f52.entry.js.map +1 -0
  247. package/dist/core/{p-fb1fce87.entry.js → p-29a49ea2.entry.js} +2 -2
  248. package/dist/core/{p-fb1fce87.entry.js.map → p-29a49ea2.entry.js.map} +1 -1
  249. package/dist/core/{p-bc2ca778.entry.js → p-3cb4ecef.entry.js} +2 -2
  250. package/dist/core/{p-bc2ca778.entry.js.map → p-3cb4ecef.entry.js.map} +1 -1
  251. package/dist/core/p-4444e787.entry.js +2 -0
  252. package/dist/core/{p-cd770df5.entry.js.map → p-4444e787.entry.js.map} +1 -1
  253. package/dist/core/p-4aaf10a5.entry.js +2 -0
  254. package/dist/core/p-4aaf10a5.entry.js.map +1 -0
  255. package/dist/core/{p-e7c00131.entry.js → p-578a02ff.entry.js} +2 -2
  256. package/dist/core/{p-e7c00131.entry.js.map → p-578a02ff.entry.js.map} +1 -1
  257. package/dist/core/{p-a054bb1b.entry.js → p-582da938.entry.js} +2 -2
  258. package/dist/core/{p-a054bb1b.entry.js.map → p-582da938.entry.js.map} +1 -1
  259. package/dist/core/{p-d328f6fc.entry.js → p-5926c2b2.entry.js} +2 -2
  260. package/dist/core/{p-d328f6fc.entry.js.map → p-5926c2b2.entry.js.map} +1 -1
  261. package/dist/core/p-61e78ce0.entry.js +2 -0
  262. package/dist/core/p-61e78ce0.entry.js.map +1 -0
  263. package/dist/core/{p-5744b8b3.entry.js → p-6a63a73a.entry.js} +2 -2
  264. package/dist/core/{p-5744b8b3.entry.js.map → p-6a63a73a.entry.js.map} +1 -1
  265. package/dist/core/{p-266686d0.entry.js → p-6bfff7ba.entry.js} +2 -2
  266. package/dist/core/p-6bfff7ba.entry.js.map +1 -0
  267. package/dist/core/{p-f6141c29.entry.js → p-7c3cd0b8.entry.js} +2 -2
  268. package/dist/core/p-7e4f5717.entry.js +2 -0
  269. package/dist/core/p-7e4f5717.entry.js.map +1 -0
  270. package/dist/core/{p-eb88b348.entry.js → p-7eaa223b.entry.js} +2 -2
  271. package/dist/core/{p-eb88b348.entry.js.map → p-7eaa223b.entry.js.map} +1 -1
  272. package/dist/core/{p-09f54ca3.entry.js → p-8112444e.entry.js} +2 -2
  273. package/dist/core/{p-09f54ca3.entry.js.map → p-8112444e.entry.js.map} +1 -1
  274. package/dist/core/{p-af1d6e41.entry.js → p-85a17585.entry.js} +2 -2
  275. package/dist/core/{p-1aed572a.entry.js → p-864e337f.entry.js} +2 -2
  276. package/dist/core/{p-1aed572a.entry.js.map → p-864e337f.entry.js.map} +1 -1
  277. package/dist/core/{p-fb8d27fa.entry.js → p-887b1302.entry.js} +2 -2
  278. package/dist/core/{p-fb8d27fa.entry.js.map → p-887b1302.entry.js.map} +1 -1
  279. package/dist/core/p-8d2d9e11.entry.js +2 -0
  280. package/dist/core/p-8d2d9e11.entry.js.map +1 -0
  281. package/dist/core/p-920f6480.entry.js +2 -0
  282. package/dist/core/p-920f6480.entry.js.map +1 -0
  283. package/dist/core/{p-7c096c5e.entry.js → p-9687e929.entry.js} +2 -2
  284. package/dist/core/{p-7c096c5e.entry.js.map → p-9687e929.entry.js.map} +1 -1
  285. package/dist/core/{p-33f4abc9.entry.js → p-976f4280.entry.js} +2 -2
  286. package/dist/core/{p-33f4abc9.entry.js.map → p-976f4280.entry.js.map} +1 -1
  287. package/dist/core/p-9989ec00.entry.js +2 -0
  288. package/dist/core/p-9989ec00.entry.js.map +1 -0
  289. package/dist/core/{p-93e154e0.entry.js → p-9a78f449.entry.js} +2 -2
  290. package/dist/core/{p-93e154e0.entry.js.map → p-9a78f449.entry.js.map} +1 -1
  291. package/dist/core/{p-f9a16fa8.entry.js → p-9aecbfe9.entry.js} +2 -2
  292. package/dist/core/{p-f9a16fa8.entry.js.map → p-9aecbfe9.entry.js.map} +1 -1
  293. package/dist/core/{p-45f32fea.entry.js → p-a894ddb6.entry.js} +2 -2
  294. package/dist/core/p-a894ddb6.entry.js.map +1 -0
  295. package/dist/core/p-abcaf14d.entry.js +2 -0
  296. package/dist/core/p-abcaf14d.entry.js.map +1 -0
  297. package/dist/core/p-aeeff0e5.entry.js +2 -0
  298. package/dist/core/p-aeeff0e5.entry.js.map +1 -0
  299. package/dist/core/{p-e38b20bf.entry.js → p-b92727c0.entry.js} +2 -2
  300. package/dist/core/{p-e38b20bf.entry.js.map → p-b92727c0.entry.js.map} +1 -1
  301. package/dist/core/{p-d3d48548.entry.js → p-ba5e1b21.entry.js} +2 -2
  302. package/dist/core/{p-d3d48548.entry.js.map → p-ba5e1b21.entry.js.map} +1 -1
  303. package/dist/core/{p-b9459ba2.entry.js → p-bf3b853e.entry.js} +2 -2
  304. package/dist/core/{p-b9459ba2.entry.js.map → p-bf3b853e.entry.js.map} +1 -1
  305. package/dist/core/{p-9882c572.entry.js → p-c3be8a0f.entry.js} +2 -2
  306. package/dist/core/p-c3be8a0f.entry.js.map +1 -0
  307. package/dist/core/{p-72c117b6.entry.js → p-c5ffe2cf.entry.js} +2 -2
  308. package/dist/core/{p-72c117b6.entry.js.map → p-c5ffe2cf.entry.js.map} +1 -1
  309. package/dist/core/{p-aa83f828.entry.js → p-c8d207e1.entry.js} +2 -2
  310. package/dist/core/p-ca7e1219.entry.js +2 -0
  311. package/dist/core/p-ca7e1219.entry.js.map +1 -0
  312. package/dist/core/p-d0c38d58.entry.js +2 -0
  313. package/dist/core/p-d0c38d58.entry.js.map +1 -0
  314. package/dist/core/{p-df88ff5b.entry.js → p-d4903dcd.entry.js} +2 -2
  315. package/dist/core/{p-df88ff5b.entry.js.map → p-d4903dcd.entry.js.map} +1 -1
  316. package/dist/core/{p-9ca147f3.entry.js → p-de1e04ac.entry.js} +2 -2
  317. package/dist/core/{p-9ca147f3.entry.js.map → p-de1e04ac.entry.js.map} +1 -1
  318. package/dist/core/{p-8b5022bc.entry.js → p-dee21f6d.entry.js} +2 -2
  319. package/dist/core/{p-8b5022bc.entry.js.map → p-dee21f6d.entry.js.map} +1 -1
  320. package/dist/core/{p-ad390076.entry.js → p-e003ad46.entry.js} +2 -2
  321. package/dist/core/{p-ad390076.entry.js.map → p-e003ad46.entry.js.map} +1 -1
  322. package/dist/core/{p-1be17f22.entry.js → p-e2629bfe.entry.js} +2 -2
  323. package/dist/core/{p-1be17f22.entry.js.map → p-e2629bfe.entry.js.map} +1 -1
  324. package/dist/core/p-e38dd019.entry.js +2 -0
  325. package/dist/core/p-e38dd019.entry.js.map +1 -0
  326. package/dist/core/{p-84daed4d.entry.js → p-e546d477.entry.js} +2 -2
  327. package/dist/core/p-e546d477.entry.js.map +1 -0
  328. package/dist/core/{p-5c363e21.entry.js → p-f9e78341.entry.js} +2 -2
  329. package/dist/core/{p-0a0b25c5.entry.js → p-fedfd000.entry.js} +2 -2
  330. package/dist/esm/core.js +1 -1
  331. package/dist/esm/{helpers-0bb68835.js → helpers-ef2db990.js} +13 -21
  332. package/dist/esm/helpers-ef2db990.js.map +1 -0
  333. package/dist/esm/ic-accordion.entry.js +9 -7
  334. package/dist/esm/ic-accordion.entry.js.map +1 -1
  335. package/dist/esm/ic-alert.entry.js +1 -1
  336. package/dist/esm/ic-alert.entry.js.map +1 -1
  337. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  338. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  339. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  340. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  341. package/dist/esm/ic-button_3.entry.js +8 -8
  342. package/dist/esm/ic-button_3.entry.js.map +1 -1
  343. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  344. package/dist/esm/ic-card-vertical.entry.js +1 -1
  345. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  346. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  347. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  348. package/dist/esm/ic-checkbox_3.entry.js +20 -37
  349. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  350. package/dist/esm/ic-data-list.entry.js +2 -2
  351. package/dist/esm/ic-data-list.entry.js.map +1 -1
  352. package/dist/esm/ic-data-row.entry.js +2 -2
  353. package/dist/esm/ic-data-row.entry.js.map +1 -1
  354. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  355. package/dist/esm/ic-data-table.entry.js +311 -319
  356. package/dist/esm/ic-data-table.entry.js.map +1 -1
  357. package/dist/esm/ic-date-input.entry.js +1 -1
  358. package/dist/esm/ic-date-picker.entry.js +1 -1
  359. package/dist/esm/ic-dialog.entry.js +1 -1
  360. package/dist/esm/ic-dialog.entry.js.map +1 -1
  361. package/dist/esm/ic-footer-link.entry.js +2 -2
  362. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  363. package/dist/esm/ic-hero.entry.js +6 -5
  364. package/dist/esm/ic-hero.entry.js.map +1 -1
  365. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  366. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  367. package/dist/esm/ic-input-component-container_3.entry.js +22 -21
  368. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  369. package/dist/esm/ic-input-label_2.entry.js +7 -7
  370. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  371. package/dist/esm/ic-link.entry.js +11 -21
  372. package/dist/esm/ic-link.entry.js.map +1 -1
  373. package/dist/esm/ic-menu-group.entry.js +1 -1
  374. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  375. package/dist/esm/ic-navigation-group.entry.js +115 -163
  376. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  377. package/dist/esm/ic-navigation-item.entry.js +64 -61
  378. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  379. package/dist/esm/ic-navigation-menu.entry.js +4 -4
  380. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  381. package/dist/esm/ic-page-header.entry.js +6 -6
  382. package/dist/esm/ic-page-header.entry.js.map +1 -1
  383. package/dist/esm/ic-pagination_4.entry.js +161 -232
  384. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  385. package/dist/esm/ic-popover-menu.entry.js +5 -5
  386. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  387. package/dist/esm/ic-radio-group.entry.js +4 -4
  388. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  389. package/dist/esm/ic-radio-option.entry.js +4 -4
  390. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  391. package/dist/esm/ic-search-bar.entry.js +49 -31
  392. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  393. package/dist/esm/ic-section-container.entry.js +2 -2
  394. package/dist/esm/ic-section-container.entry.js.map +1 -1
  395. package/dist/esm/ic-side-navigation.entry.js +23 -4
  396. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  397. package/dist/esm/ic-skeleton.entry.js +2 -2
  398. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  399. package/dist/esm/ic-skip-link.entry.js +2 -2
  400. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  401. package/dist/esm/ic-status-tag.entry.js +2 -2
  402. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  403. package/dist/esm/ic-step.entry.js +13 -13
  404. package/dist/esm/ic-step.entry.js.map +1 -1
  405. package/dist/esm/ic-stepper.entry.js +2 -2
  406. package/dist/esm/ic-stepper.entry.js.map +1 -1
  407. package/dist/esm/ic-switch.entry.js +4 -4
  408. package/dist/esm/ic-switch.entry.js.map +1 -1
  409. package/dist/esm/ic-tab-context.entry.js +1 -1
  410. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  411. package/dist/esm/ic-tab-group.entry.js +2 -2
  412. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  413. package/dist/esm/ic-tab-panel.entry.js +2 -2
  414. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  415. package/dist/esm/ic-theme.entry.js +1 -1
  416. package/dist/esm/ic-theme.entry.js.map +1 -1
  417. package/dist/esm/ic-toast-region.entry.js +1 -1
  418. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  419. package/dist/esm/ic-toast.entry.js +3 -3
  420. package/dist/esm/ic-toast.entry.js.map +1 -1
  421. package/dist/esm/ic-toggle-button-group.entry.js +53 -67
  422. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  423. package/dist/esm/ic-toggle-button.entry.js +61 -63
  424. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  425. package/dist/esm/ic-top-navigation.entry.js +65 -63
  426. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  427. package/dist/esm/ic-tree-item.entry.js +1 -1
  428. package/dist/esm/ic-tree-view.entry.js +1 -1
  429. package/dist/esm/ic-typography.entry.js +2 -2
  430. package/dist/esm/ic-typography.entry.js.map +1 -1
  431. package/dist/esm/loader.js +1 -1
  432. package/dist/types/components/ic-data-table/ic-data-table.d.ts +15 -4
  433. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +4 -1
  434. package/dist/types/components.d.ts +8 -0
  435. package/dist/types/utils/helpers.d.ts +3 -3
  436. package/dist/types/utils/types.d.ts +2 -0
  437. package/hydrate/index.js +1085 -1214
  438. package/hydrate/index.mjs +1085 -1214
  439. package/package.json +3 -3
  440. package/dist/cjs/helpers-6f33d131.js.map +0 -1
  441. package/dist/core/p-10703715.entry.js +0 -2
  442. package/dist/core/p-10703715.entry.js.map +0 -1
  443. package/dist/core/p-266686d0.entry.js.map +0 -1
  444. package/dist/core/p-3800cda8.entry.js.map +0 -1
  445. package/dist/core/p-45f32fea.entry.js.map +0 -1
  446. package/dist/core/p-59bc9fe7.entry.js +0 -2
  447. package/dist/core/p-59bc9fe7.entry.js.map +0 -1
  448. package/dist/core/p-6724039c.entry.js +0 -2
  449. package/dist/core/p-6724039c.entry.js.map +0 -1
  450. package/dist/core/p-84daed4d.entry.js.map +0 -1
  451. package/dist/core/p-92a969b3.entry.js +0 -2
  452. package/dist/core/p-92a969b3.entry.js.map +0 -1
  453. package/dist/core/p-954959d4.entry.js +0 -2
  454. package/dist/core/p-954959d4.entry.js.map +0 -1
  455. package/dist/core/p-95868542.entry.js +0 -2
  456. package/dist/core/p-95868542.entry.js.map +0 -1
  457. package/dist/core/p-9882c572.entry.js.map +0 -1
  458. package/dist/core/p-9918c411.entry.js +0 -2
  459. package/dist/core/p-9918c411.entry.js.map +0 -1
  460. package/dist/core/p-ad45f8f8.entry.js +0 -2
  461. package/dist/core/p-ad45f8f8.entry.js.map +0 -1
  462. package/dist/core/p-b947e4ff.entry.js +0 -2
  463. package/dist/core/p-b947e4ff.entry.js.map +0 -1
  464. package/dist/core/p-c472cb32.entry.js +0 -2
  465. package/dist/core/p-c472cb32.entry.js.map +0 -1
  466. package/dist/core/p-cd770df5.entry.js +0 -2
  467. package/dist/core/p-e9683f52.entry.js.map +0 -1
  468. package/dist/core/p-ed542433.js +0 -2
  469. package/dist/core/p-ed542433.js.map +0 -1
  470. package/dist/core/p-edeb3823.entry.js +0 -2
  471. package/dist/core/p-edeb3823.entry.js.map +0 -1
  472. package/dist/core/p-fb8214a9.entry.js +0 -2
  473. package/dist/core/p-fb8214a9.entry.js.map +0 -1
  474. package/dist/esm/helpers-0bb68835.js.map +0 -1
  475. /package/dist/core/{p-0e3a62cc.entry.js.map → p-2667c808.entry.js.map} +0 -0
  476. /package/dist/core/{p-f6141c29.entry.js.map → p-7c3cd0b8.entry.js.map} +0 -0
  477. /package/dist/core/{p-af1d6e41.entry.js.map → p-85a17585.entry.js.map} +0 -0
  478. /package/dist/core/{p-aa83f828.entry.js.map → p-c8d207e1.entry.js.map} +0 -0
  479. /package/dist/core/{p-5c363e21.entry.js.map → p-f9e78341.entry.js.map} +0 -0
  480. /package/dist/core/{p-0a0b25c5.entry.js.map → p-fedfd000.entry.js.map} +0 -0
@@ -256,14 +256,14 @@ const Pagination = class {
256
256
  }
257
257
  render() {
258
258
  const { type, currentPage, hideCurrentPage, disabled, hideFirstAndLastPageButton, label, theme, monochrome, } = this;
259
- return (index.h(index.Host, { key: '9f9c0ceb1629ebff96c677d7b4ad9995bbe480cd', class: {
259
+ return (index.h(index.Host, { key: 'def082d6417770159241eaf69660011a9fa56978', class: {
260
260
  [`ic-theme-${theme}`]: theme !== "inherit",
261
261
  ["ic-pagination-monochrome"]: !!monochrome,
262
- } }, type === "simple" && (index.h("nav", { key: '4d24ed30438c6755a1717454ee83e2a1b58d93c5', class: {
262
+ } }, type === "simple" && (index.h("nav", { key: '7d2a663d826de4c5916d6ece70222bf28157b57b', class: {
263
263
  ["disabled"]: !!disabled,
264
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), index.h("ic-pagination-item", { key: '784f99d1fa32d4f48c6de793707825333e45651a', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (index.h("nav", { key: 'ce6061fcee8e202cb895e2919525b64c6a1c1114', class: {
264
+ }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), index.h("ic-pagination-item", { key: '010243beef572daba8a9c1f58978213f02446b2e', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (index.h("nav", { key: '7ab291c9e698dfb1ead08c7a59858a4f3f715488', class: {
265
265
  ["disabled"]: !!disabled,
266
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (index.h("span", { key: '4980f1fd9ebd31a5b8835876479e12a8a0f5d54d', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
266
+ }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (index.h("span", { key: '2b7be6cd03fb72ccaf3a2bd08fbf5ef5f52e5050', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
267
267
  }
268
268
  get el() { return index.getElement(this); }
269
269
  static get watchers() { return {
@@ -320,7 +320,7 @@ const PaginationItem = class {
320
320
  }
321
321
  render() {
322
322
  const { page, selected, type, disabled, label, capitalizedLabel, monochrome, } = this;
323
- return (index.h("a", { key: 'c067a0e35e2a92dff8d7f24d135a06a686d74a7d', class: { ["monochrome"]: !!monochrome } }, type === "ellipsis" ? (index.h("div", { class: {
323
+ return (index.h("a", { key: '775649dcb0b2df73e18ddbb563cb088f5e4bf394', class: { ["monochrome"]: !!monochrome } }, type === "ellipsis" ? (index.h("div", { class: {
324
324
  ["item-container"]: true,
325
325
  ["ellipsis"]: true,
326
326
  ["disabled"]: !!disabled,
@@ -373,11 +373,14 @@ const Select = class {
373
373
  this.icOptionSelect = index.createEvent(this, "icOptionSelect", 7);
374
374
  this.icOptionDeselect = index.createEvent(this, "icOptionDeselect", 7);
375
375
  this.icRetryLoad = index.createEvent(this, "icRetryLoad", 7);
376
+ this.blurredBecauseButtonPressed = false;
376
377
  this.hasSetDefaultValue = false;
378
+ this.hasTimedOut = false;
377
379
  this.inheritedAttributes = {};
378
380
  this.initialOptionsEmpty = false;
379
381
  this.inputId = `ic-select-input-${inputIds$1++}`;
380
382
  this.menuId = `${this.inputId}-menu`;
383
+ this.retryButtonClick = false;
381
384
  this.searchableMenuItemSelected = false;
382
385
  this.ungroupedOptions = [];
383
386
  this.hostMutationObserver = null;
@@ -493,6 +496,12 @@ const Select = class {
493
496
  */
494
497
  this.debounce = 0;
495
498
  this.currDebounce = this.debounce;
499
+ /**
500
+ * The value of the select, reflected by the value of the currently selected option.
501
+ * For the searchable variant, the value is also reflected by the user input.
502
+ * For the multi-select variant, the value must be an array of option values.
503
+ */
504
+ this.value = null;
496
505
  this.initialValue = this.value;
497
506
  this.inputValueToFilter = this.value;
498
507
  // triggered when attributes of host element change
@@ -530,13 +539,27 @@ const Select = class {
530
539
  this.emitIcChange = (value) => {
531
540
  // If "Select all" button clicked, replace value with new value (array of all option values)
532
541
  if (this.multiple && !Array.isArray(value) && value !== null) {
533
- this.handleMultipleSelectChange(String(value));
542
+ // Update selected options - adds / removes them, in order of option list
543
+ // Create new array if value prop is undefined
544
+ if (this.value) {
545
+ let valueArray = this.value.slice();
546
+ if (this.value.includes(value)) {
547
+ valueArray.splice(valueArray.indexOf(value), 1);
548
+ }
549
+ else {
550
+ valueArray.push(value);
551
+ valueArray = this.getValueSortedByOptions(valueArray);
552
+ }
553
+ this.value = valueArray.length === 0 ? null : valueArray;
554
+ }
555
+ else {
556
+ this.value = [value];
557
+ }
534
558
  }
535
559
  else {
536
560
  this.value = value;
537
561
  }
538
- const valueToEmit = this.multiple ? this.value : value;
539
- this.icChange.emit({ value: valueToEmit || null });
562
+ this.icChange.emit({ value: this.multiple ? this.value : value });
540
563
  };
541
564
  this.emitIcInput = (value) => {
542
565
  clearTimeout(this.debounceIcInput);
@@ -549,30 +572,25 @@ const Select = class {
549
572
  if (this.options.length > 0) {
550
573
  this.setOptionsValuesFromLabels();
551
574
  this.uniqueOptions = this.deduplicateOptions(this.options);
552
- this.filteredOptions = this.uniqueOptions;
553
575
  }
554
576
  else {
555
577
  this.noOptions = [{ label: this.emptyOptionListText, value: "" }];
556
578
  this.uniqueOptions = this.noOptions;
557
- this.filteredOptions = this.noOptions;
558
579
  }
580
+ this.filteredOptions = this.uniqueOptions;
559
581
  if (this.isExternalFiltering()) {
560
582
  // When searchable select
561
583
  this.noOptions = null;
562
584
  this.updateSearchableSelectResultAriaLive();
563
585
  this.setDefaultValue();
564
586
  }
565
- else {
566
- if (this.initialOptionsEmpty) {
567
- this.setDefaultValue();
568
- this.initialOptionsEmpty = false;
569
- }
587
+ else if (this.initialOptionsEmpty) {
588
+ this.setDefaultValue();
589
+ this.initialOptionsEmpty = false;
570
590
  }
571
591
  }
572
- else {
573
- if (!this.searchable) {
574
- this.options = this.noOptions || [];
575
- }
592
+ else if (!this.searchable) {
593
+ this.options = this.noOptions || [];
576
594
  }
577
595
  };
578
596
  /**
@@ -583,11 +601,10 @@ const Select = class {
583
601
  this.deduplicateOptions = (options) => {
584
602
  const uniqueValues = [];
585
603
  const dedupedOptions = [];
586
- let dedupedChildren;
587
604
  options.forEach((option) => {
588
605
  if (option.children) {
589
606
  //If an option has children, we will loop through them
590
- dedupedChildren = [];
607
+ const dedupedChildren = [];
591
608
  option.children.forEach((child) => {
592
609
  if (uniqueValues.includes(child.value)) {
593
610
  console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`);
@@ -598,8 +615,7 @@ const Select = class {
598
615
  }
599
616
  });
600
617
  // construct a modified option, inserting the deduplicated children alongside the original information
601
- const modifiedParent = Object.assign(Object.assign({}, option), { children: dedupedChildren });
602
- dedupedOptions.push(modifiedParent);
618
+ dedupedOptions.push(Object.assign(Object.assign({}, option), { children: dedupedChildren }));
603
619
  }
604
620
  else {
605
621
  // If an option does not have children, assess to see if it's value has been included already
@@ -631,12 +647,10 @@ const Select = class {
631
647
  };
632
648
  this.setTextColor = () => {
633
649
  if (this.nativeSelectElement) {
634
- if (this.nativeSelectElement.selectedIndex === 0) {
635
- this.nativeSelectElement.className = "placeholder";
636
- }
637
- else {
638
- this.nativeSelectElement.className = "select-option-selected";
639
- }
650
+ this.nativeSelectElement.className =
651
+ this.nativeSelectElement.selectedIndex === 0
652
+ ? "placeholder"
653
+ : "select-option-selected";
640
654
  }
641
655
  };
642
656
  this.setMenuChange = (open) => {
@@ -644,27 +658,12 @@ const Select = class {
644
658
  this.open = open;
645
659
  }
646
660
  };
647
- this.getLabelFromValue = (value) => {
648
- return helpers.getLabelFromValue(value, this.uniqueOptions);
649
- };
650
- this.getMultipleOptionsString = (selectedValues) => {
651
- const selectedLabels = selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map((value) => this.getLabelFromValue(value)).filter((label) => !!label);
652
- return selectedLabels === null || selectedLabels === void 0 ? void 0 : selectedLabels.join(", ");
653
- };
654
- this.getFilteredChildMenuOptions = (option) => {
655
- let children = option.children;
656
- if (option.children) {
657
- if (this.searchable) {
658
- children = helpers.getFilteredMenuOptions(option.children, !!this.includeDescriptionsInSearch, this.searchableSelectInputValue || "", this.searchMatchPosition);
659
- }
660
- else {
661
- children = helpers.getFilteredMenuOptions(option.children, false, this.pressedCharacters, "start");
662
- }
663
- }
664
- const newOption = Object.assign({}, option);
665
- newOption.children = children;
666
- return newOption;
667
- };
661
+ this.getLabelFromValue = (value) => helpers.getLabelFromValue(value, this.uniqueOptions);
662
+ this.getMultipleOptionsString = (selectedValues) => selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map((value) => this.getLabelFromValue(value)).filter((label) => !!label).join(", ");
663
+ this.getFilteredChildMenuOptions = (option) => (Object.assign(Object.assign({}, option), { children: option.children &&
664
+ helpers.getFilteredMenuOptions(option.children, this.searchable && !!this.includeDescriptionsInSearch, this.searchable
665
+ ? this.searchableSelectInputValue || ""
666
+ : this.pressedCharacters, this.searchable ? this.searchMatchPosition : "start") }));
668
667
  // (For multi-select) get value array, i.e. selected option values, in order they appear in option list
669
668
  this.getValueSortedByOptions = (value) => {
670
669
  const valueArray = value;
@@ -683,13 +682,13 @@ const Select = class {
683
682
  // (rather than native <select> - rendered when viewed on a mobile / tablet screen)
684
683
  this.handleCustomSelectChange = (event) => {
685
684
  var _a, _b;
686
- const value = event.detail.value;
687
- if (event.detail.label === this.emptyOptionListText) {
685
+ const { value, label, optionId } = event.detail;
686
+ if (label === this.emptyOptionListText) {
688
687
  (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.focus();
689
688
  return;
690
689
  }
691
690
  if (this.searchable) {
692
- this.value = value;
691
+ this.value = value || null;
693
692
  this.searchableMenuItemSelected = true;
694
693
  // After editing the input, if selecting the same option as before, set the input value to label again
695
694
  if (this.value === this.currValue) {
@@ -700,64 +699,39 @@ const Select = class {
700
699
  this.hiddenInputValue =
701
700
  this.getValueFromLabel(this.searchableSelectInputValue) || null;
702
701
  }
703
- if (this.multiple && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.includes(value))) {
704
- this.icOptionDeselect.emit({ value });
705
- }
706
- else {
707
- this.icOptionSelect.emit({ value });
708
- }
709
- this.ariaActiveDescendant = event.detail.optionId;
710
- this.emitIcChange(value);
711
- };
712
- // Update selected options - adds / removes them, in order of option list
713
- // Create new array if value prop is undefined
714
- this.handleMultipleSelectChange = (value) => {
715
- if (this.value) {
716
- let valueArray = this.value.slice();
717
- if (this.value.includes(value)) {
718
- const valueIndex = valueArray.indexOf(value);
719
- valueArray.splice(valueIndex, 1);
702
+ if (value) {
703
+ if (this.multiple && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.includes(value))) {
704
+ this.icOptionDeselect.emit({ value });
720
705
  }
721
706
  else {
722
- valueArray.push(value);
723
- valueArray = this.getValueSortedByOptions(valueArray);
707
+ this.icOptionSelect.emit({ value });
724
708
  }
725
- this.value = valueArray.length === 0 ? null : valueArray;
726
- }
727
- else {
728
- const valueArray = [];
729
- valueArray.push(value);
730
- this.value = valueArray;
731
709
  }
710
+ this.ariaActiveDescendant = optionId;
711
+ this.emitIcChange(value || null);
732
712
  };
733
- this.handleSelectAllChange = (event) => {
734
- const selectAllOptions = event.detail.select;
735
- const allEnabledOptions = this.ungroupedOptions.filter((option) => !option.disabled);
736
- const allValues = allEnabledOptions.map((option) => option.value);
737
- let newValue;
738
- if (selectAllOptions) {
739
- let unselectedValues;
713
+ this.handleSelectAllChange = ({ detail, }) => {
714
+ const allValues = this.ungroupedOptions
715
+ .filter((option) => !option.disabled)
716
+ .map((option) => option.value);
717
+ if (detail.select) {
740
718
  // Only emit icOptionSelect for all values that are newly selected
741
- if (this.value) {
742
- unselectedValues = allValues.filter((value) => this.value && !this.value.includes(value));
743
- }
744
- else {
745
- unselectedValues = allValues;
746
- }
719
+ const unselectedValues = this.value
720
+ ? allValues.filter((value) => this.value && !this.value.includes(value))
721
+ : allValues;
747
722
  unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));
748
- newValue = allValues;
749
723
  }
750
724
  else {
751
725
  // Only emit icOptionDeselect for values that were selected
752
726
  this.value.forEach((value) => this.icOptionDeselect.emit({ value }));
753
- newValue = null;
754
727
  }
755
- this.emitIcChange(newValue);
728
+ this.emitIcChange(detail.select ? allValues : null);
756
729
  };
757
730
  this.handleMenuChange = (event) => {
758
731
  this.open = event.detail.open;
759
732
  this.pressedCharacters = "";
760
- this.searchable && this.handleFocusIndicatorDisplay();
733
+ if (this.searchable)
734
+ this.handleFocusIndicatorDisplay();
761
735
  };
762
736
  // clears the debounce delay when navigating the menu with arrow keys etc
763
737
  // to prevent delay in change event, which should only occur when typing in input
@@ -832,19 +806,18 @@ const Select = class {
832
806
  if (this.open && key === " " && this.pressedCharacters.length === 0) {
833
807
  this.setMenuChange(false);
834
808
  }
835
- if (key.length === 1 && !this.searchable) {
836
- window.clearTimeout(this.characterKeyPressTimer);
837
- this.characterKeyPressTimer = window.setTimeout(() => (this.pressedCharacters = ""), 1000);
838
- if (!(key === " " && !this.pressedCharacters)) {
839
- this.pressedCharacters += key;
840
- this.handleFilter();
841
- if (!this.noOptions) {
842
- this.emitIcChange(this.filteredOptions[0].value);
843
- }
844
- }
845
- }
846
- else {
809
+ if (key.length !== 1 || this.searchable) {
847
810
  this.pressedCharacters = "";
811
+ return;
812
+ }
813
+ window.clearTimeout(this.characterKeyPressTimer);
814
+ this.characterKeyPressTimer = window.setTimeout(() => (this.pressedCharacters = ""), 1000);
815
+ if (key !== " " || !!this.pressedCharacters) {
816
+ this.pressedCharacters += key;
817
+ this.handleFilter();
818
+ if (!this.noOptions) {
819
+ this.emitIcChange(this.filteredOptions[0].value);
820
+ }
848
821
  }
849
822
  };
850
823
  this.handleNativeSelectKeyDown = (event) => {
@@ -863,19 +836,17 @@ const Select = class {
863
836
  if (this.isExternalFiltering() && (event.key === "Enter" || isArrowKey)) {
864
837
  this.menu.options = this.filteredOptions;
865
838
  }
866
- else {
867
- if (!this.hasTimedOut) {
868
- this.noOptions = null;
869
- this.menu.options = this.uniqueOptions;
870
- }
839
+ else if (!this.hasTimedOut) {
840
+ this.noOptions = null;
841
+ this.menu.options = this.uniqueOptions;
871
842
  }
872
843
  }
873
844
  if (this.open && event.key === "Enter") {
874
845
  this.setMenuChange(false);
875
846
  }
876
847
  else {
877
- if (!(isArrowKey && this.noOptions !== null)) {
878
- if (!(event.key === " " && this.pressedCharacters.length > 0)) {
848
+ if (!isArrowKey || this.noOptions === null) {
849
+ if (event.key !== " " || this.pressedCharacters.length <= 0) {
879
850
  // Keyboard events get passed onto ic-menu
880
851
  (_a = this.menu) === null || _a === void 0 ? void 0 : _a.handleKeyboardOpen(event);
881
852
  }
@@ -891,9 +862,9 @@ const Select = class {
891
862
  this.handleClearButtonBlur = (ev) => {
892
863
  var _a;
893
864
  const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector("#retry-button");
894
- if (!(this.searchableSelectElement &&
895
- ev.relatedTarget === this.searchableSelectElement) &&
896
- !(retryButton && ev.relatedTarget === retryButton)) {
865
+ if ((!this.searchableSelectElement ||
866
+ ev.relatedTarget !== this.searchableSelectElement) &&
867
+ (!retryButton || ev.relatedTarget !== retryButton)) {
897
868
  this.setMenuChange(false);
898
869
  this.handleFocusIndicatorDisplay();
899
870
  }
@@ -902,12 +873,8 @@ const Select = class {
902
873
  this.handleFilter = () => {
903
874
  var _a;
904
875
  const options = this.deduplicateOptions(this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions);
905
- let isGrouped = false;
876
+ const isGrouped = options.some((option) => !!option.children);
906
877
  let newFilteredOptions = [];
907
- options.map((option) => {
908
- if (option.children)
909
- isGrouped = true;
910
- });
911
878
  let menuOptionsFiltered;
912
879
  if (this.searchable) {
913
880
  menuOptionsFiltered = helpers.getFilteredMenuOptions(options, !!this.includeDescriptionsInSearch, this.inputValueToFilter || "", this.searchMatchPosition);
@@ -921,30 +888,14 @@ const Select = class {
921
888
  newFilteredOptions = menuOptionsFiltered;
922
889
  }
923
890
  else if (isGrouped) {
924
- options.map((option) => {
925
- if (this.includeGroupTitlesInSearch) {
926
- if (menuOptionsFiltered.indexOf(option) !== -1) {
927
- newFilteredOptions.push(option);
928
- }
929
- else {
930
- newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
931
- }
932
- }
933
- else {
934
- newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
935
- }
936
- });
937
- }
938
- let noChildOptionsWhenFiltered = false;
939
- if (isGrouped) {
940
- noChildOptionsWhenFiltered = true;
941
- newFilteredOptions.map((option) => {
942
- if (option.children && option.children.length > 0) {
943
- noChildOptionsWhenFiltered = false;
944
- }
945
- });
946
- }
947
- if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {
891
+ newFilteredOptions = options.map((option) => this.includeGroupTitlesInSearch &&
892
+ menuOptionsFiltered.indexOf(option) !== -1
893
+ ? option
894
+ : this.getFilteredChildMenuOptions(option));
895
+ }
896
+ if (newFilteredOptions.length > 0 &&
897
+ (!isGrouped ||
898
+ newFilteredOptions.some(({ children }) => children && children.length > 0))) {
948
899
  this.noOptions = null;
949
900
  this.filteredOptions = newFilteredOptions;
950
901
  }
@@ -979,11 +930,7 @@ const Select = class {
979
930
  }, this.timeout);
980
931
  }
981
932
  };
982
- this.getValueFromLabel = (label) => {
983
- var _a;
984
- return (label &&
985
- ((_a = this.uniqueOptions.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value));
986
- };
933
+ this.getValueFromLabel = (label) => { var _a; return label && ((_a = this.uniqueOptions.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value); };
987
934
  this.handleSearchableSelectInput = (event) => {
988
935
  this.searchableSelectInputValue = event.target.value;
989
936
  this.emitIcInput(this.searchableSelectInputValue);
@@ -997,19 +944,18 @@ const Select = class {
997
944
  this.setMenuChange(true);
998
945
  if (!this.disableAutoFiltering) {
999
946
  this.handleFilter();
1000
- this.debounceAriaLiveUpdate();
947
+ clearTimeout(this.debounceAria);
948
+ window.setTimeout(() => {
949
+ this.updateSearchableSelectResultAriaLive();
950
+ }, 800);
1001
951
  }
1002
952
  };
1003
953
  this.updateSearchableSelectResultAriaLive = () => {
1004
954
  var _a;
1005
955
  const searchableSelectResultsStatusEl = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".searchable-select-results-status");
1006
956
  if (searchableSelectResultsStatusEl) {
1007
- if (this.noOptions !== null) {
1008
- searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;
1009
- }
1010
- else {
1011
- searchableSelectResultsStatusEl.innerText = "";
1012
- }
957
+ searchableSelectResultsStatusEl.innerText =
958
+ this.noOptions !== null ? this.emptyOptionListText : "";
1013
959
  }
1014
960
  };
1015
961
  this.updateMultiSelectedCountAriaLive = () => {
@@ -1043,13 +989,12 @@ const Select = class {
1043
989
  return;
1044
990
  }
1045
991
  const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector("#retry-button");
1046
- const isSearchableAndNoFocusedInternalElements = this.searchable &&
992
+ if (this.searchable &&
1047
993
  !!this.menu &&
1048
994
  target !== this.menu &&
1049
995
  !Array.from(this.menu.querySelectorAll("[role='option']")).includes(target) &&
1050
- !(this.clearButton && target === this.clearButton) &&
1051
- !(retryButton && target === retryButton);
1052
- if (isSearchableAndNoFocusedInternalElements) {
996
+ (!this.clearButton || target !== this.clearButton) &&
997
+ (!retryButton || target !== retryButton)) {
1053
998
  if (!this.retryButtonClick) {
1054
999
  this.setMenuChange(false);
1055
1000
  // Clear input field on blur when searchable if no option is selected
@@ -1088,6 +1033,7 @@ const Select = class {
1088
1033
  this.filteredOptions = this.uniqueOptions;
1089
1034
  }
1090
1035
  };
1036
+ this.renderNativeOption = (option) => (index.h("option", { value: option.value, disabled: option.disabled, selected: option.value === this.currValue }, option.label));
1091
1037
  }
1092
1038
  watchDisabledHandler() {
1093
1039
  helpers.removeDisabledFalse(this.disabled, this.el);
@@ -1099,7 +1045,9 @@ const Select = class {
1099
1045
  this.setOptions();
1100
1046
  }
1101
1047
  debounceChangedHandler(newValue) {
1102
- this.updateOnChangeDebounce(newValue);
1048
+ if (this.currDebounce !== newValue) {
1049
+ this.currDebounce = newValue;
1050
+ }
1103
1051
  }
1104
1052
  valueChangedHandler() {
1105
1053
  if (this.value !== this.currValue) {
@@ -1182,83 +1130,59 @@ const Select = class {
1182
1130
  this.searchableSelectElement.focus();
1183
1131
  }
1184
1132
  }
1185
- updateOnChangeDebounce(newValue) {
1186
- if (this.currDebounce !== newValue) {
1187
- this.currDebounce = newValue;
1188
- }
1189
- }
1190
- debounceAriaLiveUpdate() {
1191
- clearTimeout(this.debounceAria);
1192
- window.setTimeout(() => {
1193
- this.updateSearchableSelectResultAriaLive();
1194
- }, 800);
1195
- }
1196
1133
  render() {
1197
- const { size, disabled, fullWidth, helperText, hideLabel, label, menuId, multiple, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, currValue, theme, } = this;
1134
+ var _a;
1135
+ 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;
1198
1136
  // HTML inputs only accept 'string' for their value
1199
1137
  // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string
1200
- helpers.renderHiddenInput(this.el, this.searchable ? this.hiddenInputValue : currValue, name || this.inputId, disabled);
1138
+ helpers.renderHiddenInput(this.el, searchable ? hiddenInputValue : currValue, name || inputId, disabled);
1201
1139
  const invalid = `${validationStatus === helpers.IcInformationStatus.Error}`;
1202
- const describedBy = helpers.getInputDescribedByText(this.inputId, helperText !== "", helpers.hasValidationStatus(this.validationStatus, !!this.disabled)).trim();
1203
- let showLeftIcon = !!this.el.querySelector(`[slot="icon"]`);
1204
- if (showLeftIcon && (disabled || (readonly && !this.value))) {
1205
- showLeftIcon = false;
1206
- }
1207
- const optionsSelectedCount = `${currValue === null || currValue === void 0 ? void 0 : currValue.length} of ${helpers.getOptionsWithoutGroupTitlesCount(this.options)} selected`;
1140
+ const describedBy = helpers.getInputDescribedByText(inputId, helperText !== "", helpers.hasValidationStatus(validationStatus, !!disabled)).trim();
1208
1141
  const valueLabelString = multiple
1209
1142
  ? this.getMultipleOptionsString(currValue)
1210
1143
  : this.getLabelFromValue(currValue);
1211
1144
  const isClearable = !disabled &&
1212
1145
  (searchable
1213
- ? this.searchableSelectInputValue
1214
- : currValue && !this.loading && showClearButton);
1215
- return (index.h(index.Host, { key: '456f6fa40aca4f93fba6e0c43c57cc171c358ede', class: {
1216
- "ic-select-disabled": !!disabled,
1217
- "ic-select-searchable": !!searchable,
1146
+ ? !!searchableSelectInputValue
1147
+ : !!currValue && !loading && showClearButton);
1148
+ return (index.h(index.Host, { key: 'd128625d13fdd5c5ee1710116f071f42c9f9820f', class: {
1149
+ "ic-select-disabled": disabled,
1150
+ "ic-select-searchable": searchable,
1218
1151
  [`ic-select-${size}`]: size !== "medium",
1219
- "ic-select-full-width": !!fullWidth,
1152
+ "ic-select-full-width": fullWidth,
1220
1153
  [`ic-theme-${theme}`]: theme !== "inherit",
1221
- }, 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: {
1222
- ["readonly"]: !!readonly,
1223
- ["has-value"]: !!this.value,
1224
- } }, 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) => {
1225
- if (option.children) {
1226
- 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)))));
1227
- }
1228
- else {
1229
- return (index.h("option", { value: option.value, disabled: option.disabled, selected: option.value === currValue }, option.label));
1230
- }
1231
- }))) : searchable ? (index.h("div", { class: "searchable-select-container" }, index.h("input", { class: {
1154
+ }, onBlur: this.onBlur }, index.h("ic-input-container", { key: 'd3d0381138d095fb6c2c673d543b9b61710c064b', readonly: readonly }, !hideLabel && (index.h("ic-input-label", { key: '9cc4c487e780d00eed4bc4e4e3c3cbb66aab2a14', for: inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), index.h("ic-input-component-container", { key: 'cc15c6396b6edcd506e2caa93871ec529f6f25a4', ref: (el) => (this.anchorEl = el), class: { "menu-open": open }, size: size, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, helpers.isSlotUsed(this.el, "icon") &&
1155
+ !disabled &&
1156
+ (!readonly || !!value) && (index.h("span", { key: '21933fa4367b40e02fc41692a35f612f0c6c17d5', slot: "left-icon", class: {
1157
+ readonly,
1158
+ "has-value": !!value,
1159
+ } }, index.h("slot", { key: 'ad5ca4da28e3fb74526668811a042d7efdfad10c', 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: {
1232
1160
  "select-input": true,
1233
- "with-clear-button": !!this.searchableSelectInputValue,
1234
- }, 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 &&
1235
- (currValue === null || this.loading)
1161
+ "with-clear-button": !!searchableSelectInputValue,
1162
+ }, 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 &&
1163
+ (currValue === null || loading)
1236
1164
  ? "Clear input"
1237
- : "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: {
1165
+ : "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: {
1238
1166
  "expand-icon": true,
1239
- "expand-icon-open": this.open,
1240
- }, 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
1241
- ? `${optionsSelectedCount}, ${valueLabelString}`
1242
- : 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: {
1167
+ "expand-icon-open": open,
1168
+ }, 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
1169
+ ? `${currValue.length} of ${helpers.getOptionsWithoutGroupTitlesCount(options)} selected, ${valueLabelString}`
1170
+ : 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: {
1243
1171
  "value-text": true,
1244
- "with-clear-button": !!isClearable,
1245
- placeholder: !this.loading && multiple
1246
- ? !this.value || this.value.length < 1
1172
+ "with-clear-button": isClearable,
1173
+ placeholder: !loading && multiple
1174
+ ? !value || value.length < 1
1247
1175
  : !this.getLabelFromValue(currValue),
1248
1176
  } }, valueLabelString || placeholder), index.h("div", { class: "select-input-end" }, isClearable && index.h("div", { class: "divider" }), index.h("span", { class: {
1249
1177
  "expand-icon": true,
1250
- "expand-icon-open": this.open,
1251
- }, 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: {
1252
- "no-results": this.loading ||
1253
- this.hasTimedOut ||
1254
- (this.noOptions !== null &&
1255
- this.noOptions[0] &&
1256
- this.noOptions[0].label === this.emptyOptionListText),
1257
- }, ref: (el) => (this.menu = el), inputEl: (searchable
1178
+ "expand-icon-open": open,
1179
+ }, 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: '341d478ae904d5bd2a4c6fa54fb29802d2851f3e', class: {
1180
+ "no-results": loading ||
1181
+ hasTimedOut ||
1182
+ ((_a = noOptions === null || noOptions === void 0 ? void 0 : noOptions[0]) === null || _a === void 0 ? void 0 : _a.label) === emptyOptionListText,
1183
+ }, ref: (el) => (this.menu = el), inputEl: searchable
1258
1184
  ? this.searchableSelectElement
1259
- : 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
1260
- ? "manual"
1261
- : "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 })))));
1185
+ : 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: '8fb9874132ab430dc90eba61264424fcf200b944', "aria-live": "polite", role: "status", class: "multi-select-selected-count" })), helpers.hasValidationStatus(validationStatus, disabled) && (index.h("ic-input-validation", { key: '872afd5e8f621258c64756d06061a266a4e09745', class: { "menu-open": open }, ariaLiveMode: "polite", status: validationStatus, message: validationText, for: inputId })))));
1262
1186
  }
1263
1187
  static get delegatesFocus() { return true; }
1264
1188
  get el() { return index.getElement(this); }
@@ -1296,6 +1220,7 @@ const TextField = class {
1296
1220
  this.minCharactersUnattained = false;
1297
1221
  this.maxValueExceeded = false;
1298
1222
  this.minValueUnattained = false;
1223
+ this.isFocussed = false;
1299
1224
  /**
1300
1225
  * The automatic capitalisation of the text value as it is entered/edited by the user.
1301
1226
  * Available options: "off", "none", "on", "sentences", "words", "characters".
@@ -1479,11 +1404,13 @@ const TextField = class {
1479
1404
  this.minCharactersUnattained =
1480
1405
  this.minCharacters > 0 && this.numChars < this.minCharacters;
1481
1406
  this.icBlur.emit({ value });
1407
+ this.isFocussed = false;
1482
1408
  };
1483
1409
  this.onFocus = (ev) => {
1484
1410
  const target = ev.target;
1485
1411
  target.addEventListener("wheel", this.onWheel);
1486
1412
  this.icFocus.emit({ value: target.value });
1413
+ this.isFocussed = true;
1487
1414
  };
1488
1415
  this.onTextAreaScroll = () => {
1489
1416
  this.icScroll.emit();
@@ -1599,7 +1526,7 @@ const TextField = class {
1599
1526
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
1600
1527
  }
1601
1528
  render() {
1602
- const { inputId, name, label, required, size, placeholder, helperText, hideCharCount, rows, resize, disabled, value, min, max, numChars, readonly, maxCharacters, maxCharactersMessage, maxCharactersWarning, maxCharactersReached, maxMessage, minCharacters, minCharactersMessage, minCharactersUnattained, minMessage, minValueUnattained, maxValueExceeded, validationStatus, validationText, validationInline, validationInlineInternal, spellcheck, inputmode, fullWidth, truncateValue, hiddenInput, theme, hideLabel, type, autocapitalize, ariaActiveDescendant, inheritedAttributes, ariaExpanded, ariaOwns, autocomplete, role, } = this;
1529
+ const { inputId, name, label, required, size, placeholder, helperText, hideCharCount, rows, resize, disabled, value, min, max, numChars, readonly, maxCharacters, maxCharactersMessage, maxCharactersWarning, maxCharactersReached, maxMessage, minCharacters, minCharactersMessage, minCharactersUnattained, minMessage, minValueUnattained, maxValueExceeded, validationStatus, validationText, validationInline, validationInlineInternal, spellcheck, inputmode, fullWidth, truncateValue, hiddenInput, theme, hideLabel, type, autocapitalize, ariaActiveDescendant, inheritedAttributes, ariaExpanded, ariaOwns, autocomplete, role, isFocussed, } = this;
1603
1530
  const el = this.el;
1604
1531
  const disabledMode = readonly || disabled;
1605
1532
  const currentStatus = maxValueExceeded ||
@@ -1630,43 +1557,45 @@ const TextField = class {
1630
1557
  !(currentStatus == helpers.IcInformationStatus.Success && validationInline) &&
1631
1558
  !validationInlineInternal;
1632
1559
  const multiline = rows > 1;
1633
- const charsRemaining = maxNumChars - numChars;
1634
1560
  const hiddenCharCountDescId = maxCharacters > 0 ? `${inputId}-char-count-desc` : "";
1635
- const describedBy = `${hiddenCharCountDescId} ${helpers.getInputDescribedByText(inputId, helperText !== "", showStatusText)}`.trim();
1561
+ const charsRemaining = maxNumChars - numChars;
1562
+ const remainingCharCountDescId = maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : "";
1563
+ const remainingCharCountDesc = `${charsRemaining} character${charsRemaining === 1 ? "" : "s"} remaining.`;
1564
+ const describedBy = `${hiddenCharCountDescId} ${numChars > 0 ? remainingCharCountDescId : ""} ${helpers.getInputDescribedByText(inputId, helperText !== "", showStatusText)}`.trim();
1636
1565
  const disabledText = disabledMode && !readonly;
1637
1566
  const showLeftIcon = !!this.el.querySelector(`[slot="icon"]`) && !disabledText;
1638
1567
  const invalid = `${currentStatus === helpers.IcInformationStatus.Error}`;
1639
1568
  hiddenInput
1640
1569
  ? helpers.renderHiddenInput(this.el, value, name, disabledMode)
1641
1570
  : helpers.removeHiddenInput(this.el);
1642
- return (index.h(index.Host, { key: '392b43ac248502539bc00717694c10a24818551e', class: {
1571
+ return (index.h(index.Host, { key: 'fe960598716052334b20c15f7e4b05477025783b', class: {
1643
1572
  "ic-text-field-full-width": fullWidth,
1644
1573
  "ic-text-field-disabled": disabledMode,
1645
1574
  [`ic-theme-${theme}`]: theme !== "inherit",
1646
- } }, index.h("ic-input-container", { key: '59ec38e8e8e934cf48123303f68a7ca863badd83', readonly: readonly, disabled: disabledMode }, !hideLabel && (index.h("ic-input-label", { key: 'fa61768dd93e6d7a1ead043792b15b78b8d3fd26', for: inputId, label: label, helperText: helperText, required: required, disabled: disabledText, readonly: readonly })), index.h("ic-input-component-container", { key: 'c6ac9c16b6c565671575ec2217e62176d7bc1359', size: size, validationStatus: currentStatus, multiLine: multiline, disabled: disabledMode, readonly: readonly, validationInline: validationInline, fullWidth: fullWidth }, showLeftIcon && (index.h("span", { key: '353b7a992bbce4060dc5fe29b05f96aedd0cf32a', class: {
1575
+ } }, index.h("ic-input-container", { key: '1a4e6b2cd9ef8646ed34575b77ce53d82a1dbb1b', readonly: readonly, disabled: disabledMode }, !hideLabel && (index.h("ic-input-label", { key: '1b56501853e8a8062a4b02fb85be73c69d4b5b1e', for: inputId, label: label, helperText: helperText, required: required, disabled: disabledText, readonly: readonly })), index.h("ic-input-component-container", { key: '7e104a64fc5ab3a173b814d38287fd843cfb8eb4', size: size, validationStatus: currentStatus, multiLine: multiline, disabled: disabledMode, readonly: readonly, validationInline: validationInline, fullWidth: fullWidth }, showLeftIcon && (index.h("span", { key: 'd3e31bb36c451e33d99b93eb069b6cad1e074de3', class: {
1647
1576
  readonly,
1648
1577
  "has-value": this.getNumberOfCharacters(value) > 0,
1649
- }, slot: "left-icon" }, index.h("slot", { key: '8a5cbec45bedc43908caaae9ff74bc4101f995f8', name: "icon" }))), !multiline ? (index.h("input", Object.assign({ id: inputId, name: name, ref: (el) => (this.inputEl = el), type: type, min: min, max: max, value: value, class: {
1578
+ }, slot: "left-icon" }, index.h("slot", { key: '6b91c9ac3cf054c3e30208712e3404c03c1e7d45', name: "icon" }))), !multiline ? (index.h("input", Object.assign({ id: inputId, name: name, ref: (el) => (this.inputEl = el), type: type, min: min, max: max, value: value, class: {
1650
1579
  "no-left-pad": !showLeftIcon && readonly,
1651
1580
  readonly,
1652
1581
  "truncate-value": truncateValue,
1653
- }, placeholder: placeholder ? placeholder : "", required: required, disabled: disabledMode, readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-activedescendant": ariaActiveDescendant, "aria-expanded": ariaExpanded, "aria-owns": ariaOwns, autocomplete: autocomplete, autocapitalize: autocapitalize, spellcheck: spellcheck, inputmode: inputmode, role: role, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, inheritedAttributes))) : (index.h("textarea", Object.assign({ id: inputId, class: {
1582
+ }, placeholder: placeholder ? placeholder : "", required: required, disabled: disabledMode, readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-activedescendant": ariaActiveDescendant, "aria-expanded": ariaExpanded, "aria-owns": ariaOwns, autocomplete: autocomplete, autocapitalize: autocapitalize, spellcheck: spellcheck, inputmode: inputmode, role: role || undefined, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, inheritedAttributes))) : (index.h("textarea", Object.assign({ id: inputId, class: {
1654
1583
  "no-resize": resize === false || !!readonly,
1655
1584
  "no-left-pad": !showLeftIcon && !!readonly,
1656
1585
  readonly: !!readonly,
1657
- }, name: name, ref: (el) => (this.inputEl = el), value: value, rows: rows, required: required, disabled: disabledMode, placeholder: placeholder, readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onScroll: this.onTextAreaScroll, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, autocapitalize: autocapitalize, spellcheck: spellcheck, inputmode: inputmode, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, inheritedAttributes))), helpers.isSlotUsed(el, "clear-button") && (index.h("slot", { key: '05d080fafd37f3c5e2894968705fe2802cd24f8a', name: "clear-button" })), helpers.isSlotUsed(el, "search-submit-button") && (index.h("slot", { key: 'b4ef1fb8db068a9c547d20147e31ac798cb838b5', name: "search-submit-button" }))), helpers.isSlotUsed(el, "menu") && index.h("slot", { key: '2f708851077d7cc70c6a90d2dae3f817ffdf469b', name: "menu" }), (!helpers.isEmptyString(validationStatus) ||
1586
+ }, name: name, ref: (el) => (this.inputEl = el), value: value, rows: rows, required: required, disabled: disabledMode, placeholder: placeholder, readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onScroll: this.onTextAreaScroll, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, autocapitalize: autocapitalize, spellcheck: spellcheck, inputmode: inputmode, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, inheritedAttributes))), helpers.isSlotUsed(el, "clear-button") && (index.h("slot", { key: '9b9a1124d52713bf7addfdaa9ad2c8f13538e988', name: "clear-button" })), helpers.isSlotUsed(el, "search-submit-button") && (index.h("slot", { key: '3b84112cf83d64ae25bec34bd981a2d53d4cb00c', name: "search-submit-button" }))), helpers.isSlotUsed(el, "menu") && index.h("slot", { key: 'f4b614d2451d5c264455536c365ce01510549df3', name: "menu" }), (!helpers.isEmptyString(validationStatus) ||
1658
1587
  !helpers.isEmptyString(validationText) ||
1659
1588
  maxNumChars > 0 ||
1660
1589
  maxValueExceeded ||
1661
1590
  maxCharactersWarning ||
1662
1591
  minCharactersUnattained ||
1663
1592
  minValueUnattained) &&
1664
- !validationInlineInternal && (index.h("ic-input-validation", { key: 'd7c7b40ed97ab62e31fe09e78bf55c796948e33a', status: this.hasStatus(currentStatus) === false ||
1593
+ !validationInlineInternal && (index.h("ic-input-validation", { key: 'a3320c6413c9688905aa7195c07aedaeb5b07aac', status: this.hasStatus(currentStatus) === false ||
1665
1594
  (currentStatus === helpers.IcInformationStatus.Success &&
1666
1595
  validationInline) ||
1667
1596
  validationInlineInternal
1668
1597
  ? ""
1669
- : currentStatus, message: showStatusText ? currentValidationText : "", ariaLiveMode: messageAriaLive, for: inputId, fullWidth: fullWidth }, !readonly && maxNumChars > 0 && (index.h("div", { key: '6b6d4c6b40f66756ceafc51c6ba7a336863ce030', slot: "validation-message-adornment" }, !hideCharCount && (index.h("ic-typography", { key: '5cb893f7e84654a848bd7ec14a0820583ed5d043', variant: "caption", class: "char-count-text" }, index.h("span", { key: 'b93ac422dbea08cf3d1f139feea1fd5ee37c6755', class: "char-count" }, numChars, "/", maxNumChars))), index.h("span", { key: 'e3b8a947bf1e4b1dc3bd93e04bb50ffaa55ac6a0', class: "remaining-char-count-desc", "aria-live": "polite" }, `${charsRemaining} character${charsRemaining === 1 ? "" : "s"} remaining.`), index.h("span", { key: '41353bf51d4e7264cc054f524b404519a953bec9', hidden: true, id: hiddenCharCountDescId }, "Field can contain a maximum of ", maxNumChars, " characters."))))))));
1598
+ : currentStatus, message: showStatusText ? currentValidationText : "", ariaLiveMode: messageAriaLive, for: inputId, fullWidth: fullWidth }, !readonly && maxNumChars > 0 && (index.h("div", { key: '50e3a895feaf7026e41698279e344ec987be3569', slot: "validation-message-adornment" }, !hideCharCount && (index.h("ic-typography", { key: '6918f82e8bc0ab17941bdafa24249f7ac0fbc191', variant: "caption", class: "char-count-text" }, index.h("span", { key: '59b2ea3ee4a854eff96af2faacb407f926c1b393', class: "char-count" }, numChars, "/", maxNumChars))), index.h("span", { key: '977bfee3b55bad4412d6943dfc8e75bd0f4ddb41', class: "remaining-char-count-desc", "aria-live": "polite", hidden: !isFocussed, id: remainingCharCountDescId }, remainingCharCountDesc), index.h("span", { key: '727328e80137330465fcbdc45711f168b5d9d54f', hidden: true, id: hiddenCharCountDescId }, "Field can contain a maximum of ", maxNumChars, " characters."))))))));
1670
1599
  }
1671
1600
  get el() { return index.getElement(this); }
1672
1601
  static get watchers() { return {