@ukic/web-components 2.1.0-beta.0 → 2.1.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (401) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/core.cjs.js.map +1 -1
  3. package/dist/cjs/{helpers-d0eeccf0.js → helpers-8bc3b6d2.js} +83 -38
  4. package/dist/cjs/helpers-8bc3b6d2.js.map +1 -0
  5. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  6. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-button_3.cjs.entry.js +56 -17
  13. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-card.cjs.entry.js +16 -3
  15. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -4
  18. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  28. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +3 -3
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-radio-option.cjs.entry.js +2 -2
  43. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-select.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  47. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-step.cjs.entry.js +1 -9
  53. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  56. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-tab-panel.cjs.entry.js +0 -4
  59. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-tab.cjs.entry.js +1 -5
  61. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-text-field.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-theme.cjs.entry.js +19 -11
  65. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  68. package/dist/cjs/index-3ef30d9d.js.map +1 -1
  69. package/dist/cjs/loader.cjs.js +2 -2
  70. package/dist/cjs/loader.cjs.js.map +1 -1
  71. package/dist/cjs/types-3eb02246.js.map +1 -1
  72. package/dist/collection/collection-manifest.json +2 -2
  73. package/dist/collection/components/ic-alert/ic-alert.css +10 -4
  74. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +6 -0
  75. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +6 -0
  76. package/dist/collection/components/ic-button/ic-button.css +11 -0
  77. package/dist/collection/components/ic-card/ic-card.css +5 -0
  78. package/dist/collection/components/ic-card/ic-card.js +23 -2
  79. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  80. package/dist/collection/components/ic-checkbox/ic-checkbox.css +38 -1
  81. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -3
  82. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  83. package/dist/collection/components/ic-classification-banner/ic-classification-banner.css +6 -0
  84. package/dist/collection/components/ic-data-entity/ic-data-entity.css +6 -0
  85. package/dist/collection/components/ic-data-row/ic-data-row.css +7 -1
  86. package/dist/collection/components/ic-footer/ic-footer.css +6 -0
  87. package/dist/collection/components/ic-footer-link/ic-footer-link.css +7 -0
  88. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +18 -4
  89. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +56 -101
  90. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +53 -12
  91. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  92. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
  93. package/dist/collection/components/ic-menu/ic-menu.css +8 -1
  94. package/dist/collection/components/ic-radio-option/ic-radio-option.css +29 -10
  95. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +11 -0
  96. package/dist/collection/components/ic-skeleton/ic-skeleton.css +8 -0
  97. package/dist/collection/components/ic-status-tag/ic-status-tag.css +8 -0
  98. package/dist/collection/components/ic-step/ic-step.css +36 -1
  99. package/dist/collection/components/ic-step/ic-step.js +4 -11
  100. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  101. package/dist/collection/components/ic-switch/ic-switch.css +30 -0
  102. package/dist/collection/components/ic-tab/ic-tab.css +11 -1
  103. package/dist/collection/components/ic-tab/ic-tab.js +2 -6
  104. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  105. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -6
  106. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  107. package/dist/collection/components/ic-text-field/ic-text-field.css +11 -0
  108. package/dist/collection/components/ic-theme/ic-theme.js +21 -11
  109. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  110. package/dist/collection/components/ic-tooltip/ic-tooltip.css +6 -0
  111. package/dist/collection/components/ic-tooltip/ic-tooltip.js +3 -1
  112. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  113. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +91 -78
  114. package/dist/collection/utils/constants.js +9 -0
  115. package/dist/collection/utils/constants.js.map +1 -1
  116. package/dist/collection/utils/helpers.js +68 -35
  117. package/dist/collection/utils/helpers.js.map +1 -1
  118. package/dist/collection/utils/types.js.map +1 -1
  119. package/dist/components/helpers.js +78 -36
  120. package/dist/components/helpers.js.map +1 -1
  121. package/dist/components/ic-alert.js +1 -1
  122. package/dist/components/ic-alert.js.map +1 -1
  123. package/dist/components/ic-back-to-top.js +1 -1
  124. package/dist/components/ic-back-to-top.js.map +1 -1
  125. package/dist/components/ic-breadcrumb2.js +1 -1
  126. package/dist/components/ic-breadcrumb2.js.map +1 -1
  127. package/dist/components/ic-button2.js +2 -2
  128. package/dist/components/ic-button2.js.map +1 -1
  129. package/dist/components/ic-card.js +19 -4
  130. package/dist/components/ic-card.js.map +1 -1
  131. package/dist/components/ic-checkbox-group.js +1 -1
  132. package/dist/components/ic-checkbox.js +5 -4
  133. package/dist/components/ic-checkbox.js.map +1 -1
  134. package/dist/components/ic-classification-banner.js +1 -1
  135. package/dist/components/ic-classification-banner.js.map +1 -1
  136. package/dist/components/ic-data-entity.js +1 -1
  137. package/dist/components/ic-data-entity.js.map +1 -1
  138. package/dist/components/ic-data-row.js +1 -1
  139. package/dist/components/ic-data-row.js.map +1 -1
  140. package/dist/components/ic-divider2.js +1 -1
  141. package/dist/components/ic-footer-link-group.js +1 -1
  142. package/dist/components/ic-footer-link.js +2 -2
  143. package/dist/components/ic-footer-link.js.map +1 -1
  144. package/dist/components/ic-footer.js +2 -2
  145. package/dist/components/ic-footer.js.map +1 -1
  146. package/dist/components/ic-hero.js +1 -1
  147. package/dist/components/ic-input-component-container2.js +1 -1
  148. package/dist/components/ic-input-component-container2.js.map +1 -1
  149. package/dist/components/ic-input-label2.js +1 -1
  150. package/dist/components/ic-input-validation2.js +1 -1
  151. package/dist/components/ic-link2.js +1 -1
  152. package/dist/components/ic-loading-indicator2.js +53 -14
  153. package/dist/components/ic-loading-indicator2.js.map +1 -1
  154. package/dist/components/ic-menu2.js +1 -1
  155. package/dist/components/ic-menu2.js.map +1 -1
  156. package/dist/components/ic-navigation-button.js +1 -1
  157. package/dist/components/ic-navigation-group.js +1 -1
  158. package/dist/components/ic-navigation-item.js +1 -1
  159. package/dist/components/ic-navigation-menu2.js +1 -1
  160. package/dist/components/ic-radio-group.js +1 -1
  161. package/dist/components/ic-radio-option.js +2 -2
  162. package/dist/components/ic-radio-option.js.map +1 -1
  163. package/dist/components/ic-search-bar.js +1 -1
  164. package/dist/components/ic-select.js +1 -1
  165. package/dist/components/ic-side-navigation.js +2 -2
  166. package/dist/components/ic-side-navigation.js.map +1 -1
  167. package/dist/components/ic-skeleton.js +1 -1
  168. package/dist/components/ic-skeleton.js.map +1 -1
  169. package/dist/components/ic-status-tag.js +1 -1
  170. package/dist/components/ic-status-tag.js.map +1 -1
  171. package/dist/components/ic-step.js +1 -8
  172. package/dist/components/ic-step.js.map +1 -1
  173. package/dist/components/ic-switch.js +2 -2
  174. package/dist/components/ic-switch.js.map +1 -1
  175. package/dist/components/ic-tab-group.js +1 -1
  176. package/dist/components/ic-tab-panel.js +0 -4
  177. package/dist/components/ic-tab-panel.js.map +1 -1
  178. package/dist/components/ic-tab.js +1 -5
  179. package/dist/components/ic-tab.js.map +1 -1
  180. package/dist/components/ic-text-field2.js +2 -2
  181. package/dist/components/ic-text-field2.js.map +1 -1
  182. package/dist/components/ic-theme.js +19 -11
  183. package/dist/components/ic-theme.js.map +1 -1
  184. package/dist/components/ic-tooltip2.js +4 -2
  185. package/dist/components/ic-tooltip2.js.map +1 -1
  186. package/dist/components/ic-top-navigation.js +2 -2
  187. package/dist/components/ic-top-navigation.js.map +1 -1
  188. package/dist/components/types.js.map +1 -1
  189. package/dist/core/core.css +11 -11
  190. package/dist/core/core.esm.js +1 -1
  191. package/dist/core/core.esm.js.map +1 -1
  192. package/dist/core/{p-9c1f2861.entry.js → p-0118400b.entry.js} +2 -2
  193. package/dist/core/p-0118400b.entry.js.map +1 -0
  194. package/dist/core/{p-0992a2ee.entry.js → p-02799e26.entry.js} +2 -2
  195. package/dist/core/p-02799e26.entry.js.map +1 -0
  196. package/dist/core/{p-972f4e69.entry.js → p-07cd789d.entry.js} +2 -2
  197. package/dist/core/{p-972f4e69.entry.js.map → p-07cd789d.entry.js.map} +1 -1
  198. package/dist/core/{p-48029498.entry.js → p-0b125f26.entry.js} +2 -2
  199. package/dist/core/{p-48029498.entry.js.map → p-0b125f26.entry.js.map} +0 -0
  200. package/dist/core/{p-3c6defd7.entry.js → p-10da19d2.entry.js} +2 -2
  201. package/dist/core/{p-3c6defd7.entry.js.map → p-10da19d2.entry.js.map} +0 -0
  202. package/dist/core/{p-6009c5bc.entry.js → p-1337db5e.entry.js} +2 -2
  203. package/dist/core/p-1337db5e.entry.js.map +1 -0
  204. package/dist/core/p-1721bcf3.entry.js +2 -0
  205. package/dist/core/p-1721bcf3.entry.js.map +1 -0
  206. package/dist/core/p-23831891.js +2 -0
  207. package/dist/core/p-23831891.js.map +1 -0
  208. package/dist/core/p-272c7abd.entry.js +2 -0
  209. package/dist/core/p-272c7abd.entry.js.map +1 -0
  210. package/dist/core/{p-ee3a9fd0.entry.js → p-2f114521.entry.js} +2 -2
  211. package/dist/core/{p-ee3a9fd0.entry.js.map → p-2f114521.entry.js.map} +0 -0
  212. package/dist/core/{p-54b77947.entry.js → p-31a8595f.entry.js} +2 -2
  213. package/dist/core/{p-54b77947.entry.js.map → p-31a8595f.entry.js.map} +0 -0
  214. package/dist/core/p-33a45ace.entry.js +2 -0
  215. package/dist/core/{p-c96adfd7.entry.js.map → p-33a45ace.entry.js.map} +1 -1
  216. package/dist/core/{p-a9237c61.entry.js → p-347ec49e.entry.js} +2 -2
  217. package/dist/core/{p-a9237c61.entry.js.map → p-347ec49e.entry.js.map} +0 -0
  218. package/dist/core/p-39ae284e.entry.js +2 -0
  219. package/dist/core/p-39ae284e.entry.js.map +1 -0
  220. package/dist/core/{p-bf4ddf33.entry.js → p-558552f8.entry.js} +2 -2
  221. package/dist/core/p-558552f8.entry.js.map +1 -0
  222. package/dist/core/{p-af6a41bd.entry.js → p-5e261268.entry.js} +2 -2
  223. package/dist/core/{p-af6a41bd.entry.js.map → p-5e261268.entry.js.map} +0 -0
  224. package/dist/core/p-60ffb73e.entry.js +2 -0
  225. package/dist/core/p-60ffb73e.entry.js.map +1 -0
  226. package/dist/core/p-69650186.entry.js +2 -0
  227. package/dist/core/p-69650186.entry.js.map +1 -0
  228. package/dist/core/{p-12e113bf.entry.js → p-6b34d98f.entry.js} +2 -2
  229. package/dist/core/{p-12e113bf.entry.js.map → p-6b34d98f.entry.js.map} +0 -0
  230. package/dist/core/p-6f57b13c.js.map +1 -1
  231. package/dist/core/{p-a183353c.entry.js → p-6f6bd657.entry.js} +2 -2
  232. package/dist/core/{p-a183353c.entry.js.map → p-6f6bd657.entry.js.map} +0 -0
  233. package/dist/core/p-7093d214.entry.js +2 -0
  234. package/dist/core/p-7093d214.entry.js.map +1 -0
  235. package/dist/core/p-7b11e1dc.entry.js +2 -0
  236. package/dist/core/{p-db6566c0.entry.js.map → p-7b11e1dc.entry.js.map} +1 -1
  237. package/dist/core/p-7b39977f.entry.js +2 -0
  238. package/dist/core/p-7b39977f.entry.js.map +1 -0
  239. package/dist/core/p-7f632414.entry.js +2 -0
  240. package/dist/core/p-7f632414.entry.js.map +1 -0
  241. package/dist/core/{p-59041cfc.entry.js → p-898607d0.entry.js} +2 -2
  242. package/dist/core/{p-59041cfc.entry.js.map → p-898607d0.entry.js.map} +0 -0
  243. package/dist/core/{p-c023c49c.entry.js → p-8ddeb574.entry.js} +2 -2
  244. package/dist/core/p-8ddeb574.entry.js.map +1 -0
  245. package/dist/core/{p-037273aa.entry.js → p-9cd04875.entry.js} +2 -2
  246. package/dist/core/{p-037273aa.entry.js.map → p-9cd04875.entry.js.map} +0 -0
  247. package/dist/core/{p-17d0d631.entry.js → p-ac43322e.entry.js} +2 -2
  248. package/dist/core/p-ac43322e.entry.js.map +1 -0
  249. package/dist/core/{p-2177dae2.entry.js → p-ae81dffa.entry.js} +2 -2
  250. package/dist/core/{p-2177dae2.entry.js.map → p-ae81dffa.entry.js.map} +1 -1
  251. package/dist/core/{p-1b619302.entry.js → p-b3dec76d.entry.js} +2 -2
  252. package/dist/core/{p-1b619302.entry.js.map → p-b3dec76d.entry.js.map} +0 -0
  253. package/dist/core/p-b5a988c0.entry.js +2 -0
  254. package/dist/core/p-b5a988c0.entry.js.map +1 -0
  255. package/dist/core/{p-0d63bfe4.entry.js → p-c4d3c18c.entry.js} +2 -2
  256. package/dist/core/{p-0d63bfe4.entry.js.map → p-c4d3c18c.entry.js.map} +0 -0
  257. package/dist/core/{p-9a3d6bca.entry.js → p-c6dd4f47.entry.js} +2 -2
  258. package/dist/core/p-c6dd4f47.entry.js.map +1 -0
  259. package/dist/core/p-cadb531f.entry.js +2 -0
  260. package/dist/core/p-cadb531f.entry.js.map +1 -0
  261. package/dist/core/p-cc83692e.entry.js +2 -0
  262. package/dist/core/{p-d38168f0.entry.js.map → p-cc83692e.entry.js.map} +1 -1
  263. package/dist/core/{p-9db8edb7.entry.js → p-dd3c3e3c.entry.js} +2 -2
  264. package/dist/core/{p-9db8edb7.entry.js.map → p-dd3c3e3c.entry.js.map} +0 -0
  265. package/dist/core/p-df5caf13.entry.js +2 -0
  266. package/dist/core/p-df5caf13.entry.js.map +1 -0
  267. package/dist/core/p-e106305b.entry.js +2 -0
  268. package/dist/core/{p-8054c2c0.entry.js.map → p-e106305b.entry.js.map} +1 -1
  269. package/dist/core/p-e590f1d2.entry.js +2 -0
  270. package/dist/core/p-e590f1d2.entry.js.map +1 -0
  271. package/dist/core/{p-eb33ece2.entry.js → p-e93e9aa3.entry.js} +2 -2
  272. package/dist/core/p-e93e9aa3.entry.js.map +1 -0
  273. package/dist/core/{p-378a7270.entry.js → p-ecfb2e6b.entry.js} +2 -2
  274. package/dist/core/{p-378a7270.entry.js.map → p-ecfb2e6b.entry.js.map} +0 -0
  275. package/dist/core/p-f9370be6.js.map +1 -1
  276. package/dist/esm/core.js +2 -2
  277. package/dist/esm/core.js.map +1 -1
  278. package/dist/esm/{helpers-e090fe7e.js → helpers-3d41833c.js} +79 -37
  279. package/dist/esm/helpers-3d41833c.js.map +1 -0
  280. package/dist/esm/ic-alert.entry.js +2 -2
  281. package/dist/esm/ic-alert.entry.js.map +1 -1
  282. package/dist/esm/ic-back-to-top.entry.js +2 -2
  283. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  284. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  285. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  286. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  287. package/dist/esm/ic-button_3.entry.js +56 -17
  288. package/dist/esm/ic-button_3.entry.js.map +1 -1
  289. package/dist/esm/ic-card.entry.js +16 -3
  290. package/dist/esm/ic-card.entry.js.map +1 -1
  291. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  292. package/dist/esm/ic-checkbox.entry.js +5 -4
  293. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  294. package/dist/esm/ic-classification-banner.entry.js +1 -1
  295. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  296. package/dist/esm/ic-data-entity.entry.js +1 -1
  297. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  298. package/dist/esm/ic-data-row.entry.js +2 -2
  299. package/dist/esm/ic-data-row.entry.js.map +1 -1
  300. package/dist/esm/ic-divider.entry.js +1 -1
  301. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  302. package/dist/esm/ic-footer-link.entry.js +2 -2
  303. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  304. package/dist/esm/ic-footer.entry.js +2 -2
  305. package/dist/esm/ic-footer.entry.js.map +1 -1
  306. package/dist/esm/ic-hero.entry.js +1 -1
  307. package/dist/esm/ic-input-component-container_3.entry.js +3 -3
  308. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  309. package/dist/esm/ic-input-label_2.entry.js +1 -1
  310. package/dist/esm/ic-link.entry.js +1 -1
  311. package/dist/esm/ic-navigation-button.entry.js +1 -1
  312. package/dist/esm/ic-navigation-group.entry.js +1 -1
  313. package/dist/esm/ic-navigation-item.entry.js +1 -1
  314. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  315. package/dist/esm/ic-page-header.entry.js +1 -1
  316. package/dist/esm/ic-radio-group.entry.js +1 -1
  317. package/dist/esm/ic-radio-option.entry.js +2 -2
  318. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  319. package/dist/esm/ic-search-bar.entry.js +1 -1
  320. package/dist/esm/ic-select.entry.js +1 -1
  321. package/dist/esm/ic-side-navigation.entry.js +2 -2
  322. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  323. package/dist/esm/ic-skeleton.entry.js +1 -1
  324. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  325. package/dist/esm/ic-status-tag.entry.js +2 -2
  326. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  327. package/dist/esm/ic-step.entry.js +1 -9
  328. package/dist/esm/ic-step.entry.js.map +1 -1
  329. package/dist/esm/ic-stepper.entry.js +1 -1
  330. package/dist/esm/ic-switch.entry.js +2 -2
  331. package/dist/esm/ic-switch.entry.js.map +1 -1
  332. package/dist/esm/ic-tab-group.entry.js +1 -1
  333. package/dist/esm/ic-tab-panel.entry.js +0 -4
  334. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  335. package/dist/esm/ic-tab.entry.js +1 -5
  336. package/dist/esm/ic-tab.entry.js.map +1 -1
  337. package/dist/esm/ic-text-field.entry.js +2 -2
  338. package/dist/esm/ic-text-field.entry.js.map +1 -1
  339. package/dist/esm/ic-theme.entry.js +19 -11
  340. package/dist/esm/ic-theme.entry.js.map +1 -1
  341. package/dist/esm/ic-top-navigation.entry.js +2 -2
  342. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  343. package/dist/esm/index-1500de1f.js.map +1 -1
  344. package/dist/esm/loader.js +2 -2
  345. package/dist/esm/loader.js.map +1 -1
  346. package/dist/esm/types-dd515332.js.map +1 -1
  347. package/dist/types/components/ic-card/ic-card.d.ts +4 -0
  348. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +1 -1
  349. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +8 -1
  350. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +5 -0
  351. package/dist/types/components/ic-step/ic-step.d.ts +2 -3
  352. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -2
  353. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +1 -2
  354. package/dist/types/components/ic-theme/ic-theme.d.ts +2 -1
  355. package/dist/types/components.d.ts +6 -6
  356. package/dist/types/utils/constants.d.ts +2 -0
  357. package/dist/types/utils/helpers.d.ts +15 -3
  358. package/dist/types/utils/types.d.ts +3 -0
  359. package/hydrate/index.d.ts +1 -1
  360. package/hydrate/index.js +200 -106
  361. package/package.json +8 -5
  362. package/dist/cjs/helpers-d0eeccf0.js.map +0 -1
  363. package/dist/core/p-0992a2ee.entry.js.map +0 -1
  364. package/dist/core/p-155114db.entry.js +0 -2
  365. package/dist/core/p-155114db.entry.js.map +0 -1
  366. package/dist/core/p-17d0d631.entry.js.map +0 -1
  367. package/dist/core/p-40d3fd89.entry.js +0 -2
  368. package/dist/core/p-40d3fd89.entry.js.map +0 -1
  369. package/dist/core/p-50a0f1a0.entry.js +0 -2
  370. package/dist/core/p-50a0f1a0.entry.js.map +0 -1
  371. package/dist/core/p-5977c1e0.entry.js +0 -2
  372. package/dist/core/p-5977c1e0.entry.js.map +0 -1
  373. package/dist/core/p-6009c5bc.entry.js.map +0 -1
  374. package/dist/core/p-8054c2c0.entry.js +0 -2
  375. package/dist/core/p-89d46b9b.entry.js +0 -2
  376. package/dist/core/p-89d46b9b.entry.js.map +0 -1
  377. package/dist/core/p-9a3d6bca.entry.js.map +0 -1
  378. package/dist/core/p-9c1f2861.entry.js.map +0 -1
  379. package/dist/core/p-9e1f450f.entry.js +0 -2
  380. package/dist/core/p-9e1f450f.entry.js.map +0 -1
  381. package/dist/core/p-a6715f61.entry.js +0 -2
  382. package/dist/core/p-a6715f61.entry.js.map +0 -1
  383. package/dist/core/p-aad5da60.entry.js +0 -2
  384. package/dist/core/p-aad5da60.entry.js.map +0 -1
  385. package/dist/core/p-bf4ddf33.entry.js.map +0 -1
  386. package/dist/core/p-bfa9392f.entry.js +0 -2
  387. package/dist/core/p-bfa9392f.entry.js.map +0 -1
  388. package/dist/core/p-c023c49c.entry.js.map +0 -1
  389. package/dist/core/p-c96adfd7.entry.js +0 -2
  390. package/dist/core/p-d38168f0.entry.js +0 -2
  391. package/dist/core/p-d61c2983.entry.js +0 -2
  392. package/dist/core/p-d61c2983.entry.js.map +0 -1
  393. package/dist/core/p-db6566c0.entry.js +0 -2
  394. package/dist/core/p-eb33ece2.entry.js.map +0 -1
  395. package/dist/core/p-ef59f111.entry.js +0 -2
  396. package/dist/core/p-ef59f111.entry.js.map +0 -1
  397. package/dist/core/p-f228c232.js +0 -2
  398. package/dist/core/p-f228c232.js.map +0 -1
  399. package/dist/core/p-fce4b26b.entry.js +0 -2
  400. package/dist/core/p-fce4b26b.entry.js.map +0 -1
  401. package/dist/esm/helpers-e090fe7e.js.map +0 -1
