@ukic/web-components 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (494) 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 +28 -7
  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 +5 -1
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js +53 -29
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js +27 -6
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-radio-group.cjs.entry.js +51 -5
  52. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-select.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js +29 -7
  58. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-stepper.cjs.entry.js +4 -1
  63. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-tab.cjs.entry.js +2 -2
  69. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-text-field.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  76. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  77. package/dist/cjs/{index-54d2bed9.js → index-afe53465.js} +57 -15
  78. package/dist/cjs/index-afe53465.js.map +1 -0
  79. package/dist/cjs/loader.cjs.js +2 -2
  80. package/dist/cjs/types-7d67439f.js.map +1 -1
  81. package/dist/collection/collection-manifest.json +7 -4
  82. package/dist/collection/components/ic-accordion/ic-accordion.css +551 -0
  83. package/dist/collection/components/ic-accordion/ic-accordion.js +291 -0
  84. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -0
  85. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js +57 -0
  86. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js.map +1 -0
  87. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +346 -0
  88. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -0
  89. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +465 -0
  90. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +216 -0
  91. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -0
  92. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js +31 -0
  93. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js.map +1 -0
  94. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +114 -0
  95. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -0
  96. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +126 -0
  97. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -0
  98. package/dist/collection/components/ic-badge/ic-badge.css +179 -0
  99. package/dist/collection/components/ic-badge/ic-badge.js +374 -0
  100. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -0
  101. package/dist/collection/components/ic-badge/ic-badge.types.js +2 -0
  102. package/dist/collection/components/ic-badge/ic-badge.types.js.map +1 -0
  103. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js +16 -0
  104. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js.map +1 -0
  105. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +167 -0
  106. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -0
  107. package/dist/collection/components/ic-button/ic-button.css +9 -9
  108. package/dist/collection/components/ic-button/ic-button.js +27 -5
  109. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  110. package/dist/collection/components/ic-card/ic-card.css +22 -0
  111. package/dist/collection/components/ic-chip/ic-chip.js +2 -1
  112. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  113. package/dist/collection/components/ic-dialog/ic-dialog.js +36 -14
  114. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  115. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +1 -1
  116. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +4 -0
  117. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  118. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +52 -28
  119. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  120. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +18 -4
  121. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +25 -4
  122. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  123. package/dist/collection/components/ic-radio-group/ic-radio-group.css +3 -3
  124. package/dist/collection/components/ic-radio-group/ic-radio-group.js +57 -6
  125. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  126. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +33 -2
  127. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  128. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +4 -0
  129. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  130. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +3 -1
  131. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  132. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +46 -5
  133. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +27 -5
  134. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  135. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js +171 -0
  136. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js.map +1 -1
  137. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +45 -1
  138. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  139. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +33 -0
  140. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
  141. package/dist/collection/components/ic-stepper/ic-stepper.js +3 -0
  142. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  143. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +3 -1
  144. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  145. package/dist/collection/components/ic-tab/ic-tab.js +3 -2
  146. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  147. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js +2 -0
  148. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +1 -1
  149. package/dist/collection/components/ic-typography/ic-typography.css +10 -0
  150. package/dist/collection/components/ic-typography/ic-typography.js +1 -1
  151. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +1 -1
  152. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
  153. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +14 -0
  154. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  155. package/dist/collection/utils/types.js.map +1 -1
  156. package/dist/components/helpers.js +1 -1
  157. package/dist/components/ic-accordion-group.d.ts +11 -0
  158. package/dist/components/ic-accordion-group.js +140 -0
  159. package/dist/components/ic-accordion-group.js.map +1 -0
  160. package/dist/components/ic-accordion.d.ts +11 -0
  161. package/dist/components/ic-accordion.js +146 -0
  162. package/dist/components/ic-accordion.js.map +1 -0
  163. package/dist/components/ic-back-to-top.js +2 -0
  164. package/dist/components/ic-back-to-top.js.map +1 -1
  165. package/dist/components/ic-badge.d.ts +11 -0
  166. package/dist/components/ic-badge.js +188 -0
  167. package/dist/components/ic-badge.js.map +1 -0
  168. package/dist/components/ic-breadcrumb-group.js +1 -1
  169. package/dist/components/ic-button2.js +27 -6
  170. package/dist/components/ic-button2.js.map +1 -1
  171. package/dist/components/ic-card.js +1 -1
  172. package/dist/components/ic-card.js.map +1 -1
  173. package/dist/components/ic-checkbox-group.js +1 -1
  174. package/dist/components/ic-checkbox.js +1 -1
  175. package/dist/components/ic-chip.js +1 -1
  176. package/dist/components/ic-chip.js.map +1 -1
  177. package/dist/components/ic-data-row.js +1 -1
  178. package/dist/components/ic-dialog.js +39 -15
  179. package/dist/components/ic-dialog.js.map +1 -1
  180. package/dist/components/ic-divider2.js +1 -1
  181. package/dist/components/ic-footer-link-group.js +1 -1
  182. package/dist/components/ic-footer-link.js +1 -1
  183. package/dist/components/ic-footer.js +1 -1
  184. package/dist/components/ic-hero.js +1 -1
  185. package/dist/components/ic-hero.js.map +1 -1
  186. package/dist/components/ic-horizontal-scroll2.js +2 -2
  187. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  188. package/dist/components/ic-input-component-container2.js +1 -1
  189. package/dist/components/ic-input-component-container2.js.map +1 -1
  190. package/dist/components/ic-input-label2.js +1 -1
  191. package/dist/components/ic-input-validation2.js +1 -1
  192. package/dist/components/ic-loading-indicator2.js +3 -0
  193. package/dist/components/ic-loading-indicator2.js.map +1 -1
  194. package/dist/components/ic-menu-item2.js +1 -1
  195. package/dist/components/ic-menu2.js +3 -0
  196. package/dist/components/ic-menu2.js.map +1 -1
  197. package/dist/components/ic-navigation-button.js +5 -1
  198. package/dist/components/ic-navigation-button.js.map +1 -1
  199. package/dist/components/ic-navigation-group.js +53 -29
  200. package/dist/components/ic-navigation-group.js.map +1 -1
  201. package/dist/components/ic-navigation-item.js +27 -6
  202. package/dist/components/ic-navigation-item.js.map +1 -1
  203. package/dist/components/ic-navigation-menu2.js +1 -1
  204. package/dist/components/ic-page-header.js +1 -1
  205. package/dist/components/ic-pagination.js +4 -1
  206. package/dist/components/ic-pagination.js.map +1 -1
  207. package/dist/components/ic-popover-menu.js +4 -2
  208. package/dist/components/ic-popover-menu.js.map +1 -1
  209. package/dist/components/ic-radio-group.js +57 -7
  210. package/dist/components/ic-radio-group.js.map +1 -1
  211. package/dist/components/ic-radio-option.js +4 -2
  212. package/dist/components/ic-radio-option.js.map +1 -1
  213. package/dist/components/ic-search-bar.js +7 -2
  214. package/dist/components/ic-search-bar.js.map +1 -1
  215. package/dist/components/ic-select.js +6 -1
  216. package/dist/components/ic-select.js.map +1 -1
  217. package/dist/components/ic-side-navigation.js +29 -7
  218. package/dist/components/ic-side-navigation.js.map +1 -1
  219. package/dist/components/ic-step.js +2 -0
  220. package/dist/components/ic-step.js.map +1 -1
  221. package/dist/components/ic-stepper.js +4 -1
  222. package/dist/components/ic-stepper.js.map +1 -1
  223. package/dist/components/ic-switch.js +1 -1
  224. package/dist/components/ic-switch.js.map +1 -1
  225. package/dist/components/ic-tab-context.js +3 -1
  226. package/dist/components/ic-tab-context.js.map +1 -1
  227. package/dist/components/ic-tab.js +4 -2
  228. package/dist/components/ic-tab.js.map +1 -1
  229. package/dist/components/ic-text-field2.js +5 -2
  230. package/dist/components/ic-text-field2.js.map +1 -1
  231. package/dist/components/ic-theme.js +3 -1
  232. package/dist/components/ic-theme.js.map +1 -1
  233. package/dist/components/ic-toast.js +1 -1
  234. package/dist/components/ic-toast.js.map +1 -1
  235. package/dist/components/ic-tooltip2.js +2 -0
  236. package/dist/components/ic-tooltip2.js.map +1 -1
  237. package/dist/components/ic-top-navigation.js +4 -2
  238. package/dist/components/ic-top-navigation.js.map +1 -1
  239. package/dist/components/ic-typography2.js +3 -1
  240. package/dist/components/ic-typography2.js.map +1 -1
  241. package/dist/components/types.js.map +1 -1
  242. package/dist/core/core.css +15 -9
  243. package/dist/core/core.esm.js +1 -1
  244. package/dist/core/core.esm.js.map +1 -1
  245. package/dist/core/{p-937ecd5b.entry.js → p-0353a1d8.entry.js} +2 -2
  246. package/dist/core/p-038601a3.entry.js +2 -0
  247. package/dist/core/p-038601a3.entry.js.map +1 -0
  248. package/dist/core/{p-a421d3a1.entry.js → p-05249867.entry.js} +2 -2
  249. package/dist/core/p-08c6119a.entry.js +2 -0
  250. package/dist/core/p-08c6119a.entry.js.map +1 -0
  251. package/dist/core/{p-a0a02a13.entry.js → p-09004694.entry.js} +2 -2
  252. package/dist/core/{p-d16100e8.entry.js → p-0d71a937.entry.js} +2 -2
  253. package/dist/core/{p-1c54269e.entry.js → p-0e1a4f8d.entry.js} +2 -2
  254. package/dist/core/{p-607e7bf2.entry.js → p-0fdb1e52.entry.js} +2 -2
  255. package/dist/core/{p-d20917ae.entry.js → p-10bfc292.entry.js} +2 -2
  256. package/dist/core/{p-27bf4783.entry.js → p-1650c1c2.entry.js} +2 -2
  257. package/dist/core/{p-e2d0039d.entry.js → p-1db57a3f.entry.js} +2 -2
  258. package/dist/core/p-1ed0a71d.entry.js +2 -0
  259. package/dist/core/{p-0dcc76b1.entry.js.map → p-1ed0a71d.entry.js.map} +1 -1
  260. package/dist/core/{p-4c4261e7.entry.js → p-2184a72f.entry.js} +2 -2
  261. package/dist/core/p-293f4c5f.entry.js +2 -0
  262. package/dist/core/p-293f4c5f.entry.js.map +1 -0
  263. package/dist/core/{p-62499150.entry.js → p-2afa6d29.entry.js} +2 -2
  264. package/dist/core/{p-cb2c18de.entry.js → p-2c09f9e0.entry.js} +2 -2
  265. package/dist/core/{p-3297713b.entry.js → p-2d21de19.entry.js} +2 -2
  266. package/dist/core/{p-5b8be53f.entry.js → p-32510505.entry.js} +2 -2
  267. package/dist/core/{p-99741b0f.entry.js → p-482397ae.entry.js} +2 -2
  268. package/dist/core/p-482397ae.entry.js.map +1 -0
  269. package/dist/core/{p-831b0f3f.entry.js → p-4ef8342f.entry.js} +2 -2
  270. package/dist/core/{p-c390fbad.entry.js → p-4f070381.entry.js} +2 -2
  271. package/dist/core/{p-9650e00e.entry.js → p-4fbe1dc3.entry.js} +2 -2
  272. package/dist/core/{p-68fda79a.entry.js → p-5401863e.entry.js} +2 -2
  273. package/dist/core/{p-83e535de.entry.js → p-59b24198.entry.js} +2 -2
  274. package/dist/core/p-5cc070c4.entry.js +2 -0
  275. package/dist/core/p-5cc070c4.entry.js.map +1 -0
  276. package/dist/core/p-5f881644.entry.js +2 -0
  277. package/dist/core/p-5f881644.entry.js.map +1 -0
  278. package/dist/core/p-60fef702.entry.js +2 -0
  279. package/dist/core/p-60fef702.entry.js.map +1 -0
  280. package/dist/core/p-613aa265.js.map +1 -1
  281. package/dist/core/{p-94903a21.entry.js → p-64999983.entry.js} +2 -2
  282. package/dist/core/p-64999983.entry.js.map +1 -0
  283. package/dist/core/{p-521c8f40.entry.js → p-675fe4db.entry.js} +2 -2
  284. package/dist/core/p-675fe4db.entry.js.map +1 -0
  285. package/dist/core/{p-67c18f72.entry.js → p-6aec6bce.entry.js} +2 -2
  286. package/dist/core/{p-27897d29.entry.js → p-6ec3cd12.entry.js} +2 -2
  287. package/dist/core/p-76daa5b0.entry.js +2 -0
  288. package/dist/core/{p-8e6169e0.entry.js → p-777e5556.entry.js} +2 -2
  289. package/dist/core/p-7a61d94a.entry.js +2 -0
  290. package/dist/core/p-7a61d94a.entry.js.map +1 -0
  291. package/dist/core/{p-18068237.js → p-85903a81.js} +3 -3
  292. package/dist/core/p-85903a81.js.map +1 -0
  293. package/dist/core/{p-ebd60291.entry.js → p-913da6d0.entry.js} +2 -2
  294. package/dist/core/{p-77266738.entry.js → p-932fe2a0.entry.js} +2 -2
  295. package/dist/core/p-9bd160bb.entry.js +2 -0
  296. package/dist/core/p-9bd160bb.entry.js.map +1 -0
  297. package/dist/core/{p-5fcbcc3f.entry.js → p-9ee852d9.entry.js} +2 -2
  298. package/dist/core/{p-d65ace31.entry.js → p-a388750d.entry.js} +2 -2
  299. package/dist/core/{p-b0b1de0e.entry.js → p-a46c1690.entry.js} +2 -2
  300. package/dist/core/{p-3fc638fc.entry.js → p-abf60097.entry.js} +2 -2
  301. package/dist/core/{p-630ae754.entry.js → p-ac82781b.entry.js} +2 -2
  302. package/dist/core/{p-6781620e.entry.js → p-ad520f36.entry.js} +2 -2
  303. package/dist/core/p-b42b8ffa.entry.js +2 -0
  304. package/dist/core/p-b42b8ffa.entry.js.map +1 -0
  305. package/dist/core/p-b96bd8be.entry.js +2 -0
  306. package/dist/core/p-b96bd8be.entry.js.map +1 -0
  307. package/dist/core/{p-85dd5e5b.entry.js → p-c1e8d13e.entry.js} +2 -2
  308. package/dist/core/{p-ebe76390.js → p-c30d9b20.js} +2 -2
  309. package/dist/core/p-ca6e5474.entry.js +2 -0
  310. package/dist/core/p-ca6e5474.entry.js.map +1 -0
  311. package/dist/core/p-ceed0fee.entry.js +2 -0
  312. package/dist/core/p-ceed0fee.entry.js.map +1 -0
  313. package/dist/core/{p-c1859843.entry.js → p-cf95dd66.entry.js} +2 -2
  314. package/dist/core/{p-87149cbd.entry.js → p-d005a71a.entry.js} +2 -2
  315. package/dist/core/{p-65df7222.entry.js → p-d5282ede.entry.js} +2 -2
  316. package/dist/core/{p-4f7c20b3.entry.js → p-d9fc7243.entry.js} +2 -2
  317. package/dist/core/{p-16e8bb5a.entry.js → p-db4a15bd.entry.js} +2 -2
  318. package/dist/core/{p-c31e6dbb.entry.js → p-e59d2d50.entry.js} +2 -2
  319. package/dist/core/p-e75b04af.entry.js +2 -0
  320. package/dist/core/p-e75b04af.entry.js.map +1 -0
  321. package/dist/core/{p-e3923b67.entry.js → p-e904d985.entry.js} +2 -2
  322. package/dist/core/{p-7194c255.entry.js → p-ea55f25c.entry.js} +2 -2
  323. package/dist/core/p-ea55f25c.entry.js.map +1 -0
  324. package/dist/esm/core.js +4 -4
  325. package/dist/esm/core.js.map +1 -1
  326. package/dist/esm/{helpers-b0e80358.js → helpers-81a88a11.js} +2 -2
  327. package/dist/esm/{helpers-b0e80358.js.map → helpers-81a88a11.js.map} +1 -1
  328. package/dist/esm/ic-accordion-group.entry.js +90 -0
  329. package/dist/esm/ic-accordion-group.entry.js.map +1 -0
  330. package/dist/esm/ic-accordion.entry.js +113 -0
  331. package/dist/esm/ic-accordion.entry.js.map +1 -0
  332. package/dist/esm/ic-alert.entry.js +2 -2
  333. package/dist/esm/ic-back-to-top.entry.js +2 -2
  334. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  335. package/dist/esm/ic-badge.entry.js +152 -0
  336. package/dist/esm/ic-badge.entry.js.map +1 -0
  337. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  338. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  339. package/dist/esm/ic-button_3.entry.js +29 -8
  340. package/dist/esm/ic-button_3.entry.js.map +1 -1
  341. package/dist/esm/ic-card.entry.js +3 -3
  342. package/dist/esm/ic-card.entry.js.map +1 -1
  343. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  344. package/dist/esm/ic-checkbox.entry.js +2 -2
  345. package/dist/esm/ic-chip.entry.js +3 -3
  346. package/dist/esm/ic-chip.entry.js.map +1 -1
  347. package/dist/esm/ic-classification-banner.entry.js +1 -1
  348. package/dist/esm/ic-data-entity.entry.js +1 -1
  349. package/dist/esm/ic-data-row.entry.js +2 -2
  350. package/dist/esm/ic-dialog.entry.js +38 -16
  351. package/dist/esm/ic-dialog.entry.js.map +1 -1
  352. package/dist/esm/ic-divider.entry.js +2 -2
  353. package/dist/esm/ic-empty-state.entry.js +2 -2
  354. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  355. package/dist/esm/ic-footer-link.entry.js +2 -2
  356. package/dist/esm/ic-footer.entry.js +2 -2
  357. package/dist/esm/ic-hero.entry.js +2 -2
  358. package/dist/esm/ic-horizontal-scroll.entry.js +3 -3
  359. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  360. package/dist/esm/ic-input-component-container_3.entry.js +2 -2
  361. package/dist/esm/ic-input-label_2.entry.js +2 -2
  362. package/dist/esm/ic-link.entry.js +2 -2
  363. package/dist/esm/ic-menu-group.entry.js +1 -1
  364. package/dist/esm/ic-menu-item.entry.js +2 -2
  365. package/dist/esm/ic-navigation-button.entry.js +6 -2
  366. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  367. package/dist/esm/ic-navigation-group.entry.js +54 -30
  368. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  369. package/dist/esm/ic-navigation-item.entry.js +28 -7
  370. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  371. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  372. package/dist/esm/ic-page-header.entry.js +2 -2
  373. package/dist/esm/ic-pagination-item.entry.js +2 -2
  374. package/dist/esm/ic-pagination.entry.js +2 -2
  375. package/dist/esm/ic-popover-menu.entry.js +2 -2
  376. package/dist/esm/ic-radio-group.entry.js +52 -6
  377. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  378. package/dist/esm/ic-radio-option.entry.js +2 -2
  379. package/dist/esm/ic-search-bar.entry.js +2 -2
  380. package/dist/esm/ic-section-container.entry.js +1 -1
  381. package/dist/esm/ic-select.entry.js +2 -2
  382. package/dist/esm/ic-side-navigation.entry.js +30 -8
  383. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  384. package/dist/esm/ic-skeleton.entry.js +1 -1
  385. package/dist/esm/ic-status-tag.entry.js +2 -2
  386. package/dist/esm/ic-step.entry.js +1 -1
  387. package/dist/esm/ic-stepper.entry.js +5 -2
  388. package/dist/esm/ic-stepper.entry.js.map +1 -1
  389. package/dist/esm/ic-switch.entry.js +2 -2
  390. package/dist/esm/ic-tab-context.entry.js +1 -1
  391. package/dist/esm/ic-tab-group.entry.js +2 -2
  392. package/dist/esm/ic-tab-panel.entry.js +1 -1
  393. package/dist/esm/ic-tab.entry.js +3 -3
  394. package/dist/esm/ic-tab.entry.js.map +1 -1
  395. package/dist/esm/ic-text-field.entry.js +2 -2
  396. package/dist/esm/ic-theme.entry.js +2 -2
  397. package/dist/esm/ic-toast-region.entry.js +1 -1
  398. package/dist/esm/ic-toast.entry.js +2 -2
  399. package/dist/esm/ic-top-navigation.entry.js +2 -2
  400. package/dist/esm/ic-typography.entry.js +3 -3
  401. package/dist/esm/ic-typography.entry.js.map +1 -1
  402. package/dist/esm/{index-14c9f375.js → index-b006ae9d.js} +57 -15
  403. package/dist/esm/index-b006ae9d.js.map +1 -0
  404. package/dist/esm/loader.js +3 -3
  405. package/dist/esm/types-b2398b37.js.map +1 -1
  406. package/dist/types/components/ic-accordion/ic-accordion.d.ts +55 -0
  407. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +33 -0
  408. package/dist/types/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.d.ts +1 -0
  409. package/dist/types/components/ic-badge/ic-badge.d.ts +57 -0
  410. package/dist/types/components/ic-badge/ic-badge.types.d.ts +9 -0
  411. package/dist/types/components/ic-badge/test/a11y/ic-badge.test.a11y.d.ts +1 -0
  412. package/dist/types/components/ic-button/ic-button.d.ts +6 -1
  413. package/dist/types/components/ic-chip/ic-chip.d.ts +1 -0
  414. package/dist/types/components/ic-dialog/ic-dialog.d.ts +4 -0
  415. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -0
  416. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -2
  417. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +2 -0
  418. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -0
  419. package/dist/types/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.d.ts +2 -0
  420. package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -0
  421. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -0
  422. package/dist/types/components.d.ts +202 -0
  423. package/dist/types/utils/types.d.ts +2 -2
  424. package/hydrate/index.js +667 -92
  425. package/package.json +12 -3
  426. package/dist/cjs/index-54d2bed9.js.map +0 -1
  427. package/dist/core/p-0dcc76b1.entry.js +0 -2
  428. package/dist/core/p-101bce17.entry.js +0 -2
  429. package/dist/core/p-101bce17.entry.js.map +0 -1
  430. package/dist/core/p-18068237.js.map +0 -1
  431. package/dist/core/p-414ff132.entry.js +0 -2
  432. package/dist/core/p-414ff132.entry.js.map +0 -1
  433. package/dist/core/p-433cfd47.entry.js +0 -2
  434. package/dist/core/p-433cfd47.entry.js.map +0 -1
  435. package/dist/core/p-455bfed1.entry.js +0 -2
  436. package/dist/core/p-455bfed1.entry.js.map +0 -1
  437. package/dist/core/p-521c8f40.entry.js.map +0 -1
  438. package/dist/core/p-7194c255.entry.js.map +0 -1
  439. package/dist/core/p-7be2b1fd.entry.js +0 -2
  440. package/dist/core/p-7be2b1fd.entry.js.map +0 -1
  441. package/dist/core/p-9248228e.entry.js +0 -2
  442. package/dist/core/p-9248228e.entry.js.map +0 -1
  443. package/dist/core/p-932a67ca.entry.js +0 -2
  444. package/dist/core/p-94903a21.entry.js.map +0 -1
  445. package/dist/core/p-96022913.entry.js +0 -2
  446. package/dist/core/p-96022913.entry.js.map +0 -1
  447. package/dist/core/p-99741b0f.entry.js.map +0 -1
  448. package/dist/core/p-b82776d0.entry.js +0 -2
  449. package/dist/core/p-b82776d0.entry.js.map +0 -1
  450. package/dist/core/p-d78c90fe.entry.js +0 -2
  451. package/dist/core/p-d78c90fe.entry.js.map +0 -1
  452. package/dist/core/p-fedcfea3.entry.js +0 -2
  453. package/dist/core/p-fedcfea3.entry.js.map +0 -1
  454. package/dist/esm/index-14c9f375.js.map +0 -1
  455. /package/dist/core/{p-937ecd5b.entry.js.map → p-0353a1d8.entry.js.map} +0 -0
  456. /package/dist/core/{p-a421d3a1.entry.js.map → p-05249867.entry.js.map} +0 -0
  457. /package/dist/core/{p-a0a02a13.entry.js.map → p-09004694.entry.js.map} +0 -0
  458. /package/dist/core/{p-d16100e8.entry.js.map → p-0d71a937.entry.js.map} +0 -0
  459. /package/dist/core/{p-1c54269e.entry.js.map → p-0e1a4f8d.entry.js.map} +0 -0
  460. /package/dist/core/{p-607e7bf2.entry.js.map → p-0fdb1e52.entry.js.map} +0 -0
  461. /package/dist/core/{p-d20917ae.entry.js.map → p-10bfc292.entry.js.map} +0 -0
  462. /package/dist/core/{p-27bf4783.entry.js.map → p-1650c1c2.entry.js.map} +0 -0
  463. /package/dist/core/{p-e2d0039d.entry.js.map → p-1db57a3f.entry.js.map} +0 -0
  464. /package/dist/core/{p-4c4261e7.entry.js.map → p-2184a72f.entry.js.map} +0 -0
  465. /package/dist/core/{p-62499150.entry.js.map → p-2afa6d29.entry.js.map} +0 -0
  466. /package/dist/core/{p-cb2c18de.entry.js.map → p-2c09f9e0.entry.js.map} +0 -0
  467. /package/dist/core/{p-3297713b.entry.js.map → p-2d21de19.entry.js.map} +0 -0
  468. /package/dist/core/{p-5b8be53f.entry.js.map → p-32510505.entry.js.map} +0 -0
  469. /package/dist/core/{p-831b0f3f.entry.js.map → p-4ef8342f.entry.js.map} +0 -0
  470. /package/dist/core/{p-c390fbad.entry.js.map → p-4f070381.entry.js.map} +0 -0
  471. /package/dist/core/{p-9650e00e.entry.js.map → p-4fbe1dc3.entry.js.map} +0 -0
  472. /package/dist/core/{p-68fda79a.entry.js.map → p-5401863e.entry.js.map} +0 -0
  473. /package/dist/core/{p-83e535de.entry.js.map → p-59b24198.entry.js.map} +0 -0
  474. /package/dist/core/{p-67c18f72.entry.js.map → p-6aec6bce.entry.js.map} +0 -0
  475. /package/dist/core/{p-27897d29.entry.js.map → p-6ec3cd12.entry.js.map} +0 -0
  476. /package/dist/core/{p-932a67ca.entry.js.map → p-76daa5b0.entry.js.map} +0 -0
  477. /package/dist/core/{p-8e6169e0.entry.js.map → p-777e5556.entry.js.map} +0 -0
  478. /package/dist/core/{p-ebd60291.entry.js.map → p-913da6d0.entry.js.map} +0 -0
  479. /package/dist/core/{p-77266738.entry.js.map → p-932fe2a0.entry.js.map} +0 -0
  480. /package/dist/core/{p-5fcbcc3f.entry.js.map → p-9ee852d9.entry.js.map} +0 -0
  481. /package/dist/core/{p-d65ace31.entry.js.map → p-a388750d.entry.js.map} +0 -0
  482. /package/dist/core/{p-b0b1de0e.entry.js.map → p-a46c1690.entry.js.map} +0 -0
  483. /package/dist/core/{p-3fc638fc.entry.js.map → p-abf60097.entry.js.map} +0 -0
  484. /package/dist/core/{p-630ae754.entry.js.map → p-ac82781b.entry.js.map} +0 -0
  485. /package/dist/core/{p-6781620e.entry.js.map → p-ad520f36.entry.js.map} +0 -0
  486. /package/dist/core/{p-85dd5e5b.entry.js.map → p-c1e8d13e.entry.js.map} +0 -0
  487. /package/dist/core/{p-ebe76390.js.map → p-c30d9b20.js.map} +0 -0
  488. /package/dist/core/{p-c1859843.entry.js.map → p-cf95dd66.entry.js.map} +0 -0
  489. /package/dist/core/{p-87149cbd.entry.js.map → p-d005a71a.entry.js.map} +0 -0
  490. /package/dist/core/{p-65df7222.entry.js.map → p-d5282ede.entry.js.map} +0 -0
  491. /package/dist/core/{p-4f7c20b3.entry.js.map → p-d9fc7243.entry.js.map} +0 -0
  492. /package/dist/core/{p-16e8bb5a.entry.js.map → p-db4a15bd.entry.js.map} +0 -0
  493. /package/dist/core/{p-c31e6dbb.entry.js.map → p-e59d2d50.entry.js.map} +0 -0
  494. /package/dist/core/{p-e3923b67.entry.js.map → p-e904d985.entry.js.map} +0 -0
