@ukic/web-components 2.1.0-beta.11 → 2.1.0-beta.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (580) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  3. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  5. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-button_3.cjs.entry.js +44 -10
  9. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-card.cjs.entry.js +4 -4
  11. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-checkbox-group.cjs.entry.js +16 -18
  13. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-checkbox.cjs.entry.js +11 -4
  15. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-chip.cjs.entry.js +2 -2
  17. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-data-entity.cjs.entry.js +2 -2
  20. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-hero.cjs.entry.js +4 -2
  29. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  31. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +146 -63
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -2
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-page-header.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-pagination-item.cjs.entry.js +51 -0
  50. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -0
  51. package/dist/cjs/ic-pagination.cjs.entry.js +206 -0
  52. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -0
  53. package/dist/cjs/ic-popover-menu.cjs.entry.js +8 -7
  54. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-radio-group.cjs.entry.js +3 -3
  56. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-radio-option.cjs.entry.js +3 -3
  58. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-search-bar.cjs.entry.js +79 -12
  60. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-select.cjs.entry.js +153 -54
  63. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-side-navigation.cjs.entry.js +11 -3
  65. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-step.cjs.entry.js +2 -2
  70. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-tab-context.cjs.entry.js +42 -5
  75. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -2
  77. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-tab-panel.cjs.entry.js +11 -2
  79. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-tab.cjs.entry.js +14 -2
  81. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-text-field.cjs.entry.js +50 -11
  83. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  85. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  86. package/dist/cjs/ic-toast.cjs.entry.js +5 -1
  87. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-top-navigation.cjs.entry.js +7 -5
  89. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  91. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  92. package/dist/cjs/{index-f79a4e53.js → index-a62312a7.js} +11 -1
  93. package/dist/cjs/index-a62312a7.js.map +1 -0
  94. package/dist/cjs/loader.cjs.js +2 -2
  95. package/dist/cjs/types-3eb02246.js.map +1 -1
  96. package/dist/collection/assets/pagination-first-last.svg +3 -0
  97. package/dist/collection/assets/pagination-next-previous.svg +3 -0
  98. package/dist/collection/collection-manifest.json +2 -0
  99. package/dist/collection/components/ic-alert/ic-alert.css +1 -1
  100. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +3 -3
  101. package/dist/collection/components/ic-button/ic-button.css +6 -2
  102. package/dist/collection/components/ic-button/ic-button.js +118 -1
  103. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  104. package/dist/collection/components/ic-card/ic-card.css +17 -7
  105. package/dist/collection/components/ic-card/ic-card.js +2 -2
  106. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  107. package/dist/collection/components/ic-checkbox/ic-checkbox.css +11 -8
  108. package/dist/collection/components/ic-checkbox/ic-checkbox.js +28 -2
  109. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  110. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +3 -3
  111. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +15 -21
  112. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  113. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.types.js.map +1 -1
  114. package/dist/collection/components/ic-chip/ic-chip.css +11 -10
  115. package/dist/collection/components/ic-data-entity/ic-data-entity.css +1 -1
  116. package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
  117. package/dist/collection/components/ic-divider/ic-divider.css +1 -1
  118. package/dist/collection/components/ic-hero/ic-hero.css +23 -22
  119. package/dist/collection/components/ic-hero/ic-hero.js +2 -0
  120. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  121. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +4 -8
  122. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +6 -5
  123. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +4 -4
  124. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +11 -3
  125. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  126. package/dist/collection/components/ic-menu/ic-menu.css +39 -10
  127. package/dist/collection/components/ic-menu/ic-menu.js +188 -61
  128. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  129. package/dist/collection/components/ic-menu-item/ic-menu-item.css +1 -6
  130. package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +4 -0
  131. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +2 -2
  132. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +2 -2
  133. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -0
  134. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  135. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +18 -14
  136. package/dist/collection/components/ic-page-header/ic-page-header.css +1 -1
  137. package/dist/collection/components/ic-pagination/ic-pagination.css +490 -0
  138. package/dist/collection/components/ic-pagination/ic-pagination.js +435 -0
  139. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -0
  140. package/dist/collection/components/ic-pagination/ic-pagination.test.a11y.js +11 -0
  141. package/dist/collection/components/ic-pagination/ic-pagination.test.a11y.js.map +1 -0
  142. package/dist/collection/components/ic-pagination/ic-pagination.types.js +2 -0
  143. package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +1 -0
  144. package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +581 -0
  145. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +225 -0
  146. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -0
  147. package/dist/collection/components/ic-pagination-item/ic-pagination-item.types.js +2 -0
  148. package/dist/collection/components/ic-pagination-item/ic-pagination-item.types.js.map +1 -0
  149. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +2 -1
  150. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +7 -6
  151. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  152. package/dist/collection/components/ic-radio-group/ic-radio-group.css +4 -4
  153. package/dist/collection/components/ic-radio-group/ic-radio-group.js +1 -1
  154. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  155. package/dist/collection/components/ic-radio-option/ic-radio-option.css +6 -6
  156. package/dist/collection/components/ic-radio-option/ic-radio-option.js +1 -1
  157. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  158. package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -10
  159. package/dist/collection/components/ic-search-bar/ic-search-bar.js +172 -11
  160. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  161. package/dist/collection/components/ic-select/ic-select.css +4 -4
  162. package/dist/collection/components/ic-select/ic-select.js +247 -53
  163. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  164. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +43 -20
  165. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +9 -1
  166. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  167. package/dist/collection/components/ic-status-tag/ic-status-tag.css +8 -7
  168. package/dist/collection/components/ic-step/ic-step.css +1 -1
  169. package/dist/collection/components/ic-switch/ic-switch.css +4 -4
  170. package/dist/collection/components/ic-tab/ic-tab.css +4 -4
  171. package/dist/collection/components/ic-tab/ic-tab.js +50 -0
  172. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  173. package/dist/collection/components/ic-tab-context/ic-tab-context.js +79 -4
  174. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  175. package/dist/collection/components/ic-tab-group/ic-tab-group.css +1 -1
  176. package/dist/collection/components/ic-tab-group/ic-tab-group.js +6 -2
  177. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  178. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +0 -4
  179. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +56 -3
  180. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  181. package/dist/collection/components/ic-text-field/ic-text-field.css +2 -3
  182. package/dist/collection/components/ic-text-field/ic-text-field.js +129 -9
  183. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  184. package/dist/collection/components/ic-toast/ic-toast.js +7 -3
  185. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  186. package/dist/collection/components/ic-tooltip/ic-tooltip.js +53 -4
  187. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  188. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +21 -15
  189. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +5 -3
  190. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  191. package/dist/collection/components/ic-typography/ic-typography.css +19 -1
  192. package/dist/collection/components/ic-typography/ic-typography.js +1 -1
  193. package/dist/collection/utils/types.js.map +1 -1
  194. package/dist/components/ic-alert.js +1 -1
  195. package/dist/components/ic-alert.js.map +1 -1
  196. package/dist/components/ic-back-to-top.js +1 -1
  197. package/dist/components/ic-back-to-top.js.map +1 -1
  198. package/dist/components/ic-button2.js +23 -2
  199. package/dist/components/ic-button2.js.map +1 -1
  200. package/dist/components/ic-card.js +3 -3
  201. package/dist/components/ic-card.js.map +1 -1
  202. package/dist/components/ic-checkbox-group.js +16 -19
  203. package/dist/components/ic-checkbox-group.js.map +1 -1
  204. package/dist/components/ic-checkbox.js +11 -3
  205. package/dist/components/ic-checkbox.js.map +1 -1
  206. package/dist/components/ic-chip.js +1 -1
  207. package/dist/components/ic-chip.js.map +1 -1
  208. package/dist/components/ic-data-entity.js +1 -1
  209. package/dist/components/ic-data-entity.js.map +1 -1
  210. package/dist/components/ic-data-row.js +1 -1
  211. package/dist/components/ic-data-row.js.map +1 -1
  212. package/dist/components/ic-divider2.js +1 -1
  213. package/dist/components/ic-divider2.js.map +1 -1
  214. package/dist/components/ic-hero.js +3 -1
  215. package/dist/components/ic-hero.js.map +1 -1
  216. package/dist/components/ic-horizontal-scroll2.js +1 -1
  217. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  218. package/dist/components/ic-input-component-container2.js +1 -1
  219. package/dist/components/ic-input-component-container2.js.map +1 -1
  220. package/dist/components/ic-loading-indicator2.js +12 -4
  221. package/dist/components/ic-loading-indicator2.js.map +1 -1
  222. package/dist/components/ic-menu-item2.js +1 -1
  223. package/dist/components/ic-menu-item2.js.map +1 -1
  224. package/dist/components/ic-menu2.js +164 -64
  225. package/dist/components/ic-menu2.js.map +1 -1
  226. package/dist/components/ic-navigation-button.js +1 -1
  227. package/dist/components/ic-navigation-button.js.map +1 -1
  228. package/dist/components/ic-navigation-group.js +1 -1
  229. package/dist/components/ic-navigation-group.js.map +1 -1
  230. package/dist/components/ic-navigation-item.js +2 -1
  231. package/dist/components/ic-navigation-item.js.map +1 -1
  232. package/dist/components/ic-navigation-menu2.js +1 -1
  233. package/dist/components/ic-navigation-menu2.js.map +1 -1
  234. package/dist/components/ic-page-header.js +1 -1
  235. package/dist/components/ic-page-header.js.map +1 -1
  236. package/dist/components/ic-pagination-item.d.ts +11 -0
  237. package/dist/components/ic-pagination-item.js +8 -0
  238. package/dist/components/ic-pagination-item.js.map +1 -0
  239. package/dist/components/ic-pagination-item2.js +77 -0
  240. package/dist/components/ic-pagination-item2.js.map +1 -0
  241. package/dist/components/ic-pagination.d.ts +11 -0
  242. package/dist/components/ic-pagination.js +266 -0
  243. package/dist/components/ic-pagination.js.map +1 -0
  244. package/dist/components/ic-popover-menu.js +8 -8
  245. package/dist/components/ic-popover-menu.js.map +1 -1
  246. package/dist/components/ic-radio-group.js +2 -2
  247. package/dist/components/ic-radio-group.js.map +1 -1
  248. package/dist/components/ic-radio-option.js +2 -2
  249. package/dist/components/ic-radio-option.js.map +1 -1
  250. package/dist/components/ic-search-bar.js +82 -12
  251. package/dist/components/ic-search-bar.js.map +1 -1
  252. package/dist/components/ic-select.js +158 -53
  253. package/dist/components/ic-select.js.map +1 -1
  254. package/dist/components/ic-side-navigation.js +10 -2
  255. package/dist/components/ic-side-navigation.js.map +1 -1
  256. package/dist/components/ic-status-tag.js +1 -1
  257. package/dist/components/ic-status-tag.js.map +1 -1
  258. package/dist/components/ic-step.js +1 -1
  259. package/dist/components/ic-step.js.map +1 -1
  260. package/dist/components/ic-switch.js +1 -1
  261. package/dist/components/ic-switch.js.map +1 -1
  262. package/dist/components/ic-tab-context.js +44 -6
  263. package/dist/components/ic-tab-context.js.map +1 -1
  264. package/dist/components/ic-tab-group.js +2 -1
  265. package/dist/components/ic-tab-group.js.map +1 -1
  266. package/dist/components/ic-tab-panel.js +11 -2
  267. package/dist/components/ic-tab-panel.js.map +1 -1
  268. package/dist/components/ic-tab.js +13 -1
  269. package/dist/components/ic-tab.js.map +1 -1
  270. package/dist/components/ic-text-field2.js +54 -10
  271. package/dist/components/ic-text-field2.js.map +1 -1
  272. package/dist/components/ic-toast.js +7 -3
  273. package/dist/components/ic-toast.js.map +1 -1
  274. package/dist/components/ic-tooltip2.js +1817 -8
  275. package/dist/components/ic-tooltip2.js.map +1 -1
  276. package/dist/components/ic-top-navigation.js +6 -4
  277. package/dist/components/ic-top-navigation.js.map +1 -1
  278. package/dist/components/ic-typography2.js +1 -1
  279. package/dist/components/ic-typography2.js.map +1 -1
  280. package/dist/components/index.d.ts +2 -0
  281. package/dist/components/index.js +2 -0
  282. package/dist/components/index.js.map +1 -1
  283. package/dist/components/types.js.map +1 -1
  284. package/dist/core/core.css +8 -3
  285. package/dist/core/core.esm.js +1 -1
  286. package/dist/core/core.esm.js.map +1 -1
  287. package/dist/core/{p-25b208ae.entry.js → p-002a63e9.entry.js} +2 -2
  288. package/dist/core/p-002a63e9.entry.js.map +1 -0
  289. package/dist/core/p-0575a77f.entry.js +2 -0
  290. package/dist/core/p-0575a77f.entry.js.map +1 -0
  291. package/dist/core/p-0a41c3cb.entry.js +2 -0
  292. package/dist/core/p-0a41c3cb.entry.js.map +1 -0
  293. package/dist/core/{p-b7fc1f35.entry.js → p-100dbcec.entry.js} +2 -2
  294. package/dist/core/{p-c9068822.entry.js → p-14835d6f.entry.js} +2 -2
  295. package/dist/core/p-14835d6f.entry.js.map +1 -0
  296. package/dist/core/p-1eb0992b.entry.js +2 -0
  297. package/dist/core/p-1eb0992b.entry.js.map +1 -0
  298. package/dist/core/{p-62b3516e.entry.js → p-223a214f.entry.js} +2 -2
  299. package/dist/core/{p-dd71a986.entry.js → p-276f7ecb.entry.js} +2 -2
  300. package/dist/core/{p-3d84a743.entry.js → p-28bc3bf0.entry.js} +2 -2
  301. package/dist/core/{p-8ffa00c9.entry.js → p-312c10b0.entry.js} +2 -2
  302. package/dist/core/p-3845b769.entry.js +2 -0
  303. package/dist/core/p-3845b769.entry.js.map +1 -0
  304. package/dist/core/{p-cc62d065.entry.js → p-3a67718c.entry.js} +2 -2
  305. package/dist/core/p-3c23f963.entry.js +2 -0
  306. package/dist/core/p-3c23f963.entry.js.map +1 -0
  307. package/dist/core/{p-ed6cf9b9.entry.js → p-3dc2ff7b.entry.js} +2 -2
  308. package/dist/core/p-3dc2ff7b.entry.js.map +1 -0
  309. package/dist/core/p-3e5eb873.entry.js +2 -0
  310. package/dist/core/p-3e5eb873.entry.js.map +1 -0
  311. package/dist/core/{p-58ff516f.entry.js → p-3fb307e6.entry.js} +2 -2
  312. package/dist/core/{p-d2508752.entry.js → p-454b1ecd.entry.js} +2 -2
  313. package/dist/core/{p-33a0aabe.entry.js → p-47b0ed42.entry.js} +2 -2
  314. package/dist/core/p-47b0ed42.entry.js.map +1 -0
  315. package/dist/core/p-4b87445b.entry.js +2 -0
  316. package/dist/core/p-4b87445b.entry.js.map +1 -0
  317. package/dist/core/p-4c8fcfe6.entry.js +2 -0
  318. package/dist/core/p-4c8fcfe6.entry.js.map +1 -0
  319. package/dist/core/p-52fd3533.entry.js +2 -0
  320. package/dist/core/p-52fd3533.entry.js.map +1 -0
  321. package/dist/core/{p-0a463a65.entry.js → p-546b620e.entry.js} +2 -2
  322. package/dist/core/p-56fe91ad.entry.js +2 -0
  323. package/dist/core/p-56fe91ad.entry.js.map +1 -0
  324. package/dist/core/{p-5450cebf.js → p-589f6dd3.js} +3 -3
  325. package/dist/core/p-589f6dd3.js.map +1 -0
  326. package/dist/core/p-5d077cf7.entry.js +2 -0
  327. package/dist/core/p-5d077cf7.entry.js.map +1 -0
  328. package/dist/core/{p-8c9cc4d5.entry.js → p-6a77992e.entry.js} +2 -2
  329. package/dist/core/{p-acb08809.entry.js → p-6b39f8b4.entry.js} +2 -2
  330. package/dist/core/p-6b39f8b4.entry.js.map +1 -0
  331. package/dist/core/p-6f57b13c.js.map +1 -1
  332. package/dist/core/p-80eff050.entry.js +2 -0
  333. package/dist/core/p-80eff050.entry.js.map +1 -0
  334. package/dist/core/p-864b46bf.entry.js +2 -0
  335. package/dist/core/p-864b46bf.entry.js.map +1 -0
  336. package/dist/core/p-8780890e.entry.js +2 -0
  337. package/dist/core/p-8780890e.entry.js.map +1 -0
  338. package/dist/core/p-895bda21.entry.js +2 -0
  339. package/dist/core/p-895bda21.entry.js.map +1 -0
  340. package/dist/core/p-92c4fa7f.entry.js +2 -0
  341. package/dist/core/p-92c4fa7f.entry.js.map +1 -0
  342. package/dist/core/{p-dbfdfa8a.entry.js → p-9413d639.entry.js} +2 -2
  343. package/dist/core/p-9413d639.entry.js.map +1 -0
  344. package/dist/core/{p-81652a98.entry.js → p-a0f4e641.entry.js} +2 -2
  345. package/dist/core/p-a0f4e641.entry.js.map +1 -0
  346. package/dist/core/{p-4d8392fe.entry.js → p-a33a04b2.entry.js} +2 -2
  347. package/dist/core/p-a5bee11f.entry.js +2 -0
  348. package/dist/core/p-a5bee11f.entry.js.map +1 -0
  349. package/dist/core/p-b61e76e2.entry.js +2 -0
  350. package/dist/core/p-b61e76e2.entry.js.map +1 -0
  351. package/dist/core/p-c0813424.entry.js +2 -0
  352. package/dist/core/p-c0813424.entry.js.map +1 -0
  353. package/dist/core/p-cb437317.entry.js +2 -0
  354. package/dist/core/p-cb437317.entry.js.map +1 -0
  355. package/dist/core/p-d5d9923a.entry.js +2 -0
  356. package/dist/core/p-d5d9923a.entry.js.map +1 -0
  357. package/dist/core/{p-f777679c.entry.js → p-db7131b6.entry.js} +2 -2
  358. package/dist/core/p-dc0b9e80.entry.js +2 -0
  359. package/dist/core/p-dc0b9e80.entry.js.map +1 -0
  360. package/dist/core/{p-7fd50355.entry.js → p-de45134c.entry.js} +2 -2
  361. package/dist/core/p-de45134c.entry.js.map +1 -0
  362. package/dist/core/p-de891d3d.entry.js +2 -0
  363. package/dist/core/p-de891d3d.entry.js.map +1 -0
  364. package/dist/core/p-e0f24ccd.entry.js +2 -0
  365. package/dist/core/p-e0f24ccd.entry.js.map +1 -0
  366. package/dist/core/{p-741b4ea3.entry.js → p-e384aaee.entry.js} +2 -2
  367. package/dist/core/{p-26c9e522.entry.js → p-e41e701a.entry.js} +2 -2
  368. package/dist/core/p-e41e701a.entry.js.map +1 -0
  369. package/dist/core/p-e839e5dc.entry.js +2 -0
  370. package/dist/core/p-e839e5dc.entry.js.map +1 -0
  371. package/dist/core/p-ea526b54.entry.js +2 -0
  372. package/dist/core/p-ea526b54.entry.js.map +1 -0
  373. package/dist/core/{p-4ee03271.entry.js → p-ec8b228c.entry.js} +2 -2
  374. package/dist/core/p-ec8b228c.entry.js.map +1 -0
  375. package/dist/core/p-f3e10149.entry.js +2 -0
  376. package/dist/core/p-f3e10149.entry.js.map +1 -0
  377. package/dist/core/{p-ad2477d8.entry.js → p-fc7dce3d.entry.js} +2 -2
  378. package/dist/core/p-ff6583e6.entry.js +2 -0
  379. package/dist/core/p-ff6583e6.entry.js.map +1 -0
  380. package/dist/esm/core.js +2 -2
  381. package/dist/esm/ic-alert.entry.js +2 -2
  382. package/dist/esm/ic-alert.entry.js.map +1 -1
  383. package/dist/esm/ic-back-to-top.entry.js +2 -2
  384. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  385. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  386. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  387. package/dist/esm/ic-button_3.entry.js +44 -10
  388. package/dist/esm/ic-button_3.entry.js.map +1 -1
  389. package/dist/esm/ic-card.entry.js +4 -4
  390. package/dist/esm/ic-card.entry.js.map +1 -1
  391. package/dist/esm/ic-checkbox-group.entry.js +16 -18
  392. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  393. package/dist/esm/ic-checkbox.entry.js +11 -4
  394. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  395. package/dist/esm/ic-chip.entry.js +2 -2
  396. package/dist/esm/ic-chip.entry.js.map +1 -1
  397. package/dist/esm/ic-classification-banner.entry.js +1 -1
  398. package/dist/esm/ic-data-entity.entry.js +2 -2
  399. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  400. package/dist/esm/ic-data-row.entry.js +2 -2
  401. package/dist/esm/ic-data-row.entry.js.map +1 -1
  402. package/dist/esm/ic-divider.entry.js +2 -2
  403. package/dist/esm/ic-divider.entry.js.map +1 -1
  404. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  405. package/dist/esm/ic-footer-link.entry.js +1 -1
  406. package/dist/esm/ic-footer.entry.js +1 -1
  407. package/dist/esm/ic-hero.entry.js +4 -2
  408. package/dist/esm/ic-hero.entry.js.map +1 -1
  409. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  410. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  411. package/dist/esm/ic-input-component-container_3.entry.js +146 -63
  412. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  413. package/dist/esm/ic-input-label_2.entry.js +1 -1
  414. package/dist/esm/ic-link.entry.js +1 -1
  415. package/dist/esm/ic-menu-group.entry.js +1 -1
  416. package/dist/esm/ic-menu-item.entry.js +2 -2
  417. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  418. package/dist/esm/ic-navigation-button.entry.js +2 -2
  419. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  420. package/dist/esm/ic-navigation-group.entry.js +2 -2
  421. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  422. package/dist/esm/ic-navigation-item.entry.js +3 -2
  423. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  424. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  425. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  426. package/dist/esm/ic-page-header.entry.js +2 -2
  427. package/dist/esm/ic-page-header.entry.js.map +1 -1
  428. package/dist/esm/ic-pagination-item.entry.js +47 -0
  429. package/dist/esm/ic-pagination-item.entry.js.map +1 -0
  430. package/dist/esm/ic-pagination.entry.js +202 -0
  431. package/dist/esm/ic-pagination.entry.js.map +1 -0
  432. package/dist/esm/ic-popover-menu.entry.js +8 -7
  433. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  434. package/dist/esm/ic-radio-group.entry.js +3 -3
  435. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  436. package/dist/esm/ic-radio-option.entry.js +3 -3
  437. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  438. package/dist/esm/ic-search-bar.entry.js +79 -12
  439. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  440. package/dist/esm/ic-section-container.entry.js +1 -1
  441. package/dist/esm/ic-select.entry.js +153 -54
  442. package/dist/esm/ic-select.entry.js.map +1 -1
  443. package/dist/esm/ic-side-navigation.entry.js +11 -3
  444. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  445. package/dist/esm/ic-skeleton.entry.js +1 -1
  446. package/dist/esm/ic-status-tag.entry.js +2 -2
  447. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  448. package/dist/esm/ic-step.entry.js +2 -2
  449. package/dist/esm/ic-step.entry.js.map +1 -1
  450. package/dist/esm/ic-stepper.entry.js +1 -1
  451. package/dist/esm/ic-switch.entry.js +2 -2
  452. package/dist/esm/ic-switch.entry.js.map +1 -1
  453. package/dist/esm/ic-tab-context.entry.js +42 -5
  454. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  455. package/dist/esm/ic-tab-group.entry.js +3 -2
  456. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  457. package/dist/esm/ic-tab-panel.entry.js +11 -2
  458. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  459. package/dist/esm/ic-tab.entry.js +14 -2
  460. package/dist/esm/ic-tab.entry.js.map +1 -1
  461. package/dist/esm/ic-text-field.entry.js +50 -11
  462. package/dist/esm/ic-text-field.entry.js.map +1 -1
  463. package/dist/esm/ic-theme.entry.js +1 -1
  464. package/dist/esm/ic-toast-region.entry.js +1 -1
  465. package/dist/esm/ic-toast.entry.js +5 -1
  466. package/dist/esm/ic-toast.entry.js.map +1 -1
  467. package/dist/esm/ic-top-navigation.entry.js +7 -5
  468. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  469. package/dist/esm/ic-typography.entry.js +2 -2
  470. package/dist/esm/ic-typography.entry.js.map +1 -1
  471. package/dist/esm/{index-90721b3c.js → index-3b144b17.js} +11 -2
  472. package/dist/esm/index-3b144b17.js.map +1 -0
  473. package/dist/esm/loader.js +2 -2
  474. package/dist/esm/types-dd515332.js.map +1 -1
  475. package/dist/types/components/ic-button/ic-button.d.ts +24 -0
  476. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +4 -0
  477. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -3
  478. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.types.d.ts +5 -0
  479. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +2 -0
  480. package/dist/types/components/ic-menu/ic-menu.d.ts +26 -7
  481. package/dist/types/components/ic-pagination/ic-pagination.d.ts +74 -0
  482. package/dist/types/components/ic-pagination/ic-pagination.test.a11y.d.ts +1 -0
  483. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +4 -0
  484. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +46 -0
  485. package/dist/types/components/ic-pagination-item/ic-pagination-item.types.d.ts +1 -0
  486. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +30 -1
  487. package/dist/types/components/ic-select/ic-select.d.ts +31 -3
  488. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +2 -1
  489. package/dist/types/components/ic-tab/ic-tab.d.ts +11 -0
  490. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +13 -6
  491. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +2 -1
  492. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +25 -5
  493. package/dist/types/components/ic-text-field/ic-text-field.d.ts +19 -0
  494. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -0
  495. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +7 -0
  496. package/dist/types/components.d.ts +359 -19
  497. package/dist/types/utils/types.d.ts +4 -1
  498. package/hydrate/index.js +931 -219
  499. package/package.json +3 -3
  500. package/dist/cjs/index-f79a4e53.js.map +0 -1
  501. package/dist/components/popper.js +0 -1801
  502. package/dist/components/popper.js.map +0 -1
  503. package/dist/core/p-037dfe9d.entry.js +0 -2
  504. package/dist/core/p-037dfe9d.entry.js.map +0 -1
  505. package/dist/core/p-05c5c6c4.entry.js +0 -2
  506. package/dist/core/p-05c5c6c4.entry.js.map +0 -1
  507. package/dist/core/p-0faf328a.entry.js +0 -2
  508. package/dist/core/p-0faf328a.entry.js.map +0 -1
  509. package/dist/core/p-102281fd.entry.js +0 -2
  510. package/dist/core/p-102281fd.entry.js.map +0 -1
  511. package/dist/core/p-1549adc1.entry.js +0 -2
  512. package/dist/core/p-1549adc1.entry.js.map +0 -1
  513. package/dist/core/p-25b208ae.entry.js.map +0 -1
  514. package/dist/core/p-26c9e522.entry.js.map +0 -1
  515. package/dist/core/p-31a595c1.entry.js +0 -2
  516. package/dist/core/p-31a595c1.entry.js.map +0 -1
  517. package/dist/core/p-33a0aabe.entry.js.map +0 -1
  518. package/dist/core/p-360adc51.entry.js +0 -2
  519. package/dist/core/p-360adc51.entry.js.map +0 -1
  520. package/dist/core/p-3fd4f8eb.entry.js +0 -2
  521. package/dist/core/p-3fd4f8eb.entry.js.map +0 -1
  522. package/dist/core/p-48a5c2a7.entry.js +0 -2
  523. package/dist/core/p-48a5c2a7.entry.js.map +0 -1
  524. package/dist/core/p-4ee03271.entry.js.map +0 -1
  525. package/dist/core/p-5450cebf.js.map +0 -1
  526. package/dist/core/p-73fddc63.entry.js +0 -2
  527. package/dist/core/p-73fddc63.entry.js.map +0 -1
  528. package/dist/core/p-7dcb9104.entry.js +0 -2
  529. package/dist/core/p-7dcb9104.entry.js.map +0 -1
  530. package/dist/core/p-7fd50355.entry.js.map +0 -1
  531. package/dist/core/p-81652a98.entry.js.map +0 -1
  532. package/dist/core/p-87c7ba3b.entry.js +0 -2
  533. package/dist/core/p-87c7ba3b.entry.js.map +0 -1
  534. package/dist/core/p-897e967a.entry.js +0 -2
  535. package/dist/core/p-897e967a.entry.js.map +0 -1
  536. package/dist/core/p-a2c7dc6c.entry.js +0 -2
  537. package/dist/core/p-a2c7dc6c.entry.js.map +0 -1
  538. package/dist/core/p-a3742d40.entry.js +0 -2
  539. package/dist/core/p-a3742d40.entry.js.map +0 -1
  540. package/dist/core/p-a44a0500.entry.js +0 -2
  541. package/dist/core/p-a44a0500.entry.js.map +0 -1
  542. package/dist/core/p-a8e969ea.entry.js +0 -2
  543. package/dist/core/p-a8e969ea.entry.js.map +0 -1
  544. package/dist/core/p-ac6ecdb6.entry.js +0 -2
  545. package/dist/core/p-ac6ecdb6.entry.js.map +0 -1
  546. package/dist/core/p-acb08809.entry.js.map +0 -1
  547. package/dist/core/p-affb42c7.entry.js +0 -2
  548. package/dist/core/p-affb42c7.entry.js.map +0 -1
  549. package/dist/core/p-b8b960a5.entry.js +0 -2
  550. package/dist/core/p-b8b960a5.entry.js.map +0 -1
  551. package/dist/core/p-b921bb19.entry.js +0 -2
  552. package/dist/core/p-b921bb19.entry.js.map +0 -1
  553. package/dist/core/p-c9068822.entry.js.map +0 -1
  554. package/dist/core/p-c996810e.entry.js +0 -2
  555. package/dist/core/p-c996810e.entry.js.map +0 -1
  556. package/dist/core/p-d28d7f24.entry.js +0 -2
  557. package/dist/core/p-d28d7f24.entry.js.map +0 -1
  558. package/dist/core/p-dbfdfa8a.entry.js.map +0 -1
  559. package/dist/core/p-e4547265.entry.js +0 -2
  560. package/dist/core/p-e4547265.entry.js.map +0 -1
  561. package/dist/core/p-ea0c4aca.entry.js +0 -2
  562. package/dist/core/p-ea0c4aca.entry.js.map +0 -1
  563. package/dist/core/p-ed6cf9b9.entry.js.map +0 -1
  564. package/dist/core/p-f6ddd32f.entry.js +0 -2
  565. package/dist/core/p-f6ddd32f.entry.js.map +0 -1
  566. package/dist/esm/index-90721b3c.js.map +0 -1
  567. /package/dist/core/{p-b7fc1f35.entry.js.map → p-100dbcec.entry.js.map} +0 -0
  568. /package/dist/core/{p-62b3516e.entry.js.map → p-223a214f.entry.js.map} +0 -0
  569. /package/dist/core/{p-dd71a986.entry.js.map → p-276f7ecb.entry.js.map} +0 -0
  570. /package/dist/core/{p-3d84a743.entry.js.map → p-28bc3bf0.entry.js.map} +0 -0
  571. /package/dist/core/{p-8ffa00c9.entry.js.map → p-312c10b0.entry.js.map} +0 -0
  572. /package/dist/core/{p-cc62d065.entry.js.map → p-3a67718c.entry.js.map} +0 -0
  573. /package/dist/core/{p-58ff516f.entry.js.map → p-3fb307e6.entry.js.map} +0 -0
  574. /package/dist/core/{p-d2508752.entry.js.map → p-454b1ecd.entry.js.map} +0 -0
  575. /package/dist/core/{p-0a463a65.entry.js.map → p-546b620e.entry.js.map} +0 -0
  576. /package/dist/core/{p-8c9cc4d5.entry.js.map → p-6a77992e.entry.js.map} +0 -0
  577. /package/dist/core/{p-4d8392fe.entry.js.map → p-a33a04b2.entry.js.map} +0 -0
  578. /package/dist/core/{p-f777679c.entry.js.map → p-db7131b6.entry.js.map} +0 -0
  579. /package/dist/core/{p-741b4ea3.entry.js.map → p-e384aaee.entry.js.map} +0 -0
  580. /package/dist/core/{p-ad2477d8.entry.js.map → p-fc7dce3d.entry.js.map} +0 -0
