@ukic/web-components 2.4.1 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (486) hide show
  1. package/dist/cjs/core.cjs.js +3 -3
  2. package/dist/cjs/core.cjs.js.map +1 -1
  3. package/dist/cjs/ic-accordion-group.cjs.entry.js +94 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -0
  5. package/dist/cjs/ic-accordion.cjs.entry.js +117 -0
  6. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -0
  7. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +156 -0
  11. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -0
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +3 -3
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card.cjs.entry.js +2 -2
  17. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-chip.cjs.entry.js +2 -2
  21. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-dialog.cjs.entry.js +37 -15
  26. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js +53 -29
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-item.cjs.entry.js +27 -6
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-radio-group.cjs.entry.js +51 -5
  51. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-select.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-side-navigation.cjs.entry.js +29 -7
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-stepper.cjs.entry.js +4 -1
  62. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-tab.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-text-field.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  75. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  76. package/dist/cjs/{index-54d2bed9.js → index-afe53465.js} +57 -15
  77. package/dist/cjs/index-afe53465.js.map +1 -0
  78. package/dist/cjs/loader.cjs.js +2 -2
  79. package/dist/cjs/types-7d67439f.js.map +1 -1
  80. package/dist/collection/collection-manifest.json +7 -4
  81. package/dist/collection/components/ic-accordion/ic-accordion.css +551 -0
  82. package/dist/collection/components/ic-accordion/ic-accordion.js +291 -0
  83. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -0
  84. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js +57 -0
  85. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js.map +1 -0
  86. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +346 -0
  87. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -0
  88. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +465 -0
  89. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +216 -0
  90. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -0
  91. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js +31 -0
  92. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js.map +1 -0
  93. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +114 -0
  94. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -0
  95. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +126 -0
  96. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -0
  97. package/dist/collection/components/ic-badge/ic-badge.css +179 -0
  98. package/dist/collection/components/ic-badge/ic-badge.js +374 -0
  99. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -0
  100. package/dist/collection/components/ic-badge/ic-badge.types.js +2 -0
  101. package/dist/collection/components/ic-badge/ic-badge.types.js.map +1 -0
  102. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js +16 -0
  103. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js.map +1 -0
  104. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +167 -0
  105. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -0
  106. package/dist/collection/components/ic-button/ic-button.css +9 -5
  107. package/dist/collection/components/ic-button/ic-button.js +2 -1
  108. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  109. package/dist/collection/components/ic-card/ic-card.css +22 -0
  110. package/dist/collection/components/ic-chip/ic-chip.js +2 -1
  111. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  112. package/dist/collection/components/ic-dialog/ic-dialog.js +36 -14
  113. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  114. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +1 -1
  115. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +52 -28
  116. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  117. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +18 -4
  118. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +25 -4
  119. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  120. package/dist/collection/components/ic-radio-group/ic-radio-group.css +3 -3
  121. package/dist/collection/components/ic-radio-group/ic-radio-group.js +57 -6
  122. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  123. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +33 -2
  124. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  125. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +4 -0
  126. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  127. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +3 -1
  128. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  129. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +46 -5
  130. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +27 -5
  131. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  132. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js +171 -0
  133. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js.map +1 -1
  134. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +45 -1
  135. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  136. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +33 -0
  137. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
  138. package/dist/collection/components/ic-stepper/ic-stepper.js +3 -0
  139. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  140. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +3 -1
  141. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  142. package/dist/collection/components/ic-tab/ic-tab.js +3 -2
  143. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  144. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js +2 -0
  145. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +1 -1
  146. package/dist/collection/components/ic-typography/ic-typography.css +10 -0
  147. package/dist/collection/components/ic-typography/ic-typography.js +1 -1
  148. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +1 -1
  149. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
  150. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +14 -0
  151. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  152. package/dist/collection/utils/types.js.map +1 -1
  153. package/dist/components/helpers.js +1 -1
  154. package/dist/components/ic-accordion-group.d.ts +11 -0
  155. package/dist/components/ic-accordion-group.js +140 -0
  156. package/dist/components/ic-accordion-group.js.map +1 -0
  157. package/dist/components/ic-accordion.d.ts +11 -0
  158. package/dist/components/ic-accordion.js +146 -0
  159. package/dist/components/ic-accordion.js.map +1 -0
  160. package/dist/components/ic-back-to-top.js +2 -0
  161. package/dist/components/ic-back-to-top.js.map +1 -1
  162. package/dist/components/ic-badge.d.ts +11 -0
  163. package/dist/components/ic-badge.js +188 -0
  164. package/dist/components/ic-badge.js.map +1 -0
  165. package/dist/components/ic-breadcrumb-group.js +1 -1
  166. package/dist/components/ic-button2.js +2 -2
  167. package/dist/components/ic-button2.js.map +1 -1
  168. package/dist/components/ic-card.js +1 -1
  169. package/dist/components/ic-card.js.map +1 -1
  170. package/dist/components/ic-checkbox-group.js +1 -1
  171. package/dist/components/ic-checkbox.js +1 -1
  172. package/dist/components/ic-chip.js +1 -1
  173. package/dist/components/ic-chip.js.map +1 -1
  174. package/dist/components/ic-data-row.js +1 -1
  175. package/dist/components/ic-dialog.js +39 -15
  176. package/dist/components/ic-dialog.js.map +1 -1
  177. package/dist/components/ic-divider2.js +1 -1
  178. package/dist/components/ic-footer-link-group.js +1 -1
  179. package/dist/components/ic-footer-link.js +1 -1
  180. package/dist/components/ic-footer.js +1 -1
  181. package/dist/components/ic-hero.js +1 -1
  182. package/dist/components/ic-hero.js.map +1 -1
  183. package/dist/components/ic-horizontal-scroll2.js +2 -2
  184. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  185. package/dist/components/ic-input-component-container2.js +1 -1
  186. package/dist/components/ic-input-component-container2.js.map +1 -1
  187. package/dist/components/ic-input-label2.js +1 -1
  188. package/dist/components/ic-input-validation2.js +1 -1
  189. package/dist/components/ic-loading-indicator2.js +3 -0
  190. package/dist/components/ic-loading-indicator2.js.map +1 -1
  191. package/dist/components/ic-menu-item2.js +1 -1
  192. package/dist/components/ic-menu2.js +3 -0
  193. package/dist/components/ic-menu2.js.map +1 -1
  194. package/dist/components/ic-navigation-button.js +1 -1
  195. package/dist/components/ic-navigation-group.js +53 -29
  196. package/dist/components/ic-navigation-group.js.map +1 -1
  197. package/dist/components/ic-navigation-item.js +27 -6
  198. package/dist/components/ic-navigation-item.js.map +1 -1
  199. package/dist/components/ic-navigation-menu2.js +1 -1
  200. package/dist/components/ic-page-header.js +1 -1
  201. package/dist/components/ic-pagination.js +4 -1
  202. package/dist/components/ic-pagination.js.map +1 -1
  203. package/dist/components/ic-popover-menu.js +4 -2
  204. package/dist/components/ic-popover-menu.js.map +1 -1
  205. package/dist/components/ic-radio-group.js +57 -7
  206. package/dist/components/ic-radio-group.js.map +1 -1
  207. package/dist/components/ic-radio-option.js +4 -2
  208. package/dist/components/ic-radio-option.js.map +1 -1
  209. package/dist/components/ic-search-bar.js +7 -2
  210. package/dist/components/ic-search-bar.js.map +1 -1
  211. package/dist/components/ic-select.js +6 -1
  212. package/dist/components/ic-select.js.map +1 -1
  213. package/dist/components/ic-side-navigation.js +29 -7
  214. package/dist/components/ic-side-navigation.js.map +1 -1
  215. package/dist/components/ic-step.js +2 -0
  216. package/dist/components/ic-step.js.map +1 -1
  217. package/dist/components/ic-stepper.js +4 -1
  218. package/dist/components/ic-stepper.js.map +1 -1
  219. package/dist/components/ic-switch.js +1 -1
  220. package/dist/components/ic-switch.js.map +1 -1
  221. package/dist/components/ic-tab-context.js +3 -1
  222. package/dist/components/ic-tab-context.js.map +1 -1
  223. package/dist/components/ic-tab.js +4 -2
  224. package/dist/components/ic-tab.js.map +1 -1
  225. package/dist/components/ic-text-field2.js +5 -2
  226. package/dist/components/ic-text-field2.js.map +1 -1
  227. package/dist/components/ic-theme.js +3 -1
  228. package/dist/components/ic-theme.js.map +1 -1
  229. package/dist/components/ic-toast.js +1 -1
  230. package/dist/components/ic-toast.js.map +1 -1
  231. package/dist/components/ic-tooltip2.js +2 -0
  232. package/dist/components/ic-tooltip2.js.map +1 -1
  233. package/dist/components/ic-top-navigation.js +4 -2
  234. package/dist/components/ic-top-navigation.js.map +1 -1
  235. package/dist/components/ic-typography2.js +3 -1
  236. package/dist/components/ic-typography2.js.map +1 -1
  237. package/dist/components/types.js.map +1 -1
  238. package/dist/core/core.css +6 -3
  239. package/dist/core/core.esm.js +1 -1
  240. package/dist/core/core.esm.js.map +1 -1
  241. package/dist/core/{p-937ecd5b.entry.js → p-0353a1d8.entry.js} +2 -2
  242. package/dist/core/p-038601a3.entry.js +2 -0
  243. package/dist/core/p-038601a3.entry.js.map +1 -0
  244. package/dist/core/{p-a421d3a1.entry.js → p-05249867.entry.js} +2 -2
  245. package/dist/core/p-08c6119a.entry.js +2 -0
  246. package/dist/core/p-08c6119a.entry.js.map +1 -0
  247. package/dist/core/{p-a0a02a13.entry.js → p-09004694.entry.js} +2 -2
  248. package/dist/core/{p-d16100e8.entry.js → p-0d71a937.entry.js} +2 -2
  249. package/dist/core/{p-1c54269e.entry.js → p-0e1a4f8d.entry.js} +2 -2
  250. package/dist/core/{p-607e7bf2.entry.js → p-0fdb1e52.entry.js} +2 -2
  251. package/dist/core/{p-d20917ae.entry.js → p-10bfc292.entry.js} +2 -2
  252. package/dist/core/{p-27bf4783.entry.js → p-1650c1c2.entry.js} +2 -2
  253. package/dist/core/{p-e2d0039d.entry.js → p-1db57a3f.entry.js} +2 -2
  254. package/dist/core/p-1ed0a71d.entry.js +2 -0
  255. package/dist/core/{p-0dcc76b1.entry.js.map → p-1ed0a71d.entry.js.map} +1 -1
  256. package/dist/core/{p-4c4261e7.entry.js → p-2184a72f.entry.js} +2 -2
  257. package/dist/core/p-293f4c5f.entry.js +2 -0
  258. package/dist/core/p-293f4c5f.entry.js.map +1 -0
  259. package/dist/core/{p-62499150.entry.js → p-2afa6d29.entry.js} +2 -2
  260. package/dist/core/{p-cb2c18de.entry.js → p-2c09f9e0.entry.js} +2 -2
  261. package/dist/core/{p-3297713b.entry.js → p-2d21de19.entry.js} +2 -2
  262. package/dist/core/{p-5b8be53f.entry.js → p-32510505.entry.js} +2 -2
  263. package/dist/core/{p-99741b0f.entry.js → p-482397ae.entry.js} +2 -2
  264. package/dist/core/p-482397ae.entry.js.map +1 -0
  265. package/dist/core/{p-831b0f3f.entry.js → p-4ef8342f.entry.js} +2 -2
  266. package/dist/core/{p-c390fbad.entry.js → p-4f070381.entry.js} +2 -2
  267. package/dist/core/{p-9650e00e.entry.js → p-4fbe1dc3.entry.js} +2 -2
  268. package/dist/core/{p-68fda79a.entry.js → p-5401863e.entry.js} +2 -2
  269. package/dist/core/{p-83e535de.entry.js → p-59b24198.entry.js} +2 -2
  270. package/dist/core/p-5cc070c4.entry.js +2 -0
  271. package/dist/core/p-5cc070c4.entry.js.map +1 -0
  272. package/dist/core/p-5f881644.entry.js +2 -0
  273. package/dist/core/p-5f881644.entry.js.map +1 -0
  274. package/dist/core/p-60fef702.entry.js +2 -0
  275. package/dist/core/p-60fef702.entry.js.map +1 -0
  276. package/dist/core/p-613aa265.js.map +1 -1
  277. package/dist/core/{p-94903a21.entry.js → p-64999983.entry.js} +2 -2
  278. package/dist/core/p-64999983.entry.js.map +1 -0
  279. package/dist/core/{p-521c8f40.entry.js → p-675fe4db.entry.js} +2 -2
  280. package/dist/core/p-675fe4db.entry.js.map +1 -0
  281. package/dist/core/{p-67c18f72.entry.js → p-6aec6bce.entry.js} +2 -2
  282. package/dist/core/{p-27897d29.entry.js → p-6ec3cd12.entry.js} +2 -2
  283. package/dist/core/p-76daa5b0.entry.js +2 -0
  284. package/dist/core/{p-8e6169e0.entry.js → p-777e5556.entry.js} +2 -2
  285. package/dist/core/p-7a61d94a.entry.js +2 -0
  286. package/dist/core/p-7a61d94a.entry.js.map +1 -0
  287. package/dist/core/{p-18068237.js → p-85903a81.js} +3 -3
  288. package/dist/core/p-85903a81.js.map +1 -0
  289. package/dist/core/{p-ebd60291.entry.js → p-913da6d0.entry.js} +2 -2
  290. package/dist/core/{p-77266738.entry.js → p-932fe2a0.entry.js} +2 -2
  291. package/dist/core/p-9bd160bb.entry.js +2 -0
  292. package/dist/core/p-9bd160bb.entry.js.map +1 -0
  293. package/dist/core/{p-5fcbcc3f.entry.js → p-9ee852d9.entry.js} +2 -2
  294. package/dist/core/{p-d65ace31.entry.js → p-a388750d.entry.js} +2 -2
  295. package/dist/core/{p-b0b1de0e.entry.js → p-a46c1690.entry.js} +2 -2
  296. package/dist/core/{p-3fc638fc.entry.js → p-abf60097.entry.js} +2 -2
  297. package/dist/core/{p-630ae754.entry.js → p-ac82781b.entry.js} +2 -2
  298. package/dist/core/{p-6781620e.entry.js → p-ad520f36.entry.js} +2 -2
  299. package/dist/core/p-b42b8ffa.entry.js +2 -0
  300. package/dist/core/p-b42b8ffa.entry.js.map +1 -0
  301. package/dist/core/p-b96bd8be.entry.js +2 -0
  302. package/dist/core/p-b96bd8be.entry.js.map +1 -0
  303. package/dist/core/{p-85dd5e5b.entry.js → p-c1e8d13e.entry.js} +2 -2
  304. package/dist/core/{p-ebe76390.js → p-c30d9b20.js} +2 -2
  305. package/dist/core/p-ca6e5474.entry.js +2 -0
  306. package/dist/core/p-ca6e5474.entry.js.map +1 -0
  307. package/dist/core/{p-0a30f1e5.entry.js → p-ceed0fee.entry.js} +2 -2
  308. package/dist/core/{p-c1859843.entry.js → p-cf95dd66.entry.js} +2 -2
  309. package/dist/core/{p-87149cbd.entry.js → p-d005a71a.entry.js} +2 -2
  310. package/dist/core/{p-65df7222.entry.js → p-d5282ede.entry.js} +2 -2
  311. package/dist/core/{p-4f7c20b3.entry.js → p-d9fc7243.entry.js} +2 -2
  312. package/dist/core/{p-16e8bb5a.entry.js → p-db4a15bd.entry.js} +2 -2
  313. package/dist/core/{p-c31e6dbb.entry.js → p-e59d2d50.entry.js} +2 -2
  314. package/dist/core/p-e75b04af.entry.js +2 -0
  315. package/dist/core/p-e75b04af.entry.js.map +1 -0
  316. package/dist/core/{p-e3923b67.entry.js → p-e904d985.entry.js} +2 -2
  317. package/dist/core/{p-7194c255.entry.js → p-ea55f25c.entry.js} +2 -2
  318. package/dist/core/p-ea55f25c.entry.js.map +1 -0
  319. package/dist/esm/core.js +4 -4
  320. package/dist/esm/core.js.map +1 -1
  321. package/dist/esm/{helpers-b0e80358.js → helpers-81a88a11.js} +2 -2
  322. package/dist/esm/{helpers-b0e80358.js.map → helpers-81a88a11.js.map} +1 -1
  323. package/dist/esm/ic-accordion-group.entry.js +90 -0
  324. package/dist/esm/ic-accordion-group.entry.js.map +1 -0
  325. package/dist/esm/ic-accordion.entry.js +113 -0
  326. package/dist/esm/ic-accordion.entry.js.map +1 -0
  327. package/dist/esm/ic-alert.entry.js +2 -2
  328. package/dist/esm/ic-back-to-top.entry.js +2 -2
  329. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  330. package/dist/esm/ic-badge.entry.js +152 -0
  331. package/dist/esm/ic-badge.entry.js.map +1 -0
  332. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  333. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  334. package/dist/esm/ic-button_3.entry.js +4 -4
  335. package/dist/esm/ic-button_3.entry.js.map +1 -1
  336. package/dist/esm/ic-card.entry.js +3 -3
  337. package/dist/esm/ic-card.entry.js.map +1 -1
  338. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  339. package/dist/esm/ic-checkbox.entry.js +2 -2
  340. package/dist/esm/ic-chip.entry.js +3 -3
  341. package/dist/esm/ic-chip.entry.js.map +1 -1
  342. package/dist/esm/ic-classification-banner.entry.js +1 -1
  343. package/dist/esm/ic-data-entity.entry.js +1 -1
  344. package/dist/esm/ic-data-row.entry.js +2 -2
  345. package/dist/esm/ic-dialog.entry.js +38 -16
  346. package/dist/esm/ic-dialog.entry.js.map +1 -1
  347. package/dist/esm/ic-divider.entry.js +2 -2
  348. package/dist/esm/ic-empty-state.entry.js +2 -2
  349. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  350. package/dist/esm/ic-footer-link.entry.js +2 -2
  351. package/dist/esm/ic-footer.entry.js +2 -2
  352. package/dist/esm/ic-hero.entry.js +2 -2
  353. package/dist/esm/ic-horizontal-scroll.entry.js +3 -3
  354. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  355. package/dist/esm/ic-input-component-container_3.entry.js +2 -2
  356. package/dist/esm/ic-input-label_2.entry.js +2 -2
  357. package/dist/esm/ic-link.entry.js +2 -2
  358. package/dist/esm/ic-menu-group.entry.js +1 -1
  359. package/dist/esm/ic-menu-item.entry.js +2 -2
  360. package/dist/esm/ic-navigation-button.entry.js +2 -2
  361. package/dist/esm/ic-navigation-group.entry.js +54 -30
  362. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  363. package/dist/esm/ic-navigation-item.entry.js +28 -7
  364. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  365. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  366. package/dist/esm/ic-page-header.entry.js +2 -2
  367. package/dist/esm/ic-pagination-item.entry.js +2 -2
  368. package/dist/esm/ic-pagination.entry.js +2 -2
  369. package/dist/esm/ic-popover-menu.entry.js +2 -2
  370. package/dist/esm/ic-radio-group.entry.js +52 -6
  371. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  372. package/dist/esm/ic-radio-option.entry.js +2 -2
  373. package/dist/esm/ic-search-bar.entry.js +2 -2
  374. package/dist/esm/ic-section-container.entry.js +1 -1
  375. package/dist/esm/ic-select.entry.js +2 -2
  376. package/dist/esm/ic-side-navigation.entry.js +30 -8
  377. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  378. package/dist/esm/ic-skeleton.entry.js +1 -1
  379. package/dist/esm/ic-status-tag.entry.js +2 -2
  380. package/dist/esm/ic-step.entry.js +1 -1
  381. package/dist/esm/ic-stepper.entry.js +5 -2
  382. package/dist/esm/ic-stepper.entry.js.map +1 -1
  383. package/dist/esm/ic-switch.entry.js +2 -2
  384. package/dist/esm/ic-tab-context.entry.js +1 -1
  385. package/dist/esm/ic-tab-group.entry.js +2 -2
  386. package/dist/esm/ic-tab-panel.entry.js +1 -1
  387. package/dist/esm/ic-tab.entry.js +3 -3
  388. package/dist/esm/ic-tab.entry.js.map +1 -1
  389. package/dist/esm/ic-text-field.entry.js +2 -2
  390. package/dist/esm/ic-theme.entry.js +2 -2
  391. package/dist/esm/ic-toast-region.entry.js +1 -1
  392. package/dist/esm/ic-toast.entry.js +2 -2
  393. package/dist/esm/ic-top-navigation.entry.js +2 -2
  394. package/dist/esm/ic-typography.entry.js +3 -3
  395. package/dist/esm/ic-typography.entry.js.map +1 -1
  396. package/dist/esm/{index-14c9f375.js → index-b006ae9d.js} +57 -15
  397. package/dist/esm/index-b006ae9d.js.map +1 -0
  398. package/dist/esm/loader.js +3 -3
  399. package/dist/esm/types-b2398b37.js.map +1 -1
  400. package/dist/types/components/ic-accordion/ic-accordion.d.ts +55 -0
  401. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +33 -0
  402. package/dist/types/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.d.ts +1 -0
  403. package/dist/types/components/ic-badge/ic-badge.d.ts +57 -0
  404. package/dist/types/components/ic-badge/ic-badge.types.d.ts +9 -0
  405. package/dist/types/components/ic-badge/test/a11y/ic-badge.test.a11y.d.ts +1 -0
  406. package/dist/types/components/ic-button/ic-button.d.ts +2 -1
  407. package/dist/types/components/ic-chip/ic-chip.d.ts +1 -0
  408. package/dist/types/components/ic-dialog/ic-dialog.d.ts +4 -0
  409. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -2
  410. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +2 -0
  411. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -0
  412. package/dist/types/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.d.ts +2 -0
  413. package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -0
  414. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -0
  415. package/dist/types/components.d.ts +202 -0
  416. package/dist/types/utils/types.d.ts +2 -2
  417. package/hydrate/index.js +638 -88
  418. package/package.json +12 -3
  419. package/dist/cjs/index-54d2bed9.js.map +0 -1
  420. package/dist/core/p-0dcc76b1.entry.js +0 -2
  421. package/dist/core/p-101bce17.entry.js +0 -2
  422. package/dist/core/p-101bce17.entry.js.map +0 -1
  423. package/dist/core/p-18068237.js.map +0 -1
  424. package/dist/core/p-433cfd47.entry.js +0 -2
  425. package/dist/core/p-433cfd47.entry.js.map +0 -1
  426. package/dist/core/p-455bfed1.entry.js +0 -2
  427. package/dist/core/p-455bfed1.entry.js.map +0 -1
  428. package/dist/core/p-521c8f40.entry.js.map +0 -1
  429. package/dist/core/p-7194c255.entry.js.map +0 -1
  430. package/dist/core/p-7be2b1fd.entry.js +0 -2
  431. package/dist/core/p-7be2b1fd.entry.js.map +0 -1
  432. package/dist/core/p-9248228e.entry.js +0 -2
  433. package/dist/core/p-9248228e.entry.js.map +0 -1
  434. package/dist/core/p-932a67ca.entry.js +0 -2
  435. package/dist/core/p-94903a21.entry.js.map +0 -1
  436. package/dist/core/p-96022913.entry.js +0 -2
  437. package/dist/core/p-96022913.entry.js.map +0 -1
  438. package/dist/core/p-99741b0f.entry.js.map +0 -1
  439. package/dist/core/p-a6f48272.entry.js +0 -2
  440. package/dist/core/p-a6f48272.entry.js.map +0 -1
  441. package/dist/core/p-d78c90fe.entry.js +0 -2
  442. package/dist/core/p-d78c90fe.entry.js.map +0 -1
  443. package/dist/core/p-fedcfea3.entry.js +0 -2
  444. package/dist/core/p-fedcfea3.entry.js.map +0 -1
  445. package/dist/esm/index-14c9f375.js.map +0 -1
  446. /package/dist/core/{p-937ecd5b.entry.js.map → p-0353a1d8.entry.js.map} +0 -0
  447. /package/dist/core/{p-a421d3a1.entry.js.map → p-05249867.entry.js.map} +0 -0
  448. /package/dist/core/{p-a0a02a13.entry.js.map → p-09004694.entry.js.map} +0 -0
  449. /package/dist/core/{p-d16100e8.entry.js.map → p-0d71a937.entry.js.map} +0 -0
  450. /package/dist/core/{p-1c54269e.entry.js.map → p-0e1a4f8d.entry.js.map} +0 -0
  451. /package/dist/core/{p-607e7bf2.entry.js.map → p-0fdb1e52.entry.js.map} +0 -0
  452. /package/dist/core/{p-d20917ae.entry.js.map → p-10bfc292.entry.js.map} +0 -0
  453. /package/dist/core/{p-27bf4783.entry.js.map → p-1650c1c2.entry.js.map} +0 -0
  454. /package/dist/core/{p-e2d0039d.entry.js.map → p-1db57a3f.entry.js.map} +0 -0
  455. /package/dist/core/{p-4c4261e7.entry.js.map → p-2184a72f.entry.js.map} +0 -0
  456. /package/dist/core/{p-62499150.entry.js.map → p-2afa6d29.entry.js.map} +0 -0
  457. /package/dist/core/{p-cb2c18de.entry.js.map → p-2c09f9e0.entry.js.map} +0 -0
  458. /package/dist/core/{p-3297713b.entry.js.map → p-2d21de19.entry.js.map} +0 -0
  459. /package/dist/core/{p-5b8be53f.entry.js.map → p-32510505.entry.js.map} +0 -0
  460. /package/dist/core/{p-831b0f3f.entry.js.map → p-4ef8342f.entry.js.map} +0 -0
  461. /package/dist/core/{p-c390fbad.entry.js.map → p-4f070381.entry.js.map} +0 -0
  462. /package/dist/core/{p-9650e00e.entry.js.map → p-4fbe1dc3.entry.js.map} +0 -0
  463. /package/dist/core/{p-68fda79a.entry.js.map → p-5401863e.entry.js.map} +0 -0
  464. /package/dist/core/{p-83e535de.entry.js.map → p-59b24198.entry.js.map} +0 -0
  465. /package/dist/core/{p-67c18f72.entry.js.map → p-6aec6bce.entry.js.map} +0 -0
  466. /package/dist/core/{p-27897d29.entry.js.map → p-6ec3cd12.entry.js.map} +0 -0
  467. /package/dist/core/{p-932a67ca.entry.js.map → p-76daa5b0.entry.js.map} +0 -0
  468. /package/dist/core/{p-8e6169e0.entry.js.map → p-777e5556.entry.js.map} +0 -0
  469. /package/dist/core/{p-ebd60291.entry.js.map → p-913da6d0.entry.js.map} +0 -0
  470. /package/dist/core/{p-77266738.entry.js.map → p-932fe2a0.entry.js.map} +0 -0
  471. /package/dist/core/{p-5fcbcc3f.entry.js.map → p-9ee852d9.entry.js.map} +0 -0
  472. /package/dist/core/{p-d65ace31.entry.js.map → p-a388750d.entry.js.map} +0 -0
  473. /package/dist/core/{p-b0b1de0e.entry.js.map → p-a46c1690.entry.js.map} +0 -0
  474. /package/dist/core/{p-3fc638fc.entry.js.map → p-abf60097.entry.js.map} +0 -0
  475. /package/dist/core/{p-630ae754.entry.js.map → p-ac82781b.entry.js.map} +0 -0
  476. /package/dist/core/{p-6781620e.entry.js.map → p-ad520f36.entry.js.map} +0 -0
  477. /package/dist/core/{p-85dd5e5b.entry.js.map → p-c1e8d13e.entry.js.map} +0 -0
  478. /package/dist/core/{p-ebe76390.js.map → p-c30d9b20.js.map} +0 -0
  479. /package/dist/core/{p-0a30f1e5.entry.js.map → p-ceed0fee.entry.js.map} +0 -0
  480. /package/dist/core/{p-c1859843.entry.js.map → p-cf95dd66.entry.js.map} +0 -0
  481. /package/dist/core/{p-87149cbd.entry.js.map → p-d005a71a.entry.js.map} +0 -0
  482. /package/dist/core/{p-65df7222.entry.js.map → p-d5282ede.entry.js.map} +0 -0
  483. /package/dist/core/{p-4f7c20b3.entry.js.map → p-d9fc7243.entry.js.map} +0 -0
  484. /package/dist/core/{p-16e8bb5a.entry.js.map → p-db4a15bd.entry.js.map} +0 -0
  485. /package/dist/core/{p-c31e6dbb.entry.js.map → p-e59d2d50.entry.js.map} +0 -0
  486. /package/dist/core/{p-e3923b67.entry.js.map → p-e904d985.entry.js.map} +0 -0
