@ukic/web-components 2.1.0-beta.14 → 2.1.0-beta.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (805) hide show
  1. package/dist/cjs/core.cjs.js +10 -3
  2. package/dist/cjs/core.cjs.js.map +1 -1
  3. package/dist/cjs/{helpers-2021e212.js → helpers-eb53c416.js} +25 -25
  4. package/dist/cjs/helpers-eb53c416.js.map +1 -0
  5. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  6. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  7. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +15 -15
  8. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-breadcrumb.cjs.entry.js +6 -5
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-button_3.cjs.entry.js +33 -36
  12. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-card.cjs.entry.js +4 -3
  14. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -2
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-checkbox.cjs.entry.js +7 -5
  18. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-chip.cjs.entry.js +5 -2
  20. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-dialog.cjs.entry.js +296 -0
  25. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  27. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  28. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-footer.cjs.entry.js +4 -4
  30. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +69 -27
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +3 -3
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-menu-item.cjs.entry.js +6 -4
  40. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js +50 -21
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -3
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -8
  47. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-page-header.cjs.entry.js +12 -15
  49. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-pagination-item.cjs.entry.js +6 -1
  51. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-pagination.cjs.entry.js +14 -2
  53. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-popover-menu.cjs.entry.js +7 -6
  55. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-radio-group.cjs.entry.js +16 -5
  57. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -11
  59. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-search-bar.cjs.entry.js +6 -3
  61. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-select.cjs.entry.js +35 -34
  64. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-side-navigation.cjs.entry.js +70 -57
  66. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  69. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-step.cjs.entry.js +3 -3
  71. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-switch.cjs.entry.js +4 -3
  74. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-tab-context.cjs.entry.js +8 -6
  76. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  78. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-tab-panel.cjs.entry.js +4 -2
  80. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-tab.cjs.entry.js +8 -2
  82. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-text-field.cjs.entry.js +9 -18
  84. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  86. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  87. package/dist/cjs/ic-toast.cjs.entry.js +2 -2
  88. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  89. package/dist/cjs/ic-typography.cjs.entry.js +96 -4
  90. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  91. package/dist/cjs/{index-a62312a7.js → index-014e3058.js} +222 -43
  92. package/dist/cjs/index-014e3058.js.map +1 -0
  93. package/dist/cjs/loader.cjs.js +4 -3
  94. package/dist/cjs/loader.cjs.js.map +1 -1
  95. package/dist/collection/collection-manifest.json +13 -12
  96. package/dist/collection/components/ic-alert/ic-alert.e2e.js +16 -0
  97. package/dist/collection/components/ic-alert/ic-alert.e2e.js.map +1 -0
  98. package/dist/collection/components/ic-alert/ic-alert.spec.js +182 -0
  99. package/dist/collection/components/ic-alert/ic-alert.spec.js.map +1 -0
  100. package/dist/collection/components/ic-back-to-top/ic-back-to-top.e2e.js +68 -0
  101. package/dist/collection/components/ic-back-to-top/ic-back-to-top.e2e.js.map +1 -0
  102. package/dist/collection/components/ic-back-to-top/ic-back-to-top.spec.js +123 -0
  103. package/dist/collection/components/ic-back-to-top/ic-back-to-top.spec.js.map +1 -0
  104. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -3
  105. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  106. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.spec.js +118 -0
  107. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.spec.js.map +1 -0
  108. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.e2e.js +41 -0
  109. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.e2e.js.map +1 -0
  110. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +13 -13
  111. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  112. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.spec.js +181 -0
  113. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.spec.js.map +1 -0
  114. package/dist/collection/components/ic-button/ic-button.e2e.js +173 -0
  115. package/dist/collection/components/ic-button/ic-button.e2e.js.map +1 -0
  116. package/dist/collection/components/ic-button/ic-button.js +4 -6
  117. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  118. package/dist/collection/components/ic-button/ic-button.spec.js +230 -0
  119. package/dist/collection/components/ic-button/ic-button.spec.js.map +1 -0
  120. package/dist/collection/components/ic-card/ic-card.css +3 -2
  121. package/dist/collection/components/ic-card/ic-card.e2e.js +23 -0
  122. package/dist/collection/components/ic-card/ic-card.e2e.js.map +1 -0
  123. package/dist/collection/components/ic-card/ic-card.js +2 -1
  124. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  125. package/dist/collection/components/ic-card/ic-card.spec.js +152 -0
  126. package/dist/collection/components/ic-card/ic-card.spec.js.map +1 -0
  127. package/dist/collection/components/ic-checkbox/ic-checkbox.js +6 -4
  128. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  129. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.e2e.js +201 -0
  130. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.e2e.js.map +1 -0
  131. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -1
  132. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  133. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.spec.js +175 -0
  134. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.spec.js.map +1 -0
  135. package/dist/collection/components/ic-chip/ic-chip.js +4 -1
  136. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  137. package/dist/collection/components/ic-chip/ic-chip.spec.js +110 -0
  138. package/dist/collection/components/ic-chip/ic-chip.spec.js.map +1 -0
  139. package/dist/collection/components/ic-classification-banner/ic-classification-banner.spec.js +140 -0
  140. package/dist/collection/components/ic-classification-banner/ic-classification-banner.spec.js.map +1 -0
  141. package/dist/collection/components/ic-data-entity/ic-data-entity.spec.js +161 -0
  142. package/dist/collection/components/ic-data-entity/ic-data-entity.spec.js.map +1 -0
  143. package/dist/collection/components/ic-data-row/ic-data-row.spec.js +185 -0
  144. package/dist/collection/components/ic-data-row/ic-data-row.spec.js.map +1 -0
  145. package/dist/collection/components/ic-dialog/ic-dialog.css +595 -0
  146. package/dist/collection/components/ic-dialog/ic-dialog.e2e.js +204 -0
  147. package/dist/collection/components/ic-dialog/ic-dialog.e2e.js.map +1 -0
  148. package/dist/collection/components/ic-dialog/ic-dialog.js +641 -0
  149. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -0
  150. package/dist/collection/components/ic-dialog/ic-dialog.spec.js +520 -0
  151. package/dist/collection/components/ic-dialog/ic-dialog.spec.js.map +1 -0
  152. package/dist/collection/components/ic-dialog/ic-dialog.test.a11y.js +28 -0
  153. package/dist/collection/components/ic-dialog/ic-dialog.test.a11y.js.map +1 -0
  154. package/dist/collection/components/ic-divider/ic-divider.spec.js +24 -0
  155. package/dist/collection/components/ic-divider/ic-divider.spec.js.map +1 -0
  156. package/dist/collection/components/ic-footer/ic-footer.css +2 -2
  157. package/dist/collection/components/ic-footer/ic-footer.e2e.js +50 -0
  158. package/dist/collection/components/ic-footer/ic-footer.e2e.js.map +1 -0
  159. package/dist/collection/components/ic-footer/ic-footer.js +1 -1
  160. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  161. package/dist/collection/components/ic-footer/ic-footer.spec.js +140 -0
  162. package/dist/collection/components/ic-footer/ic-footer.spec.js.map +1 -0
  163. package/dist/collection/components/ic-footer-link/ic-footer-link.spec.js +62 -0
  164. package/dist/collection/components/ic-footer-link/ic-footer-link.spec.js.map +1 -0
  165. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.spec.js +98 -0
  166. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.spec.js.map +1 -0
  167. package/dist/collection/components/ic-hero/ic-hero.spec.js +76 -0
  168. package/dist/collection/components/ic-hero/ic-hero.spec.js.map +1 -0
  169. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.spec.js +180 -0
  170. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.spec.js.map +1 -0
  171. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +32 -4
  172. package/dist/collection/components/ic-input-component-container/ic-input-component-container.spec.js +117 -0
  173. package/dist/collection/components/ic-input-component-container/ic-input-component-container.spec.js.map +1 -0
  174. package/dist/collection/components/ic-input-container/ic-input-container.spec.js +38 -0
  175. package/dist/collection/components/ic-input-container/ic-input-container.spec.js.map +1 -0
  176. package/dist/collection/components/ic-input-label/ic-input-label.spec.js +98 -0
  177. package/dist/collection/components/ic-input-label/ic-input-label.spec.js.map +1 -0
  178. package/dist/collection/components/ic-input-validation/ic-input-validation.css +0 -8
  179. package/dist/collection/components/ic-input-validation/ic-input-validation.spec.js +89 -0
  180. package/dist/collection/components/ic-input-validation/ic-input-validation.spec.js.map +1 -0
  181. package/dist/collection/components/ic-link/ic-link.spec.js +203 -0
  182. package/dist/collection/components/ic-link/ic-link.spec.js.map +1 -0
  183. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +1 -1
  184. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.e2e.js +34 -0
  185. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.e2e.js.map +1 -0
  186. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.spec.js +141 -0
  187. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.spec.js.map +1 -0
  188. package/dist/collection/components/ic-menu/ic-menu.css +9 -1
  189. package/dist/collection/components/ic-menu/ic-menu.js +89 -23
  190. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  191. package/dist/collection/components/ic-menu/ic-menu.spec.js +650 -0
  192. package/dist/collection/components/ic-menu/ic-menu.spec.js.map +1 -0
  193. package/dist/collection/components/ic-menu-group/ic-menu-group.spec.js +94 -0
  194. package/dist/collection/components/ic-menu-group/ic-menu-group.spec.js.map +1 -0
  195. package/dist/collection/components/ic-menu-item/ic-menu-item.css +2 -2
  196. package/dist/collection/components/ic-menu-item/ic-menu-item.js +4 -2
  197. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  198. package/dist/collection/components/ic-menu-item/ic-menu-item.spec.js +105 -0
  199. package/dist/collection/components/ic-menu-item/ic-menu-item.spec.js.map +1 -0
  200. package/dist/collection/components/ic-navigation-button/ic-navigation-button.spec.js +84 -0
  201. package/dist/collection/components/ic-navigation-button/ic-navigation-button.spec.js.map +1 -0
  202. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
  203. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +47 -18
  204. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  205. package/dist/collection/components/ic-navigation-group/ic-navigation-group.spec.js +309 -0
  206. package/dist/collection/components/ic-navigation-group/ic-navigation-group.spec.js.map +1 -0
  207. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +13 -7
  208. package/dist/collection/components/ic-navigation-item/ic-navigation-item.spec.js +118 -0
  209. package/dist/collection/components/ic-navigation-item/ic-navigation-item.spec.js.map +1 -0
  210. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.e2e.js +29 -0
  211. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.e2e.js.map +1 -0
  212. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +0 -6
  213. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  214. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.spec.js +176 -0
  215. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.spec.js.map +1 -0
  216. package/dist/collection/components/ic-page-header/ic-page-header.css +1 -1
  217. package/dist/collection/components/ic-page-header/ic-page-header.e2e.js +177 -0
  218. package/dist/collection/components/ic-page-header/ic-page-header.e2e.js.map +1 -0
  219. package/dist/collection/components/ic-page-header/ic-page-header.js +9 -12
  220. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  221. package/dist/collection/components/ic-page-header/ic-page-header.spec.js +284 -0
  222. package/dist/collection/components/ic-page-header/ic-page-header.spec.js.map +1 -0
  223. package/dist/collection/components/ic-pagination/ic-pagination.e2e.js +128 -0
  224. package/dist/collection/components/ic-pagination/ic-pagination.e2e.js.map +1 -0
  225. package/dist/collection/components/ic-pagination/ic-pagination.js +55 -3
  226. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  227. package/dist/collection/components/ic-pagination/ic-pagination.spec.js +325 -0
  228. package/dist/collection/components/ic-pagination/ic-pagination.spec.js.map +1 -0
  229. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +5 -1
  230. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  231. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +1 -1
  232. package/dist/collection/components/ic-popover-menu/ic-popover-menu.e2e.js +30 -0
  233. package/dist/collection/components/ic-popover-menu/ic-popover-menu.e2e.js.map +1 -0
  234. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -3
  235. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  236. package/dist/collection/components/ic-popover-menu/ic-popover-menu.spec.js +381 -0
  237. package/dist/collection/components/ic-popover-menu/ic-popover-menu.spec.js.map +1 -0
  238. package/dist/collection/components/ic-radio-group/ic-radio-group.e2e.js +343 -0
  239. package/dist/collection/components/ic-radio-group/ic-radio-group.e2e.js.map +1 -0
  240. package/dist/collection/components/ic-radio-group/ic-radio-group.js +19 -8
  241. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  242. package/dist/collection/components/ic-radio-group/ic-radio-group.spec.js +303 -0
  243. package/dist/collection/components/ic-radio-group/ic-radio-group.spec.js.map +1 -0
  244. package/dist/collection/components/ic-radio-group/ic-radio-group.types.js +2 -0
  245. package/dist/collection/components/ic-radio-group/ic-radio-group.types.js.map +1 -0
  246. package/dist/collection/components/ic-radio-option/ic-radio-option.css +1 -1
  247. package/dist/collection/components/ic-radio-option/ic-radio-option.js +5 -14
  248. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  249. package/dist/collection/components/ic-search-bar/ic-search-bar.e2e.js +1054 -0
  250. package/dist/collection/components/ic-search-bar/ic-search-bar.e2e.js.map +1 -0
  251. package/dist/collection/components/ic-search-bar/ic-search-bar.js +12 -9
  252. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  253. package/dist/collection/components/ic-search-bar/ic-search-bar.spec.js +570 -0
  254. package/dist/collection/components/ic-search-bar/ic-search-bar.spec.js.map +1 -0
  255. package/dist/collection/components/ic-search-bar/ic-search-bar.types.js.map +1 -1
  256. package/dist/collection/components/ic-section-container/ic-section-container.spec.js +69 -0
  257. package/dist/collection/components/ic-section-container/ic-section-container.spec.js.map +1 -0
  258. package/dist/collection/components/ic-select/ic-select.e2e.js +1765 -0
  259. package/dist/collection/components/ic-select/ic-select.e2e.js.map +1 -0
  260. package/dist/collection/components/ic-select/ic-select.js +46 -45
  261. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  262. package/dist/collection/components/ic-select/ic-select.spec.js +1276 -0
  263. package/dist/collection/components/ic-select/ic-select.spec.js.map +1 -0
  264. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +0 -7
  265. package/dist/collection/components/ic-side-navigation/ic-side-navigation.e2e.js +412 -0
  266. package/dist/collection/components/ic-side-navigation/ic-side-navigation.e2e.js.map +1 -0
  267. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +67 -54
  268. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  269. package/dist/collection/components/ic-side-navigation/ic-side-navigation.spec.js +470 -0
  270. package/dist/collection/components/ic-side-navigation/ic-side-navigation.spec.js.map +1 -0
  271. package/dist/collection/components/ic-skeleton/ic-skeleton.spec.js +89 -0
  272. package/dist/collection/components/ic-skeleton/ic-skeleton.spec.js.map +1 -0
  273. package/dist/collection/components/ic-status-tag/ic-status-tag.css +2 -6
  274. package/dist/collection/components/ic-status-tag/ic-status-tag.spec.js +43 -0
  275. package/dist/collection/components/ic-status-tag/ic-status-tag.spec.js.map +1 -0
  276. package/dist/collection/components/ic-step/ic-step.css +5 -5
  277. package/dist/collection/components/ic-step/ic-step.js +1 -1
  278. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  279. package/dist/collection/components/ic-step/ic-step.spec.js +176 -0
  280. package/dist/collection/components/ic-step/ic-step.spec.js.map +1 -0
  281. package/dist/collection/components/ic-stepper/ic-stepper.e2e.js +49 -0
  282. package/dist/collection/components/ic-stepper/ic-stepper.e2e.js.map +1 -0
  283. package/dist/collection/components/ic-stepper/ic-stepper.spec.js +706 -0
  284. package/dist/collection/components/ic-stepper/ic-stepper.spec.js.map +1 -0
  285. package/dist/collection/components/ic-switch/ic-switch.css +1 -1
  286. package/dist/collection/components/ic-switch/ic-switch.js +2 -1
  287. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  288. package/dist/collection/components/ic-switch/ic-switch.spec.js +104 -0
  289. package/dist/collection/components/ic-switch/ic-switch.spec.js.map +1 -0
  290. package/dist/collection/components/ic-tab/ic-tab.e2e.js +32 -0
  291. package/dist/collection/components/ic-tab/ic-tab.e2e.js.map +1 -0
  292. package/dist/collection/components/ic-tab/ic-tab.js +7 -1
  293. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  294. package/dist/collection/components/ic-tab/ic-tab.spec.js +159 -0
  295. package/dist/collection/components/ic-tab/ic-tab.spec.js.map +1 -0
  296. package/dist/collection/components/ic-tab-context/ic-tab-context.e2e.js +317 -0
  297. package/dist/collection/components/ic-tab-context/ic-tab-context.e2e.js.map +1 -0
  298. package/dist/collection/components/ic-tab-context/ic-tab-context.js +7 -5
  299. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  300. package/dist/collection/components/ic-tab-context/ic-tab-context.spec.js +369 -0
  301. package/dist/collection/components/ic-tab-context/ic-tab-context.spec.js.map +1 -0
  302. package/dist/collection/components/ic-tab-group/ic-tab-group.css +2 -2
  303. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +3 -1
  304. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  305. package/dist/collection/components/ic-tab-panel/ic-tab-panel.spec.js +65 -0
  306. package/dist/collection/components/ic-tab-panel/ic-tab-panel.spec.js.map +1 -0
  307. package/dist/collection/components/ic-text-field/ic-text-field.css +0 -4
  308. package/dist/collection/components/ic-text-field/ic-text-field.e2e.js +98 -0
  309. package/dist/collection/components/ic-text-field/ic-text-field.e2e.js.map +1 -0
  310. package/dist/collection/components/ic-text-field/ic-text-field.input.spec.js +236 -0
  311. package/dist/collection/components/ic-text-field/ic-text-field.input.spec.js.map +1 -0
  312. package/dist/collection/components/ic-text-field/ic-text-field.js +16 -25
  313. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  314. package/dist/collection/components/ic-text-field/ic-text-field.textarea.spec.js +310 -0
  315. package/dist/collection/components/ic-text-field/ic-text-field.textarea.spec.js.map +1 -0
  316. package/dist/collection/components/ic-theme/ic-theme.e2e.js +72 -0
  317. package/dist/collection/components/ic-theme/ic-theme.e2e.js.map +1 -0
  318. package/dist/collection/components/ic-theme/ic-theme.spec.js +77 -0
  319. package/dist/collection/components/ic-theme/ic-theme.spec.js.map +1 -0
  320. package/dist/collection/components/ic-toast/ic-toast.e2e.js +82 -0
  321. package/dist/collection/components/ic-toast/ic-toast.e2e.js.map +1 -0
  322. package/dist/collection/components/ic-toast/ic-toast.spec.js +278 -0
  323. package/dist/collection/components/ic-toast/ic-toast.spec.js.map +1 -0
  324. package/dist/collection/components/ic-toast-region/ic-toast-region.spec.js +62 -0
  325. package/dist/collection/components/ic-toast-region/ic-toast-region.spec.js.map +1 -0
  326. package/dist/collection/components/ic-tooltip/ic-tooltip.css +22 -8
  327. package/dist/collection/components/ic-tooltip/ic-tooltip.e2e.js +115 -0
  328. package/dist/collection/components/ic-tooltip/ic-tooltip.e2e.js.map +1 -0
  329. package/dist/collection/components/ic-tooltip/ic-tooltip.js +26 -27
  330. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  331. package/dist/collection/components/ic-tooltip/ic-tooltip.spec.js +128 -0
  332. package/dist/collection/components/ic-tooltip/ic-tooltip.spec.js.map +1 -0
  333. package/dist/collection/components/ic-top-navigation/ic-top-navigation.e2e.js +42 -0
  334. package/dist/collection/components/ic-top-navigation/ic-top-navigation.e2e.js.map +1 -0
  335. package/dist/collection/components/ic-top-navigation/ic-top-navigation.mobile.e2e.js +242 -0
  336. package/dist/collection/components/ic-top-navigation/ic-top-navigation.mobile.e2e.js.map +1 -0
  337. package/dist/collection/components/ic-top-navigation/ic-top-navigation.spec.js +286 -0
  338. package/dist/collection/components/ic-top-navigation/ic-top-navigation.spec.js.map +1 -0
  339. package/dist/collection/components/ic-typography/ic-typography.css +39 -0
  340. package/dist/collection/components/ic-typography/ic-typography.e2e.js +36 -0
  341. package/dist/collection/components/ic-typography/ic-typography.e2e.js.map +1 -0
  342. package/dist/collection/components/ic-typography/ic-typography.js +120 -2
  343. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  344. package/dist/collection/components/ic-typography/ic-typography.spec.js +296 -0
  345. package/dist/collection/components/ic-typography/ic-typography.spec.js.map +1 -0
  346. package/dist/collection/testspec.setup.js +11 -0
  347. package/dist/collection/testspec.setup.js.map +1 -1
  348. package/dist/collection/utils/helpers.js +23 -24
  349. package/dist/collection/utils/helpers.js.map +1 -1
  350. package/dist/components/helpers.js +24 -25
  351. package/dist/components/helpers.js.map +1 -1
  352. package/dist/components/ic-alert.js +1 -113
  353. package/dist/components/ic-alert.js.map +1 -1
  354. package/dist/components/ic-alert2.js +117 -0
  355. package/dist/components/ic-alert2.js.map +1 -0
  356. package/dist/components/ic-back-to-top.js +2 -2
  357. package/dist/components/ic-breadcrumb-group.js +15 -15
  358. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  359. package/dist/components/ic-breadcrumb2.js +5 -4
  360. package/dist/components/ic-breadcrumb2.js.map +1 -1
  361. package/dist/components/ic-button2.js +5 -7
  362. package/dist/components/ic-button2.js.map +1 -1
  363. package/dist/components/ic-card.js +4 -3
  364. package/dist/components/ic-card.js.map +1 -1
  365. package/dist/components/ic-checkbox-group.js +5 -2
  366. package/dist/components/ic-checkbox-group.js.map +1 -1
  367. package/dist/components/ic-checkbox.js +7 -5
  368. package/dist/components/ic-checkbox.js.map +1 -1
  369. package/dist/components/ic-chip.js +5 -2
  370. package/dist/components/ic-chip.js.map +1 -1
  371. package/dist/components/ic-classification-banner.js +1 -1
  372. package/dist/components/ic-data-entity.js +1 -1
  373. package/dist/components/ic-data-row.js +2 -2
  374. package/dist/components/ic-dialog.d.ts +11 -0
  375. package/dist/components/ic-dialog.js +357 -0
  376. package/dist/components/ic-dialog.js.map +1 -0
  377. package/dist/components/ic-divider2.js +2 -2
  378. package/dist/components/ic-footer-link-group.js +2 -2
  379. package/dist/components/ic-footer-link.js +2 -2
  380. package/dist/components/ic-footer.js +4 -4
  381. package/dist/components/ic-footer.js.map +1 -1
  382. package/dist/components/ic-hero.js +2 -2
  383. package/dist/components/ic-horizontal-scroll2.js +2 -2
  384. package/dist/components/ic-input-component-container2.js +3 -3
  385. package/dist/components/ic-input-component-container2.js.map +1 -1
  386. package/dist/components/ic-input-container2.js +1 -1
  387. package/dist/components/ic-input-label2.js +2 -2
  388. package/dist/components/ic-input-validation2.js +3 -3
  389. package/dist/components/ic-input-validation2.js.map +1 -1
  390. package/dist/components/ic-link2.js +2 -2
  391. package/dist/components/ic-loading-indicator2.js +2 -2
  392. package/dist/components/ic-loading-indicator2.js.map +1 -1
  393. package/dist/components/ic-menu-group.js +1 -1
  394. package/dist/components/ic-menu-item2.js +6 -4
  395. package/dist/components/ic-menu-item2.js.map +1 -1
  396. package/dist/components/ic-menu2.js +69 -27
  397. package/dist/components/ic-menu2.js.map +1 -1
  398. package/dist/components/ic-navigation-button.js +2 -2
  399. package/dist/components/ic-navigation-group.js +50 -21
  400. package/dist/components/ic-navigation-group.js.map +1 -1
  401. package/dist/components/ic-navigation-item.js +3 -3
  402. package/dist/components/ic-navigation-item.js.map +1 -1
  403. package/dist/components/ic-navigation-menu2.js +2 -8
  404. package/dist/components/ic-navigation-menu2.js.map +1 -1
  405. package/dist/components/ic-page-header.js +12 -15
  406. package/dist/components/ic-page-header.js.map +1 -1
  407. package/dist/components/ic-pagination-item2.js +5 -1
  408. package/dist/components/ic-pagination-item2.js.map +1 -1
  409. package/dist/components/ic-pagination.js +17 -4
  410. package/dist/components/ic-pagination.js.map +1 -1
  411. package/dist/components/ic-popover-menu.js +7 -6
  412. package/dist/components/ic-popover-menu.js.map +1 -1
  413. package/dist/components/ic-radio-group.js +16 -5
  414. package/dist/components/ic-radio-group.js.map +1 -1
  415. package/dist/components/ic-radio-option.js +5 -11
  416. package/dist/components/ic-radio-option.js.map +1 -1
  417. package/dist/components/ic-search-bar.js +6 -3
  418. package/dist/components/ic-search-bar.js.map +1 -1
  419. package/dist/components/ic-section-container2.js +1 -1
  420. package/dist/components/ic-select.js +35 -34
  421. package/dist/components/ic-select.js.map +1 -1
  422. package/dist/components/ic-side-navigation.js +70 -57
  423. package/dist/components/ic-side-navigation.js.map +1 -1
  424. package/dist/components/ic-skeleton.js +1 -1
  425. package/dist/components/ic-status-tag.js +3 -3
  426. package/dist/components/ic-status-tag.js.map +1 -1
  427. package/dist/components/ic-step.js +3 -3
  428. package/dist/components/ic-step.js.map +1 -1
  429. package/dist/components/ic-stepper.js +2 -2
  430. package/dist/components/ic-switch.js +4 -3
  431. package/dist/components/ic-switch.js.map +1 -1
  432. package/dist/components/ic-tab-context.js +8 -6
  433. package/dist/components/ic-tab-context.js.map +1 -1
  434. package/dist/components/ic-tab-group.js +3 -3
  435. package/dist/components/ic-tab-group.js.map +1 -1
  436. package/dist/components/ic-tab-panel.js +4 -2
  437. package/dist/components/ic-tab-panel.js.map +1 -1
  438. package/dist/components/ic-tab.js +8 -2
  439. package/dist/components/ic-tab.js.map +1 -1
  440. package/dist/components/ic-text-field2.js +9 -18
  441. package/dist/components/ic-text-field2.js.map +1 -1
  442. package/dist/components/ic-theme.js +2 -2
  443. package/dist/components/ic-toast-region.js +1 -1
  444. package/dist/components/ic-toast.js +2 -2
  445. package/dist/components/ic-tooltip2.js +29 -30
  446. package/dist/components/ic-tooltip2.js.map +1 -1
  447. package/dist/components/ic-top-navigation.js +2 -2
  448. package/dist/components/ic-typography2.js +100 -5
  449. package/dist/components/ic-typography2.js.map +1 -1
  450. package/dist/components/index.d.ts +9 -60
  451. package/dist/components/index.js +1 -58
  452. package/dist/components/index.js.map +1 -1
  453. package/dist/core/core.css +41 -2
  454. package/dist/core/core.esm.js +1 -1
  455. package/dist/core/core.esm.js.map +1 -1
  456. package/dist/core/index.esm.js.map +1 -1
  457. package/dist/core/{p-de45134c.entry.js → p-04d626ee.entry.js} +2 -2
  458. package/dist/core/p-04d626ee.entry.js.map +1 -0
  459. package/dist/core/p-06321d19.js.map +1 -1
  460. package/dist/core/{p-0575a77f.entry.js → p-0d325b4c.entry.js} +2 -2
  461. package/dist/core/p-0d325b4c.entry.js.map +1 -0
  462. package/dist/core/{p-6a77992e.entry.js → p-249af8ab.entry.js} +2 -2
  463. package/dist/core/p-249af8ab.entry.js.map +1 -0
  464. package/dist/core/{p-d5d9923a.entry.js → p-29d9fea1.entry.js} +2 -2
  465. package/dist/core/p-29d9fea1.entry.js.map +1 -0
  466. package/dist/core/p-2e051e1e.entry.js +2 -0
  467. package/dist/core/p-2e051e1e.entry.js.map +1 -0
  468. package/dist/core/{p-3a67718c.entry.js → p-2ec49a7e.entry.js} +2 -2
  469. package/dist/core/p-2ec49a7e.entry.js.map +1 -0
  470. package/dist/core/{p-223a214f.entry.js → p-3114a4b3.entry.js} +2 -2
  471. package/dist/core/p-3114a4b3.entry.js.map +1 -0
  472. package/dist/core/p-311c38b3.entry.js +2 -0
  473. package/dist/core/p-311c38b3.entry.js.map +1 -0
  474. package/dist/core/p-31ccdd50.entry.js +2 -0
  475. package/dist/core/p-31ccdd50.entry.js.map +1 -0
  476. package/dist/core/p-31e80ccb.entry.js +2 -0
  477. package/dist/core/p-31e80ccb.entry.js.map +1 -0
  478. package/dist/core/p-323bce82.entry.js +2 -0
  479. package/dist/core/p-323bce82.entry.js.map +1 -0
  480. package/dist/core/{p-52fd3533.entry.js → p-3918c27a.entry.js} +2 -2
  481. package/dist/core/p-3918c27a.entry.js.map +1 -0
  482. package/dist/core/p-3ce0aa02.entry.js +2 -0
  483. package/dist/core/p-3ce0aa02.entry.js.map +1 -0
  484. package/dist/core/p-44512ebe.js.map +1 -1
  485. package/dist/core/p-4a385752.js +2 -0
  486. package/dist/core/p-4a385752.js.map +1 -0
  487. package/dist/core/{p-312c10b0.entry.js → p-4c4fa082.entry.js} +2 -2
  488. package/dist/core/p-4c4fa082.entry.js.map +1 -0
  489. package/dist/core/{p-fc7dce3d.entry.js → p-4f7b34ed.entry.js} +2 -2
  490. package/dist/core/p-4f7b34ed.entry.js.map +1 -0
  491. package/dist/core/p-524557bc.entry.js +2 -0
  492. package/dist/core/p-524557bc.entry.js.map +1 -0
  493. package/dist/core/p-551986d1.entry.js +2 -0
  494. package/dist/core/p-551986d1.entry.js.map +1 -0
  495. package/dist/core/p-57460fa3.entry.js +2 -0
  496. package/dist/core/p-57460fa3.entry.js.map +1 -0
  497. package/dist/core/p-5fcd965f.entry.js +2 -0
  498. package/dist/core/p-5fcd965f.entry.js.map +1 -0
  499. package/dist/core/{p-e41e701a.entry.js → p-617950f8.entry.js} +2 -2
  500. package/dist/core/p-617950f8.entry.js.map +1 -0
  501. package/dist/core/{p-e384aaee.entry.js → p-68308ecd.entry.js} +2 -2
  502. package/dist/core/p-68308ecd.entry.js.map +1 -0
  503. package/dist/core/p-6c76c6ba.entry.js +2 -0
  504. package/dist/core/p-6c76c6ba.entry.js.map +1 -0
  505. package/dist/core/p-6f57b13c.js.map +1 -1
  506. package/dist/core/p-79914e0c.entry.js +2 -0
  507. package/dist/core/p-79914e0c.entry.js.map +1 -0
  508. package/dist/core/p-820e4c17.entry.js +2 -0
  509. package/dist/core/p-820e4c17.entry.js.map +1 -0
  510. package/dist/core/{p-3fb307e6.entry.js → p-84c8c4c7.entry.js} +2 -2
  511. package/dist/core/p-84c8c4c7.entry.js.map +1 -0
  512. package/dist/core/p-8911656b.entry.js +2 -0
  513. package/dist/core/p-8911656b.entry.js.map +1 -0
  514. package/dist/core/p-8c7f4343.js.map +1 -1
  515. package/dist/core/p-8d4f7027.js.map +1 -1
  516. package/dist/core/p-97286148.entry.js +2 -0
  517. package/dist/core/p-97286148.entry.js.map +1 -0
  518. package/dist/core/{p-454b1ecd.entry.js → p-97fd0cc1.entry.js} +2 -2
  519. package/dist/core/p-97fd0cc1.entry.js.map +1 -0
  520. package/dist/core/p-a74b8476.entry.js +2 -0
  521. package/dist/core/p-a74b8476.entry.js.map +1 -0
  522. package/dist/core/{p-9413d639.entry.js → p-a9de9aba.entry.js} +2 -2
  523. package/dist/core/p-a9de9aba.entry.js.map +1 -0
  524. package/dist/core/p-ad6c4c02.entry.js +2 -0
  525. package/dist/core/p-ad6c4c02.entry.js.map +1 -0
  526. package/dist/core/{p-a0f4e641.entry.js → p-aeef3c9d.entry.js} +2 -2
  527. package/dist/core/p-aeef3c9d.entry.js.map +1 -0
  528. package/dist/core/p-b03bd9c6.entry.js +2 -0
  529. package/dist/core/p-b03bd9c6.entry.js.map +1 -0
  530. package/dist/core/p-b0685167.entry.js +2 -0
  531. package/dist/core/p-b0685167.entry.js.map +1 -0
  532. package/dist/core/p-b35a9909.entry.js +2 -0
  533. package/dist/core/p-b35a9909.entry.js.map +1 -0
  534. package/dist/core/p-bad10f6c.entry.js +2 -0
  535. package/dist/core/p-bad10f6c.entry.js.map +1 -0
  536. package/dist/core/{p-002a63e9.entry.js → p-bda4414e.entry.js} +2 -2
  537. package/dist/core/p-bda4414e.entry.js.map +1 -0
  538. package/dist/core/p-c0333310.entry.js +2 -0
  539. package/dist/core/p-c0333310.entry.js.map +1 -0
  540. package/dist/core/p-c3f9fb1d.entry.js +2 -0
  541. package/dist/core/p-c3f9fb1d.entry.js.map +1 -0
  542. package/dist/core/{p-5d077cf7.entry.js → p-ca6820dc.entry.js} +2 -2
  543. package/dist/core/p-ca6820dc.entry.js.map +1 -0
  544. package/dist/core/p-d6694b41.entry.js +2 -0
  545. package/dist/core/p-d6694b41.entry.js.map +1 -0
  546. package/dist/core/{p-1eb0992b.entry.js → p-da4c1409.entry.js} +2 -2
  547. package/dist/core/p-da4c1409.entry.js.map +1 -0
  548. package/dist/core/p-dbe06c3b.entry.js +2 -0
  549. package/dist/core/p-dbe06c3b.entry.js.map +1 -0
  550. package/dist/core/{p-28bc3bf0.entry.js → p-df67b151.entry.js} +2 -2
  551. package/dist/core/p-df67b151.entry.js.map +1 -0
  552. package/dist/core/{p-546b620e.entry.js → p-dfd31e28.entry.js} +2 -2
  553. package/dist/core/p-dfd31e28.entry.js.map +1 -0
  554. package/dist/core/{p-dc0b9e80.entry.js → p-e3e6308b.entry.js} +2 -2
  555. package/dist/core/p-e3e6308b.entry.js.map +1 -0
  556. package/dist/core/p-ea233813.entry.js +2 -0
  557. package/dist/core/p-ea233813.entry.js.map +1 -0
  558. package/dist/core/p-ec26fc38.js.map +1 -1
  559. package/dist/core/{p-f3e10149.entry.js → p-ecdcae46.entry.js} +2 -2
  560. package/dist/core/p-ecdcae46.entry.js.map +1 -0
  561. package/dist/core/p-ef91c17e.entry.js +2 -0
  562. package/dist/core/p-ef91c17e.entry.js.map +1 -0
  563. package/dist/core/{p-a33a04b2.entry.js → p-f0714432.entry.js} +2 -2
  564. package/dist/core/p-f0714432.entry.js.map +1 -0
  565. package/dist/core/p-f3053872.js +3 -0
  566. package/dist/core/p-f3053872.js.map +1 -0
  567. package/dist/core/{p-47b0ed42.entry.js → p-f381e93f.entry.js} +2 -2
  568. package/dist/core/p-f381e93f.entry.js.map +1 -0
  569. package/dist/core/p-fd482bd7.entry.js +2 -0
  570. package/dist/core/p-fd482bd7.entry.js.map +1 -0
  571. package/dist/core/p-fe2c4009.entry.js +2 -0
  572. package/dist/core/p-fe2c4009.entry.js.map +1 -0
  573. package/dist/esm/core.js +7 -3
  574. package/dist/esm/core.js.map +1 -1
  575. package/dist/esm/{helpers-b2b47a7d.js → helpers-8e57082b.js} +25 -26
  576. package/dist/esm/helpers-8e57082b.js.map +1 -0
  577. package/dist/esm/ic-alert.entry.js +2 -2
  578. package/dist/esm/ic-back-to-top.entry.js +2 -2
  579. package/dist/esm/ic-breadcrumb-group.entry.js +15 -15
  580. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  581. package/dist/esm/ic-breadcrumb.entry.js +6 -5
  582. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  583. package/dist/esm/ic-button_3.entry.js +33 -36
  584. package/dist/esm/ic-button_3.entry.js.map +1 -1
  585. package/dist/esm/ic-card.entry.js +4 -3
  586. package/dist/esm/ic-card.entry.js.map +1 -1
  587. package/dist/esm/ic-checkbox-group.entry.js +5 -2
  588. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  589. package/dist/esm/ic-checkbox.entry.js +7 -5
  590. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  591. package/dist/esm/ic-chip.entry.js +5 -2
  592. package/dist/esm/ic-chip.entry.js.map +1 -1
  593. package/dist/esm/ic-classification-banner.entry.js +1 -1
  594. package/dist/esm/ic-data-entity.entry.js +1 -1
  595. package/dist/esm/ic-data-row.entry.js +2 -2
  596. package/dist/esm/ic-dialog.entry.js +292 -0
  597. package/dist/esm/ic-dialog.entry.js.map +1 -0
  598. package/dist/esm/ic-divider.entry.js +2 -2
  599. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  600. package/dist/esm/ic-footer-link.entry.js +2 -2
  601. package/dist/esm/ic-footer.entry.js +4 -4
  602. package/dist/esm/ic-footer.entry.js.map +1 -1
  603. package/dist/esm/ic-hero.entry.js +2 -2
  604. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  605. package/dist/esm/ic-input-component-container_3.entry.js +69 -27
  606. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  607. package/dist/esm/ic-input-label_2.entry.js +3 -3
  608. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  609. package/dist/esm/ic-link.entry.js +2 -2
  610. package/dist/esm/ic-menu-group.entry.js +1 -1
  611. package/dist/esm/ic-menu-item.entry.js +6 -4
  612. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  613. package/dist/esm/ic-navigation-button.entry.js +2 -2
  614. package/dist/esm/ic-navigation-group.entry.js +50 -21
  615. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  616. package/dist/esm/ic-navigation-item.entry.js +3 -3
  617. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  618. package/dist/esm/ic-navigation-menu.entry.js +2 -8
  619. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  620. package/dist/esm/ic-page-header.entry.js +12 -15
  621. package/dist/esm/ic-page-header.entry.js.map +1 -1
  622. package/dist/esm/ic-pagination-item.entry.js +6 -1
  623. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  624. package/dist/esm/ic-pagination.entry.js +14 -2
  625. package/dist/esm/ic-pagination.entry.js.map +1 -1
  626. package/dist/esm/ic-popover-menu.entry.js +7 -6
  627. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  628. package/dist/esm/ic-radio-group.entry.js +16 -5
  629. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  630. package/dist/esm/ic-radio-option.entry.js +5 -11
  631. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  632. package/dist/esm/ic-search-bar.entry.js +6 -3
  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-select.entry.js +35 -34
  636. package/dist/esm/ic-select.entry.js.map +1 -1
  637. package/dist/esm/ic-side-navigation.entry.js +70 -57
  638. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  639. package/dist/esm/ic-skeleton.entry.js +1 -1
  640. package/dist/esm/ic-status-tag.entry.js +3 -3
  641. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  642. package/dist/esm/ic-step.entry.js +3 -3
  643. package/dist/esm/ic-step.entry.js.map +1 -1
  644. package/dist/esm/ic-stepper.entry.js +2 -2
  645. package/dist/esm/ic-switch.entry.js +4 -3
  646. package/dist/esm/ic-switch.entry.js.map +1 -1
  647. package/dist/esm/ic-tab-context.entry.js +8 -6
  648. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  649. package/dist/esm/ic-tab-group.entry.js +3 -3
  650. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  651. package/dist/esm/ic-tab-panel.entry.js +4 -2
  652. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  653. package/dist/esm/ic-tab.entry.js +8 -2
  654. package/dist/esm/ic-tab.entry.js.map +1 -1
  655. package/dist/esm/ic-text-field.entry.js +9 -18
  656. package/dist/esm/ic-text-field.entry.js.map +1 -1
  657. package/dist/esm/ic-theme.entry.js +2 -2
  658. package/dist/esm/ic-toast-region.entry.js +1 -1
  659. package/dist/esm/ic-toast.entry.js +2 -2
  660. package/dist/esm/ic-top-navigation.entry.js +2 -2
  661. package/dist/esm/ic-typography.entry.js +96 -4
  662. package/dist/esm/ic-typography.entry.js.map +1 -1
  663. package/dist/esm/{index-3b144b17.js → index-a77644e1.js} +222 -44
  664. package/dist/esm/index-a77644e1.js.map +1 -0
  665. package/dist/esm/loader.js +4 -3
  666. package/dist/esm/loader.js.map +1 -1
  667. package/dist/esm/polyfills/css-shim.js +1 -1
  668. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.types.d.ts +1 -1
  669. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +3 -0
  670. package/dist/types/components/ic-button/ic-button.types.d.ts +4 -4
  671. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +1 -0
  672. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
  673. package/dist/types/components/ic-chip/ic-chip.d.ts +1 -0
  674. package/dist/types/components/ic-chip/ic-chip.types.d.ts +2 -2
  675. package/dist/types/components/ic-classification-banner/ic-classification-banner.types.d.ts +1 -1
  676. package/dist/types/components/ic-dialog/ic-dialog.d.ts +123 -0
  677. package/dist/types/components/ic-dialog/ic-dialog.test.a11y.d.ts +1 -0
  678. package/dist/types/components/ic-footer/ic-footer.types.d.ts +1 -1
  679. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +1 -1
  680. package/dist/types/components/ic-hero/ic-hero.types.d.ts +1 -1
  681. package/dist/types/components/ic-input-validation/ic-input-validation.types.d.ts +1 -1
  682. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -2
  683. package/dist/types/components/ic-menu/ic-menu.d.ts +7 -0
  684. package/dist/types/components/ic-menu-item/ic-menu-item.types.d.ts +1 -1
  685. package/dist/types/components/ic-navigation-button/ic-navigation-button.types.d.ts +1 -1
  686. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -1
  687. package/dist/types/components/ic-pagination/ic-pagination.d.ts +8 -1
  688. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +1 -1
  689. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +2 -1
  690. package/dist/types/components/ic-pagination-item/ic-pagination-item.types.d.ts +1 -1
  691. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -0
  692. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +4 -3
  693. package/dist/types/components/ic-radio-group/ic-radio-group.types.d.ts +7 -0
  694. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +1 -3
  695. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +1 -1
  696. package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
  697. package/dist/types/components/ic-select/ic-select.d.ts +14 -14
  698. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -0
  699. package/dist/types/components/ic-skeleton/ic-skeleton.types.d.ts +1 -1
  700. package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +2 -2
  701. package/dist/types/components/ic-step/ic-step.types.d.ts +3 -3
  702. package/dist/types/components/ic-stepper/ic-stepper.types.d.ts +1 -1
  703. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -0
  704. package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -1
  705. package/dist/types/components/ic-text-field/ic-text-field.types.d.ts +3 -3
  706. package/dist/types/components/ic-toast/ic-toast.types.d.ts +1 -1
  707. package/dist/types/components/ic-tooltip/ic-tooltip.types.d.ts +1 -1
  708. package/dist/types/components/ic-typography/ic-typography.d.ts +27 -0
  709. package/dist/types/components.d.ts +222 -42
  710. package/dist/types/stencil-public-runtime.d.ts +72 -15
  711. package/dist/types/testspec.setup.d.ts +9 -0
  712. package/dist/types/utils/helpers.d.ts +1 -0
  713. package/dist/types/utils/types.d.ts +22 -22
  714. package/hydrate/index.d.ts +17 -16
  715. package/hydrate/index.js +920 -384
  716. package/loader/index.d.ts +9 -0
  717. package/package.json +5 -5
  718. package/dist/cjs/helpers-2021e212.js.map +0 -1
  719. package/dist/cjs/index-a62312a7.js.map +0 -1
  720. package/dist/core/p-002a63e9.entry.js.map +0 -1
  721. package/dist/core/p-0575a77f.entry.js.map +0 -1
  722. package/dist/core/p-0a41c3cb.entry.js +0 -2
  723. package/dist/core/p-0a41c3cb.entry.js.map +0 -1
  724. package/dist/core/p-100dbcec.entry.js +0 -2
  725. package/dist/core/p-100dbcec.entry.js.map +0 -1
  726. package/dist/core/p-14835d6f.entry.js +0 -2
  727. package/dist/core/p-14835d6f.entry.js.map +0 -1
  728. package/dist/core/p-1eb0992b.entry.js.map +0 -1
  729. package/dist/core/p-223a214f.entry.js.map +0 -1
  730. package/dist/core/p-276f7ecb.entry.js +0 -2
  731. package/dist/core/p-276f7ecb.entry.js.map +0 -1
  732. package/dist/core/p-28bc3bf0.entry.js.map +0 -1
  733. package/dist/core/p-2e949135.entry.js +0 -2
  734. package/dist/core/p-2e949135.entry.js.map +0 -1
  735. package/dist/core/p-312c10b0.entry.js.map +0 -1
  736. package/dist/core/p-3845b769.entry.js +0 -2
  737. package/dist/core/p-3845b769.entry.js.map +0 -1
  738. package/dist/core/p-3a67718c.entry.js.map +0 -1
  739. package/dist/core/p-3c23f963.entry.js +0 -2
  740. package/dist/core/p-3c23f963.entry.js.map +0 -1
  741. package/dist/core/p-3dc2ff7b.entry.js +0 -2
  742. package/dist/core/p-3dc2ff7b.entry.js.map +0 -1
  743. package/dist/core/p-3dea2867.js +0 -2
  744. package/dist/core/p-3dea2867.js.map +0 -1
  745. package/dist/core/p-3e5eb873.entry.js +0 -2
  746. package/dist/core/p-3e5eb873.entry.js.map +0 -1
  747. package/dist/core/p-3fb307e6.entry.js.map +0 -1
  748. package/dist/core/p-454b1ecd.entry.js.map +0 -1
  749. package/dist/core/p-4595f48f.entry.js +0 -2
  750. package/dist/core/p-4595f48f.entry.js.map +0 -1
  751. package/dist/core/p-47b0ed42.entry.js.map +0 -1
  752. package/dist/core/p-4b87445b.entry.js +0 -2
  753. package/dist/core/p-4b87445b.entry.js.map +0 -1
  754. package/dist/core/p-4c8fcfe6.entry.js +0 -2
  755. package/dist/core/p-4c8fcfe6.entry.js.map +0 -1
  756. package/dist/core/p-52fd3533.entry.js.map +0 -1
  757. package/dist/core/p-546b620e.entry.js.map +0 -1
  758. package/dist/core/p-56fe91ad.entry.js +0 -2
  759. package/dist/core/p-56fe91ad.entry.js.map +0 -1
  760. package/dist/core/p-589f6dd3.js +0 -3
  761. package/dist/core/p-589f6dd3.js.map +0 -1
  762. package/dist/core/p-5d077cf7.entry.js.map +0 -1
  763. package/dist/core/p-6a77992e.entry.js.map +0 -1
  764. package/dist/core/p-6b39f8b4.entry.js +0 -2
  765. package/dist/core/p-6b39f8b4.entry.js.map +0 -1
  766. package/dist/core/p-80eff050.entry.js +0 -2
  767. package/dist/core/p-80eff050.entry.js.map +0 -1
  768. package/dist/core/p-8780890e.entry.js +0 -2
  769. package/dist/core/p-8780890e.entry.js.map +0 -1
  770. package/dist/core/p-895bda21.entry.js +0 -2
  771. package/dist/core/p-895bda21.entry.js.map +0 -1
  772. package/dist/core/p-92c4fa7f.entry.js +0 -2
  773. package/dist/core/p-92c4fa7f.entry.js.map +0 -1
  774. package/dist/core/p-9413d639.entry.js.map +0 -1
  775. package/dist/core/p-a0f4e641.entry.js.map +0 -1
  776. package/dist/core/p-a33a04b2.entry.js.map +0 -1
  777. package/dist/core/p-a5bee11f.entry.js +0 -2
  778. package/dist/core/p-a5bee11f.entry.js.map +0 -1
  779. package/dist/core/p-a7fdb9a8.entry.js +0 -2
  780. package/dist/core/p-a7fdb9a8.entry.js.map +0 -1
  781. package/dist/core/p-b61e76e2.entry.js +0 -2
  782. package/dist/core/p-b61e76e2.entry.js.map +0 -1
  783. package/dist/core/p-c0813424.entry.js +0 -2
  784. package/dist/core/p-c0813424.entry.js.map +0 -1
  785. package/dist/core/p-cb437317.entry.js +0 -2
  786. package/dist/core/p-cb437317.entry.js.map +0 -1
  787. package/dist/core/p-d5d9923a.entry.js.map +0 -1
  788. package/dist/core/p-dc0b9e80.entry.js.map +0 -1
  789. package/dist/core/p-de45134c.entry.js.map +0 -1
  790. package/dist/core/p-de891d3d.entry.js +0 -2
  791. package/dist/core/p-de891d3d.entry.js.map +0 -1
  792. package/dist/core/p-e0f24ccd.entry.js +0 -2
  793. package/dist/core/p-e0f24ccd.entry.js.map +0 -1
  794. package/dist/core/p-e384aaee.entry.js.map +0 -1
  795. package/dist/core/p-e41e701a.entry.js.map +0 -1
  796. package/dist/core/p-e839e5dc.entry.js +0 -2
  797. package/dist/core/p-e839e5dc.entry.js.map +0 -1
  798. package/dist/core/p-ea526b54.entry.js +0 -2
  799. package/dist/core/p-ea526b54.entry.js.map +0 -1
  800. package/dist/core/p-ec8b228c.entry.js +0 -2
  801. package/dist/core/p-ec8b228c.entry.js.map +0 -1
  802. package/dist/core/p-f3e10149.entry.js.map +0 -1
  803. package/dist/core/p-fc7dce3d.entry.js.map +0 -1
  804. package/dist/esm/helpers-b2b47a7d.js.map +0 -1
  805. package/dist/esm/index-3b144b17.js.map +0 -1
