@ukic/canary-web-components 2.0.0-canary.4 → 2.0.0-canary.41

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 (832) hide show
  1. package/README.md +7 -2
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/date-helpers-c9551119.js +150 -0
  4. package/dist/cjs/date-helpers-c9551119.js.map +1 -0
  5. package/dist/cjs/helpers-951fb33a.js +433 -0
  6. package/dist/cjs/helpers-951fb33a.js.map +1 -0
  7. package/dist/cjs/{helpers-bbe55215.js → helpers-eabe59b6.js} +147 -100
  8. package/dist/cjs/helpers-eabe59b6.js.map +1 -0
  9. package/dist/cjs/ic-accordion-group.cjs.entry.js +31 -4
  10. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-accordion.cjs.entry.js +11 -4
  12. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-alert.cjs.entry.js +20 -6
  14. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-back-to-top.cjs.entry.js +26 -17
  16. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-badge.cjs.entry.js +86 -83
  18. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +62 -25
  20. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-button_3.cjs.entry.js +145 -103
  24. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-card-horizontal.cjs.entry.js +130 -0
  26. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
  27. package/dist/cjs/ic-card.cjs.entry.js +30 -7
  28. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-checkbox-group.cjs.entry.js +28 -17
  30. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-checkbox.cjs.entry.js +50 -31
  32. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-chip.cjs.entry.js +45 -21
  34. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-classification-banner.cjs.entry.js +14 -5
  36. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-data-entity.cjs.entry.js +3 -6
  38. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-data-row.cjs.entry.js +21 -35
  40. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
  42. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
  43. package/dist/cjs/ic-data-table.cjs.entry.js +1079 -84
  44. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-date-input.cjs.entry.js +1123 -0
  46. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -0
  47. package/dist/cjs/ic-date-picker.cjs.entry.js +1129 -0
  48. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -0
  49. package/dist/cjs/ic-dialog.cjs.entry.js +54 -12
  50. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-empty-state_2.cjs.entry.js +388 -0
  53. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
  54. package/dist/cjs/ic-footer-link-group.cjs.entry.js +4 -4
  55. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  57. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-footer.cjs.entry.js +18 -7
  59. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-hero.cjs.entry.js +12 -2
  61. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  63. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +164 -0
  65. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -0
  66. package/dist/cjs/ic-link.cjs.entry.js +34 -16
  67. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  69. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-menu-item.cjs.entry.js +21 -20
  71. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +2740 -0
  73. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -0
  74. package/dist/cjs/{ic-input-component-container_3.cjs.entry.js → ic-menu.cjs.entry.js} +17 -80
  75. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -0
  76. package/dist/cjs/ic-navigation-button.cjs.entry.js +28 -7
  77. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-navigation-group.cjs.entry.js +32 -22
  79. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-navigation-item.cjs.entry.js +82 -36
  81. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  83. package/dist/cjs/ic-page-header.cjs.entry.js +10 -10
  84. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-pagination_4.cjs.entry.js +231 -116
  86. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-popover-menu.cjs.entry.js +40 -36
  88. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-radio-group.cjs.entry.js +100 -59
  90. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-radio-option.cjs.entry.js +59 -42
  92. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-search-bar.cjs.entry.js +22 -30
  94. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  96. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-select-with-multi.cjs.entry.js +796 -0
  98. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -0
  99. package/dist/cjs/ic-side-navigation.cjs.entry.js +53 -73
  100. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-skeleton.cjs.entry.js +16 -35
  102. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-status-tag.cjs.entry.js +4 -2
  104. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-step.cjs.entry.js +5 -2
  106. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-stepper.cjs.entry.js +31 -9
  108. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-switch.cjs.entry.js +7 -3
  110. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-tab-context.cjs.entry.js +78 -130
  112. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  114. package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -13
  115. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  116. package/dist/cjs/ic-tab.cjs.entry.js +16 -14
  117. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  118. package/dist/cjs/ic-theme.cjs.entry.js +13 -22
  119. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  120. package/dist/cjs/ic-toast-region.cjs.entry.js +6 -0
  121. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  122. package/dist/cjs/ic-toast.cjs.entry.js +21 -18
  123. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  124. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +201 -0
  125. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -0
  126. package/dist/cjs/ic-toggle-button.cjs.entry.js +97 -0
  127. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -0
  128. package/dist/cjs/ic-top-navigation.cjs.entry.js +60 -82
  129. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  130. package/dist/cjs/ic-tree-item.cjs.entry.js +253 -0
  131. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -0
  132. package/dist/cjs/ic-tree-view.cjs.entry.js +215 -0
  133. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -0
  134. package/dist/cjs/ic-typography.cjs.entry.js +51 -14
  135. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  136. package/dist/cjs/index-4cf27b16.js +48 -12
  137. package/dist/cjs/loader.cjs.js +1 -1
  138. package/dist/collection/assets/arrow-dropdown.svg +3 -0
  139. package/dist/collection/assets/calendar.svg +3 -0
  140. package/dist/collection/collection-manifest.json +11 -1
  141. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +658 -0
  142. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +375 -0
  143. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
  144. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.stories.js +605 -0
  145. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.stories.js.map +1 -0
  146. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js +2 -0
  147. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js.map +1 -0
  148. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +140 -0
  149. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -0
  150. package/dist/collection/components/ic-data-table/ic-data-table.css +286 -10
  151. package/dist/collection/components/ic-data-table/ic-data-table.js +1533 -123
  152. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  153. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +414 -0
  154. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -0
  155. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  156. package/dist/collection/components/ic-data-table/story-data.js +1326 -43
  157. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  158. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +460 -3
  159. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  160. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +91 -0
  161. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
  162. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
  163. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js +98 -0
  164. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js.map +1 -0
  165. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js +11 -0
  166. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
  167. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
  168. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
  169. package/dist/collection/components/ic-date-input/ic-date-input.css +564 -0
  170. package/dist/collection/components/ic-date-input/ic-date-input.js +1808 -0
  171. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -0
  172. package/dist/collection/components/ic-date-input/ic-date-input.stories.js +341 -0
  173. package/dist/collection/components/ic-date-input/ic-date-input.stories.js.map +1 -0
  174. package/dist/collection/components/ic-date-input/story-data.js +28 -0
  175. package/dist/collection/components/ic-date-input/story-data.js.map +1 -0
  176. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +1158 -0
  177. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -0
  178. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +42 -0
  179. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +1 -0
  180. package/dist/collection/components/ic-date-picker/ic-date-picker.css +885 -0
  181. package/dist/collection/components/ic-date-picker/ic-date-picker.js +1688 -0
  182. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -0
  183. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +167 -0
  184. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -0
  185. package/dist/collection/components/ic-date-picker/ic-day-button.js +36 -0
  186. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +1 -0
  187. package/dist/collection/components/ic-date-picker/ic-month-picker.js +29 -0
  188. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +1 -0
  189. package/dist/collection/components/ic-date-picker/ic-year-picker.js +39 -0
  190. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +1 -0
  191. package/dist/collection/components/ic-date-picker/story-data.js +179 -0
  192. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -0
  193. package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js +13 -0
  194. package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js.map +1 -0
  195. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js +207 -0
  196. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js.map +1 -0
  197. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +1030 -0
  198. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -0
  199. package/dist/collection/components/ic-menu-with-multi/ic-menu.css +701 -0
  200. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +1599 -0
  201. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -0
  202. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +1057 -0
  203. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -0
  204. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +346 -166
  205. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  206. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +260 -0
  207. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js.map +1 -0
  208. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
  209. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
  210. package/dist/collection/components/ic-pagination-bar/test/a11y/ic-pagination-bar.test.a11y.js +8 -1
  211. package/dist/collection/components/ic-pagination-bar/test/a11y/ic-pagination-bar.test.a11y.js.map +1 -1
  212. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +75 -12
  213. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  214. package/dist/collection/components/ic-select-with-multi/assets/Check.svg +3 -0
  215. package/dist/collection/components/ic-select-with-multi/assets/Clear.svg +3 -0
  216. package/dist/collection/components/ic-select-with-multi/assets/Expand.svg +3 -0
  217. package/dist/collection/components/ic-select-with-multi/ic-select-multi.stories.js +144 -0
  218. package/dist/collection/components/ic-select-with-multi/ic-select-multi.stories.js.map +1 -0
  219. package/dist/collection/components/ic-select-with-multi/ic-select.css +693 -0
  220. package/dist/collection/components/ic-select-with-multi/ic-select.js +1649 -0
  221. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -0
  222. package/dist/collection/components/ic-select-with-multi/story-data.js +216 -0
  223. package/dist/collection/components/ic-select-with-multi/story-data.js.map +1 -0
  224. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +1518 -0
  225. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +1 -0
  226. package/dist/collection/components/ic-tree-item/ic-tree-item.css +186 -0
  227. package/dist/collection/components/ic-tree-item/ic-tree-item.js +620 -0
  228. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -0
  229. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +117 -0
  230. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -0
  231. package/dist/collection/components/ic-tree-view/ic-tree-view.css +74 -0
  232. package/dist/collection/components/ic-tree-view/ic-tree-view.js +346 -0
  233. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -0
  234. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js +456 -0
  235. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js.map +1 -0
  236. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js +85 -0
  237. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js.map +1 -0
  238. package/dist/collection/utils/constants.js +83 -0
  239. package/dist/collection/utils/constants.js.map +1 -0
  240. package/dist/collection/utils/date-helpers.js +133 -0
  241. package/dist/collection/utils/date-helpers.js.map +1 -0
  242. package/dist/collection/utils/helpers.js +473 -5
  243. package/dist/collection/utils/helpers.js.map +1 -1
  244. package/dist/collection/utils/types.js +58 -0
  245. package/dist/collection/utils/types.js.map +1 -0
  246. package/dist/components/helpers.js +141 -98
  247. package/dist/components/helpers.js.map +1 -1
  248. package/dist/components/helpers2.js +403 -0
  249. package/dist/components/helpers2.js.map +1 -0
  250. package/dist/components/ic-accordion-group.js +38 -7
  251. package/dist/components/ic-accordion-group.js.map +1 -1
  252. package/dist/components/ic-accordion.js +12 -4
  253. package/dist/components/ic-accordion.js.map +1 -1
  254. package/dist/components/ic-alert2.js +21 -6
  255. package/dist/components/ic-alert2.js.map +1 -1
  256. package/dist/components/ic-back-to-top.js +34 -18
  257. package/dist/components/ic-back-to-top.js.map +1 -1
  258. package/dist/components/ic-badge.js +91 -84
  259. package/dist/components/ic-badge.js.map +1 -1
  260. package/dist/components/ic-breadcrumb-group.js +66 -25
  261. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  262. package/dist/components/ic-breadcrumb2.js +2 -2
  263. package/dist/components/ic-breadcrumb2.js.map +1 -1
  264. package/dist/components/ic-button2.js +104 -74
  265. package/dist/components/ic-button2.js.map +1 -1
  266. package/dist/components/ic-card-horizontal.d.ts +11 -0
  267. package/dist/components/ic-card-horizontal.js +168 -0
  268. package/dist/components/ic-card-horizontal.js.map +1 -0
  269. package/dist/components/ic-card.js +34 -21
  270. package/dist/components/ic-card.js.map +1 -1
  271. package/dist/components/ic-checkbox-group.js +33 -18
  272. package/dist/components/ic-checkbox-group.js.map +1 -1
  273. package/dist/components/ic-checkbox.js +58 -33
  274. package/dist/components/ic-checkbox.js.map +1 -1
  275. package/dist/components/ic-chip.js +52 -23
  276. package/dist/components/ic-chip.js.map +1 -1
  277. package/dist/components/ic-classification-banner.js +14 -5
  278. package/dist/components/ic-classification-banner.js.map +1 -1
  279. package/dist/components/ic-data-entity.js +3 -6
  280. package/dist/components/ic-data-entity.js.map +1 -1
  281. package/dist/components/ic-data-row.js +21 -35
  282. package/dist/components/ic-data-row.js.map +1 -1
  283. package/dist/components/ic-data-table-title-bar.d.ts +11 -0
  284. package/dist/components/ic-data-table-title-bar.js +136 -0
  285. package/dist/components/ic-data-table-title-bar.js.map +1 -0
  286. package/dist/components/ic-data-table.js +1119 -91
  287. package/dist/components/ic-data-table.js.map +1 -1
  288. package/dist/components/ic-date-input.d.ts +11 -0
  289. package/dist/components/ic-date-input.js +8 -0
  290. package/dist/components/ic-date-input.js.map +1 -0
  291. package/dist/components/ic-date-input2.js +1359 -0
  292. package/dist/components/ic-date-input2.js.map +1 -0
  293. package/dist/components/ic-date-picker.d.ts +11 -0
  294. package/dist/components/ic-date-picker.js +1258 -0
  295. package/dist/components/ic-date-picker.js.map +1 -0
  296. package/dist/components/ic-dialog.js +55 -12
  297. package/dist/components/ic-dialog.js.map +1 -1
  298. package/dist/components/ic-divider2.js +1 -1
  299. package/dist/components/ic-empty-state.js +1 -57
  300. package/dist/components/ic-empty-state.js.map +1 -1
  301. package/dist/{esm/ic-empty-state.entry.js → components/ic-empty-state2.js} +47 -11
  302. package/dist/components/ic-empty-state2.js.map +1 -0
  303. package/dist/components/ic-footer-link-group.js +4 -4
  304. package/dist/components/ic-footer-link-group.js.map +1 -1
  305. package/dist/components/ic-footer-link.js +3 -3
  306. package/dist/components/ic-footer-link.js.map +1 -1
  307. package/dist/components/ic-footer.js +18 -7
  308. package/dist/components/ic-footer.js.map +1 -1
  309. package/dist/components/ic-hero.js +12 -2
  310. package/dist/components/ic-hero.js.map +1 -1
  311. package/dist/components/ic-horizontal-scroll2.js +5 -5
  312. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  313. package/dist/components/ic-input-component-container2.js +24 -8
  314. package/dist/components/ic-input-component-container2.js.map +1 -1
  315. package/dist/components/ic-input-label2.js +7 -5
  316. package/dist/components/ic-input-label2.js.map +1 -1
  317. package/dist/components/ic-input-validation2.js +1 -1
  318. package/dist/components/ic-link2.js +35 -17
  319. package/dist/components/ic-link2.js.map +1 -1
  320. package/dist/components/ic-loading-indicator2.js +2 -2
  321. package/dist/components/ic-loading-indicator2.js.map +1 -1
  322. package/dist/components/ic-menu-group.js +2 -2
  323. package/dist/components/ic-menu-group.js.map +1 -1
  324. package/dist/components/ic-menu-item2.js +26 -23
  325. package/dist/components/ic-menu-item2.js.map +1 -1
  326. package/dist/components/ic-menu-with-multi.d.ts +11 -0
  327. package/dist/components/ic-menu-with-multi.js +8 -0
  328. package/dist/components/ic-menu-with-multi.js.map +1 -0
  329. package/dist/components/ic-menu2.js +14 -14
  330. package/dist/components/ic-menu2.js.map +1 -1
  331. package/dist/components/ic-menu3.js +2806 -0
  332. package/dist/components/ic-menu3.js.map +1 -0
  333. package/dist/components/ic-navigation-button.js +29 -8
  334. package/dist/components/ic-navigation-button.js.map +1 -1
  335. package/dist/components/ic-navigation-group.js +34 -24
  336. package/dist/components/ic-navigation-group.js.map +1 -1
  337. package/dist/components/ic-navigation-item.js +84 -37
  338. package/dist/components/ic-navigation-item.js.map +1 -1
  339. package/dist/components/ic-navigation-menu2.js +1 -1
  340. package/dist/components/ic-page-header.js +10 -10
  341. package/dist/components/ic-page-header.js.map +1 -1
  342. package/dist/components/ic-pagination-bar2.js +244 -161
  343. package/dist/components/ic-pagination-bar2.js.map +1 -1
  344. package/dist/components/ic-pagination-item2.js +27 -12
  345. package/dist/components/ic-pagination-item2.js.map +1 -1
  346. package/dist/components/ic-pagination2.js +30 -10
  347. package/dist/components/ic-pagination2.js.map +1 -1
  348. package/dist/components/ic-popover-menu.js +43 -38
  349. package/dist/components/ic-popover-menu.js.map +1 -1
  350. package/dist/components/ic-radio-group.js +101 -59
  351. package/dist/components/ic-radio-group.js.map +1 -1
  352. package/dist/components/ic-radio-option.js +63 -44
  353. package/dist/components/ic-radio-option.js.map +1 -1
  354. package/dist/components/ic-search-bar.js +23 -30
  355. package/dist/components/ic-search-bar.js.map +1 -1
  356. package/dist/components/ic-section-container2.js +1 -1
  357. package/dist/components/ic-section-container2.js.map +1 -1
  358. package/dist/components/ic-select-with-multi.d.ts +11 -0
  359. package/dist/components/ic-select-with-multi.js +921 -0
  360. package/dist/components/ic-select-with-multi.js.map +1 -0
  361. package/dist/components/ic-select2.js +77 -30
  362. package/dist/components/ic-select2.js.map +1 -1
  363. package/dist/components/ic-side-navigation.js +56 -74
  364. package/dist/components/ic-side-navigation.js.map +1 -1
  365. package/dist/components/ic-skeleton.js +17 -40
  366. package/dist/components/ic-skeleton.js.map +1 -1
  367. package/dist/components/ic-status-tag.js +3 -1
  368. package/dist/components/ic-status-tag.js.map +1 -1
  369. package/dist/components/ic-step.js +5 -2
  370. package/dist/components/ic-step.js.map +1 -1
  371. package/dist/components/ic-stepper.js +35 -9
  372. package/dist/components/ic-stepper.js.map +1 -1
  373. package/dist/components/ic-switch.js +9 -4
  374. package/dist/components/ic-switch.js.map +1 -1
  375. package/dist/components/ic-tab-context.js +79 -130
  376. package/dist/components/ic-tab-context.js.map +1 -1
  377. package/dist/components/ic-tab-panel.js +6 -17
  378. package/dist/components/ic-tab-panel.js.map +1 -1
  379. package/dist/components/ic-tab.js +16 -14
  380. package/dist/components/ic-tab.js.map +1 -1
  381. package/dist/components/ic-text-field2.js +120 -72
  382. package/dist/components/ic-text-field2.js.map +1 -1
  383. package/dist/components/ic-theme.js +13 -22
  384. package/dist/components/ic-theme.js.map +1 -1
  385. package/dist/components/ic-toast-region.js +6 -0
  386. package/dist/components/ic-toast-region.js.map +1 -1
  387. package/dist/components/ic-toast.js +24 -19
  388. package/dist/components/ic-toast.js.map +1 -1
  389. package/dist/components/ic-toggle-button-group.js +230 -0
  390. package/dist/components/ic-toggle-button-group.js.map +1 -0
  391. package/dist/components/ic-toggle-button.js +148 -0
  392. package/dist/components/ic-toggle-button.js.map +1 -0
  393. package/dist/components/ic-tooltip2.js +52 -30
  394. package/dist/components/ic-tooltip2.js.map +1 -1
  395. package/dist/components/ic-top-navigation.js +61 -83
  396. package/dist/components/ic-top-navigation.js.map +1 -1
  397. package/dist/components/ic-tree-item.d.ts +11 -0
  398. package/dist/components/ic-tree-item.js +300 -0
  399. package/dist/components/ic-tree-item.js.map +1 -0
  400. package/dist/components/ic-tree-view.d.ts +11 -0
  401. package/dist/components/ic-tree-view.js +252 -0
  402. package/dist/components/ic-tree-view.js.map +1 -0
  403. package/dist/components/ic-typography2.js +57 -17
  404. package/dist/components/ic-typography2.js.map +1 -1
  405. package/dist/core/core.css +8 -5
  406. package/dist/core/core.esm.js +1 -1
  407. package/dist/core/core.esm.js.map +1 -1
  408. package/dist/core/p-0229eb46.entry.js +2 -0
  409. package/dist/core/p-0229eb46.entry.js.map +1 -0
  410. package/dist/core/p-04fe848d.entry.js +2 -0
  411. package/dist/core/p-04fe848d.entry.js.map +1 -0
  412. package/dist/core/p-05ae9a59.entry.js +2 -0
  413. package/dist/core/p-05ae9a59.entry.js.map +1 -0
  414. package/dist/core/p-074e64d0.entry.js +2 -0
  415. package/dist/core/p-074e64d0.entry.js.map +1 -0
  416. package/dist/core/p-0f1706e8.entry.js +2 -0
  417. package/dist/core/p-0f1706e8.entry.js.map +1 -0
  418. package/dist/core/p-11877d23.entry.js +2 -0
  419. package/dist/core/p-11877d23.entry.js.map +1 -0
  420. package/dist/core/p-1e450833.entry.js +2 -0
  421. package/dist/core/p-1e450833.entry.js.map +1 -0
  422. package/dist/core/{p-4409f656.entry.js → p-23408776.entry.js} +2 -2
  423. package/dist/core/p-23408776.entry.js.map +1 -0
  424. package/dist/core/p-26fa17fb.entry.js +2 -0
  425. package/dist/core/p-26fa17fb.entry.js.map +1 -0
  426. package/dist/core/p-2b15ea77.entry.js +2 -0
  427. package/dist/core/p-2b15ea77.entry.js.map +1 -0
  428. package/dist/core/p-2d44b81a.entry.js +2 -0
  429. package/dist/core/p-2d44b81a.entry.js.map +1 -0
  430. package/dist/core/p-2ea7af8b.entry.js +2 -0
  431. package/dist/core/p-2ea7af8b.entry.js.map +1 -0
  432. package/dist/core/p-33dd24eb.js +2 -0
  433. package/dist/core/p-33dd24eb.js.map +1 -0
  434. package/dist/core/p-38f329ab.entry.js +2 -0
  435. package/dist/core/p-38f329ab.entry.js.map +1 -0
  436. package/dist/core/p-3cd2056f.entry.js +2 -0
  437. package/dist/core/p-3cd2056f.entry.js.map +1 -0
  438. package/dist/core/p-3d00ad9e.entry.js +2 -0
  439. package/dist/core/p-3d00ad9e.entry.js.map +1 -0
  440. package/dist/core/p-3ebd4703.entry.js +2 -0
  441. package/dist/core/p-3ebd4703.entry.js.map +1 -0
  442. package/dist/core/p-44036532.entry.js +2 -0
  443. package/dist/core/p-44036532.entry.js.map +1 -0
  444. package/dist/core/p-44680720.entry.js +2 -0
  445. package/dist/core/p-44680720.entry.js.map +1 -0
  446. package/dist/core/{p-24945ee5.entry.js → p-452985d9.entry.js} +2 -2
  447. package/dist/core/p-452985d9.entry.js.map +1 -0
  448. package/dist/core/{p-b97dc365.entry.js → p-487fd924.entry.js} +2 -2
  449. package/dist/core/p-56db5123.entry.js +2 -0
  450. package/dist/core/p-56db5123.entry.js.map +1 -0
  451. package/dist/core/p-5a90eaa8.entry.js +2 -0
  452. package/dist/core/p-5a90eaa8.entry.js.map +1 -0
  453. package/dist/core/p-5dd6381a.entry.js +2 -0
  454. package/dist/core/p-5dd6381a.entry.js.map +1 -0
  455. package/dist/core/p-5f149106.entry.js +2 -0
  456. package/dist/core/p-5f149106.entry.js.map +1 -0
  457. package/dist/core/p-61848e6b.entry.js +2 -0
  458. package/dist/core/p-61848e6b.entry.js.map +1 -0
  459. package/dist/core/{p-d77960f6.entry.js → p-656378ba.entry.js} +2 -2
  460. package/dist/core/p-6a920114.entry.js +2 -0
  461. package/dist/core/p-6a920114.entry.js.map +1 -0
  462. package/dist/core/p-6cdf5de2.entry.js +2 -0
  463. package/dist/core/p-6cdf5de2.entry.js.map +1 -0
  464. package/dist/core/p-70ad364c.entry.js +2 -0
  465. package/dist/core/p-70ad364c.entry.js.map +1 -0
  466. package/dist/core/p-70c659ec.entry.js +2 -0
  467. package/dist/core/p-70c659ec.entry.js.map +1 -0
  468. package/dist/core/p-74b42302.entry.js +2 -0
  469. package/dist/core/p-74b42302.entry.js.map +1 -0
  470. package/dist/core/p-75bd12f8.entry.js +2 -0
  471. package/dist/core/p-75bd12f8.entry.js.map +1 -0
  472. package/dist/core/p-780294b8.entry.js +2 -0
  473. package/dist/core/p-780294b8.entry.js.map +1 -0
  474. package/dist/core/{p-baf81f30.entry.js → p-787ffd96.entry.js} +2 -2
  475. package/dist/core/p-787ffd96.entry.js.map +1 -0
  476. package/dist/core/p-7edc19be.entry.js +2 -0
  477. package/dist/core/p-7edc19be.entry.js.map +1 -0
  478. package/dist/core/p-8ab58daa.js +2 -0
  479. package/dist/core/p-8ab58daa.js.map +1 -0
  480. package/dist/core/p-8ced1495.entry.js +2 -0
  481. package/dist/core/p-8ced1495.entry.js.map +1 -0
  482. package/dist/core/{p-939baa93.entry.js → p-95545b4c.entry.js} +2 -2
  483. package/dist/core/p-95545b4c.entry.js.map +1 -0
  484. package/dist/core/p-95d057b8.entry.js +2 -0
  485. package/dist/core/p-95d057b8.entry.js.map +1 -0
  486. package/dist/core/p-987cd821.entry.js +2 -0
  487. package/dist/core/p-987cd821.entry.js.map +1 -0
  488. package/dist/core/{p-41aa0ed3.entry.js → p-9b386822.entry.js} +2 -2
  489. package/dist/core/p-9b386822.entry.js.map +1 -0
  490. package/dist/core/{p-39e20b87.entry.js → p-9bbe221f.entry.js} +2 -2
  491. package/dist/core/{p-39e20b87.entry.js.map → p-9bbe221f.entry.js.map} +1 -1
  492. package/dist/core/p-9f157649.entry.js +2 -0
  493. package/dist/core/p-9f157649.entry.js.map +1 -0
  494. package/dist/core/{p-356b8a4c.entry.js → p-9f3cf053.entry.js} +2 -2
  495. package/dist/core/{p-356b8a4c.entry.js.map → p-9f3cf053.entry.js.map} +1 -1
  496. package/dist/core/p-9f58998d.entry.js +2 -0
  497. package/dist/core/p-9f58998d.entry.js.map +1 -0
  498. package/dist/core/p-a4f28ef1.entry.js +2 -0
  499. package/dist/core/p-a4f28ef1.entry.js.map +1 -0
  500. package/dist/core/p-ac8090a5.entry.js +2 -0
  501. package/dist/core/p-ac8090a5.entry.js.map +1 -0
  502. package/dist/core/p-b1f89f44.entry.js +2 -0
  503. package/dist/core/p-b1f89f44.entry.js.map +1 -0
  504. package/dist/core/p-bc350ec5.entry.js +2 -0
  505. package/dist/core/p-bc350ec5.entry.js.map +1 -0
  506. package/dist/core/p-bd0328f3.entry.js +2 -0
  507. package/dist/core/p-bd0328f3.entry.js.map +1 -0
  508. package/dist/core/p-bf06977d.js +2 -0
  509. package/dist/core/p-bf06977d.js.map +1 -0
  510. package/dist/core/p-c0a2a040.entry.js +2 -0
  511. package/dist/core/p-c0a2a040.entry.js.map +1 -0
  512. package/dist/core/p-cc0e0b46.entry.js +2 -0
  513. package/dist/core/p-cc0e0b46.entry.js.map +1 -0
  514. package/dist/core/p-d0020f6f.entry.js +2 -0
  515. package/dist/core/p-d0020f6f.entry.js.map +1 -0
  516. package/dist/core/{p-3d618bc2.entry.js → p-d1045cd5.entry.js} +2 -2
  517. package/dist/core/p-d56248df.entry.js +2 -0
  518. package/dist/core/p-d56248df.entry.js.map +1 -0
  519. package/dist/core/p-d921dc2c.entry.js +2 -0
  520. package/dist/core/p-d921dc2c.entry.js.map +1 -0
  521. package/dist/core/p-da398a5d.entry.js +2 -0
  522. package/dist/core/p-da398a5d.entry.js.map +1 -0
  523. package/dist/core/{p-2e9e8e7c.entry.js → p-db5af9f7.entry.js} +2 -2
  524. package/dist/core/p-db5af9f7.entry.js.map +1 -0
  525. package/dist/core/p-dd4c83ad.entry.js +2 -0
  526. package/dist/core/p-dd4c83ad.entry.js.map +1 -0
  527. package/dist/core/p-e362b5f3.entry.js +2 -0
  528. package/dist/core/p-e362b5f3.entry.js.map +1 -0
  529. package/dist/core/p-e89c2feb.entry.js +2 -0
  530. package/dist/core/p-e89c2feb.entry.js.map +1 -0
  531. package/dist/core/p-eaeaa096.entry.js +2 -0
  532. package/dist/core/p-eaeaa096.entry.js.map +1 -0
  533. package/dist/core/{p-c2b5e7b1.entry.js → p-eb87b43b.entry.js} +2 -2
  534. package/dist/core/{p-c2b5e7b1.entry.js.map → p-eb87b43b.entry.js.map} +1 -1
  535. package/dist/core/p-f5dfcf4f.entry.js +2 -0
  536. package/dist/core/p-f5dfcf4f.entry.js.map +1 -0
  537. package/dist/core/p-f5fbfbc9.entry.js +2 -0
  538. package/dist/core/p-f5fbfbc9.entry.js.map +1 -0
  539. package/dist/core/p-fac387e8.entry.js +2 -0
  540. package/dist/core/p-fac387e8.entry.js.map +1 -0
  541. package/dist/esm/core.js +1 -1
  542. package/dist/esm/date-helpers-0e5e32a7.js +136 -0
  543. package/dist/esm/date-helpers-0e5e32a7.js.map +1 -0
  544. package/dist/esm/helpers-948df101.js +403 -0
  545. package/dist/esm/helpers-948df101.js.map +1 -0
  546. package/dist/esm/{helpers-268c2b7f.js → helpers-cd64688a.js} +142 -99
  547. package/dist/esm/helpers-cd64688a.js.map +1 -0
  548. package/dist/esm/ic-accordion-group.entry.js +31 -4
  549. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  550. package/dist/esm/ic-accordion.entry.js +11 -4
  551. package/dist/esm/ic-accordion.entry.js.map +1 -1
  552. package/dist/esm/ic-alert.entry.js +20 -6
  553. package/dist/esm/ic-alert.entry.js.map +1 -1
  554. package/dist/esm/ic-back-to-top.entry.js +26 -17
  555. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  556. package/dist/esm/ic-badge.entry.js +86 -83
  557. package/dist/esm/ic-badge.entry.js.map +1 -1
  558. package/dist/esm/ic-breadcrumb-group.entry.js +62 -25
  559. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  560. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  561. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  562. package/dist/esm/ic-button_3.entry.js +145 -103
  563. package/dist/esm/ic-button_3.entry.js.map +1 -1
  564. package/dist/esm/ic-card-horizontal.entry.js +126 -0
  565. package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
  566. package/dist/esm/ic-card.entry.js +30 -7
  567. package/dist/esm/ic-card.entry.js.map +1 -1
  568. package/dist/esm/ic-checkbox-group.entry.js +28 -17
  569. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  570. package/dist/esm/ic-checkbox.entry.js +50 -31
  571. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  572. package/dist/esm/ic-chip.entry.js +45 -21
  573. package/dist/esm/ic-chip.entry.js.map +1 -1
  574. package/dist/esm/ic-classification-banner.entry.js +14 -5
  575. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  576. package/dist/esm/ic-data-entity.entry.js +3 -6
  577. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  578. package/dist/esm/ic-data-row.entry.js +21 -35
  579. package/dist/esm/ic-data-row.entry.js.map +1 -1
  580. package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
  581. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
  582. package/dist/esm/ic-data-table.entry.js +1080 -85
  583. package/dist/esm/ic-data-table.entry.js.map +1 -1
  584. package/dist/esm/ic-date-input.entry.js +1119 -0
  585. package/dist/esm/ic-date-input.entry.js.map +1 -0
  586. package/dist/esm/ic-date-picker.entry.js +1125 -0
  587. package/dist/esm/ic-date-picker.entry.js.map +1 -0
  588. package/dist/esm/ic-dialog.entry.js +54 -12
  589. package/dist/esm/ic-dialog.entry.js.map +1 -1
  590. package/dist/esm/ic-divider.entry.js +1 -1
  591. package/dist/esm/ic-empty-state_2.entry.js +383 -0
  592. package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
  593. package/dist/esm/ic-footer-link-group.entry.js +4 -4
  594. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  595. package/dist/esm/ic-footer-link.entry.js +3 -3
  596. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  597. package/dist/esm/ic-footer.entry.js +18 -7
  598. package/dist/esm/ic-footer.entry.js.map +1 -1
  599. package/dist/esm/ic-hero.entry.js +12 -2
  600. package/dist/esm/ic-hero.entry.js.map +1 -1
  601. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  602. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  603. package/dist/esm/ic-input-component-container_4.entry.js +157 -0
  604. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -0
  605. package/dist/esm/ic-link.entry.js +35 -17
  606. package/dist/esm/ic-link.entry.js.map +1 -1
  607. package/dist/esm/ic-menu-group.entry.js +2 -2
  608. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  609. package/dist/esm/ic-menu-item.entry.js +21 -20
  610. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  611. package/dist/esm/ic-menu-with-multi.entry.js +2736 -0
  612. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -0
  613. package/dist/esm/{ic-input-component-container_3.entry.js → ic-menu.entry.js} +19 -80
  614. package/dist/esm/ic-menu.entry.js.map +1 -0
  615. package/dist/esm/ic-navigation-button.entry.js +29 -8
  616. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  617. package/dist/esm/ic-navigation-group.entry.js +33 -23
  618. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  619. package/dist/esm/ic-navigation-item.entry.js +83 -37
  620. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  621. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  622. package/dist/esm/ic-page-header.entry.js +10 -10
  623. package/dist/esm/ic-page-header.entry.js.map +1 -1
  624. package/dist/esm/ic-pagination_4.entry.js +232 -117
  625. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  626. package/dist/esm/ic-popover-menu.entry.js +40 -36
  627. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  628. package/dist/esm/ic-radio-group.entry.js +100 -59
  629. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  630. package/dist/esm/ic-radio-option.entry.js +59 -42
  631. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  632. package/dist/esm/ic-search-bar.entry.js +22 -30
  633. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  634. package/dist/esm/ic-section-container.entry.js +1 -1
  635. package/dist/esm/ic-section-container.entry.js.map +1 -1
  636. package/dist/esm/ic-select-with-multi.entry.js +792 -0
  637. package/dist/esm/ic-select-with-multi.entry.js.map +1 -0
  638. package/dist/esm/ic-side-navigation.entry.js +53 -73
  639. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  640. package/dist/esm/ic-skeleton.entry.js +16 -35
  641. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  642. package/dist/esm/ic-status-tag.entry.js +4 -2
  643. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  644. package/dist/esm/ic-step.entry.js +5 -2
  645. package/dist/esm/ic-step.entry.js.map +1 -1
  646. package/dist/esm/ic-stepper.entry.js +31 -9
  647. package/dist/esm/ic-stepper.entry.js.map +1 -1
  648. package/dist/esm/ic-switch.entry.js +7 -3
  649. package/dist/esm/ic-switch.entry.js.map +1 -1
  650. package/dist/esm/ic-tab-context.entry.js +78 -130
  651. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  652. package/dist/esm/ic-tab-group.entry.js +1 -1
  653. package/dist/esm/ic-tab-panel.entry.js +5 -13
  654. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  655. package/dist/esm/ic-tab.entry.js +16 -14
  656. package/dist/esm/ic-tab.entry.js.map +1 -1
  657. package/dist/esm/ic-theme.entry.js +13 -22
  658. package/dist/esm/ic-theme.entry.js.map +1 -1
  659. package/dist/esm/ic-toast-region.entry.js +6 -0
  660. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  661. package/dist/esm/ic-toast.entry.js +21 -18
  662. package/dist/esm/ic-toast.entry.js.map +1 -1
  663. package/dist/esm/ic-toggle-button-group.entry.js +197 -0
  664. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -0
  665. package/dist/esm/ic-toggle-button.entry.js +93 -0
  666. package/dist/esm/ic-toggle-button.entry.js.map +1 -0
  667. package/dist/esm/ic-top-navigation.entry.js +60 -82
  668. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  669. package/dist/esm/ic-tree-item.entry.js +249 -0
  670. package/dist/esm/ic-tree-item.entry.js.map +1 -0
  671. package/dist/esm/ic-tree-view.entry.js +211 -0
  672. package/dist/esm/ic-tree-view.entry.js.map +1 -0
  673. package/dist/esm/ic-typography.entry.js +52 -15
  674. package/dist/esm/ic-typography.entry.js.map +1 -1
  675. package/dist/esm/index-93509377.js +48 -12
  676. package/dist/esm/loader.js +1 -1
  677. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +71 -0
  678. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.stories.d.ts +82 -0
  679. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.types.d.ts +1 -0
  680. package/dist/types/components/ic-data-table/ic-data-table.d.ts +218 -19
  681. package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +239 -0
  682. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +43 -0
  683. package/dist/types/components/ic-data-table/story-data.d.ts +492 -2
  684. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
  685. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.d.ts +47 -0
  686. package/dist/types/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts +1 -0
  687. package/dist/types/components/ic-date-input/ic-date-input.d.ts +264 -0
  688. package/dist/types/components/ic-date-input/ic-date-input.stories.d.ts +124 -0
  689. package/dist/types/components/ic-date-input/story-data.d.ts +1 -0
  690. package/dist/types/components/ic-date-input/test/helpers/ic-date-input.d.ts +23 -0
  691. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +262 -0
  692. package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +153 -0
  693. package/dist/types/components/ic-date-picker/ic-day-button.d.ts +16 -0
  694. package/dist/types/components/ic-date-picker/ic-month-picker.d.ts +14 -0
  695. package/dist/types/components/ic-date-picker/ic-year-picker.d.ts +16 -0
  696. package/dist/types/components/ic-date-picker/story-data.d.ts +24 -0
  697. package/dist/types/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.d.ts +1 -0
  698. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +218 -0
  699. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +65 -23
  700. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.stories.d.ts +106 -0
  701. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +4 -0
  702. package/dist/types/components/ic-select-with-multi/ic-select-multi.stories.d.ts +106 -0
  703. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +289 -0
  704. package/dist/types/components/ic-select-with-multi/story-data.d.ts +32 -0
  705. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +101 -0
  706. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +51 -0
  707. package/dist/types/components/ic-tree-view/ic-tree-view.stories.d.ts +99 -0
  708. package/dist/types/components.d.ts +1711 -127
  709. package/dist/types/interface.d.ts +1 -0
  710. package/dist/types/utils/constants.d.ts +38 -0
  711. package/dist/types/utils/date-helpers.d.ts +22 -0
  712. package/dist/types/utils/helpers.d.ts +144 -2
  713. package/dist/types/utils/types.d.ts +126 -0
  714. package/hydrate/index.js +18298 -9132
  715. package/package.json +27 -17
  716. package/dist/cjs/helpers-bbe55215.js.map +0 -1
  717. package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
  718. package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
  719. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +0 -1
  720. package/dist/cjs/ic-input-label_2.cjs.entry.js +0 -86
  721. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +0 -1
  722. package/dist/cjs/ic-pagination-bar.cjs.entry.js +0 -285
  723. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
  724. package/dist/collection/components/ic-pagination/ic-pagination.types.js +0 -2
  725. package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +0 -1
  726. package/dist/core/p-0083465b.entry.js +0 -2
  727. package/dist/core/p-0083465b.entry.js.map +0 -1
  728. package/dist/core/p-03487f12.entry.js +0 -2
  729. package/dist/core/p-03487f12.entry.js.map +0 -1
  730. package/dist/core/p-03f8fa1a.entry.js +0 -2
  731. package/dist/core/p-03f8fa1a.entry.js.map +0 -1
  732. package/dist/core/p-0c18b6a0.entry.js +0 -2
  733. package/dist/core/p-0c18b6a0.entry.js.map +0 -1
  734. package/dist/core/p-1bc034aa.entry.js +0 -2
  735. package/dist/core/p-1bc034aa.entry.js.map +0 -1
  736. package/dist/core/p-20a76d1d.entry.js +0 -2
  737. package/dist/core/p-20a76d1d.entry.js.map +0 -1
  738. package/dist/core/p-24945ee5.entry.js.map +0 -1
  739. package/dist/core/p-2dc35696.entry.js +0 -2
  740. package/dist/core/p-2dc35696.entry.js.map +0 -1
  741. package/dist/core/p-2e9e8e7c.entry.js.map +0 -1
  742. package/dist/core/p-3ee25a6d.entry.js +0 -2
  743. package/dist/core/p-3ee25a6d.entry.js.map +0 -1
  744. package/dist/core/p-41aa0ed3.entry.js.map +0 -1
  745. package/dist/core/p-4314aa0e.entry.js +0 -2
  746. package/dist/core/p-4314aa0e.entry.js.map +0 -1
  747. package/dist/core/p-4409f656.entry.js.map +0 -1
  748. package/dist/core/p-47abbd06.entry.js +0 -2
  749. package/dist/core/p-47abbd06.entry.js.map +0 -1
  750. package/dist/core/p-485823b6.entry.js +0 -2
  751. package/dist/core/p-485823b6.entry.js.map +0 -1
  752. package/dist/core/p-4ee59448.entry.js +0 -2
  753. package/dist/core/p-4ee59448.entry.js.map +0 -1
  754. package/dist/core/p-5157cfab.entry.js +0 -2
  755. package/dist/core/p-5157cfab.entry.js.map +0 -1
  756. package/dist/core/p-53083575.entry.js +0 -2
  757. package/dist/core/p-53083575.entry.js.map +0 -1
  758. package/dist/core/p-55d5541f.entry.js +0 -2
  759. package/dist/core/p-55d5541f.entry.js.map +0 -1
  760. package/dist/core/p-5bb32ee6.entry.js +0 -2
  761. package/dist/core/p-5bb32ee6.entry.js.map +0 -1
  762. package/dist/core/p-67eea079.entry.js +0 -2
  763. package/dist/core/p-67eea079.entry.js.map +0 -1
  764. package/dist/core/p-6bd0e984.entry.js +0 -2
  765. package/dist/core/p-6bd0e984.entry.js.map +0 -1
  766. package/dist/core/p-75bf6162.entry.js +0 -2
  767. package/dist/core/p-75bf6162.entry.js.map +0 -1
  768. package/dist/core/p-76959313.entry.js +0 -2
  769. package/dist/core/p-76959313.entry.js.map +0 -1
  770. package/dist/core/p-7de813a3.entry.js +0 -2
  771. package/dist/core/p-7de813a3.entry.js.map +0 -1
  772. package/dist/core/p-7eae5f70.entry.js +0 -2
  773. package/dist/core/p-7eae5f70.entry.js.map +0 -1
  774. package/dist/core/p-85508347.entry.js +0 -2
  775. package/dist/core/p-85508347.entry.js.map +0 -1
  776. package/dist/core/p-8da152c4.entry.js +0 -2
  777. package/dist/core/p-8da152c4.entry.js.map +0 -1
  778. package/dist/core/p-8fd4ca0a.js +0 -2
  779. package/dist/core/p-8fd4ca0a.js.map +0 -1
  780. package/dist/core/p-939baa93.entry.js.map +0 -1
  781. package/dist/core/p-9777ebb1.entry.js +0 -2
  782. package/dist/core/p-9777ebb1.entry.js.map +0 -1
  783. package/dist/core/p-9c27b73e.entry.js +0 -2
  784. package/dist/core/p-9c27b73e.entry.js.map +0 -1
  785. package/dist/core/p-9fa6844f.entry.js +0 -2
  786. package/dist/core/p-9fa6844f.entry.js.map +0 -1
  787. package/dist/core/p-9fdd7d73.entry.js +0 -2
  788. package/dist/core/p-9fdd7d73.entry.js.map +0 -1
  789. package/dist/core/p-a3ab9f4c.entry.js +0 -2
  790. package/dist/core/p-a3ab9f4c.entry.js.map +0 -1
  791. package/dist/core/p-a51e5c7c.entry.js +0 -2
  792. package/dist/core/p-a51e5c7c.entry.js.map +0 -1
  793. package/dist/core/p-a7481232.entry.js +0 -2
  794. package/dist/core/p-a7481232.entry.js.map +0 -1
  795. package/dist/core/p-ab9f8a3f.entry.js +0 -2
  796. package/dist/core/p-ab9f8a3f.entry.js.map +0 -1
  797. package/dist/core/p-b2aa3d7c.entry.js +0 -2
  798. package/dist/core/p-b2aa3d7c.entry.js.map +0 -1
  799. package/dist/core/p-b5cf6d65.entry.js +0 -2
  800. package/dist/core/p-b5cf6d65.entry.js.map +0 -1
  801. package/dist/core/p-baf81f30.entry.js.map +0 -1
  802. package/dist/core/p-bc187bb5.entry.js +0 -2
  803. package/dist/core/p-bc187bb5.entry.js.map +0 -1
  804. package/dist/core/p-bd9cecce.entry.js +0 -2
  805. package/dist/core/p-bd9cecce.entry.js.map +0 -1
  806. package/dist/core/p-be980606.entry.js +0 -2
  807. package/dist/core/p-be980606.entry.js.map +0 -1
  808. package/dist/core/p-c1256810.entry.js +0 -2
  809. package/dist/core/p-c1256810.entry.js.map +0 -1
  810. package/dist/core/p-d76cfa5a.entry.js +0 -2
  811. package/dist/core/p-d76cfa5a.entry.js.map +0 -1
  812. package/dist/core/p-e189f1d0.entry.js +0 -2
  813. package/dist/core/p-e189f1d0.entry.js.map +0 -1
  814. package/dist/core/p-e9e145aa.entry.js +0 -2
  815. package/dist/core/p-e9e145aa.entry.js.map +0 -1
  816. package/dist/core/p-f0e9a83f.entry.js +0 -2
  817. package/dist/core/p-f0e9a83f.entry.js.map +0 -1
  818. package/dist/core/p-f23d2102.entry.js +0 -2
  819. package/dist/core/p-f23d2102.entry.js.map +0 -1
  820. package/dist/core/p-f87e8411.entry.js +0 -2
  821. package/dist/core/p-f87e8411.entry.js.map +0 -1
  822. package/dist/esm/helpers-268c2b7f.js.map +0 -1
  823. package/dist/esm/ic-empty-state.entry.js.map +0 -1
  824. package/dist/esm/ic-input-component-container_3.entry.js.map +0 -1
  825. package/dist/esm/ic-input-label_2.entry.js +0 -81
  826. package/dist/esm/ic-input-label_2.entry.js.map +0 -1
  827. package/dist/esm/ic-pagination-bar.entry.js +0 -281
  828. package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
  829. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +0 -6
  830. /package/dist/core/{p-b97dc365.entry.js.map → p-487fd924.entry.js.map} +0 -0
  831. /package/dist/core/{p-d77960f6.entry.js.map → p-656378ba.entry.js.map} +0 -0
  832. /package/dist/core/{p-3d618bc2.entry.js.map → p-d1045cd5.entry.js.map} +0 -0
