@ukic/web-components 2.1.0-beta.8 → 2.1.0-beta.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/{helpers-5f391578.js → helpers-6eb26e7a.js} +70 -2
  3. package/dist/cjs/helpers-6eb26e7a.js.map +1 -0
  4. package/dist/cjs/ic-alert.cjs.entry.js +3 -26
  5. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-back-to-top.cjs.entry.js +4 -3
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-breadcrumb.cjs.entry.js +4 -3
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-button_3.cjs.entry.js +19 -14
  12. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-card.cjs.entry.js +2 -2
  14. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -2
  16. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-chip.cjs.entry.js +3 -2
  18. package/dist/cjs/ic-chip.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-row.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-footer-link-group.cjs.entry.js +3 -2
  25. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -2
  27. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +158 -0
  31. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -0
  32. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +5 -6
  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 +5 -7
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-link.cjs.entry.js +3 -2
  37. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-navigation-button.cjs.entry.js +4 -3
  39. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js +4 -3
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -3
  43. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-menu.cjs.entry.js +8 -8
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-page-header.cjs.entry.js +4 -4
  47. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-radio-group.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-radio-option.cjs.entry.js +3 -2
  50. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-search-bar.cjs.entry.js +9 -5
  52. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-select.cjs.entry.js +33 -9
  56. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js +3 -3
  58. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-switch.cjs.entry.js +3 -2
  64. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-tab-group.cjs.entry.js +8 -117
  67. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-text-field.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-toast-region.cjs.entry.js +48 -0
  73. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -0
  74. package/dist/cjs/ic-toast.cjs.entry.js +165 -0
  75. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -0
  76. package/dist/cjs/ic-top-navigation.cjs.entry.js +8 -8
  77. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  79. package/dist/cjs/{index-3ef30d9d.js → index-f79a4e53.js} +17 -2
  80. package/dist/cjs/index-f79a4e53.js.map +1 -0
  81. package/dist/cjs/loader.cjs.js +2 -2
  82. package/dist/cjs/types-3eb02246.js.map +1 -1
  83. package/dist/collection/assets/error-icon.svg +2 -2
  84. package/dist/collection/assets/info-icon.svg +2 -2
  85. package/dist/collection/assets/neutral-icon.svg +2 -2
  86. package/dist/collection/assets/success-icon.svg +2 -2
  87. package/dist/collection/assets/warning-icon.svg +2 -2
  88. package/dist/collection/collection-manifest.json +3 -0
  89. package/dist/collection/components/ic-alert/ic-alert.js +5 -16
  90. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  91. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +5 -1
  92. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +1 -0
  93. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  94. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -1
  95. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  96. package/dist/collection/components/ic-button/ic-button.js +1 -0
  97. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  98. package/dist/collection/components/ic-checkbox/ic-checkbox.js +1 -0
  99. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  100. package/dist/collection/components/ic-chip/ic-chip.js +1 -0
  101. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  102. package/dist/collection/components/ic-classification-banner/ic-classification-banner.css +4 -0
  103. package/dist/collection/components/ic-footer-link/ic-footer-link.js +1 -0
  104. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  105. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +1 -0
  106. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  107. package/dist/collection/components/ic-horizontal-scroll/assets/left-arrow.svg +3 -0
  108. package/dist/collection/components/ic-horizontal-scroll/assets/right-arrow.svg +3 -0
  109. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +539 -0
  110. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +213 -0
  111. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -0
  112. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.js +34 -0
  113. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.js.map +1 -0
  114. package/dist/collection/components/ic-link/ic-link.js +1 -0
  115. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  116. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +15 -12
  117. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  118. package/dist/collection/components/ic-menu/ic-menu.css +5 -1
  119. package/dist/collection/components/ic-menu/ic-menu.js +1 -1
  120. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  121. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -1
  122. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  123. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +6 -1
  124. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -0
  125. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  126. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +11 -4
  127. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -0
  128. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  129. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +5 -1
  130. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +5 -5
  131. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  132. package/dist/collection/components/ic-page-header/ic-page-header.css +9 -0
  133. package/dist/collection/components/ic-page-header/ic-page-header.js +1 -1
  134. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  135. package/dist/collection/components/ic-radio-option/ic-radio-option.js +1 -0
  136. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  137. package/dist/collection/components/ic-search-bar/ic-search-bar.css +12 -4
  138. package/dist/collection/components/ic-search-bar/ic-search-bar.js +6 -2
  139. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  140. package/dist/collection/components/ic-section-container/ic-section-container.css +1 -0
  141. package/dist/collection/components/ic-select/ic-select.css +3 -2
  142. package/dist/collection/components/ic-select/ic-select.js +32 -8
  143. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  144. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +8 -2
  145. package/dist/collection/components/ic-switch/ic-switch.js +1 -0
  146. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  147. package/dist/collection/components/ic-tab-group/ic-tab-group.css +6 -120
  148. package/dist/collection/components/ic-tab-group/ic-tab-group.js +7 -151
  149. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  150. package/dist/collection/components/ic-toast/ic-toast.css +597 -0
  151. package/dist/collection/components/ic-toast/ic-toast.js +382 -0
  152. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -0
  153. package/dist/collection/components/ic-toast/ic-toast.test.a11y.js +16 -0
  154. package/dist/collection/components/ic-toast/ic-toast.test.a11y.js.map +1 -0
  155. package/dist/collection/components/ic-toast/ic-toast.types.js +2 -0
  156. package/dist/collection/components/ic-toast/ic-toast.types.js.map +1 -0
  157. package/dist/collection/components/ic-toast-region/ic-toast-region.js +81 -0
  158. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -0
  159. package/dist/collection/components/ic-tooltip/ic-tooltip.css +5 -7
  160. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +4 -33
  161. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +5 -5
  162. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  163. package/dist/collection/utils/constants.js +28 -0
  164. package/dist/collection/utils/constants.js.map +1 -1
  165. package/dist/collection/utils/helpers.js +7 -2
  166. package/dist/collection/utils/helpers.js.map +1 -1
  167. package/dist/collection/utils/types.js.map +1 -1
  168. package/dist/components/helpers.js +65 -2
  169. package/dist/components/helpers.js.map +1 -1
  170. package/dist/components/ic-alert.js +2 -25
  171. package/dist/components/ic-alert.js.map +1 -1
  172. package/dist/components/ic-back-to-top.js +3 -2
  173. package/dist/components/ic-back-to-top.js.map +1 -1
  174. package/dist/components/ic-breadcrumb2.js +3 -2
  175. package/dist/components/ic-breadcrumb2.js.map +1 -1
  176. package/dist/components/ic-button2.js +2 -1
  177. package/dist/components/ic-button2.js.map +1 -1
  178. package/dist/components/ic-checkbox.js +2 -1
  179. package/dist/components/ic-checkbox.js.map +1 -1
  180. package/dist/components/ic-chip.js +2 -1
  181. package/dist/components/ic-chip.js.map +1 -1
  182. package/dist/components/ic-classification-banner.js.map +1 -1
  183. package/dist/components/ic-footer-link-group.js +2 -1
  184. package/dist/components/ic-footer-link-group.js.map +1 -1
  185. package/dist/components/ic-footer-link.js +2 -1
  186. package/dist/components/ic-footer-link.js.map +1 -1
  187. package/dist/components/ic-horizontal-scroll.d.ts +11 -0
  188. package/dist/components/ic-horizontal-scroll.js +8 -0
  189. package/dist/components/ic-horizontal-scroll.js.map +1 -0
  190. package/dist/components/ic-horizontal-scroll2.js +199 -0
  191. package/dist/components/ic-horizontal-scroll2.js.map +1 -0
  192. package/dist/components/ic-input-component-container2.js +1 -2
  193. package/dist/components/ic-input-component-container2.js.map +1 -1
  194. package/dist/components/ic-input-label2.js +1 -1
  195. package/dist/components/ic-input-validation2.js +1 -3
  196. package/dist/components/ic-input-validation2.js.map +1 -1
  197. package/dist/components/ic-link2.js +2 -1
  198. package/dist/components/ic-link2.js.map +1 -1
  199. package/dist/components/ic-loading-indicator2.js +15 -12
  200. package/dist/components/ic-loading-indicator2.js.map +1 -1
  201. package/dist/components/ic-menu2.js +2 -2
  202. package/dist/components/ic-menu2.js.map +1 -1
  203. package/dist/components/ic-navigation-button.js +3 -2
  204. package/dist/components/ic-navigation-button.js.map +1 -1
  205. package/dist/components/ic-navigation-group.js +3 -2
  206. package/dist/components/ic-navigation-group.js.map +1 -1
  207. package/dist/components/ic-navigation-item.js +3 -2
  208. package/dist/components/ic-navigation-item.js.map +1 -1
  209. package/dist/components/ic-navigation-menu2.js +7 -7
  210. package/dist/components/ic-navigation-menu2.js.map +1 -1
  211. package/dist/components/ic-page-header.js +28 -4
  212. package/dist/components/ic-page-header.js.map +1 -1
  213. package/dist/components/ic-radio-option.js +2 -1
  214. package/dist/components/ic-radio-option.js.map +1 -1
  215. package/dist/components/ic-search-bar.js +8 -4
  216. package/dist/components/ic-search-bar.js.map +1 -1
  217. package/dist/components/ic-section-container2.js +1 -1
  218. package/dist/components/ic-section-container2.js.map +1 -1
  219. package/dist/components/ic-select.js +32 -8
  220. package/dist/components/ic-select.js.map +1 -1
  221. package/dist/components/ic-side-navigation.js +1 -1
  222. package/dist/components/ic-side-navigation.js.map +1 -1
  223. package/dist/components/ic-switch.js +2 -1
  224. package/dist/components/ic-switch.js.map +1 -1
  225. package/dist/components/ic-tab-group.js +29 -124
  226. package/dist/components/ic-tab-group.js.map +1 -1
  227. package/dist/components/ic-text-field2.js +1 -1
  228. package/dist/components/ic-theme.js +1 -1
  229. package/dist/components/ic-toast-region.d.ts +11 -0
  230. package/dist/components/ic-toast-region.js +63 -0
  231. package/dist/components/ic-toast-region.js.map +1 -0
  232. package/dist/components/ic-toast.d.ts +11 -0
  233. package/dist/components/ic-toast.js +214 -0
  234. package/dist/components/ic-toast.js.map +1 -0
  235. package/dist/components/ic-tooltip2.js +1 -1
  236. package/dist/components/ic-tooltip2.js.map +1 -1
  237. package/dist/components/ic-top-navigation.js +15 -9
  238. package/dist/components/ic-top-navigation.js.map +1 -1
  239. package/dist/components/index.d.ts +3 -0
  240. package/dist/components/index.js +3 -0
  241. package/dist/components/index.js.map +1 -1
  242. package/dist/components/types.js.map +1 -1
  243. package/dist/core/core.css +1 -1
  244. package/dist/core/core.esm.js +1 -1
  245. package/dist/core/core.esm.js.map +1 -1
  246. package/dist/core/p-1724000c.js +2 -0
  247. package/dist/core/p-1724000c.js.map +1 -0
  248. package/dist/core/p-17f91c94.entry.js +2 -0
  249. package/dist/core/p-17f91c94.entry.js.map +1 -0
  250. package/dist/core/p-18ae4b6d.entry.js +2 -0
  251. package/dist/core/p-18ae4b6d.entry.js.map +1 -0
  252. package/dist/core/{p-2a40f189.entry.js → p-18bf3cb0.entry.js} +2 -2
  253. package/dist/core/p-2642f880.entry.js +2 -0
  254. package/dist/core/p-2642f880.entry.js.map +1 -0
  255. package/dist/core/{p-0f773f37.entry.js → p-284970bc.entry.js} +2 -2
  256. package/dist/core/{p-add01f10.entry.js → p-31a595c1.entry.js} +2 -2
  257. package/dist/core/{p-c2710b13.entry.js → p-35a03442.entry.js} +2 -2
  258. package/dist/core/{p-e94dfa43.entry.js → p-360adc51.entry.js} +2 -2
  259. package/dist/core/{p-02a6562c.entry.js → p-3dda76db.entry.js} +2 -2
  260. package/dist/core/p-41e239cb.entry.js +2 -0
  261. package/dist/core/p-41e239cb.entry.js.map +1 -0
  262. package/dist/core/{p-10a672d4.entry.js → p-44c9612c.entry.js} +2 -2
  263. package/dist/core/p-521be4e2.entry.js +2 -0
  264. package/dist/core/p-521be4e2.entry.js.map +1 -0
  265. package/dist/core/{p-f9370be6.js → p-5450cebf.js} +3 -3
  266. package/dist/core/p-5450cebf.js.map +1 -0
  267. package/dist/core/{p-86098b7e.entry.js → p-55512a85.entry.js} +2 -2
  268. package/dist/core/{p-86098b7e.entry.js.map → p-55512a85.entry.js.map} +1 -1
  269. package/dist/core/p-560c06af.entry.js +2 -0
  270. package/dist/core/p-560c06af.entry.js.map +1 -0
  271. package/dist/core/{p-d77f57d9.entry.js → p-57f2c81c.entry.js} +2 -2
  272. package/dist/core/{p-d77f57d9.entry.js.map → p-57f2c81c.entry.js.map} +1 -1
  273. package/dist/core/{p-454a7f3d.entry.js → p-5b083ce5.entry.js} +2 -2
  274. package/dist/core/p-62b3516e.entry.js +2 -0
  275. package/dist/core/p-62b3516e.entry.js.map +1 -0
  276. package/dist/core/{p-2ed06031.entry.js → p-691ea0f2.entry.js} +2 -2
  277. package/dist/core/p-6f57b13c.js.map +1 -1
  278. package/dist/core/p-7818d958.entry.js +2 -0
  279. package/dist/core/p-7818d958.entry.js.map +1 -0
  280. package/dist/core/p-7a0bf893.entry.js +2 -0
  281. package/dist/core/p-7a0bf893.entry.js.map +1 -0
  282. package/dist/core/{p-97d4b6cd.entry.js → p-7a9bc7f2.entry.js} +2 -2
  283. package/dist/core/{p-97d4b6cd.entry.js.map → p-7a9bc7f2.entry.js.map} +1 -1
  284. package/dist/core/{p-0672c783.entry.js → p-7fd50355.entry.js} +2 -2
  285. package/dist/core/{p-9e684c58.entry.js → p-897e967a.entry.js} +2 -2
  286. package/dist/core/p-8f1176c6.entry.js +2 -0
  287. package/dist/core/p-8f1176c6.entry.js.map +1 -0
  288. package/dist/core/{p-ccd078a6.entry.js → p-8ffa00c9.entry.js} +2 -2
  289. package/dist/core/p-8ffa00c9.entry.js.map +1 -0
  290. package/dist/core/p-91a8db51.entry.js +2 -0
  291. package/dist/core/p-91a8db51.entry.js.map +1 -0
  292. package/dist/core/{p-b29f210b.entry.js → p-a09d853e.entry.js} +2 -2
  293. package/dist/core/p-a09d853e.entry.js.map +1 -0
  294. package/dist/core/{p-c6764827.entry.js → p-a667e329.entry.js} +2 -2
  295. package/dist/core/{p-c6764827.entry.js.map → p-a667e329.entry.js.map} +1 -1
  296. package/dist/core/{p-6be5e06b.entry.js → p-ad2477d8.entry.js} +2 -2
  297. package/dist/core/p-ad2477d8.entry.js.map +1 -0
  298. package/dist/core/p-b35ae170.entry.js +2 -0
  299. package/dist/core/{p-30ff49be.entry.js.map → p-b35ae170.entry.js.map} +1 -1
  300. package/dist/core/{p-4a8c0c58.entry.js → p-b40bd77c.entry.js} +2 -2
  301. package/dist/core/{p-03a4d9dc.entry.js → p-b4234318.entry.js} +2 -2
  302. package/dist/core/{p-dd194ba9.entry.js → p-ba8d6c23.entry.js} +2 -2
  303. package/dist/core/p-ba8d6c23.entry.js.map +1 -0
  304. package/dist/core/p-bd819f68.entry.js +2 -0
  305. package/dist/core/p-bd819f68.entry.js.map +1 -0
  306. package/dist/core/{p-eaf714a3.entry.js → p-c4a7c734.entry.js} +2 -2
  307. package/dist/core/{p-8b383c23.entry.js → p-c72e4b75.entry.js} +2 -2
  308. package/dist/core/p-c7b86643.entry.js +2 -0
  309. package/dist/core/p-c7b86643.entry.js.map +1 -0
  310. package/dist/core/p-c8f07be6.entry.js +2 -0
  311. package/dist/core/p-c8f07be6.entry.js.map +1 -0
  312. package/dist/core/{p-6d0eaaeb.entry.js → p-c9068822.entry.js} +2 -2
  313. package/dist/core/{p-d4f7a3e4.entry.js → p-cccbf2bf.entry.js} +2 -2
  314. package/dist/core/{p-a2d3e955.entry.js → p-d2508752.entry.js} +2 -2
  315. package/dist/core/p-d7bbace4.entry.js +2 -0
  316. package/dist/core/p-d7bbace4.entry.js.map +1 -0
  317. package/dist/core/{p-04cf6fab.entry.js → p-d86b0d0e.entry.js} +2 -2
  318. package/dist/core/{p-04cf6fab.entry.js.map → p-d86b0d0e.entry.js.map} +1 -1
  319. package/dist/core/{p-3f0ac826.entry.js → p-e0d88c31.entry.js} +2 -2
  320. package/dist/core/{p-3f0ac826.entry.js.map → p-e0d88c31.entry.js.map} +1 -1
  321. package/dist/core/p-e9202767.entry.js +2 -0
  322. package/dist/core/p-e9202767.entry.js.map +1 -0
  323. package/dist/core/{p-a472db51.entry.js → p-eba373bf.entry.js} +2 -2
  324. package/dist/core/{p-a472db51.entry.js.map → p-eba373bf.entry.js.map} +1 -1
  325. package/dist/core/{p-5368bcff.entry.js → p-ed6cf9b9.entry.js} +2 -2
  326. package/dist/esm/core.js +2 -2
  327. package/dist/esm/{helpers-3aa2f5a5.js → helpers-c332acf8.js} +66 -3
  328. package/dist/esm/helpers-c332acf8.js.map +1 -0
  329. package/dist/esm/ic-alert.entry.js +3 -26
  330. package/dist/esm/ic-alert.entry.js.map +1 -1
  331. package/dist/esm/ic-back-to-top.entry.js +4 -3
  332. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  333. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  334. package/dist/esm/ic-breadcrumb.entry.js +4 -3
  335. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  336. package/dist/esm/ic-button_3.entry.js +19 -14
  337. package/dist/esm/ic-button_3.entry.js.map +1 -1
  338. package/dist/esm/ic-card.entry.js +2 -2
  339. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  340. package/dist/esm/ic-checkbox.entry.js +3 -2
  341. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  342. package/dist/esm/ic-chip.entry.js +3 -2
  343. package/dist/esm/ic-chip.entry.js.map +1 -1
  344. package/dist/esm/ic-classification-banner.entry.js +1 -1
  345. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  346. package/dist/esm/ic-data-entity.entry.js +1 -1
  347. package/dist/esm/ic-data-row.entry.js +2 -2
  348. package/dist/esm/ic-divider.entry.js +2 -2
  349. package/dist/esm/ic-footer-link-group.entry.js +3 -2
  350. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  351. package/dist/esm/ic-footer-link.entry.js +3 -2
  352. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  353. package/dist/esm/ic-footer.entry.js +2 -2
  354. package/dist/esm/ic-hero.entry.js +2 -2
  355. package/dist/esm/ic-horizontal-scroll.entry.js +154 -0
  356. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -0
  357. package/dist/esm/ic-input-component-container_3.entry.js +4 -5
  358. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  359. package/dist/esm/ic-input-label_2.entry.js +2 -4
  360. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  361. package/dist/esm/ic-link.entry.js +3 -2
  362. package/dist/esm/ic-link.entry.js.map +1 -1
  363. package/dist/esm/ic-navigation-button.entry.js +4 -3
  364. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  365. package/dist/esm/ic-navigation-group.entry.js +4 -3
  366. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  367. package/dist/esm/ic-navigation-item.entry.js +4 -3
  368. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  369. package/dist/esm/ic-navigation-menu.entry.js +8 -8
  370. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  371. package/dist/esm/ic-page-header.entry.js +4 -4
  372. package/dist/esm/ic-page-header.entry.js.map +1 -1
  373. package/dist/esm/ic-radio-group.entry.js +2 -2
  374. package/dist/esm/ic-radio-option.entry.js +3 -2
  375. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  376. package/dist/esm/ic-search-bar.entry.js +9 -5
  377. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  378. package/dist/esm/ic-section-container.entry.js +2 -2
  379. package/dist/esm/ic-section-container.entry.js.map +1 -1
  380. package/dist/esm/ic-select.entry.js +33 -9
  381. package/dist/esm/ic-select.entry.js.map +1 -1
  382. package/dist/esm/ic-side-navigation.entry.js +3 -3
  383. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  384. package/dist/esm/ic-skeleton.entry.js +1 -1
  385. package/dist/esm/ic-status-tag.entry.js +2 -2
  386. package/dist/esm/ic-step.entry.js +1 -1
  387. package/dist/esm/ic-stepper.entry.js +2 -2
  388. package/dist/esm/ic-switch.entry.js +3 -2
  389. package/dist/esm/ic-switch.entry.js.map +1 -1
  390. package/dist/esm/ic-tab-context.entry.js +1 -1
  391. package/dist/esm/ic-tab-group.entry.js +8 -117
  392. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  393. package/dist/esm/ic-tab-panel.entry.js +1 -1
  394. package/dist/esm/ic-tab.entry.js +1 -1
  395. package/dist/esm/ic-text-field.entry.js +2 -2
  396. package/dist/esm/ic-theme.entry.js +2 -2
  397. package/dist/esm/ic-toast-region.entry.js +44 -0
  398. package/dist/esm/ic-toast-region.entry.js.map +1 -0
  399. package/dist/esm/ic-toast.entry.js +161 -0
  400. package/dist/esm/ic-toast.entry.js.map +1 -0
  401. package/dist/esm/ic-top-navigation.entry.js +8 -8
  402. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  403. package/dist/esm/ic-typography.entry.js +1 -1
  404. package/dist/esm/{index-1500de1f.js → index-90721b3c.js} +17 -2
  405. package/dist/esm/index-90721b3c.js.map +1 -0
  406. package/dist/esm/loader.js +2 -2
  407. package/dist/esm/types-dd515332.js.map +1 -1
  408. package/dist/types/components/ic-alert/ic-alert.d.ts +2 -2
  409. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +39 -0
  410. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.d.ts +1 -0
  411. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +0 -1
  412. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +1 -0
  413. package/dist/types/components/ic-select/ic-select.d.ts +6 -0
  414. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +2 -30
  415. package/dist/types/components/ic-toast/ic-toast.d.ts +66 -0
  416. package/dist/types/components/ic-toast/ic-toast.test.a11y.d.ts +1 -0
  417. package/dist/types/components/ic-toast/ic-toast.types.d.ts +1 -0
  418. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +12 -0
  419. package/dist/types/components.d.ts +126 -6
  420. package/dist/types/interface.d.ts +0 -1
  421. package/dist/types/utils/constants.d.ts +22 -0
  422. package/dist/types/utils/helpers.d.ts +1 -0
  423. package/dist/types/utils/types.d.ts +2 -0
  424. package/hydrate/index.js +564 -223
  425. package/package.json +5 -5
  426. package/dist/cjs/error-icon-9af90abc.js +0 -20
  427. package/dist/cjs/error-icon-9af90abc.js.map +0 -1
  428. package/dist/cjs/helpers-5f391578.js.map +0 -1
  429. package/dist/cjs/index-3ef30d9d.js.map +0 -1
  430. package/dist/cjs/success-icon-c8fec63d.js +0 -12
  431. package/dist/cjs/success-icon-c8fec63d.js.map +0 -1
  432. package/dist/collection/components/ic-alert/ic-alert.types.js +0 -2
  433. package/dist/collection/components/ic-alert/ic-alert.types.js.map +0 -1
  434. package/dist/collection/components/ic-tab-group/assets/left-arrow.svg +0 -3
  435. package/dist/collection/components/ic-tab-group/assets/right-arrow.svg +0 -3
  436. package/dist/components/error-icon.js +0 -17
  437. package/dist/components/error-icon.js.map +0 -1
  438. package/dist/components/success-icon.js +0 -10
  439. package/dist/components/success-icon.js.map +0 -1
  440. package/dist/core/p-01ebd24d.entry.js +0 -2
  441. package/dist/core/p-01ebd24d.entry.js.map +0 -1
  442. package/dist/core/p-0fc9d5c8.entry.js +0 -2
  443. package/dist/core/p-0fc9d5c8.entry.js.map +0 -1
  444. package/dist/core/p-26fd7d7c.entry.js +0 -2
  445. package/dist/core/p-26fd7d7c.entry.js.map +0 -1
  446. package/dist/core/p-2961c45f.entry.js +0 -2
  447. package/dist/core/p-2961c45f.entry.js.map +0 -1
  448. package/dist/core/p-2e318c95.entry.js +0 -2
  449. package/dist/core/p-2e318c95.entry.js.map +0 -1
  450. package/dist/core/p-30ff49be.entry.js +0 -2
  451. package/dist/core/p-3c75ed36.js +0 -2
  452. package/dist/core/p-3c75ed36.js.map +0 -1
  453. package/dist/core/p-3f0232f6.entry.js +0 -2
  454. package/dist/core/p-3f0232f6.entry.js.map +0 -1
  455. package/dist/core/p-48f99591.entry.js +0 -2
  456. package/dist/core/p-48f99591.entry.js.map +0 -1
  457. package/dist/core/p-662d5b43.entry.js +0 -2
  458. package/dist/core/p-662d5b43.entry.js.map +0 -1
  459. package/dist/core/p-69512d85.entry.js +0 -2
  460. package/dist/core/p-69512d85.entry.js.map +0 -1
  461. package/dist/core/p-6bbc0cf5.entry.js +0 -2
  462. package/dist/core/p-6bbc0cf5.entry.js.map +0 -1
  463. package/dist/core/p-6be5e06b.entry.js.map +0 -1
  464. package/dist/core/p-a6a77e5c.js +0 -2
  465. package/dist/core/p-a6a77e5c.js.map +0 -1
  466. package/dist/core/p-b29f210b.entry.js.map +0 -1
  467. package/dist/core/p-ccd078a6.entry.js.map +0 -1
  468. package/dist/core/p-d5e0c02a.js +0 -2
  469. package/dist/core/p-d5e0c02a.js.map +0 -1
  470. package/dist/core/p-dd194ba9.entry.js.map +0 -1
  471. package/dist/core/p-de19fed4.entry.js +0 -2
  472. package/dist/core/p-de19fed4.entry.js.map +0 -1
  473. package/dist/core/p-e5e885b1.entry.js +0 -2
  474. package/dist/core/p-e5e885b1.entry.js.map +0 -1
  475. package/dist/core/p-f51f4d34.entry.js +0 -2
  476. package/dist/core/p-f51f4d34.entry.js.map +0 -1
  477. package/dist/core/p-f9370be6.js.map +0 -1
  478. package/dist/esm/error-icon-1dc70ca0.js +0 -17
  479. package/dist/esm/error-icon-1dc70ca0.js.map +0 -1
  480. package/dist/esm/helpers-3aa2f5a5.js.map +0 -1
  481. package/dist/esm/index-1500de1f.js.map +0 -1
  482. package/dist/esm/success-icon-75b04341.js +0 -10
  483. package/dist/esm/success-icon-75b04341.js.map +0 -1
  484. package/dist/types/components/ic-alert/ic-alert.types.d.ts +0 -1
  485. /package/dist/core/{p-2a40f189.entry.js.map → p-18bf3cb0.entry.js.map} +0 -0
  486. /package/dist/core/{p-0f773f37.entry.js.map → p-284970bc.entry.js.map} +0 -0
  487. /package/dist/core/{p-add01f10.entry.js.map → p-31a595c1.entry.js.map} +0 -0
  488. /package/dist/core/{p-c2710b13.entry.js.map → p-35a03442.entry.js.map} +0 -0
  489. /package/dist/core/{p-e94dfa43.entry.js.map → p-360adc51.entry.js.map} +0 -0
  490. /package/dist/core/{p-02a6562c.entry.js.map → p-3dda76db.entry.js.map} +0 -0
  491. /package/dist/core/{p-10a672d4.entry.js.map → p-44c9612c.entry.js.map} +0 -0
  492. /package/dist/core/{p-454a7f3d.entry.js.map → p-5b083ce5.entry.js.map} +0 -0
  493. /package/dist/core/{p-2ed06031.entry.js.map → p-691ea0f2.entry.js.map} +0 -0
  494. /package/dist/core/{p-0672c783.entry.js.map → p-7fd50355.entry.js.map} +0 -0
  495. /package/dist/core/{p-9e684c58.entry.js.map → p-897e967a.entry.js.map} +0 -0
  496. /package/dist/core/{p-4a8c0c58.entry.js.map → p-b40bd77c.entry.js.map} +0 -0
  497. /package/dist/core/{p-03a4d9dc.entry.js.map → p-b4234318.entry.js.map} +0 -0
  498. /package/dist/core/{p-eaf714a3.entry.js.map → p-c4a7c734.entry.js.map} +0 -0
  499. /package/dist/core/{p-8b383c23.entry.js.map → p-c72e4b75.entry.js.map} +0 -0
  500. /package/dist/core/{p-6d0eaaeb.entry.js.map → p-c9068822.entry.js.map} +0 -0
  501. /package/dist/core/{p-d4f7a3e4.entry.js.map → p-cccbf2bf.entry.js.map} +0 -0
  502. /package/dist/core/{p-a2d3e955.entry.js.map → p-d2508752.entry.js.map} +0 -0
  503. /package/dist/core/{p-5368bcff.entry.js.map → p-ed6cf9b9.entry.js.map} +0 -0
