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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-f1cf5156.js → helpers-69219f14.js} +24 -1
  3. package/dist/cjs/helpers-69219f14.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  7. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-button_3.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -3
  18. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +446 -164
  30. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-input-label_2.cjs.entry.js +8 -6
  32. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
  44. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-popover-menu.cjs.entry.js +9 -9
  48. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-radio-group.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-radio-option.cjs.entry.js +27 -22
  52. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-select.cjs.entry.js +147 -37
  56. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-switch.cjs.entry.js +7 -4
  62. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-text-field.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  74. package/dist/cjs/loader.cjs.js +1 -1
  75. package/dist/collection/components/ic-alert/ic-alert.css +3 -1
  76. package/dist/collection/components/ic-alert/ic-alert.js +1 -1
  77. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  78. package/dist/collection/components/ic-checkbox/ic-checkbox.css +5 -0
  79. package/dist/collection/components/ic-checkbox/ic-checkbox.js +1 -1
  80. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  81. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +1 -1
  82. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  83. package/dist/collection/components/ic-input-label/ic-input-label.css +1 -0
  84. package/dist/collection/components/ic-input-label/ic-input-label.js +45 -4
  85. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  86. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +35 -49
  87. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -1
  88. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +1 -0
  89. package/dist/collection/components/ic-menu/ic-menu.css +70 -10
  90. package/dist/collection/components/ic-menu/ic-menu.js +485 -192
  91. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  92. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +381 -33
  93. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  94. package/dist/collection/components/ic-menu-group/ic-menu-group.css +2 -2
  95. package/dist/collection/components/ic-menu-item/ic-menu-item.css +32 -28
  96. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
  97. package/dist/collection/components/ic-page-header/ic-page-header.css +5 -2
  98. package/dist/collection/components/ic-page-header/ic-page-header.js +3 -3
  99. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  100. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +5 -5
  101. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +31 -7
  102. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  103. package/dist/collection/components/ic-radio-group/ic-radio-group.js +1 -1
  104. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  105. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +2 -2
  106. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  107. package/dist/collection/components/ic-radio-option/ic-radio-option.css +1 -0
  108. package/dist/collection/components/ic-radio-option/ic-radio-option.js +26 -21
  109. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  110. package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -0
  111. package/dist/collection/components/ic-select/ic-select.css +36 -16
  112. package/dist/collection/components/ic-select/ic-select.js +191 -43
  113. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  114. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +160 -1
  115. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  116. package/dist/collection/components/ic-switch/ic-switch.css +27 -30
  117. package/dist/collection/components/ic-switch/ic-switch.js +29 -2
  118. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  119. package/dist/collection/components/ic-text-field/ic-text-field.css +1 -0
  120. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  121. package/dist/collection/utils/helpers.js +20 -0
  122. package/dist/collection/utils/helpers.js.map +1 -1
  123. package/dist/collection/utils/types.js.map +1 -1
  124. package/dist/components/helpers.js +22 -1
  125. package/dist/components/helpers.js.map +1 -1
  126. package/dist/components/ic-alert.js +1 -1
  127. package/dist/components/ic-alert.js.map +1 -1
  128. package/dist/components/ic-checkbox-group.js +1 -1
  129. package/dist/components/ic-checkbox-group.js.map +1 -1
  130. package/dist/components/ic-checkbox.js +2 -2
  131. package/dist/components/ic-checkbox.js.map +1 -1
  132. package/dist/components/ic-input-label2.js +10 -6
  133. package/dist/components/ic-input-label2.js.map +1 -1
  134. package/dist/components/ic-loading-indicator2.js +1 -1
  135. package/dist/components/ic-loading-indicator2.js.map +1 -1
  136. package/dist/components/ic-menu-group.js +1 -1
  137. package/dist/components/ic-menu-group.js.map +1 -1
  138. package/dist/components/ic-menu-item2.js +1 -1
  139. package/dist/components/ic-menu-item2.js.map +1 -1
  140. package/dist/components/ic-menu2.js +450 -167
  141. package/dist/components/ic-menu2.js.map +1 -1
  142. package/dist/components/ic-navigation-group.js +2 -2
  143. package/dist/components/ic-navigation-group.js.map +1 -1
  144. package/dist/components/ic-navigation-item.js +1 -1
  145. package/dist/components/ic-navigation-menu2.js +1 -1
  146. package/dist/components/ic-page-header.js +4 -4
  147. package/dist/components/ic-page-header.js.map +1 -1
  148. package/dist/components/ic-pagination-item2.js +1 -1
  149. package/dist/components/ic-popover-menu.js +9 -8
  150. package/dist/components/ic-popover-menu.js.map +1 -1
  151. package/dist/components/ic-radio-group.js +1 -1
  152. package/dist/components/ic-radio-group.js.map +1 -1
  153. package/dist/components/ic-radio-option.js +27 -22
  154. package/dist/components/ic-radio-option.js.map +1 -1
  155. package/dist/components/ic-search-bar.js +2 -2
  156. package/dist/components/ic-search-bar.js.map +1 -1
  157. package/dist/components/ic-select.js +148 -37
  158. package/dist/components/ic-select.js.map +1 -1
  159. package/dist/components/ic-side-navigation.js +1 -1
  160. package/dist/components/ic-stepper.js +1 -1
  161. package/dist/components/ic-switch.js +7 -3
  162. package/dist/components/ic-switch.js.map +1 -1
  163. package/dist/components/ic-text-field2.js +2 -2
  164. package/dist/components/ic-text-field2.js.map +1 -1
  165. package/dist/components/ic-theme.js +1 -1
  166. package/dist/components/ic-toast.js +1 -1
  167. package/dist/components/ic-top-navigation.js +1 -1
  168. package/dist/components/ic-top-navigation.js.map +1 -1
  169. package/dist/core/core.css +580 -10
  170. package/dist/core/core.esm.js +1 -1
  171. package/dist/core/core.esm.js.map +1 -1
  172. package/dist/core/{p-d2f89cb5.entry.js → p-0395442c.entry.js} +2 -2
  173. package/dist/core/{p-244d6dba.entry.js → p-0d233b0c.entry.js} +2 -2
  174. package/dist/core/{p-f38bce8d.entry.js → p-134def81.entry.js} +2 -2
  175. package/dist/core/p-134def81.entry.js.map +1 -0
  176. package/dist/core/p-14dfd8db.entry.js +2 -0
  177. package/dist/core/p-14dfd8db.entry.js.map +1 -0
  178. package/dist/core/p-1b116dd1.entry.js +2 -0
  179. package/dist/core/p-1b116dd1.entry.js.map +1 -0
  180. package/dist/core/p-21cc87c0.entry.js +2 -0
  181. package/dist/core/p-21cc87c0.entry.js.map +1 -0
  182. package/dist/core/p-2eae9b27.entry.js +2 -0
  183. package/dist/core/p-2eae9b27.entry.js.map +1 -0
  184. package/dist/core/p-3618ac34.entry.js +2 -0
  185. package/dist/core/p-3618ac34.entry.js.map +1 -0
  186. package/dist/core/{p-355acffa.entry.js → p-37dea10d.entry.js} +2 -2
  187. package/dist/core/{p-bf1f0ac7.entry.js → p-384d454d.entry.js} +2 -2
  188. package/dist/core/p-384d454d.entry.js.map +1 -0
  189. package/dist/core/p-3d417eff.entry.js +2 -0
  190. package/dist/core/p-3d417eff.entry.js.map +1 -0
  191. package/dist/core/p-3d9726a3.entry.js +2 -0
  192. package/dist/core/{p-408344d3.entry.js.map → p-3d9726a3.entry.js.map} +1 -1
  193. package/dist/core/{p-84526c3e.entry.js → p-43256b7c.entry.js} +2 -2
  194. package/dist/core/{p-93c23a35.entry.js → p-4a3b1f06.entry.js} +2 -2
  195. package/dist/core/{p-34db8aaf.entry.js → p-5cd016e1.entry.js} +2 -2
  196. package/dist/core/{p-d2f8e03f.entry.js → p-5ef8e106.entry.js} +2 -2
  197. package/dist/core/{p-0a808ec3.entry.js → p-690c5e80.entry.js} +2 -2
  198. package/dist/core/{p-43f9a711.entry.js → p-6d3e4bb1.entry.js} +2 -2
  199. package/dist/core/{p-4055f22c.entry.js → p-726673ee.entry.js} +2 -2
  200. package/dist/core/p-726673ee.entry.js.map +1 -0
  201. package/dist/core/{p-fa1b7a80.entry.js → p-72d30c8a.entry.js} +2 -2
  202. package/dist/core/{p-f30f3a3e.entry.js → p-76263187.entry.js} +2 -2
  203. package/dist/core/{p-c86d48b6.entry.js → p-7827b5cb.entry.js} +2 -2
  204. package/dist/core/p-79d0be03.entry.js +2 -0
  205. package/dist/core/p-79d0be03.entry.js.map +1 -0
  206. package/dist/core/{p-c06a3b97.entry.js → p-7b35de65.entry.js} +2 -2
  207. package/dist/core/{p-1684c8d4.entry.js → p-7fbf2d3e.entry.js} +2 -2
  208. package/dist/core/p-91cf9b2b.entry.js +2 -0
  209. package/dist/core/p-91cf9b2b.entry.js.map +1 -0
  210. package/dist/core/{p-1b573920.entry.js → p-922984cb.entry.js} +2 -2
  211. package/dist/core/{p-aab2c7aa.entry.js → p-95f603dd.entry.js} +2 -2
  212. package/dist/core/{p-e4b276b5.entry.js → p-97fb2bdf.entry.js} +2 -2
  213. package/dist/core/p-ac4b7329.entry.js +2 -0
  214. package/dist/core/p-ac4b7329.entry.js.map +1 -0
  215. package/dist/core/{p-e3ed9110.entry.js → p-acbd15ab.entry.js} +2 -2
  216. package/dist/core/{p-6d40baa9.entry.js → p-b17c94b7.entry.js} +2 -2
  217. package/dist/core/p-b78f8b8c.entry.js +2 -0
  218. package/dist/core/p-b78f8b8c.entry.js.map +1 -0
  219. package/dist/core/{p-312cacae.js → p-b7eb8ef9.js} +2 -2
  220. package/dist/core/p-b7eb8ef9.js.map +1 -0
  221. package/dist/core/{p-363d6e88.entry.js → p-b95a72a3.entry.js} +2 -2
  222. package/dist/core/{p-21e5dd29.entry.js → p-b997064c.entry.js} +2 -2
  223. package/dist/core/{p-4ff6d16f.entry.js → p-ba6ecc15.entry.js} +2 -2
  224. package/dist/core/{p-0d30ffab.entry.js → p-c0fc3d02.entry.js} +2 -2
  225. package/dist/core/p-c396bd4d.entry.js +2 -0
  226. package/dist/core/p-c396bd4d.entry.js.map +1 -0
  227. package/dist/core/{p-f828a6e1.entry.js → p-c9cf932c.entry.js} +2 -2
  228. package/dist/core/{p-aa0619ce.entry.js → p-cf7db84a.entry.js} +2 -2
  229. package/dist/core/{p-d58a10ec.entry.js → p-dd36bf1b.entry.js} +2 -2
  230. package/dist/core/p-e488de54.entry.js +2 -0
  231. package/dist/core/p-e488de54.entry.js.map +1 -0
  232. package/dist/core/{p-da14cd3c.entry.js → p-e4d1839e.entry.js} +2 -2
  233. package/dist/core/{p-0fb047e7.entry.js → p-eb3b4935.entry.js} +2 -2
  234. package/dist/core/{p-0fb047e7.entry.js.map → p-eb3b4935.entry.js.map} +1 -1
  235. package/dist/core/{p-60efd7fa.entry.js → p-ebafab37.entry.js} +2 -2
  236. package/dist/core/{p-82375dca.entry.js → p-ee6dd94c.entry.js} +2 -2
  237. package/dist/core/{p-9dba6823.entry.js → p-f0fc1bf0.entry.js} +2 -2
  238. package/dist/core/{p-49525194.entry.js → p-f24984c5.entry.js} +2 -2
  239. package/dist/core/p-f24984c5.entry.js.map +1 -0
  240. package/dist/core/{p-d8870804.entry.js → p-f5b2b26d.entry.js} +2 -2
  241. package/dist/core/p-f60dbd0e.entry.js +2 -0
  242. package/dist/core/p-f60dbd0e.entry.js.map +1 -0
  243. package/dist/core/{p-40e9e76a.entry.js → p-f71c00ce.entry.js} +2 -2
  244. package/dist/core/{p-cbcd4427.entry.js → p-ff4298b1.entry.js} +2 -2
  245. package/dist/esm/core.js +1 -1
  246. package/dist/esm/{helpers-1c9151ef.js → helpers-e8797e8d.js} +23 -2
  247. package/dist/esm/helpers-e8797e8d.js.map +1 -0
  248. package/dist/esm/ic-accordion-group.entry.js +1 -1
  249. package/dist/esm/ic-accordion.entry.js +1 -1
  250. package/dist/esm/ic-alert.entry.js +2 -2
  251. package/dist/esm/ic-alert.entry.js.map +1 -1
  252. package/dist/esm/ic-back-to-top.entry.js +1 -1
  253. package/dist/esm/ic-badge.entry.js +1 -1
  254. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  255. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  256. package/dist/esm/ic-button_3.entry.js +2 -2
  257. package/dist/esm/ic-button_3.entry.js.map +1 -1
  258. package/dist/esm/ic-card-vertical.entry.js +1 -1
  259. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  260. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  261. package/dist/esm/ic-checkbox.entry.js +3 -3
  262. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  263. package/dist/esm/ic-chip.entry.js +1 -1
  264. package/dist/esm/ic-data-row.entry.js +1 -1
  265. package/dist/esm/ic-dialog.entry.js +1 -1
  266. package/dist/esm/ic-divider.entry.js +1 -1
  267. package/dist/esm/ic-empty-state.entry.js +1 -1
  268. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  269. package/dist/esm/ic-footer-link.entry.js +1 -1
  270. package/dist/esm/ic-footer.entry.js +1 -1
  271. package/dist/esm/ic-hero.entry.js +1 -1
  272. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  273. package/dist/esm/ic-input-component-container_3.entry.js +446 -164
  274. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  275. package/dist/esm/ic-input-label_2.entry.js +8 -6
  276. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  277. package/dist/esm/ic-link.entry.js +1 -1
  278. package/dist/esm/ic-menu-group.entry.js +2 -2
  279. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  280. package/dist/esm/ic-menu-item.entry.js +2 -2
  281. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  282. package/dist/esm/ic-navigation-button.entry.js +1 -1
  283. package/dist/esm/ic-navigation-group.entry.js +2 -2
  284. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  285. package/dist/esm/ic-navigation-item.entry.js +1 -1
  286. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  287. package/dist/esm/ic-page-header.entry.js +5 -5
  288. package/dist/esm/ic-page-header.entry.js.map +1 -1
  289. package/dist/esm/ic-pagination-item.entry.js +1 -1
  290. package/dist/esm/ic-pagination.entry.js +1 -1
  291. package/dist/esm/ic-popover-menu.entry.js +9 -9
  292. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  293. package/dist/esm/ic-radio-group.entry.js +2 -2
  294. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  295. package/dist/esm/ic-radio-option.entry.js +27 -22
  296. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  297. package/dist/esm/ic-search-bar.entry.js +2 -2
  298. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  299. package/dist/esm/ic-select.entry.js +147 -37
  300. package/dist/esm/ic-select.entry.js.map +1 -1
  301. package/dist/esm/ic-side-navigation.entry.js +1 -1
  302. package/dist/esm/ic-status-tag.entry.js +1 -1
  303. package/dist/esm/ic-step.entry.js +1 -1
  304. package/dist/esm/ic-stepper.entry.js +1 -1
  305. package/dist/esm/ic-switch.entry.js +7 -4
  306. package/dist/esm/ic-switch.entry.js.map +1 -1
  307. package/dist/esm/ic-tab-group.entry.js +1 -1
  308. package/dist/esm/ic-tab-panel.entry.js +1 -1
  309. package/dist/esm/ic-tab.entry.js +1 -1
  310. package/dist/esm/ic-text-field.entry.js +2 -2
  311. package/dist/esm/ic-text-field.entry.js.map +1 -1
  312. package/dist/esm/ic-theme.entry.js +1 -1
  313. package/dist/esm/ic-toast.entry.js +1 -1
  314. package/dist/esm/ic-toggle-button.entry.js +1 -1
  315. package/dist/esm/ic-top-navigation.entry.js +1 -1
  316. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  317. package/dist/esm/ic-typography.entry.js +1 -1
  318. package/dist/esm/loader.js +1 -1
  319. package/dist/types/components/ic-alert/ic-alert.d.ts +1 -1
  320. package/dist/types/components/ic-input-label/ic-input-label.d.ts +8 -0
  321. package/dist/types/components/ic-menu/ic-menu.d.ts +43 -15
  322. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +5 -0
  323. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +3 -2
  324. package/dist/types/components/ic-select/ic-select.d.ts +24 -10
  325. package/dist/types/components/ic-switch/ic-switch.d.ts +5 -1
  326. package/dist/types/components.d.ts +66 -20
  327. package/dist/types/utils/helpers.d.ts +7 -0
  328. package/dist/types/utils/types.d.ts +1 -1
  329. package/hydrate/index.js +685 -255
  330. package/package.json +2 -2
  331. package/vscode-data.json +49 -7
  332. package/dist/cjs/helpers-f1cf5156.js.map +0 -1
  333. package/dist/core/p-0c872824.entry.js +0 -2
  334. package/dist/core/p-0c872824.entry.js.map +0 -1
  335. package/dist/core/p-1f1758a9.entry.js +0 -2
  336. package/dist/core/p-1f1758a9.entry.js.map +0 -1
  337. package/dist/core/p-312cacae.js.map +0 -1
  338. package/dist/core/p-322edabc.entry.js +0 -2
  339. package/dist/core/p-322edabc.entry.js.map +0 -1
  340. package/dist/core/p-4055f22c.entry.js.map +0 -1
  341. package/dist/core/p-408344d3.entry.js +0 -2
  342. package/dist/core/p-4502d3c1.entry.js +0 -2
  343. package/dist/core/p-4502d3c1.entry.js.map +0 -1
  344. package/dist/core/p-49525194.entry.js.map +0 -1
  345. package/dist/core/p-5deb9730.entry.js +0 -2
  346. package/dist/core/p-5deb9730.entry.js.map +0 -1
  347. package/dist/core/p-6bd2e938.entry.js +0 -2
  348. package/dist/core/p-6bd2e938.entry.js.map +0 -1
  349. package/dist/core/p-7c89fc86.entry.js +0 -2
  350. package/dist/core/p-7c89fc86.entry.js.map +0 -1
  351. package/dist/core/p-af20322c.entry.js +0 -2
  352. package/dist/core/p-af20322c.entry.js.map +0 -1
  353. package/dist/core/p-bf1f0ac7.entry.js.map +0 -1
  354. package/dist/core/p-d1c9c32b.entry.js +0 -2
  355. package/dist/core/p-d1c9c32b.entry.js.map +0 -1
  356. package/dist/core/p-dc83a0e9.entry.js +0 -2
  357. package/dist/core/p-dc83a0e9.entry.js.map +0 -1
  358. package/dist/core/p-de3a5423.entry.js +0 -2
  359. package/dist/core/p-de3a5423.entry.js.map +0 -1
  360. package/dist/core/p-e53309b0.entry.js +0 -2
  361. package/dist/core/p-e53309b0.entry.js.map +0 -1
  362. package/dist/core/p-f38bce8d.entry.js.map +0 -1
  363. package/dist/core/p-fa587e6d.entry.js +0 -2
  364. package/dist/core/p-fa587e6d.entry.js.map +0 -1
  365. package/dist/esm/helpers-1c9151ef.js.map +0 -1
  366. /package/dist/core/{p-d2f89cb5.entry.js.map → p-0395442c.entry.js.map} +0 -0
  367. /package/dist/core/{p-244d6dba.entry.js.map → p-0d233b0c.entry.js.map} +0 -0
  368. /package/dist/core/{p-355acffa.entry.js.map → p-37dea10d.entry.js.map} +0 -0
  369. /package/dist/core/{p-84526c3e.entry.js.map → p-43256b7c.entry.js.map} +0 -0
  370. /package/dist/core/{p-93c23a35.entry.js.map → p-4a3b1f06.entry.js.map} +0 -0
  371. /package/dist/core/{p-34db8aaf.entry.js.map → p-5cd016e1.entry.js.map} +0 -0
  372. /package/dist/core/{p-d2f8e03f.entry.js.map → p-5ef8e106.entry.js.map} +0 -0
  373. /package/dist/core/{p-0a808ec3.entry.js.map → p-690c5e80.entry.js.map} +0 -0
  374. /package/dist/core/{p-43f9a711.entry.js.map → p-6d3e4bb1.entry.js.map} +0 -0
  375. /package/dist/core/{p-fa1b7a80.entry.js.map → p-72d30c8a.entry.js.map} +0 -0
  376. /package/dist/core/{p-f30f3a3e.entry.js.map → p-76263187.entry.js.map} +0 -0
  377. /package/dist/core/{p-c86d48b6.entry.js.map → p-7827b5cb.entry.js.map} +0 -0
  378. /package/dist/core/{p-c06a3b97.entry.js.map → p-7b35de65.entry.js.map} +0 -0
  379. /package/dist/core/{p-1684c8d4.entry.js.map → p-7fbf2d3e.entry.js.map} +0 -0
  380. /package/dist/core/{p-1b573920.entry.js.map → p-922984cb.entry.js.map} +0 -0
  381. /package/dist/core/{p-aab2c7aa.entry.js.map → p-95f603dd.entry.js.map} +0 -0
  382. /package/dist/core/{p-e4b276b5.entry.js.map → p-97fb2bdf.entry.js.map} +0 -0
  383. /package/dist/core/{p-e3ed9110.entry.js.map → p-acbd15ab.entry.js.map} +0 -0
  384. /package/dist/core/{p-6d40baa9.entry.js.map → p-b17c94b7.entry.js.map} +0 -0
  385. /package/dist/core/{p-363d6e88.entry.js.map → p-b95a72a3.entry.js.map} +0 -0
  386. /package/dist/core/{p-21e5dd29.entry.js.map → p-b997064c.entry.js.map} +0 -0
  387. /package/dist/core/{p-4ff6d16f.entry.js.map → p-ba6ecc15.entry.js.map} +0 -0
  388. /package/dist/core/{p-0d30ffab.entry.js.map → p-c0fc3d02.entry.js.map} +0 -0
  389. /package/dist/core/{p-f828a6e1.entry.js.map → p-c9cf932c.entry.js.map} +0 -0
  390. /package/dist/core/{p-aa0619ce.entry.js.map → p-cf7db84a.entry.js.map} +0 -0
  391. /package/dist/core/{p-d58a10ec.entry.js.map → p-dd36bf1b.entry.js.map} +0 -0
  392. /package/dist/core/{p-da14cd3c.entry.js.map → p-e4d1839e.entry.js.map} +0 -0
  393. /package/dist/core/{p-60efd7fa.entry.js.map → p-ebafab37.entry.js.map} +0 -0
  394. /package/dist/core/{p-82375dca.entry.js.map → p-ee6dd94c.entry.js.map} +0 -0
  395. /package/dist/core/{p-9dba6823.entry.js.map → p-f0fc1bf0.entry.js.map} +0 -0
  396. /package/dist/core/{p-d8870804.entry.js.map → p-f5b2b26d.entry.js.map} +0 -0
  397. /package/dist/core/{p-40e9e76a.entry.js.map → p-f71c00ce.entry.js.map} +0 -0
  398. /package/dist/core/{p-cbcd4427.entry.js.map → p-ff4298b1.entry.js.map} +0 -0
