@ukic/web-components 2.0.0-alpha.124 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (584) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-9d4961dc.js → helpers-60fda93f.js} +49 -21
  3. package/dist/cjs/helpers-60fda93f.js.map +1 -0
  4. package/dist/cjs/ic-alert.cjs.entry.js +4 -3
  5. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-back-to-top.cjs.entry.js +3 -2
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  8. package/dist/cjs/{ic-breadcrumbs.cjs.entry.js → ic-breadcrumb-group.cjs.entry.js} +7 -6
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -0
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -2
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-button_3.cjs.entry.js +26 -30
  13. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-card.cjs.entry.js +3 -2
  15. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -2
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -2
  19. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-data-entity.cjs.entry.js +6 -6
  21. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-data-row.cjs.entry.js +6 -5
  23. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-divider.cjs.entry.js +3 -2
  25. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-footer-link-group.cjs.entry.js +12 -11
  27. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-footer-link.cjs.entry.js +8 -7
  29. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-footer.cjs.entry.js +16 -15
  31. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-hero.cjs.entry.js +9 -8
  33. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +84 -29
  35. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
  37. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-link.cjs.entry.js +11 -10
  39. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-navigation-button.cjs.entry.js +8 -7
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -1
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -2
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js +3 -2
  47. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-page-header.cjs.entry.js +6 -5
  49. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-radio-group.cjs.entry.js +3 -2
  51. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-radio-option.cjs.entry.js +3 -2
  53. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-search-bar.cjs.entry.js +16 -19
  55. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-select.cjs.entry.js +219 -25
  57. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -3
  59. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-skeleton.cjs.entry.js +10 -10
  61. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-status-tag.cjs.entry.js +9 -8
  63. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-step.cjs.entry.js +2 -1
  65. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
  67. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-switch.cjs.entry.js +8 -7
  69. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-tab-context.cjs.entry.js +12 -11
  71. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-tab-group.cjs.entry.js +146 -0
  73. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -0
  74. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -1
  75. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-tab.cjs.entry.js +5 -4
  77. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-text-field.cjs.entry.js +10 -10
  79. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-theme.cjs.entry.js +2 -1
  81. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-top-navigation.cjs.entry.js +7 -6
  83. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-typography.cjs.entry.js +4 -4
  85. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  86. package/dist/cjs/index-3ef30d9d.js +4 -4
  87. package/dist/cjs/loader.cjs.js +1 -1
  88. package/dist/cjs/types-3eb02246.js +16 -0
  89. package/dist/cjs/types-3eb02246.js.map +1 -0
  90. package/dist/collection/collection-manifest.json +2 -2
  91. package/dist/collection/components/ic-alert/ic-alert.js +1 -1
  92. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  93. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +1 -1
  94. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  95. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +1 -2
  96. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs-test-examples.js → ic-breadcrumb-group/ic-breadcrumb-group-test-examples.js} +7 -7
  97. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group-test-examples.js.map +1 -0
  98. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.css → ic-breadcrumb-group/ic-breadcrumb-group.css} +1 -0
  99. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.js → ic-breadcrumb-group/ic-breadcrumb-group.js} +5 -5
  100. package/dist/{core/p-ed1d8712.entry.js.map → collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map} +1 -1
  101. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.test.a11y.js → ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.js} +6 -6
  102. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.js.map +1 -0
  103. package/dist/collection/components/ic-button/ic-button.css +5 -11
  104. package/dist/collection/components/ic-button/ic-button.js +22 -52
  105. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  106. package/dist/collection/components/ic-button/ic-button.types.js.map +1 -1
  107. package/dist/collection/components/ic-card/ic-card.js +1 -1
  108. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  109. package/dist/collection/components/ic-checkbox/ic-checkbox.css +1 -1
  110. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -4
  111. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  112. package/dist/collection/components/ic-data-entity/ic-data-entity.css +2 -2
  113. package/dist/collection/components/ic-data-entity/ic-data-entity.js +8 -8
  114. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  115. package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
  116. package/dist/collection/components/ic-data-row/ic-data-row.js +6 -6
  117. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  118. package/dist/collection/components/ic-footer/ic-footer.css +2 -2
  119. package/dist/collection/components/ic-footer/ic-footer.js +14 -14
  120. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  121. package/dist/collection/components/ic-footer/ic-footer.types.js.map +1 -1
  122. package/dist/collection/components/ic-footer-link/ic-footer-link.css +2 -2
  123. package/dist/collection/components/ic-footer-link/ic-footer-link.js +5 -5
  124. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  125. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +8 -8
  126. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +10 -10
  127. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  128. package/dist/collection/components/ic-hero/ic-hero.css +17 -12
  129. package/dist/collection/components/ic-hero/ic-hero.js +9 -9
  130. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  131. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +6 -5
  132. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +6 -6
  133. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  134. package/dist/collection/components/ic-link/ic-link.css +1 -1
  135. package/dist/collection/components/ic-link/ic-link.js +9 -9
  136. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  137. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +2 -2
  138. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +26 -25
  139. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  140. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
  141. package/dist/collection/components/ic-menu/ic-menu.css +5 -4
  142. package/dist/collection/components/ic-menu/ic-menu.js +82 -25
  143. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  144. package/dist/collection/components/ic-menu/ic-menu.types.js.map +1 -1
  145. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +7 -7
  146. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  147. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -1
  148. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  149. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +1 -1
  150. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  151. package/dist/collection/components/ic-page-header/ic-page-header.css +1 -1
  152. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  153. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  154. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  155. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  156. package/dist/collection/components/ic-radio-option/ic-radio-option.css +2 -2
  157. package/dist/collection/components/ic-search-bar/ic-search-bar.css +7 -1
  158. package/dist/collection/components/ic-search-bar/ic-search-bar.js +13 -35
  159. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  160. package/dist/collection/components/ic-select/ic-select.css +70 -9
  161. package/dist/collection/components/ic-select/ic-select.js +341 -28
  162. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  163. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +1 -1
  164. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  165. package/dist/collection/components/ic-skeleton/ic-skeleton.css +4 -4
  166. package/dist/collection/components/ic-skeleton/ic-skeleton.js +14 -14
  167. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  168. package/dist/collection/components/ic-skeleton/ic-skeleton.types.js.map +1 -1
  169. package/dist/collection/components/ic-status-tag/ic-status-tag.css +9 -9
  170. package/dist/collection/components/ic-status-tag/ic-status-tag.js +14 -14
  171. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  172. package/dist/collection/components/ic-status-tag/ic-status-tag.types.js.map +1 -1
  173. package/dist/collection/components/ic-switch/ic-switch.css +6 -6
  174. package/dist/collection/components/ic-switch/ic-switch.js +8 -8
  175. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  176. package/dist/collection/components/ic-tab/ic-tab.js +17 -11
  177. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  178. package/dist/collection/components/ic-tab-context/ic-tab-context.js +25 -19
  179. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  180. package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js +2 -2
  181. package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js.map +1 -1
  182. package/dist/collection/components/{ic-tab-list → ic-tab-group}/assets/left-arrow.svg +0 -0
  183. package/dist/collection/components/{ic-tab-list → ic-tab-group}/assets/right-arrow.svg +0 -0
  184. package/dist/collection/components/{ic-tab-list/ic-tab-list.css → ic-tab-group/ic-tab-group.css} +2 -2
  185. package/dist/collection/components/{ic-tab-list/ic-tab-list.js → ic-tab-group/ic-tab-group.js} +37 -31
  186. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -0
  187. package/dist/collection/components/ic-text-field/ic-text-field.js +6 -25
  188. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  189. package/dist/collection/components/ic-tooltip/ic-tooltip.css +4 -4
  190. package/dist/collection/components/ic-tooltip/ic-tooltip.js +6 -6
  191. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  192. package/dist/collection/components/ic-tooltip/ic-tooltip.test.a11y.js +1 -1
  193. package/dist/collection/components/ic-tooltip/ic-tooltip.test.a11y.js.map +1 -1
  194. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  195. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  196. package/dist/collection/components/ic-typography/ic-typography.css +17 -10
  197. package/dist/collection/components/ic-typography/ic-typography.js +6 -6
  198. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  199. package/dist/collection/utils/helpers.js +39 -1
  200. package/dist/collection/utils/helpers.js.map +1 -1
  201. package/dist/collection/utils/types.js.map +1 -1
  202. package/dist/components/helpers.js +41 -14
  203. package/dist/components/helpers.js.map +1 -1
  204. package/dist/components/ic-alert.js +3 -2
  205. package/dist/components/ic-alert.js.map +1 -1
  206. package/dist/components/ic-back-to-top.js +1 -1
  207. package/dist/components/ic-back-to-top.js.map +1 -1
  208. package/dist/components/{ic-breadcrumbs.d.ts → ic-breadcrumb-group.d.ts} +4 -4
  209. package/dist/components/{ic-breadcrumbs.js → ic-breadcrumb-group.js} +10 -10
  210. package/dist/{cjs/ic-breadcrumbs.cjs.entry.js.map → components/ic-breadcrumb-group.js.map} +1 -1
  211. package/dist/components/ic-breadcrumb2.js +1 -1
  212. package/dist/components/ic-breadcrumb2.js.map +1 -1
  213. package/dist/components/ic-button2.js +19 -25
  214. package/dist/components/ic-button2.js.map +1 -1
  215. package/dist/components/ic-card.js +1 -1
  216. package/dist/components/ic-card.js.map +1 -1
  217. package/dist/components/ic-checkbox-group.js +2 -2
  218. package/dist/components/ic-checkbox-group.js.map +1 -1
  219. package/dist/components/ic-checkbox.js +1 -1
  220. package/dist/components/ic-checkbox.js.map +1 -1
  221. package/dist/components/ic-data-entity.js +7 -7
  222. package/dist/components/ic-data-entity.js.map +1 -1
  223. package/dist/components/ic-data-row.js +5 -5
  224. package/dist/components/ic-data-row.js.map +1 -1
  225. package/dist/components/ic-divider2.js +2 -1
  226. package/dist/components/ic-divider2.js.map +1 -1
  227. package/dist/components/ic-footer-link-group.js +12 -12
  228. package/dist/components/ic-footer-link-group.js.map +1 -1
  229. package/dist/components/ic-footer-link.js +7 -7
  230. package/dist/components/ic-footer-link.js.map +1 -1
  231. package/dist/components/ic-footer.js +14 -13
  232. package/dist/components/ic-footer.js.map +1 -1
  233. package/dist/components/ic-hero.js +9 -8
  234. package/dist/components/ic-hero.js.map +1 -1
  235. package/dist/components/ic-input-component-container2.js +7 -6
  236. package/dist/components/ic-input-component-container2.js.map +1 -1
  237. package/dist/components/ic-input-label2.js +1 -1
  238. package/dist/components/ic-input-validation2.js +2 -1
  239. package/dist/components/ic-input-validation2.js.map +1 -1
  240. package/dist/components/ic-link2.js +10 -9
  241. package/dist/components/ic-link2.js.map +1 -1
  242. package/dist/components/ic-loading-indicator2.js +8 -7
  243. package/dist/components/ic-loading-indicator2.js.map +1 -1
  244. package/dist/components/ic-menu2.js +78 -24
  245. package/dist/components/ic-menu2.js.map +1 -1
  246. package/dist/components/ic-navigation-button.js +9 -8
  247. package/dist/components/ic-navigation-button.js.map +1 -1
  248. package/dist/components/ic-navigation-group.js +1 -1
  249. package/dist/components/ic-navigation-item.js +2 -2
  250. package/dist/components/ic-navigation-item.js.map +1 -1
  251. package/dist/components/ic-navigation-menu2.js +2 -2
  252. package/dist/components/ic-navigation-menu2.js.map +1 -1
  253. package/dist/components/ic-page-header.js +5 -5
  254. package/dist/components/ic-page-header.js.map +1 -1
  255. package/dist/components/ic-radio-group.js +2 -2
  256. package/dist/components/ic-radio-group.js.map +1 -1
  257. package/dist/components/ic-radio-option.js +2 -2
  258. package/dist/components/ic-radio-option.js.map +1 -1
  259. package/dist/components/ic-search-bar.js +13 -17
  260. package/dist/components/ic-search-bar.js.map +1 -1
  261. package/dist/components/ic-select.js +229 -25
  262. package/dist/components/ic-select.js.map +1 -1
  263. package/dist/components/ic-side-navigation.js +3 -2
  264. package/dist/components/ic-side-navigation.js.map +1 -1
  265. package/dist/components/ic-skeleton.js +11 -11
  266. package/dist/components/ic-skeleton.js.map +1 -1
  267. package/dist/components/ic-status-tag.js +9 -9
  268. package/dist/components/ic-status-tag.js.map +1 -1
  269. package/dist/components/ic-switch.js +7 -7
  270. package/dist/components/ic-switch.js.map +1 -1
  271. package/dist/components/ic-tab-context.js +13 -12
  272. package/dist/components/ic-tab-context.js.map +1 -1
  273. package/dist/components/{ic-tab-list.d.ts → ic-tab-group.d.ts} +4 -4
  274. package/dist/components/{ic-tab-list.js → ic-tab-group.js} +31 -30
  275. package/dist/components/ic-tab-group.js.map +1 -0
  276. package/dist/components/ic-tab.js +5 -4
  277. package/dist/components/ic-tab.js.map +1 -1
  278. package/dist/components/ic-text-field2.js +6 -7
  279. package/dist/components/ic-text-field2.js.map +1 -1
  280. package/dist/components/ic-theme.js +1 -1
  281. package/dist/components/ic-tooltip2.js +5 -5
  282. package/dist/components/ic-tooltip2.js.map +1 -1
  283. package/dist/components/ic-top-navigation.js +6 -5
  284. package/dist/components/ic-top-navigation.js.map +1 -1
  285. package/dist/components/ic-typography2.js +5 -5
  286. package/dist/components/ic-typography2.js.map +1 -1
  287. package/dist/components/index.d.ts +2 -2
  288. package/dist/components/index.js +2 -2
  289. package/dist/components/types.js +16 -0
  290. package/dist/components/types.js.map +1 -0
  291. package/dist/core/core.css +1 -1
  292. package/dist/core/core.esm.js +1 -1
  293. package/dist/core/core.esm.js.map +1 -1
  294. package/dist/core/p-0522eb9a.entry.js +2 -0
  295. package/dist/core/p-0522eb9a.entry.js.map +1 -0
  296. package/dist/core/{p-b9253509.entry.js → p-0992a2ee.entry.js} +2 -2
  297. package/dist/core/p-0992a2ee.entry.js.map +1 -0
  298. package/dist/core/p-14153fa0.entry.js +2 -0
  299. package/dist/core/p-14153fa0.entry.js.map +1 -0
  300. package/dist/core/p-1bec5ccb.entry.js +2 -0
  301. package/dist/core/p-1bec5ccb.entry.js.map +1 -0
  302. package/dist/core/p-21025b10.entry.js +2 -0
  303. package/dist/core/p-21025b10.entry.js.map +1 -0
  304. package/dist/core/p-27528d04.entry.js +2 -0
  305. package/dist/core/{p-44355e34.entry.js.map → p-27528d04.entry.js.map} +1 -1
  306. package/dist/core/p-3013158d.entry.js +2 -0
  307. package/dist/core/{p-016fcce8.entry.js.map → p-3013158d.entry.js.map} +1 -1
  308. package/dist/core/p-36b25af4.entry.js +2 -0
  309. package/dist/core/p-36b25af4.entry.js.map +1 -0
  310. package/dist/core/p-3d6902a3.entry.js +2 -0
  311. package/dist/core/{p-0d4ac3c9.entry.js.map → p-3d6902a3.entry.js.map} +1 -1
  312. package/dist/core/p-400b34b9.entry.js +2 -0
  313. package/dist/core/{p-3b9d4007.entry.js.map → p-400b34b9.entry.js.map} +1 -1
  314. package/dist/core/p-438e327e.entry.js +2 -0
  315. package/dist/core/{p-bbe0b521.entry.js.map → p-438e327e.entry.js.map} +1 -1
  316. package/dist/core/p-4aa8c1e1.entry.js +2 -0
  317. package/dist/core/{p-836c93b1.entry.js.map → p-4aa8c1e1.entry.js.map} +1 -1
  318. package/dist/core/p-4af4a9e7.entry.js +2 -0
  319. package/dist/core/p-4af4a9e7.entry.js.map +1 -0
  320. package/dist/core/p-4c1e1d04.entry.js +2 -0
  321. package/dist/core/p-4c1e1d04.entry.js.map +1 -0
  322. package/dist/core/p-4e498c03.entry.js +2 -0
  323. package/dist/core/{p-5e0b88fa.entry.js.map → p-4e498c03.entry.js.map} +1 -1
  324. package/dist/core/p-530b7fe0.entry.js +2 -0
  325. package/dist/core/p-530b7fe0.entry.js.map +1 -0
  326. package/dist/core/p-59a917d4.entry.js +2 -0
  327. package/dist/core/p-59a917d4.entry.js.map +1 -0
  328. package/dist/core/p-605e4270.entry.js +2 -0
  329. package/dist/core/p-605e4270.entry.js.map +1 -0
  330. package/dist/core/p-682686a6.entry.js +2 -0
  331. package/dist/core/p-682686a6.entry.js.map +1 -0
  332. package/dist/core/p-6ac7757f.entry.js +2 -0
  333. package/dist/core/{p-85a32ec7.entry.js.map → p-6ac7757f.entry.js.map} +1 -1
  334. package/dist/core/p-6d0eaaeb.entry.js +2 -0
  335. package/dist/core/p-6d0eaaeb.entry.js.map +1 -0
  336. package/dist/core/p-6f57b13c.js +2 -0
  337. package/dist/core/p-6f57b13c.js.map +1 -0
  338. package/dist/core/p-71282f37.entry.js +2 -0
  339. package/dist/core/{p-012dc33c.entry.js.map → p-71282f37.entry.js.map} +1 -1
  340. package/dist/core/p-73d41c36.entry.js +2 -0
  341. package/dist/core/{p-8af2a343.entry.js.map → p-73d41c36.entry.js.map} +1 -1
  342. package/dist/core/p-8bcadf55.entry.js +2 -0
  343. package/dist/core/p-8bcadf55.entry.js.map +1 -0
  344. package/dist/core/p-98e9eccc.entry.js +2 -0
  345. package/dist/core/p-98e9eccc.entry.js.map +1 -0
  346. package/dist/core/p-994111b7.entry.js +2 -0
  347. package/dist/core/{p-bdd2f166.entry.js.map → p-994111b7.entry.js.map} +1 -1
  348. package/dist/core/p-9bf3f413.entry.js +2 -0
  349. package/dist/core/p-9bf3f413.entry.js.map +1 -0
  350. package/dist/core/p-a301cf67.entry.js +2 -0
  351. package/dist/core/{p-7152788d.entry.js.map → p-a301cf67.entry.js.map} +1 -1
  352. package/dist/core/p-aebc7562.entry.js +2 -0
  353. package/dist/core/{p-85436343.entry.js.map → p-aebc7562.entry.js.map} +1 -1
  354. package/dist/core/p-be583c9b.entry.js +2 -0
  355. package/dist/core/{p-a968ff18.entry.js.map → p-be583c9b.entry.js.map} +1 -1
  356. package/dist/core/p-c15bb762.js +2 -0
  357. package/dist/core/p-c15bb762.js.map +1 -0
  358. package/dist/core/p-c817e46b.entry.js +2 -0
  359. package/dist/core/p-c817e46b.entry.js.map +1 -0
  360. package/dist/core/p-c8772106.entry.js +2 -0
  361. package/dist/core/p-c8772106.entry.js.map +1 -0
  362. package/dist/core/p-c96985bc.entry.js +2 -0
  363. package/dist/core/{p-d198ae1f.entry.js.map → p-c96985bc.entry.js.map} +1 -1
  364. package/dist/core/p-d4c6f4fb.entry.js +2 -0
  365. package/dist/core/{p-44af91df.entry.js.map → p-d4c6f4fb.entry.js.map} +1 -1
  366. package/dist/core/p-d78bded9.entry.js +2 -0
  367. package/dist/core/p-d78bded9.entry.js.map +1 -0
  368. package/dist/core/p-d8973266.entry.js +2 -0
  369. package/dist/core/p-d8973266.entry.js.map +1 -0
  370. package/dist/core/p-d8b6271d.entry.js +2 -0
  371. package/dist/core/{p-7f6ba60a.entry.js.map → p-d8b6271d.entry.js.map} +1 -1
  372. package/dist/core/p-da6f09cd.entry.js +2 -0
  373. package/dist/core/p-da6f09cd.entry.js.map +1 -0
  374. package/dist/core/{p-5316e421.entry.js → p-eb33ece2.entry.js} +2 -2
  375. package/dist/core/{p-5316e421.entry.js.map → p-eb33ece2.entry.js.map} +1 -1
  376. package/dist/core/p-f37a732a.entry.js +2 -0
  377. package/dist/core/{p-5d3dd182.entry.js.map → p-f37a732a.entry.js.map} +1 -1
  378. package/dist/core/p-fca84a85.entry.js +2 -0
  379. package/dist/core/p-fca84a85.entry.js.map +1 -0
  380. package/dist/esm/core.js +1 -1
  381. package/dist/esm/{helpers-db00eae1.js → helpers-8b43d0d4.js} +42 -15
  382. package/dist/esm/helpers-8b43d0d4.js.map +1 -0
  383. package/dist/esm/ic-alert.entry.js +3 -2
  384. package/dist/esm/ic-alert.entry.js.map +1 -1
  385. package/dist/esm/ic-back-to-top.entry.js +3 -2
  386. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  387. package/dist/esm/{ic-breadcrumbs.entry.js → ic-breadcrumb-group.entry.js} +7 -6
  388. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -0
  389. package/dist/esm/ic-breadcrumb.entry.js +3 -2
  390. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  391. package/dist/esm/ic-button_3.entry.js +25 -29
  392. package/dist/esm/ic-button_3.entry.js.map +1 -1
  393. package/dist/esm/ic-card.entry.js +3 -2
  394. package/dist/esm/ic-card.entry.js.map +1 -1
  395. package/dist/esm/ic-checkbox-group.entry.js +3 -2
  396. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  397. package/dist/esm/ic-checkbox.entry.js +3 -2
  398. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  399. package/dist/esm/ic-data-entity.entry.js +6 -6
  400. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  401. package/dist/esm/ic-data-row.entry.js +6 -5
  402. package/dist/esm/ic-data-row.entry.js.map +1 -1
  403. package/dist/esm/ic-divider.entry.js +2 -1
  404. package/dist/esm/ic-divider.entry.js.map +1 -1
  405. package/dist/esm/ic-footer-link-group.entry.js +12 -11
  406. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  407. package/dist/esm/ic-footer-link.entry.js +8 -7
  408. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  409. package/dist/esm/ic-footer.entry.js +14 -13
  410. package/dist/esm/ic-footer.entry.js.map +1 -1
  411. package/dist/esm/ic-hero.entry.js +8 -7
  412. package/dist/esm/ic-hero.entry.js.map +1 -1
  413. package/dist/esm/ic-input-component-container_3.entry.js +83 -28
  414. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  415. package/dist/esm/ic-input-label_2.entry.js +2 -1
  416. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  417. package/dist/esm/ic-link.entry.js +9 -8
  418. package/dist/esm/ic-link.entry.js.map +1 -1
  419. package/dist/esm/ic-navigation-button.entry.js +8 -7
  420. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  421. package/dist/esm/ic-navigation-group.entry.js +2 -1
  422. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  423. package/dist/esm/ic-navigation-item.entry.js +3 -2
  424. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  425. package/dist/esm/ic-navigation-menu.entry.js +3 -2
  426. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  427. package/dist/esm/ic-page-header.entry.js +6 -5
  428. package/dist/esm/ic-page-header.entry.js.map +1 -1
  429. package/dist/esm/ic-radio-group.entry.js +3 -2
  430. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  431. package/dist/esm/ic-radio-option.entry.js +3 -2
  432. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  433. package/dist/esm/ic-search-bar.entry.js +12 -15
  434. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  435. package/dist/esm/ic-select.entry.js +218 -24
  436. package/dist/esm/ic-select.entry.js.map +1 -1
  437. package/dist/esm/ic-side-navigation.entry.js +3 -2
  438. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  439. package/dist/esm/ic-skeleton.entry.js +10 -10
  440. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  441. package/dist/esm/ic-status-tag.entry.js +9 -8
  442. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  443. package/dist/esm/ic-step.entry.js +2 -1
  444. package/dist/esm/ic-step.entry.js.map +1 -1
  445. package/dist/esm/ic-stepper.entry.js +2 -1
  446. package/dist/esm/ic-stepper.entry.js.map +1 -1
  447. package/dist/esm/ic-switch.entry.js +8 -7
  448. package/dist/esm/ic-switch.entry.js.map +1 -1
  449. package/dist/esm/ic-tab-context.entry.js +12 -11
  450. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  451. package/dist/esm/ic-tab-group.entry.js +142 -0
  452. package/dist/esm/ic-tab-group.entry.js.map +1 -0
  453. package/dist/esm/ic-tab-panel.entry.js +2 -1
  454. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  455. package/dist/esm/ic-tab.entry.js +5 -4
  456. package/dist/esm/ic-tab.entry.js.map +1 -1
  457. package/dist/esm/ic-text-field.entry.js +5 -5
  458. package/dist/esm/ic-text-field.entry.js.map +1 -1
  459. package/dist/esm/ic-theme.entry.js +2 -1
  460. package/dist/esm/ic-theme.entry.js.map +1 -1
  461. package/dist/esm/ic-top-navigation.entry.js +6 -5
  462. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  463. package/dist/esm/ic-typography.entry.js +4 -4
  464. package/dist/esm/ic-typography.entry.js.map +1 -1
  465. package/dist/esm/index-1500de1f.js +4 -4
  466. package/dist/esm/loader.js +1 -1
  467. package/dist/esm/types-dd515332.js +16 -0
  468. package/dist/esm/types-dd515332.js.map +1 -0
  469. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group-test-examples.d.ts +2 -0
  470. package/dist/types/components/{ic-breadcrumbs/ic-breadcrumbs.d.ts → ic-breadcrumb-group/ic-breadcrumb-group.d.ts} +2 -2
  471. package/dist/types/components/{ic-breadcrumbs/ic-breadcrumbs.test.a11y.d.ts → ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.d.ts} +0 -0
  472. package/dist/types/components/ic-button/ic-button.d.ts +5 -11
  473. package/dist/types/components/ic-button/ic-button.types.d.ts +1 -2
  474. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +2 -2
  475. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +2 -2
  476. package/dist/types/components/ic-data-row/ic-data-row.d.ts +2 -2
  477. package/dist/types/components/ic-footer/ic-footer.d.ts +2 -2
  478. package/dist/types/components/ic-footer/ic-footer.types.d.ts +1 -1
  479. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +1 -1
  480. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +2 -2
  481. package/dist/types/components/ic-hero/ic-hero.d.ts +3 -3
  482. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +2 -2
  483. package/dist/types/components/ic-link/ic-link.d.ts +2 -2
  484. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +6 -5
  485. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +0 -1
  486. package/dist/types/components/ic-menu/ic-menu.d.ts +4 -2
  487. package/dist/types/components/ic-menu/ic-menu.types.d.ts +1 -0
  488. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -1
  489. package/dist/types/components/ic-page-header/ic-page-header.d.ts +2 -2
  490. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +2 -2
  491. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +2 -6
  492. package/dist/types/components/ic-select/ic-select.d.ts +46 -4
  493. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +2 -2
  494. package/dist/types/components/ic-skeleton/ic-skeleton.types.d.ts +1 -1
  495. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +3 -3
  496. package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +1 -1
  497. package/dist/types/components/ic-switch/ic-switch.d.ts +2 -2
  498. package/dist/types/components/ic-tab/ic-tab.d.ts +3 -2
  499. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +4 -4
  500. package/dist/types/components/{ic-tab-list/ic-tab-list.d.ts → ic-tab-group/ic-tab-group.d.ts} +6 -5
  501. package/dist/types/components/ic-text-field/ic-text-field.d.ts +2 -6
  502. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +2 -2
  503. package/dist/types/components/ic-typography/ic-typography.d.ts +2 -2
  504. package/dist/types/components.d.ts +239 -215
  505. package/dist/types/utils/helpers.d.ts +11 -2
  506. package/dist/types/utils/types.d.ts +2 -0
  507. package/hydrate/index.js +558 -277
  508. package/package.json +4 -4
  509. package/dist/cjs/helpers-9d4961dc.js.map +0 -1
  510. package/dist/cjs/ic-tab-list.cjs.entry.js +0 -145
  511. package/dist/cjs/ic-tab-list.cjs.entry.js.map +0 -1
  512. package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs-test-examples.js.map +0 -1
  513. package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs.js.map +0 -1
  514. package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs.test.a11y.js.map +0 -1
  515. package/dist/collection/components/ic-tab-list/ic-tab-list.js.map +0 -1
  516. package/dist/components/ic-breadcrumbs.js.map +0 -1
  517. package/dist/components/ic-tab-list.js.map +0 -1
  518. package/dist/core/p-012dc33c.entry.js +0 -2
  519. package/dist/core/p-016fcce8.entry.js +0 -2
  520. package/dist/core/p-0d4ac3c9.entry.js +0 -2
  521. package/dist/core/p-13854b65.entry.js +0 -2
  522. package/dist/core/p-13854b65.entry.js.map +0 -1
  523. package/dist/core/p-16a81e12.entry.js +0 -2
  524. package/dist/core/p-16a81e12.entry.js.map +0 -1
  525. package/dist/core/p-17420c90.entry.js +0 -2
  526. package/dist/core/p-17420c90.entry.js.map +0 -1
  527. package/dist/core/p-17f3a2bd.entry.js +0 -2
  528. package/dist/core/p-17f3a2bd.entry.js.map +0 -1
  529. package/dist/core/p-22eb7fc8.entry.js +0 -2
  530. package/dist/core/p-22eb7fc8.entry.js.map +0 -1
  531. package/dist/core/p-263018da.entry.js +0 -2
  532. package/dist/core/p-263018da.entry.js.map +0 -1
  533. package/dist/core/p-3b9d4007.entry.js +0 -2
  534. package/dist/core/p-44355e34.entry.js +0 -2
  535. package/dist/core/p-44af91df.entry.js +0 -2
  536. package/dist/core/p-4b1b46f5.entry.js +0 -2
  537. package/dist/core/p-4b1b46f5.entry.js.map +0 -1
  538. package/dist/core/p-4cf60a22.entry.js +0 -2
  539. package/dist/core/p-4cf60a22.entry.js.map +0 -1
  540. package/dist/core/p-4fba6cae.entry.js +0 -2
  541. package/dist/core/p-4fba6cae.entry.js.map +0 -1
  542. package/dist/core/p-5d3dd182.entry.js +0 -2
  543. package/dist/core/p-5e0b88fa.entry.js +0 -2
  544. package/dist/core/p-6238313f.entry.js +0 -2
  545. package/dist/core/p-6238313f.entry.js.map +0 -1
  546. package/dist/core/p-7152788d.entry.js +0 -2
  547. package/dist/core/p-7ed79493.entry.js +0 -2
  548. package/dist/core/p-7ed79493.entry.js.map +0 -1
  549. package/dist/core/p-7f6ba60a.entry.js +0 -2
  550. package/dist/core/p-836c93b1.entry.js +0 -2
  551. package/dist/core/p-85436343.entry.js +0 -2
  552. package/dist/core/p-856d9516.entry.js +0 -2
  553. package/dist/core/p-856d9516.entry.js.map +0 -1
  554. package/dist/core/p-85a32ec7.entry.js +0 -2
  555. package/dist/core/p-8a677ff1.entry.js +0 -2
  556. package/dist/core/p-8a677ff1.entry.js.map +0 -1
  557. package/dist/core/p-8af2a343.entry.js +0 -2
  558. package/dist/core/p-a3df537f.entry.js +0 -2
  559. package/dist/core/p-a3df537f.entry.js.map +0 -1
  560. package/dist/core/p-a968ff18.entry.js +0 -2
  561. package/dist/core/p-b858dc5a.entry.js +0 -2
  562. package/dist/core/p-b858dc5a.entry.js.map +0 -1
  563. package/dist/core/p-b9253509.entry.js.map +0 -1
  564. package/dist/core/p-bbe0b521.entry.js +0 -2
  565. package/dist/core/p-bdd2f166.entry.js +0 -2
  566. package/dist/core/p-bddb885a.entry.js +0 -2
  567. package/dist/core/p-bddb885a.entry.js.map +0 -1
  568. package/dist/core/p-c09e9589.entry.js +0 -2
  569. package/dist/core/p-c09e9589.entry.js.map +0 -1
  570. package/dist/core/p-d10ce0a7.entry.js +0 -2
  571. package/dist/core/p-d10ce0a7.entry.js.map +0 -1
  572. package/dist/core/p-d198ae1f.entry.js +0 -2
  573. package/dist/core/p-dc79694a.entry.js +0 -2
  574. package/dist/core/p-dc79694a.entry.js.map +0 -1
  575. package/dist/core/p-e5a09372.js +0 -2
  576. package/dist/core/p-e5a09372.js.map +0 -1
  577. package/dist/core/p-ea93611e.entry.js +0 -2
  578. package/dist/core/p-ea93611e.entry.js.map +0 -1
  579. package/dist/core/p-ed1d8712.entry.js +0 -2
  580. package/dist/esm/helpers-db00eae1.js.map +0 -1
  581. package/dist/esm/ic-breadcrumbs.entry.js.map +0 -1
  582. package/dist/esm/ic-tab-list.entry.js +0 -141
  583. package/dist/esm/ic-tab-list.entry.js.map +0 -1
  584. package/dist/types/components/ic-breadcrumbs/ic-breadcrumbs-test-examples.d.ts +0 -2