@@ -0,0 +1,213 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ import LeftArrow from "./assets/left-arrow.svg";
3
+ import RightArrow from "./assets/right-arrow.svg";
4
+ import { getSlotElements } from "../../utils/helpers";
5
+ import { checkResizeObserver, elementOverflowsX } from "../../utils/helpers";
6
+ import { IcThemeForegroundEnum } from "../../utils/types";
7
+ const SCROLL_DELAY_MS = 200;
8
+ export class HorizontalScroll {
9
+ constructor() {
10
+ this.buttonStateSet = false;
11
+ this.resizeObserverCallback = () => {
12
+ if (this.el.clientWidth >= this.itemsContainerEl.scrollWidth) {
13
+ this.itemOverflow = false;
14
+ }
15
+ else {
16
+ this.itemOverflow = elementOverflowsX(this.itemsContainerEl);
17
+ }
18
+ if (this.itemOverflow) {
19
+ this.lastItemVisible =
20
+ this.itemsContainerEl.offsetWidth + this.itemsContainerEl.scrollLeft >=
21
+ this.itemsContainerEl.scrollWidth;
22
+ }
23
+ };
24
+ this.runResizeObserver = () => {
25
+ this.resizeObserver = new ResizeObserver(() => {
26
+ this.resizeObserverCallback();
27
+ });
28
+ this.resizeObserver.observe(this.itemsContainerEl);
29
+ };
30
+ this.scrollLeft = () => {
31
+ this.scrollItemIntoView(this.getCurrentLeftItem() - 1);
32
+ };
33
+ this.scrollRight = () => {
34
+ this.scrollItemIntoView(this.getCurrentLeftItem() + 1);
35
+ };
36
+ this.longScrollRight = () => {
37
+ this.scrollRight();
38
+ this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);
39
+ };
40
+ this.longScrollLeft = () => {
41
+ this.scrollLeft();
42
+ this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);
43
+ };
44
+ this.leftArrowMouseDownHandler = (e) => {
45
+ e.preventDefault();
46
+ this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);
47
+ };
48
+ this.rightArrowMouseDownHandler = (e) => {
49
+ e.preventDefault();
50
+ this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);
51
+ };
52
+ this.arrowMouseUpHandler = () => {
53
+ window.clearTimeout(this.scrollDelay);
54
+ };
55
+ this.getCurrentLeftItem = () => {
56
+ const index = this.itemOffsets.findIndex((el) => el > Math.round(this.itemsContainerEl.scrollLeft));
57
+ return index < 0 ? 0 : index;
58
+ };
59
+ this.scrollHandler = () => {
60
+ window.clearTimeout(this.isScrolling);
61
+ // Set a timeout to run after scrolling ends
62
+ this.isScrolling = window.setTimeout(this.scrollStopped, 50);
63
+ };
64
+ this.scrollStopped = () => {
65
+ // If scrollItemIntoView has been called, the button states will already be set
66
+ // Can't just handle it here as it causes strange jumping behaviour in positioning
67
+ const scrollLeft = Math.round(this.itemsContainerEl.scrollLeft);
68
+ if (this.buttonStateSet === false) {
69
+ this.firstItemVisible = scrollLeft === 0;
70
+ this.lastItemVisible =
71
+ this.itemsContainerEl.offsetWidth + scrollLeft >=
72
+ this.itemsContainerEl.scrollWidth;
73
+ }
74
+ this.buttonStateSet = false;
75
+ };
76
+ this.appearance = "default";
77
+ this.firstItemVisible = true;
78
+ this.lastItemVisible = false;
79
+ this.itemOverflow = false;
80
+ }
81
+ /**
82
+ * @internal if side scrolling enabled, scrolls the specified item into view.
83
+ */
84
+ async scrollItemIntoView(itemPosition) {
85
+ this.firstItemVisible = itemPosition <= 0;
86
+ const newScrollPos = itemPosition <= 0 ? 0 : this.itemOffsets[itemPosition - 1];
87
+ this.lastItemVisible =
88
+ this.itemsContainerEl.offsetWidth + newScrollPos >=
89
+ this.itemsContainerEl.scrollWidth;
90
+ this.buttonStateSet = true;
91
+ this.itemsContainerEl.scrollLeft = newScrollPos;
92
+ }
93
+ itemFocusHandler(itemPosition) {
94
+ if (this.itemOverflow) {
95
+ this.scrollItemIntoView(itemPosition);
96
+ }
97
+ }
98
+ componentWillLoad() {
99
+ this.itemsContainerEl = this.el.children[0];
100
+ this.itemsContainerEl.addEventListener("scroll", this.scrollHandler);
101
+ this.items = (getSlotElements(this.itemsContainerEl) ||
102
+ Array.from(this.itemsContainerEl.children));
103
+ this.items.forEach((item) => item.addEventListener("focus", () => this.itemFocusHandler(Array.from(this.items).indexOf(item))));
104
+ }
105
+ componentDidLoad() {
106
+ let runningTotal = 0;
107
+ this.itemOffsets = this.items.map((item) => {
108
+ runningTotal += item.offsetWidth;
109
+ return runningTotal;
110
+ });
111
+ checkResizeObserver(this.runResizeObserver);
112
+ // Add event listener to scroll containers as mouse events are not fired on disabled elements (ic-button's <button>)
113
+ // 'mouseleave' needed in case the user moves their mouse while holding the arrow buttons
114
+ // - 'mouseup' otherwise not detected and scrolling not stopped
115
+ const scrollArrows = Array.from(this.el.shadowRoot.querySelectorAll("div"));
116
+ ["mouseup", "mouseleave"].forEach((event) => {
117
+ scrollArrows.forEach((arrow) => arrow.addEventListener(event, this.arrowMouseUpHandler));
118
+ });
119
+ }
120
+ disconnectedCallback() {
121
+ this.resizeObserver.disconnect();
122
+ }
123
+ render() {
124
+ const { appearance, firstItemVisible, lastItemVisible, itemOverflow } = this;
125
+ return (h(Host, { class: {
126
+ ["visible"]: itemOverflow,
127
+ ["dark"]: this.appearance === IcThemeForegroundEnum.Dark,
128
+ ["light"]: this.appearance === IcThemeForegroundEnum.Light,
129
+ } }, h("div", { "aria-hidden": "true", class: {
130
+ ["scroll-container-left"]: true,
131
+ ["hidden"]: !itemOverflow,
132
+ ["disabled"]: firstItemVisible,
133
+ } }, h("ic-button", { class: "scroll-arrow", variant: "icon", "aria-label": "Scroll left", appearance: appearance, innerHTML: LeftArrow, disabled: firstItemVisible, tabindex: "-1", onClick: this.scrollLeft, onMouseDown: this.leftArrowMouseDownHandler }), h("span", { class: "scroll-splitter-left" })), h("slot", null), h("div", { "aria-hidden": "true", class: {
134
+ ["scroll-container-right"]: true,
135
+ ["hidden"]: !itemOverflow,
136
+ ["disabled"]: lastItemVisible,
137
+ } }, h("span", { class: "scroll-splitter-right" }), h("ic-button", { class: "scroll-arrow", variant: "icon", "aria-label": "Scroll right", appearance: appearance, innerHTML: RightArrow, disabled: lastItemVisible, tabindex: "-1", onClick: this.scrollRight, onMouseDown: this.rightArrowMouseDownHandler }))));
138
+ }
139
+ static get is() { return "ic-horizontal-scroll"; }
140
+ static get encapsulation() { return "shadow"; }
141
+ static get originalStyleUrls() {
142
+ return {
143
+ "$": ["./ic-horizontal-scroll.css"]
144
+ };
145
+ }
146
+ static get styleUrls() {
147
+ return {
148
+ "$": ["ic-horizontal-scroll.css"]
149
+ };
150
+ }
151
+ static get properties() {
152
+ return {
153
+ "appearance": {
154
+ "type": "string",
155
+ "mutable": false,
156
+ "complexType": {
157
+ "original": "IcThemeForeground",
158
+ "resolved": "\"dark\" | \"default\" | \"light\"",
159
+ "references": {
160
+ "IcThemeForeground": {
161
+ "location": "import",
162
+ "path": "../../utils/types"
163
+ }
164
+ }
165
+ },
166
+ "required": false,
167
+ "optional": true,
168
+ "docs": {
169
+ "tags": [],
170
+ "text": "The appearance of the horizontal scroll, e.g. dark, light or the default."
171
+ },
172
+ "attribute": "appearance",
173
+ "reflect": false,
174
+ "defaultValue": "\"default\""
175
+ }
176
+ };
177
+ }
178
+ static get states() {
179
+ return {
180
+ "firstItemVisible": {},
181
+ "lastItemVisible": {},
182
+ "itemOverflow": {}
183
+ };
184
+ }
185
+ static get methods() {
186
+ return {
187
+ "scrollItemIntoView": {
188
+ "complexType": {
189
+ "signature": "(itemPosition: number) => Promise<void>",
190
+ "parameters": [{
191
+ "tags": [],
192
+ "text": ""
193
+ }],
194
+ "references": {
195
+ "Promise": {
196
+ "location": "global"
197
+ }
198
+ },
199
+ "return": "Promise<void>"
200
+ },
201
+ "docs": {
202
+ "text": "",
203
+ "tags": [{
204
+ "name": "internal",
205
+ "text": "if side scrolling enabled, scrolls the specified item into view."
206
+ }]
207
+ }
208
+ }
209
+ };
210
+ }
211
+ static get elementRef() { return "el"; }
212
+ }
213
+ //# sourceMappingURL=ic-horizontal-scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-horizontal-scroll.js","sourceRoot":"","sources":["../../../src/components/ic-horizontal-scroll/ic-horizontal-scroll.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n h,\n Host,\n State,\n Method,\n Prop,\n} from \"@stencil/core\";\n\nimport LeftArrow from \"./assets/left-arrow.svg\";\nimport RightArrow from \"./assets/right-arrow.svg\";\nimport { getSlotElements } from \"../../utils/helpers\";\n\nimport { checkResizeObserver, elementOverflowsX } from \"../../utils/helpers\";\nimport { IcThemeForeground, IcThemeForegroundEnum } from \"../../utils/types\";\n\nconst SCROLL_DELAY_MS = 200;\n\n@Component({\n tag: \"ic-horizontal-scroll\",\n styleUrl: \"./ic-horizontal-scroll.css\",\n shadow: true,\n})\nexport class HorizontalScroll {\n @Element() el: HTMLIcHorizontalScrollElement;\n\n /**\n * The appearance of the horizontal scroll, e.g. dark, light or the default.\n */\n @Prop() appearance?: IcThemeForeground = \"default\";\n\n @State() firstItemVisible: boolean = true;\n @State() lastItemVisible: boolean = false;\n @State() itemOverflow: boolean = false;\n\n private itemOffsets: number[];\n private itemsContainerEl: HTMLElement;\n private items: HTMLElement[];\n private resizeObserver: ResizeObserver;\n private isScrolling: number;\n private scrollDelay: number;\n private buttonStateSet: boolean = false;\n\n /**\n * @internal if side scrolling enabled, scrolls the specified item into view.\n */\n @Method()\n async scrollItemIntoView(itemPosition: number): Promise<void> {\n this.firstItemVisible = itemPosition <= 0;\n const newScrollPos =\n itemPosition <= 0 ? 0 : this.itemOffsets[itemPosition - 1];\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + newScrollPos >=\n this.itemsContainerEl.scrollWidth;\n this.buttonStateSet = true;\n this.itemsContainerEl.scrollLeft = newScrollPos;\n }\n\n itemFocusHandler(itemPosition: number): void {\n if (this.itemOverflow) {\n this.scrollItemIntoView(itemPosition);\n }\n }\n\n private resizeObserverCallback = () => {\n if (this.el.clientWidth >= this.itemsContainerEl.scrollWidth) {\n this.itemOverflow = false;\n } else {\n this.itemOverflow = elementOverflowsX(this.itemsContainerEl);\n }\n\n if (this.itemOverflow) {\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + this.itemsContainerEl.scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.itemsContainerEl);\n };\n\n private scrollLeft = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() - 1);\n };\n\n private scrollRight = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() + 1);\n };\n\n private longScrollRight = () => {\n this.scrollRight();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private longScrollLeft = () => {\n this.scrollLeft();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private leftArrowMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private rightArrowMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private arrowMouseUpHandler = () => {\n window.clearTimeout(this.scrollDelay);\n };\n\n private getCurrentLeftItem = (): number => {\n const index = this.itemOffsets.findIndex(\n (el) => el > Math.round(this.itemsContainerEl.scrollLeft)\n );\n return index < 0 ? 0 : index;\n };\n\n private scrollHandler = () => {\n window.clearTimeout(this.isScrolling);\n // Set a timeout to run after scrolling ends\n this.isScrolling = window.setTimeout(this.scrollStopped, 50);\n };\n\n private scrollStopped = () => {\n // If scrollItemIntoView has been called, the button states will already be set\n // Can't just handle it here as it causes strange jumping behaviour in positioning\n const scrollLeft = Math.round(this.itemsContainerEl.scrollLeft);\n if (this.buttonStateSet === false) {\n this.firstItemVisible = scrollLeft === 0;\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n this.buttonStateSet = false;\n };\n\n componentWillLoad(): void {\n this.itemsContainerEl = this.el.children[0] as HTMLElement;\n this.itemsContainerEl.addEventListener(\"scroll\", this.scrollHandler);\n\n this.items = (getSlotElements(this.itemsContainerEl) ||\n Array.from(this.itemsContainerEl.children)) as HTMLElement[];\n this.items.forEach((item) =>\n item.addEventListener(\"focus\", () =>\n this.itemFocusHandler(Array.from(this.items).indexOf(item))\n )\n );\n }\n\n componentDidLoad(): void {\n let runningTotal = 0;\n this.itemOffsets = this.items.map((item) => {\n runningTotal += item.offsetWidth;\n return runningTotal;\n });\n\n checkResizeObserver(this.runResizeObserver);\n\n // Add event listener to scroll containers as mouse events are not fired on disabled elements (ic-button's <button>)\n // 'mouseleave' needed in case the user moves their mouse while holding the arrow buttons\n // - 'mouseup' otherwise not detected and scrolling not stopped\n const scrollArrows = Array.from(\n this.el.shadowRoot.querySelectorAll(\"div\")\n ) as HTMLElement[];\n [\"mouseup\", \"mouseleave\"].forEach((event) => {\n scrollArrows.forEach((arrow) =>\n arrow.addEventListener(event, this.arrowMouseUpHandler)\n );\n });\n }\n\n disconnectedCallback(): void {\n this.resizeObserver.disconnect();\n }\n\n render() {\n const { appearance, firstItemVisible, lastItemVisible, itemOverflow } =\n this;\n\n return (\n <Host\n class={{\n [\"visible\"]: itemOverflow,\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n [\"light\"]: this.appearance === IcThemeForegroundEnum.Light,\n }}\n >\n <div\n aria-hidden=\"true\"\n class={{\n [\"scroll-container-left\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: firstItemVisible,\n }}\n >\n <ic-button\n class=\"scroll-arrow\"\n variant=\"icon\"\n aria-label=\"Scroll left\"\n appearance={appearance}\n innerHTML={LeftArrow}\n disabled={firstItemVisible}\n tabindex=\"-1\"\n onClick={this.scrollLeft}\n onMouseDown={this.leftArrowMouseDownHandler}\n ></ic-button>\n <span class=\"scroll-splitter-left\"></span>\n </div>\n <slot></slot>\n <div\n aria-hidden=\"true\"\n class={{\n [\"scroll-container-right\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: lastItemVisible,\n }}\n >\n <span class=\"scroll-splitter-right\"></span>\n <ic-button\n class=\"scroll-arrow\"\n variant=\"icon\"\n aria-label=\"Scroll right\"\n appearance={appearance}\n innerHTML={RightArrow}\n disabled={lastItemVisible}\n tabindex=\"-1\"\n onClick={this.scrollRight}\n onMouseDown={this.rightArrowMouseDownHandler}\n ></ic-button>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import { fixture } from "@open-wc/testing-helpers";
2
+ import { axe } from "jest-axe";
3
+ import { checkShadowElementRendersCorrectly } from "../../utils/testa11y.helpers";
4
+ beforeEach(() => {
5
+ // IntersectionObserver isn't available in test environment
6
+ const mockResizeObserver = jest.fn();
7
+ mockResizeObserver.mockReturnValue({
8
+ observe: jest.fn().mockReturnValue(null),
9
+ unobserve: jest.fn().mockReturnValue(null),
10
+ disconnect: jest.fn().mockReturnValue(null),
11
+ });
12
+ window.ResizeObserver = mockResizeObserver;
13
+ });
14
+ describe("ic-horizontal-scroll", () => {
15
+ it("passes accessibility", async () => {
16
+ const div = document.createElement("div");
17
+ div.setAttribute("style", "width: 320px;");
18
+ const el = await fixture(`
19
+ <ic-horizontal-scroll>
20
+ <ul>
21
+ <ic-navigation-item label="Test nav item 1"></ic-navigation-item>
22
+ <ic-navigation-item label="Test nav item 2"></ic-navigation-item>
23
+ <ic-navigation-item label="Test nav item 3"></ic-navigation-item>
24
+ <ic-navigation-item label="Test nav item 4"></ic-navigation-item>
25
+ <ic-navigation-item label="Test nav item 5"></ic-navigation-item>
26
+ <ic-navigation-item label="Test nav item 6"></ic-navigation-item>
27
+ </ul>
28
+ </ic-horizontal-scroll>
29
+ `, { parentNode: div });
30
+ checkShadowElementRendersCorrectly(el);
31
+ expect(await axe(el)).toHaveNoViolations();
32
+ });
33
+ });
34
+ //# sourceMappingURL=ic-horizontal-scroll.test.a11y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-horizontal-scroll.test.a11y.js","sourceRoot":"","sources":["../../../src/components/ic-horizontal-scroll/ic-horizontal-scroll.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,8BAA8B,CAAC;AAElF,UAAU,CAAC,GAAG,EAAE;EACd,2DAA2D;EAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;EACrC,kBAAkB,CAAC,eAAe,CAAC;IACjC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;IAC1C,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;GAC5C,CAAC,CAAC;EACH,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;EACpC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB;;;;;;;;;;;KAWD,EACC,EAAE,UAAU,EAAE,GAAG,EAAE,CACpB,CAAC;IACF,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture } from \"@open-wc/testing-helpers\";\nimport { axe } from \"jest-axe\";\nimport { checkShadowElementRendersCorrectly } from \"../../utils/testa11y.helpers\";\n\nbeforeEach(() => {\n // IntersectionObserver isn't available in test environment\n const mockResizeObserver = jest.fn();\n mockResizeObserver.mockReturnValue({\n observe: jest.fn().mockReturnValue(null),\n unobserve: jest.fn().mockReturnValue(null),\n disconnect: jest.fn().mockReturnValue(null),\n });\n window.ResizeObserver = mockResizeObserver;\n});\n\ndescribe(\"ic-horizontal-scroll\", () => {\n it(\"passes accessibility\", async () => {\n const div = document.createElement(\"div\");\n div.setAttribute(\"style\", \"width: 320px;\");\n const el = await fixture(\n `\n <ic-horizontal-scroll>\n <ul>\n <ic-navigation-item label=\"Test nav item 1\"></ic-navigation-item>\n <ic-navigation-item label=\"Test nav item 2\"></ic-navigation-item>\n <ic-navigation-item label=\"Test nav item 3\"></ic-navigation-item>\n <ic-navigation-item label=\"Test nav item 4\"></ic-navigation-item>\n <ic-navigation-item label=\"Test nav item 5\"></ic-navigation-item>\n <ic-navigation-item label=\"Test nav item 6\"></ic-navigation-item>\n </ul>\n </ic-horizontal-scroll>\n `,\n { parentNode: div }\n );\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
@@ -64,6 +64,7 @@ export class Link {
64
64
  }