@@ -2,6 +2,7 @@ import { newSpecPage } from "@stencil/core/testing";
2
2
  import { Menu } from "../../ic-menu";
3
3
  import { InputComponentContainer } from "../../../ic-input-component-container/ic-input-component-container";
4
4
  import { testKeyboardEvent as keyboardEvent } from "../../../../testspec.setup";
5
+ import * as helpers from "../../../../utils/helpers";
5
6
  import { h } from "@stencil/core";
6
7
  const menuOptions = [
7
8
  { label: "Espresso", value: "espresso" },
@@ -104,7 +105,7 @@ describe("ic-menu in isolation", () => {
104
105
  const eventSpy = jest.fn();
105
106
  page.root.addEventListener("menuOptionId", eventSpy);
106
107
  await page.waitForChanges();
107
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
108
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
108
109
  await page.waitForChanges();
109
110
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
110
111
  detail: expect.objectContaining({
@@ -236,7 +237,7 @@ describe("ic-menu in isolation", () => {
236
237
  await page.waitForChanges();
237
238
  expect(page.root.value).toBe("espresso");
238
239
  });
239
- it("should test manSetInputValueKeyboardOpen function", async () => {
240
+ it("should test manualSetInputValueKeyboardOpen function", async () => {
240
241
  const searchBar = window.document.createElement(IcSearchBar);
241
242
  const input = window.document.createElement("input");
242
243
  const searchMenuOptions = JSON.parse(JSON.stringify(menuOptions));
@@ -249,7 +250,7 @@ describe("ic-menu in isolation", () => {
249
250
  const eventSpy = jest.fn();
250
251
  page.root.addEventListener("menuOptionId", eventSpy);
251
252
  page.root.addEventListener("menuOptionSelect", eventSpy);
252
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
253
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
253
254
  await page.waitForChanges();
254
255
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
255
256
  detail: expect.objectContaining({
@@ -258,7 +259,7 @@ describe("ic-menu in isolation", () => {
258
259
  }));
259
260
  page.rootInstance.setHighlightedOption(3);
260
261
  await page.waitForChanges();
261
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
262
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
262
263
  await page.waitForChanges();
263
264
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
264
265
  detail: expect.objectContaining({
@@ -267,7 +268,7 @@ describe("ic-menu in isolation", () => {
267
268
  }));
268
269
  page.rootInstance.setHighlightedOption(0);
269
270
  await page.waitForChanges();
270
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
271
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
271
272
  await page.waitForChanges();
272
273
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
273
274
  detail: expect.objectContaining({
@@ -276,7 +277,7 @@ describe("ic-menu in isolation", () => {
276
277
  }));
277
278
  page.rootInstance.setHighlightedOption(8);
278
279
  await page.waitForChanges();
279
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
280
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
280
281
  await page.waitForChanges();
281
282
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
282
283
  detail: expect.objectContaining({
@@ -285,7 +286,7 @@ describe("ic-menu in isolation", () => {
285
286
  }));
286
287
  page.rootInstance.setHighlightedOption(2);
287
288
  await page.waitForChanges();
288
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Enter"));
289
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
289
290
  await page.waitForChanges();
290
291
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
291
292
  detail: expect.objectContaining({
@@ -294,14 +295,17 @@ describe("ic-menu in isolation", () => {
294
295
  }));
295
296
  page.rootInstance.setHighlightedOption(2);
296
297
  await page.waitForChanges();
297
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
298
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
298
299
  await page.waitForChanges();
299
- expect(page.rootInstance.value).toBe(searchMenuOptions[2].value);
300
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Enter"));
300
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
301
301
  await page.waitForChanges();
302
302
  expect(page.rootInstance.disabledOptionSelected).toBe(true);
303
- expect(page.rootInstance.value).toBe(searchMenuOptions[2].value);
304
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Escape"));
303
+ expect(eventSpy).not.toHaveBeenCalledWith(expect.objectContaining({
304
+ detail: expect.objectContaining({
305
+ value: "cappuccino",
306
+ }),
307
+ }));
308
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Escape"));
305
309
  await page.waitForChanges();
306
310
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
307
311
  detail: expect.objectContaining({
@@ -310,28 +314,28 @@ describe("ic-menu in isolation", () => {
310
314
  }));
311
315
  page.rootInstance.preventIncorrectTabOrder = false;
312
316
  await page.waitForChanges();
313
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Shift"));
317
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
314
318
  await page.waitForChanges();
315
319
  expect(page.rootInstance.preventIncorrectTabOrder).toBe(true);
316
320
  page.rootInstance.preventIncorrectTabOrder = false;
317
321
  await page.waitForChanges();
318
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Tab"));
322
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Tab"));
319
323
  await page.waitForChanges();
320
324
  expect(page.rootInstance.preventIncorrectTabOrder).toBe(true);
321
325
  page.rootInstance.preventIncorrectTabOrder = false;
322
326
  page.rootInstance.isSearchBar = true;
323
327
  page.rootInstance.setHighlightedOption(4);
324
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
328
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
325
329
  await page.waitForChanges();
326
330
  expect(page.rootInstance.optionHighlighted).toBe("espresso");
327
331
  page.rootInstance.setHighlightedOption(6);
328
332
  await page.waitForChanges();
329
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("KeyF"));
333
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("KeyF"));
330
334
  await page.waitForChanges();
331
335
  expect(page.rootInstance.optionHighlighted).toBe("espresso");
332
336
  page.rootInstance.setHighlightedOption(2);
333
337
  await page.waitForChanges();
334
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Home"));
338
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Home"));
335
339
  await page.waitForChanges();
336
340
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
337
341
  detail: expect.objectContaining({
@@ -339,7 +343,7 @@ describe("ic-menu in isolation", () => {
339
343
  }),
340
344
  }));
341
345
  await page.waitForChanges();
342
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("End"));
346
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("End"));
343
347
  await page.waitForChanges();
344
348
  expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
345
349
  detail: expect.objectContaining({
@@ -358,7 +362,7 @@ describe("ic-menu in isolation", () => {
358
362
  });
359
363
  page.rootInstance.isSearchableSelect = true;
360
364
  await page.rootInstance.handleSetFirstOption();
361
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
365
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
362
366
  await page.waitForChanges();
363
367
  expect(searchableSelect.setFocus).toHaveBeenCalled();
364
368
  });
@@ -372,7 +376,7 @@ describe("ic-menu in isolation", () => {
372
376
  template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchableSelect, value: menuOptions[0].value, parentEl: searchableSelect })),
373
377
  });
374
378
  page.rootInstance.isSearchableSelect = true;
375
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
379
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
376
380
  await page.waitForChanges();
377
381
  expect(searchableSelect.setFocus).not.toHaveBeenCalled();
378
382
  });
@@ -387,7 +391,7 @@ describe("ic-menu in isolation", () => {
387
391
  });
388
392
  page.rootInstance.isSearchableSelect = true;
389
393
  await page.rootInstance.handleSetFirstOption();
390
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("f"));
394
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("f"));
391
395
  await page.waitForChanges();
392
396
  expect(searchableSelect.setFocus).toHaveBeenCalled();
393
397
  });
@@ -401,11 +405,11 @@ describe("ic-menu in isolation", () => {
401
405
  template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchableSelect, value: menuOptions[0].value, parentEl: searchableSelect })),
402
406
  });