@@ -0,0 +1,374 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import { IcThemeForegroundEnum, } from "../../utils/types";
3
+ import { getCssProperty, getParentElement, getParentElementType, hexToRgba, rgbaStrToObj, } from "../../utils/helpers";
4
+ export class Badge {
5
+ constructor() {
6
+ this.setBadgeColour = () => {
7
+ let colorRGBA = null;
8
+ if (this.customColor !== null) {
9
+ const firstChar = this.customColor.slice(0, 1);
10
+ if (firstChar === "#") {
11
+ colorRGBA = hexToRgba(this.customColor);
12
+ }
13
+ else if (firstChar.toLowerCase() === "r") {
14
+ colorRGBA = rgbaStrToObj(this.customColor);
15
+ }
16
+ this.customColorRGBA = colorRGBA;
17
+ this.el.style.backgroundColor = `rgba(${colorRGBA.r.toString()}, ${colorRGBA.g.toString()}, ${colorRGBA.b.toString()}, ${colorRGBA.a.toString()})`;
18
+ }
19
+ };
20
+ this.getBadgeForeground = () => {
21
+ let red;
22
+ let green;
23
+ let blue;
24
+ switch (this.variant) {
25
+ case "custom":
26
+ red = this.customColorRGBA.r;
27
+ green = this.customColorRGBA.g;
28
+ blue = this.customColorRGBA.b;
29
+ break;
30
+ case "error":
31
+ red = parseInt(getCssProperty("--ic-status-error-r"));
32
+ green = parseInt(getCssProperty("--ic-status-error-g"));
33
+ blue = parseInt(getCssProperty("--ic-status-error-b"));
34
+ break;
35
+ case "success":
36
+ red = parseInt(getCssProperty("--ic-status-success-r"));
37
+ green = parseInt(getCssProperty("--ic-status-success-g"));
38
+ blue = parseInt(getCssProperty("--ic-status-success-b"));
39
+ break;
40
+ case "warning":
41
+ red = parseInt(getCssProperty("--ic-status-warning-r"));
42
+ green = parseInt(getCssProperty("--ic-status-warning-g"));
43
+ blue = parseInt(getCssProperty("--ic-status-warning-b"));
44
+ break;
45
+ case "info": {
46
+ const info = hexToRgba(getCssProperty("--ic-status-info"));
47
+ red = info.r;
48
+ green = info.g;
49
+ blue = info.b;
50
+ break;
51
+ }
52
+ case "neutral": {
53
+ const neutral = hexToRgba(getCssProperty("--ic-architectural-500"));
54
+ red = neutral.r;
55
+ green = neutral.g;
56
+ blue = neutral.b;
57
+ break;
58
+ }
59
+ case "light": {
60
+ const light = hexToRgba(getCssProperty("--ic-architectural-40"));
61
+ red = light.r;
62
+ green = light.g;
63
+ blue = light.b;
64
+ break;
65
+ }
66
+ }
67
+ const brightness = (red * 299 + green * 587 + blue * 114) / 1000;
68
+ this.foregroundColour =
69
+ brightness > 133.3505
70
+ ? IcThemeForegroundEnum.Dark
71
+ : IcThemeForegroundEnum.Light;
72
+ };
73
+ this.getTextLabel = () => {
74
+ let label;
75
+ if (this.textLabel !== null) {
76
+ if (this.maxNumber !== null) {
77
+ label =
78
+ Number(this.textLabel) > this.maxNumber
79
+ ? `${this.maxNumber}+`
80
+ : this.textLabel;
81
+ }
82
+ else {
83
+ label = this.textLabel;
84
+ }
85
+ }
86
+ return label;
87
+ };
88
+ this.setAccessibleLabel = () => {
89
+ if (getParentElement(this.el) !== null) {
90
+ if (getParentElementType(this.el) === "IC-TAB") {
91
+ getParentElement(this.el).setAttribute("aria-describedby", "badge");
92
+ }
93
+ else {
94
+ getParentElement(this.el).ariaLabel = `badge displaying ${this.accessibleLabel}`;
95
+ }
96
+ }
97
+ };
98
+ this.isAccessibleLabelDefined = () => {
99
+ return this.accessibleLabel !== undefined && this.accessibleLabel !== null;
100
+ };
101
+ this.visible = true;
102
+ this.accessibleLabel = undefined;
103
+ this.customColor = null;
104
+ this.maxNumber = undefined;
105
+ this.position = "far";
106
+ this.size = "default";
107
+ this.textLabel = undefined;
108
+ this.type = "text";
109
+ this.variant = "neutral";
110
+ }
111
+ componentWillLoad() {
112
+ this.variant === "custom" && this.setBadgeColour();
113
+ this.getBadgeForeground();
114
+ this.isAccessibleLabelDefined() && this.setAccessibleLabel();
115
+ }
116
+ /**
117
+ * Use to show the badge.
118
+ */
119
+ async showBadge() {
120
+ this.visible = true;
121
+ }
122
+ /**
123
+ * Use to hide the badge.
124
+ */
125
+ async hideBadge() {
126
+ this.visible = false;
127
+ }
128
+ render() {
129
+ const { position, size, type, variant, foregroundColour, visible } = this;
130
+ return (h(Host, { class: {
131
+ [`${position}`]: true,
132
+ [`${size}`]: true,
133
+ [`${variant}`]: true,
134
+ [`${type}`]: true,
135
+ [`foreground-${foregroundColour}`]: foregroundColour !== null,
136
+ ["show"]: visible,
137
+ ["hide"]: !visible,
138
+ }, id: "badge", "aria-label": this.isAccessibleLabelDefined() &&
139
+ `badge displaying ${this.accessibleLabel}` }, type === "icon" && h("slot", { name: "badge-icon" }), type === "text" && (h("ic-typography", { variant: size === "small" ? "badge-small" : "badge" }, this.getTextLabel()))));
140
+ }
141
+ static get is() { return "ic-badge"; }
142
+ static get encapsulation() { return "shadow"; }
143
+ static get delegatesFocus() { return true; }
144
+ static get originalStyleUrls() {
145
+ return {
146
+ "$": ["ic-badge.css"]
147
+ };
148
+ }
149
+ static get styleUrls() {
150
+ return {
151
+ "$": ["ic-badge.css"]
152
+ };
153
+ }
154
+ static get properties() {
155
+ return {
156
+ "accessibleLabel": {
157
+ "type": "string",
158
+ "mutable": false,
159
+ "complexType": {
160
+ "original": "string",
161
+ "resolved": "string",
162
+ "references": {}
163
+ },
164
+ "required": false,
165
+ "optional": true,
166
+ "docs": {
167
+ "tags": [],
168
+ "text": "The accessible label of the badge component to provide context for screen reader users."
169
+ },
170
+ "attribute": "accessible-label",
171
+ "reflect": false
172
+ },
173
+ "customColor": {
174
+ "type": "string",
175
+ "mutable": false,
176
+ "complexType": {
177
+ "original": "IcColor",
178
+ "resolved": "`#${string}` | `rgb(${string})` | `rgba(${string})`",
179
+ "references": {
180
+ "IcColor": {
181
+ "location": "import",
182
+ "path": "./ic-badge.types",
183
+ "id": "src/components/ic-badge/ic-badge.types.ts::IcColor"
184
+ }
185
+ }
186
+ },
187
+ "required": false,
188
+ "optional": true,
189
+ "docs": {
190
+ "tags": [],
191
+ "text": "The custom badge colour. This will only style the badge component if variant=\"custom\".\nCan be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\"."
192
+ },
193
+ "attribute": "custom-color",
194
+ "reflect": false,
195
+ "defaultValue": "null"
196
+ },
197
+ "maxNumber": {
198
+ "type": "number",
199
+ "mutable": false,
200
+ "complexType": {
201
+ "original": "number",
202
+ "resolved": "number",
203
+ "references": {}
204
+ },
205
+ "required": false,
206
+ "optional": true,
207
+ "docs": {
208
+ "tags": [],
209
+ "text": "The maximum number shown on the badge appended with a +.\nThis will only be displayed if type=\"text\" and textLabel is not empty."
210
+ },
211
+ "attribute": "max-number",
212
+ "reflect": false
213
+ },
214
+ "position": {
215
+ "type": "string",
216
+ "mutable": false,
217
+ "complexType": {
218
+ "original": "IcBadgePositions",
219
+ "resolved": "\"far\" | \"inline\" | \"near\"",
220
+ "references": {
221
+ "IcBadgePositions": {
222
+ "location": "import",
223
+ "path": "./ic-badge.types",
224
+ "id": "src/components/ic-badge/ic-badge.types.ts::IcBadgePositions"
225
+ }
226
+ }
227
+ },
228
+ "required": false,
229
+ "optional": true,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": "The positioning of the badge in reference to the parent element."
233
+ },
234
+ "attribute": "position",
235
+ "reflect": false,
236
+ "defaultValue": "\"far\""
237
+ },
238
+ "size": {
239
+ "type": "string",
240
+ "mutable": false,
241
+ "complexType": {
242
+ "original": "IcSizes",
243
+ "resolved": "\"default\" | \"large\" | \"small\"",
244
+ "references": {
245
+ "IcSizes": {
246
+ "location": "import",
247
+ "path": "../../utils/types",
248
+ "id": "src/utils/types.ts::IcSizes"
249
+ }
250
+ }
251
+ },
252
+ "required": false,
253
+ "optional": true,
254
+ "docs": {
255
+ "tags": [],
256
+ "text": "The size of the badge to be displayed."
257
+ },
258
+ "attribute": "size",
259
+ "reflect": false,
260
+ "defaultValue": "\"default\""
261
+ },
262
+ "textLabel": {
263
+ "type": "string",
264
+ "mutable": false,
265
+ "complexType": {
266
+ "original": "string",
267
+ "resolved": "string",
268
+ "references": {}
269
+ },
270
+ "required": false,
271
+ "optional": true,
272
+ "docs": {
273
+ "tags": [],
274
+ "text": "The text displayed in the badge. This will only be displayed if type=\"text\"."
275
+ },
276
+ "attribute": "text-label",
277
+ "reflect": false
278
+ },
279
+ "type": {
280
+ "type": "string",
281
+ "mutable": false,
282
+ "complexType": {
283
+ "original": "IcBadgeTypes",
284
+ "resolved": "\"dot\" | \"icon\" | \"text\"",
285
+ "references": {
286
+ "IcBadgeTypes": {
287
+ "location": "import",
288
+ "path": "./ic-badge.types",
289
+ "id": "src/components/ic-badge/ic-badge.types.ts::IcBadgeTypes"
290
+ }
291
+ }
292
+ },
293
+ "required": false,
294
+ "optional": true,
295
+ "docs": {
296
+ "tags": [],
297
+ "text": "The type of badge to be displayed."
298
+ },
299
+ "attribute": "type",
300
+ "reflect": false,
301
+ "defaultValue": "\"text\""
302
+ },
303
+ "variant": {
304
+ "type": "string",
305
+ "mutable": false,
306
+ "complexType": {
307
+ "original": "IcBadgeVariants",
308
+ "resolved": "\"custom\" | \"error\" | \"info\" | \"light\" | \"neutral\" | \"success\" | \"warning\"",
309
+ "references": {
310
+ "IcBadgeVariants": {
311
+ "location": "import",
312
+ "path": "./ic-badge.types",
313
+ "id": "src/components/ic-badge/ic-badge.types.ts::IcBadgeVariants"
314
+ }
315
+ }
316
+ },
317
+ "required": false,
318
+ "optional": true,
319
+ "docs": {
320
+ "tags": [],
321
+ "text": "The variant of the badge to be displayed."
322
+ },
323
+ "attribute": "variant",
324
+ "reflect": false,
325
+ "defaultValue": "\"neutral\""
326
+ }
327
+ };
328
+ }
329
+ static get states() {
330
+ return {
331
+ "visible": {}
332
+ };
333
+ }
334
+ static get methods() {
335
+ return {
336
+ "showBadge": {
337
+ "complexType": {
338
+ "signature": "() => Promise<void>",
339
+ "parameters": [],
340
+ "references": {
341
+ "Promise": {
342
+ "location": "global",
343
+ "id": "global::Promise"
344
+ }
345
+ },
346
+ "return": "Promise<void>"
347
+ },
348
+ "docs": {
349
+ "text": "Use to show the badge.",
350
+ "tags": []
351
+ }
352
+ },
353
+ "hideBadge": {
354
+ "complexType": {
355
+ "signature": "() => Promise<void>",
356
+ "parameters": [],
357
+ "references": {
358
+ "Promise": {
359
+ "location": "global",
360
+ "id": "global::Promise"
361
+ }
362
+ },
363
+ "return": "Promise<void>"
364
+ },
365
+ "docs": {
366
+ "text": "Use to hide the badge.",
367
+ "tags": []
368
+ }
369
+ }
370
+ };
371
+ }
372
+ static get elementRef() { return "el"; }
373
+ }
374
+ //# sourceMappingURL=ic-badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-badge.js","sourceRoot":"","sources":["../../../src/components/ic-badge/ic-badge.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Method,\n Prop,\n State,\n h,\n} from \"@stencil/core\";\nimport {\n IcBadgePositions,\n IcBadgeTypes,\n IcBadgeVariants,\n IcColor,\n} from \"./ic-badge.types\";\nimport {\n IcColorRGBA,\n IcSizes,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport {\n getCssProperty,\n getParentElement,\n getParentElementType,\n hexToRgba,\n rgbaStrToObj,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-badge\",\n styleUrl: \"ic-badge.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Badge {\n private customColorRGBA: IcColorRGBA;\n private foregroundColour: IcThemeForeground;\n\n @Element() el: HTMLIcBadgeElement;\n\n @State() visible: boolean = true;\n\n /**\n * The accessible label of the badge component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * The custom badge colour. This will only style the badge component if variant=\"custom\".\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor = null;\n\n /**\n * The maximum number shown on the badge appended with a +.\n * This will only be displayed if type=\"text\" and textLabel is not empty.\n */\n @Prop() maxNumber?: number;\n\n /**\n * The positioning of the badge in reference to the parent element.\n */\n @Prop() position?: IcBadgePositions = \"far\";\n\n /**\n * The size of the badge to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The text displayed in the badge. This will only be displayed if type=\"text\".\n */\n @Prop() textLabel?: string;\n\n /**\n * The type of badge to be displayed.\n */\n @Prop() type?: IcBadgeTypes = \"text\";\n\n /**\n * The variant of the badge to be displayed.\n */\n @Prop() variant?: IcBadgeVariants = \"neutral\";\n\n componentWillLoad(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n\n this.getBadgeForeground();\n\n this.isAccessibleLabelDefined() && this.setAccessibleLabel();\n }\n\n /**\n * Use to show the badge.\n */\n @Method()\n async showBadge(): Promise<void> {\n this.visible = true;\n }\n\n /**\n * Use to hide the badge.\n */\n @Method()\n async hideBadge(): Promise<void> {\n this.visible = false;\n }\n\n private setBadgeColour = () => {\n let colorRGBA = null;\n if (this.customColor !== null) {\n const firstChar = this.customColor.slice(0, 1);\n if (firstChar === \"#\") {\n colorRGBA = hexToRgba(this.customColor);\n } else if (firstChar.toLowerCase() === \"r\") {\n colorRGBA = rgbaStrToObj(this.customColor);\n }\n this.customColorRGBA = colorRGBA;\n this.el.style.backgroundColor = `rgba(${colorRGBA.r.toString()}, ${colorRGBA.g.toString()}, ${colorRGBA.b.toString()}, ${colorRGBA.a.toString()})`;\n }\n };\n\n private getBadgeForeground = () => {\n let red: number;\n let green: number;\n let blue: number;\n\n switch (this.variant) {\n case \"custom\":\n red = this.customColorRGBA.r;\n green = this.customColorRGBA.g;\n blue = this.customColorRGBA.b;\n break;\n case \"error\":\n red = parseInt(getCssProperty(\"--ic-status-error-r\"));\n green = parseInt(getCssProperty(\"--ic-status-error-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-error-b\"));\n break;\n case \"success\":\n red = parseInt(getCssProperty(\"--ic-status-success-r\"));\n green = parseInt(getCssProperty(\"--ic-status-success-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-success-b\"));\n break;\n case \"warning\":\n red = parseInt(getCssProperty(\"--ic-status-warning-r\"));\n green = parseInt(getCssProperty(\"--ic-status-warning-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-warning-b\"));\n break;\n case \"info\": {\n const info = hexToRgba(getCssProperty(\"--ic-status-info\"));\n red = info.r;\n green = info.g;\n blue = info.b;\n break;\n }\n case \"neutral\": {\n const neutral = hexToRgba(getCssProperty(\"--ic-architectural-500\"));\n red = neutral.r;\n green = neutral.g;\n blue = neutral.b;\n break;\n }\n case \"light\": {\n const light = hexToRgba(getCssProperty(\"--ic-architectural-40\"));\n red = light.r;\n green = light.g;\n blue = light.b;\n break;\n }\n }\n\n const brightness = (red * 299 + green * 587 + blue * 114) / 1000;\n this.foregroundColour =\n brightness > 133.3505\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n };\n\n private getTextLabel = () => {\n let label;\n if (this.textLabel !== null) {\n if (this.maxNumber !== null) {\n label =\n Number(this.textLabel) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.textLabel;\n } else {\n label = this.textLabel;\n }\n }\n return label;\n };\n\n private setAccessibleLabel = () => {\n if (getParentElement(this.el) !== null) {\n if (getParentElementType(this.el) === \"IC-TAB\") {\n getParentElement(this.el).setAttribute(\"aria-describedby\", \"badge\");\n } else {\n getParentElement(\n this.el\n ).ariaLabel = `badge displaying ${this.accessibleLabel}`;\n }\n }\n };\n\n private isAccessibleLabelDefined = () => {\n return this.accessibleLabel !== undefined && this.accessibleLabel !== null;\n };\n\n render() {\n const { position, size, type, variant, foregroundColour, visible } = this;\n\n return (\n <Host\n class={{\n [`${position}`]: true,\n [`${size}`]: true,\n [`${variant}`]: true,\n [`${type}`]: true,\n [`foreground-${foregroundColour}`]: foregroundColour !== null,\n [\"show\"]: visible,\n [\"hide\"]: !visible,\n }}\n id=\"badge\"\n aria-label={\n this.isAccessibleLabelDefined() &&\n `badge displaying ${this.accessibleLabel}`\n }\n >\n {type === \"icon\" && <slot name=\"badge-icon\"></slot>}\n {type === \"text\" && (\n <ic-typography variant={size === \"small\" ? \"badge-small\" : \"badge\"}>\n {this.getTextLabel()}\n </ic-typography>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ic-badge.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-badge.types.js","sourceRoot":"","sources":["../../../src/components/ic-badge/ic-badge.types.ts"],"names":[],"mappings":"","sourcesContent":["import { IcStatusVariants } from \"../../utils/types\";\n\nexport type IcBadgeTypes = \"dot\" | \"text\" | \"icon\";\n\nexport type IcBadgePositions = \"far\" | \"near\" | \"inline\";\n\nexport type IcBadgeVariants = IcStatusVariants | \"light\" | \"custom\";\n\ntype RGB = `rgb(${string})`;\ntype RGBA = `rgba(${string})`;\ntype HEX = `#${string}`;\n\nexport type IcColor = RGB | RGBA | HEX;\n"]}
@@ -0,0 +1,16 @@
1
+ import { fixture } from "@open-wc/testing-helpers";
2
+ import { axe } from "jest-axe";
3
+ import { checkShadowElementRendersCorrectly } from "../../../../utils/testa11y.helpers";
4
+ describe("badge component", () => {
5
+ it("passes accessibility", async () => {
6
+ const el = await fixture("<ic-button>Button<ic-badge slot='badge' text-label='1'/></ic-button>");
7
+ checkShadowElementRendersCorrectly(el);
8
+ expect(await axe(el)).toHaveNoViolations();
9
+ });
10
+ it("passes accessibility with accessible label prop set", async () => {
11
+ const el = await fixture("<ic-button>Button<ic-badge slot='badge' text-label='1' accessible-label='1 notification found'/></ic-button>");
12
+ checkShadowElementRendersCorrectly(el);
13
+ expect(await axe(el)).toHaveNoViolations();
14
+ });
15
+ });
16
+ //# sourceMappingURL=ic-badge.test.a11y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-badge.test.a11y.js","sourceRoot":"","sources":["../../../../../src/components/ic-badge/test/a11y/ic-badge.test.a11y.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAExF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;EAC/B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,sEAAsE,CACvE,CAAC;IACF,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,8GAA8G,CAC/G,CAAC;IACF,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture } from \"@open-wc/testing-helpers\";\nimport { axe } from \"jest-axe\";\nimport { checkShadowElementRendersCorrectly } from \"../../../../utils/testa11y.helpers\";\n\ndescribe(\"badge component\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(\n \"<ic-button>Button<ic-badge slot='badge' text-label='1'/></ic-button>\"\n );\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n\n it(\"passes accessibility with accessible label prop set\", async () => {\n const el = await fixture(\n \"<ic-button>Button<ic-badge slot='badge' text-label='1' accessible-label='1 notification found'/></ic-button>\"\n );\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
@@ -0,0 +1,167 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Badge } from "../../ic-badge";
3
+ import { Button } from "../../../ic-button/ic-button";
4
+ import { Chip } from "../../../ic-chip/ic-chip";
5
+ import { Tab } from "../../../ic-tab/ic-tab";
6
+ describe("ic-badge", () => {
7
+ it("should render with text slotted in a button", async () => {
8
+ const page = await newSpecPage({
9
+ components: [Button, Badge],
10
+ html: `<ic-button>Button<ic-badge slot="badge" text-label="1"/></ic-button>`,
11
+ });
12
+ expect(page.root).toMatchSnapshot("should render with text slotted in a button");
13
+ });
14
+ it("should render light variant", async () => {
15
+ const page = await newSpecPage({
16
+ components: [Button, Badge],
17
+ html: `<ic-button>Button<ic-badge slot="badge" variant="light" text-label="1"/></ic-button>`,
18
+ });
19
+ expect(page.root).toMatchSnapshot("should render light variant");
20
+ });
21
+ it("should render error variant", async () => {
22
+ const page = await newSpecPage({
23
+ components: [Button, Badge],
24
+ html: `<ic-button>Button<ic-badge slot="badge" variant="error" text-label="1"/></ic-button>`,
25
+ });
26
+ expect(page.root).toMatchSnapshot("should render error variant");
27
+ });
28
+ it("should render success variant", async () => {
29
+ const page = await newSpecPage({
30
+ components: [Button, Badge],
31
+ html: `<ic-button>Button<ic-badge slot="badge" variant="success" text-label="1"/></ic-button>`,
32
+ });
33
+ expect(page.root).toMatchSnapshot("should render success variant");
34
+ });
35
+ it("should render warning variant", async () => {
36
+ const page = await newSpecPage({
37
+ components: [Button, Badge],
38
+ html: `<ic-button>Button<ic-badge slot="badge" variant="warning" text-label="1"/></ic-button>`,
39
+ });
40
+ expect(page.root).toMatchSnapshot("should render warning variant");
41
+ });
42
+ it("should render info variant", async () => {
43
+ const page = await newSpecPage({
44
+ components: [Button, Badge],
45
+ html: `<ic-button>Button<ic-badge slot="badge" variant="info" text-label="1"/></ic-button>`,
46
+ });
47
+ expect(page.root).toMatchSnapshot("should render info variant");
48
+ });
49
+ it("should render custom variant with custom colour in hex", async () => {
50
+ const page = await newSpecPage({
51
+ components: [Button, Badge],
52
+ html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="#F8C8DC"/></ic-button>`,
53
+ });
54
+ expect(page.root).toMatchSnapshot("should render custom variant with custom colour in hex");
55
+ });
56
+ it("should render custom variant with custom colour in rgb", async () => {
57
+ const page = await newSpecPage({
58
+ components: [Button, Badge],
59
+ html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="rgb(248,200,220)"/></ic-button>`,
60
+ });
61
+ expect(page.root).toMatchSnapshot("should render custom variant with custom colour in rgb");
62
+ });
63
+ it("should render with max number prop set", async () => {
64
+ const page = await newSpecPage({
65
+ components: [Button, Badge],
66
+ html: `<ic-button>Button<ic-badge slot="badge" text-label="100" max-number="9"/></ic-button>`,
67
+ });
68
+ expect(page.root).toMatchSnapshot("should render with max number prop set");
69
+ });
70
+ it("should render with accessible label", async () => {
71
+ const page = await newSpecPage({
72
+ components: [Button, Badge],
73
+ html: `<ic-button>Button<ic-badge slot="badge" text-label="1" accessible-label="1 notification found"/></ic-button>`,
74
+ });
75
+ expect(page.root).toMatchSnapshot("should render with accessible label");
76
+ });
77
+ it("should render size small", async () => {
78
+ const page = await newSpecPage({
79
+ components: [Button, Badge],
80
+ html: `<ic-button>Button<ic-badge slot="badge" text-label="100" size="small"/></ic-button>`,
81
+ });
82
+ expect(page.root).toMatchSnapshot("should render size small");
83
+ });
84
+ it("should render size large", async () => {
85
+ const page = await newSpecPage({
86
+ components: [Button, Badge],
87
+ html: `<ic-button>Button<ic-badge slot="badge" text-label="100" size="large"/></ic-button>`,
88
+ });
89
+ expect(page.root).toMatchSnapshot("should render size large");
90
+ });
91
+ it("should render type dot", async () => {
92
+ const page = await newSpecPage({
93
+ components: [Button, Badge],
94
+ html: `<ic-button>Button<ic-badge slot="badge" type="dot"/></ic-button>`,
95
+ });
96
+ expect(page.root).toMatchSnapshot("should render type dot");
97
+ });
98
+ it("should render type icon", async () => {
99
+ const page = await newSpecPage({
100
+ components: [Button, Badge],
101
+ html: `<ic-button>Button<ic-badge slot="badge" type="icon">
102
+ <svg slot='badge-icon' xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
103
+ <path d="M0 0h24v24H0V0z" fill="none"/>
104
+ <path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"/>
105
+ </svg>
106
+ </ic-badge></ic-button>`,
107
+ });
108
+ expect(page.root).toMatchSnapshot("should render type icon");
109
+ });
110
+ it("should render slotted in a chip", async () => {
111
+ const page = await newSpecPage({
112
+ components: [Chip, Badge],
113
+ html: `<ic-chip label="Badge"><ic-badge slot="badge" text-label="1" position="near"/></ic-chip>`,
114
+ });
115
+ expect(page.root).toMatchSnapshot("should render slotted in a chip");
116
+ });
117
+ it("should render slotted in a tab", async () => {
118
+ const page = await newSpecPage({
119
+ components: [Tab, Badge],
120
+ html: `<ic-tab>Tab<ic-badge slot="badge" text-label="1" position="inline"/></ic-tab>`,
121
+ });
122
+ expect(page.root).toMatchSnapshot("should render slotted in a tab");
123
+ });
124
+ it("should hide and show the badge using methods", async () => {
125
+ const page = await newSpecPage({
126
+ components: [Badge],
127
+ html: `<ic-button>Button<ic-badge slot="badge" text-label="1"/></ic-button>`,
128
+ });
129
+ const badge = document.querySelector("ic-badge");
130
+ expect(page.rootInstance.visible).toBe(true);
131
+ await badge.hideBadge();
132
+ await page.waitForChanges();
133
+ expect(page.rootInstance.visible).toBe(false);
134
+ await badge.showBadge();
135
+ await page.waitForChanges();
136
+ expect(page.rootInstance.visible).toBe(true);
137
+ });
138
+ it("should set the correct badge colour", async () => {
139
+ const page = await newSpecPage({
140
+ components: [Badge],
141
+ html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="#F8C8DC"/></ic-button>`,
142
+ });
143
+ await page.rootInstance.setBadgeColour();
144
+ expect(page.rootInstance.customColorRGBA).toEqual({
145
+ a: 1,
146
+ b: 220,
147
+ g: 200,
148
+ r: 248,
149
+ });
150
+ });
151
+ it("should set the correct foreground colour", async () => {
152
+ const page = await newSpecPage({
153
+ components: [Badge],
154
+ html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="#F8C8DC"/></ic-button>`,
155
+ });
156
+ await page.rootInstance.getBadgeForeground();
157
+ expect(page.rootInstance.foregroundColour).toBe("dark");
158
+ });
159
+ it("should set the correct text label when max number is set", async () => {
160
+ const page = await newSpecPage({
161
+ components: [Badge],
162
+ html: `<ic-button>Button<ic-badge slot="badge" text-label="100" max-number="9"/></ic-button>`,
163
+ });
164
+ expect(page.rootInstance.getTextLabel()).toBe("9+");
165
+ });
166
+ });
167
+ //# sourceMappingURL=ic-badge.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-badge.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-badge/test/basic/ic-badge.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Badge } from \"../../ic-badge\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { Chip } from \"../../../ic-chip/ic-chip\";\nimport { Tab } from \"../../../ic-tab/ic-tab\";\n\ndescribe(\"ic-badge\", () => {\n it(\"should render with text slotted in a button\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"should render with text slotted in a button\"\n );\n });\n\n it(\"should render light variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"light\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render light variant\");\n });\n\n it(\"should render error variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"error\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render error variant\");\n });\n\n it(\"should render success variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"success\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render success variant\");\n });\n\n it(\"should render warning variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"warning\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render warning variant\");\n });\n it(\"should render info variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"info\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render info variant\");\n });\n\n it(\"should render custom variant with custom colour in hex\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"#F8C8DC\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"should render custom variant with custom colour in hex\"\n );\n });\n\n it(\"should render custom variant with custom colour in rgb\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"rgb(248,200,220)\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"should render custom variant with custom colour in rgb\"\n );\n });\n\n it(\"should render with max number prop set\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" max-number=\"9\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render with max number prop set\");\n });\n\n it(\"should render with accessible label\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"1\" accessible-label=\"1 notification found\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render with accessible label\");\n });\n\n it(\"should render size small\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" size=\"small\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render size small\");\n });\n\n it(\"should render size large\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" size=\"large\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render size large\");\n });\n\n it(\"should render type dot\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" type=\"dot\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render type dot\");\n });\n\n it(\"should render type icon\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" type=\"icon\">\n <svg slot='badge-icon' xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"/>\n </svg>\n </ic-badge></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render type icon\");\n });\n\n it(\"should render slotted in a chip\", async () => {\n const page = await newSpecPage({\n components: [Chip, Badge],\n html: `<ic-chip label=\"Badge\"><ic-badge slot=\"badge\" text-label=\"1\" position=\"near\"/></ic-chip>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render slotted in a chip\");\n });\n\n it(\"should render slotted in a tab\", async () => {\n const page = await newSpecPage({\n components: [Tab, Badge],\n html: `<ic-tab>Tab<ic-badge slot=\"badge\" text-label=\"1\" position=\"inline\"/></ic-tab>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render slotted in a tab\");\n });\n\n it(\"should hide and show the badge using methods\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"1\"/></ic-button>`,\n });\n\n const badge = document.querySelector(\"ic-badge\");\n\n expect(page.rootInstance.visible).toBe(true);\n\n await badge.hideBadge();\n await page.waitForChanges();\n\n expect(page.rootInstance.visible).toBe(false);\n\n await badge.showBadge();\n await page.waitForChanges();\n\n expect(page.rootInstance.visible).toBe(true);\n });\n\n it(\"should set the correct badge colour\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"#F8C8DC\"/></ic-button>`,\n });\n\n await page.rootInstance.setBadgeColour();\n\n expect(page.rootInstance.customColorRGBA).toEqual({\n a: 1,\n b: 220,\n g: 200,\n r: 248,\n });\n });\n\n it(\"should set the correct foreground colour\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"#F8C8DC\"/></ic-button>`,\n });\n\n await page.rootInstance.getBadgeForeground();\n\n expect(page.rootInstance.foregroundColour).toBe(\"dark\");\n });\n\n it(\"should set the correct text label when max number is set\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" max-number=\"9\"/></ic-button>`,\n });\n\n expect(page.rootInstance.getTextLabel()).toBe(\"9+\");\n });\n});\n"]}