@@ -0,0 +1,123 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { ClassificationBanner } from "../ic-classification-banner/ic-classification-banner";
3
+ import { Footer } from "../ic-footer/ic-footer";
4
+ import { BackToTop } from "./ic-back-to-top";
5
+ beforeAll(() => {
6
+ // IntersectionObserver isn't available in test environment
7
+ const mockIntersectionObserver = jest.fn();
8
+ mockIntersectionObserver.mockReturnValue({
9
+ observe: jest.fn().mockReturnValue(null),
10
+ unobserve: jest.fn().mockReturnValue(null),
11
+ disconnect: jest.fn().mockReturnValue(null),
12
+ });
13
+ Object.defineProperty(global, "IntersectionObserver", {
14
+ value: mockIntersectionObserver,
15
+ });
16
+ });
17
+ describe("ic-back-to-top", () => {
18
+ it("should render", async () => {
19
+ const page = await newSpecPage({
20
+ components: [BackToTop],
21
+ html: `<div id="topEl"><ic-back-to-top target="topEl"></ic-back-to-top></div>`,
22
+ });
23
+ expect(page.root).toMatchSnapshot("should render");
24
+ });
25
+ it("should render with footer", async () => {
26
+ const page = await newSpecPage({
27
+ components: [BackToTop, Footer],
28
+ html: `<div id="topEl"><ic-back-to-top target="topEl"></ic-back-to-top></div><ic-footer></ic-footer>`,
29
+ });
30
+ expect(page.root).toMatchSnapshot("should render with footer");
31
+ });
32
+ it("should render with no targetId set", async () => {
33
+ jest.spyOn(console, "error").mockImplementation(jest.fn());
34
+ const page = await newSpecPage({
35
+ components: [BackToTop],
36
+ html: `<ic-back-to-top></ic-back-to-top>`,
37
+ });
38
+ expect(page.root).toMatchSnapshot("should render with no targetId set");
39
+ });
40
+ it("should render when target starts with #", async () => {
41
+ const page = await newSpecPage({
42
+ components: [BackToTop],
43
+ html: `<div id="topEl"><ic-back-to-top target="#topEl"></ic-back-to-top></div>`,
44
+ });
45
+ expect(page.root).toMatchSnapshot("should render when target starts with #");
46
+ });
47
+ it("should offset due to classification banner", async () => {
48
+ const page = await newSpecPage({
49
+ components: [BackToTop, ClassificationBanner],
50
+ html: `<div id="topEl"><ic-back-to-top target="topEl"></ic-back-to-top><ic-classification-banner></ic-classification-banner></div>`,
51
+ });
52
+ expect(page.rootInstance.bannerOffset).toBe(true);
53
+ });
54
+ it("should scroll to 0,0 if target is null", async () => {
55
+ jest.spyOn(console, "error").mockImplementation(jest.fn());
56
+ const page = await newSpecPage({
57
+ components: [BackToTop],
58
+ html: `<div id="topEl"><ic-back-to-top></ic-back-to-top></div>`,
59
+ });
60
+ expect(page.rootInstance.isTargetElNull).toBe(true);
61
+ page.root.shadowRoot.querySelector("button").click();
62
+ expect(page.win.screenX).toBe(0);
63
+ expect(page.win.screenY).toBe(0);
64
+ });
65
+ it("should scroll targetEl into view", async () => {
66
+ const page = await newSpecPage({
67
+ components: [BackToTop],
68
+ html: `<div id="topEl"><ic-back-to-top target="topEl"></ic-back-to-top></div>`,
69
+ });
70
+ page.root.shadowRoot.querySelector("button").click();
71
+ expect(page.rootInstance.targetElVisible).toBe(true);
72
+ });
73
+ it("should return null targetElement when there's no target matching that given in back to top", async () => {
74
+ jest.spyOn(console, "error").mockImplementation(jest.fn());
75
+ const page = await newSpecPage({
76
+ components: [BackToTop],
77
+ html: `<div><ic-back-to-top target="topEl"></ic-back-to-top></div>`,
78
+ });
79
+ const findTarget = page.rootInstance.findTargetEl("topEl");
80
+ expect(findTarget).toBeNull();
81
+ });
82
+ it("should stop observing observedEl when topObserver exists", async () => {
83
+ const page = await newSpecPage({
84
+ components: [BackToTop],
85
+ html: `<div id="topEl"><ic-back-to-top target="topEl"></ic-back-to-top></div>`,
86
+ });
87
+ page.rootInstance.watchPropHandler(undefined, "topEl");
88
+ page.rootInstance.createTopObserver("topEl");
89
+ expect(page.rootInstance.topObserver).not.toBeNull();
90
+ });
91
+ it("should set footerVisible", async () => {
92
+ const page = await newSpecPage({
93
+ components: [BackToTop],
94
+ html: `<div id="topEl"><ic-back-to-top target="topEl"></ic-back-to-top></div>`,
95
+ });
96
+ page.rootInstance.footerObserverCallback([{ isIntersecting: true }]);
97
+ //value is false as scrollY is always 0
98
+ expect(page.rootInstance.footerVisible).toBe(false);
99
+ page.rootInstance.footerObserverCallback([{ isIntersecting: false }]);
100
+ expect(page.rootInstance.footerVisible).toBe(false);
101
+ });
102
+ it("should set targetElVisible", async () => {
103
+ const page = await newSpecPage({
104
+ components: [BackToTop],
105
+ html: `<div id="topEl"><ic-back-to-top target="topEl"></ic-back-to-top></div>`,
106
+ });
107
+ page.rootInstance.targetElObserverCallback([{ isIntersecting: true }]);
108
+ expect(page.rootInstance.targetElVisible).toBe(true);
109
+ page.rootInstance.targetElObserverCallback([{ isIntersecting: false }]);
110
+ expect(page.rootInstance.targetElVisible).toBe(false);
111
+ });
112
+ it("should test update of target from undefined to value", async () => {
113
+ jest.spyOn(console, "error").mockImplementation(jest.fn());
114
+ const page = await newSpecPage({
115
+ components: [BackToTop],
116
+ html: `<div id="topEl"><ic-back-to-top></ic-back-to-top></div>`,
117
+ });
118
+ page.root.target = "topEl";
119
+ await page.waitForChanges();
120
+ expect(page.rootInstance.target).toBe("topEl");
121
+ });
122
+ });
123
+ //# sourceMappingURL=ic-back-to-top.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-back-to-top.spec.js","sourceRoot":"","sources":["../../../src/components/ic-back-to-top/ic-back-to-top.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { ClassificationBanner } from \"../ic-classification-banner/ic-classification-banner\";\nimport { Footer } from \"../ic-footer/ic-footer\";\nimport { BackToTop } from \"./ic-back-to-top\";\n\nbeforeAll(() => {\n // IntersectionObserver isn't available in test environment\n const mockIntersectionObserver = jest.fn();\n mockIntersectionObserver.mockReturnValue({\n observe: jest.fn().mockReturnValue(null),\n unobserve: jest.fn().mockReturnValue(null),\n disconnect: jest.fn().mockReturnValue(null),\n });\n\n Object.defineProperty(global, \"IntersectionObserver\", {\n value: mockIntersectionObserver,\n });\n});\n\ndescribe(\"ic-back-to-top\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"topEl\"></ic-back-to-top></div>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render\");\n });\n\n it(\"should render with footer\", async () => {\n const page = await newSpecPage({\n components: [BackToTop, Footer],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"topEl\"></ic-back-to-top></div><ic-footer></ic-footer>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render with footer\");\n });\n\n it(\"should render with no targetId set\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<ic-back-to-top></ic-back-to-top>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render with no targetId set\");\n });\n\n it(\"should render when target starts with #\", async () => {\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"#topEl\"></ic-back-to-top></div>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"should render when target starts with #\"\n );\n });\n\n it(\"should offset due to classification banner\", async () => {\n const page = await newSpecPage({\n components: [BackToTop, ClassificationBanner],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"topEl\"></ic-back-to-top><ic-classification-banner></ic-classification-banner></div>`,\n });\n\n expect(page.rootInstance.bannerOffset).toBe(true);\n });\n\n it(\"should scroll to 0,0 if target is null\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top></ic-back-to-top></div>`,\n });\n\n expect(page.rootInstance.isTargetElNull).toBe(true);\n\n page.root.shadowRoot.querySelector(\"button\").click();\n expect(page.win.screenX).toBe(0);\n expect(page.win.screenY).toBe(0);\n });\n\n it(\"should scroll targetEl into view\", async () => {\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"topEl\"></ic-back-to-top></div>`,\n });\n\n page.root.shadowRoot.querySelector(\"button\").click();\n expect(page.rootInstance.targetElVisible).toBe(true);\n });\n\n it(\"should return null targetElement when there's no target matching that given in back to top\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div><ic-back-to-top target=\"topEl\"></ic-back-to-top></div>`,\n });\n\n const findTarget = page.rootInstance.findTargetEl(\"topEl\");\n\n expect(findTarget).toBeNull();\n });\n\n it(\"should stop observing observedEl when topObserver exists\", async () => {\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"topEl\"></ic-back-to-top></div>`,\n });\n\n page.rootInstance.watchPropHandler(undefined, \"topEl\");\n page.rootInstance.createTopObserver(\"topEl\");\n expect(page.rootInstance.topObserver).not.toBeNull();\n });\n\n it(\"should set footerVisible\", async () => {\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"topEl\"></ic-back-to-top></div>`,\n });\n\n page.rootInstance.footerObserverCallback([{ isIntersecting: true }]);\n //value is false as scrollY is always 0\n expect(page.rootInstance.footerVisible).toBe(false);\n\n page.rootInstance.footerObserverCallback([{ isIntersecting: false }]);\n expect(page.rootInstance.footerVisible).toBe(false);\n });\n\n it(\"should set targetElVisible\", async () => {\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top target=\"topEl\"></ic-back-to-top></div>`,\n });\n\n page.rootInstance.targetElObserverCallback([{ isIntersecting: true }]);\n expect(page.rootInstance.targetElVisible).toBe(true);\n\n page.rootInstance.targetElObserverCallback([{ isIntersecting: false }]);\n expect(page.rootInstance.targetElVisible).toBe(false);\n });\n\n it(\"should test update of target from undefined to value\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [BackToTop],\n html: `<div id=\"topEl\"><ic-back-to-top></ic-back-to-top></div>`,\n });\n\n page.root.target = \"topEl\";\n await page.waitForChanges();\n\n expect(page.rootInstance.target).toBe(\"topEl\");\n });\n});\n"]}
@@ -15,12 +15,13 @@ export class Breadcrumb {
15
15
  };