403
407
  page.rootInstance.isSearchableSelect = true;
404
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("f"));
408
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("f"));
405
409
  await page.waitForChanges();
406
410
  expect(searchableSelect.setFocus).not.toHaveBeenCalled();
407
411
  });
408
- it("should test manSetInputValueKeyboardOpen: setFocus is not triggered if backspace is pressed and focus is not on menu", async () => {
412
+ it("should test manualSetInputValueKeyboardOpen: setFocus is not triggered if backspace is pressed and focus is not on menu", async () => {
409
413
  const select = window.document.createElement("IC-SELECT");
410
414
  const input = window.document.createElement("input");
411
415
  select.setFocus = jest.fn();
@@ -414,11 +418,11 @@ describe("ic-menu in isolation", () => {
414
418
  template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: select, value: menuOptions[0].value, parentEl: select })),
415
419
  });
416
420
  page.rootInstance.isSearchBar = true;
417
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
421
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
418
422
  await page.waitForChanges();
419
423
  expect(select.setFocus).not.toHaveBeenCalled();
420
424
  });
421
- it("should test manSetInputValueKeyboardOpen: setFocus is triggered if menu is focused and backspace is pressed", async () => {
425
+ it("should test manualSetInputValueKeyboardOpen: setFocus is triggered if menu is focused and backspace is pressed", async () => {
422
426
  const select = window.document.createElement("IC-SELECT");
423
427
  const input = window.document.createElement("input");
424
428
  select.setFocus = jest.fn();
@@ -427,12 +431,12 @@ describe("ic-menu in isolation", () => {
427
431
  template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: select, value: menuOptions[0].value, parentEl: select })),
428
432
  });
429
433
  page.rootInstance.isSearchBar = true;
430
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
431
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
434
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
435
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
432
436
  await page.waitForChanges();
433
437
  expect(select.setFocus).toHaveBeenCalled();
434
438
  });