65
65
  static get is() { return "ic-link"; }
66
66
  static get encapsulation() { return "shadow"; }
67
+ static get delegatesFocus() { return true; }
67
68
  static get originalStyleUrls() {
68
69
  return {
69
70
  "$": ["ic-link.css"]
@@ -1 +1 @@
1
- {"version":3,"file":"ic-link.js","sourceRoot":"","sources":["../../../src/components/ic-link/ic-link.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n Method,\n} from \"@stencil/core\";\n\nimport OpenInNew from \"./assets/OpenInNew.svg\";\nimport { getThemeFromContext, inheritAttributes } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n\n@Component({\n tag: \"ic-link\",\n styleUrl: \"ic-link.css\",\n shadow: true,\n})\nexport class Link {\n private inheritedAttributes: { [k: string]: unknown } = {};\n private routerSlot: HTMLElement;\n\n @Element() el: HTMLIcLinkElement;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to.\n */\n @Prop() href?: string = null;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * If `true`, the 'open in new tab/window' icon will be displayed.\n */\n @Prop() showIcon?: boolean;\n\n /**\n * The appearance of the link, e.g. dark, light, or default.\n */\n @Prop({ mutable: true }) appearance?: IcThemeForeground = \"default\";\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const theme = getThemeFromContext(this.el, newTheme || null);\n\n switch (theme) {\n case IcThemeForegroundEnum.Light:\n this.appearance = IcThemeForegroundEnum.Light;\n break;\n case IcThemeForegroundEnum.Dark:\n this.appearance = IcThemeForegroundEnum.Dark;\n break;\n }\n }\n\n /**\n * Sets focus on the link.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n }\n }\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"aria-expanded\",\n ]);\n\n this.updateTheme();\n }\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n render() {\n const {\n download,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n showIcon,\n appearance,\n } = this;\n\n return (\n <Host class={{ [\"link\"]: true, [`${appearance}`]: true }}>\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <a\n class={{\n [\"ic-link\"]: href !== null,\n [`${appearance}`]: href !== null,\n }}\n download={download !== false ? download : null}\n href={href}\n hrefLang={hreflang}\n referrerPolicy={referrerpolicy}\n rel={rel}\n target={target}\n tabindex={href !== null ? \"0\" : \"-1\"}\n {...this.inheritedAttributes}\n >\n <slot />\n {showIcon && (\n <span class=\"ic-link-open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-link.js","sourceRoot":"","sources":["../../../src/components/ic-link/ic-link.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n Method,\n} from \"@stencil/core\";\n\nimport OpenInNew from \"./assets/OpenInNew.svg\";\nimport { getThemeFromContext, inheritAttributes } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n\n@Component({\n tag: \"ic-link\",\n styleUrl: \"ic-link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Link {\n private inheritedAttributes: { [k: string]: unknown } = {};\n private routerSlot: HTMLElement;\n\n @Element() el: HTMLIcLinkElement;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to.\n */\n @Prop() href?: string = null;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * If `true`, the 'open in new tab/window' icon will be displayed.\n */\n @Prop() showIcon?: boolean;\n\n /**\n * The appearance of the link, e.g. dark, light, or default.\n */\n @Prop({ mutable: true }) appearance?: IcThemeForeground = \"default\";\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const theme = getThemeFromContext(this.el, newTheme || null);\n\n switch (theme) {\n case IcThemeForegroundEnum.Light:\n this.appearance = IcThemeForegroundEnum.Light;\n break;\n case IcThemeForegroundEnum.Dark:\n this.appearance = IcThemeForegroundEnum.Dark;\n break;\n }\n }\n\n /**\n * Sets focus on the link.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n }\n }\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"aria-expanded\",\n ]);\n\n this.updateTheme();\n }\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n render() {\n const {\n download,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n showIcon,\n appearance,\n } = this;\n\n return (\n <Host class={{ [\"link\"]: true, [`${appearance}`]: true }}>\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <a\n class={{\n [\"ic-link\"]: href !== null,\n [`${appearance}`]: href !== null,\n }}\n download={download !== false ? download : null}\n href={href}\n hrefLang={hreflang}\n referrerPolicy={referrerpolicy}\n rel={rel}\n target={target}\n tabindex={href !== null ? \"0\" : \"-1\"}\n {...this.inheritedAttributes}\n >\n <slot />\n {showIcon && (\n <span class=\"ic-link-open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -36,18 +36,23 @@ export class LoadingIndicator {
36
36
  // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property
37
37
  this.setCircleLineWidth = () => {
38
38
  const { offsetWidth: width } = this.outerElement;
39
- if (this.host.classList.contains("compact-step-progress-indicator")) {
40
- this.compactStepCircularLineWidth = 40;
41
- }
42
- if (width || this.compactStepCircularLineWidth === 40) {
39
+ const compactStepCircularLineWidth = this.host.classList.contains("compact-step-progress-indicator")
40
+ ? 40
41
+ : 0;
42
+ const toastDismissTimerCircularLineWidth = this.host.classList.contains("toast-dismiss-timer")
43
+ ? 20
44
+ : 0;
45
+ if (width ||
46
+ compactStepCircularLineWidth ||
47
+ toastDismissTimerCircularLineWidth) {
43
48
  this.circularLineWidth =
44
- (this.compactStepCircularLineWidth === 40
45
- ? this.compactStepCircularLineWidth
46
- : width) * 0.1;
49
+ (compactStepCircularLineWidth ||
50
+ toastDismissTimerCircularLineWidth ||
51
+ width) * 0.1;
47
52
  this.circularDiameter =
48
- this.compactStepCircularLineWidth === 40
49
- ? this.compactStepCircularLineWidth
50
- : width;
53
+ compactStepCircularLineWidth ||
54
+ toastDismissTimerCircularLineWidth ||
55
+ width;
51
56
  this.outerElement.style.setProperty("--circular-line-width", `${this.circularLineWidth}px`);
52
57
  }
53
58
  };
@@ -119,7 +124,6 @@ export class LoadingIndicator {
119
124
  this.indeterminate = undefined;
120
125
  this.showSecond = false;
121
126
  this.circularLineWidth = undefined;
122
- this.compactStepCircularLineWidth = 0;
123
127
  this.circularDiameter = undefined;
124
128
  }
125
129
  watchPropHandler() {
@@ -394,7 +398,6 @@ export class LoadingIndicator {
394
398
  "indeterminate": {},
395
399
  "showSecond": {},
396
400
  "circularLineWidth": {},
397
- "compactStepCircularLineWidth": {},
398
401
  "circularDiameter": {}
399
402
  };
400
403
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-loading-indicator.js","sourceRoot":"","sources":["../../../src/components/ic-loading-indicator/ic-loading-indicator.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport {\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n @Element() host: HTMLIcLoadingIndicatorElement;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min?: number = 0;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max?: number = 100;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by separating multiple messages with forward slashes.\n */\n @Prop() label?: string;\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description?: string = \"Loading\";\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration?: number = 8000;\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size?: IcLoadingSizes = \"default\";\n\n /**\n * The type of indicator, either linear or circular.\n */\n @Prop({ reflect: true }) type?: IcLoadingTypes = \"circular\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth?: boolean = false;\n\n /**\n * The appearance of the loading indicator, e.g. dark or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n @State() indicatorLabel: string;\n @State() indeterminate: boolean;\n @State() showSecond: boolean = false;\n @State() circularLineWidth: number;\n @State() compactStepCircularLineWidth: number = 0;\n\n @State() circularDiameter: number;\n\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n @Watch(\"progress\")\n watchProgressHandler(): void {\n if (this.type === \"circular\") {\n this.updateCircularProgressMeter();\n }\n }\n\n private outerElement?: HTMLDivElement;\n private innerElement?: HTMLDivElement;\n private labelList: string[];\n private circularMeter: SVGCircleElement;\n\n private updateCircularProgressMeter = () => {\n if (!this.indeterminate) {\n this.circularMeter.style.setProperty(\n \"--progress-value\",\n String(this.progress)\n );\n }\n };\n\n private getLabel = (\n labelIndex: number,\n setLabel: (label: string) => void\n ) => {\n return new Promise(() => {\n setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n setLabel(this.labelList[labelIndex]);\n }, this.labelDuration);\n });\n };\n\n private getLabelVariant = () => {\n let variant: \"label\" | \"h4\" | \"h2\" = \"h4\";\n const width = this.outerElement?.offsetWidth;\n if (this.size === \"small\" || (this.type === \"circular\" && width < 60)) {\n variant = \"label\";\n } else if (\n this.size === \"large\" ||\n (this.type === \"circular\" && width >= 120)\n ) {\n variant = \"h2\";\n }\n return variant;\n };\n\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n private setCircleLineWidth = () => {\n const { offsetWidth: width } = this.outerElement;\n if (this.host.classList.contains(\"compact-step-progress-indicator\")) {\n this.compactStepCircularLineWidth = 40;\n }\n if (width || this.compactStepCircularLineWidth === 40) {\n this.circularLineWidth =\n (this.compactStepCircularLineWidth === 40\n ? this.compactStepCircularLineWidth\n : width) * 0.1;\n this.circularDiameter =\n this.compactStepCircularLineWidth === 40\n ? this.compactStepCircularLineWidth\n : width;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n };\n\n private setLinearDeterminateWidth = () => {\n if (!this.innerElement) return;\n // Ensure progress cannot be out of bounds\n\n const progress = Math.min(this.max, Math.max(this.min, this.progress));\n const proportion = (progress - this.min) / (this.max - this.min);\n this.showSecond = proportion > 0.5;\n if (this.showSecond) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private calcOuterClass = (): string => {\n let cls = `ic-loading-${this.type}-outer`;\n cls += this.indeterminate ? \" indeterminate\" : \" determinate\";\n return cls;\n };\n\n private updateLabel = (): void => {\n if (this.label !== undefined) {\n this.labelList = this.label.split(\"/\");\n const labelIndex = 0;\n this.indicatorLabel = this.labelList[labelIndex];\n if (this.labelList.length > 1) {\n this.getLabel(labelIndex, (label) => {\n this.indicatorLabel = label;\n });\n }\n }\n };\n\n private setCircleXY = (): IcLoadingCircleXYR => {\n if (this.circularDiameter > 0) {\n const r = this.circularDiameter / 2;\n const x = r;\n const y = r;\n const nextRadius = r - this.circularLineWidth / 2;\n this.setDashSteps(nextRadius);\n\n return { x, y, r: nextRadius };\n }\n return { x: 0, y: 0, r: 0 };\n };\n\n private setDashSteps = (radius: number) => {\n const dashArray = 2 * Math.PI * radius;\n const progress = Math.min(Math.max(this.progress, this.min), this.max);\n const proportion = -1 - (progress - this.min) / (this.max - this.min);\n\n this.circularMeter.style.setProperty(\n \"--stroke-dasharray\",\n `${dashArray}px`\n );\n\n if (!this.indeterminate) {\n this.circularMeter.style.setProperty(\n \"--circular-steps-max\",\n String(this.max)\n );\n this.circularMeter.style.setProperty(\n \"--stroke-dashoffset\",\n `${proportion * dashArray}px`\n );\n }\n };\n\n componentWillLoad(): void {\n this.indeterminate = this.progress === undefined;\n this.updateLabel();\n }\n\n componentDidLoad(): void {\n if (this.type === \"circular\") {\n this.setCircleLineWidth();\n this.circularMeter = this.host.shadowRoot.querySelector(\n \".ic-loading-circular-svg circle:nth-child(2)\"\n );\n this.updateCircularProgressMeter();\n }\n\n if (Number(this.progress) >= 0 && this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n }\n }\n\n componentWillUpdate(): void {\n this.indeterminate = this.progress === undefined;\n }\n\n componentDidUpdate(): void {\n if (Number(this.progress) >= 0 && this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n }\n }\n\n render() {\n const { appearance, label, description, size } = this;\n const { x, y, r } = this.setCircleXY();\n\n return (\n <Host class={{ [\"light\"]: appearance === IcThemeForegroundEnum.Light }}>\n <div class=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el as HTMLDivElement)}\n class={this.calcOuterClass()}\n role=\"progressbar\"\n aria-labelledby={\n this.label && this.size !== \"icon\" && \"ic-loading-label\"\n }\n aria-label={description}\n aria-valuenow={this.progress}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n >\n <div\n ref={(el) => (this.innerElement = el as HTMLDivElement)}\n class={`ic-loading-${this.type}-inner`}\n >\n {this.innerLabel &&\n this.innerLabel !== undefined &&\n this.size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {this.innerLabel}\n </ic-typography>\n )}\n {this.type === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${this.circularDiameter || 0} ${\n this.circularDiameter || 0\n }`}\n >\n <circle cx={`${x}`} cy={`${y}`} r={`${r}`}></circle>\n <circle cx={`${x}`} cy={`${y}`} r={`${r}`}></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"status\"\n variant={this.getLabelVariant()}\n >\n <p>{this.indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-loading-indicator.js","sourceRoot":"","sources":["../../../src/components/ic-loading-indicator/ic-loading-indicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMhF,OAAO,EACL,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,OAAO,gBAAgB;;IAqFnB,gCAA2B,GAAG,GAAG,EAAE;MACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;QACvB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAClC,kBAAkB,EAClB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CACtB,CAAC;OACH;IACH,CAAC,CAAC;IAEM,aAAQ,GAAG,CACjB,UAAkB,EAClB,QAAiC,EACjC,EAAE;MACF,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QACtB,WAAW,CAAC,GAAG,EAAE;UACf,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,UAAU,EAAE,CAAC;WACd;eAAM;YACL,UAAU,GAAG,CAAC,CAAC;WAChB;UACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;MACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,oBAAe,GAAG,GAAG,EAAE;;MAC7B,IAAI,OAAO,GAA0B,IAAI,CAAC;MAC1C,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,YAAY,0CAAE,WAAW,CAAC;MAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,EAAE;QACrE,OAAO,GAAG,OAAO,CAAC;OACnB;WAAM,IACL,IAAI,CAAC,IAAI,KAAK,OAAO;QACrB,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,IAAI,GAAG,CAAC,EAC1C;QACA,OAAO,GAAG,IAAI,CAAC;OAChB;MACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,sHAAsH;IAC9G,uBAAkB,GAAG,GAAG,EAAE;MAChC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;MAEjD,MAAM,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC/D,iCAAiC,CAClC;QACC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,CAAC;MACN,MAAM,kCAAkC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrE,qBAAqB,CACtB;QACC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,CAAC;MAEN,IACE,KAAK;QACL,4BAA4B;QAC5B,kCAAkC,EAClC;QACA,IAAI,CAAC,iBAAiB;UACpB,CAAC,4BAA4B;YAC3B,kCAAkC;YAClC,KAAK,CAAC,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,gBAAgB;UACnB,4BAA4B;YAC5B,kCAAkC;YAClC,KAAK,CAAC;QACR,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CACjC,uBAAuB,EACvB,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAC9B,CAAC;OACH;IACH,CAAC,CAAC;IAEM,8BAAyB,GAAG,GAAG,EAAE;MACvC,IAAI,CAAC,IAAI,CAAC,YAAY;QAAE,OAAO;MAC/B,0CAA0C;MAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;MACvE,MAAM,UAAU,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;MACjE,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,GAAG,CAAC;MACnC,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;OAC5C;WAAM;QACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;OACzC;MACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CACjC,gBAAgB,EAChB,GAAG,UAAU,GAAG,GAAG,GAAG,CACvB,CAAC;IACJ,CAAC,CAAC;IAEM,mBAAc,GAAG,GAAW,EAAE;MACpC,IAAI,GAAG,GAAG,cAAc,IAAI,CAAC,IAAI,QAAQ,CAAC;MAC1C,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC;MAC9D,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEM,gBAAW,GAAG,GAAS,EAAE;MAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;UAC7B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAClC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;UAC9B,CAAC,CAAC,CAAC;SACJ;OACF;IACH,CAAC,CAAC;IAEM,gBAAW,GAAG,GAAuB,EAAE;MAC7C,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE9B,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;OAChC;MACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEM,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;MACxC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;MACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;MACvE,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;MAEtE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAClC,oBAAoB,EACpB,GAAG,SAAS,IAAI,CACjB,CAAC;MAEF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;QACvB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAClC,sBAAsB,EACtB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACjB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAClC,qBAAqB,EACrB,GAAG,UAAU,GAAG,SAAS,IAAI,CAC9B,CAAC;OACH;IACH,CAAC,CAAC;;eAxNqB,CAAC;eAMD,GAAG;;uBAWK,SAAS;;yBAUP,IAAI;gBAKY,SAAS;gBAKT,UAAU;qBAKZ,KAAK;sBAKF,MAAM;;;sBAIzB,KAAK;;;;EAKpC,gBAAgB;IACd,IAAI,CAAC,WAAW,EAAE,CAAC;EACrB,CAAC;EAGD,oBAAoB;IAClB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;MAC5B,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;EACH,CAAC;EAyJD,iBAAiB;IACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;IACjD,IAAI,CAAC,WAAW,EAAE,CAAC;EACrB,CAAC;EAED,gBAAgB;IACd,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;MAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;MAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CACrD,8CAA8C,CAC/C,CAAC;MACF,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;MACxD,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;EACH,CAAC;EAED,mBAAmB;IACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;EACnD,CAAC;EAED,kBAAkB;IAChB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;MACxD,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;EACH,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEvC,OAAO,CACL,EAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK,EAAE;MACpE,WAAK,KAAK,EAAC,sBAAsB;QAC/B,WACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAoB,CAAC,EACvD,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,qBAEhB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,kBAAkB,gBAE9C,WAAW,mBACR,IAAI,CAAC,QAAQ,mBACb,IAAI,CAAC,GAAG,mBACR,IAAI,CAAC,GAAG;UAEvB,WACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAoB,CAAC,EACvD,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,QAAQ;YAErC,IAAI,CAAC,UAAU;cACd,IAAI,CAAC,UAAU,KAAK,SAAS;cAC7B,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CACvB,qBAAe,OAAO,EAAC,gBAAgB,EAAC,KAAK,EAAC,YAAY,IACvD,IAAI,CAAC,UAAU,CACF,CACjB;YACF,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAC3B,WACE,KAAK,EAAC,yBAAyB,EAC/B,OAAO,EAAE,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IACxC,IAAI,CAAC,gBAAgB,IAAI,CAC3B,EAAE;cAEF,cAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAW;cACpD,cAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAW,CAChD,CACP,CACG,CACF;QACL,KAAK,IAAI,IAAI,KAAK,MAAM,IAAI,CAC3B,qBACE,EAAE,EAAC,kBAAkB,EACrB,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;UAE/B,aAAI,IAAI,CAAC,cAAc,CAAK,CACd,CACjB,CACG,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport {\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n @Element() host: HTMLIcLoadingIndicatorElement;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min?: number = 0;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max?: number = 100;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by separating multiple messages with forward slashes.\n */\n @Prop() label?: string;\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description?: string = \"Loading\";\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration?: number = 8000;\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size?: IcLoadingSizes = \"default\";\n\n /**\n * The type of indicator, either linear or circular.\n */\n @Prop({ reflect: true }) type?: IcLoadingTypes = \"circular\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth?: boolean = false;\n\n /**\n * The appearance of the loading indicator, e.g. dark or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n @State() indicatorLabel: string;\n @State() indeterminate: boolean;\n @State() showSecond: boolean = false;\n @State() circularLineWidth: number;\n @State() circularDiameter: number;\n\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n @Watch(\"progress\")\n watchProgressHandler(): void {\n if (this.type === \"circular\") {\n this.updateCircularProgressMeter();\n }\n }\n\n private outerElement?: HTMLDivElement;\n private innerElement?: HTMLDivElement;\n private labelList: string[];\n private circularMeter: SVGCircleElement;\n\n private updateCircularProgressMeter = () => {\n if (!this.indeterminate) {\n this.circularMeter.style.setProperty(\n \"--progress-value\",\n String(this.progress)\n );\n }\n };\n\n private getLabel = (\n labelIndex: number,\n setLabel: (label: string) => void\n ) => {\n return new Promise(() => {\n setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n setLabel(this.labelList[labelIndex]);\n }, this.labelDuration);\n });\n };\n\n private getLabelVariant = () => {\n let variant: \"label\" | \"h4\" | \"h2\" = \"h4\";\n const width = this.outerElement?.offsetWidth;\n if (this.size === \"small\" || (this.type === \"circular\" && width < 60)) {\n variant = \"label\";\n } else if (\n this.size === \"large\" ||\n (this.type === \"circular\" && width >= 120)\n ) {\n variant = \"h2\";\n }\n return variant;\n };\n\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n private setCircleLineWidth = () => {\n const { offsetWidth: width } = this.outerElement;\n\n const compactStepCircularLineWidth = this.host.classList.contains(\n \"compact-step-progress-indicator\"\n )\n ? 40\n : 0;\n const toastDismissTimerCircularLineWidth = this.host.classList.contains(\n \"toast-dismiss-timer\"\n )\n ? 20\n : 0;\n\n if (\n width ||\n compactStepCircularLineWidth ||\n toastDismissTimerCircularLineWidth\n ) {\n this.circularLineWidth =\n (compactStepCircularLineWidth ||\n toastDismissTimerCircularLineWidth ||\n width) * 0.1;\n this.circularDiameter =\n compactStepCircularLineWidth ||\n toastDismissTimerCircularLineWidth ||\n width;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n };\n\n private setLinearDeterminateWidth = () => {\n if (!this.innerElement) return;\n // Ensure progress cannot be out of bounds\n\n const progress = Math.min(this.max, Math.max(this.min, this.progress));\n const proportion = (progress - this.min) / (this.max - this.min);\n this.showSecond = proportion > 0.5;\n if (this.showSecond) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private calcOuterClass = (): string => {\n let cls = `ic-loading-${this.type}-outer`;\n cls += this.indeterminate ? \" indeterminate\" : \" determinate\";\n return cls;\n };\n\n private updateLabel = (): void => {\n if (this.label !== undefined) {\n this.labelList = this.label.split(\"/\");\n const labelIndex = 0;\n this.indicatorLabel = this.labelList[labelIndex];\n if (this.labelList.length > 1) {\n this.getLabel(labelIndex, (label) => {\n this.indicatorLabel = label;\n });\n }\n }\n };\n\n private setCircleXY = (): IcLoadingCircleXYR => {\n if (this.circularDiameter > 0) {\n const r = this.circularDiameter / 2;\n const x = r;\n const y = r;\n const nextRadius = r - this.circularLineWidth / 2;\n this.setDashSteps(nextRadius);\n\n return { x, y, r: nextRadius };\n }\n return { x: 0, y: 0, r: 0 };\n };\n\n private setDashSteps = (radius: number) => {\n const dashArray = 2 * Math.PI * radius;\n const progress = Math.min(Math.max(this.progress, this.min), this.max);\n const proportion = -1 - (progress - this.min) / (this.max - this.min);\n\n this.circularMeter.style.setProperty(\n \"--stroke-dasharray\",\n `${dashArray}px`\n );\n\n if (!this.indeterminate) {\n this.circularMeter.style.setProperty(\n \"--circular-steps-max\",\n String(this.max)\n );\n this.circularMeter.style.setProperty(\n \"--stroke-dashoffset\",\n `${proportion * dashArray}px`\n );\n }\n };\n\n componentWillLoad(): void {\n this.indeterminate = this.progress === undefined;\n this.updateLabel();\n }\n\n componentDidLoad(): void {\n if (this.type === \"circular\") {\n this.setCircleLineWidth();\n this.circularMeter = this.host.shadowRoot.querySelector(\n \".ic-loading-circular-svg circle:nth-child(2)\"\n );\n this.updateCircularProgressMeter();\n }\n\n if (Number(this.progress) >= 0 && this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n }\n }\n\n componentWillUpdate(): void {\n this.indeterminate = this.progress === undefined;\n }\n\n componentDidUpdate(): void {\n if (Number(this.progress) >= 0 && this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n }\n }\n\n render() {\n const { appearance, label, description, size } = this;\n const { x, y, r } = this.setCircleXY();\n\n return (\n <Host class={{ [\"light\"]: appearance === IcThemeForegroundEnum.Light }}>\n <div class=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el as HTMLDivElement)}\n class={this.calcOuterClass()}\n role=\"progressbar\"\n aria-labelledby={\n this.label && this.size !== \"icon\" && \"ic-loading-label\"\n }\n aria-label={description}\n aria-valuenow={this.progress}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n >\n <div\n ref={(el) => (this.innerElement = el as HTMLDivElement)}\n class={`ic-loading-${this.type}-inner`}\n >\n {this.innerLabel &&\n this.innerLabel !== undefined &&\n this.size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {this.innerLabel}\n </ic-typography>\n )}\n {this.type === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${this.circularDiameter || 0} ${\n this.circularDiameter || 0\n }`}\n >\n <circle cx={`${x}`} cy={`${y}`} r={`${r}`}></circle>\n <circle cx={`${x}`} cy={`${y}`} r={`${r}`}></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"status\"\n variant={this.getLabelVariant()}\n >\n <p>{this.indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -441,6 +441,10 @@ video {
441
441
  }
442
442
 
443
443
 
444
+ /**
445
+ * @prop --ic-z-index-menu: z-index of menu
446
+ */
447
+
444
448
  @media (prefers-reduced-motion: no-preference) {
445
449
  :host([open]) .menu {
446
450
  transition: max-height var(--ic-transition-duration-slow);
@@ -454,7 +458,7 @@ video {
454
458
  color: var(--ic-color-primary-text);
455
459
  background-color: var(--ic-architectural-white);
456
460
  position: relative;
457
- z-index: var(--ic-z-index-popup-menu);
461
+ z-index: var(--ic-z-index-menu);
458
462
  box-sizing: border-box;
459
463
  box-shadow: var(--ic-elevation-overlay);
460
464
  }
@@ -310,7 +310,7 @@ export class Menu {
310
310
  (option.value === value || option.value === this.optionHighlighted) &&
311
311
  this.keyboardNav
312
312
  ? "0"
313
- : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": option.value === value, "aria-disabled": option.disabled ? "true" : "false", onClick: this.handleOptionClick, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, "data-value": option.value, "data-label": option.label }, h("div", { class: "option-text-container" }, h("ic-typography", { variant: "body", "aria-hidden": "true" }, h("p", null, option.label)), option.description && (h("ic-typography", { id: `${this.getOptionId(option.value)}-description`, class: "option-description", variant: "caption", "aria-hidden": "true" }, h("p", null, option.description)))), option.value === value &&
313
+ : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": option.value === value, "aria-disabled": option.disabled ? "true" : "false", onClick: this.handleOptionClick, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, "data-value": option.value, "data-label": option.label }, h("div", { class: "option-text-container" }, h("ic-typography", { variant: "body", "aria-hidden": "true" }, h("p", null, option.label)), option.description && (h("ic-typography", { id: `${this.getOptionId(option.value)}-description`, class: "option-description", variant: "caption", "aria-hidden": "true" }, h("p", null, option.description)))), (option === null || option === void 0 ? void 0 : option.value.toLowerCase()) === (value === null || value === void 0 ? void 0 : value.toLowerCase()) &&
314
314
  this.parentEl.tagName !== "IC-SEARCH-BAR" && (h("span", { class: "check-icon", innerHTML: Check }))));
315
315
  };
316
316
  this.open = undefined;