@ukic/web-components 2.14.0 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-d52cddc1.js → helpers-3d0705ed.js} +7 -2
  3. package/dist/cjs/helpers-3d0705ed.js.map +1 -0
  4. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-button_3.cjs.entry.js +8 -2
  11. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-navigation-group.cjs.entry.js +16 -13
  35. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-navigation-item.cjs.entry.js +28 -32
  37. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-select.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-text-field.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-top-navigation.cjs.entry.js +46 -60
  62. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/cjs/types-dc22e301.js.map +1 -1
  66. package/dist/collection/components/ic-button/ic-button.css +2 -1
  67. package/dist/collection/components/ic-button/ic-button.js +9 -0
  68. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  69. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +1 -1
  70. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  71. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +16 -3
  72. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  73. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  74. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  75. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  76. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +14 -11
  77. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  78. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +28 -32
  79. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  80. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  81. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  82. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +21 -24
  83. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +68 -59
  84. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  85. package/dist/collection/utils/helpers.js +22 -1
  86. package/dist/collection/utils/helpers.js.map +1 -1
  87. package/dist/collection/utils/types.js.map +1 -1
  88. package/dist/components/helpers.js +7 -2
  89. package/dist/components/helpers.js.map +1 -1
  90. package/dist/components/ic-button2.js +11 -3
  91. package/dist/components/ic-button2.js.map +1 -1
  92. package/dist/components/ic-card.js +1 -1
  93. package/dist/components/ic-checkbox-group.js +1 -1
  94. package/dist/components/ic-checkbox.js +1 -1
  95. package/dist/components/ic-chip.js +1 -1
  96. package/dist/components/ic-input-component-container2.js +1 -1
  97. package/dist/components/ic-input-component-container2.js.map +1 -1
  98. package/dist/components/ic-link2.js +1 -1
  99. package/dist/components/ic-link2.js.map +1 -1
  100. package/dist/components/ic-menu-item2.js +1 -1
  101. package/dist/components/ic-navigation-button.js +1 -1
  102. package/dist/components/ic-navigation-button.js.map +1 -1
  103. package/dist/components/ic-navigation-group.js +15 -12
  104. package/dist/components/ic-navigation-group.js.map +1 -1
  105. package/dist/components/ic-navigation-item.js +28 -32
  106. package/dist/components/ic-navigation-item.js.map +1 -1
  107. package/dist/components/ic-pagination-item2.js +1 -1
  108. package/dist/components/ic-pagination.js +1 -1
  109. package/dist/components/ic-radio-group.js +1 -1
  110. package/dist/components/ic-radio-option.js +1 -1
  111. package/dist/components/ic-search-bar.js +1 -1
  112. package/dist/components/ic-select.js +1 -1
  113. package/dist/components/ic-side-navigation.js.map +1 -1
  114. package/dist/components/ic-switch.js +1 -1
  115. package/dist/components/ic-tab.js +1 -1
  116. package/dist/components/ic-text-field2.js +1 -1
  117. package/dist/components/ic-text-field2.js.map +1 -1
  118. package/dist/components/ic-toggle-button.js +1 -1
  119. package/dist/components/ic-top-navigation.js +47 -61
  120. package/dist/components/ic-top-navigation.js.map +1 -1
  121. package/dist/components/types.js.map +1 -1
  122. package/dist/core/core.css +1 -1
  123. package/dist/core/core.esm.js +1 -1
  124. package/dist/core/core.esm.js.map +1 -1
  125. package/dist/core/{p-dbbea7fa.entry.js → p-04d2f198.entry.js} +2 -2
  126. package/dist/core/{p-95d6f3ed.entry.js → p-04dd9fe8.entry.js} +2 -2
  127. package/dist/core/{p-b781b691.entry.js → p-14ea9cc7.entry.js} +2 -2
  128. package/dist/core/{p-123b9306.entry.js → p-18137908.entry.js} +2 -2
  129. package/dist/core/{p-5603eec3.entry.js → p-1e84a765.entry.js} +2 -2
  130. package/dist/core/{p-0e2628eb.entry.js → p-22cbe39b.entry.js} +2 -2
  131. package/dist/core/p-2436d4bd.entry.js +2 -0
  132. package/dist/core/p-2436d4bd.entry.js.map +1 -0
  133. package/dist/core/p-268355c1.js +2 -0
  134. package/dist/core/p-268355c1.js.map +1 -0
  135. package/dist/core/p-26b7b18f.js.map +1 -1
  136. package/dist/core/p-2e3845be.entry.js +2 -0
  137. package/dist/core/p-2e3845be.entry.js.map +1 -0
  138. package/dist/core/p-2ed0232c.entry.js +2 -0
  139. package/dist/core/p-2ed0232c.entry.js.map +1 -0
  140. package/dist/core/{p-2680b736.entry.js → p-2edbdbaf.entry.js} +2 -2
  141. package/dist/core/{p-46ecc4c5.entry.js → p-4e3d46f2.entry.js} +2 -2
  142. package/dist/core/{p-fce3e1aa.entry.js → p-5421ceb4.entry.js} +2 -2
  143. package/dist/core/{p-04506779.entry.js → p-5479d3e5.entry.js} +2 -2
  144. package/dist/core/p-563c2522.entry.js +2 -0
  145. package/dist/core/p-563c2522.entry.js.map +1 -0
  146. package/dist/core/{p-1ce0d16e.entry.js → p-65d3c0f1.entry.js} +2 -2
  147. package/dist/core/{p-c2789113.entry.js → p-77503f4f.entry.js} +2 -2
  148. package/dist/core/{p-7606c930.entry.js → p-77a00075.entry.js} +2 -2
  149. package/dist/core/{p-80c3424f.entry.js → p-8352d752.entry.js} +2 -2
  150. package/dist/core/{p-c053230d.entry.js → p-880bcf91.entry.js} +2 -2
  151. package/dist/core/{p-916f4265.entry.js → p-8841668b.entry.js} +2 -2
  152. package/dist/core/{p-d5f721ca.entry.js → p-8a77a417.entry.js} +2 -2
  153. package/dist/core/{p-c7c2aa3c.entry.js → p-8cbbe579.entry.js} +2 -2
  154. package/dist/core/p-8eb0e85f.entry.js +2 -0
  155. package/dist/core/p-8eb0e85f.entry.js.map +1 -0
  156. package/dist/core/{p-210412e4.entry.js → p-917b15da.entry.js} +2 -2
  157. package/dist/core/{p-d9329191.entry.js → p-934c2a94.entry.js} +2 -2
  158. package/dist/core/{p-6a9ddb8a.entry.js → p-9b4fd843.entry.js} +2 -2
  159. package/dist/core/{p-e4863c93.entry.js → p-9c157974.entry.js} +2 -2
  160. package/dist/core/{p-aa878a3c.entry.js → p-a222554a.entry.js} +2 -2
  161. package/dist/core/p-a222554a.entry.js.map +1 -0
  162. package/dist/core/{p-1183031f.entry.js → p-aac0195e.entry.js} +2 -2
  163. package/dist/core/{p-fbcb77a3.entry.js → p-ab14339d.entry.js} +2 -2
  164. package/dist/core/{p-76ee6107.entry.js → p-b1e74a89.entry.js} +2 -2
  165. package/dist/core/{p-b98ce745.entry.js → p-b7bf772b.entry.js} +2 -2
  166. package/dist/core/{p-2f462ec5.entry.js → p-ba31ee69.entry.js} +2 -2
  167. package/dist/core/{p-e68e31ec.entry.js → p-ba8d968c.entry.js} +2 -2
  168. package/dist/core/{p-35b8923f.entry.js → p-c0525936.entry.js} +2 -2
  169. package/dist/core/{p-9c18f048.entry.js → p-c1bb5018.entry.js} +2 -2
  170. package/dist/core/{p-fea1d095.entry.js → p-c2173562.entry.js} +2 -2
  171. package/dist/core/p-c2173562.entry.js.map +1 -0
  172. package/dist/core/{p-5e729e99.entry.js → p-c43946b0.entry.js} +2 -2
  173. package/dist/core/{p-a9e1966f.entry.js → p-cc0ab439.entry.js} +2 -2
  174. package/dist/core/{p-8aa9aa25.entry.js → p-cd2d2141.entry.js} +2 -2
  175. package/dist/core/{p-296b7d74.entry.js → p-cdb51adf.entry.js} +2 -2
  176. package/dist/core/{p-a98f57cf.entry.js → p-d5cadfa1.entry.js} +2 -2
  177. package/dist/core/{p-22a682e8.entry.js → p-dfef57d3.entry.js} +2 -2
  178. package/dist/core/{p-1d352487.entry.js → p-e47f887a.entry.js} +2 -2
  179. package/dist/core/{p-0038a8fd.entry.js → p-e7483ee5.entry.js} +2 -2
  180. package/dist/core/{p-a4e7d123.entry.js → p-e7b676fc.entry.js} +2 -2
  181. package/dist/core/{p-bc7f99b8.entry.js → p-f026466e.entry.js} +2 -2
  182. package/dist/core/{p-4ce5abd7.entry.js → p-f24084fa.entry.js} +2 -2
  183. package/dist/core/p-f24084fa.entry.js.map +1 -0
  184. package/dist/core/{p-d319ddce.entry.js → p-f926174d.entry.js} +2 -2
  185. package/dist/core/{p-4641518f.entry.js → p-fc83d8d7.entry.js} +2 -2
  186. package/dist/core/{p-47a9dca9.entry.js → p-fc91292d.entry.js} +2 -2
  187. package/dist/core/p-fc91292d.entry.js.map +1 -0
  188. package/dist/esm/core.js +1 -1
  189. package/dist/esm/{helpers-f1ca9908.js → helpers-4262def4.js} +7 -2
  190. package/dist/esm/helpers-4262def4.js.map +1 -0
  191. package/dist/esm/ic-accordion.entry.js +1 -1
  192. package/dist/esm/ic-alert.entry.js +1 -1
  193. package/dist/esm/ic-back-to-top.entry.js +1 -1
  194. package/dist/esm/ic-badge.entry.js +1 -1
  195. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  196. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  197. package/dist/esm/ic-button_3.entry.js +8 -2
  198. package/dist/esm/ic-button_3.entry.js.map +1 -1
  199. package/dist/esm/ic-card.entry.js +1 -1
  200. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  201. package/dist/esm/ic-checkbox.entry.js +1 -1
  202. package/dist/esm/ic-chip.entry.js +1 -1
  203. package/dist/esm/ic-data-row.entry.js +1 -1
  204. package/dist/esm/ic-dialog.entry.js +1 -1
  205. package/dist/esm/ic-divider.entry.js +1 -1
  206. package/dist/esm/ic-empty-state.entry.js +1 -1
  207. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  208. package/dist/esm/ic-footer-link.entry.js +1 -1
  209. package/dist/esm/ic-footer.entry.js +1 -1
  210. package/dist/esm/ic-hero.entry.js +1 -1
  211. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  212. package/dist/esm/ic-input-component-container_3.entry.js +2 -2
  213. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  214. package/dist/esm/ic-input-label_2.entry.js +1 -1
  215. package/dist/esm/ic-link.entry.js +1 -1
  216. package/dist/esm/ic-link.entry.js.map +1 -1
  217. package/dist/esm/ic-menu-group.entry.js +1 -1
  218. package/dist/esm/ic-menu-item.entry.js +1 -1
  219. package/dist/esm/ic-navigation-button.entry.js +1 -1
  220. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  221. package/dist/esm/ic-navigation-group.entry.js +16 -13
  222. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  223. package/dist/esm/ic-navigation-item.entry.js +28 -32
  224. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  225. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  226. package/dist/esm/ic-page-header.entry.js +1 -1
  227. package/dist/esm/ic-pagination-item.entry.js +1 -1
  228. package/dist/esm/ic-pagination.entry.js +1 -1
  229. package/dist/esm/ic-popover-menu.entry.js +1 -1
  230. package/dist/esm/ic-radio-group.entry.js +1 -1
  231. package/dist/esm/ic-radio-option.entry.js +1 -1
  232. package/dist/esm/ic-search-bar.entry.js +1 -1
  233. package/dist/esm/ic-select.entry.js +1 -1
  234. package/dist/esm/ic-side-navigation.entry.js +1 -1
  235. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  236. package/dist/esm/ic-status-tag.entry.js +1 -1
  237. package/dist/esm/ic-step.entry.js +1 -1
  238. package/dist/esm/ic-stepper.entry.js +1 -1
  239. package/dist/esm/ic-switch.entry.js +1 -1
  240. package/dist/esm/ic-tab-group.entry.js +1 -1
  241. package/dist/esm/ic-tab-panel.entry.js +1 -1
  242. package/dist/esm/ic-tab.entry.js +1 -1
  243. package/dist/esm/ic-text-field.entry.js +1 -1
  244. package/dist/esm/ic-text-field.entry.js.map +1 -1
  245. package/dist/esm/ic-theme.entry.js +1 -1
  246. package/dist/esm/ic-toast.entry.js +1 -1
  247. package/dist/esm/ic-toggle-button.entry.js +1 -1
  248. package/dist/esm/ic-top-navigation.entry.js +46 -60
  249. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  250. package/dist/esm/ic-typography.entry.js +1 -1
  251. package/dist/esm/loader.js +1 -1
  252. package/dist/esm/types-6f6b41a5.js.map +1 -1
  253. package/dist/types/components/ic-button/ic-button.d.ts +1 -0
  254. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +2 -2
  255. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +10 -5
  256. package/dist/types/components.d.ts +10 -2
  257. package/dist/types/utils/helpers.d.ts +12 -7
  258. package/dist/types/utils/types.d.ts +1 -0
  259. package/hydrate/index.js +102 -106
  260. package/package.json +2 -2
  261. package/vscode-data.json +4 -0
  262. package/dist/cjs/helpers-d52cddc1.js.map +0 -1
  263. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js +0 -13
  264. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js.map +0 -1
  265. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js +0 -177
  266. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js.map +0 -1
  267. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +0 -18
  268. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +0 -1
  269. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js +0 -128
  270. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js.map +0 -1
  271. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js +0 -13
  272. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js.map +0 -1
  273. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +0 -33
  274. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +0 -1
  275. package/dist/core/p-0d0070b3.entry.js +0 -2
  276. package/dist/core/p-0d0070b3.entry.js.map +0 -1
  277. package/dist/core/p-47a9dca9.entry.js.map +0 -1
  278. package/dist/core/p-47d39ce7.entry.js +0 -2
  279. package/dist/core/p-47d39ce7.entry.js.map +0 -1
  280. package/dist/core/p-4ce5abd7.entry.js.map +0 -1
  281. package/dist/core/p-53f2fc84.js +0 -2
  282. package/dist/core/p-53f2fc84.js.map +0 -1
  283. package/dist/core/p-64705a03.entry.js +0 -2
  284. package/dist/core/p-64705a03.entry.js.map +0 -1
  285. package/dist/core/p-7b0397ea.entry.js +0 -2
  286. package/dist/core/p-7b0397ea.entry.js.map +0 -1
  287. package/dist/core/p-91768ddf.entry.js +0 -2
  288. package/dist/core/p-91768ddf.entry.js.map +0 -1
  289. package/dist/core/p-aa878a3c.entry.js.map +0 -1
  290. package/dist/core/p-fea1d095.entry.js.map +0 -1
  291. package/dist/esm/helpers-f1ca9908.js.map +0 -1
  292. package/dist/types/components/ic-page-header/test/a11y/ic-page-header.test.a11y.d.ts +0 -1
  293. package/dist/types/components/ic-pagination/test/a11y/ic-pagination.test.a11y.d.ts +0 -1
  294. package/dist/types/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.d.ts +0 -1
  295. /package/dist/core/{p-dbbea7fa.entry.js.map → p-04d2f198.entry.js.map} +0 -0
  296. /package/dist/core/{p-95d6f3ed.entry.js.map → p-04dd9fe8.entry.js.map} +0 -0
  297. /package/dist/core/{p-b781b691.entry.js.map → p-14ea9cc7.entry.js.map} +0 -0
  298. /package/dist/core/{p-123b9306.entry.js.map → p-18137908.entry.js.map} +0 -0
  299. /package/dist/core/{p-5603eec3.entry.js.map → p-1e84a765.entry.js.map} +0 -0
  300. /package/dist/core/{p-0e2628eb.entry.js.map → p-22cbe39b.entry.js.map} +0 -0
  301. /package/dist/core/{p-2680b736.entry.js.map → p-2edbdbaf.entry.js.map} +0 -0
  302. /package/dist/core/{p-46ecc4c5.entry.js.map → p-4e3d46f2.entry.js.map} +0 -0
  303. /package/dist/core/{p-fce3e1aa.entry.js.map → p-5421ceb4.entry.js.map} +0 -0
  304. /package/dist/core/{p-04506779.entry.js.map → p-5479d3e5.entry.js.map} +0 -0
  305. /package/dist/core/{p-1ce0d16e.entry.js.map → p-65d3c0f1.entry.js.map} +0 -0
  306. /package/dist/core/{p-c2789113.entry.js.map → p-77503f4f.entry.js.map} +0 -0
  307. /package/dist/core/{p-7606c930.entry.js.map → p-77a00075.entry.js.map} +0 -0
  308. /package/dist/core/{p-80c3424f.entry.js.map → p-8352d752.entry.js.map} +0 -0
  309. /package/dist/core/{p-c053230d.entry.js.map → p-880bcf91.entry.js.map} +0 -0
  310. /package/dist/core/{p-916f4265.entry.js.map → p-8841668b.entry.js.map} +0 -0
  311. /package/dist/core/{p-d5f721ca.entry.js.map → p-8a77a417.entry.js.map} +0 -0
  312. /package/dist/core/{p-c7c2aa3c.entry.js.map → p-8cbbe579.entry.js.map} +0 -0
  313. /package/dist/core/{p-210412e4.entry.js.map → p-917b15da.entry.js.map} +0 -0
  314. /package/dist/core/{p-d9329191.entry.js.map → p-934c2a94.entry.js.map} +0 -0
  315. /package/dist/core/{p-6a9ddb8a.entry.js.map → p-9b4fd843.entry.js.map} +0 -0
  316. /package/dist/core/{p-e4863c93.entry.js.map → p-9c157974.entry.js.map} +0 -0
  317. /package/dist/core/{p-1183031f.entry.js.map → p-aac0195e.entry.js.map} +0 -0
  318. /package/dist/core/{p-fbcb77a3.entry.js.map → p-ab14339d.entry.js.map} +0 -0
  319. /package/dist/core/{p-76ee6107.entry.js.map → p-b1e74a89.entry.js.map} +0 -0
  320. /package/dist/core/{p-b98ce745.entry.js.map → p-b7bf772b.entry.js.map} +0 -0
  321. /package/dist/core/{p-2f462ec5.entry.js.map → p-ba31ee69.entry.js.map} +0 -0
  322. /package/dist/core/{p-e68e31ec.entry.js.map → p-ba8d968c.entry.js.map} +0 -0
  323. /package/dist/core/{p-35b8923f.entry.js.map → p-c0525936.entry.js.map} +0 -0
  324. /package/dist/core/{p-9c18f048.entry.js.map → p-c1bb5018.entry.js.map} +0 -0
  325. /package/dist/core/{p-5e729e99.entry.js.map → p-c43946b0.entry.js.map} +0 -0
  326. /package/dist/core/{p-a9e1966f.entry.js.map → p-cc0ab439.entry.js.map} +0 -0
  327. /package/dist/core/{p-8aa9aa25.entry.js.map → p-cd2d2141.entry.js.map} +0 -0
  328. /package/dist/core/{p-296b7d74.entry.js.map → p-cdb51adf.entry.js.map} +0 -0
  329. /package/dist/core/{p-a98f57cf.entry.js.map → p-d5cadfa1.entry.js.map} +0 -0
  330. /package/dist/core/{p-22a682e8.entry.js.map → p-dfef57d3.entry.js.map} +0 -0
  331. /package/dist/core/{p-1d352487.entry.js.map → p-e47f887a.entry.js.map} +0 -0
  332. /package/dist/core/{p-0038a8fd.entry.js.map → p-e7483ee5.entry.js.map} +0 -0
  333. /package/dist/core/{p-a4e7d123.entry.js.map → p-e7b676fc.entry.js.map} +0 -0
  334. /package/dist/core/{p-bc7f99b8.entry.js.map → p-f026466e.entry.js.map} +0 -0
  335. /package/dist/core/{p-d319ddce.entry.js.map → p-f926174d.entry.js.map} +0 -0
  336. /package/dist/core/{p-4641518f.entry.js.map → p-fc83d8d7.entry.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukic/web-components",
3
- "version": "2.14.0",
3
+ "version": "2.16.0",
4
4
  "description": "A web component UI library compiled with StencilJS",
5
5
  "author": "mi6",
6
6
  "bugs": {
@@ -96,5 +96,5 @@
96
96
  "webpack": "^5.76.0"
97
97
  },
98
98
  "license": "MIT",
99
- "gitHead": "58d6040e80a2fe1ca1feeca8e203130e2c59ff29"
99
+ "gitHead": "5976cc52ef4bfb8988c33bb1a582e655961fe179"
100
100
  }