16
16
  this.setSlottedCurrentPageClass = () => {
17
17
  const icLink = this.el.querySelector("ic-link");
18
+ const currentPage = "current-page";
18
19
  if (icLink) {
19
- icLink.classList.remove("current-page");
20
+ icLink.classList.remove(currentPage);
20
21
  if (this.current) {
21
- const hasCurrentPageClass = icLink.classList.contains("current-page");
22
+ const hasCurrentPageClass = icLink.classList.contains(currentPage);
22
23
  if (!hasCurrentPageClass) {
23
- icLink.classList.add("breadcrumb-link", "current-page");
24
+ icLink.classList.add("breadcrumb-link", currentPage);
24
25
  }
25
26
  }
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-breadcrumb.js","sourceRoot":"","sources":["../../../src/components/ic-breadcrumb/ic-breadcrumb.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Element, Method } from \"@stencil/core\";\nimport { IcBreadcrumbDefault } from \"./ic-breadcrumb.types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport backIcon from \"../../assets/back-icon.svg\";\nimport { isSlotUsed } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-breadcrumb\",\n styleUrl: \"ic-breadcrumb.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Breadcrumb {\n /**\n * @slot icon - Content will be rendered to the left of the breadcrumb page title.\n */\n\n @Element() el: HTMLIcBreadcrumbElement;\n /**\n * The title of the breadcrumb.\n */\n @Prop() pageTitle!: string;\n /**\n * The URL that the breadcrumb link points to.\n */\n @Prop() href?: string;\n /**\n * If `true`, aria-current will be set on the breadcrumb.\n */\n @Prop() current?: boolean = false;\n\n /**\n * @internal If `true`, back icon will be displayed.\n */\n @Prop({ reflect: true }) showBackIcon: boolean = false;\n\n /**\n * Sets focus on the breadcrumb.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"ic-link\")) {\n this.el.shadowRoot.querySelector(\"ic-link\").focus();\n }\n }\n\n private renderDefaultBreadcrumb = (\n current: boolean,\n pageTitle: string,\n describedById: string,\n href: string\n ): IcBreadcrumbDefault => {\n const hasPageTitle =\n pageTitle !== null && pageTitle !== undefined && pageTitle !== \"\";\n\n if (current && hasPageTitle) {\n return (\n <span\n class={{\n \"current-page-container\": current,\n }}\n >\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </span>\n );\n }\n\n return (\n <ic-link\n href={href}\n class=\"breadcrumb-link\"\n aria-describedby={this.showBackIcon && describedById && describedById}\n >\n {this.showBackIcon && (\n <div class=\"back-icon\" innerHTML={backIcon}></div>\n )}\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </ic-link>\n );\n };\n\n private setSlottedCurrentPageClass = () => {\n const icLink = this.el.querySelector(\"ic-link\");\n if (icLink) {\n icLink.classList.remove(\"current-page\");\n if (this.current) {\n const hasCurrentPageClass = icLink.classList.contains(\"current-page\");\n if (!hasCurrentPageClass) {\n icLink.classList.add(\"breadcrumb-link\", \"current-page\");\n }\n }\n }\n };\n\n componentWillRender(): void {\n this.setSlottedCurrentPageClass();\n }\n\n render() {\n const { current, href, pageTitle } = this;\n const describedById = `${\n pageTitle && pageTitle.toLowerCase().replace(\" \", \"-\")\n }-describedby`;\n\n const hasPageTitle =\n pageTitle !== null && pageTitle !== undefined && pageTitle !== \"\";\n const hasHref = href !== null && href !== undefined && href !== \"\";\n\n return (\n <Host\n class={{\n back: this.showBackIcon,\n }}\n aria-current={current && \"page\"}\n role=\"listitem\"\n >\n <div class=\"breadcrumb\">\n <span innerHTML={chevronIcon} class=\"chevron\" aria-hidden=\"true\" />\n {this.showBackIcon && describedById && (\n <span\n id={describedById}\n class=\"hide\"\n >{`Back to ${pageTitle}`}</span>\n )}\n {hasPageTitle && hasHref ? (\n this.renderDefaultBreadcrumb(\n current,\n pageTitle,\n describedById,\n href\n )\n ) : (\n <slot />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-breadcrumb.js","sourceRoot":"","sources":["../../../src/components/ic-breadcrumb/ic-breadcrumb.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Element, Method } from \"@stencil/core\";\nimport { IcBreadcrumbDefault } from \"./ic-breadcrumb.types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport backIcon from \"../../assets/back-icon.svg\";\nimport { isSlotUsed } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-breadcrumb\",\n styleUrl: \"ic-breadcrumb.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Breadcrumb {\n /**\n * @slot icon - Content will be rendered to the left of the breadcrumb page title.\n */\n\n @Element() el: HTMLIcBreadcrumbElement;\n /**\n * The title of the breadcrumb.\n */\n @Prop() pageTitle!: string;\n /**\n * The URL that the breadcrumb link points to.\n */\n @Prop() href?: string;\n /**\n * If `true`, aria-current will be set on the breadcrumb.\n */\n @Prop() current?: boolean = false;\n\n /**\n * @internal If `true`, back icon will be displayed.\n */\n @Prop({ reflect: true }) showBackIcon: boolean = false;\n\n /**\n * Sets focus on the breadcrumb.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"ic-link\")) {\n this.el.shadowRoot.querySelector(\"ic-link\").focus();\n }\n }\n\n private renderDefaultBreadcrumb = (\n current: boolean,\n pageTitle: string,\n describedById: string,\n href: string\n ): IcBreadcrumbDefault => {\n const hasPageTitle =\n pageTitle !== null && pageTitle !== undefined && pageTitle !== \"\";\n\n if (current && hasPageTitle) {\n return (\n <span\n class={{\n \"current-page-container\": current,\n }}\n >\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </span>\n );\n }\n\n return (\n <ic-link\n href={href}\n class=\"breadcrumb-link\"\n aria-describedby={this.showBackIcon && describedById && describedById}\n >\n {this.showBackIcon && (\n <div class=\"back-icon\" innerHTML={backIcon}></div>\n )}\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </ic-link>\n );\n };\n\n private setSlottedCurrentPageClass = () => {\n const icLink = this.el.querySelector(\"ic-link\");\n const currentPage = \"current-page\";\n if (icLink) {\n icLink.classList.remove(currentPage);\n if (this.current) {\n const hasCurrentPageClass = icLink.classList.contains(currentPage);\n if (!hasCurrentPageClass) {\n icLink.classList.add(\"breadcrumb-link\", currentPage);\n }\n }\n }\n };\n\n componentWillRender(): void {\n this.setSlottedCurrentPageClass();\n }\n\n render() {\n const { current, href, pageTitle } = this;\n const describedById = `${\n pageTitle && pageTitle.toLowerCase().replace(\" \", \"-\")\n }-describedby`;\n\n const hasPageTitle =\n pageTitle !== null && pageTitle !== undefined && pageTitle !== \"\";\n const hasHref = href !== null && href !== undefined && href !== \"\";\n\n return (\n <Host\n class={{\n back: this.showBackIcon,\n }}\n aria-current={current && \"page\"}\n role=\"listitem\"\n >\n <div class=\"breadcrumb\">\n <span innerHTML={chevronIcon} class=\"chevron\" aria-hidden=\"true\" />\n {this.showBackIcon && describedById && (\n <span\n id={describedById}\n class=\"hide\"\n >{`Back to ${pageTitle}`}</span>\n )}\n {hasPageTitle && hasHref ? (\n this.renderDefaultBreadcrumb(\n current,\n pageTitle,\n describedById,\n href\n )\n ) : (\n <slot />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,118 @@
1
+ import { Breadcrumb } from "./ic-breadcrumb";
2
+ import { newSpecPage } from "@stencil/core/testing";
3
+ describe("ic-breadcrumb", () => {
4
+ it("renders", async () => {
5
+ const page = await newSpecPage({
6
+ components: [Breadcrumb],
7
+ html: `<ic-breadcrumb></ic-breadcrumb>`,
8
+ });
9
+ expect(page.root).toEqualHtml(`
10
+ <ic-breadcrumb role="listitem">
11
+ <mock:shadow-root>
12
+ <div class="breadcrumb">
13
+ <span aria-hidden="true" class="chevron">
14
+ svg
15
+ </span>
16
+ <slot></slot>
17
+ </div>
18
+ </mock:shadow-root>
19
+ </ic-breadcrumb>
20
+ `);
21
+ });
22
+ it("renders with page-title and href", async () => {
23
+ const page = await newSpecPage({
24
+ components: [Breadcrumb],
25
+ html: `<ic-breadcrumb page-title="foo" href="/"></ic-breadcrumb>`,
26
+ });
27
+ expect(page.root).toEqualHtml(`
28
+ <ic-breadcrumb href="/" page-title="foo" role="listitem">
29
+ <mock:shadow-root>
30
+ <div class="breadcrumb">
31
+ <span aria-hidden="true" class="chevron">
32
+ svg
33
+ </span>
34
+ <ic-link class="breadcrumb-link" href="/">
35
+ foo
36
+ </ic-link>
37
+ </div>
38
+ </mock:shadow-root>
39
+ </ic-breadcrumb>
40
+ `);
41
+ });
42
+ it("renders with page-title, href, current", async () => {
43
+ const page = await newSpecPage({
44
+ components: [Breadcrumb],
45
+ html: `<ic-breadcrumb page-title="foo" href="/" current="true"></ic-breadcrumb>`,
46
+ });
47
+ expect(page.root).toEqualHtml(`
48
+ <ic-breadcrumb current="true" href="/" page-title="foo" role="listitem" aria-current="page">
49
+ <mock:shadow-root>
50
+ <div class="breadcrumb">
51
+ <span aria-hidden="true" class="chevron">
52
+ svg
53
+ </span>
54
+ <span class="current-page-container">
55
+ foo
56
+ </span>
57
+ </div>
58
+ </mock:shadow-root>
59
+ </ic-breadcrumb>
60
+ `);
61
+ });
62
+ it("renders with icon", async () => {
63
+ const page = await newSpecPage({
64
+ components: [Breadcrumb],
65
+ html: `
66
+ <ic-breadcrumb page-title="foo" href="/" current="true">
67
+ <svg
68
+ slot="icon"
69
+ width="24"
70
+ height="24"
71
+ viewBox="0 0 24 24"
72
+ fill="none"
73
+ xmlns="http://www.w3.org/2000/svg"
74
+ >
75
+ <path
76
+ d="M12 6.19L17 10.69V18.5H15V12.5H9V18.5H7V10.69L12 6.19ZM12 3.5L2 12.5H5V20.5H11V14.5H13V20.5H19V12.5H22L12 3.5Z"
77
+ fill="currentColor"
78
+ ></path>
79
+ </svg>
80
+ </ic-breadcrumb>`,
81
+ });
82
+ expect(page.root).toEqualHtml(`
83
+ <ic-breadcrumb current="true" href="/" page-title="foo" aria-current="page" role="listitem">
84
+ <mock:shadow-root>
85
+ <div class="breadcrumb">
86
+ <span aria-hidden="true" class="chevron">
87
+ svg
88
+ </span>
89
+ <span class="current-page-container">
90
+ <slot name="icon"></slot>
91
+ foo
92
+ </span>
93
+ </div>
94
+ </mock:shadow-root>
95
+ <svg fill="none" height="24" slot="icon" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
96
+ <path d="M12 6.19L17 10.69V18.5H15V12.5H9V18.5H7V10.69L12 6.19ZM12 3.5L2 12.5H5V20.5H11V14.5H13V20.5H19V12.5H22L12 3.5Z" fill="currentColor"></path>
97
+ </svg>
98
+ </ic-breadcrumb>
99
+ `);
100
+ });
101
+ it("should add the 'current-page' class when current prop is true", async () => {
102
+ const page = await newSpecPage({
103
+ components: [Breadcrumb],
104
+ html: "<ic-breadcrumb id='ic-breadcrumb' current=true><ic-link href='/'>Link</ic-link></ic-breadcrumb>",
105
+ });
106
+ await page.rootInstance.setSlottedCurrentPageClass();
107
+ expect(document.querySelector("ic-breadcrumb").classList.contains("current-page")).toBeTruthy;
108
+ });
109
+ it("should call 'setFocus' when breadcrumb is focused", async () => {
110
+ const page = await newSpecPage({
111
+ components: [Breadcrumb],
112
+ html: `<ic-breadcrumb></ic-breadcrumb>`,
113
+ });
114
+ //Can't expect anything in this test - this is to increase code coverage only
115
+ await page.rootInstance.setFocus().toHaveBeenCalled;
116
+ });
117
+ });
118
+ //# sourceMappingURL=ic-breadcrumb.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-breadcrumb.spec.js","sourceRoot":"","sources":["../../../src/components/ic-breadcrumb/ic-breadcrumb.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;EAC7B,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACvB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;MACxB,IAAI,EAAE,iCAAiC;KACxC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;KAW7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;MACxB,IAAI,EAAE,2DAA2D;KAClE,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;KAa7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;MACxB,IAAI,EAAE,0EAA0E;KACjF,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;KAa7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;IACjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;MACxB,IAAI,EAAE;;;;;;;;;;;;;;;uBAeW;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;KAiB7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;MACxB,IAAI,EAAE,iGAAiG;KACxG,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;IAErD,MAAM,CACJ,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC3E,CAAC,UAAU,CAAC;EACf,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;IACjE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;MACxB,IAAI,EAAE,iCAAiC;KACxC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC;EACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { Breadcrumb } from \"./ic-breadcrumb\";\nimport { newSpecPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-breadcrumb\", () => {\n it(\"renders\", async () => {\n const page = await newSpecPage({\n components: [Breadcrumb],\n html: `<ic-breadcrumb></ic-breadcrumb>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-breadcrumb role=\"listitem\">\n <mock:shadow-root>\n <div class=\"breadcrumb\">\n <span aria-hidden=\"true\" class=\"chevron\">\n svg\n </span>\n <slot></slot>\n </div>\n </mock:shadow-root>\n </ic-breadcrumb>\n `);\n });\n\n it(\"renders with page-title and href\", async () => {\n const page = await newSpecPage({\n components: [Breadcrumb],\n html: `<ic-breadcrumb page-title=\"foo\" href=\"/\"></ic-breadcrumb>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-breadcrumb href=\"/\" page-title=\"foo\" role=\"listitem\">\n <mock:shadow-root>\n <div class=\"breadcrumb\">\n <span aria-hidden=\"true\" class=\"chevron\">\n svg\n </span>\n <ic-link class=\"breadcrumb-link\" href=\"/\">\n foo\n </ic-link>\n </div>\n </mock:shadow-root>\n </ic-breadcrumb>\n `);\n });\n\n it(\"renders with page-title, href, current\", async () => {\n const page = await newSpecPage({\n components: [Breadcrumb],\n html: `<ic-breadcrumb page-title=\"foo\" href=\"/\" current=\"true\"></ic-breadcrumb>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-breadcrumb current=\"true\" href=\"/\" page-title=\"foo\" role=\"listitem\" aria-current=\"page\">\n <mock:shadow-root>\n <div class=\"breadcrumb\">\n <span aria-hidden=\"true\" class=\"chevron\">\n svg\n </span>\n <span class=\"current-page-container\">\n foo\n </span>\n </div>\n </mock:shadow-root>\n </ic-breadcrumb>\n `);\n });\n\n it(\"renders with icon\", async () => {\n const page = await newSpecPage({\n components: [Breadcrumb],\n html: `\n <ic-breadcrumb page-title=\"foo\" href=\"/\" current=\"true\">\n <svg\n slot=\"icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 6.19L17 10.69V18.5H15V12.5H9V18.5H7V10.69L12 6.19ZM12 3.5L2 12.5H5V20.5H11V14.5H13V20.5H19V12.5H22L12 3.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </ic-breadcrumb>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-breadcrumb current=\"true\" href=\"/\" page-title=\"foo\" aria-current=\"page\" role=\"listitem\">\n <mock:shadow-root>\n <div class=\"breadcrumb\">\n <span aria-hidden=\"true\" class=\"chevron\">\n svg\n </span>\n <span class=\"current-page-container\">\n <slot name=\"icon\"></slot>\n foo\n </span>\n </div>\n </mock:shadow-root>\n <svg fill=\"none\" height=\"24\" slot=\"icon\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 6.19L17 10.69V18.5H15V12.5H9V18.5H7V10.69L12 6.19ZM12 3.5L2 12.5H5V20.5H11V14.5H13V20.5H19V12.5H22L12 3.5Z\" fill=\"currentColor\"></path>\n </svg>\n </ic-breadcrumb>\n `);\n });\n\n it(\"should add the 'current-page' class when current prop is true\", async () => {\n const page = await newSpecPage({\n components: [Breadcrumb],\n html: \"<ic-breadcrumb id='ic-breadcrumb' current=true><ic-link href='/'>Link</ic-link></ic-breadcrumb>\",\n });\n\n await page.rootInstance.setSlottedCurrentPageClass();\n\n expect(\n document.querySelector(\"ic-breadcrumb\").classList.contains(\"current-page\")\n ).toBeTruthy;\n });\n\n it(\"should call 'setFocus' when breadcrumb is focused\", async () => {\n const page = await newSpecPage({\n components: [Breadcrumb],\n html: `<ic-breadcrumb></ic-breadcrumb>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n});\n"]}
@@ -0,0 +1,41 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ import { icBreadcrumbGroupCollapsed, icBreadcrumbGroupBack, } from "./ic-breadcrumb-group-test-examples";
3
+ describe("ic-breadcrumb-group", () => {
4
+ it("displays collapsed breadcrumbs", async () => {
5
+ const page = await newE2EPage();
6
+ await page.setContent(icBreadcrumbGroupCollapsed);
7
+ await page.waitForChanges();
8
+ let visibleBreadcrumbs = await page.evaluate(() => {
9
+ return Array.from(document.querySelectorAll("ic-breadcrumb:not(.collapsed-breadcrumb-wrapper")).filter((b) => getComputedStyle(b).display !== "none").length;
10
+ });
11
+ expect(visibleBreadcrumbs).toBe(2);
12
+ const btn = await page.find("ic-breadcrumb.collapsed-breadcrumb-wrapper button");
13
+ expect(btn).not.toBeNull();
14
+ await btn.click();
15
+ await page.waitForChanges();
16
+ visibleBreadcrumbs = await page.evaluate(() => {
17
+ return Array.from(document.querySelectorAll("ic-breadcrumb:not(.collapsed-breadcrumb-wrapper")).filter((b) => getComputedStyle(b).display !== "none").length;
18
+ });
19
+ expect(visibleBreadcrumbs).toBe(3);
20
+ });
21
+ it("renders aria elements when back-breadcrumb-only is set", async () => {
22
+ const page = await newE2EPage();
23
+ await page.setContent(icBreadcrumbGroupBack);
24
+ await page.waitForChanges();
25
+ const describedbySpan = await page.find("ic-breadcrumb-group ic-breadcrumb[show-back-icon] >>> span.hide");
26
+ const icLinkNestedATag = await page.$eval("ic-breadcrumb-group", (el) => {
27
+ const nestedATag = el
28
+ .querySelector("ic-breadcrumb[show-back-icon]")
29
+ .shadowRoot.querySelector("ic-link")
30
+ .shadowRoot.querySelector("a");
31
+ return {
32
+ ariaDescribedBy: nestedATag.getAttribute("aria-describedby"),
33
+ };
34
+ });
35
+ expect(describedbySpan).not.toBeNull();
36
+ expect(describedbySpan.id).toBe("breadcrumb-2-describedby");
37
+ expect(icLinkNestedATag.ariaDescribedBy).toBeTruthy();
38
+ expect(icLinkNestedATag.ariaDescribedBy).toBe("breadcrumb-2-describedby");
39
+ });
40
+ });
41
+ //# sourceMappingURL=ic-breadcrumb-group.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-breadcrumb-group.e2e.js","sourceRoot":"","sources":["../../../src/components/ic-breadcrumb-group/ic-breadcrumb-group.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,qCAAqC,CAAC;AAE7C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;EACnC,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAClD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,IAAI,kBAAkB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MAChD,OAAO,KAAK,CAAC,IAAI,CACf,QAAQ,CAAC,gBAAgB,CACvB,iDAAiD,CAClD,CACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CACzB,mDAAmD,CACpD,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAE3B,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,kBAAkB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MAC5C,OAAO,KAAK,CAAC,IAAI,CACf,QAAQ,CAAC,gBAAgB,CACvB,iDAAiD,CAClD,CACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EACrC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;IACtE,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CACrC,iEAAiE,CAClE,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE;MACtE,MAAM,UAAU,GAAG,EAAE;SAClB,aAAa,CAAC,+BAA+B,CAAC;SAC9C,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;SACnC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;MAEjC,OAAO;QACL,eAAe,EAAE,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC;OAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAE5D,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC;IACtD,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;EAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\nimport {\n icBreadcrumbGroupCollapsed,\n icBreadcrumbGroupBack,\n} from \"./ic-breadcrumb-group-test-examples\";\n\ndescribe(\"ic-breadcrumb-group\", () => {\n it(\"displays collapsed breadcrumbs\", async () => {\n const page = await newE2EPage();\n await page.setContent(icBreadcrumbGroupCollapsed);\n await page.waitForChanges();\n\n let visibleBreadcrumbs = await page.evaluate(() => {\n return Array.from(\n document.querySelectorAll(\n \"ic-breadcrumb:not(.collapsed-breadcrumb-wrapper\"\n )\n ).filter((b) => getComputedStyle(b).display !== \"none\").length;\n });\n\n expect(visibleBreadcrumbs).toBe(2);\n\n const btn = await page.find(\n \"ic-breadcrumb.collapsed-breadcrumb-wrapper button\"\n );\n\n expect(btn).not.toBeNull();\n\n await btn.click();\n\n await page.waitForChanges();\n\n visibleBreadcrumbs = await page.evaluate(() => {\n return Array.from(\n document.querySelectorAll(\n \"ic-breadcrumb:not(.collapsed-breadcrumb-wrapper\"\n )\n ).filter((b) => getComputedStyle(b).display !== \"none\").length;\n });\n\n expect(visibleBreadcrumbs).toBe(3);\n });\n\n it(\"renders aria elements when back-breadcrumb-only is set\", async () => {\n const page = await newE2EPage();\n await page.setContent(icBreadcrumbGroupBack);\n await page.waitForChanges();\n\n const describedbySpan = await page.find(\n \"ic-breadcrumb-group ic-breadcrumb[show-back-icon] >>> span.hide\"\n );\n\n const icLinkNestedATag = await page.$eval(\"ic-breadcrumb-group\", (el) => {\n const nestedATag = el\n .querySelector(\"ic-breadcrumb[show-back-icon]\")\n .shadowRoot.querySelector(\"ic-link\")\n .shadowRoot.querySelector(\"a\");\n\n return {\n ariaDescribedBy: nestedATag.getAttribute(\"aria-describedby\"),\n };\n });\n\n expect(describedbySpan).not.toBeNull();\n expect(describedbySpan.id).toBe(\"breadcrumb-2-describedby\");\n\n expect(icLinkNestedATag.ariaDescribedBy).toBeTruthy();\n expect(icLinkNestedATag.ariaDescribedBy).toBe(\"breadcrumb-2-describedby\");\n });\n});\n"]}
@@ -4,20 +4,21 @@ import { checkResizeObserver, DEVICE_SIZES, getCurrentDeviceSize, } from "../../
4
4
  export class BreadcrumbGroup {
5
5
  constructor() {
6
6
  this.ADD_CLASS_DELAY = 50;
7
+ this.SHOW_BACK_ICON = "show-back-icon";
8
+ this.IC_BREADCRUMB = "ic-breadcrumb";
7
9
  this.setBackBreadcrumb = () => {
8
10
  if (this.backBreadcrumbOnly) {
9
11
  this.setBackBreadcrumbAttr();
10
12
  }
11
13
  };
12
14
  this.setBackBreadcrumbAttr = () => {
13
- const lastParentBreadcrumb = this.getLastParentBreadcrumb();
14
- if (lastParentBreadcrumb) {
15
- lastParentBreadcrumb.classList.add("show");
16
- lastParentBreadcrumb.setAttribute("show-back-icon", "true");
15
+ if (this.lastParentBreadcrumb) {
16
+ this.lastParentBreadcrumb.classList.add("show");
17
+ this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON, "true");
17
18
  }
18
19
  };
19
20
  this.getLastParentBreadcrumb = () => {
20
- const allBreadcrumbs = Array.from(this.el.querySelectorAll("ic-breadcrumb"));
21
+ const allBreadcrumbs = Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));
21
22
  if (allBreadcrumbs.length === 1) {
22
23
  return null;
23
24
  }
@@ -25,15 +26,16 @@ export class BreadcrumbGroup {
25
26
  this.breadcrumb = this.breadcrumbs[this.breadcrumbs.length - 1];
26
27
  return this.breadcrumb;
27
28
  };
29
+ this.lastParentBreadcrumb = this.getLastParentBreadcrumb();
28
30
  this.setDefaultBreadcrumbs = () => {
29
- const allBreadcrumbs = Array.from(this.el.querySelectorAll("ic-breadcrumb"));
31
+ const allBreadcrumbs = Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));
30
32
  allBreadcrumbs.forEach((breadcrumb) => {
31
- breadcrumb.setAttribute("show-back-icon", "false");
33
+ breadcrumb.setAttribute(this.SHOW_BACK_ICON, "false");
32
34
  });
33
35
  };
34
36
  this.setCollapsed = () => {
35
37
  if (this.collapsed) {
36
- const allBreadcrumbs = Array.from(this.el.querySelectorAll("ic-breadcrumb"));
38
+ const allBreadcrumbs = Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));
37
39
  this.collapsedBreadcrumbs = allBreadcrumbs
38
40
  .splice(1, allBreadcrumbs.length - 2)
39
41
  .filter((breadcrumb) => !breadcrumb.classList.contains("collapsed-breadcrumb-wrapper"));
@@ -89,13 +91,11 @@ export class BreadcrumbGroup {
89
91
  });