435
- it("should test manSetInputValueKeyboardOpen function when default parameter passed", async () => {
439
+ it("should test manualSetInputValueKeyboardOpen function when default parameter passed", async () => {
436
440
  const select = window.document.createElement("IC-SELECT");
437
441
  const input = window.document.createElement("input");
438
442
  select.setFocus = jest.fn();
@@ -442,11 +446,88 @@ describe("ic-menu in isolation", () => {
442
446
  });
443
447
  page.rootInstance.isSearchBar = false;
444
448
  page.rootInstance.isSearchableSelect = true;
445
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("KeyR"));
449
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("KeyR"));
446
450
  await page.waitForChanges();
447
451
  expect(page.rootInstance.value).toBe(menuOptions[0].value);
448
452
  });
449
- it("should test manSetInputValueKeyboardOpen function when select on enter", async () => {
453
+ it("should test manualSetInputValueKeyboardOpen function when multi-select", async () => {
454
+ const multiSelect = window.document.createElement("IC-SELECT");
455
+ const input = window.document.createElement("input");
456
+ const page = await newSpecPage({
457
+ components: [Menu, InputComponentContainer],
458
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
459
+ });
460
+ jest
461
+ .spyOn(page.rootInstance, "selectHighlightedOption")
462
+ .mockImplementation();
463
+ jest
464
+ .spyOn(page.rootInstance, "getMenuOptions")
465
+ .mockImplementation(() => menuOptions);
466
+ page.rootInstance.isMultiSelect = true;
467
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent(" "));
468
+ await page.waitForChanges();
469
+ expect(page.rootInstance.selectHighlightedOption).toHaveBeenCalledWith(menuOptions, -1);
470
+ jest.spyOn(page.rootInstance, "setHighlightedOption").mockImplementation();
471
+ page.rootInstance.multiOptionClicked = menuOptions[0].value;
472
+ await page.waitForChanges();
473
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
474
+ await page.waitForChanges();
475
+ expect(page.rootInstance.setHighlightedOption).toHaveBeenCalledWith(0);
476
+ expect(page.rootInstance.multiOptionClicked).toBe(null);
477
+ page.rootInstance.multiOptionClicked = menuOptions[0].value;
478
+ await page.waitForChanges();
479
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
480
+ await page.waitForChanges();
481
+ expect(page.rootInstance.setHighlightedOption).toHaveBeenCalledWith(0);
482
+ expect(page.rootInstance.multiOptionClicked).toBe(null);
483
+ jest.spyOn(page.rootInstance, "emitSelectAll").mockImplementation();
484
+ jest.spyOn(helpers, "isMacDevice").mockImplementation(() => true);
485
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
486
+ key: "a",
487
+ preventDefault: () => null,
488
+ stopImmediatePropagation: () => null,
489
+ metaKey: true,
490
+ target: {
491
+ id: "key-id",
492
+ },
493
+ });
494
+ await page.waitForChanges();
495
+ expect(page.rootInstance.emitSelectAll).toHaveBeenCalled();
496
+ jest.spyOn(helpers, "isMacDevice").mockImplementation(() => false);
497
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
498
+ key: "a",
499
+ preventDefault: () => null,
500
+ stopImmediatePropagation: () => null,
501
+ ctrlKey: true,
502
+ target: {
503
+ id: "key-id",
504
+ },
505
+ });
506
+ await page.waitForChanges();
507
+ expect(page.rootInstance.emitSelectAll).toHaveBeenCalledTimes(2);
508
+ page.rootInstance.optionHighlighted = "doubleespresso";
509
+ page.rootInstance.multiOptionClicked = null;
510
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
511
+ key: "ArrowDown",
512
+ preventDefault: () => null,
513
+ stopImmediatePropagation: () => null,
514
+ shiftKey: true,
515
+ target: {
516
+ id: "key-id",
517
+ },
518
+ });
519
+ await page.waitForChanges();
520
+ expect(page.rootInstance.selectHighlightedOption).toHaveBeenCalledWith(menuOptions, 1);
521
+ const eventSpy = jest.fn();
522
+ page.rootInstance.selectAllButton.addEventListener("focus", eventSpy);
523
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Tab"));
524
+ await page.waitForChanges();
525
+ expect(eventSpy).toHaveBeenCalled();
526
+ expect(page.rootInstance.menu.tabIndex).toBe(-1);
527
+ expect(page.rootInstance.preventClickOpen).toBe(true);
528
+ expect(page.rootInstance.optionHighlighted).toBe(undefined);
529
+ });
530
+ it("should test manualSetInputValueKeyboardOpen function when select on enter", async () => {
450
531
  const select = window.document.createElement("IC-SELECT");
451
532
  const input = window.document.createElement("input");
452
533
  select.selectOnEnter = true;
@@ -456,10 +537,10 @@ describe("ic-menu in isolation", () => {
456
537
  });
457
538
  const eventSpy = jest.fn();
458
539
  page.root.addEventListener("menuOptionSelect", eventSpy);
459
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
540
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
460
541
  await page.waitForChanges();
461
542
  expect(eventSpy).not.toHaveBeenCalled();
462
- page.rootInstance.manSetInputValueKeyboardOpen(keyboardEvent("Enter"));
543
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
463
544
  await page.waitForChanges();
464
545
  expect(eventSpy).toHaveBeenCalled();
465
546
  });