@@ -0,0 +1,291 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ import { isSlotUsed } from "../../utils/helpers";
3
+ import chevronIcon from "../../assets/chevron-icon.svg";
4
+ let accordionIds = 0;
5
+ /**
6
+ * @slot heading - Content is placed as the accordion heading.
7
+ * @slot icon - Content is placed to the left of the heading.
8
+ */
9
+ export class Accordion {
10
+ constructor() {
11
+ this.accordionId = `ic-accordion-${accordionIds++}`;
12
+ this.toggleExpanded = () => {
13
+ this.expanded = !this.expanded;
14
+ this.accordionClicked.emit({ id: this.accordionId });
15
+ };
16
+ // Set accordion animation
17
+ this.setAccordionAnimation = (el, duration, property, delay) => {
18
+ el.style.transitionDuration = `${duration}ms`;
19
+ el.style.transitionProperty = property;
20
+ el.style.transitionDelay = delay;
21
+ };
22
+ this.setExpandedContentStyle = (ev, expandedContent) => {
23
+ if (ev.propertyName === "height" && expandedContent.clientHeight > 0) {
24
+ expandedContent.classList.add("expanded-content-opened");
25
+ expandedContent.style.height = "auto";
26
+ }
27
+ };
28
+ this.hideExpandedContent = (ev, expandedContent) => {
29
+ if (ev.propertyName === "height" && expandedContent.clientHeight === 0) {
30
+ expandedContent.style.setProperty("--ic-expanded-content-visiblity", "hidden");
31
+ }
32
+ };
33
+ this.animateExpandedContent = () => {
34
+ const elementHeight = this.expandedContentEl.scrollHeight;
35
+ if (elementHeight > 0 && this.expanded) {
36
+ this.expandedContentEl.style.setProperty("--ic-expanded-content-visiblity", "visible");
37
+ this.expandedContentEl.style.height = `${elementHeight}px`;
38
+ this.setAccordionAnimation(this.expandedContentEl, "300", "height", "ease-out");
39
+ this.expandedContentEl.addEventListener("transitionend", (e) => {
40
+ this.setExpandedContentStyle(e, this.expandedContentEl);
41
+ });
42
+ }
43
+ else if (!this.expanded) {
44
+ this.expandedContentEl.style.height = `${this.expandedContentEl.scrollHeight}px`;
45
+ if (this.expandedContentEl.scrollHeight > 0 && !this.expanded) {
46
+ this.expandedContentEl.style.height = "0";
47
+ this.setAccordionAnimation(this.expandedContentEl, "300", "height", "ease-in");
48
+ this.expandedContentEl.classList.remove("expanded-content-opened");
49
+ }
50
+ this.expandedContentEl.addEventListener("transitionend", (e) => {
51
+ this.hideExpandedContent(e, this.expandedContentEl);
52
+ });
53
+ }
54
+ };
55
+ this.appearance = "default";
56
+ this.disabled = false;
57
+ this.expanded = false;
58
+ this.heading = "";
59
+ this.message = "";
60
+ this.size = "default";
61
+ }
62
+ // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close
63
+ handleExpandedWatch() {
64
+ this.animateExpandedContent();
65
+ }
66
+ /**
67
+ * Sets focus on accordion heading.
68
+ */
69
+ async setFocus() {
70
+ if (this.accordionBtnHeading) {
71
+ this.accordionBtnHeading.focus();
72
+ }
73
+ }
74
+ disconnectedCallback() {
75
+ if (this.expandedContentEl) {
76
+ this.expandedContentEl.removeEventListener("transitionend", (e) => this.setExpandedContentStyle(e, this.expandedContentEl), true);
77
+ this.expandedContentEl.removeEventListener("transitionend", (e) => this.hideExpandedContent(e, this.expandedContentEl), true);
78
+ }
79
+ }
80
+ componentDidLoad() {
81
+ // So accordion opens by default if expanded set to true
82
+ if (this.expanded) {
83
+ this.expandedContentEl.style.height = "auto";
84
+ }
85
+ }
86
+ render() {
87
+ const { appearance, size, disabled, expanded } = this;
88
+ return (h(Host, { id: this.accordionId, class: {
89
+ [`${appearance}`]: true,
90
+ ["disabled"]: disabled,
91
+ }, "aria-disabled": disabled ? "true" : "false" }, h("button", { ref: (el) => (this.accordionBtnHeading = el), id: `${this.accordionId}-button`, disabled: disabled, tabindex: disabled ? -1 : 0, class: {
92
+ [`${size}`]: true,
93
+ ["section-button"]: true,
94
+ ["section-button-open"]: expanded && !disabled,
95
+ }, "aria-expanded": `${expanded}`, "aria-controls": "expanded-content-area", onClick: this.toggleExpanded }, isSlotUsed(this.el, "icon") && (h("div", { class: "icon-container" }, h("slot", { name: "icon" }))), h("ic-typography", { variant: "subtitle-large", class: "section-header" }, isSlotUsed(this.el, "heading") ? (h("slot", { name: "heading" })) : (this.heading)), h("span", { class: {
96
+ ["expand-chevron"]: true,
97
+ ["content-expanded-chevron"]: expanded && !disabled,
98
+ }, "aria-hidden": "true", innerHTML: chevronIcon })), h("div", { class: {
99
+ ["expanded-content"]: true,
100
+ }, "aria-labelledby": `${this.accordionId}-button`, role: "region", "aria-hidden": `${!expanded}`, id: "expanded-content-area", ref: (el) => (this.expandedContentEl = el) }, h("div", { class: "expanded-content-inner" }, h("slot", null)))));
101
+ }
102
+ static get is() { return "ic-accordion"; }
103
+ static get encapsulation() { return "shadow"; }
104
+ static get originalStyleUrls() {
105
+ return {
106
+ "$": ["ic-accordion.css"]
107
+ };
108
+ }
109
+ static get styleUrls() {
110
+ return {
111
+ "$": ["ic-accordion.css"]
112
+ };
113
+ }
114
+ static get properties() {
115
+ return {
116
+ "appearance": {
117
+ "type": "string",
118
+ "mutable": false,
119
+ "complexType": {
120
+ "original": "IcThemeForeground",
121
+ "resolved": "\"dark\" | \"default\" | \"light\"",
122
+ "references": {
123
+ "IcThemeForeground": {
124
+ "location": "import",
125
+ "path": "../../utils/types",
126
+ "id": "src/utils/types.ts::IcThemeForeground"
127
+ }
128
+ }
129
+ },
130
+ "required": false,
131
+ "optional": true,
132
+ "docs": {
133
+ "tags": [{
134
+ "name": "internal",
135
+ "text": "Determines whether the light or dark variant of the accordion should be displayed."
136
+ }],
137
+ "text": ""
138
+ },
139
+ "attribute": "appearance",
140
+ "reflect": false,
141
+ "defaultValue": "\"default\""
142
+ },
143
+ "disabled": {
144
+ "type": "boolean",
145
+ "mutable": false,
146
+ "complexType": {
147
+ "original": "boolean",
148
+ "resolved": "boolean",
149
+ "references": {}
150
+ },
151
+ "required": false,
152
+ "optional": true,
153
+ "docs": {
154
+ "tags": [],
155
+ "text": "If `true`, the accordion will be disabled."
156
+ },
157
+ "attribute": "disabled",
158
+ "reflect": false,
159
+ "defaultValue": "false"
160
+ },
161
+ "expanded": {
162
+ "type": "boolean",
163
+ "mutable": true,
164
+ "complexType": {
165
+ "original": "boolean",
166
+ "resolved": "boolean",
167
+ "references": {}
168
+ },
169
+ "required": false,
170
+ "optional": false,
171
+ "docs": {
172
+ "tags": [],
173
+ "text": "If `true`, the accordion appears expanded."
174
+ },
175
+ "attribute": "expanded",
176
+ "reflect": false,
177
+ "defaultValue": "false"
178
+ },
179
+ "heading": {
180
+ "type": "string",
181
+ "mutable": false,
182
+ "complexType": {
183
+ "original": "string",
184
+ "resolved": "string",
185
+ "references": {}
186
+ },
187
+ "required": false,
188
+ "optional": true,
189
+ "docs": {
190
+ "tags": [],
191
+ "text": "The section header outlining section content."
192
+ },
193
+ "attribute": "heading",
194
+ "reflect": false,
195
+ "defaultValue": "\"\""
196
+ },
197
+ "message": {
198
+ "type": "string",
199
+ "mutable": false,
200
+ "complexType": {
201
+ "original": "string",
202
+ "resolved": "string",
203
+ "references": {}
204
+ },
205
+ "required": false,
206
+ "optional": true,
207
+ "docs": {
208
+ "tags": [],
209
+ "text": "The main body message of the accordion."
210
+ },
211
+ "attribute": "message",
212
+ "reflect": false,
213
+ "defaultValue": "\"\""
214
+ },
215
+ "size": {
216
+ "type": "string",
217
+ "mutable": false,
218
+ "complexType": {
219
+ "original": "IcSizes",
220
+ "resolved": "\"default\" | \"large\" | \"small\"",
221
+ "references": {
222
+ "IcSizes": {
223
+ "location": "import",
224
+ "path": "../../utils/types",
225
+ "id": "src/utils/types.ts::IcSizes"
226
+ }
227
+ }
228
+ },
229
+ "required": false,
230
+ "optional": true,
231
+ "docs": {
232
+ "tags": [],
233
+ "text": "The size of the accordion."
234
+ },
235
+ "attribute": "size",
236
+ "reflect": false,
237
+ "defaultValue": "\"default\""
238
+ }
239
+ };
240
+ }
241
+ static get events() {
242
+ return [{
243
+ "method": "accordionClicked",
244
+ "name": "accordionClicked",
245
+ "bubbles": true,
246
+ "cancelable": true,
247
+ "composed": true,
248
+ "docs": {
249
+ "tags": [{
250
+ "name": "internal",
251
+ "text": "Emitted when accordion is clicked."
252
+ }],
253
+ "text": ""
254
+ },
255
+ "complexType": {
256
+ "original": "{ id: string }",
257
+ "resolved": "{ id: string; }",
258
+ "references": {}
259
+ }
260
+ }];
261
+ }
262
+ static get methods() {
263
+ return {
264
+ "setFocus": {
265
+ "complexType": {
266
+ "signature": "() => Promise<void>",
267
+ "parameters": [],
268
+ "references": {
269
+ "Promise": {
270
+ "location": "global",
271
+ "id": "global::Promise"
272
+ }
273
+ },
274
+ "return": "Promise<void>"
275
+ },
276
+ "docs": {
277
+ "text": "Sets focus on accordion heading.",
278
+ "tags": []
279
+ }
280
+ }
281
+ };
282
+ }
283
+ static get elementRef() { return "el"; }
284
+ static get watchers() {
285
+ return [{
286
+ "propName": "expanded",
287
+ "methodName": "handleExpandedWatch"
288
+ }];
289
+ }
290
+ }
291
+ //# sourceMappingURL=ic-accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-accordion.js","sourceRoot":"","sources":["../../../src/components/ic-accordion/ic-accordion.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { isSlotUsed } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcThemeForeground, IcSizes } from \"../../utils/types\";\n\nlet accordionIds = 0;\n\n/**\n * @slot heading - Content is placed as the accordion heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-accordion\",\n styleUrl: \"ic-accordion.css\",\n shadow: true,\n})\nexport class Accordion {\n private accordionId = `ic-accordion-${accordionIds++}`;\n private expandedContentEl: HTMLDivElement;\n private accordionBtnHeading: HTMLButtonElement;\n\n @Element() el: HTMLIcAccordionElement;\n /**\n * @internal Determines whether the light or dark variant of the accordion should be displayed.\n */\n @Prop() appearance?: IcThemeForeground = \"default\";\n\n /**\n * If `true`, the accordion will be disabled.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the accordion appears expanded.\n */\n @Prop({ mutable: true }) expanded: boolean = false;\n\n /**\n * The section header outlining section content.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the accordion.\n */\n @Prop() message?: string = \"\";\n\n /**\n * The size of the accordion.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * @internal Emitted when accordion is clicked.\n */\n @Event() accordionClicked: EventEmitter<{ id: string }>;\n\n // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close\n @Watch(\"expanded\")\n handleExpandedWatch(): void {\n this.animateExpandedContent();\n }\n\n /**\n * Sets focus on accordion heading.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.accordionBtnHeading) {\n this.accordionBtnHeading.focus();\n }\n }\n\n disconnectedCallback(): void {\n if (this.expandedContentEl) {\n this.expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.setExpandedContentStyle(e, this.expandedContentEl),\n true\n );\n this.expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.hideExpandedContent(e, this.expandedContentEl),\n true\n );\n }\n }\n\n componentDidLoad(): void {\n // So accordion opens by default if expanded set to true\n if (this.expanded) {\n this.expandedContentEl.style.height = \"auto\";\n }\n }\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n this.accordionClicked.emit({ id: this.accordionId });\n };\n\n // Set accordion animation\n private setAccordionAnimation = (\n el: HTMLElement,\n duration: string,\n property: string,\n delay: string\n ) => {\n el.style.transitionDuration = `${duration}ms`;\n el.style.transitionProperty = property;\n el.style.transitionDelay = delay;\n };\n\n private setExpandedContentStyle = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight > 0) {\n expandedContent.classList.add(\"expanded-content-opened\");\n expandedContent.style.height = \"auto\";\n }\n };\n\n private hideExpandedContent = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight === 0) {\n expandedContent.style.setProperty(\n \"--ic-expanded-content-visiblity\",\n \"hidden\"\n );\n }\n };\n\n private animateExpandedContent = () => {\n const elementHeight = this.expandedContentEl.scrollHeight;\n if (elementHeight > 0 && this.expanded) {\n this.expandedContentEl.style.setProperty(\n \"--ic-expanded-content-visiblity\",\n \"visible\"\n );\n this.expandedContentEl.style.height = `${elementHeight}px`;\n this.setAccordionAnimation(\n this.expandedContentEl,\n \"300\",\n \"height\",\n \"ease-out\"\n );\n\n this.expandedContentEl.addEventListener(\n \"transitionend\",\n (e: TransitionEvent) => {\n this.setExpandedContentStyle(e, this.expandedContentEl);\n }\n );\n } else if (!this.expanded) {\n this.expandedContentEl.style.height = `${this.expandedContentEl.scrollHeight}px`;\n if (this.expandedContentEl.scrollHeight > 0 && !this.expanded) {\n this.expandedContentEl.style.height = \"0\";\n this.setAccordionAnimation(\n this.expandedContentEl,\n \"300\",\n \"height\",\n \"ease-in\"\n );\n this.expandedContentEl.classList.remove(\"expanded-content-opened\");\n }\n this.expandedContentEl.addEventListener(\"transitionend\", (e) => {\n this.hideExpandedContent(e, this.expandedContentEl);\n });\n }\n };\n\n render() {\n const { appearance, size, disabled, expanded } = this;\n return (\n <Host\n id={this.accordionId}\n class={{\n [`${appearance}`]: true,\n [\"disabled\"]: disabled,\n }}\n aria-disabled={disabled ? \"true\" : \"false\"}\n >\n <button\n ref={(el) => (this.accordionBtnHeading = el)}\n id={`${this.accordionId}-button`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n class={{\n [`${size}`]: true,\n [\"section-button\"]: true,\n [\"section-button-open\"]: expanded && !disabled,\n }}\n aria-expanded={`${expanded}`}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"section-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n this.heading\n )}\n </ic-typography>\n <span\n class={{\n [\"expand-chevron\"]: true,\n [\"content-expanded-chevron\"]: expanded && !disabled,\n }}\n aria-hidden=\"true\"\n innerHTML={chevronIcon}\n />\n </button>\n <div\n class={{\n [\"expanded-content\"]: true,\n }}\n aria-labelledby={`${this.accordionId}-button`}\n role=\"region\"\n aria-hidden={`${!expanded}`}\n id=\"expanded-content-area\"\n ref={(el) => (this.expandedContentEl = el)}\n >\n <div class=\"expanded-content-inner\">\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,57 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ describe("ic-accordion component", () => {
3
+ it("should expand when clicked", async () => {
4
+ const page = await newE2EPage();
5
+ await page.setContent(`
6
+ <ic-accordion heading="Accordion 1">
7
+ <ic-typography variant="body">
8
+ This is an example of the main body text.
9
+ </ic-typography>
10
+ </ic-accordion>
11
+ `);
12
+ const button = await page.find("ic-accordion");
13
+ const accordionOpen = await page.spyOnEvent("accordionClicked");
14
+ await button.click();
15
+ await page.waitForChanges;
16
+ expect(accordionOpen).toHaveReceivedEvent();
17
+ });
18
+ it("aria-expanded should equal true when accordion opened", async () => {
19
+ const page = await newE2EPage();
20
+ await page.setContent(`<ic-accordion heading="Accordion 1">
21
+ <ic-typography variant="body">
22
+ This is an example of the main body text.
23
+ </ic-typography>
24
+ </ic-accordion>
25
+ `);
26
+ const accordion = await page.find("ic-accordion >>> button");
27
+ await accordion.click();
28
+ await page.waitForChanges();
29
+ expect(accordion.getAttribute("aria-expanded")).toBe("true");
30
+ });
31
+ it("should open accordion when space bar pressed", async () => {
32
+ const page = await newE2EPage();
33
+ await page.setContent(`<ic-accordion></ic-accordion>`);
34
+ const accordion = await page.find("ic-accordion");
35
+ expect(await accordion.getProperty("expanded")).toBe(false);
36
+ await page.keyboard.press("Tab");
37
+ await accordion.press(" ");
38
+ await page.waitForChanges();
39
+ expect(await accordion.getProperty("expanded")).toBe(true);
40
+ });
41
+ it("should skip disabled accordion when using tab", async () => {
42
+ const page = await newE2EPage();
43
+ await page.setContent(`
44
+ <ic-accordion heading='Accordion 1'></ic-accordion>
45
+ <ic-accordion heading='Accordion 2' disabled></ic-accordion>
46
+ <ic-accordion heading='Accordion 3'></ic-accordion>`);
47
+ await page.keyboard.press("Tab");
48
+ await page.waitForChanges();
49
+ await page.keyboard.press("Tab");
50
+ await page.waitForChanges();
51
+ const accordions = await page.findAll("ic-accordion");
52
+ const lastAccordionId = accordions[accordions.length - 1].id;
53
+ const activeElement = await page.evaluate(() => document.activeElement.id);
54
+ expect(activeElement).toEqual(lastAccordionId);
55
+ });
56
+ });
57
+ //# sourceMappingURL=ic-accordion.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-accordion.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-accordion/test/basic/ic-accordion.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-accordion component\", () => {\n it(\"should expand when clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(`\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>\n `);\n\n const button = await page.find(\"ic-accordion\");\n const accordionOpen = await page.spyOnEvent(\"accordionClicked\");\n\n await button.click();\n await page.waitForChanges;\n expect(accordionOpen).toHaveReceivedEvent();\n });\n\n it(\"aria-expanded should equal true when accordion opened\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>\n `\n );\n\n const accordion = await page.find(\"ic-accordion >>> button\");\n\n await accordion.click();\n await page.waitForChanges();\n\n expect(accordion.getAttribute(\"aria-expanded\")).toBe(\"true\");\n });\n\n it(\"should open accordion when space bar pressed\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-accordion></ic-accordion>`);\n\n const accordion = await page.find(\"ic-accordion\");\n\n expect(await accordion.getProperty(\"expanded\")).toBe(false);\n\n await page.keyboard.press(\"Tab\");\n await accordion.press(\" \");\n await page.waitForChanges();\n\n expect(await accordion.getProperty(\"expanded\")).toBe(true);\n });\n\n it(\"should skip disabled accordion when using tab\", async () => {\n const page = await newE2EPage();\n await page.setContent(`\n <ic-accordion heading='Accordion 1'></ic-accordion>\n <ic-accordion heading='Accordion 2' disabled></ic-accordion>\n <ic-accordion heading='Accordion 3'></ic-accordion>`);\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n const accordions = await page.findAll(\"ic-accordion\");\n const lastAccordionId = accordions[accordions.length - 1].id;\n\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(lastAccordionId);\n });\n});\n"]}