@@ -0,0 +1,1057 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Menu } from "../../ic-menu";
3
+ import { IcInputComponentContainer } from "@ukic/web-components/dist/components/ic-input-component-container";
4
+ import { testKeyboardEvent as keyboardEvent } from "../../../../testspec.setup";
5
+ import { h } from "@stencil/core";
6
+ import * as helpers from "@ukic/web-components/dist/types/utils/helpers";
7
+ // These tests still use 'ic-select' and not 'ic-select-with-multi'
8
+ // It does not matter as unit tests in the canary branch do not run anyway
9
+ // And it saves converting them back when the multi-select is merged into the main branch
10
+ // (Check the original multi-select branch, i.e. where the changes were added straight to the web-components folder, to see the tests working)
11
+ const menuOptions = [
12
+ { label: "Espresso", value: "espresso" },
13
+ { label: "Double Espresso", value: "doubleespresso" },
14
+ { label: "Flat White", value: "flatwhite" },
15
+ {
16
+ label: "Cappuccino",
17
+ value: "cappuccino",
18
+ description: "with chocolate is best!",
19
+ },
20
+ { label: "Americano", value: "americano" },
21
+ { label: "Ameno", value: "ameno" },
22
+ {
23
+ label: "Tea",
24
+ value: "tea",
25
+ children: [{ label: "green", value: "green" }],
26
+ },
27
+ {
28
+ label: "Aicano",
29
+ value: "acano",
30
+ icon: `<svg aria-labelledby="warning-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000"><g id="warning"><path id="Vector" d="M4.47 20.5037H19.53C21.07 20.5037 22.03 18.8337 21.26 17.5037L13.73 4.49375C12.96 3.16375 11.04 3.16375 10.27 4.49375L2.74 17.5037C1.97 18.8337 2.93 20.5037 4.47 20.5037ZM12 13.5037C11.45 13.5037 11 13.0537 11 12.5037V10.5037C11 9.95375 11.45 9.50375 12 9.50375C12.55 9.50375 13 9.95375 13 10.5037V12.5037C13 13.0537 12.55 13.5037 12 13.5037ZM13 17.5037H11V15.5037H13V17.5037Z" /></g></svg>`,
31
+ },
32
+ {
33
+ label: "Mocha",
34
+ value: "mocha",
35
+ element: {
36
+ component: `<ic-status-tag label="Neutral status"></ic-status-tag>`,
37
+ ariaLabel: "Neutral status tag",
38
+ },
39
+ },
40
+ ];
41
+ const menuIdEspresso = "menu-id-espresso";
42
+ const menuIdMocha = "menu-id-mocha";
43
+ const IcSearchBar = "IC-SEARCH-BAR";
44
+ const createMenu = () => {
45
+ // create necessary elements before the page is created
46
+ const div = window.document.createElement("div");
47
+ const input = window.document.createElement("input");
48
+ return newSpecPage({
49
+ components: [Menu, IcInputComponentContainer],
50
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: div, value: menuOptions[0].value, parentEl: div })),
51
+ });
52
+ };
53
+ beforeAll(() => {
54
+ jest.spyOn(console, "warn").mockImplementation(jest.fn());
55
+ });
56
+ describe("ic-menu in isolation", () => {
57
+ it("should render", async () => {
58
+ const page = await createMenu();
59
+ expect(page).toMatchSnapshot();
60
+ });
61
+ it("should set open prop to true by default", async () => {
62
+ const page = await createMenu();
63
+ expect(page.root.open).toBe(true);
64
+ });
65
+ it("should test ungroupedOptionsSet emitter", async () => {
66
+ const page = await createMenu();
67
+ const eventSpy = jest.fn();
68
+ page.root.addEventListener("ungroupedOptionsSet", eventSpy);
69
+ page.root.options = [];
70
+ await page.waitForChanges();
71
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
72
+ detail: expect.objectContaining({
73
+ options: [],
74
+ }),
75
+ }));
76
+ });
77
+ it("should test menuOptionSelect emitter", async () => {
78
+ const page = await createMenu();
79
+ const eventSpy = jest.fn();
80
+ page.root.addEventListener("menuOptionSelect", eventSpy);
81
+ await page.waitForChanges();
82
+ page.rootInstance.setInputValue(2);
83
+ await page.waitForChanges();
84
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
85
+ detail: expect.objectContaining({
86
+ value: "flatwhite",
87
+ }),
88
+ }));
89
+ });
90
+ it("should test menuStateChange emitter", async () => {
91
+ const page = await createMenu();
92
+ const eventSpy = jest.fn();
93
+ page.root.addEventListener("menuStateChange", eventSpy);
94
+ await page.waitForChanges();
95
+ const click = new MouseEvent("click", {
96
+ bubbles: true,
97
+ cancelable: true,
98
+ });
99
+ page.rootInstance.arrowBehaviour(click);
100
+ await page.waitForChanges();
101
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
102
+ detail: expect.objectContaining({
103
+ open: true,
104
+ }),
105
+ }));
106
+ });
107
+ it("should test menuOptionId emitter", async () => {
108
+ const page = await createMenu();
109
+ const eventSpy = jest.fn();
110
+ page.root.addEventListener("menuOptionId", eventSpy);
111
+ await page.waitForChanges();
112
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
113
+ await page.waitForChanges();
114
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
115
+ detail: expect.objectContaining({
116
+ optionId: menuIdEspresso,
117
+ }),
118
+ }));
119
+ });
120
+ it("should test menuKeyPress emitter", async () => {
121
+ const page = await createMenu();
122
+ const eventSpy = jest.fn();
123
+ page.root.addEventListener("menuKeyPress", eventSpy);
124
+ await page.waitForChanges();
125
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Home"));
126
+ await page.waitForChanges();
127
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
128
+ detail: expect.objectContaining({
129
+ isNavKey: true,
130
+ key: "Home",
131
+ }),
132
+ }));
133
+ });
134
+ it("should test setNextOptionValue function", async () => {
135
+ const page = await createMenu();
136
+ const eventSpy = jest.fn();
137
+ page.root.addEventListener("menuOptionSelect", eventSpy);
138
+ page.rootInstance.setNextOptionValue(15);
139
+ await page.waitForChanges();
140
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
141
+ detail: expect.objectContaining({
142
+ value: "espresso",
143
+ }),
144
+ }));
145
+ });
146
+ it("should test setPreviousOptionValue function", async () => {
147
+ const page = await createMenu();
148
+ const eventSpy = jest.fn();
149
+ page.root.addEventListener("menuOptionSelect", eventSpy);
150
+ await page.waitForChanges();
151
+ page.rootInstance.setPreviousOptionValue(4);
152
+ await page.waitForChanges();
153
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
154
+ detail: expect.objectContaining({
155
+ value: "cappuccino",
156
+ }),
157
+ }));
158
+ });
159
+ it("should test handleClickOpen function", async () => {
160
+ const page = await createMenu();
161
+ const eventSpy = jest.fn();
162
+ page.root.addEventListener("menuStateChange", eventSpy);
163
+ page.root.open = false;
164
+ await page.waitForChanges();
165
+ await page.rootInstance.handleClickOpen();
166
+ await page.waitForChanges();
167
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
168
+ detail: expect.objectContaining({
169
+ open: true,
170
+ }),
171
+ }));
172
+ });
173
+ it("should test handleKeyboardOpen function", async () => {
174
+ const page = await createMenu();
175
+ page.root.open = false;
176
+ const eventSpy = jest.fn();
177
+ page.root.addEventListener("menuStateChange", eventSpy);
178
+ page.root.addEventListener("menuOptionId", eventSpy);
179
+ await page.waitForChanges();
180
+ await page.rootInstance.handleKeyboardOpen(keyboardEvent("ArrowDown"));
181
+ await page.waitForChanges();
182
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
183
+ detail: expect.objectContaining({
184
+ open: true,
185
+ }),
186
+ }));
187
+ page.root.open = false;
188
+ page.root.activationType = "manual";
189
+ await page.waitForChanges();
190
+ await page.rootInstance.handleKeyboardOpen(keyboardEvent("ArrowDown"));
191
+ await page.waitForChanges();
192
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
193
+ detail: expect.objectContaining({
194
+ optionId: menuIdEspresso,
195
+ }),
196
+ }));
197
+ });
198
+ it("should test autoSetInputValueKeyboardOpen function", async () => {
199
+ const page = await createMenu();
200
+ const eventSpy = jest.fn();
201
+ const inputEl = page.rootInstance.inputEl;
202
+ page.root.addEventListener("menuOptionSelect", eventSpy);
203
+ page.root.addEventListener("menuStateChange", eventSpy);
204
+ inputEl.addEventListener("focus", eventSpy);
205
+ page.root.open = false;
206
+ await page.waitForChanges();
207
+ await page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
208
+ await page.waitForChanges();
209
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
210
+ detail: expect.objectContaining({
211
+ optionId: menuIdMocha,
212
+ }),
213
+ }));
214
+ page.rootInstance.open = false;
215
+ await page.waitForChanges();
216
+ await page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("Enter"));
217
+ await page.waitForChanges();
218
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
219
+ detail: expect.objectContaining({
220
+ open: true,
221
+ focusInput: undefined,
222
+ }),
223
+ }));
224
+ page.rootInstance.open = false;
225
+ await page.waitForChanges();
226
+ await page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent(" "));
227
+ await page.waitForChanges();
228
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
229
+ detail: expect.objectContaining({
230
+ open: true,
231
+ focusInput: undefined,
232
+ }),
233
+ }));
234
+ });
235
+ it("should test autoSetInputValueKeyboardOpen function with character keys", async () => {
236
+ const page = await createMenu();
237
+ page.root.options = menuOptions;
238
+ await page.waitForChanges();
239
+ page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("e"));
240
+ page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("s"));
241
+ await page.waitForChanges();
242
+ expect(page.root.value).toBe("espresso");
243
+ });
244
+ it("should test manualSetInputValueKeyboardOpen function", async () => {
245
+ const searchBar = window.document.createElement(IcSearchBar);
246
+ const input = window.document.createElement("input");
247
+ const searchMenuOptions = JSON.parse(JSON.stringify(menuOptions));
248
+ searchMenuOptions[3].disabled = true;
249
+ searchBar.setFocus = jest.fn();
250
+ const page = await newSpecPage({
251
+ components: [Menu, IcInputComponentContainer],
252
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: searchMenuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchBar, value: searchMenuOptions[0].value, parentEl: searchBar })),
253
+ });
254
+ const eventSpy = jest.fn();
255
+ page.root.addEventListener("menuOptionId", eventSpy);
256
+ page.root.addEventListener("menuOptionSelect", eventSpy);
257
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
258
+ await page.waitForChanges();
259
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
260
+ detail: expect.objectContaining({
261
+ optionId: menuIdMocha,
262
+ }),
263
+ }));
264
+ page.rootInstance.setHighlightedOption(3);
265
+ await page.waitForChanges();
266
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
267
+ await page.waitForChanges();
268
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
269
+ detail: expect.objectContaining({
270
+ optionId: "menu-id-flatwhite",
271
+ }),
272
+ }));
273
+ page.rootInstance.setHighlightedOption(0);
274
+ await page.waitForChanges();
275
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
276
+ await page.waitForChanges();
277
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
278
+ detail: expect.objectContaining({
279
+ optionId: "menu-id-doubleespresso",
280
+ }),
281
+ }));
282
+ page.rootInstance.setHighlightedOption(8);
283
+ await page.waitForChanges();
284
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
285
+ await page.waitForChanges();
286
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
287
+ detail: expect.objectContaining({
288
+ optionId: menuIdEspresso,
289
+ }),
290
+ }));
291
+ page.rootInstance.setHighlightedOption(2);
292
+ await page.waitForChanges();
293
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
294
+ await page.waitForChanges();
295
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
296
+ detail: expect.objectContaining({
297
+ value: "flatwhite",
298
+ }),
299
+ }));
300
+ page.rootInstance.setHighlightedOption(2);
301
+ await page.waitForChanges();
302
+ const eventSpy2 = jest.fn();
303
+ page.root.addEventListener("menuOptionId", eventSpy2);
304
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
305
+ await page.waitForChanges();
306
+ expect(eventSpy2).toHaveBeenCalledWith(expect.objectContaining({
307
+ detail: expect.objectContaining({
308
+ optionId: "menu-id-cappuccino",
309
+ }),
310
+ }));
311
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
312
+ await page.waitForChanges();
313
+ expect(page.rootInstance.disabledOptionSelected).toBe(true);
314
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Escape"));
315
+ await page.waitForChanges();
316
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
317
+ detail: expect.objectContaining({
318
+ optionId: undefined,
319
+ }),
320
+ }));
321
+ page.rootInstance.preventIncorrectTabOrder = false;
322
+ await page.waitForChanges();
323
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
324
+ await page.waitForChanges();
325
+ expect(page.rootInstance.preventIncorrectTabOrder).toBe(true);
326
+ page.rootInstance.preventIncorrectTabOrder = false;
327
+ await page.waitForChanges();
328
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Tab"));
329
+ await page.waitForChanges();
330
+ expect(page.rootInstance.preventIncorrectTabOrder).toBe(true);
331
+ page.rootInstance.preventIncorrectTabOrder = false;
332
+ page.rootInstance.isSearchBar = true;
333
+ page.rootInstance.setHighlightedOption(4);
334
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
335
+ await page.waitForChanges();
336
+ expect(page.rootInstance.optionHighlighted).toBe("espresso");
337
+ page.rootInstance.setHighlightedOption(6);
338
+ await page.waitForChanges();
339
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("KeyF"));
340
+ await page.waitForChanges();
341
+ expect(page.rootInstance.optionHighlighted).toBe("espresso");
342
+ page.rootInstance.setHighlightedOption(2);
343
+ await page.waitForChanges();
344
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Home"));
345
+ await page.waitForChanges();
346
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
347
+ detail: expect.objectContaining({
348
+ optionId: menuIdEspresso,
349
+ }),
350
+ }));
351
+ await page.waitForChanges();
352
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("End"));
353
+ await page.waitForChanges();
354
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
355
+ detail: expect.objectContaining({
356
+ optionId: menuIdMocha,
357
+ }),
358
+ }));
359
+ });
360
+ it("should test manualSetInputValueKeyboardOpen function when searchable select", async () => {
361
+ const searchableSelect = window.document.createElement("IC-SELECT");
362
+ const input = window.document.createElement("input");
363
+ searchableSelect.setFocus = jest.fn();
364
+ searchableSelect.searchable = true;
365
+ const page = await newSpecPage({
366
+ components: [Menu, IcInputComponentContainer],
367
+ 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 })),
368
+ });
369
+ page.rootInstance.isSearchableSelect = true;
370
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
371
+ await page.waitForChanges();
372
+ expect(searchableSelect.setFocus).toHaveBeenCalled();
373
+ });
374
+ it("should test manualSetInputValueKeyboardOpen function when searchbar", async () => {
375
+ const select = window.document.createElement("IC-SELECT");
376
+ const input = window.document.createElement("input");
377
+ select.setFocus = jest.fn();
378
+ const page = await newSpecPage({
379
+ components: [Menu, IcInputComponentContainer],
380
+ 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 })),
381
+ });
382
+ page.rootInstance.isSearchBar = true;
383
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
384
+ await page.waitForChanges();
385
+ expect(select.setFocus).toHaveBeenCalled();
386
+ });
387
+ it("should test manualSetInputValueKeyboardOpen function when default parameter passed", async () => {
388
+ const select = window.document.createElement("IC-SELECT");
389
+ const input = window.document.createElement("input");
390
+ select.setFocus = jest.fn();
391
+ const page = await newSpecPage({
392
+ components: [Menu, IcInputComponentContainer],
393
+ 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 })),
394
+ });
395
+ page.rootInstance.isSearchBar = false;
396
+ page.rootInstance.isSearchableSelect = true;
397
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("KeyR"));
398
+ await page.waitForChanges();
399
+ expect(page.rootInstance.value).toBe(menuOptions[0].value);
400
+ });
401
+ it("should test manualSetInputValueKeyboardOpen function when multi-select", async () => {
402
+ const multiSelect = window.document.createElement("IC-SELECT");
403
+ const input = window.document.createElement("input");
404
+ const page = await newSpecPage({
405
+ components: [Menu, IcInputComponentContainer],
406
+ 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 })),
407
+ });
408
+ jest
409
+ .spyOn(page.rootInstance, "selectHighlightedOption")
410
+ .mockImplementation();
411
+ jest
412
+ .spyOn(page.rootInstance, "getMenuOptions")
413
+ .mockImplementation(() => menuOptions);
414
+ page.rootInstance.isMultiSelect = true;
415
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent(" "));
416
+ await page.waitForChanges();
417
+ expect(page.rootInstance.selectHighlightedOption).toHaveBeenCalledWith({
418
+ id: "key-id",
419
+ }, menuOptions, -1);
420
+ jest.spyOn(page.rootInstance, "setHighlightedOption").mockImplementation();
421
+ page.rootInstance.multiOptionClicked = menuOptions[0].value;
422
+ await page.waitForChanges();
423
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
424
+ await page.waitForChanges();
425
+ expect(page.rootInstance.setHighlightedOption).toHaveBeenCalledWith(0);
426
+ expect(page.rootInstance.multiOptionClicked).toBe(null);
427
+ page.rootInstance.multiOptionClicked = menuOptions[0].value;
428
+ await page.waitForChanges();
429
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
430
+ await page.waitForChanges();
431
+ expect(page.rootInstance.setHighlightedOption).toHaveBeenCalledWith(0);
432
+ expect(page.rootInstance.multiOptionClicked).toBe(null);
433
+ jest.spyOn(page.rootInstance, "emitSelectAll").mockImplementation();
434
+ jest.spyOn(helpers, "isMacDevice").mockImplementation(() => true);
435
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
436
+ key: "a",
437
+ preventDefault: () => null,
438
+ stopImmediatePropagation: () => null,
439
+ metaKey: true,
440
+ target: {
441
+ id: "key-id",
442
+ },
443
+ });
444
+ await page.waitForChanges();
445
+ expect(page.rootInstance.emitSelectAll).toHaveBeenCalled();
446
+ jest.spyOn(helpers, "isMacDevice").mockImplementation(() => false);
447
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
448
+ key: "a",
449
+ preventDefault: () => null,
450
+ stopImmediatePropagation: () => null,
451
+ ctrlKey: true,
452
+ target: {
453
+ id: "key-id",
454
+ },
455
+ });
456
+ await page.waitForChanges();
457
+ expect(page.rootInstance.emitSelectAll).toHaveBeenCalledTimes(2);
458
+ page.rootInstance.optionHighlighted = "doubleespresso";
459
+ page.rootInstance.multiOptionClicked = null;
460
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
461
+ key: "ArrowDown",
462
+ preventDefault: () => null,
463
+ stopImmediatePropagation: () => null,
464
+ shiftKey: true,
465
+ target: {
466
+ id: "key-id",
467
+ },
468
+ });
469
+ await page.waitForChanges();
470
+ expect(page.rootInstance.selectHighlightedOption).toHaveBeenCalledWith({
471
+ id: "key-id",
472
+ }, menuOptions, 1);
473
+ const eventSpy = jest.fn();
474
+ page.rootInstance.selectAllButton.addEventListener("focus", eventSpy);
475
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Tab"));
476
+ await page.waitForChanges();
477
+ expect(eventSpy).toHaveBeenCalled();
478
+ expect(page.rootInstance.menu.tabIndex).toBe(-1);
479
+ expect(page.rootInstance.preventClickOpen).toBe(true);
480
+ expect(page.rootInstance.optionHighlighted).toBe(undefined);
481
+ });
482
+ it("should test manualSetInputValueKeyboardOpen function when select on enter", async () => {
483
+ const select = window.document.createElement("IC-SELECT");
484
+ const input = window.document.createElement("input");
485
+ select.selectOnEnter = true;
486
+ const page = await newSpecPage({
487
+ components: [Menu, IcInputComponentContainer],
488
+ 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 })),
489
+ });
490
+ const eventSpy = jest.fn();
491
+ page.root.addEventListener("menuOptionSelect", eventSpy);
492
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
493
+ await page.waitForChanges();
494
+ expect(eventSpy).not.toHaveBeenCalled();
495
+ page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
496
+ await page.waitForChanges();
497
+ expect(eventSpy).toHaveBeenCalled();
498
+ });
499
+ it("should test setInputValue function when default parameter passed", async () => {
500
+ const select = window.document.createElement("IC-SELECT");
501
+ const input = window.document.createElement("input");
502
+ select.setFocus = jest.fn();
503
+ const page = await newSpecPage({
504
+ components: [Menu, IcInputComponentContainer],
505
+ 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 })),
506
+ });
507
+ page.rootInstance.hasTimedOut = true;
508
+ page.rootInstance.setInputValue(35);
509
+ await page.waitForChanges();
510
+ expect(select.setFocus).toHaveBeenCalled();
511
+ });
512
+ it("should test handleSubmitSearch function", async () => {
513
+ const page = await createMenu();
514
+ const eventSpy = jest.fn();
515
+ page.root.addEventListener("menuOptionSelect", eventSpy);
516
+ page.rootInstance.optionHighlighted = "americano";
517
+ await page.waitForChanges();
518
+ const event = new CustomEvent("icSubmitSearch", {
519
+ detail: {
520
+ value: "americano",
521
+ },
522
+ });
523
+ page.root.parentEl.dispatchEvent(event);
524
+ await page.waitForChanges();
525
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Enter"));
526
+ await page.waitForChanges();
527
+ expect(eventSpy).toHaveBeenCalled();
528
+ });
529
+ it("should test handleSetFirstOption function", async () => {
530
+ const page = await createMenu();
531
+ const eventSpy = jest.fn();
532
+ page.root.addEventListener("menuOptionSelect", eventSpy);
533
+ page.root.options = menuOptions;
534
+ await page.waitForChanges();
535
+ page.rootInstance.optionHighlighted = "americano";
536
+ await page.waitForChanges();
537
+ await page.rootInstance.handleSetFirstOption();
538
+ await page.waitForChanges();
539
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Enter"));
540
+ await page.waitForChanges();
541
+ expect(page.rootInstance.optionHighlighted).toBe("espresso");
542
+ });
543
+ it("should test handleClearListener function", async () => {
544
+ const page = await createMenu();
545
+ const eventSpy = jest.fn();
546
+ page.root.addEventListener("menuOptionSelect", eventSpy);
547
+ page.rootInstance.optionHighlighted = "americano";
548
+ await page.waitForChanges();
549
+ await page.rootInstance.handleClearListener();
550
+ await page.waitForChanges();
551
+ expect(page.rootInstance.optionHighlighted).toBe("");
552
+ });
553
+ it("should test handleOptionClick function", async () => {
554
+ const page = await createMenu();
555
+ const eventSpy = jest.fn();
556
+ page.root.addEventListener("menuOptionSelect", eventSpy);
557
+ const el = page.rootInstance.menu.childNodes[1];
558
+ const event = { target: el, shiftKey: false };
559
+ await page.waitForChanges();
560
+ page.rootInstance.handleOptionClick(event);
561
+ await page.waitForChanges();
562
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
563
+ detail: {
564
+ value: "doubleespresso",
565
+ label: "Double Espresso",
566
+ },
567
+ }));
568
+ page.rootInstance.isMultiSelect = true;
569
+ await page.waitForChanges();
570
+ await page.rootInstance.handleOptionClick(event);
571
+ expect(page.rootInstance.multiOptionClicked).toBe("doubleespresso");
572
+ page.rootInstance.value = ["espresso", "flatwhite", "cappuccino"];
573
+ page.rootInstance.isMultiSelect = true;
574
+ page.rootInstance.multiOptionClicked = null;
575
+ event.shiftKey = true;
576
+ await page.waitForChanges();
577
+ await page.rootInstance.handleOptionClick(event);
578
+ expect(page.rootInstance.multiOptionClicked).toBe("doubleespresso");
579
+ });
580
+ it("should test handleBlur function", async () => {
581
+ const page = await createMenu();
582
+ const eventSpy = jest.fn();
583
+ const event = new FocusEvent("blur");
584
+ page.root.addEventListener("menuStateChange", eventSpy);
585
+ page.rootInstance.handleBlur(event);
586
+ await page.waitForChanges();
587
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
588
+ detail: {
589
+ open: false,
590
+ focusInput: false,
591
+ },
592
+ }));
593
+ const inputEl = page.root.inputEl;
594
+ const eventTwo = new FocusEvent("blur", { relatedTarget: inputEl });
595
+ page.rootInstance.handleBlur(eventTwo);
596
+ await page.waitForChanges();
597
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
598
+ detail: {
599
+ open: false,
600
+ focusInput: undefined,
601
+ },
602
+ }));
603
+ });
604
+ it("should test handleMouseDown function", async () => {
605
+ const page = await createMenu();
606
+ const eventSpy = jest.fn();
607
+ page.root.addEventListener("preventDefault", eventSpy);
608
+ const event = new Event("click");
609
+ event.preventDefault = eventSpy;
610
+ await page.waitForChanges();
611
+ page.rootInstance.handleMouseDown(event);
612
+ await page.waitForChanges();
613
+ expect(eventSpy).toHaveBeenCalled();
614
+ });
615
+ it("should test handleMenuKeyDown function", async () => {
616
+ const page = await createMenu();
617
+ const eventSpy = jest.fn();
618
+ page.root.addEventListener("menuOptionSelect", eventSpy);
619
+ page.rootInstance.handleMenuKeyDown(keyboardEvent("ArrowDown"));
620
+ await page.waitForChanges();
621
+ page.rootInstance.handleMenuKeyDown(keyboardEvent("ArrowDown"));
622
+ await page.waitForChanges();
623
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
624
+ detail: expect.objectContaining({
625
+ value: "doubleespresso",
626
+ }),
627
+ }));
628
+ });
629
+ it("should test searchMode=`query", async () => {
630
+ const page = await createMenu();
631
+ page.rootInstance.searchMode = "query";
632
+ await page.waitForChanges();
633
+ page.rootInstance.handleMenuKeyDown(keyboardEvent("F"));
634
+ expect(page.rootInstance.optionHighlighted).toBeUndefined;
635
+ });
636
+ it("should test handleMenuKeyDown function as searchableSelect", async () => {
637
+ const page = await createMenu();
638
+ page.rootInstance.activationType = "manual";
639
+ page.rootInstance.isSearchableSelect = true;
640
+ const eventSpy = jest.fn();
641
+ page.root.addEventListener("menuOptionId", eventSpy);
642
+ page.rootInstance.handleMenuKeyDown(keyboardEvent("ArrowDown"));
643
+ await page.waitForChanges();
644
+ expect(eventSpy).toHaveBeenCalled();
645
+ });
646
+ it("should test handleRetry function", async () => {
647
+ const page = await createMenu();
648
+ const eventSpy = jest.fn();
649
+ page.root.addEventListener("retryButtonClicked", eventSpy);
650
+ page.rootInstance.handleRetry();
651
+ await page.waitForChanges();
652
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
653
+ detail: expect.objectContaining({
654
+ value: "espresso",
655
+ }),
656
+ }));
657
+ });
658
+ it("should test handleRetryKeyDown function", async () => {
659
+ const page = await createMenu();
660
+ const eventSpy = jest.fn();
661
+ page.root.addEventListener("retryButtonClicked", eventSpy);
662
+ page.rootInstance.handleRetryKeyDown(keyboardEvent("Enter"));
663
+ await page.waitForChanges();
664
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
665
+ detail: expect.objectContaining({
666
+ value: "espresso",
667
+ keyPressed: "Enter",
668
+ }),
669
+ }));
670
+ });
671
+ it("should test autoSetValueOnMenuKeyDown - Shift - function", async () => {
672
+ const page = await createMenu();
673
+ const inputEl = page.rootInstance.inputEl;
674
+ const eventSpy = jest.fn();
675
+ page.root.addEventListener("menuOptionSelect", eventSpy);
676
+ inputEl.addEventListener("focus", eventSpy);
677
+ await page.waitForChanges();
678
+ await page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Shift"));
679
+ await page.waitForChanges();
680
+ expect(eventSpy).not.toHaveBeenCalled();
681
+ });
682
+ it("should test autoSetValueOnMenuKeyDown function", async () => {
683
+ const page = await createMenu();
684
+ const inputEl = page.rootInstance.inputEl;
685
+ const eventSpy = jest.fn();
686
+ page.root.addEventListener("menuOptionSelect", eventSpy);
687
+ inputEl.addEventListener("focus", eventSpy);
688
+ page.root.addEventListener("menuStateChange", eventSpy);
689
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("ArrowUp"));
690
+ await page.waitForChanges();
691
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
692
+ detail: expect.objectContaining({
693
+ value: "mocha",
694
+ }),
695
+ }));
696
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("End"));
697
+ await page.waitForChanges();
698
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
699
+ detail: expect.objectContaining({
700
+ value: "mocha",
701
+ }),
702
+ }));
703
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Backspace"));
704
+ await page.waitForChanges();
705
+ expect(eventSpy).toHaveBeenCalled();
706
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("d"));
707
+ await page.waitForChanges();
708
+ expect(eventSpy).toHaveBeenCalledTimes(4);
709
+ const preDef = jest.fn();
710
+ const spaceKey = {
711
+ key: ` `,
712
+ preventDefault: preDef,
713
+ shiftKey: false,
714
+ target: {
715
+ id: "key-id",
716
+ },
717
+ };
718
+ await page.rootInstance.autoSetValueOnMenuKeyDown(spaceKey);
719
+ await page.waitForChanges();
720
+ expect(spaceKey.preventDefault).toHaveBeenCalled();
721
+ page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Escape"));
722
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
723
+ detail: expect.objectContaining({
724
+ open: false,
725
+ focusInput: undefined,
726
+ }),
727
+ }));
728
+ });
729
+ it("should test handleMenukeyUp function", async () => {
730
+ const page = await createMenu();
731
+ page.rootInstance.preventClickOpen = true;
732
+ let key = keyboardEvent("Tab");
733
+ key.shiftKey = true;
734
+ await page.waitForChanges();
735
+ page.rootInstance.handleMenuKeyUp(key);
736
+ await page.waitForChanges();
737
+ expect(page.rootInstance.preventClickOpen).toBe(false);
738
+ page.rootInstance.disabledOptionSelected = true;
739
+ key = keyboardEvent("Enter");
740
+ await page.waitForChanges();
741
+ page.rootInstance.handleMenuKeyUp(key);
742
+ await page.waitForChanges();
743
+ expect(page.rootInstance.disabledOptionSelected).toBe(false);
744
+ key = keyboardEvent("Shift");
745
+ await page.waitForChanges();
746
+ page.rootInstance.handleMenuKeyUp(key);
747
+ await page.waitForChanges();
748
+ expect(page.rootInstance.shiftPressed).toBe(false);
749
+ });
750
+ it("should test connectedCallback function", async () => {
751
+ const searchBar = window.document.createElement(IcSearchBar);
752
+ const input = window.document.createElement("input");
753
+ const page = await newSpecPage({
754
+ components: [Menu, IcInputComponentContainer],
755
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchBar, value: menuOptions[0].value, parentEl: searchBar })),
756
+ });
757
+ expect(page.rootInstance.optionHighlighted).toBe("espresso");
758
+ });
759
+ it("should test disconnectedCallback function", async () => {
760
+ const page = await createMenu();
761
+ await page.waitForChanges();
762
+ expect(page.rootInstance.parentEl.__listeners[1].type).toBe("icSubmitSearch");
763
+ page.rootInstance.disconnectedCallback();
764
+ await page.waitForChanges();
765
+ expect(page.rootInstance.parentEl.__listeners.length).toBe(0);
766
+ });
767
+ it("should test componentDidLoad function", async () => {
768
+ const searchBar = window.document.createElement(IcSearchBar);
769
+ const input = window.document.createElement("input");
770
+ searchBar.disableFilter = true;
771
+ const page = await newSpecPage({
772
+ components: [Menu, IcInputComponentContainer],
773
+ template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchBar, value: menuOptions[0].value, parentEl: searchBar })),
774
+ });
775
+ page.rootInstance.focusFromSearchKeypress = false;
776
+ page.rootInstance.componentDidLoad();
777
+ await page.waitForChanges();
778
+ expect(page.rootInstance.focusFromSearchKeypress).toBe(true);
779
+ });
780
+ it("should test getParentEl function", async () => {
781
+ const select = window.document.createElement("ic-select");
782
+ select.searchable = true;
783
+ select.setAttribute("searchable", "true");
784
+ const page = await createMenu();
785
+ page.rootInstance.getParentEl(select);
786
+ await page.waitForChanges();
787
+ expect(page.rootInstance.isSearchableSelect).toBe(true);
788
+ });
789
+ it("should test handleTimeoutBlur function", async () => {
790
+ const page = await createMenu();
791
+ const eventSpy = jest.fn();
792
+ page.root.addEventListener("timeoutBlur", eventSpy);
793
+ const event = new FocusEvent("blur");
794
+ page.rootInstance.handleTimeoutBlur(event);
795
+ await page.waitForChanges();
796
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
797
+ detail: expect.objectContaining({
798
+ ev: expect.objectContaining({
799
+ type: "blur",
800
+ }),
801
+ }),
802
+ }));
803
+ });
804
+ it("should test handleMenuChange function when multi-select", async () => {
805
+ const page = await createMenu();
806
+ page.rootInstance.optionHighlighted = "espresso";
807
+ page.rootInstance.isMultiSelect = true;
808
+ await page.waitForChanges();
809
+ expect(page.rootInstance.optionHighlighted).toBe("espresso");
810
+ await page.rootInstance.handleMenuChange(false);
811
+ await page.waitForChanges();
812
+ expect(page.rootInstance.optionHighlighted).toBe(undefined);
813
+ });
814
+ it("should test selectHighlightedOption function when multi-select", async () => {
815
+ const page = await createMenu();
816
+ page.rootInstance.open = false;
817
+ page.rootInstance.isMultiSelect = true;
818
+ jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
819
+ await page.waitForChanges();
820
+ await page.rootInstance.selectHighlightedOption({ target: "test-id" }, menuOptions, 0);
821
+ await page.waitForChanges();
822
+ expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(true);
823
+ });
824
+ it("should test selectHighlightedOption function when multi-select", async () => {
825
+ const page = await createMenu();
826
+ page.rootInstance.open = false;
827
+ page.rootInstance.isMultiSelect = true;
828
+ jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
829
+ await page.waitForChanges();
830
+ await page.rootInstance.selectHighlightedOption({ target: "test-id" }, menuOptions, 0);
831
+ await page.waitForChanges();
832
+ expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(true);
833
+ });
834
+ it("should test handleSelectAllClick function", async () => {
835
+ const page = await createMenu();
836
+ page.rootInstance.menu.tabIndex = -1;
837
+ const eventSpy = jest.fn();
838
+ page.rootInstance.menu.addEventListener("focus", eventSpy);
839
+ jest.spyOn(page.rootInstance, "emitSelectAll").mockImplementation();
840
+ await page.rootInstance.handleSelectAllClick();
841
+ expect(eventSpy).toHaveBeenCalled();
842
+ expect(page.rootInstance.emitSelectAll).toHaveBeenCalled();
843
+ });
844
+ it("should test handleSelectAllBlur function", async () => {
845
+ const multiSelect = window.document.createElement("IC-SELECT");
846
+ const input = window.document.createElement("input");
847
+ const page = await newSpecPage({
848
+ components: [Menu, IcInputComponentContainer],
849
+ 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 })),
850
+ });
851
+ jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
852
+ const option = await page.root.querySelector("li");
853
+ await page.rootInstance.handleSelectAllBlur({ relatedTarget: option });
854
+ await page.waitForChanges();
855
+ expect(page.rootInstance.handleMenuChange).not.toHaveBeenCalled();
856
+ await page.rootInstance.handleSelectAllBlur({ relatedTarget: input });
857
+ await page.waitForChanges();
858
+ expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(false, false);
859
+ });
860
+ it("should test handleSelectAllFocus function", async () => {
861
+ const page = await createMenu();
862
+ await page.rootInstance.handleSelectAllFocus();
863
+ expect(page.root).toMatchSnapshot();
864
+ });
865
+ it("should test emitSelectAll function", async () => {
866
+ const page = await createMenu();
867
+ const eventSpy = jest.fn();
868
+ page.root.addEventListener("menuOptionSelectAll", eventSpy);
869
+ await page.rootInstance.emitSelectAll();
870
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
871
+ detail: expect.objectContaining({
872
+ select: true,
873
+ }),
874
+ }));
875
+ page.rootInstance.value = ["espresso"];
876
+ await page.waitForChanges();
877
+ await page.rootInstance.emitSelectAll();
878
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
879
+ detail: expect.objectContaining({
880
+ select: true,
881
+ }),
882
+ }));
883
+ page.rootInstance.value = [
884
+ "espresso",
885
+ "doubleespresso",
886
+ "flatwhite",
887
+ "cappuccino",
888
+ "americano",
889
+ "ameno",
890
+ "green",
891
+ "acano",
892
+ "mocha",
893
+ ];
894
+ await page.waitForChanges();
895
+ await page.rootInstance.emitSelectAll();
896
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
897
+ detail: expect.objectContaining({
898
+ select: false,
899
+ }),
900
+ }));
901
+ });
902
+ it("should test handleSelectAllMouseDown", async () => {
903
+ const page = await createMenu();
904
+ const eventSpy = jest.fn();
905
+ page.root.addEventListener("preventDefault", eventSpy);
906
+ const event = new Event("click");
907
+ event.preventDefault = eventSpy;
908
+ await page.rootInstance.handleSelectAllMouseDown(event);
909
+ expect(eventSpy).toHaveBeenCalled();
910
+ });
911
+ it("tests deselection of options when pressing ArrowDown after Shift", async () => {
912
+ const multiSelect = window.document.createElement("IC-SELECT");
913
+ const input = window.document.createElement("input");
914
+ const page = await newSpecPage({
915
+ components: [Menu, IcInputComponentContainer],
916
+ 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 })),
917
+ });
918
+ page.rootInstance.isMultiSelect = true;
919
+ jest
920
+ .spyOn(page.rootInstance, "deselectSelectedOptions")
921
+ .mockImplementation();
922
+ page.rootInstance.value = [
923
+ "espresso",
924
+ "doubleespresso",
925
+ "flatwhite",
926
+ "cappuccino",
927
+ "americano",
928
+ "ameno",
929
+ "green",
930
+ "acano",
931
+ "mocha",
932
+ ];
933
+ await page.waitForChanges();
934
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
935
+ await page.waitForChanges();
936
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
937
+ await page.waitForChanges();
938
+ expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
939
+ -1, 0,
940
+ ]);
941
+ });
942
+ it("tests deselection of options when pressing ArrowUp after Shift", async () => {
943
+ const multiSelect = window.document.createElement("IC-SELECT");
944
+ const input = window.document.createElement("input");
945
+ const page = await newSpecPage({
946
+ components: [Menu, IcInputComponentContainer],
947
+ 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 })),
948
+ });
949
+ page.rootInstance.isMultiSelect = true;
950
+ jest
951
+ .spyOn(page.rootInstance, "deselectSelectedOptions")
952
+ .mockImplementation();
953
+ page.rootInstance.value = [
954
+ "espresso",
955
+ "doubleespresso",
956
+ "flatwhite",
957
+ "cappuccino",
958
+ "americano",
959
+ "ameno",
960
+ "green",
961
+ "acano",
962
+ "mocha",
963
+ ];
964
+ await page.waitForChanges();
965
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
966
+ await page.waitForChanges();
967
+ await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
968
+ await page.waitForChanges();
969
+ expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
970
+ -1, 8,
971
+ ]);
972
+ });
973
+ it("tests selection of options when pressing Home or End with Shift & Ctrl", async () => {
974
+ const multiSelect = window.document.createElement("IC-SELECT");
975
+ const input = window.document.createElement("input");
976
+ const page = await newSpecPage({
977
+ components: [Menu, IcInputComponentContainer],
978
+ 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 })),
979
+ });
980
+ page.rootInstance.isMultiSelect = true;
981
+ jest
982
+ .spyOn(page.rootInstance, "handleMultipleShiftSelect")
983
+ .mockImplementation();
984
+ page.rootInstance.value = [
985
+ "espresso",
986
+ "doubleespresso",
987
+ "flatwhite",
988
+ "cappuccino",
989
+ "americano",
990
+ "ameno",
991
+ "green",
992
+ "acano",
993
+ "mocha",
994
+ ];
995
+ await page.waitForChanges();
996
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
997
+ key: "End",
998
+ preventDefault: () => null,
999
+ stopImmediatePropagation: () => null,
1000
+ ctrlKey: true,
1001
+ shiftKey: true,
1002
+ target: {
1003
+ id: "key-id",
1004
+ },
1005
+ });
1006
+ expect(page.rootInstance.handleMultipleShiftSelect).toHaveBeenCalledWith(8);
1007
+ await page.rootInstance.manualSetInputValueKeyboardOpen({
1008
+ key: "Home",
1009
+ preventDefault: () => null,
1010
+ stopImmediatePropagation: () => null,
1011
+ ctrlKey: true,
1012
+ shiftKey: true,
1013
+ target: {
1014
+ id: "key-id",
1015
+ },
1016
+ });
1017
+ expect(page.rootInstance.handleMultipleShiftSelect).toHaveBeenCalledWith(0);
1018
+ });
1019
+ it("tests isOptionSelected", async () => {
1020
+ const multiSelect = window.document.createElement("IC-SELECT");
1021
+ const input = window.document.createElement("input");
1022
+ const page = await newSpecPage({
1023
+ components: [Menu, IcInputComponentContainer],
1024
+ 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 })),
1025
+ });
1026
+ page.rootInstance.value = ["espresso", "doubleespresso"];
1027
+ await page.waitForChanges();
1028
+ let isSelected = await page.rootInstance.isOptionSelected([1]);
1029
+ expect(isSelected).toBe(true);
1030
+ isSelected = await page.rootInstance.isOptionSelected([3]);
1031
+ expect(isSelected).toBe(false);
1032
+ page.rootInstance.value = "";
1033
+ await page.waitForChanges();
1034
+ isSelected = await page.rootInstance.isOptionSelected([0]);
1035
+ expect(isSelected).toBe(false);
1036
+ });
1037
+ it("tests handleMultipleShiftSelect with optional params using default values", async () => {
1038
+ const multiSelect = window.document.createElement("IC-SELECT");
1039
+ const input = window.document.createElement("input");
1040
+ const page = await newSpecPage({
1041
+ components: [Menu, IcInputComponentContainer],
1042
+ 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 })),
1043
+ });
1044
+ page.rootInstance.value = ["espresso", "doubleespresso", "flatwhite"];
1045
+ jest
1046
+ .spyOn(page.rootInstance, "deselectSelectedOptions")
1047
+ .mockImplementation();
1048
+ page.rootInstance.lastOptionSelected = 1;
1049
+ await page.waitForChanges();
1050
+ page.rootInstance.handleMultipleShiftSelect(3);
1051
+ await page.waitForChanges();
1052
+ expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
1053
+ 1, 2, 3,
1054
+ ]);
1055
+ });
1056
+ });
1057
+ //# sourceMappingURL=ic-menu.spec.js.map