@@ -624,3 +624,33 @@ input {
624
624
  ::slotted(*) {
625
625
  margin-left: var(--ic-space-sm);
626
626
  }
627
+
628
+ ::slotted(svg) {
629
+ fill: currentColor;
630
+ }
631
+
632
+ @media (forced-colors: active) {
633
+ .ic-switch-toggle::before,
634
+ .ic-switch-input:checked + .ic-switch-toggle {
635
+ border: var(--ic-hc-border);
636
+ }
637
+
638
+ .ic-switch-input:checked + .ic-switch-toggle::before {
639
+ transform: translate(calc(var(--ic-space-xl) - 2px), -50%);
640
+ }
641
+
642
+ .ic-switch-input:disabled + .ic-switch-toggle,
643
+ .ic-switch-input:disabled:checked + .ic-switch-toggle,
644
+ .ic-switch-input:disabled + .ic-switch-toggle::before {
645
+ border-color: GrayText;
646
+ }
647
+
648
+ .ic-switch-input:disabled ~ .ic-switch-checked-status {
649
+ color: GrayText;
650
+ }
651
+
652
+ .ic-switch-disabled .ic-switch-icon-circle,
653
+ .ic-switch-disabled .ic-switch-icon-line {
654
+ stroke: GrayText;
655
+ }
656
+ }
@@ -507,5 +507,15 @@ video {
507
507
  }
508
508
 
509
509
  ::slotted(svg) {
510
- fill: var(--label-color);
510
+ fill: currentcolor;
511
+ }
512
+
513
+ @media (forced-colors: active) {
514
+ :host {
515
+ border-bottom: var(--ic-space-xxs) solid canvas;
516
+ }
517
+
518
+ :host([disabled]) {
519
+ color: GrayText;
520
+ }
511
521
  }
@@ -1,5 +1,4 @@
1
1
  import { Host, h, } from "@stencil/core";
2
- import { onComponentRequiredPropUndefined } from "../../utils/helpers";
3
2
  import { IcThemeForegroundEnum, } from "../../utils/types";
4
3
  /**
5
4
  * @slot icon - Content will be rendered next to the tab label.
@@ -48,9 +47,6 @@ export class Tab {
48
47
  componentDidUpdate() {
49
48
  this.isInitialRender = false;
50
49
  }
51
- componentDidLoad() {
52
- onComponentRequiredPropUndefined([{ prop: this.tabPosition, propName: "tab-position" }], "Tab");
53
- }
54
50
  render() {
55
51
  const { disabled, selected, appearance } = this;
56
52
  return (h(Host, { class: {
@@ -160,8 +156,8 @@ export class Tab {
160
156
  "resolved": "number",
161
157
  "references": {}
162
158
  },
163
- "required": true,
164
- "optional": false,
159
+ "required": false,
160
+ "optional": true,
165
161
  "docs": {
166
162
  "tags": [{
167
163
  "name": "internal",
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n} from \"@stencil/core\";\n\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n @Element() host: HTMLIcTabElement;\n\n /** @internal Provide a unique context if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel. */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * Disables the tab.\n */\n @Prop() disabled?: boolean = false;\n\n /** @internal Will display a selected indicator and set tabIndex. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId?: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition!: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * Called when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Called when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n private isInitialRender: boolean = true;\n private focusFromClick: boolean = false;\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a seperate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.tabPosition, propName: \"tab-position\" }],\n \"Tab\"\n );\n }\n\n render() {\n const { disabled, selected, appearance } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-light\"]: appearance === IcThemeForegroundEnum.Light,\n }}\n role=\"tab\"\n aria-selected={selected ? \"true\" : \"false\"}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onMouseDown={this.handleMouseDown}\n aria-disabled={disabled ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n {this.host.querySelector('[slot=\"icon\"]') && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,IAAI,EACJ,IAAI,EACJ,CAAC,GACF,MAAM,eAAe,CAAC;AAGvB,OAAO,EAEL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AAMH,MAAM,OAAO,GAAG;;IAiCN,oBAAe,GAAY,IAAI,CAAC;IAChC,mBAAc,GAAY,KAAK,CAAC;IAEhC,gBAAW,GAAG,GAAG,EAAE;MACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,WAAW;OAC3B,CAAC,CAAC;MACH,IAAI,IAAI,CAAC,cAAc,EAAE;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;UACjB,KAAK,EAAE,IAAI,CAAC,KAAK;UACjB,SAAS,EAAE,IAAI,CAAC,SAAS;UACzB,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;OAC7B;IACH,CAAC,CAAC;IAEM,gBAAW,GAAG,GAAG,EAAE;MACzB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;UACjB,KAAK,EAAE,IAAI,CAAC,KAAK;UACjB,SAAS,EAAE,IAAI,CAAC,SAAS;UACzB,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;OACJ;IACH,CAAC,CAAC;IAEM,oBAAe,GAAG,GAAG,EAAE;MAC7B,iDAAiD;MACjD,wFAAwF;MACxF,iFAAiF;MACjF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC,CAAC;qBA/D4C,SAAS;oBAK1B,KAAK;oBAGY,KAAK;;;sBASD,MAAM;;EAgDxD,kBAAkB;IAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;EAC/B,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAChD,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;QACL,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe;QAC1C,CAAC,cAAc,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK;OAC7D,EACD,IAAI,EAAC,KAAK,mBACK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC1C,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,WAAW,EAAE,IAAI,CAAC,eAAe,mBAClB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAE/B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,YAAM,IAAI,EAAC,MAAM,GAAQ;MACtE,qBAAe,KAAK,EAAC,cAAc,EAAC,OAAO,EAAC,OAAO;QACjD;UACE,eAAa,CACR,CACO,CACX,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n @Element() host: HTMLIcTabElement;\n\n /** @internal Provide a unique context if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel. */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * Disables the tab.\n */\n @Prop() disabled?: boolean = false;\n\n /** @internal Will display a selected indicator and set tabIndex. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId?: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition?: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * Called when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Called when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n private isInitialRender: boolean = true;\n private focusFromClick: boolean = false;\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a seperate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n render() {\n const { disabled, selected, appearance } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-light\"]: appearance === IcThemeForegroundEnum.Light,\n }}\n role=\"tab\"\n aria-selected={selected ? \"true\" : \"false\"}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onMouseDown={this.handleMouseDown}\n aria-disabled={disabled ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n {this.host.querySelector('[slot=\"icon\"]') && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  import { Host, h } from "@stencil/core";
2
- import { onComponentRequiredPropUndefined } from "../../utils/helpers";
3
2
  import { IcThemeForegroundEnum, } from "../../utils/types";
4
3
  export class TabPanel {
5
4
  constructor() {
@@ -9,9 +8,6 @@ export class TabPanel {
9
8
  this.selectedTab = undefined;
10
9
  this.appearance = "dark";
11
10
  }
12
- componentDidLoad() {
13
- onComponentRequiredPropUndefined([{ prop: this.tabPosition, propName: "tab-position" }], "Tab Panel");
14
- }
15
11
  render() {
16
12
  const { panelId, selectedTab, appearance } = this;
17
13
  return (h(Host, { class: {
@@ -60,8 +56,8 @@ export class TabPanel {
60
56
  "resolved": "number",
61
57
  "references": {}
62
58
  },
63
- "required": true,
64
- "optional": false,
59
+ "required": false,
60
+ "optional": true,
65
61
  "docs": {
66
62
  "tags": [{
67
63
  "name": "internal",
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab-panel.js","sourceRoot":"","sources":["../../../src/components/ic-tab-panel/ic-tab-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,OAAO,QAAQ;;qBAM2B,SAAS;;;;sBAYL,MAAM;;EAExD,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EACtD,WAAW,CACZ,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;QACL,CAAC,oBAAoB,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK;OACnE,EACD,IAAI,EAAC,UAAU,EACf,MAAM,EACJ,OAAO,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS;QAChD,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC;QAC5B,CAAC,CAAC,IAAI;MAGV;QACE,eAAa,CACT,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport {\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tab-panel\",\n styleUrl: \"ic-tab-panel.css\",\n shadow: true,\n})\nexport class TabPanel {\n @Element() host: HTMLIcTabPanelElement;\n\n /**\n * Provide a unique context if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /** @internal The position of the tab panel inside the tabs array in context. */\n @Prop({ reflect: true }) tabPosition!: number;\n\n /** @internal The shared ID that links the panel and tab. */\n @Prop({ reflect: true }) panelId?: string;\n\n /** @internal The shared ID of the currently selected tab. */\n @Prop() selectedTab?: string;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.tabPosition, propName: \"tab-position\" }],\n \"Tab Panel\"\n );\n }\n\n render() {\n const { panelId, selectedTab, appearance } = this;\n return (\n <Host\n class={{\n [\"ic-tab-panel-light\"]: appearance === IcThemeForegroundEnum.Light,\n }}\n role=\"tabpanel\"\n hidden={\n panelId !== undefined && selectedTab !== undefined\n ? !(panelId === selectedTab)\n : true\n }\n >\n <div>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab-panel.js","sourceRoot":"","sources":["../../../src/components/ic-tab-panel/ic-tab-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EACL,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,OAAO,QAAQ;;qBAM2B,SAAS;;;;sBAYL,MAAM;;EAExD,MAAM;IACJ,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;QACL,CAAC,oBAAoB,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK;OACnE,EACD,IAAI,EAAC,UAAU,EACf,MAAM,EACJ,OAAO,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS;QAChD,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC;QAC5B,CAAC,CAAC,IAAI;MAGV;QACE,eAAa,CACT,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\nimport {\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tab-panel\",\n styleUrl: \"ic-tab-panel.css\",\n shadow: true,\n})\nexport class TabPanel {\n @Element() host: HTMLIcTabPanelElement;\n\n /**\n * Provide a unique context if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /** @internal The position of the tab panel inside the tabs array in context. */\n @Prop({ reflect: true }) tabPosition?: number;\n\n /** @internal The shared ID that links the panel and tab. */\n @Prop({ reflect: true }) panelId?: string;\n\n /** @internal The shared ID of the currently selected tab. */\n @Prop() selectedTab?: string;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n render() {\n const { panelId, selectedTab, appearance } = this;\n return (\n <Host\n class={{\n [\"ic-tab-panel-light\"]: appearance === IcThemeForegroundEnum.Light,\n }}\n role=\"tabpanel\"\n hidden={\n panelId !== undefined && selectedTab !== undefined\n ? !(panelId === selectedTab)\n : true\n }\n >\n <div>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -554,3 +554,14 @@ input[type="search"].truncate-value {
554
554
  white-space: nowrap;
555
555
  text-overflow: ellipsis;
556
556
  }
557
+
558
+ @media (forced-colors: active) {
559
+ input.readonly,
560
+ textarea.readonly {
561
+ color: canvastext;
562
+ }
563
+
564
+ .has-value ::slotted([slot="icon"]) {
565
+ fill: currentcolor;
566
+ }
567
+ }
@@ -1,28 +1,38 @@
1
1
  import { Host, h, } from "@stencil/core";
2
- import { getThemeForegroundColor, hexToRgb, rgbStrToObj, } from "../../utils/helpers";
2
+ import { getThemeForegroundColor, hexToRgba, rgbaStrToObj, } from "../../utils/helpers";
3
+ import { getThemeColorBrightness } from "../../utils/helpers";
4
+ import { BLACK_MIN_COLOR_BRIGHTNESS, WHITE_MAX_COLOR_BRIGHTNESS, } from "../../utils/constants";
3
5
  export class Theme {
4
6
  constructor() {
7
+ this.checkThemeColorContrast = () => {
8
+ if (getThemeColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&
9
+ getThemeColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS) {
10
+ console.warn(`The theme colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`);
11
+ }
12
+ };
5
13
  this.setThemeColor = () => {
6
14
  if (this.color !== null) {
7
- let colorRGB = null;
15
+ let colorRGBA = null;
8
16
  const firstChar = this.color.slice(0, 1);
9
17
  if (firstChar === "#") {
10
- colorRGB = hexToRgb(this.color);
18
+ colorRGBA = hexToRgba(this.color);
11
19
  }
12
20
  else if (firstChar.toLowerCase() === "r") {
13
- colorRGB = rgbStrToObj(this.color);
21
+ colorRGBA = rgbaStrToObj(this.color);
14
22
  }
15
- this.setThemeRGB(colorRGB);
23
+ this.setThemeRGBA(colorRGBA);
16
24
  }
17
25
  };
18
- this.setThemeRGB = (colorRGB) => {
19
- if (colorRGB !== null) {
26
+ this.setThemeRGBA = (colorRGBA) => {
27
+ if (colorRGBA !== null) {
20
28
  const root = document.documentElement;
21
- root.style.setProperty("--ic-theme-primary-r", colorRGB.r.toString());
22
- root.style.setProperty("--ic-theme-primary-g", colorRGB.g.toString());
23
- root.style.setProperty("--ic-theme-primary-b", colorRGB.b.toString());
29
+ root.style.setProperty("--ic-theme-primary-r", colorRGBA.r.toString());
30
+ root.style.setProperty("--ic-theme-primary-g", colorRGBA.g.toString());
31
+ root.style.setProperty("--ic-theme-primary-b", colorRGBA.b.toString());
32
+ root.style.setProperty("--ic-theme-primary-a", colorRGBA.a.toString());
33
+ this.checkThemeColorContrast();
24
34
  const foregroundColor = getThemeForegroundColor();
25
- this.icThemeChange.emit({ mode: foregroundColor, color: colorRGB });
35
+ this.icThemeChange.emit({ mode: foregroundColor, color: colorRGBA });
26
36
  }
27
37
  };
28
38
  this.color = null;
@@ -1 +1 @@
1
- {"version":3,"file":"ic-theme.js","sourceRoot":"","sources":["../../../src/components/ic-theme/ic-theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EAEL,CAAC,EACD,KAAK,EACL,IAAI,GACL,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAM7B,MAAM,OAAO,KAAK;;IAgBR,kBAAa,GAAG,GAAG,EAAE;MAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,GAAG,EAAE;UACrB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;aAAM,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;UAC1C,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;OAC5B;IACH,CAAC,CAAC;IAEM,gBAAW,GAAG,CAAC,QAAoB,EAAE,EAAE;MAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,uBAAuB,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;OACrE;IACH,CAAC,CAAC;iBAlCuB,IAAI;;EAG7B,qBAAqB;IACnB,IAAI,CAAC,aAAa,EAAE,CAAC;EACvB,CAAC;EA+BD,iBAAiB;IACf,IAAI,CAAC,aAAa,EAAE,CAAC;EACvB,CAAC;EAED,MAAM;IACJ,OAAO,EAAC,IAAI,OAAQ,CAAC;EACvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Host,\n Event,\n EventEmitter,\n h,\n Watch,\n Prop,\n} from \"@stencil/core\";\n\nimport { IcColorRGB, IcTheme } from \"../../utils/types\";\nimport {\n getThemeForegroundColor,\n hexToRgb,\n rgbStrToObj,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-theme\",\n shadow: true,\n})\nexport class Theme {\n /**\n * The theme colour. Can be a hex value eg \"#ff0000\" or RGB eg \"rgb(255, 0, 0)\"\n */\n @Prop() color?: string = null;\n\n @Watch(\"color\")\n watchColorPropHandler(): void {\n this.setThemeColor();\n }\n\n /**\n * Emitted when the theme is changed.\n */\n @Event() icThemeChange: EventEmitter<IcTheme>;\n\n private setThemeColor = () => {\n if (this.color !== null) {\n let colorRGB = null;\n const firstChar = this.color.slice(0, 1);\n if (firstChar === \"#\") {\n colorRGB = hexToRgb(this.color);\n } else if (firstChar.toLowerCase() === \"r\") {\n colorRGB = rgbStrToObj(this.color);\n }\n this.setThemeRGB(colorRGB);\n }\n };\n\n private setThemeRGB = (colorRGB: IcColorRGB) => {\n if (colorRGB !== null) {\n const root = document.documentElement;\n root.style.setProperty(\"--ic-theme-primary-r\", colorRGB.r.toString());\n root.style.setProperty(\"--ic-theme-primary-g\", colorRGB.g.toString());\n root.style.setProperty(\"--ic-theme-primary-b\", colorRGB.b.toString());\n const foregroundColor = getThemeForegroundColor();\n this.icThemeChange.emit({ mode: foregroundColor, color: colorRGB });\n }\n };\n\n componentWillLoad(): void {\n this.setThemeColor();\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"]}
1
+ {"version":3,"file":"ic-theme.js","sourceRoot":"","sources":["../../../src/components/ic-theme/ic-theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EAEL,CAAC,EACD,KAAK,EACL,IAAI,GACL,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAM/B,MAAM,OAAO,KAAK;;IAgBR,4BAAuB,GAAG,GAAS,EAAE;MAC3C,IACE,uBAAuB,EAAE,GAAG,0BAA0B;QACtD,uBAAuB,EAAE,GAAG,0BAA0B,EACtD;QACA,OAAO,CAAC,IAAI,CACV,2TAA2T,CAC5T,CAAC;OACH;IACH,CAAC,CAAC;IAEM,kBAAa,GAAG,GAAG,EAAE;MAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,GAAG,EAAE;UACrB,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;aAAM,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;UAC1C,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;OAC9B;IACH,CAAC,CAAC;IAEM,iBAAY,GAAG,CAAC,SAAsB,EAAE,EAAE;MAChD,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,MAAM,eAAe,GAAG,uBAAuB,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;OACtE;IACH,CAAC,CAAC;iBAjDuB,IAAI;;EAG7B,qBAAqB;IACnB,IAAI,CAAC,aAAa,EAAE,CAAC;EACvB,CAAC;EA8CD,iBAAiB;IACf,IAAI,CAAC,aAAa,EAAE,CAAC;EACvB,CAAC;EAED,MAAM;IACJ,OAAO,EAAC,IAAI,OAAQ,CAAC;EACvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Host,\n Event,\n EventEmitter,\n h,\n Watch,\n Prop,\n} from \"@stencil/core\";\n\nimport { IcColorRGBA, IcTheme } from \"../../utils/types\";\nimport {\n getThemeForegroundColor,\n hexToRgba,\n rgbaStrToObj,\n} from \"../../utils/helpers\";\nimport { getThemeColorBrightness } from \"../../utils/helpers\";\nimport {\n BLACK_MIN_COLOR_BRIGHTNESS,\n WHITE_MAX_COLOR_BRIGHTNESS,\n} from \"../../utils/constants\";\n\n@Component({\n tag: \"ic-theme\",\n shadow: true,\n})\nexport class Theme {\n /**\n * The theme colour. Can be a hex value eg \"#ff0000\" or RGB eg \"rgb(255, 0, 0)\"\n */\n @Prop() color?: string = null;\n\n @Watch(\"color\")\n watchColorPropHandler(): void {\n this.setThemeColor();\n }\n\n /**\n * Emitted when the theme is changed.\n */\n @Event() icThemeChange: EventEmitter<IcTheme>;\n\n private checkThemeColorContrast = (): void => {\n if (\n getThemeColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&\n getThemeColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS\n ) {\n console.warn(\n `The theme colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`\n );\n }\n };\n\n private setThemeColor = () => {\n if (this.color !== null) {\n let colorRGBA = null;\n const firstChar = this.color.slice(0, 1);\n if (firstChar === \"#\") {\n colorRGBA = hexToRgba(this.color);\n } else if (firstChar.toLowerCase() === \"r\") {\n colorRGBA = rgbaStrToObj(this.color);\n }\n this.setThemeRGBA(colorRGBA);\n }\n };\n\n private setThemeRGBA = (colorRGBA: IcColorRGBA) => {\n if (colorRGBA !== null) {\n const root = document.documentElement;\n root.style.setProperty(\"--ic-theme-primary-r\", colorRGBA.r.toString());\n root.style.setProperty(\"--ic-theme-primary-g\", colorRGBA.g.toString());\n root.style.setProperty(\"--ic-theme-primary-b\", colorRGBA.b.toString());\n root.style.setProperty(\"--ic-theme-primary-a\", colorRGBA.a.toString());\n\n this.checkThemeColorContrast();\n\n const foregroundColor = getThemeForegroundColor();\n this.icThemeChange.emit({ mode: foregroundColor, color: colorRGBA });\n }\n };\n\n componentWillLoad(): void {\n this.setThemeColor();\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"]}
@@ -543,3 +543,9 @@ video {
543
543
  :host([target="ic-button-with-tooltip-clear-button"]) .ic-tooltip-container {
544
544
  z-index: calc(var(--ic-z-index-popup-menu) + 1);
545
545
  }
546
+
547
+ @media (forced-colors: active) {
548
+ :host(.ic-tooltip) .ic-tooltip-container {
549
+ border: var(--ic-hc-border);
550
+ }
551
+ }
@@ -70,7 +70,9 @@ export class Tooltip {
70
70
  }
71
71
  updateLabel(newValue) {
72
72
  const describedBySpan = this.el.previousElementSibling;
73
- describedBySpan.innerText = newValue;
73
+ if (describedBySpan !== null) {
74
+ describedBySpan.innerText = newValue;
75
+ }
74
76
  }
75
77
  componentDidLoad() {
76
78
  this.popperInstance = createPopper(this.el, this.toolTip, {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tooltip.js","sourceRoot":"","sources":["../../../src/components/ic-tooltip/ic-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, h, Watch } from \"@stencil/core\";\nimport { Instance, createPopper } from \"@popperjs/core\";\nimport { IcTooltipPlacements } from \"./ic-tooltip.types\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-tooltip\",\n styleUrl: \"ic-tooltip.css\",\n shadow: true,\n})\nexport class Tooltip {\n @Element() el: HTMLIcTooltipElement;\n\n /**\n * The ID of the element the tooltip is describing - for when aria-labelledby or aria-describedby is used.\n */\n @Prop({ reflect: true }) target?: string;\n\n /**\n * The position of the tool-tip in relation to the parent element.\n */\n @Prop() placement?: IcTooltipPlacements = \"bottom\";\n\n /**\n * The text to display on the tooltip.\n */\n @Prop() label!: string;\n\n @Watch(\"label\")\n updateLabel(newValue: string): void {\n const describedBySpan = this.el.previousElementSibling as HTMLElement;\n describedBySpan.innerText = newValue;\n }\n\n private toolTip: HTMLDivElement;\n private arrow: HTMLDivElement;\n private mouseOverTool: boolean = false;\n private showEvents = [\"mouseenter\", \"focusin\"];\n private instantHideEvents = [\"focusout\"];\n private delayedHideEvents = [\"mouseleave\"];\n private popperInstance: Instance;\n\n private show = (popper: Instance) => {\n this.toolTip.setAttribute(\"data-show\", \"\");\n popper.setOptions((options) => ({\n ...options,\n modifiers: [\n ...options.modifiers,\n { name: \"eventListeners\", enabled: true },\n ],\n }));\n popper.update();\n };\n\n private hide = (popper: Instance) => {\n this.toolTip.removeAttribute(\"data-show\");\n popper.setOptions((options) => ({\n ...options,\n modifiers: [\n ...options.modifiers,\n { name: \"eventListeners\", enabled: false },\n ],\n }));\n };\n\n private checkCloseTooltip = (popper: Instance) => {\n setTimeout(() => {\n if (!this.mouseOverTool) {\n this.hide(popper);\n }\n }, 100);\n };\n\n private mouseEnterTooltip = () => {\n this.mouseOverTool = true;\n };\n\n private mouseLeaveTooltip = (popper: Instance) => {\n this.mouseOverTool = false;\n this.checkCloseTooltip(popper);\n };\n\n private handleKeyDown = (key: string) => {\n if (key === \"Escape\") {\n this.hide(this.popperInstance);\n }\n };\n\n private manageEventListeners = (action: \"add\" | \"remove\") => {\n const method =\n action === \"add\" ? \"addEventListener\" : \"removeEventListener\";\n\n this.showEvents.forEach((event) => {\n this.el[method](event, () => this.show(this.popperInstance));\n this.toolTip[method](event, () => this.mouseEnterTooltip());\n });\n\n this.instantHideEvents.forEach((event) => {\n this.el[method](event, () => this.hide(this.popperInstance));\n });\n\n this.delayedHideEvents.forEach((event) => {\n this.el[method](event, () => this.checkCloseTooltip(this.popperInstance));\n this.toolTip[method](event, () =>\n this.mouseLeaveTooltip(this.popperInstance)\n );\n });\n\n document[method](\"keydown\", (event: KeyboardEvent) =>\n this.handleKeyDown(event.key)\n );\n };\n\n private screenReaderOnlyStyles = {\n position: \"absolute\",\n left: \"-10000px\",\n top: \"auto\",\n width: \"1px\",\n height: \"1px\",\n overflow: \"hidden\",\n };\n\n componentDidLoad(): void {\n this.popperInstance = createPopper(this.el, this.toolTip, {\n placement: this.placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 10],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: this.arrow,\n },\n },\n ],\n });\n\n this.manageEventListeners(\"add\");\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tooltip\"\n );\n\n if (this.target !== undefined) {\n const ariaDescribedBy = document.createElement(\"span\");\n ariaDescribedBy.id = `ic-tooltip-${this.target}`;\n ariaDescribedBy.innerText = this.label;\n ariaDescribedBy.classList.add(\"ic-tooltip-label\");\n Object.assign(ariaDescribedBy.style, this.screenReaderOnlyStyles);\n\n this.el.insertAdjacentElement(\"beforebegin\", ariaDescribedBy);\n }\n }\n\n disconnectedCallback(): void {\n this.manageEventListeners(\"remove\");\n }\n\n render() {\n const { label } = this;\n return (\n <Host class={{ \"ic-tooltip\": true }}>\n <div\n ref={(el) => (this.toolTip = el as HTMLDivElement)}\n role=\"tooltip\"\n class=\"ic-tooltip-container\"\n >\n <ic-typography variant=\"caption\">{label}</ic-typography>\n <div\n ref={(el) => (this.arrow = el as HTMLDivElement)}\n class=\"ic-tooltip-arrow\"\n data-popper-arrow\n ></div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tooltip.js","sourceRoot":"","sources":["../../../src/components/ic-tooltip/ic-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, h, Watch } from \"@stencil/core\";\nimport { Instance, createPopper } from \"@popperjs/core\";\nimport { IcTooltipPlacements } from \"./ic-tooltip.types\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-tooltip\",\n styleUrl: \"ic-tooltip.css\",\n shadow: true,\n})\nexport class Tooltip {\n @Element() el: HTMLIcTooltipElement;\n\n /**\n * The ID of the element the tooltip is describing - for when aria-labelledby or aria-describedby is used.\n */\n @Prop({ reflect: true }) target?: string;\n\n /**\n * The position of the tool-tip in relation to the parent element.\n */\n @Prop() placement?: IcTooltipPlacements = \"bottom\";\n\n /**\n * The text to display on the tooltip.\n */\n @Prop() label!: string;\n\n @Watch(\"label\")\n updateLabel(newValue: string): void {\n const describedBySpan = this.el.previousElementSibling as HTMLElement;\n if (describedBySpan !== null) {\n describedBySpan.innerText = newValue;\n }\n }\n\n private toolTip: HTMLDivElement;\n private arrow: HTMLDivElement;\n private mouseOverTool: boolean = false;\n private showEvents = [\"mouseenter\", \"focusin\"];\n private instantHideEvents = [\"focusout\"];\n private delayedHideEvents = [\"mouseleave\"];\n private popperInstance: Instance;\n\n private show = (popper: Instance) => {\n this.toolTip.setAttribute(\"data-show\", \"\");\n popper.setOptions((options) => ({\n ...options,\n modifiers: [\n ...options.modifiers,\n { name: \"eventListeners\", enabled: true },\n ],\n }));\n popper.update();\n };\n\n private hide = (popper: Instance) => {\n this.toolTip.removeAttribute(\"data-show\");\n popper.setOptions((options) => ({\n ...options,\n modifiers: [\n ...options.modifiers,\n { name: \"eventListeners\", enabled: false },\n ],\n }));\n };\n\n private checkCloseTooltip = (popper: Instance) => {\n setTimeout(() => {\n if (!this.mouseOverTool) {\n this.hide(popper);\n }\n }, 100);\n };\n\n private mouseEnterTooltip = () => {\n this.mouseOverTool = true;\n };\n\n private mouseLeaveTooltip = (popper: Instance) => {\n this.mouseOverTool = false;\n this.checkCloseTooltip(popper);\n };\n\n private handleKeyDown = (key: string) => {\n if (key === \"Escape\") {\n this.hide(this.popperInstance);\n }\n };\n\n private manageEventListeners = (action: \"add\" | \"remove\") => {\n const method =\n action === \"add\" ? \"addEventListener\" : \"removeEventListener\";\n\n this.showEvents.forEach((event) => {\n this.el[method](event, () => this.show(this.popperInstance));\n this.toolTip[method](event, () => this.mouseEnterTooltip());\n });\n\n this.instantHideEvents.forEach((event) => {\n this.el[method](event, () => this.hide(this.popperInstance));\n });\n\n this.delayedHideEvents.forEach((event) => {\n this.el[method](event, () => this.checkCloseTooltip(this.popperInstance));\n this.toolTip[method](event, () =>\n this.mouseLeaveTooltip(this.popperInstance)\n );\n });\n\n document[method](\"keydown\", (event: KeyboardEvent) =>\n this.handleKeyDown(event.key)\n );\n };\n\n private screenReaderOnlyStyles = {\n position: \"absolute\",\n left: \"-10000px\",\n top: \"auto\",\n width: \"1px\",\n height: \"1px\",\n overflow: \"hidden\",\n };\n\n componentDidLoad(): void {\n this.popperInstance = createPopper(this.el, this.toolTip, {\n placement: this.placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 10],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: this.arrow,\n },\n },\n ],\n });\n\n this.manageEventListeners(\"add\");\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tooltip\"\n );\n\n if (this.target !== undefined) {\n const ariaDescribedBy = document.createElement(\"span\");\n ariaDescribedBy.id = `ic-tooltip-${this.target}`;\n ariaDescribedBy.innerText = this.label;\n ariaDescribedBy.classList.add(\"ic-tooltip-label\");\n Object.assign(ariaDescribedBy.style, this.screenReaderOnlyStyles);\n\n this.el.insertAdjacentElement(\"beforebegin\", ariaDescribedBy);\n }\n }\n\n disconnectedCallback(): void {\n this.manageEventListeners(\"remove\");\n }\n\n render() {\n const { label } = this;\n return (\n <Host class={{ \"ic-tooltip\": true }}>\n <div\n ref={(el) => (this.toolTip = el as HTMLDivElement)}\n role=\"tooltip\"\n class=\"ic-tooltip-container\"\n >\n <ic-typography variant=\"caption\">{label}</ic-typography>\n <div\n ref={(el) => (this.arrow = el as HTMLDivElement)}\n class=\"ic-tooltip-arrow\"\n data-popper-arrow\n ></div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -631,6 +631,11 @@ slot[name="toggle-icon"] svg {
631
631
  justify-content: flex-end;
632
632
  }
633
633
 
634
+ :host ic-section-container{
635
+ padding-bottom: 0 !important;
636
+ padding-top: 0 !important;
637
+ }
638
+
634
639
  @media screen and (min-width: 993px) {
635
640
  .app-details-container {
636
641
  margin-right: var(--ic-space-lg);
@@ -651,86 +656,94 @@ slot[name="toggle-icon"] svg {
651
656
  :host .nav-panel-container {
652
657
  padding-left: var(--ic-space-md);
653
658
  }
659
+ }
660
+
661
+ /* medium */
662
+ @media screen and (max-width: 992px) {
663
+ :host .nav-panel-container,
664
+ :host .app-status,
665
+ :host .app-version {
666
+ display: none;
667
+ }
668
+
669
+ :host .title-link {
670
+ margin-right: var(--ic-space-xs);
671
+ }
672
+
673
+ .search-menu-container {
674
+ max-width: 160px;
675
+ }
676
+
677
+ .search-bar-container {
678
+ display: flex;
679
+ justify-content: center;
680
+ align-items: center;
681
+ border-top: var(--ic-keyline-darken);
682
+ height: 64px;
683
+ padding-left: var(--ic-space-md);
684
+ padding-right: var(--ic-space-md);
685
+ margin-left: calc(-1 * var(--section-container-margin));
686
+ margin-right: calc(-1 * var(--section-container-margin));
687
+ }
688
+
689
+ :host([content-aligned="left"]) .app-details-container,
690
+ :host([content-aligned="left"]) .search-menu-container,
691
+ :host([content-aligned="center"]) .search-menu-container,
692
+ :host([content-aligned="center"]) .app-details-container {
693
+ justify-content: flex-start;
694
+ }
695
+ }
696
+
697
+ /* x small */
698
+ @media screen and (max-width: 576px) {
699
+ :host .title-link {
700
+ margin-right: var(--ic-space-xxxs);
701
+ word-break: break-word;
702
+ -webkit-hyphens: none;
703
+ hyphens: none;
704
+ }
705
+
706
+ .top-panel-container {
707
+ min-height: 40px;
708
+ }
709
+
710
+ .searchbox-inline {
711
+ display: none;
712
+ }
713
+
714
+ .search-bar-container {
715
+ margin-top: 0;
716
+ height: 56px;
717
+ padding-left: var(--ic-space-xs);
718
+ padding-right: var(--ic-space-xs);
719
+ }
720
+
721
+ .menu-button-container {
722
+ margin-left: var(--ic-space-sm);
723
+ }
724
+
725
+ slot[name="app-icon"]::slotted(svg) {
726
+ width: 1.5em;
727
+ height: 1.5em;
728
+ }
729
+
730
+ slot[name="toggle-icon"] svg {
731
+ width: 1.5em;
732
+ height: 1.5em;
733
+ }
734
+ }
735
+
736
+ @media (forced-colors: active) {
737
+ :host .top-navigation {
738
+ border-bottom: var(--ic-hc-border);
739
+ }
654
740
 
655
- /* medium */
656
- @media screen and (max-width: 992px) {
657
- :host .nav-panel-container,
658
- :host .app-status,
659
- :host .app-version {
660
- display: none;
661
- }
662
-
663
- :host .title-link {
664
- margin-right: var(--ic-space-xs);
665
- }
666
-
667
- .search-menu-container {
668
- max-width: 160px;
669
- }
670
-
671
- .search-bar-container {
672
- display: flex;
673
- justify-content: center;
674
- align-items: center;
675
- border-top: var(--ic-keyline-darken);
676
- height: 64px;
677
- padding-left: var(--ic-space-md);
678
- padding-right: var(--ic-space-md);
679
- margin-left: calc(-1 * var(--section-container-margin));
680
- margin-right: calc(-1 * var(--section-container-margin));
681
- }
682
-
683
- :host([content-aligned="left"]) .app-details-container,
684
- :host([content-aligned="left"]) .search-menu-container,
685
- :host([content-aligned="center"]) .search-menu-container,
686
- :host([content-aligned="center"]) .app-details-container {
687
- justify-content: flex-start;
688
- }
741
+ .app-status,
742
+ .app-version {
743
+ border: var(--ic-hc-border);
689
744
  }
690
745
 
691
- /* x small */
692
- @media screen and (max-width: 576px) {
693
- :host .title-link {
694
- margin-right: var(--ic-space-xxxs);
695
- word-break: break-word;
696
- -webkit-hyphens: auto;
697
- hyphens: auto;
698
- }
699
-
700
- .top-panel-container {
701
- min-height: 40px;
702
- }
703
-
704
- .searchbox-inline {
705
- display: none;
706
- }
707
-
708
- .search-bar-container {
709
- margin-top: 0;
710
- height: 56px;
711
- padding-left: var(--ic-space-xs);
712
- padding-right: var(--ic-space-xs);
713
- }
714
-
715
- .menu-button-container {
716
- margin-left: var(--ic-space-sm);
717
- }
718
-
719
- slot[name="app-icon"]::slotted(svg) {
720
- width: 1.5em;
721
- height: 1.5em;
722
- }
723
-
724
- slot[name="toggle-icon"] svg {
725
- width: 1.5em;
726
- height: 1.5em;
727
- }
728
-
729
- :host([content-aligned="left"]) .app-details-container,
730
- :host([content-aligned="left"]) .search-menu-container,
731
- :host([content-aligned="center"]) .app-details-container,
732
- :host([content-aligned="center"]) .search-menu-container {
733
- justify-content: flex-start;
734
- }
746
+ slot[name="app-icon"]::slotted(svg) {
747
+ fill: currentcolor;
735
748
  }
736
749
  }
@@ -41,4 +41,13 @@ export const IC_FIXED_COLOR_COMPONENTS = ["ic-alert"];
41
41
  export const IC_BLOCK_COLOR_EXCEPTIONS = {
42
42
  "ic-alert": ["ic-link"],
43
43
  };
44
+ /* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours
45
+ * The brightness difference must be greater than 125 to provide good colour visibility
46
+ * Calculated by:
47
+ * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast
48
+ * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)
49
+ * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)
50
+ */
51
+ export const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;
52
+ export const WHITE_MAX_COLOR_BRIGHTNESS = 130;
44
53
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,CAAC,MAAM,iBAAiB,GAAG;EAC/B,aAAa;EACb,WAAW;EACX,eAAe;EACf,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,iBAAiB;EACjB,mBAAmB;EACnB,aAAa;EACb,cAAc;EACd,eAAe;EACf,aAAa;EACb,cAAc;EACd,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,WAAW;EACX,WAAW;EACX,eAAe;EACf,sBAAsB;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;EAC7B,EAAE,EAAE,GAAG;EACP,CAAC,EAAE,GAAG;EACN,CAAC,EAAE,GAAG;EACN,CAAC,EAAE,IAAI;EACP,EAAE,EAAE,KAAK;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;EACvC,SAAS;EACT,mBAAmB;EACnB,WAAW;EACX,oBAAoB;EACpB,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,CAAC;AAMtD,MAAM,CAAC,MAAM,yBAAyB,GAAsB;EAC1D,UAAU,EAAE,CAAC,SAAS,CAAC;CACxB,CAAC","sourcesContent":["// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\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-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"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,CAAC,MAAM,iBAAiB,GAAG;EAC/B,aAAa;EACb,WAAW;EACX,eAAe;EACf,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,iBAAiB;EACjB,mBAAmB;EACnB,aAAa;EACb,cAAc;EACd,eAAe;EACf,aAAa;EACb,cAAc;EACd,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,WAAW;EACX,WAAW;EACX,eAAe;EACf,sBAAsB;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;EAC7B,EAAE,EAAE,GAAG;EACP,CAAC,EAAE,GAAG;EACN,CAAC,EAAE,GAAG;EACN,CAAC,EAAE,IAAI;EACP,EAAE,EAAE,KAAK;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;EACvC,SAAS;EACT,mBAAmB;EACnB,WAAW;EACX,oBAAoB;EACpB,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,CAAC;AAMtD,MAAM,CAAC,MAAM,yBAAyB,GAAsB;EAC1D,UAAU,EAAE,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAClD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC","sourcesContent":["// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\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-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"]}