package/vscode-data.json CHANGED
@@ -4071,6 +4071,10 @@
4071
4071
  }
4072
4072
  ]
4073
4073
  },
4074
+ {
4075
+ "name": "custom-mobile-breakpoint",
4076
+ "description": "Can set a custom breakpoint for the top navigation to switch to mobile mode.\nMust be one of our specified breakpoints in px: `0`, `576`, `768`, `992`, `1200`."
4077
+ },
4074
4078
  {
4075
4079
  "name": "href",
4076
4080
  "description": "The URL to navigate to when the app title is clicked."
@@ -1 +0,0 @@
1
- {"file":"helpers-d52cddc1.js","mappings":"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","names":["IcThemeForegroundEnum"],"sources":["src/utils/constants.ts","src/utils/helpers.ts"],"sourcesContent":["import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n","import { EventEmitter } from \"@stencil/core\";\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n} from \"./types\";\n\nimport {\n IcMenuOption,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../utils/types\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\";\n\nconst DARK_MODE_THRESHOLD = 133.3505;\nconst icInput = \"ic-input\";\nconst linkIcInput = \"input.ic-input\";\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: string } => {\n const attributeObject: { [key: string]: string } = {};\n\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = value;\n }\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | undefined | null,\n disabled: boolean\n): void => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || \"\";\n }\n};\n\n/**\n * This method is used to add a hidden file input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param event: The event that is emitted once a file is selected.\n * @param container The element where the input will be added\n * @param multiple If true, multiple files can be selected\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n * @param accept A string of the accepted files\n */\nexport const renderFileHiddenInput = (\n event: EventEmitter,\n container: HTMLElement,\n multiple: boolean,\n name: string,\n value: FileList | undefined | null,\n disabled: boolean,\n accept: string\n): void => {\n if (name !== undefined && hasShadowDom(container)) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.type = \"file\";\n input.hidden = true;\n input.multiple = multiple;\n input.name = name;\n input.files = value;\n input.disabled = disabled;\n input.accept = accept;\n input.onchange = () => {\n event.emit(input.files);\n };\n input.click();\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0] as HTMLInputElement;\n input?.remove();\n};\n\nexport const hasShadowDom = (el: HTMLElement): boolean =>\n !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${helperText ? getInputHelperTextID(inputId) : \"\"} ${\n validationText ? getInputValidationTextID(inputId) : \"\"\n }`.trim();\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcThemeForeground depending on the context\n */\nexport const getThemeFromContext = (\n el: Element,\n themeFromEvent: IcThemeForeground = null\n): IcThemeForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcThemeForegroundEnum.Default;\n } else if (\n themeFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return themeFromEvent;\n } else if (\n blockColorParent.classList.contains(IcThemeForegroundEnum.Dark)\n ) {\n return IcThemeForegroundEnum.Dark;\n }\n\n return IcThemeForegroundEnum.Light;\n }\n\n return IcThemeForegroundEnum.Default;\n};\n\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator ? navigator.maxTouchPoints > 0 : false;\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string): boolean =>\n value ? value.trim().length === 0 : true;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop: string): string | null =>\n prop !== undefined ? prop : null;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === \"anywhere\"\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-theme-text\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getThemeColorBrightness = (): number => {\n const themeRed = getCssProperty(\"--ic-theme-primary-r\");\n const themeGreen = getCssProperty(\"--ic-theme-primary-g\");\n const themeBlue = getCssProperty(\"--ic-theme-primary-b\");\n return (\n (parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000\n );\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n */\nexport const getThemeForegroundColor = (): IcThemeForeground =>\n getThemeColorBrightness() > DARK_MODE_THRESHOLD\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n\nexport const getSlot = (element: HTMLElement, name: string): Element | null => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n\n return null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : null;\n } else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\n\nexport const getNavItemParentDetails = (\n el: HTMLElement\n): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n switch (getParentElementType(el)) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(el.parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: getParentElement(el) };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: getParentElement(el) };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")), // 0\n S: Number(getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")), // 576\n M: Number(getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")), // 768\n L: Number(getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")), // 992\n XL: Number(getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")), // 1200\n UNDEFINED: 1200,\n};\n\nexport const hasValidationStatus = (\n status: IcInformationStatusOrEmpty,\n disabled: boolean\n): boolean => {\n return status !== \"\" && !disabled;\n};\n\nexport const isSlotUsed = (element: HTMLElement, slotName: string): boolean =>\n Array.from(element.children).some(\n (child) => child.getAttribute(\"slot\") === slotName\n );\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n for (let i = 0; i < props.length; i++) {\n const { prop, propName } = props[i];\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n }\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string => {\n kebabCase = kebabCase.toLowerCase();\n const individualWords: string[] = kebabCase.split(\"-\");\n let camelCase = individualWords[0];\n for (let i = 1; i < individualWords.length; i++) {\n camelCase +=\n individualWords[i].substring(0, 1).toUpperCase() +\n individualWords[i].substring(1);\n }\n return camelCase;\n};\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nconst hex2dec = function (v: string) {\n return parseInt(v, 16);\n};\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n let c;\n if (hex.length === 4) {\n c = hex.replace(\"#\", \"\").split(\"\");\n return {\n r: hex2dec(c[0] + c[0]),\n g: hex2dec(c[1] + c[1]),\n b: hex2dec(c[2] + c[2]),\n a: 1,\n };\n } else {\n return {\n r: hex2dec(hex.slice(1, 3)),\n g: hex2dec(hex.slice(3, 5)),\n b: hex2dec(hex.slice(5)),\n a: 1,\n };\n }\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const fourthChar = rgbaStr.slice(3, 4);\n let colorRGBA: IcColorRGBA;\n if (fourthChar.toLowerCase() === \"a\") {\n colorRGBA = { r: null, g: null, b: null, a: null };\n const rgba = rgbaStr\n .substring(5, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgba[0]);\n colorRGBA.g = Number(rgba[1]);\n colorRGBA.b = Number(rgba[2]);\n colorRGBA.a = Number(rgba[3]);\n } else {\n colorRGBA = { r: null, g: null, b: null, a: 1 };\n const rgb = rgbaStr\n .substring(4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgb[0]);\n colorRGBA.g = Number(rgb[1]);\n colorRGBA.b = Number(rgb[2]);\n }\n\n return colorRGBA;\n};\n\nexport const elementOverflowsX = (element: HTMLElement): boolean =>\n element.scrollWidth > element.clientWidth;\n\n/**\n *\n * @param child - The child element\n * @returns string\n */\nexport const getParentElementType = (child: HTMLElement): string =>\n child.parentElement.tagName;\n\nexport const getParentElement = (child: HTMLElement): HTMLElement =>\n child.parentElement;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const getForm = (el: HTMLElement): HTMLFormElement => el.closest(\"FORM\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.addEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.removeEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\nexport const removeDisabledFalse = (\n disabled: boolean,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean => {\n return window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n};\n"],"version":3}
@@ -1,13 +0,0 @@
1
- import { fixture } from "@open-wc/testing-helpers";
2
- import { axe } from "jest-axe";
3
- import { checkShadowElementRendersCorrectly } from "../../../../utils/testa11y.helpers";
4
- describe("page-header", () => {
5
- it("passes accessibility", async () => {
6
- const el = await fixture(`
7
- <ic-page-header heading="Test"></ic-page-header>
8
- `);
9
- checkShadowElementRendersCorrectly(el);
10
- expect(await axe(el)).toHaveNoViolations();
11
- });
12
- });
13
- //# sourceMappingURL=ic-page-header.test.a11y.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-page-header.test.a11y.js","sourceRoot":"","sources":["../../../../../src/components/ic-page-header/test/a11y/ic-page-header.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,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;;OAEtB,CAAC,CAAC;QACL,kCAAkC,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC7C,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(\"page-header\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(`\n <ic-page-header heading=\"Test\"></ic-page-header>\n `);\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
@@ -1,177 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- describe("ic-page-header component", () => {
3
- it("shouldn't render tooltips on the navigation items in the page header", async () => {
4
- const page = await newE2EPage();
5
- await page.setContent(`<ic-page-header
6
- heading="Coffee recipes"
7
- sub-heading="This is a page header component with additional functionality and this is the text."
8
- >
9
- <ic-status-tag slot="heading-adornment" label="Beta"></ic-status-tag>
10
- <ic-navigation-item
11
- slot="tabs"
12
- label="All recipes"
13
- href="?path=/story/web-components-page-header--with-tabs"
14
- selected
15
- ></ic-navigation-item>
16
- <ic-navigation-item
17
- slot="tabs"
18
- label="Favourites"
19
- href="?path=/story/web-components-page-header--with-tabs"
20
- ></ic-navigation-item>
21
- </ic-page-header>`);
22
- await page.waitForChanges();
23
- await page.keyboard.press("Tab");
24
- await page.waitForChanges();
25
- const tooltipDisplay = await page.evaluate(() => {
26
- const tooltip = document
27
- .querySelectorAll("ic-navigation-item")[0]
28
- .shadowRoot.querySelector("ic-tooltip")
29
- .shadowRoot.querySelector(".ic-tooltip-container");
30
- return window.getComputedStyle(tooltip).display;
31
- });
32
- expect(tooltipDisplay).toBe("none");
33
- });
34
- it("should stay at the top of the page if the sticky variant is used", async () => {
35
- const page = await newE2EPage();
36
- await page.setContent(`<ic-top-navigation app-title="ApplicationName">
37
- <svg
38
- slot="app-icon"
39
- xmlns="http://www.w3.org/2000/svg"
40
- height="24px"
41
- viewBox="0 0 24 24"
42
- width="24px"
43
- fill="#000000"
44
- >
45
- <path d="M0 0h24v24H0V0z" fill="none" />
46
- <path
47
- d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z"
48
- />
49
- </svg>
50
- </ic-top-navigation>
51
- <ic-page-header
52
- sticky
53
- heading="Page header"
54
- sub-heading="This is a simple page header component and this is the text."
55
- >
56
- <ic-status-tag slot="heading-adornment" label="Beta"></ic-status-tag>
57
- </ic-page-header>
58
- <ic-section-container style="height:800px">
59
- This is an example of how the sticky variant of the page header would
60
- work with some content and the footer.
61
- </ic-section-container>
62
- <ic-footer
63
- description="The ICDS is maintained by the Design Practice Team. If you've got a question or want to feedback,
64
- please get in touch."
65
- caption="All content is available under the Open Government Licence v3.0, except source code and code examples which are available under the MIT Licence."
66
- >
67
- <ic-footer-link slot="link" href="/">Get Started</ic-footer-link>
68
- <ic-footer-link slot="link" href="/">Accessibility</ic-footer-link>
69
- <ic-footer-link slot="link" href="/">Styles</ic-footer-link>
70
- <ic-footer-link slot="link" href="/">Components</ic-footer-link>
71
- <ic-footer-link slot="link" href="/">Patterns</ic-footer-link>
72
- <ic-footer-link slot="link" href="/">Design toolkit</ic-footer-link>
73
- <div
74
- slot="logo"
75
- style="width:100px;height:100px;display:flex;align-items:center;justify-content:center;
76
- background-color:var(--ic-personality-primary);color:var(--ic-personality-text);"
77
- >
78
- Logo
79
- </div>
80
- </ic-footer>`);
81
- await page.waitForChanges();
82
- const pageHeaderPosition = await page.evaluate(() => {
83
- const pageHeader = document.querySelector("ic-page-header");
84
- return window.getComputedStyle(pageHeader).position;
85
- });
86
- expect(pageHeaderPosition).toBe("sticky");
87
- const pageHeaderTopValue = await page.evaluate(() => {
88
- const pageHeader = document.querySelector("ic-page-header");
89
- window.scrollTo({ top: 700 });
90
- return pageHeader.offsetTop;
91
- });
92
- expect(pageHeaderTopValue).toEqual(700);
93
- });
94
- it("should not stay at the top of the page on extra small to medium device sizes if the sticky-desktop-only variant is used", async () => {
95
- const page = await newE2EPage();
96
- await page.setViewport({
97
- width: 375,
98
- height: 667,
99
- isMobile: true,
100
- hasTouch: true,
101
- });
102
- await page.waitForChanges();
103
- await page.setContent(`<ic-top-navigation app-title="ApplicationName">
104
- <svg
105
- slot="app-icon"
106
- xmlns="http://www.w3.org/2000/svg"
107
- height="24px"
108
- viewBox="0 0 24 24"
109
- width="24px"
110
- fill="#000000"
111
- >
112
- <path d="M0 0h24v24H0V0z" fill="none" />
113
- <path
114
- d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z"
115
- />
116
- </svg>
117
- </ic-top-navigation>
118
- <ic-page-header
119
- sticky-desktop-only
120
- heading="Page header"
121
- sub-heading="This is a simple page header component and this is the text. This page header is only sticky for viewport widths of 992px and above."
122
- >
123
- <ic-status-tag slot="heading-adornment" label="Beta"></ic-status-tag>
124
- </ic-page-header>
125
- <ic-section-container style="height:1000px">
126
- This is an example of how the sticky-desktop-only variant of the page
127
- header would work with some content and the footer.
128
- </ic-section-container>
129
- <ic-footer
130
- description="The ICDS is maintained by the Design Practice Team. If you've got a question or want to feedback,
131
- please get in touch."
132
- caption="All content is available under the Open Government Licence v3.0, except source code and code examples which are available under the MIT Licence."
133
- >
134
- <ic-footer-link slot="link" href="/">Get Started</ic-footer-link>
135
- <ic-footer-link slot="link" href="/">Accessibility</ic-footer-link>
136
- <ic-footer-link slot="link" href="/">Styles</ic-footer-link>
137
- <ic-footer-link slot="link" href="/">Components</ic-footer-link>
138
- <ic-footer-link slot="link" href="/">Patterns</ic-footer-link>
139
- <ic-footer-link slot="link" href="/">Design toolkit</ic-footer-link>
140
- <div
141
- slot="logo"
142
- style="width:100px;height:100px;display:flex;align-items:center;justify-content:center;
143
- background-color:var(--ic-personality-primary);color:var(--ic-personality-text);"
144
- >
145
- Logo
146
- </div>
147
- </ic-footer>`);
148
- await page.waitForChanges();
149
- let pageHeaderPosition = await page.evaluate(() => {
150
- const pageHeader = document.querySelector("ic-page-header");
151
- return window.getComputedStyle(pageHeader).position;
152
- });
153
- expect(pageHeaderPosition).toBe("static");
154
- await page.evaluate(() => {
155
- window.scrollBy({ top: -700 });
156
- });
157
- await page.waitForChanges();
158
- await page.setViewport({
159
- width: 1920,
160
- height: 800,
161
- });
162
- await page.waitForChanges();
163
- pageHeaderPosition = await page.evaluate(() => {
164
- const pageHeader = document.querySelector("ic-page-header");
165
- return window.getComputedStyle(pageHeader).position;
166
- });
167
- await page.waitForChanges();
168
- expect(pageHeaderPosition).toBe("sticky");
169
- const pageHeaderTopValueOnLargeDesktops = await page.evaluate(() => {
170
- const pageHeader = document.querySelector("ic-page-header");
171
- window.scrollBy({ top: 700 });
172
- return pageHeader.offsetTop;
173
- });
174
- expect(pageHeaderTopValueOnLargeDesktops).toEqual(700);
175
- });
176
- });
177
- //# sourceMappingURL=ic-page-header.e2e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-page-header.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-page-header/test/basic/ic-page-header.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-page-header component\", () => {\n it(\"shouldn't render tooltips on the navigation items in the page header\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(\n `<ic-page-header\n heading=\"Coffee recipes\"\n sub-heading=\"This is a page header component with additional functionality and this is the text.\"\n >\n <ic-status-tag slot=\"heading-adornment\" label=\"Beta\"></ic-status-tag>\n <ic-navigation-item\n slot=\"tabs\"\n label=\"All recipes\"\n href=\"?path=/story/web-components-page-header--with-tabs\"\n selected\n ></ic-navigation-item>\n <ic-navigation-item\n slot=\"tabs\"\n label=\"Favourites\"\n href=\"?path=/story/web-components-page-header--with-tabs\"\n ></ic-navigation-item>\n </ic-page-header>`\n );\n\n await page.waitForChanges();\n\n await page.keyboard.press(\"Tab\");\n\n await page.waitForChanges();\n\n const tooltipDisplay = await page.evaluate(() => {\n const tooltip = document\n .querySelectorAll(\"ic-navigation-item\")[0]\n .shadowRoot.querySelector(\"ic-tooltip\")\n .shadowRoot.querySelector(\".ic-tooltip-container\");\n\n return window.getComputedStyle(tooltip).display;\n });\n\n expect(tooltipDisplay).toBe(\"none\");\n });\n\n it(\"should stay at the top of the page if the sticky variant is used\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(\n `<ic-top-navigation app-title=\"ApplicationName\">\n <svg\n slot=\"app-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"\n />\n </svg>\n </ic-top-navigation>\n <ic-page-header\n sticky\n heading=\"Page header\"\n sub-heading=\"This is a simple page header component and this is the text.\"\n >\n <ic-status-tag slot=\"heading-adornment\" label=\"Beta\"></ic-status-tag>\n </ic-page-header>\n <ic-section-container style=\"height:800px\">\n This is an example of how the sticky variant of the page header would\n work with some content and the footer.\n </ic-section-container>\n <ic-footer\n description=\"The ICDS is maintained by the Design Practice Team. If you've got a question or want to feedback, \n please get in touch.\"\n caption=\"All content is available under the Open Government Licence v3.0, except source code and code examples which are available under the MIT Licence.\"\n >\n <ic-footer-link slot=\"link\" href=\"/\">Get Started</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Accessibility</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Styles</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Components</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Patterns</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Design toolkit</ic-footer-link>\n <div\n slot=\"logo\"\n style=\"width:100px;height:100px;display:flex;align-items:center;justify-content:center;\n background-color:var(--ic-personality-primary);color:var(--ic-personality-text);\"\n >\n Logo\n </div>\n </ic-footer>`\n );\n\n await page.waitForChanges();\n\n const pageHeaderPosition = await page.evaluate(() => {\n const pageHeader = document.querySelector(\"ic-page-header\");\n\n return window.getComputedStyle(pageHeader).position;\n });\n\n expect(pageHeaderPosition).toBe(\"sticky\");\n\n const pageHeaderTopValue = await page.evaluate(() => {\n const pageHeader = document.querySelector(\"ic-page-header\");\n window.scrollTo({ top: 700 });\n\n return pageHeader.offsetTop;\n });\n\n expect(pageHeaderTopValue).toEqual(700);\n });\n\n it(\"should not stay at the top of the page on extra small to medium device sizes if the sticky-desktop-only variant is used\", async () => {\n const page = await newE2EPage();\n\n await page.setViewport({\n width: 375,\n height: 667,\n isMobile: true,\n hasTouch: true,\n });\n\n await page.waitForChanges();\n\n await page.setContent(\n `<ic-top-navigation app-title=\"ApplicationName\">\n <svg\n slot=\"app-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"\n />\n </svg>\n </ic-top-navigation>\n <ic-page-header\n sticky-desktop-only\n heading=\"Page header\"\n sub-heading=\"This is a simple page header component and this is the text. This page header is only sticky for viewport widths of 992px and above.\"\n >\n <ic-status-tag slot=\"heading-adornment\" label=\"Beta\"></ic-status-tag>\n </ic-page-header>\n <ic-section-container style=\"height:1000px\">\n This is an example of how the sticky-desktop-only variant of the page\n header would work with some content and the footer.\n </ic-section-container>\n <ic-footer\n description=\"The ICDS is maintained by the Design Practice Team. If you've got a question or want to feedback, \n please get in touch.\"\n caption=\"All content is available under the Open Government Licence v3.0, except source code and code examples which are available under the MIT Licence.\"\n >\n <ic-footer-link slot=\"link\" href=\"/\">Get Started</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Accessibility</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Styles</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Components</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Patterns</ic-footer-link>\n <ic-footer-link slot=\"link\" href=\"/\">Design toolkit</ic-footer-link>\n <div\n slot=\"logo\"\n style=\"width:100px;height:100px;display:flex;align-items:center;justify-content:center;\n background-color:var(--ic-personality-primary);color:var(--ic-personality-text);\"\n >\n Logo\n </div>\n </ic-footer>`\n );\n\n await page.waitForChanges();\n\n let pageHeaderPosition = await page.evaluate(() => {\n const pageHeader = document.querySelector(\"ic-page-header\");\n return window.getComputedStyle(pageHeader).position;\n });\n\n expect(pageHeaderPosition).toBe(\"static\");\n\n await page.evaluate(() => {\n window.scrollBy({ top: -700 });\n });\n\n await page.waitForChanges();\n\n await page.setViewport({\n width: 1920,\n height: 800,\n });\n\n await page.waitForChanges();\n\n pageHeaderPosition = await page.evaluate(() => {\n const pageHeader = document.querySelector(\"ic-page-header\");\n return window.getComputedStyle(pageHeader).position;\n });\n\n await page.waitForChanges();\n\n expect(pageHeaderPosition).toBe(\"sticky\");\n\n const pageHeaderTopValueOnLargeDesktops = await page.evaluate(() => {\n const pageHeader = document.querySelector(\"ic-page-header\");\n window.scrollBy({ top: 700 });\n\n return pageHeader.offsetTop;\n });\n\n expect(pageHeaderTopValueOnLargeDesktops).toEqual(700);\n });\n});\n"]}
@@ -1,18 +0,0 @@
1
- import { fixture } from "@open-wc/testing-helpers";
2
- import { axe } from "jest-axe";
3
- import { checkShadowElementRendersCorrectly } from "../../../../utils/testa11y.helpers";
4
- describe("pagination component", () => {
5
- it("passes accessibility", async () => {
6
- const el = await fixture(`<ic-pagination pages="3" />`);
7
- checkShadowElementRendersCorrectly(el);
8
- expect(await axe(el, {
9
- // Tested in Cypress and this error doesn't occur, not sure what's causing it in this test
10
- rules: {
11
- "aria-valid-attr-value": {
12
- enabled: false,
13
- },
14
- },
15
- })).toHaveNoViolations();
16
- });
17
- });
18
- //# sourceMappingURL=ic-pagination.test.a11y.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-pagination.test.a11y.js","sourceRoot":"","sources":["../../../../../src/components/ic-pagination/test/a11y/ic-pagination.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,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACxD,kCAAkC,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CACJ,MAAM,GAAG,CAAC,EAAE,EAAE;YACZ,0FAA0F;YAC1F,KAAK,EAAE;gBACL,uBAAuB,EAAE;oBACvB,OAAO,EAAE,KAAK;iBACf;aACF;SACF,CAAC,CACH,CAAC,kBAAkB,EAAE,CAAC;IACzB,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(\"pagination component\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(`<ic-pagination pages=\"3\" />`);\n checkShadowElementRendersCorrectly(el);\n expect(\n await axe(el, {\n // Tested in Cypress and this error doesn't occur, not sure what's causing it in this test\n rules: {\n \"aria-valid-attr-value\": {\n enabled: false,\n },\n },\n })\n ).toHaveNoViolations();\n });\n});\n"]}
@@ -1,128 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- describe("ic-pagination", () => {
3
- it("should emit the correct page value when `page 2` is clicked", async () => {
4
- const page = await newE2EPage();
5
- await page.setContent(`<ic-pagination pages="15"
6
- type="complex"
7
- adjacent-count="1"
8
- boundary-count="1" />`);
9
- const pagItem = await page.find("ic-pagination >>> #pagination-item-2");
10
- const icPageChange = await page.spyOnEvent("icPageChange");
11
- await page.waitForChanges();
12
- await pagItem.click();
13
- await page.waitForChanges();
14
- expect(icPageChange).toHaveReceivedEventDetail({ value: 2 });
15
- });
16
- it("should emit the correct page value when `next page` is clicked", async () => {
17
- const page = await newE2EPage();
18
- await page.setContent(`<ic-pagination pages="15"
19
- type="complex"
20
- adjacent-count="1"
21
- boundary-count="1" />`);
22
- const nextPage = await page.find("ic-pagination >>> #next-page-button");
23
- const icPageChange = await page.spyOnEvent("icPageChange");
24
- await page.waitForChanges();
25
- await nextPage.click();
26
- await page.waitForChanges();
27
- expect(icPageChange).toHaveReceivedEventDetail({ value: 2 });
28
- });
29
- it("should emit the correct page value when `page 13` is clicked", async () => {
30
- const page = await newE2EPage();
31
- await page.setContent(`<ic-pagination pages="15"
32
- type="complex"
33
- adjacent-count="1"
34
- boundary-count="1" />`);
35
- const lastPage = await page.find("ic-pagination >>> #last-page-button");
36
- const icPageChange = await page.spyOnEvent("icPageChange");
37
- await page.waitForChanges();
38
- await lastPage.click();
39
- await page.waitForChanges();
40
- const pagItem = await page.find("ic-pagination >>> #pagination-item-13");
41
- await page.waitForChanges();
42
- await pagItem.click();
43
- await page.waitForChanges();
44
- expect(icPageChange).toHaveReceivedEventDetail({ value: 13 });
45
- });
46
- it("should emit the correct page value when the `previous page` button is clicked", async () => {
47
- const page = await newE2EPage();
48
- await page.setContent(`<ic-pagination pages="15"
49
- type="complex"
50
- adjacent-count="1"
51
- boundary-count="1" />`);
52
- const lastPage = await page.find("ic-pagination >>> #last-page-button");
53
- const icPageChange = await page.spyOnEvent("icPageChange");
54
- await page.waitForChanges();
55
- await lastPage.click();
56
- await page.waitForChanges();
57
- const previousPage = await page.find("ic-pagination >>> #previous-page-button");
58
- await page.waitForChanges();
59
- await previousPage.click();
60
- await page.waitForChanges();
61
- expect(icPageChange).toHaveReceivedEventDetail({ value: 14 });
62
- });
63
- it("should emit the correct page value when the `first page` button is clicked", async () => {
64
- const page = await newE2EPage();
65
- await page.setContent(`<ic-pagination pages="15"
66
- type="complex"
67
- adjacent-count="1"
68
- boundary-count="1" />`);
69
- const lastPage = await page.find("ic-pagination >>> #last-page-button");
70
- const icPageChange = await page.spyOnEvent("icPageChange");
71
- await page.waitForChanges();
72
- await lastPage.click();
73
- await page.waitForChanges();
74
- const previousPage = await page.find("ic-pagination >>> #first-page-button");
75
- await page.waitForChanges();
76
- await previousPage.click();
77
- await page.waitForChanges();
78
- expect(icPageChange).toHaveReceivedEventDetail({ value: 1 });
79
- });
80
- it("should emit the correct page value when the midddle state is reached and the adjacent-count `page 7` button is clicked", async () => {
81
- const page = await newE2EPage();
82
- await page.setContent(`<ic-pagination pages="15"
83
- type="complex"
84
- adjacent-count="1"
85
- boundary-count="1" />`);
86
- const nextPage = await page.find("ic-pagination >>> #next-page-button");
87
- const icPageChange = await page.spyOnEvent("icPageChange");
88
- await page.waitForChanges();
89
- await nextPage.click();
90
- await page.waitForChanges();
91
- await nextPage.click();
92
- await page.waitForChanges();
93
- await nextPage.click();
94
- await page.waitForChanges();
95
- await nextPage.click();
96
- await page.waitForChanges();
97
- await nextPage.click();
98
- await page.waitForChanges();
99
- const pagItem = await page.find("ic-pagination >>> #pagination-item-7");
100
- await page.waitForChanges();
101
- await pagItem.click();
102
- await page.waitForChanges();
103
- expect(icPageChange).toHaveReceivedEventDetail({ value: 7 });
104
- });
105
- it("should return false when the midddle state is reached and the adjacent-count `page 8` (out of bounds) button is clicked", async () => {
106
- const page = await newE2EPage();
107
- await page.setContent(`<ic-pagination pages="15"
108
- type="complex"
109
- adjacent-count="1"
110
- boundary-count="1" />`);
111
- const nextPage = await page.find("ic-pagination >>> #next-page-button");
112
- await page.waitForChanges();
113
- await nextPage.click();
114
- await page.waitForChanges();
115
- await nextPage.click();
116
- await page.waitForChanges();
117
- await nextPage.click();
118
- await page.waitForChanges();
119
- await nextPage.click();
120
- await page.waitForChanges();
121
- await nextPage.click();
122
- await page.waitForChanges();
123
- const pagItem = await page.find("ic-pagination >>> #pagination-item-8");
124
- await page.waitForChanges();
125
- expect(pagItem).toBe(null);
126
- });
127
- });
128
- //# sourceMappingURL=ic-pagination.e2e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-pagination.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-pagination/test/basic/ic-pagination.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-pagination\", () => {\n it(\"should emit the correct page value when `page 2` is clicked\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(`<ic-pagination pages=\"15\"\n type=\"complex\"\n adjacent-count=\"1\"\n boundary-count=\"1\" />`);\n\n const pagItem = await page.find(\"ic-pagination >>> #pagination-item-2\");\n\n const icPageChange = await page.spyOnEvent(\"icPageChange\");\n\n await page.waitForChanges();\n\n await pagItem.click();\n\n await page.waitForChanges();\n\n expect(icPageChange).toHaveReceivedEventDetail({ value: 2 });\n });\n it(\"should emit the correct page value when `next page` is clicked\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(`<ic-pagination pages=\"15\"\n type=\"complex\"\n adjacent-count=\"1\"\n boundary-count=\"1\" />`);\n\n const nextPage = await page.find(\"ic-pagination >>> #next-page-button\");\n\n const icPageChange = await page.spyOnEvent(\"icPageChange\");\n\n await page.waitForChanges();\n\n await nextPage.click();\n\n await page.waitForChanges();\n\n expect(icPageChange).toHaveReceivedEventDetail({ value: 2 });\n });\n it(\"should emit the correct page value when `page 13` is clicked\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(`<ic-pagination pages=\"15\"\n type=\"complex\"\n adjacent-count=\"1\"\n boundary-count=\"1\" />`);\n\n const lastPage = await page.find(\"ic-pagination >>> #last-page-button\");\n\n const icPageChange = await page.spyOnEvent(\"icPageChange\");\n\n await page.waitForChanges();\n\n await lastPage.click();\n\n await page.waitForChanges();\n\n const pagItem = await page.find(\"ic-pagination >>> #pagination-item-13\");\n\n await page.waitForChanges();\n\n await pagItem.click();\n\n await page.waitForChanges();\n\n expect(icPageChange).toHaveReceivedEventDetail({ value: 13 });\n });\n it(\"should emit the correct page value when the `previous page` button is clicked\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(`<ic-pagination pages=\"15\"\n type=\"complex\"\n adjacent-count=\"1\"\n boundary-count=\"1\" />`);\n\n const lastPage = await page.find(\"ic-pagination >>> #last-page-button\");\n\n const icPageChange = await page.spyOnEvent(\"icPageChange\");\n\n await page.waitForChanges();\n\n await lastPage.click();\n\n await page.waitForChanges();\n\n const previousPage = await page.find(\n \"ic-pagination >>> #previous-page-button\"\n );\n\n await page.waitForChanges();\n\n await previousPage.click();\n\n await page.waitForChanges();\n\n expect(icPageChange).toHaveReceivedEventDetail({ value: 14 });\n });\n it(\"should emit the correct page value when the `first page` button is clicked\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(`<ic-pagination pages=\"15\"\n type=\"complex\"\n adjacent-count=\"1\"\n boundary-count=\"1\" />`);\n\n const lastPage = await page.find(\"ic-pagination >>> #last-page-button\");\n\n const icPageChange = await page.spyOnEvent(\"icPageChange\");\n\n await page.waitForChanges();\n\n await lastPage.click();\n\n await page.waitForChanges();\n\n const previousPage = await page.find(\n \"ic-pagination >>> #first-page-button\"\n );\n\n await page.waitForChanges();\n\n await previousPage.click();\n\n await page.waitForChanges();\n\n expect(icPageChange).toHaveReceivedEventDetail({ value: 1 });\n });\n it(\"should emit the correct page value when the midddle state is reached and the adjacent-count `page 7` button is clicked\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(`<ic-pagination pages=\"15\"\n type=\"complex\"\n adjacent-count=\"1\"\n boundary-count=\"1\" />`);\n\n const nextPage = await page.find(\"ic-pagination >>> #next-page-button\");\n\n const icPageChange = await page.spyOnEvent(\"icPageChange\");\n\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n\n const pagItem = await page.find(\"ic-pagination >>> #pagination-item-7\");\n\n await page.waitForChanges();\n\n await pagItem.click();\n\n await page.waitForChanges();\n\n expect(icPageChange).toHaveReceivedEventDetail({ value: 7 });\n });\n it(\"should return false when the midddle state is reached and the adjacent-count `page 8` (out of bounds) button is clicked\", async () => {\n const page = await newE2EPage();\n\n await page.setContent(`<ic-pagination pages=\"15\"\n type=\"complex\"\n adjacent-count=\"1\"\n boundary-count=\"1\" />`);\n\n const nextPage = await page.find(\"ic-pagination >>> #next-page-button\");\n\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n await nextPage.click();\n await page.waitForChanges();\n\n const pagItem = await page.find(\"ic-pagination >>> #pagination-item-8\");\n\n await page.waitForChanges();\n\n expect(pagItem).toBe(null);\n });\n});\n"]}
@@ -1,13 +0,0 @@
1
- import { fixture } from "@open-wc/testing-helpers";
2
- import { axe } from "jest-axe";
3
- import { checkShadowElementRendersCorrectly } from "../../../../utils/testa11y.helpers";
4
- describe("ic-popover-menu", () => {
5
- it("passes accessibility", async () => {
6
- const el = await fixture(`
7
- <ic-button id="buttonEl">Button El</ic-button>
8
- <ic-popover-menu anchor="#buttonEl" aria-label="Popover menu"></ic-popover-menu>`);
9
- checkShadowElementRendersCorrectly(el);
10
- expect(await axe(el)).toHaveNoViolations();
11
- });
12
- });
13
- //# sourceMappingURL=ic-popover-menu.test.a11y.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-popover-menu.test.a11y.js","sourceRoot":"","sources":["../../../../../src/components/ic-popover-menu/test/a11y/ic-popover-menu.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;IAC/B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;;qFAEwD,CAAC,CAAC;QACnF,kCAAkC,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC7C,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(\"ic-popover-menu\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(`\n <ic-button id=\"buttonEl\">Button El</ic-button>\n <ic-popover-menu anchor=\"#buttonEl\" aria-label=\"Popover menu\"></ic-popover-menu>`);\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
@@ -1,33 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- beforeAll(() => {
3
- jest.spyOn(console, "error").mockImplementation(jest.fn());
4
- });
5
- describe("ic-popover-menu component", () => {
6
- it("renders", async () => {
7
- const page = await newE2EPage();
8
- await page.setContent(`<ic-button id="button-1">Anchor button</ic-button><ic-popover-menu anchor="button-1" aria-label="popover" open="true"><ic-menu-item label="Test button" id="test-button"></ic-menu-item></ic-popover-menu>`);
9
- const element = await page.find("ic-popover-menu");
10
- expect(element).toHaveClass("hydrated");
11
- });
12
- it("should emit triggerPopoverMenuInstance when submenu trigger button is clicked", async () => {
13
- const page = await newE2EPage();
14
- await page.setContent(`<ic-button id="button-1">Anchor button</ic-button><ic-popover-menu anchor="button-1" aria-label="popover" open="true"><ic-menu-item label="Test button" id="test-button" submenu-trigger-for="submenu"></ic-menu-item></ic-popover-menu>`);
15
- await page.waitForChanges();
16
- const submenuTriggerButton = await page.find("#test-button");
17
- const triggerPopoverMenuInstance = await page.spyOnEvent("triggerPopoverMenuInstance");
18
- await submenuTriggerButton.click();
19
- await page.waitForChanges();
20
- expect(triggerPopoverMenuInstance).toHaveReceivedEvent();
21
- });
22
- it("should emit handleMenuItemClick when menu item is clicked", async () => {
23
- const page = await newE2EPage();
24
- await page.setContent(`<ic-button id="button-1">Anchor button</ic-button><ic-popover-menu anchor="button-1" aria-label="popover" open="true"><ic-menu-item label="Test button" id="test-button"></ic-menu-item></ic-popover-menu>`);
25
- await page.waitForChanges();
26
- const triggerButton = await page.find("#test-button");
27
- const handleMenuItemClick = await page.spyOnEvent("handleMenuItemClick");
28
- await triggerButton.click();
29
- await page.waitForChanges();
30
- expect(handleMenuItemClick).toHaveReceivedEvent();
31
- });
32
- });
33
- //# sourceMappingURL=ic-popover-menu.e2e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-popover-menu.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CACnB,4MAA4M,CAC7M,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEnD,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CACnB,0OAA0O,CAC3O,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,UAAU,CACtD,4BAA4B,CAC7B,CAAC;QAEF,MAAM,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAEnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,0BAA0B,CAAC,CAAC,mBAAmB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CACnB,4MAA4M,CAC7M,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEtD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAEzE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,mBAAmB,CAAC,CAAC,mBAAmB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n});\n\ndescribe(\"ic-popover-menu component\", () => {\n it(\"renders\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-button id=\"button-1\">Anchor button</ic-button><ic-popover-menu anchor=\"button-1\" aria-label=\"popover\" open=\"true\"><ic-menu-item label=\"Test button\" id=\"test-button\"></ic-menu-item></ic-popover-menu>`\n );\n\n const element = await page.find(\"ic-popover-menu\");\n\n expect(element).toHaveClass(\"hydrated\");\n });\n\n it(\"should emit triggerPopoverMenuInstance when submenu trigger button is clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-button id=\"button-1\">Anchor button</ic-button><ic-popover-menu anchor=\"button-1\" aria-label=\"popover\" open=\"true\"><ic-menu-item label=\"Test button\" id=\"test-button\" submenu-trigger-for=\"submenu\"></ic-menu-item></ic-popover-menu>`\n );\n\n await page.waitForChanges();\n\n const submenuTriggerButton = await page.find(\"#test-button\");\n\n const triggerPopoverMenuInstance = await page.spyOnEvent(\n \"triggerPopoverMenuInstance\"\n );\n\n await submenuTriggerButton.click();\n\n await page.waitForChanges();\n\n expect(triggerPopoverMenuInstance).toHaveReceivedEvent();\n });\n\n it(\"should emit handleMenuItemClick when menu item is clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-button id=\"button-1\">Anchor button</ic-button><ic-popover-menu anchor=\"button-1\" aria-label=\"popover\" open=\"true\"><ic-menu-item label=\"Test button\" id=\"test-button\"></ic-menu-item></ic-popover-menu>`\n );\n\n await page.waitForChanges();\n\n const triggerButton = await page.find(\"#test-button\");\n\n const handleMenuItemClick = await page.spyOnEvent(\"handleMenuItemClick\");\n\n await triggerButton.click();\n\n await page.waitForChanges();\n\n expect(handleMenuItemClick).toHaveReceivedEvent();\n });\n});\n"]}