@@ -522,7 +603,7 @@ describe("ic-menu in isolation", () => {
522
603
  const eventSpy = jest.fn();
523
604
  page.root.addEventListener("menuOptionSelect", eventSpy);
524
605
  const el = page.rootInstance.menu.childNodes[1];
525
- const event = { target: el };
606
+ const event = { target: el, shiftKey: false };
526
607
  await page.waitForChanges();
527
608
  page.rootInstance.handleOptionClick(event);
528
609
  await page.waitForChanges();
@@ -532,6 +613,16 @@ describe("ic-menu in isolation", () => {
532
613
  label: "Double Espresso",
533
614
  },
534
615
  }));
616
+ page.rootInstance.isMultiSelect = true;
617
+ await page.waitForChanges();
618
+ await page.rootInstance.handleOptionClick(event);
619
+ expect(page.rootInstance.multiOptionClicked).toBe("doubleespresso");
620
+ page.rootInstance.value = ["espresso", "flatwhite", "cappuccino"];
621
+ page.rootInstance.multiOptionClicked = null;
622
+ event.shiftKey = true;
623
+ await page.waitForChanges();
624
+ await page.rootInstance.handleOptionClick(event);
625
+ expect(page.rootInstance.multiOptionClicked).toBe("doubleespresso");
535
626
  });