@@ -1,5 +1,5 @@
1
1
  import { Host, h, } from "@stencil/core";
2
- import { getInputDescribedByText, getLabelFromValue, hasValidationStatus, inheritAttributes, onComponentRequiredPropUndefined, renderHiddenInput, isMobileOrTablet, } from "../../utils/helpers";
2
+ import { getInputDescribedByText, getLabelFromValue, hasValidationStatus, inheritAttributes, onComponentRequiredPropUndefined, renderHiddenInput, isMobileOrTablet, getFilteredMenuOptions, } from "../../utils/helpers";
3
3
  import { IC_INHERITED_ARIA } from "../../utils/constants";
4
4
  import { IcInformationStatus, IcThemeForegroundEnum, } from "../../utils/types";
5
5
  import Expand from "./assets/Expand.svg";
@@ -10,6 +10,23 @@ export class Select {
10
10
  this.inputId = `ic-select-input-${inputIds++}`;
11
11
  this.menuId = `${this.inputId}-menu`;
12
12
  this.inheritedAttributes = {};
13
+ this.isMenuEnabled = () => {
14
+ return (((this.searchableSelectInputValue === null ||
15
+ this.searchableSelectInputValue === "") &&
16
+ this.charactersUntilSuggestions === 0) ||
17
+ (this.searchableSelectInputValue &&
18
+ this.searchableSelectInputValue.length >=
19
+ this.charactersUntilSuggestions));
20
+ };
21
+ this.setOptionsValuesFromLabels = () => {
22
+ if (this.options.length > 0) {
23
+ this.options.map((option) => {
24
+ if (!option.value) {
25
+ option.value = option.label;
26
+ }
27
+ });
28
+ }
29
+ };
13
30
  this.setTextColor = () => {
14
31
  if (this.nativeSelectElement.selectedIndex === 0) {
15
32
  this.nativeSelectElement.className = "placeholder";
@@ -18,18 +35,53 @@ export class Select {
18
35
  this.nativeSelectElement.className = "select-option-selected";
19
36
  }
20
37
  };
38
+ this.setMenuChange = (open) => {
39
+ if (this.open !== open) {
40
+ this.open = open;
41
+ }
42
+ };
21
43
  this.getLabelFromValue = (value) => {
22
44
  return getLabelFromValue(value, this.options);
23
45
  };
46
+ this.getValueFromLabel = (label) => {
47
+ var _a;
48
+ const value = (_a = this.options.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value;
49
+ return value;
50
+ };
51
+ this.getFilteredChildMenuOptions = (option) => {
52
+ let children = option.children;
53
+ children = getFilteredMenuOptions(option.children, this.includeDescriptionsInSearch, this.searchableSelectInputValue, this.searchMatchPosition);
54
+ const newOption = Object.assign({}, option);
55
+ newOption.children = children;
56
+ return newOption;
57
+ };
24
58
  this.handleNativeSelectChange = () => {
25
59
  this.icChange.emit({ value: this.nativeSelectElement.value });
26
60
  this.setTextColor();
27
61
  };
28
62
  this.handleCustomSelectChange = (event) => {
63
+ if (this.searchable && event.detail.label === this.emptyOptionListText) {
64
+ this.searchableSelectElement.focus();
65
+ return;
66
+ }
67
+ if (this.searchable) {
68
+ this.searchableSelectInputValue = this.getLabelFromValue(event.detail.value);
69
+ }
70
+ this.ariaActiveDescendant = event.detail.optionId;
29
71
  this.icChange.emit({ value: event.detail.value });
30
72
  };
31
73
  this.handleMenuChange = (event) => {
32
74
  this.open = event.detail.open;
75
+ this.searchable && this.handleFocusIndicatorDisplay();
76
+ };
77
+ this.handleFocusIndicatorDisplay = () => {
78
+ const focusIndicator = this.host.shadowRoot.querySelector(".focus-indicator");
79
+ if (this.open) {
80
+ focusIndicator.classList.add("focus-indicator-enabled");
81
+ }
82
+ else {
83
+ focusIndicator.classList.remove("focus-indicator-enabled");
84
+ }
33
85
  };
34
86
  this.handleMouseDown = (event) => {
35
87
  if (!this.open) {
@@ -37,17 +89,52 @@ export class Select {
37
89
  }
38
90
  };
39
91
  this.handleClick = (event) => {
40
- if (event.detail !== 0) {
92
+ this.noOptions = null;
93
+ this.menu.options = this.options;
94
+ if (event.detail !== 0 && this.isMenuEnabled()) {
41
95
  this.menu.handleClickOpen();
42
96
  }
43
97
  };
98
+ this.handleExpandIconMouseDown = (event) => {
99
+ if (!this.disabled) {
100
+ event.preventDefault();
101
+ this.searchableSelectElement.focus();
102
+ this.handleClick(event);
103
+ }
104
+ };
44
105
  this.handleClear = (event) => {
45
106
  event.stopPropagation();
107
+ this.noOptions = null;
46
108
  this.icChange.emit({ value: null });
47
- this.customSelectElement.focus();
109
+ if (this.searchable) {
110
+ this.searchableSelectElement.value = null;
111
+ this.searchableSelectInputValue = null;
112
+ this.menu.options = this.options;
113
+ this.searchableSelectElement.focus();
114
+ if (!this.isMenuEnabled()) {
115
+ this.setMenuChange(false);
116
+ }
117
+ }
118
+ else {
119
+ this.customSelectElement.focus();
120
+ }
48
121
  };
49
122
  this.handleKeyDown = (event) => {
50
- this.menu.handleKeyboardOpen(event);
123
+ event.cancelBubble = true;
124
+ if (!this.open) {
125
+ this.noOptions = null;
126
+ this.menu.options = this.options;
127
+ }
128
+ if (this.open && event.key === "Enter") {
129
+ this.setMenuChange(false);
130
+ }
131
+ else {
132
+ if (!((event.key === "ArrowDown" || event.key === "ArrowUp") &&
133
+ this.noOptions !== null) &&
134
+ this.isMenuEnabled()) {
135
+ this.menu.handleKeyboardOpen(event);
136
+ }
137
+ }
51
138
  };
52
139
  this.handleClearButtonFocus = () => {
53
140
  this.clearButtonFocused = true;
@@ -55,10 +142,82 @@ export class Select {
55
142
  this.handleClearButtonBlur = () => {
56
143
  this.clearButtonFocused = false;
57
144
  };
145
+ this.handleSearchableSelectInput = (event) => {
146
+ this.searchableSelectInputValue = event.target.value;
147
+ if (this.getValueFromLabel(this.searchableSelectInputValue) === undefined) {
148
+ this.icChange.emit({ value: null });
149
+ }
150
+ if (this.isMenuEnabled()) {
151
+ this.setMenuChange(true);
152
+ }
153
+ else {
154
+ this.setMenuChange(false);
155
+ }
156
+ const options = [...this.options];
157
+ let isGrouped = false;
158
+ let newFilteredOptions = [];
159
+ options.map((option) => {
160
+ if (option.children)
161
+ isGrouped = true;
162
+ });
163
+ const menuOptionsFiltered = getFilteredMenuOptions(options, this.includeDescriptionsInSearch, this.searchableSelectInputValue, this.searchMatchPosition);
164
+ if (!isGrouped) {
165
+ newFilteredOptions = menuOptionsFiltered;
166
+ }
167
+ else {
168
+ options.map((option) => {
169
+ if (this.includeGroupTitlesInSearch) {
170
+ if (menuOptionsFiltered.indexOf(option) !== -1) {
171
+ newFilteredOptions.push(option);
172
+ }
173
+ else {
174
+ newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
175
+ }
176
+ }
177
+ else {
178
+ newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
179
+ }
180
+ });
181
+ }
182
+ let noChildOptionsWhenFiltered = false;
183
+ if (isGrouped) {
184
+ noChildOptionsWhenFiltered = true;
185
+ newFilteredOptions.map((option) => {
186
+ if (option.children.length > 0) {
187
+ noChildOptionsWhenFiltered = false;
188
+ }
189
+ });
190
+ }
191
+ const noOptions = [{ label: this.emptyOptionListText, value: "" }];
192
+ if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {
193
+ this.noOptions = null;
194
+ this.filteredOptions = newFilteredOptions;
195
+ }
196
+ else {
197
+ this.noOptions = noOptions;
198
+ this.filteredOptions = this.noOptions;
199
+ }
200
+ this.debounceAriaLiveUpdate();
201
+ };
202
+ this.updateSearchableSelectResultAriaLive = () => {
203
+ const searchableSelectResultsStatusEl = this.host.shadowRoot.querySelector(".searchable-select-results-status");
204
+ if (this.noOptions !== null) {
205
+ searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;
206
+ }
207
+ else {
208
+ searchableSelectResultsStatusEl.innerText = "";
209
+ }
210
+ };
58
211
  this.onFocus = () => {
59
212
  this.icFocus.emit();
60
213
  };
61
- this.onBlur = () => {
214
+ this.onBlur = (event) => {
215
+ if (this.searchable &&
216
+ event.relatedTarget !== this.menu &&
217
+ !(this.clearButton && event.relatedTarget === this.clearButton)) {
218
+ this.setMenuChange(false);
219
+ this.handleFocusIndicatorDisplay();
220
+ }
62
221
  this.icBlur.emit();
63
222
  };
64
223
  this.label = undefined;
@@ -69,15 +228,29 @@ export class Select {
69
228
  this.readonly = false;
70
229
  this.placeholder = "Select an option";
71
230
  this.helperText = "";
72
- this.dense = false;
231
+ this.small = false;
73
232
  this.fullWidth = false;
74
233
  this.validationStatus = "";
75
234
  this.validationText = "";
76
235
  this.value = undefined;
77
236
  this.name = this.inputId;
78
237
  this.showClearButton = false;
238
+ this.searchable = false;
239
+ this.includeDescriptionsInSearch = false;
240
+ this.includeGroupTitlesInSearch = false;
241
+ this.searchMatchPosition = "anywhere";
242
+ this.charactersUntilSuggestions = 0;
243
+ this.emptyOptionListText = "No results found";
79
244
  this.open = false;
80
245
  this.clearButtonFocused = false;
246
+ this.searchableSelectInputValue = null;
247
+ this.filteredOptions = this.options;
248
+ this.ariaActiveDescendant = undefined;
249
+ this.noOptions = null;
250
+ }
251
+ watchOptionsHandler() {
252
+ this.setOptionsValuesFromLabels();
253
+ this.filteredOptions = this.options;
81
254
  }
82
255
  /**
83
256
  * Sets focus on the input box.
@@ -89,6 +262,15 @@ export class Select {
89
262
  else if (this.customSelectElement) {
90
263
  this.customSelectElement.focus();
91
264
  }
265
+ else if (this.searchableSelectElement) {
266
+ this.searchableSelectElement.focus();
267
+ }
268
+ }
269
+ debounceAriaLiveUpdate() {
270
+ clearTimeout(this.debounce);
271
+ window.setTimeout(() => {
272
+ this.updateSearchableSelectResultAriaLive();
273
+ }, 800);
92
274
  }
93
275
  componentWillLoad() {
94
276
  this.inheritedAttributes = inheritAttributes(this.host, [
@@ -96,13 +278,7 @@ export class Select {
96
278
  "tabindex",
97
279
  "title",
98
280
  ]);
99
- if (this.options.length > 0) {
100
- this.options.map((option) => {
101
- if (!option.value) {
102
- option.value = option.label;
103
- }
104
- });
105
- }
281
+ this.setOptionsValuesFromLabels();
106
282
  }
107
283
  componentDidRender() {
108
284
  if (this.nativeSelectElement && !this.disabled) {
@@ -113,32 +289,46 @@ export class Select {
113
289
  onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Select");
114
290
  }
115
291
  render() {
116
- const { dense, disabled, fullWidth, helperText, hideLabel, host, inputId, label, name, open, options, menuId, placeholder, readonly, required, showClearButton, validationStatus, validationText, value, } = this;
292
+ const { small, disabled, fullWidth, helperText, hideLabel, label, menuId, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, value, } = this;
117
293
  renderHiddenInput(true, this.host, name, value, disabled);
118
294
  const invalid = validationStatus === IcInformationStatus.Error ? "true" : "false";
119
- const describedBy = getInputDescribedByText(inputId, helperText !== "", hasValidationStatus(this.validationStatus, this.disabled)).trim();
120
- return (h(Host, null, h("ic-input-container", { readonly: readonly }, !hideLabel && (h("ic-input-label", { for: inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), h("ic-input-component-container", { ref: (el) => (this.anchorEl = el), class: { "menu-open": open }, dense: dense, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, readonly ? (h("ic-typography", null, h("p", null, this.getLabelFromValue(value)))) : isMobileOrTablet() ? (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 }, this.inheritedAttributes), h("option", { value: "", selected: true, disabled: !this.showClearButton }, placeholder), options.map((option) => {
295
+ const describedBy = getInputDescribedByText(this.inputId, helperText !== "", hasValidationStatus(this.validationStatus, this.disabled)).trim();
296
+ return (h(Host, null, 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(value)))) : 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 }, this.inheritedAttributes), h("option", { value: "", selected: true, disabled: !showClearButton }, placeholder), options.map((option) => {
121
297
  if (option.children) {
122
298
  return (h("optgroup", { label: option.label }, option.children.map((option) => (h("option", { value: option.value, disabled: option.disabled, selected: option.value === value }, option.label)))));
123
299
  }
124
300
  else {
125
301
  return (h("option", { value: option.value, disabled: option.disabled, selected: option.value === value }, option.label));
126
302
  }
127
- }))) : (h("button", { class: "select-input", ref: (el) => (this.customSelectElement = el), id: inputId, "aria-label": `${label}, ${this.getLabelFromValue(value) || placeholder}${required ? ", required" : ""}`, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-haspopup": "listbox", "aria-expanded": 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 }, h("ic-typography", { variant: "body", class: {
303
+ }))) : 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 &&
304
+ (showClearButton || searchable) && (h("div", { class: "clear-button-container" }, h("ic-button", { id: "clear-button", ref: (el) => (this.clearButton = el), "aria-label": this.searchableSelectInputValue && value === null
305
+ ? "Clear input"
306
+ : "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
307
+ ? IcThemeForegroundEnum.Light
308
+ : IcThemeForegroundEnum.Dark }), h("div", { class: "divider" }))), h("span", { onMouseDown: this.handleExpandIconMouseDown, class: {
309
+ "expand-icon": true,
310
+ "expand-icon-open": this.open,
311
+ "expand-icon-filled": !(value == null || value === ""),
312
+ "expand-icon-disabled": !this.isMenuEnabled(),
313
+ }, innerHTML: Expand, "aria-hidden": "true" }), h("div", { "aria-live": "polite", role: "status", class: "searchable-select-results-status" }))) : (h("div", { class: "select-container" }, h("button", { class: "select-input", ref: (el) => (this.customSelectElement = el), id: this.inputId, "aria-label": `${label}, ${this.getLabelFromValue(value) || 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 }, h("ic-typography", { variant: "body", class: {
128
314
  "value-text": true,
129
315
  placeholder: this.getLabelFromValue(value) === undefined,
130
- } }, h("p", null, this.getLabelFromValue(value) || placeholder)), h("div", { class: "select-input-end" }, value && showClearButton && (h("div", { class: "clear-button-container" }, 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: dense ? "dense" : "default", variant: "icon", buttonStyle: this.clearButtonFocused
131
- ? IcThemeForegroundEnum.Light
132
- : IcThemeForegroundEnum.Dark }), h("div", { class: "divider" }))), h("span", { class: {
316
+ } }, h("p", null, this.getLabelFromValue(value) || placeholder)), h("div", { class: "select-input-end" }, value && showClearButton && h("div", { class: "divider" }), h("span", { class: {
133
317
  "expand-icon": true,
134
318
  "expand-icon-open": this.open,
135
- "expand-icon-filled": !(this.value == null || this.value === ""),
136
- }, innerHTML: Expand, "aria-hidden": "true" }))))), !isMobileOrTablet() && (h("ic-menu", { ref: (el) => (this.menu = el), inputEl: this.customSelectElement, inputLabel: label, anchorEl: this.anchorEl, dense: dense, menuId: menuId, open: open, options: options, value: value, fullWidth: fullWidth, onMenuChange: this.handleMenuChange, onOptionSelect: this.handleCustomSelectChange, parentEl: host })), h("ic-input-validation", { class: { "menu-open": open }, ariaLiveMode: "polite", status: hasValidationStatus(this.validationStatus, this.disabled) ===
319
+ "expand-icon-filled": !(value == null || value === ""),
320
+ }, innerHTML: Expand, "aria-hidden": "true" }))), value && 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
321
+ ? IcThemeForegroundEnum.Light
322
+ : IcThemeForegroundEnum.Dark }))))), !isMobileOrTablet() && (h("ic-menu", { class: {
323
+ "no-results": this.noOptions !== null,
324
+ }, ref: (el) => (this.menu = el), inputEl: searchable
325
+ ? this.searchableSelectElement
326
+ : this.customSelectElement, inputLabel: label, anchorEl: this.anchorEl, small: small, menuId: menuId, open: this.open, options: searchable ? this.filteredOptions : options, value: value, fullWidth: fullWidth, onMenuChange: this.handleMenuChange, onOptionSelect: this.handleCustomSelectChange, parentEl: this.host })), h("ic-input-validation", { class: { "menu-open": this.open }, ariaLiveMode: "polite", status: hasValidationStatus(this.validationStatus, this.disabled) ===
137
327
  false
138
328
  ? ""
139
329
  : validationStatus, message: hasValidationStatus(this.validationStatus, this.disabled)
140
330
  ? validationText
141
- : "", for: inputId }))));
331
+ : "", for: this.inputId }))));
142
332
  }
143
333
  static get is() { return "ic-select"; }
144
334
  static get encapsulation() { return "shadow"; }
@@ -300,7 +490,7 @@ export class Select {
300
490
  "reflect": false,
301
491
  "defaultValue": "\"\""
302
492
  },
303
- "dense": {
493
+ "small": {
304
494
  "type": "boolean",
305
495
  "mutable": false,
306
496
  "complexType": {
@@ -312,9 +502,9 @@ export class Select {
312
502
  "optional": true,
313
503
  "docs": {
314
504
  "tags": [],
315
- "text": "Specify whether dense styling is to be applied to the element."
505
+ "text": "Specify whether small styling is to be applied to the element."
316
506
  },
317
- "attribute": "dense",
507
+ "attribute": "small",
318
508
  "reflect": false,
319
509
  "defaultValue": "false"
320
510
  },
@@ -424,18 +614,135 @@ export class Select {
424
614
  "optional": true,
425
615
  "docs": {
426
616
  "tags": [],
427
- "text": "Display a button which clears the input when clicked."
617
+ "text": "Display a button which clears the input when clicked. The button will always appear on the searchable select."
428
618
  },
429
619
  "attribute": "show-clear-button",
430
620
  "reflect": false,
431
621
  "defaultValue": "false"
622
+ },
623
+ "searchable": {
624
+ "type": "boolean",
625
+ "mutable": false,
626
+ "complexType": {
627
+ "original": "boolean",
628
+ "resolved": "boolean",
629
+ "references": {}
630
+ },
631
+ "required": false,
632
+ "optional": true,
633
+ "docs": {
634
+ "tags": [],
635
+ "text": "If true, the select can be typed in to filter options."
636
+ },
637
+ "attribute": "searchable",
638
+ "reflect": false,
639
+ "defaultValue": "false"
640
+ },
641
+ "includeDescriptionsInSearch": {
642
+ "type": "boolean",
643
+ "mutable": false,
644
+ "complexType": {
645
+ "original": "boolean",
646
+ "resolved": "boolean",
647
+ "references": {}
648
+ },
649
+ "required": false,
650
+ "optional": true,
651
+ "docs": {
652
+ "tags": [],
653
+ "text": "If true, descriptions of options are included when filtering options in a searchable select."
654
+ },
655
+ "attribute": "include-descriptions-in-search",
656
+ "reflect": false,
657
+ "defaultValue": "false"
658
+ },
659
+ "includeGroupTitlesInSearch": {
660
+ "type": "boolean",
661
+ "mutable": false,
662
+ "complexType": {
663
+ "original": "boolean",
664
+ "resolved": "boolean",
665
+ "references": {}
666
+ },
667
+ "required": false,
668
+ "optional": true,
669
+ "docs": {
670
+ "tags": [],
671
+ "text": "If true, group titles of grouped options are included when filtering options in a searchable select."
672
+ },
673
+ "attribute": "include-group-titles-in-search",
674
+ "reflect": false,
675
+ "defaultValue": "false"
676
+ },
677
+ "searchMatchPosition": {
678
+ "type": "string",
679
+ "mutable": false,
680
+ "complexType": {
681
+ "original": "IcSearchMatchPositions",
682
+ "resolved": "\"anywhere\" | \"start\"",
683
+ "references": {
684
+ "IcSearchMatchPositions": {
685
+ "location": "import",
686
+ "path": "../../utils/types"
687
+ }
688
+ }
689
+ },
690
+ "required": false,
691
+ "optional": true,
692
+ "docs": {
693
+ "tags": [],
694
+ "text": "Whether the search string of the searchable select should match the start of or anywhere in the options."
695
+ },
696
+ "attribute": "search-match-position",
697
+ "reflect": false,
698
+ "defaultValue": "\"anywhere\""
699
+ },
700
+ "charactersUntilSuggestions": {
701
+ "type": "number",
702
+ "mutable": false,
703
+ "complexType": {
704
+ "original": "number",
705
+ "resolved": "number",
706
+ "references": {}
707
+ },
708
+ "required": false,
709
+ "optional": true,
710
+ "docs": {
711
+ "tags": [],
712
+ "text": "Number of characters until suggestions appear for a searchable select."
713
+ },
714
+ "attribute": "characters-until-suggestions",
715
+ "reflect": false,
716
+ "defaultValue": "0"
717
+ },
718
+ "emptyOptionListText": {
719
+ "type": "string",
720
+ "mutable": false,
721
+ "complexType": {
722
+ "original": "string",
723
+ "resolved": "string",
724
+ "references": {}
725
+ },
726
+ "required": false,
727
+ "optional": false,
728
+ "docs": {
729
+ "tags": [],
730
+ "text": "Provide text for empty results list"
731
+ },
732
+ "attribute": "empty-option-list-text",
733
+ "reflect": false,
734
+ "defaultValue": "\"No results found\""
432
735
  }
433
736
  };
434
737
  }
435
738
  static get states() {
436
739
  return {
437
740
  "open": {},
438
- "clearButtonFocused": {}
741
+ "clearButtonFocused": {},
742
+ "searchableSelectInputValue": {},
743
+ "filteredOptions": {},
744
+ "ariaActiveDescendant": {},
745
+ "noOptions": {}
439
746
  };
440
747
  }
441
748
  static get events() {
@@ -512,5 +819,11 @@ export class Select {
512
819
  };
513
820
  }
514
821
  static get elementRef() { return "host"; }
822
+ static get watchers() {
823
+ return [{
824
+ "propName": "options",
825
+ "methodName": "watchOptionsHandler"
826
+ }];
827
+ }
515
828
  }
516
829
  //# sourceMappingURL=ic-select.js.map