90
92
  };
91
93
  this.setLastParentCollapsedBackBreadcrumb = () => {
92
- const lastParentBreadcrumb = this.getLastParentBreadcrumb();
93
94
  this.setBackBreadcrumbAttr();
94
- lastParentBreadcrumb.classList.remove("hide");
95
+ this.lastParentBreadcrumb.classList.remove("hide");
95
96
  };
96
97
  this.revertLastParentCollapsedBreadcrumb = () => {
97
- const lastParentBreadcrumb = this.getLastParentBreadcrumb();
98
- lastParentBreadcrumb.setAttribute("show-back-icon", "false");
98
+ this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON, "false");
99
99
  };
100
100
  this.resizeObserver = null;
101
101
  this.resizeObserverCallback = (currSize) => {
@@ -140,7 +140,7 @@ export class BreadcrumbGroup {
140
140
  this.expandedBreadcrumbs = false;
141
141
  }
142
142
  componentWillLoad() {
143
- const allBreadcrumbs = Array.from(this.el.querySelectorAll("ic-breadcrumb"));
143
+ const allBreadcrumbs = Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));
144
144
  if (this.backBreadcrumbOnly) {
145
145
  this.setBackBreadcrumb();
146
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-breadcrumb-group.js","sourceRoot":"","sources":["../../../src/components/ic-breadcrumb-group/ic-breadcrumb-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, Prop, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-breadcrumb-group\",\n styleUrl: \"ic-breadcrumb-group.css\",\n shadow: true,\n})\n\n// Added ResizeObserver to find out width of breadcrumbs and parents. Use side navigation long title for ref.\nexport class BreadcrumbGroup {\n @Element() el: HTMLIcBreadcrumbGroupElement;\n /**\n * If `true`, display only a single breadcrumb for the parent page with a back icon.\n */\n @Prop() backBreadcrumbOnly: boolean = false;\n /**\n * If `true`, all breadcrumbs between the first and last breadcrumb will be collapsed.\n */\n @Prop() collapsed: boolean = false;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() expandedBreadcrumbs: boolean = false;\n\n private breadcrumbs: HTMLIcBreadcrumbElement[];\n private breadcrumb: HTMLIcBreadcrumbElement;\n private collapsedBreadcrumbs: HTMLIcBreadcrumbElement[];\n private ADD_CLASS_DELAY = 50;\n private collapsedBreadcrumbWrapper: HTMLIcBreadcrumbElement;\n\n private setBackBreadcrumb = () => {\n if (this.backBreadcrumbOnly) {\n this.setBackBreadcrumbAttr();\n }\n };\n\n private setBackBreadcrumbAttr = () => {\n const lastParentBreadcrumb = this.getLastParentBreadcrumb();\n if (lastParentBreadcrumb) {\n lastParentBreadcrumb.classList.add(\"show\");\n lastParentBreadcrumb.setAttribute(\"show-back-icon\", \"true\");\n }\n };\n\n private getLastParentBreadcrumb = (): HTMLIcBreadcrumbElement | null => {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(\"ic-breadcrumb\")\n );\n\n if (allBreadcrumbs.length === 1) {\n return null;\n }\n\n this.breadcrumbs = allBreadcrumbs.filter(\n (breadcrumb) => !breadcrumb.getAttribute(\"current\")\n );\n this.breadcrumb = this.breadcrumbs[this.breadcrumbs.length - 1];\n\n return this.breadcrumb;\n };\n\n private setDefaultBreadcrumbs = () => {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(\"ic-breadcrumb\")\n );\n allBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.setAttribute(\"show-back-icon\", \"false\");\n });\n };\n\n private setCollapsed = () => {\n if (this.collapsed) {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(\"ic-breadcrumb\")\n );\n this.collapsedBreadcrumbs = allBreadcrumbs\n .splice(1, allBreadcrumbs.length - 2)\n .filter(\n (breadcrumb) =>\n !breadcrumb.classList.contains(\"collapsed-breadcrumb-wrapper\")\n );\n\n this.collapsedBreadcrumbs.forEach((breadcrumb) =>\n breadcrumb.classList.add(\"hide\")\n );\n\n const firstBreadcrumb = allBreadcrumbs[0];\n\n if (firstBreadcrumb) {\n firstBreadcrumb.insertAdjacentElement(\n \"afterend\",\n this.collapsedBreadcrumbWrapper\n );\n }\n }\n };\n\n private renderCollapsedBreadcrumb = () => {\n this.collapsedBreadcrumbWrapper = document.createElement(\"ic-breadcrumb\");\n this.collapsedBreadcrumbWrapper.classList.add(\n \"collapsed-breadcrumb-wrapper\"\n );\n const collapsedBreadcrumbEl = document.createElement(\"button\");\n\n const ariaLabel = document.createElement(\"span\");\n ariaLabel.id = \"collapsed-button-label\";\n ariaLabel.innerText = \"Collapsed breadcrumbs\";\n ariaLabel.className = \"hide\";\n collapsedBreadcrumbEl.setAttribute(\n \"aria-labelledby\",\n \"collapsed-button-label\"\n );\n\n const ariaDescribed = document.createElement(\"span\");\n ariaDescribed.id = \"collapsed-button-described\";\n ariaDescribed.innerText = \"Select to view collapsed breadcrumbs\";\n ariaDescribed.className = \"hide\";\n collapsedBreadcrumbEl.setAttribute(\n \"aria-describedby\",\n \"collapsed-button-described\"\n );\n\n collapsedBreadcrumbEl.id = \"collapsed-ellipsis\";\n collapsedBreadcrumbEl.innerText = \"...\";\n collapsedBreadcrumbEl.classList.add(\"collapsed-breadcrumb\");\n collapsedBreadcrumbEl.addEventListener(\"click\", () => {\n this.handleHiddenCollapsedBreadcrumbs(this.collapsedBreadcrumbWrapper);\n });\n\n this.collapsedBreadcrumbWrapper.append(ariaDescribed);\n this.collapsedBreadcrumbWrapper.append(ariaLabel);\n this.collapsedBreadcrumbWrapper.append(collapsedBreadcrumbEl);\n\n return this.collapsedBreadcrumbWrapper;\n };\n\n private handleHiddenCollapsedBreadcrumbs = (\n collapsedBreadcrumbWrapper: HTMLIcBreadcrumbElement\n ) => {\n collapsedBreadcrumbWrapper.remove();\n this.collapsedBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.classList.add(\"visuallyhidden\");\n breadcrumb.classList.remove(\"hide\");\n setTimeout(() => {\n breadcrumb.classList.add(\"fade\");\n }, this.ADD_CLASS_DELAY);\n\n this.removeVisuallyHiddenClass(breadcrumb);\n });\n this.expandedBreadcrumbs = true;\n };\n\n private removeVisuallyHiddenClass = (breadcrumb: HTMLIcBreadcrumbElement) => {\n breadcrumb.addEventListener(\"transitionend\", (e) => {\n if (e.propertyName === \"opacity\") {\n breadcrumb.classList.remove(\"visuallyhidden\");\n }\n });\n };\n\n private setLastParentCollapsedBackBreadcrumb = () => {\n const lastParentBreadcrumb = this.getLastParentBreadcrumb();\n this.setBackBreadcrumbAttr();\n lastParentBreadcrumb.classList.remove(\"hide\");\n };\n\n private revertLastParentCollapsedBreadcrumb = () => {\n const lastParentBreadcrumb = this.getLastParentBreadcrumb();\n lastParentBreadcrumb.setAttribute(\"show-back-icon\", \"false\");\n };\n\n private resizeObserver: ResizeObserver = null;\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n\n if (this.deviceSize <= DEVICE_SIZES.S) {\n this.el.setAttribute(\"back-breadcrumb-only\", \"true\");\n if (this.collapsed) {\n this.setLastParentCollapsedBackBreadcrumb();\n } else {\n this.setBackBreadcrumb();\n }\n } else {\n this.el.setAttribute(\"back-breadcrumb-only\", \"false\");\n if (this.collapsed && this.breadcrumbs && this.breadcrumbs.length > 2) {\n this.revertLastParentCollapsedBreadcrumb();\n if (this.expandedBreadcrumbs) {\n this.setDefaultBreadcrumbs();\n } else {\n this.setCollapsed();\n }\n } else {\n this.setDefaultBreadcrumbs();\n }\n }\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n componentWillLoad(): void {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(\"ic-breadcrumb\")\n );\n\n if (this.backBreadcrumbOnly) {\n this.setBackBreadcrumb();\n } else {\n checkResizeObserver(this.runResizeObserver);\n }\n\n if (this.collapsed) {\n this.collapsedBreadcrumbWrapper = this.renderCollapsedBreadcrumb();\n\n if (allBreadcrumbs.length > 2) {\n if (getCurrentDeviceSize() === DEVICE_SIZES.S) {\n this.setLastParentCollapsedBackBreadcrumb();\n } else {\n this.setCollapsed();\n }\n }\n }\n }\n\n render() {\n return (\n <Host\n class={{\n back: this.backBreadcrumbOnly,\n collapsed: this.collapsed,\n }}\n >\n <nav aria-label=\"breadcrumbs\">\n <ol>\n <slot />\n </ol>\n </nav>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-breadcrumb-group.js","sourceRoot":"","sources":["../../../src/components/ic-breadcrumb-group/ic-breadcrumb-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, Prop, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-breadcrumb-group\",\n styleUrl: \"ic-breadcrumb-group.css\",\n shadow: true,\n})\n\n// Added ResizeObserver to find out width of breadcrumbs and parents. Use side navigation long title for ref.\nexport class BreadcrumbGroup {\n @Element() el: HTMLIcBreadcrumbGroupElement;\n /**\n * If `true`, display only a single breadcrumb for the parent page with a back icon.\n */\n @Prop() backBreadcrumbOnly: boolean = false;\n /**\n * If `true`, all breadcrumbs between the first and last breadcrumb will be collapsed.\n */\n @Prop() collapsed: boolean = false;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() expandedBreadcrumbs: boolean = false;\n\n private breadcrumbs: HTMLIcBreadcrumbElement[];\n private breadcrumb: HTMLIcBreadcrumbElement;\n private collapsedBreadcrumbs: HTMLIcBreadcrumbElement[];\n private ADD_CLASS_DELAY = 50;\n private collapsedBreadcrumbWrapper: HTMLIcBreadcrumbElement;\n private SHOW_BACK_ICON: string = \"show-back-icon\";\n private IC_BREADCRUMB: string = \"ic-breadcrumb\";\n\n private setBackBreadcrumb = () => {\n if (this.backBreadcrumbOnly) {\n this.setBackBreadcrumbAttr();\n }\n };\n\n private setBackBreadcrumbAttr = () => {\n if (this.lastParentBreadcrumb) {\n this.lastParentBreadcrumb.classList.add(\"show\");\n this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON, \"true\");\n }\n };\n\n private getLastParentBreadcrumb = (): HTMLIcBreadcrumbElement | null => {\n const allBreadcrumbs: HTMLIcBreadcrumbElement[] = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n\n if (allBreadcrumbs.length === 1) {\n return null;\n }\n\n this.breadcrumbs = allBreadcrumbs.filter(\n (breadcrumb) => !breadcrumb.getAttribute(\"current\")\n );\n this.breadcrumb = this.breadcrumbs[this.breadcrumbs.length - 1];\n\n return this.breadcrumb;\n };\n\n private lastParentBreadcrumb = this.getLastParentBreadcrumb();\n\n private setDefaultBreadcrumbs = () => {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n allBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.setAttribute(this.SHOW_BACK_ICON, \"false\");\n });\n };\n\n private setCollapsed = () => {\n if (this.collapsed) {\n const allBreadcrumbs: HTMLIcBreadcrumbElement[] = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n this.collapsedBreadcrumbs = allBreadcrumbs\n .splice(1, allBreadcrumbs.length - 2)\n .filter(\n (breadcrumb) =>\n !breadcrumb.classList.contains(\"collapsed-breadcrumb-wrapper\")\n );\n\n this.collapsedBreadcrumbs.forEach((breadcrumb) =>\n breadcrumb.classList.add(\"hide\")\n );\n\n const firstBreadcrumb = allBreadcrumbs[0];\n\n if (firstBreadcrumb) {\n firstBreadcrumb.insertAdjacentElement(\n \"afterend\",\n this.collapsedBreadcrumbWrapper\n );\n }\n }\n };\n\n private renderCollapsedBreadcrumb = () => {\n this.collapsedBreadcrumbWrapper = document.createElement(\"ic-breadcrumb\");\n this.collapsedBreadcrumbWrapper.classList.add(\n \"collapsed-breadcrumb-wrapper\"\n );\n const collapsedBreadcrumbEl = document.createElement(\"button\");\n\n const ariaLabel = document.createElement(\"span\");\n ariaLabel.id = \"collapsed-button-label\";\n ariaLabel.innerText = \"Collapsed breadcrumbs\";\n ariaLabel.className = \"hide\";\n collapsedBreadcrumbEl.setAttribute(\n \"aria-labelledby\",\n \"collapsed-button-label\"\n );\n\n const ariaDescribed = document.createElement(\"span\");\n ariaDescribed.id = \"collapsed-button-described\";\n ariaDescribed.innerText = \"Select to view collapsed breadcrumbs\";\n ariaDescribed.className = \"hide\";\n collapsedBreadcrumbEl.setAttribute(\n \"aria-describedby\",\n \"collapsed-button-described\"\n );\n\n collapsedBreadcrumbEl.id = \"collapsed-ellipsis\";\n collapsedBreadcrumbEl.innerText = \"...\";\n collapsedBreadcrumbEl.classList.add(\"collapsed-breadcrumb\");\n collapsedBreadcrumbEl.addEventListener(\"click\", () => {\n this.handleHiddenCollapsedBreadcrumbs(this.collapsedBreadcrumbWrapper);\n });\n\n this.collapsedBreadcrumbWrapper.append(ariaDescribed);\n this.collapsedBreadcrumbWrapper.append(ariaLabel);\n this.collapsedBreadcrumbWrapper.append(collapsedBreadcrumbEl);\n\n return this.collapsedBreadcrumbWrapper;\n };\n\n private handleHiddenCollapsedBreadcrumbs = (\n collapsedBreadcrumbWrapper: HTMLIcBreadcrumbElement\n ) => {\n collapsedBreadcrumbWrapper.remove();\n this.collapsedBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.classList.add(\"visuallyhidden\");\n breadcrumb.classList.remove(\"hide\");\n setTimeout(() => {\n breadcrumb.classList.add(\"fade\");\n }, this.ADD_CLASS_DELAY);\n\n this.removeVisuallyHiddenClass(breadcrumb);\n });\n this.expandedBreadcrumbs = true;\n };\n\n private removeVisuallyHiddenClass = (breadcrumb: HTMLIcBreadcrumbElement) => {\n breadcrumb.addEventListener(\"transitionend\", (e) => {\n if (e.propertyName === \"opacity\") {\n breadcrumb.classList.remove(\"visuallyhidden\");\n }\n });\n };\n\n private setLastParentCollapsedBackBreadcrumb = () => {\n this.setBackBreadcrumbAttr();\n this.lastParentBreadcrumb.classList.remove(\"hide\");\n };\n\n private revertLastParentCollapsedBreadcrumb = () => {\n this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON, \"false\");\n };\n\n private resizeObserver: ResizeObserver = null;\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n\n if (this.deviceSize <= DEVICE_SIZES.S) {\n this.el.setAttribute(\"back-breadcrumb-only\", \"true\");\n if (this.collapsed) {\n this.setLastParentCollapsedBackBreadcrumb();\n } else {\n this.setBackBreadcrumb();\n }\n } else {\n this.el.setAttribute(\"back-breadcrumb-only\", \"false\");\n if (this.collapsed && this.breadcrumbs && this.breadcrumbs.length > 2) {\n this.revertLastParentCollapsedBreadcrumb();\n if (this.expandedBreadcrumbs) {\n this.setDefaultBreadcrumbs();\n } else {\n this.setCollapsed();\n }\n } else {\n this.setDefaultBreadcrumbs();\n }\n }\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n componentWillLoad(): void {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n\n if (this.backBreadcrumbOnly) {\n this.setBackBreadcrumb();\n } else {\n checkResizeObserver(this.runResizeObserver);\n }\n\n if (this.collapsed) {\n this.collapsedBreadcrumbWrapper = this.renderCollapsedBreadcrumb();\n\n if (allBreadcrumbs.length > 2) {\n if (getCurrentDeviceSize() === DEVICE_SIZES.S) {\n this.setLastParentCollapsedBackBreadcrumb();\n } else {\n this.setCollapsed();\n }\n }\n }\n }\n\n render() {\n return (\n <Host\n class={{\n back: this.backBreadcrumbOnly,\n collapsed: this.collapsed,\n }}\n >\n <nav aria-label=\"breadcrumbs\">\n <ol>\n <slot />\n </ol>\n </nav>\n </Host>\n );\n }\n}\n"]}