536
627
  it("should test handleBlur function", async () => {
537
628
  const page = await createMenu();
@@ -701,6 +792,11 @@ describe("ic-menu in isolation", () => {
701
792
  page.rootInstance.handleMenuKeyUp(key);
702
793
  await page.waitForChanges();
703
794
  expect(page.rootInstance.disabledOptionSelected).toBe(false);
795
+ key = keyboardEvent("Shift");
796
+ await page.waitForChanges();
797
+ page.rootInstance.handleMenuKeyUp(key);
798
+ await page.waitForChanges();
799
+ expect(page.rootInstance.shiftPressed).toBe(false);
704
800
  });
705
801
  it("should test connectedCallback function", async () => {
706
802
  const searchBar = window.document.createElement(IcSearchBar);
@@ -756,5 +852,257 @@ describe("ic-menu in isolation", () => {
756
852
  }),
757
853
  }));
758
854
  });
855
+ it("should test handleMenuChange function when multi-select", async () => {
856
+ const page = await createMenu();
857
+ page.rootInstance.optionHighlighted = "espresso";
858
+ page.rootInstance.isMultiSelect = true;
859
+ await page.waitForChanges();
860
+ expect(page.rootInstance.optionHighlighted).toBe("espresso");
861
+ await page.rootInstance.handleMenuChange(false);
862
+ await page.waitForChanges();
863
+ expect(page.rootInstance.optionHighlighted).toBe(undefined);
864
+ });
865
+ it("should test selectHighlightedOption function when multi-select", async () => {
866
+ const page = await createMenu();
867
+ page.rootInstance.open = false;
868
+ page.rootInstance.isMultiSelect = true;
869
+ jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
870
+ await page.waitForChanges();
871
+ await page.rootInstance.selectHighlightedOption({ target: "test-id" }, menuOptions, 0);
872
+ await page.waitForChanges();
873
+ expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(true);
874
+ });
875
+ it("should test selectHighlightedOption function when multi-select", async () => {
876
+ const page = await createMenu();
877
+ page.rootInstance.open = false;
878
+ page.rootInstance.isMultiSelect = true;
879
+ jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
880
+ await page.waitForChanges();
881
+ await page.rootInstance.selectHighlightedOption({ target: "test-id" }, menuOptions, 0);
882
+ await page.waitForChanges();
883
+ expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(true);
884
+ });
885
+ it("should test handleSelectAllClick function", async () => {
886
+ const page = await createMenu();
887
+ page.rootInstance.menu.tabIndex = -1;
888
+ const eventSpy = jest.fn();
889
+ page.rootInstance.menu.addEventListener("focus", eventSpy);
890
+ jest.spyOn(page.rootInstance, "emitSelectAll").mockImplementation();
891
+ await page.rootInstance.handleSelectAllClick();
892
+ expect(eventSpy).toHaveBeenCalled();
893
+ expect(page.rootInstance.emitSelectAll).toHaveBeenCalled();
894
+ });
895
+ it("should test handleSelectAllBlur function", async () => {
896
+ const multiSelect = window.document.createElement("IC-SELECT");
897
+ const input = window.document.createElement("input");
898
+ const page = await newSpecPage({
899
+ components: [Menu, InputComponentContainer],
900
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
901
+ });
902
+ jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
903
+ const option = await page.root.querySelector("li");
904
+ await page.rootInstance.handleSelectAllBlur({ relatedTarget: option });
905
+ await page.waitForChanges();
906
+ expect(page.rootInstance.handleMenuChange).not.toHaveBeenCalled();
907
+ await page.rootInstance.handleSelectAllBlur({ relatedTarget: input });
908
+ await page.waitForChanges();
909
+ expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(false, false);
910
+ });
911
+ it("should test handleSelectAllFocus function", async () => {
912
+ const page = await createMenu();
913
+ await page.rootInstance.handleSelectAllFocus();
914
+ expect(page.root).toMatchSnapshot();
915
+ });
916
+ it("should test emitSelectAll function", async () => {
917
+ const page = await createMenu();
918
+ const eventSpy = jest.fn();
919
+ page.root.addEventListener("menuOptionSelectAll", eventSpy);
920
+ await page.rootInstance.emitSelectAll();
921
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
922
+ detail: expect.objectContaining({
923
+ select: true,
924
+ }),
925
+ }));
926
+ page.rootInstance.value = ["espresso"];
927
+ await page.waitForChanges();
928
+ await page.rootInstance.emitSelectAll();
929
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
930
+ detail: expect.objectContaining({
931
+ select: true,
932
+ }),
933
+ }));
934
+ page.rootInstance.value = [
935
+ "espresso",
936
+ "doubleespresso",
937
+ "flatwhite",
938
+ "cappuccino",
939
+ "americano",
940
+ "ameno",
941
+ "green",
942
+ "acano",
943
+ "mocha",
944
+ ];
945
+ await page.waitForChanges();
946
+ await page.rootInstance.emitSelectAll();
947
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
948
+ detail: expect.objectContaining({
949
+ select: false,
950
+ }),
951
+ }));
952
+ });
953
+ it("should test handleSelectAllMouseDown", async () => {
954
+ const page = await createMenu();
955
+ const eventSpy = jest.fn();
956
+ page.root.addEventListener("preventDefault", eventSpy);
957
+ const event = new Event("click");
958
+ event.preventDefault = eventSpy;
959
+ await page.rootInstance.handleSelectAllMouseDown(event);
960
+ expect(eventSpy).toHaveBeenCalled();
961
+ });
962
+ it("tests deselection of options when pressing ArrowDown after Shift", async () => {
963
+ const multiSelect = window.document.createElement("IC-SELECT");
964
+ const input = window.document.createElement("input");
965
+ const page = await newSpecPage({
966
+ components: [Menu, InputComponentContainer],
967
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
968
+ });
969
+ page.rootInstance.isMultiSelect = true;
970
+ jest
971
+ .spyOn(page.rootInstance, "deselectSelectedOptions")
972
+ .mockImplementation();
973
+ page.rootInstance.value = [
974
+ "espresso",
975
+ "doubleespresso",
976
+ "flatwhite",
977
+ "cappuccino",
978
+ "americano",
979
+ "ameno",
980
+ "green",
981
+ "acano",
982
+ "mocha",
983
+ ];
984
+ await page.waitForChanges();
985
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
986
+ await page.waitForChanges();
987
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
988
+ await page.waitForChanges();
989
+ expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
990
+ -1, 0,
991
+ ]);
992
+ });
993
+ it("tests deselection of options when pressing ArrowUp after Shift", async () => {
994
+ const multiSelect = window.document.createElement("IC-SELECT");
995
+ const input = window.document.createElement("input");
996
+ const page = await newSpecPage({
997
+ components: [Menu, InputComponentContainer],
998
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
999
+ });
1000
+ page.rootInstance.isMultiSelect = true;
1001
+ jest
1002
+ .spyOn(page.rootInstance, "deselectSelectedOptions")
1003
+ .mockImplementation();
1004
+ page.rootInstance.value = [
1005
+ "espresso",
1006
+ "doubleespresso",
1007
+ "flatwhite",
1008
+ "cappuccino",
1009
+ "americano",
1010
+ "ameno",
1011
+ "green",
1012
+ "acano",
1013
+ "mocha",
1014
+ ];
1015
+ await page.waitForChanges();
1016
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
1017
+ await page.waitForChanges();
1018
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
1019
+ await page.waitForChanges();
1020
+ expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
1021
+ -1, 8,
1022
+ ]);
1023
+ });
1024
+ it("tests selection of options when pressing Home or End with Shift & Ctrl", async () => {
1025
+ const multiSelect = window.document.createElement("IC-SELECT");
1026
+ const input = window.document.createElement("input");
1027
+ const page = await newSpecPage({
1028
+ components: [Menu, InputComponentContainer],
1029
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
1030
+ });
1031
+ page.rootInstance.isMultiSelect = true;
1032
+ jest
1033
+ .spyOn(page.rootInstance, "handleMultipleShiftSelect")
1034
+ .mockImplementation();
1035
+ page.rootInstance.value = [
1036
+ "espresso",
1037
+ "doubleespresso",
1038
+ "flatwhite",
1039
+ "cappuccino",
1040
+ "americano",
1041
+ "ameno",
1042
+ "green",
1043
+ "acano",
1044
+ "mocha",
1045
+ ];
1046
+ await page.waitForChanges();
1047
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
1048
+ key: "End",
1049
+ preventDefault: () => null,
1050
+ stopImmediatePropagation: () => null,
1051
+ ctrlKey: true,
1052
+ shiftKey: true,
1053
+ target: {
1054
+ id: "key-id",
1055
+ },
1056
+ });
1057
+ expect(page.rootInstance.handleMultipleShiftSelect).toHaveBeenCalledWith(8);
1058
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
1059
+ key: "Home",
1060
+ preventDefault: () => null,
1061
+ stopImmediatePropagation: () => null,
1062
+ ctrlKey: true,
1063
+ shiftKey: true,
1064
+ target: {
1065
+ id: "key-id",
1066
+ },
1067
+ });
1068
+ expect(page.rootInstance.handleMultipleShiftSelect).toHaveBeenCalledWith(0);
1069
+ });
1070
+ it("tests isOptionSelected", async () => {
1071
+ const multiSelect = window.document.createElement("IC-SELECT");
1072
+ const input = window.document.createElement("input");
1073
+ const page = await newSpecPage({
1074
+ components: [Menu, InputComponentContainer],
1075
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
1076
+ });
1077
+ page.rootInstance.value = ["espresso", "doubleespresso"];
1078
+ await page.waitForChanges();
1079
+ let isSelected = await page.rootInstance.isOptionSelected([1]);
1080
+ expect(isSelected).toBe(true);
1081
+ isSelected = await page.rootInstance.isOptionSelected([3]);
1082
+ expect(isSelected).toBe(false);
1083
+ page.rootInstance.value = "";
1084
+ await page.waitForChanges();
1085
+ isSelected = await page.rootInstance.isOptionSelected([0]);
1086
+ expect(isSelected).toBe(false);
1087
+ });
1088
+ it("tests handleMultipleShiftSelect with optional params using default values", async () => {
1089
+ const multiSelect = window.document.createElement("IC-SELECT");
1090
+ const input = window.document.createElement("input");
1091
+ const page = await newSpecPage({
1092
+ components: [Menu, InputComponentContainer],
1093
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
1094
+ });
1095
+ page.rootInstance.value = ["espresso", "doubleespresso", "flatwhite"];
1096
+ jest
1097
+ .spyOn(page.rootInstance, "deselectSelectedOptions")
1098
+ .mockImplementation();
1099
+ page.rootInstance.lastOptionSelected = 1;
1100
+ await page.waitForChanges();
1101
+ page.rootInstance.handleMultipleShiftSelect(3);
1102
+ await page.waitForChanges();
1103
+ expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
1104
+ 1, 2, 3,
1105
+ ]);
1106
+ });
759
1107
  });
760
1108
  //# sourceMappingURL=ic-menu.spec.js.map