@@ -5,6 +5,7 @@ import { IcInformationStatus, IcThemeForegroundEnum, } from "../../utils/types";
5
5
  import Expand from "./assets/Expand.svg";
6
6
  import Clear from "./assets/Clear.svg";
7
7
  let inputIds = 0;
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
9
  export class Select {
9
10
  constructor() {
10
11
  this.inputId = `ic-select-input-${inputIds++}`;
@@ -12,10 +13,20 @@ export class Select {
12
13
  this.ungroupedOptions = [];
13
14
  this.inheritedAttributes = {};
14
15
  this.hasSetDefaultValue = false;
15
- this.initialRender = false;
16
16
  this.initialOptionsEmpty = false;
17
+ this.handleRetry = (ev) => {
18
+ var _a;
19
+ if (ev.detail.keyPressed)
20
+ (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.focus();
21
+ this.blurredBecauseButtonPressed = true;
22
+ this.retryButtonClick = true;
23
+ this.hasSetDefaultValue = true;
24
+ this.icRetryLoad.emit({ value: this.hiddenInputValue });
25
+ };
17
26
  this.emitIcChange = (value) => {
18
- this.value = value;
27
+ if (!this.searchable) {
28
+ this.value = value;
29
+ }
19
30
  clearTimeout(this.debounceIcChange);
20
31
  this.debounceIcChange = window.setTimeout(() => {
21
32
  this.icChange.emit({ value: value });
@@ -58,11 +69,6 @@ export class Select {
58
69
  this.getLabelFromValue = (value) => {
59
70
  return getLabelFromValue(value, this.options);
60
71
  };
61
- this.getValueFromLabel = (label) => {
62
- var _a;
63
- const value = (_a = this.options.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value;
64
- return value;
65
- };
66
72
  this.getFilteredChildMenuOptions = (option) => {
67
73
  let children = option.children;
68
74
  if (this.searchable) {
@@ -86,7 +92,13 @@ export class Select {
86
92
  return;
87
93
  }
88
94
  if (this.searchable) {
89
- this.searchableSelectInputValue = this.getLabelFromValue(event.detail.value);
95
+ this.value = event.detail.value;
96
+ // After editing the input, if selecting the same option as before, set the input value to label again
97
+ if (this.value === this.currValue) {
98
+ this.searchableSelectInputValue = this.getLabelFromValue(this.value);
99
+ }
100
+ this.inputValueToFilter = null;
101
+ this.hiddenInputValue = this.getValueFromLabel(this.searchableSelectInputValue);
90
102
  }
91
103
  this.ariaActiveDescendant = event.detail.optionId;
92
104
  this.icOptionSelect.emit({ value: event.detail.value });
@@ -123,8 +135,10 @@ export class Select {
123
135
  this.menu.options = this.filteredOptions;
124
136
  }
125
137
  else {
126
- this.noOptions = null;
127
- this.menu.options = this.options;
138
+ if (!this.hasTimedOut && !this.loading) {
139
+ this.noOptions = null;
140
+ this.menu.options = this.options;
141
+ }
128
142
  }
129
143
  if (event.detail !== 0 && this.isMenuEnabled()) {
130
144
  this.menu.handleClickOpen();
@@ -139,13 +153,15 @@ export class Select {
139
153
  };
140
154
  this.handleClear = (event) => {
141
155
  event.stopPropagation();
156
+ this.hasTimedOut = false;
142
157
  this.noOptions = null;
143
158
  this.emitImmediateIcChange(null);
144
159
  this.icClear.emit();
145
160
  if (this.searchable) {
146
161
  this.searchableSelectElement.value = null;
147
162
  this.searchableSelectInputValue = null;
148
- this.menu.options = this.options;
163
+ this.filteredOptions = this.options;
164
+ this.hiddenInputValue = null;
149
165
  this.searchableSelectElement.focus();
150
166
  if (!this.isMenuEnabled()) {
151
167
  this.setMenuChange(false);
@@ -157,7 +173,11 @@ export class Select {
157
173
  };
158
174
  this.handleCharacterKeyDown = (key) => {
159
175
  // Only close menu when space is pressed if not being used alongside character keys to quickly select options
160
- if (this.open && key === " " && this.pressedCharacters.length === 0) {
176
+ if (this.open &&
177
+ key === " " &&
178
+ this.pressedCharacters.length === 0 &&
179
+ !this.hasTimedOut &&
180
+ !this.loading) {
161
181
  this.setMenuChange(false);
162
182
  }
163
183
  if (key.length === 1 && !this.searchable) {
@@ -185,8 +205,10 @@ export class Select {
185
205
  this.menu.options = this.filteredOptions;
186
206
  }
187
207
  else {
188
- this.noOptions = null;
189
- this.menu.options = this.options;
208
+ if (!this.hasTimedOut) {
209
+ this.noOptions = null;
210
+ this.menu.options = this.options;
211
+ }
190
212
  }
191
213
  }
192
214
  if (this.open && event.key === "Enter") {
@@ -195,6 +217,7 @@ export class Select {
195
217
  else {
196
218
  if (!(isArrowKey && this.noOptions !== null) && this.isMenuEnabled()) {
197
219
  if (!(event.key === " " && this.pressedCharacters.length > 0)) {
220
+ // Keyboard events get passed onto ic-menu
198
221
  this.menu.handleKeyboardOpen(event);
199
222
  }
200
223
  this.handleCharacterKeyDown(event.key);
@@ -204,7 +227,15 @@ export class Select {
204
227
  this.handleClearButtonFocus = () => {
205
228
  this.clearButtonFocused = true;
206
229
  };
207
- this.handleClearButtonBlur = () => {
230
+ this.handleClearButtonBlur = (ev) => {
231
+ var _a;
232
+ const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector("#retry-button");
233
+ if (!(this.searchableSelectElement &&
234
+ ev.relatedTarget === this.searchableSelectElement) &&
235
+ !(retryButton && ev.relatedTarget === retryButton)) {
236
+ this.setMenuChange(false);
237
+ this.handleFocusIndicatorDisplay();
238
+ }
208
239
  this.clearButtonFocused = false;
209
240
  };
210
241
  this.handleFilter = () => {
@@ -217,7 +248,7 @@ export class Select {
217
248
  });
218
249
  let menuOptionsFiltered;
219
250
  if (this.searchable) {
220
- menuOptionsFiltered = getFilteredMenuOptions(options, this.includeDescriptionsInSearch, this.searchableSelectInputValue, this.searchMatchPosition);
251
+ menuOptionsFiltered = getFilteredMenuOptions(options, this.includeDescriptionsInSearch, this.inputValueToFilter, this.searchMatchPosition);
221
252
  }
222
253
  else {
223
254
  menuOptionsFiltered = getFilteredMenuOptions(options, false, this.pressedCharacters, "start");
@@ -259,15 +290,37 @@ export class Select {
259
290
  this.filteredOptions = this.noOptions;
260
291
  }
261
292
  };
293
+ this.triggerLoading = () => {
294
+ this.hasTimedOut = false;
295
+ this.noOptions = [{ label: this.loadingLabel, value: "", loading: true }];
296
+ if (this.filteredOptions !== this.noOptions && this.searchable)
297
+ this.filteredOptions = this.noOptions;
298
+ else if (!this.searchable && this.options !== this.noOptions)
299
+ this.options = this.noOptions;
300
+ if (this.timeout) {
301
+ this.timeoutTimer = window.setTimeout(() => {
302
+ this.loading = false;
303
+ this.hasTimedOut = true;
304
+ this.noOptions = [
305
+ { label: this.loadingErrorLabel, value: "", timedOut: true },
306
+ ];
307
+ this.filteredOptions = this.noOptions;
308
+ if (!this.searchable)
309
+ this.options = this.noOptions;
310
+ }, this.timeout);
311
+ }
312
+ };
313
+ this.getValueFromLabel = (label) => {
314
+ var _a;
315
+ const value = (_a = this.options.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value;
316
+ return value;
317
+ };
262
318
  this.handleSearchableSelectInput = (event) => {
263
319
  this.searchableSelectInputValue = event.target.value;
264
320
  this.icInput.emit({ value: this.searchableSelectInputValue });
265
- if (this.disableFilter) {
266
- this.emitIcChange(this.searchableSelectInputValue);
267
- }
268
- else if (this.getValueFromLabel(this.searchableSelectInputValue) === undefined) {
269
- this.emitIcChange(null);
270
- }
321
+ this.emitIcChange(this.searchableSelectInputValue);
322
+ this.hiddenInputValue = this.searchableSelectInputValue;
323
+ this.inputValueToFilter = this.searchableSelectInputValue;
271
324
  if (this.isMenuEnabled()) {
272
325
  this.setMenuChange(true);
273
326
  }
@@ -295,20 +348,43 @@ export class Select {
295
348
  this.icFocus.emit();
296
349
  };
297
350
  this.onBlur = (event) => {
351
+ var _a;
352
+ const target = event.relatedTarget;
353
+ if (target !== null &&
354
+ target.tagName === "UL" &&
355
+ target.className.includes("menu")) {
356
+ return;
357
+ }
358
+ const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector("#retry-button");
298
359
  const isSearchableAndNoFocusedInternalElements = this.searchable &&
299
360
  event.relatedTarget !== this.menu &&
300
361
  !Array.from(this.menu.querySelectorAll("[role='option']")).includes(event.relatedTarget) &&
301
- !(this.clearButton && event.relatedTarget === this.clearButton);
362
+ !(this.clearButton && event.relatedTarget === this.clearButton) &&
363
+ !(retryButton && event.relatedTarget === retryButton);
302
364
  if (isSearchableAndNoFocusedInternalElements) {
303
- this.setMenuChange(false);
365
+ if (!this.retryButtonClick) {
366
+ this.setMenuChange(false);
367
+ }
304
368
  this.handleFocusIndicatorDisplay();
305
369
  }
370
+ this.retryButtonClick = false;
306
371
  this.icBlur.emit();
307
372
  };
373
+ this.onTimeoutBlur = (ev) => {
374
+ if (ev.detail.ev.relatedTarget !==
375
+ this.searchableSelectElement &&
376
+ !this.blurredBecauseButtonPressed) {
377
+ this.setMenuChange(false);
378
+ this.handleFocusIndicatorDisplay();
379
+ this.icBlur.emit();
380
+ }
381
+ this.blurredBecauseButtonPressed = false;
382
+ };
308
383
  this.handleFormReset = () => {
309
384
  this.value = this.initialValue;
310
385
  if (this.searchable) {
311
386
  this.searchableSelectInputValue = this.getDefaultValue(this.value);
387
+ this.hiddenInputValue = this.value;
312
388
  }
313
389
  };
314
390
  this.label = undefined;
@@ -334,6 +410,10 @@ export class Select {
334
410
  this.charactersUntilSuggestions = 0;
335
411
  this.emptyOptionListText = "No results found";
336
412
  this.disableFilter = false;
413
+ this.timeout = undefined;
414
+ this.loadingLabel = "Loading...";
415
+ this.loadingErrorLabel = "Loading Error";
416
+ this.loading = false;
337
417
  this.open = false;
338
418
  this.clearButtonFocused = false;
339
419
  this.searchableSelectInputValue = null;
@@ -345,32 +425,41 @@ export class Select {
345
425
  this.currValue = this.value;
346
426
  this.debounceIcChange = undefined;
347
427
  this.pressedCharacters = "";
428
+ this.hiddenInputValue = undefined;
429
+ this.inputValueToFilter = this.value;
430
+ }
431
+ loadingHandler(newValue) {
432
+ newValue && this.triggerLoading();
348
433
  }
349
434
  watchOptionsHandler() {
350
- if (this.isExternalFiltering()) {
351
- if (this.options.length > 0) {
435
+ if (!this.hasTimedOut) {
436
+ this.loading = false;
437
+ clearTimeout(this.timeoutTimer);
438
+ if (this.isExternalFiltering()) {
439
+ if (this.options.length > 0) {
440
+ this.setOptionsValuesFromLabels();
441
+ this.noOptions = null;
442
+ this.filteredOptions = this.options;
443
+ }
444
+ else if (this.isMenuEnabled()) {
445
+ this.noOptions = [{ label: this.emptyOptionListText, value: "" }];
446
+ this.filteredOptions = this.noOptions;
447
+ }
448
+ this.updateSearchableSelectResultAriaLive();
449
+ this.setDefaultValue();
450
+ }
451
+ else {
352
452
  this.setOptionsValuesFromLabels();
353
- this.noOptions = null;
354
453
  this.filteredOptions = this.options;
355
- }
356
- else if (this.isMenuEnabled()) {
357
- this.noOptions = [{ label: this.emptyOptionListText, value: "" }];
358
- this.filteredOptions = this.noOptions;
359
- // Will prevent 'No results found' displaying on initial load and setting default value
360
- if (!this.initialRender) {
361
- this.setMenuChange(true);
454
+ if (this.initialOptionsEmpty) {
455
+ this.setDefaultValue();
456
+ this.initialOptionsEmpty = false;
362
457
  }
363
458
  }
364
- this.updateSearchableSelectResultAriaLive();
365
- this.setDefaultValue();
366
459
  }
367
460
  else {
368
- this.setOptionsValuesFromLabels();
369
- this.filteredOptions = this.options;
370
- if (this.initialOptionsEmpty) {
371
- this.setDefaultValue();
372
- this.initialOptionsEmpty = false;
373
- }
461
+ if (!this.searchable)
462
+ this.options = this.noOptions;
374
463
  }
375
464
  }
376
465
  debounceChangedHandler(newValue) {
@@ -380,6 +469,10 @@ export class Select {
380
469
  if (this.value !== this.currValue) {
381
470
  this.currValue = this.value;
382
471
  }
472
+ if (this.searchable && !!this.currValue) {
473
+ this.searchableSelectInputValue =
474
+ this.getLabelFromValue(this.currValue) || this.currValue;
475
+ }
383
476
  }
384
477
  /**
385
478
  * Sets focus on the input box.
@@ -421,11 +514,10 @@ export class Select {
421
514
  ]);
422
515
  this.setOptionsValuesFromLabels();
423
516
  addFormResetListener(this.host, this.handleFormReset);
424
- this.initialRender = true;
425
517
  if (!this.options.length) {
426
518
  this.initialOptionsEmpty = true;
427
519
  }
428
- else if (!this.disableFilter) {
520
+ else {
429
521
  this.setDefaultValue();
430
522
  }
431
523
  }
@@ -434,18 +526,24 @@ export class Select {
434
526
  this.setTextColor();
435
527
  }
436
528
  }
437
- componentWillUpdate() {
438
- this.initialRender = false;
439
- }
440
529
  componentDidLoad() {
441
530
  onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Select");
531
+ if (this.loading)
532
+ this.triggerLoading();
533
+ this.hiddenInputValue = this.searchable && this.currValue;
442
534
  }
443
535
  disconnectedCallback() {
444
536
  removeFormResetListener(this.host, this.handleFormReset);
445
537
  }
446
538
  render() {
539
+ var _a, _b;
447
540
  const { small, disabled, fullWidth, helperText, hideLabel, label, menuId, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, currValue, } = this;
448
- renderHiddenInput(true, this.host, name, currValue, disabled);
541
+ const isOrHasLoaded = ((_a = (searchable ? this.filteredOptions : options)[0]) === null || _a === void 0 ? void 0 : _a.label) ===
542
+ this.loadingLabel ||
543
+ ((_b = (searchable ? this.filteredOptions : options)[0]) === null || _b === void 0 ? void 0 : _b.label) ===
544
+ this.loadingErrorLabel;
545
+ const inputValue = this.searchable ? this.hiddenInputValue : currValue;
546
+ renderHiddenInput(true, this.host, name, inputValue, disabled);
449
547
  const invalid = validationStatus === IcInformationStatus.Error ? "true" : "false";
450
548
  const describedBy = getInputDescribedByText(this.inputId, helperText !== "", hasValidationStatus(this.validationStatus, this.disabled)).trim();
451
549
  return (h(Host, { class: {
@@ -453,14 +551,14 @@ export class Select {
453
551
  searchable: searchable,
454
552
  small: small,
455
553
  "full-width": fullWidth,
456
- } }, h("ic-input-container", { readonly: readonly }, !hideLabel && (h("ic-input-label", { for: this.inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), h("ic-input-component-container", { ref: (el) => (this.anchorEl = el), class: { "menu-open": this.open }, small: small, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, readonly ? (h("ic-typography", null, h("p", null, this.getLabelFromValue(currValue)))) : isMobileOrTablet() ? (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 }, this.inheritedAttributes), h("option", { value: "", selected: true, disabled: !showClearButton }, placeholder), options.map((option) => {
554
+ }, onBlur: this.onBlur }, h("ic-input-container", { readonly: readonly }, !hideLabel && (h("ic-input-label", { for: this.inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), h("ic-input-component-container", { ref: (el) => (this.anchorEl = el), class: { "menu-open": this.open }, small: small, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, readonly ? (h("ic-typography", null, h("p", null, this.getLabelFromValue(currValue)))) : isMobileOrTablet() ? (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 }, this.inheritedAttributes), h("option", { value: "", selected: true, disabled: !showClearButton }, placeholder), options.map((option) => {
457
555
  if (option.children) {
458
556
  return (h("optgroup", { label: option.label }, option.children.map((option) => (h("option", { value: option.value, disabled: option.disabled, selected: option.value === currValue }, option.label)))));
459
557
  }
460
558
  else {
461
559
  return (h("option", { value: option.value, disabled: option.disabled, selected: option.value === currValue }, option.label));
462
560
  }
463
- }))) : searchable ? (h("div", { class: "searchable-select-container" }, h("input", { class: "select-input", role: "combobox", "aria-label": label, "aria-describedby": describedBy, "aria-activedescendant": this.ariaActiveDescendant, "aria-autocomplete": "list", "aria-expanded": this.open ? "true" : "false", "aria-invalid": invalid, "aria-required": required ? "true" : "false", "aria-controls": menuId, ref: (el) => (this.searchableSelectElement = el), id: this.inputId, value: this.searchableSelectInputValue, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur }), this.searchableSelectInputValue &&
561
+ }))) : searchable ? (h("div", { class: "searchable-select-container" }, h("input", { class: "select-input", role: "combobox", autocomplete: "off", "aria-label": label, "aria-describedby": describedBy, "aria-activedescendant": this.ariaActiveDescendant, "aria-autocomplete": "list", "aria-expanded": this.open ? "true" : "false", "aria-invalid": invalid, "aria-required": required ? "true" : "false", "aria-controls": menuId, ref: (el) => (this.searchableSelectElement = el), id: this.inputId, value: this.searchableSelectInputValue, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur }), this.searchableSelectInputValue &&
464
562
  (showClearButton || searchable) && (h("div", { class: "clear-button-container" }, h("ic-button", { id: "clear-button", ref: (el) => (this.clearButton = el), "aria-label": this.searchableSelectInputValue && currValue === null
465
563
  ? "Clear input"
466
564
  : "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: small ? "small" : "default", variant: "icon", appearance: this.clearButtonFocused
@@ -479,10 +577,10 @@ export class Select {
479
577
  }, innerHTML: Expand, "aria-hidden": "true" }))), currValue && showClearButton && (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: small ? "small" : "default", variant: "icon", appearance: this.clearButtonFocused
480
578
  ? IcThemeForegroundEnum.Light
481
579
  : IcThemeForegroundEnum.Dark }))))), !isMobileOrTablet() && (h("ic-menu", { class: {
482
- "no-results": this.noOptions !== null && this.searchable,
580
+ "no-results": this.noOptions !== null || isOrHasLoaded,
483
581
  }, ref: (el) => (this.menu = el), inputEl: searchable
484
582
  ? this.searchableSelectElement
485
- : this.customSelectElement, inputLabel: label, anchorEl: this.anchorEl, small: small, menuId: menuId, open: this.open, options: searchable ? this.filteredOptions : options, value: currValue, fullWidth: fullWidth, onMenuStateChange: this.handleMenuChange, onMenuOptionSelect: this.handleCustomSelectChange, onMenuKeyPress: this.handleMenuKeyPress, onUngroupedOptionsSet: this.setUngroupedOptions, parentEl: this.host })), hasValidationStatus(this.validationStatus, this.disabled) && (h("ic-input-validation", { class: { "menu-open": this.open }, ariaLiveMode: "polite", status: validationStatus, message: validationText, for: this.inputId })))));
583
+ : this.customSelectElement, inputLabel: label, anchorEl: this.anchorEl, small: small, menuId: menuId, open: this.open, options: searchable ? this.filteredOptions : options, value: currValue, fullWidth: fullWidth, onMenuStateChange: this.handleMenuChange, onMenuOptionSelect: this.handleCustomSelectChange, onMenuKeyPress: this.handleMenuKeyPress, onUngroupedOptionsSet: this.setUngroupedOptions, onRetryButtonClicked: this.handleRetry, parentEl: this.host, onTimeoutBlur: this.onTimeoutBlur, activationType: this.searchable ? "manual" : "automatic" })), hasValidationStatus(this.validationStatus, this.disabled) && (h("ic-input-validation", { class: { "menu-open": this.open }, ariaLiveMode: "polite", status: validationStatus, message: validationText, for: this.inputId })))));
486
584
  }
487
585
  static get is() { return "ic-select"; }
488
586
  static get encapsulation() { return "shadow"; }
@@ -926,6 +1024,77 @@ export class Select {
926
1024
  "attribute": "disable-filter",
927
1025
  "reflect": false,
928
1026
  "defaultValue": "false"
1027
+ },
1028
+ "timeout": {
1029
+ "type": "number",
1030
+ "mutable": false,
1031
+ "complexType": {
1032
+ "original": "number",
1033
+ "resolved": "number",
1034
+ "references": {}
1035
+ },
1036
+ "required": false,
1037
+ "optional": true,
1038
+ "docs": {
1039
+ "tags": [],
1040
+ "text": "If using external filtering, set a timeout for when loading takes too long."
1041
+ },
1042
+ "attribute": "timeout",
1043
+ "reflect": false
1044
+ },
1045
+ "loadingLabel": {
1046
+ "type": "string",
1047
+ "mutable": false,
1048
+ "complexType": {
1049
+ "original": "string",
1050
+ "resolved": "string",
1051
+ "references": {}
1052
+ },
1053
+ "required": false,
1054
+ "optional": true,
1055
+ "docs": {
1056
+ "tags": [],
1057
+ "text": "Change the message displayed whilst the options are being loaded externally."
1058
+ },
1059
+ "attribute": "loading-label",
1060
+ "reflect": false,
1061
+ "defaultValue": "\"Loading...\""
1062
+ },
1063
+ "loadingErrorLabel": {
1064
+ "type": "string",
1065
+ "mutable": false,
1066
+ "complexType": {
1067
+ "original": "string",
1068
+ "resolved": "string",
1069
+ "references": {}
1070
+ },
1071
+ "required": false,
1072
+ "optional": true,
1073
+ "docs": {
1074
+ "tags": [],
1075
+ "text": "Change the message displayed when external loading times out."
1076
+ },
1077
+ "attribute": "loading-error-label",
1078
+ "reflect": false,
1079
+ "defaultValue": "\"Loading Error\""
1080
+ },
1081
+ "loading": {
1082
+ "type": "boolean",
1083
+ "mutable": true,
1084
+ "complexType": {
1085
+ "original": "boolean",
1086
+ "resolved": "boolean",
1087
+ "references": {}
1088
+ },
1089
+ "required": false,
1090
+ "optional": true,
1091
+ "docs": {
1092
+ "tags": [],
1093
+ "text": "Trigger loading state when fetching options asyncronously"
1094
+ },
1095
+ "attribute": "loading",
1096
+ "reflect": false,
1097
+ "defaultValue": "false"
929
1098
  }
930
1099
  };
931
1100
  }
@@ -941,7 +1110,9 @@ export class Select {
941
1110
  "currDebounce": {},
942
1111
  "currValue": {},
943
1112
  "debounceIcChange": {},
944
- "pressedCharacters": {}
1113
+ "pressedCharacters": {},
1114
+ "hiddenInputValue": {},
1115
+ "inputValueToFilter": {}
945
1116
  };
946
1117
  }
947
1118
  static get events() {
@@ -1050,6 +1221,26 @@ export class Select {
1050
1221
  }
1051
1222
  }
1052
1223
  }
1224
+ }, {
1225
+ "method": "icRetryLoad",
1226
+ "name": "icRetryLoad",
1227
+ "bubbles": true,
1228
+ "cancelable": true,
1229
+ "composed": true,
1230
+ "docs": {
1231
+ "tags": [],
1232
+ "text": "Emitted when the 'retry loading' button is clicked"
1233
+ },
1234
+ "complexType": {
1235
+ "original": "IcValueEventDetail",
1236
+ "resolved": "IcValueEventDetail",
1237
+ "references": {
1238
+ "IcValueEventDetail": {
1239
+ "location": "import",
1240
+ "path": "../../interface"
1241
+ }
1242
+ }
1243
+ }
1053
1244
  }];
1054
1245
  }
1055
1246
  static get methods() {
@@ -1075,6 +1266,9 @@ export class Select {
1075
1266
  static get elementRef() { return "host"; }
1076
1267
  static get watchers() {
1077
1268
  return [{
1269
+ "propName": "loading",
1270
+ "methodName": "loadingHandler"
1271
+ }, {
1078
1272
  "propName": "options",
1079
1273
  "methodName": "watchOptionsHandler"
1080
1274
  }, {