@ukic/web-components 3.0.0-alpha.8 → 3.0.0-alpha.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (356) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-8ca38600.js → helpers-eca4c27e.js} +2 -2
  3. package/dist/cjs/helpers-eca4c27e.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js +47 -3
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-dialog.cjs.entry.js +10 -4
  20. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-radio-group.cjs.entry.js +21 -18
  43. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-radio-option.cjs.entry.js +13 -6
  45. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  47. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-select.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-switch.cjs.entry.js +12 -14
  55. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-text-field.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +8 -1
  63. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -3
  65. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  68. package/dist/cjs/loader.cjs.js +1 -1
  69. package/dist/collection/collection-manifest.json +1 -1
  70. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +8 -0
  71. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +50 -3
  72. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  73. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +45 -1
  74. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +1 -1
  75. package/dist/collection/components/ic-button/ic-button.js +2 -2
  76. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  77. package/dist/collection/components/ic-button/ic-button.types.js.map +1 -1
  78. package/dist/collection/components/ic-dialog/ic-dialog.js +9 -3
  79. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  80. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +27 -7
  81. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  82. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -1
  83. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  84. package/dist/collection/components/ic-radio-group/ic-radio-group.js +20 -17
  85. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  86. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +4 -1
  87. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  88. package/dist/collection/components/ic-radio-option/ic-radio-option.css +2 -4
  89. package/dist/collection/components/ic-radio-option/ic-radio-option.js +17 -4
  90. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  91. package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
  92. package/dist/collection/components/ic-select/ic-select.css +7 -1
  93. package/dist/collection/components/ic-switch/ic-switch.css +0 -18
  94. package/dist/collection/components/ic-switch/ic-switch.js +11 -31
  95. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  96. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +0 -14
  97. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +1 -1
  98. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +6 -0
  99. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +26 -1
  100. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  101. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +33 -0
  102. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  103. package/dist/collection/utils/constants.js +1 -1
  104. package/dist/collection/utils/constants.js.map +1 -1
  105. package/dist/collection/utils/types.js.map +1 -1
  106. package/dist/components/helpers.js +2 -2
  107. package/dist/components/helpers.js.map +1 -1
  108. package/dist/components/ic-breadcrumb-group.js +1 -1
  109. package/dist/components/ic-breadcrumb2.js +49 -3
  110. package/dist/components/ic-breadcrumb2.js.map +1 -1
  111. package/dist/components/ic-button2.js.map +1 -1
  112. package/dist/components/ic-checkbox-group.js +1 -1
  113. package/dist/components/ic-checkbox.js +1 -1
  114. package/dist/components/ic-data-row.js +1 -1
  115. package/dist/components/ic-dialog.js +9 -3
  116. package/dist/components/ic-dialog.js.map +1 -1
  117. package/dist/components/ic-divider2.js +1 -1
  118. package/dist/components/ic-footer.js +1 -1
  119. package/dist/components/ic-hero.js +1 -1
  120. package/dist/components/ic-horizontal-scroll2.js +1 -1
  121. package/dist/components/ic-input-component-container2.js +1 -1
  122. package/dist/components/ic-input-label2.js +1 -1
  123. package/dist/components/ic-input-validation2.js +1 -1
  124. package/dist/components/ic-navigation-group.js +1 -1
  125. package/dist/components/ic-navigation-item.js +2 -2
  126. package/dist/components/ic-navigation-item.js.map +1 -1
  127. package/dist/components/ic-page-header.js +1 -1
  128. package/dist/components/ic-popover-menu.js +1 -1
  129. package/dist/components/ic-radio-group.js +21 -18
  130. package/dist/components/ic-radio-group.js.map +1 -1
  131. package/dist/components/ic-radio-option.js +14 -7
  132. package/dist/components/ic-radio-option.js.map +1 -1
  133. package/dist/components/ic-search-bar.js +2 -2
  134. package/dist/components/ic-search-bar.js.map +1 -1
  135. package/dist/components/ic-select.js +2 -2
  136. package/dist/components/ic-select.js.map +1 -1
  137. package/dist/components/ic-side-navigation.js +1 -1
  138. package/dist/components/ic-switch.js +12 -15
  139. package/dist/components/ic-switch.js.map +1 -1
  140. package/dist/components/ic-text-field.js +1 -1
  141. package/dist/components/ic-toggle-button-group.js +9 -0
  142. package/dist/components/ic-toggle-button-group.js.map +1 -1
  143. package/dist/components/ic-toggle-button.js +4 -2
  144. package/dist/components/ic-toggle-button.js.map +1 -1
  145. package/dist/components/ic-top-navigation.js +1 -1
  146. package/dist/core/core.css +2 -2
  147. package/dist/core/core.esm.js +1 -1
  148. package/dist/core/core.esm.js.map +1 -1
  149. package/dist/core/{p-54604d29.entry.js → p-0cb72d37.entry.js} +2 -2
  150. package/dist/core/{p-a6f25812.entry.js → p-1223d0e9.entry.js} +2 -2
  151. package/dist/core/{p-e719ae4e.entry.js → p-190c3474.entry.js} +2 -2
  152. package/dist/core/p-190c3474.entry.js.map +1 -0
  153. package/dist/core/p-199b9196.entry.js +2 -0
  154. package/dist/core/p-199b9196.entry.js.map +1 -0
  155. package/dist/core/{p-8a66d8b0.entry.js → p-1bf956cb.entry.js} +2 -2
  156. package/dist/core/{p-cf5f427b.entry.js → p-20ac0d2a.entry.js} +2 -2
  157. package/dist/core/{p-e2de6dd4.entry.js → p-243ad74c.entry.js} +2 -2
  158. package/dist/core/{p-91c46a86.entry.js → p-24a34d72.entry.js} +2 -2
  159. package/dist/core/p-24a34d72.entry.js.map +1 -0
  160. package/dist/core/{p-f7b71154.entry.js → p-29afeb33.entry.js} +2 -2
  161. package/dist/core/{p-6c7836ff.entry.js → p-2cc0d6b9.entry.js} +2 -2
  162. package/dist/core/{p-67a75b77.entry.js → p-31c84a47.entry.js} +2 -2
  163. package/dist/core/{p-f297c365.entry.js → p-36ac5305.entry.js} +2 -2
  164. package/dist/core/{p-3a1a7524.entry.js → p-404b482e.entry.js} +2 -2
  165. package/dist/core/{p-98963b03.entry.js → p-419d3378.entry.js} +2 -2
  166. package/dist/core/{p-08ff51ff.entry.js → p-47038ea3.entry.js} +2 -2
  167. package/dist/core/p-490bf0ee.entry.js +2 -0
  168. package/dist/core/p-490bf0ee.entry.js.map +1 -0
  169. package/dist/core/{p-8aceec77.entry.js → p-4e6e34fe.entry.js} +2 -2
  170. package/dist/core/p-4fce49bd.entry.js +2 -0
  171. package/dist/core/p-4fce49bd.entry.js.map +1 -0
  172. package/dist/core/{p-333d1e79.entry.js → p-5b42dbef.entry.js} +2 -2
  173. package/dist/core/{p-ac61fa48.entry.js → p-5be2c26a.entry.js} +2 -2
  174. package/dist/core/{p-6594d2df.entry.js → p-5d5345a4.entry.js} +2 -2
  175. package/dist/core/{p-fb7a9d6b.entry.js → p-5dcc0489.entry.js} +2 -2
  176. package/dist/core/{p-cfcb0c5b.entry.js → p-5f6d6b3f.entry.js} +2 -2
  177. package/dist/core/{p-28af4d8a.entry.js → p-5f74782e.entry.js} +2 -2
  178. package/dist/core/{p-537af2dd.entry.js → p-6227fff5.entry.js} +2 -2
  179. package/dist/core/{p-68046114.entry.js → p-641e244d.entry.js} +2 -2
  180. package/dist/core/{p-076c3140.entry.js → p-6c1cf351.entry.js} +2 -2
  181. package/dist/core/{p-492c7e88.entry.js → p-6e630778.entry.js} +2 -2
  182. package/dist/core/{p-ab14882b.entry.js → p-7c8cd719.entry.js} +2 -2
  183. package/dist/core/{p-84c28c4d.entry.js → p-7fa74998.entry.js} +2 -2
  184. package/dist/core/{p-b468aa80.entry.js → p-7ff4632d.entry.js} +2 -2
  185. package/dist/core/{p-a4467032.entry.js → p-8452846e.entry.js} +2 -2
  186. package/dist/core/{p-4e9a0efe.entry.js → p-84c3a870.entry.js} +2 -2
  187. package/dist/core/{p-92e3c5a2.entry.js → p-8624bb98.entry.js} +2 -2
  188. package/dist/core/{p-5c5b0b12.entry.js → p-87aa30b4.entry.js} +2 -2
  189. package/dist/core/{p-98429cbe.entry.js → p-8b554299.entry.js} +2 -2
  190. package/dist/core/p-932f3e3c.js +2 -0
  191. package/dist/core/p-932f3e3c.js.map +1 -0
  192. package/dist/core/{p-7f05cc17.entry.js → p-9cfd6855.entry.js} +2 -2
  193. package/dist/core/{p-229523bc.entry.js → p-abb383bd.entry.js} +2 -2
  194. package/dist/core/p-af934e73.entry.js +2 -0
  195. package/dist/core/p-af934e73.entry.js.map +1 -0
  196. package/dist/core/{p-4bdd6aad.entry.js → p-b73b7139.entry.js} +2 -2
  197. package/dist/core/{p-4bdd6aad.entry.js.map → p-b73b7139.entry.js.map} +1 -1
  198. package/dist/core/{p-ee0d4bf4.entry.js → p-b9941d97.entry.js} +2 -2
  199. package/dist/core/{p-d41e5b62.entry.js → p-c1e93306.entry.js} +2 -2
  200. package/dist/core/p-d21d8014.entry.js +2 -0
  201. package/dist/core/p-d21d8014.entry.js.map +1 -0
  202. package/dist/core/p-e1f8d915.entry.js +2 -0
  203. package/dist/core/p-e1f8d915.entry.js.map +1 -0
  204. package/dist/core/{p-ea71e89f.entry.js → p-e4cb5585.entry.js} +2 -2
  205. package/dist/core/{p-81e8d7c5.entry.js → p-f073fc69.entry.js} +2 -2
  206. package/dist/core/{p-5637b986.entry.js → p-f2d9eefe.entry.js} +2 -2
  207. package/dist/core/p-f2d9eefe.entry.js.map +1 -0
  208. package/dist/core/{p-a3b00ec1.entry.js → p-f37c6a76.entry.js} +2 -2
  209. package/dist/core/{p-f61170f3.entry.js → p-f7872eef.entry.js} +2 -2
  210. package/dist/core/{p-88fdd912.entry.js → p-f9dceda0.entry.js} +2 -2
  211. package/dist/core/{p-840113b1.entry.js → p-fac53f92.entry.js} +2 -2
  212. package/dist/core/{p-a81a91a2.entry.js → p-fddcf298.entry.js} +2 -2
  213. package/dist/core/p-fddcf298.entry.js.map +1 -0
  214. package/dist/core/{p-434fa633.entry.js → p-ffc150c5.entry.js} +2 -2
  215. package/dist/esm/core.js +1 -1
  216. package/dist/esm/{helpers-1c6e542d.js → helpers-2624c32c.js} +2 -2
  217. package/dist/esm/helpers-2624c32c.js.map +1 -0
  218. package/dist/esm/ic-accordion-group.entry.js +1 -1
  219. package/dist/esm/ic-accordion.entry.js +1 -1
  220. package/dist/esm/ic-alert.entry.js +1 -1
  221. package/dist/esm/ic-back-to-top.entry.js +1 -1
  222. package/dist/esm/ic-badge.entry.js +1 -1
  223. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  224. package/dist/esm/ic-breadcrumb.entry.js +47 -3
  225. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  226. package/dist/esm/ic-button_3.entry.js +1 -1
  227. package/dist/esm/ic-button_3.entry.js.map +1 -1
  228. package/dist/esm/ic-card-vertical.entry.js +1 -1
  229. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  230. package/dist/esm/ic-checkbox.entry.js +1 -1
  231. package/dist/esm/ic-chip.entry.js +1 -1
  232. package/dist/esm/ic-data-row.entry.js +1 -1
  233. package/dist/esm/ic-dialog.entry.js +10 -4
  234. package/dist/esm/ic-dialog.entry.js.map +1 -1
  235. package/dist/esm/ic-divider.entry.js +1 -1
  236. package/dist/esm/ic-empty-state.entry.js +1 -1
  237. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  238. package/dist/esm/ic-footer-link.entry.js +1 -1
  239. package/dist/esm/ic-footer.entry.js +1 -1
  240. package/dist/esm/ic-hero.entry.js +1 -1
  241. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  242. package/dist/esm/ic-input-component-container_3.entry.js +1 -1
  243. package/dist/esm/ic-input-label_2.entry.js +1 -1
  244. package/dist/esm/ic-link.entry.js +1 -1
  245. package/dist/esm/ic-menu-group.entry.js +1 -1
  246. package/dist/esm/ic-menu-item.entry.js +1 -1
  247. package/dist/esm/ic-navigation-button.entry.js +1 -1
  248. package/dist/esm/ic-navigation-group.entry.js +1 -1
  249. package/dist/esm/ic-navigation-item.entry.js +2 -2
  250. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  251. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  252. package/dist/esm/ic-page-header.entry.js +1 -1
  253. package/dist/esm/ic-pagination-item.entry.js +1 -1
  254. package/dist/esm/ic-pagination.entry.js +1 -1
  255. package/dist/esm/ic-popover-menu.entry.js +1 -1
  256. package/dist/esm/ic-radio-group.entry.js +21 -18
  257. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  258. package/dist/esm/ic-radio-option.entry.js +13 -6
  259. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  260. package/dist/esm/ic-search-bar.entry.js +2 -2
  261. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  262. package/dist/esm/ic-select.entry.js +2 -2
  263. package/dist/esm/ic-select.entry.js.map +1 -1
  264. package/dist/esm/ic-side-navigation.entry.js +1 -1
  265. package/dist/esm/ic-status-tag.entry.js +1 -1
  266. package/dist/esm/ic-step.entry.js +1 -1
  267. package/dist/esm/ic-stepper.entry.js +1 -1
  268. package/dist/esm/ic-switch.entry.js +12 -14
  269. package/dist/esm/ic-switch.entry.js.map +1 -1
  270. package/dist/esm/ic-tab-group.entry.js +1 -1
  271. package/dist/esm/ic-tab-panel.entry.js +1 -1
  272. package/dist/esm/ic-tab.entry.js +1 -1
  273. package/dist/esm/ic-text-field.entry.js +1 -1
  274. package/dist/esm/ic-theme.entry.js +1 -1
  275. package/dist/esm/ic-toast.entry.js +1 -1
  276. package/dist/esm/ic-toggle-button-group.entry.js +8 -1
  277. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  278. package/dist/esm/ic-toggle-button.entry.js +4 -3
  279. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  280. package/dist/esm/ic-top-navigation.entry.js +1 -1
  281. package/dist/esm/ic-typography.entry.js +1 -1
  282. package/dist/esm/loader.js +1 -1
  283. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +8 -0
  284. package/dist/types/components/ic-button/ic-button.d.ts +2 -2
  285. package/dist/types/components/ic-button/ic-button.types.d.ts +0 -1
  286. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +1 -0
  287. package/dist/types/components/ic-switch/ic-switch.d.ts +1 -5
  288. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +5 -1
  289. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +6 -1
  290. package/dist/types/components.d.ts +20 -12
  291. package/dist/types/utils/types.d.ts +1 -0
  292. package/hydrate/index.js +116 -49
  293. package/package.json +2 -2
  294. package/vscode-data.json +36 -4
  295. package/dist/cjs/helpers-8ca38600.js.map +0 -1
  296. package/dist/core/p-2392b3ef.js +0 -2
  297. package/dist/core/p-2392b3ef.js.map +0 -1
  298. package/dist/core/p-50601f1e.entry.js +0 -2
  299. package/dist/core/p-50601f1e.entry.js.map +0 -1
  300. package/dist/core/p-5637b986.entry.js.map +0 -1
  301. package/dist/core/p-56b5e33e.entry.js +0 -2
  302. package/dist/core/p-56b5e33e.entry.js.map +0 -1
  303. package/dist/core/p-5aa7dcae.entry.js +0 -2
  304. package/dist/core/p-5aa7dcae.entry.js.map +0 -1
  305. package/dist/core/p-74b8206f.entry.js +0 -2
  306. package/dist/core/p-74b8206f.entry.js.map +0 -1
  307. package/dist/core/p-91c46a86.entry.js.map +0 -1
  308. package/dist/core/p-a81a91a2.entry.js.map +0 -1
  309. package/dist/core/p-d7043445.entry.js +0 -2
  310. package/dist/core/p-d7043445.entry.js.map +0 -1
  311. package/dist/core/p-e719ae4e.entry.js.map +0 -1
  312. package/dist/core/p-f0e45316.entry.js +0 -2
  313. package/dist/core/p-f0e45316.entry.js.map +0 -1
  314. package/dist/esm/helpers-1c6e542d.js.map +0 -1
  315. /package/dist/core/{p-54604d29.entry.js.map → p-0cb72d37.entry.js.map} +0 -0
  316. /package/dist/core/{p-a6f25812.entry.js.map → p-1223d0e9.entry.js.map} +0 -0
  317. /package/dist/core/{p-8a66d8b0.entry.js.map → p-1bf956cb.entry.js.map} +0 -0
  318. /package/dist/core/{p-cf5f427b.entry.js.map → p-20ac0d2a.entry.js.map} +0 -0
  319. /package/dist/core/{p-e2de6dd4.entry.js.map → p-243ad74c.entry.js.map} +0 -0
  320. /package/dist/core/{p-f7b71154.entry.js.map → p-29afeb33.entry.js.map} +0 -0
  321. /package/dist/core/{p-6c7836ff.entry.js.map → p-2cc0d6b9.entry.js.map} +0 -0
  322. /package/dist/core/{p-67a75b77.entry.js.map → p-31c84a47.entry.js.map} +0 -0
  323. /package/dist/core/{p-f297c365.entry.js.map → p-36ac5305.entry.js.map} +0 -0
  324. /package/dist/core/{p-3a1a7524.entry.js.map → p-404b482e.entry.js.map} +0 -0
  325. /package/dist/core/{p-98963b03.entry.js.map → p-419d3378.entry.js.map} +0 -0
  326. /package/dist/core/{p-08ff51ff.entry.js.map → p-47038ea3.entry.js.map} +0 -0
  327. /package/dist/core/{p-8aceec77.entry.js.map → p-4e6e34fe.entry.js.map} +0 -0
  328. /package/dist/core/{p-333d1e79.entry.js.map → p-5b42dbef.entry.js.map} +0 -0
  329. /package/dist/core/{p-ac61fa48.entry.js.map → p-5be2c26a.entry.js.map} +0 -0
  330. /package/dist/core/{p-6594d2df.entry.js.map → p-5d5345a4.entry.js.map} +0 -0
  331. /package/dist/core/{p-fb7a9d6b.entry.js.map → p-5dcc0489.entry.js.map} +0 -0
  332. /package/dist/core/{p-cfcb0c5b.entry.js.map → p-5f6d6b3f.entry.js.map} +0 -0
  333. /package/dist/core/{p-28af4d8a.entry.js.map → p-5f74782e.entry.js.map} +0 -0
  334. /package/dist/core/{p-537af2dd.entry.js.map → p-6227fff5.entry.js.map} +0 -0
  335. /package/dist/core/{p-68046114.entry.js.map → p-641e244d.entry.js.map} +0 -0
  336. /package/dist/core/{p-076c3140.entry.js.map → p-6c1cf351.entry.js.map} +0 -0
  337. /package/dist/core/{p-492c7e88.entry.js.map → p-6e630778.entry.js.map} +0 -0
  338. /package/dist/core/{p-ab14882b.entry.js.map → p-7c8cd719.entry.js.map} +0 -0
  339. /package/dist/core/{p-84c28c4d.entry.js.map → p-7fa74998.entry.js.map} +0 -0
  340. /package/dist/core/{p-b468aa80.entry.js.map → p-7ff4632d.entry.js.map} +0 -0
  341. /package/dist/core/{p-a4467032.entry.js.map → p-8452846e.entry.js.map} +0 -0
  342. /package/dist/core/{p-4e9a0efe.entry.js.map → p-84c3a870.entry.js.map} +0 -0
  343. /package/dist/core/{p-92e3c5a2.entry.js.map → p-8624bb98.entry.js.map} +0 -0
  344. /package/dist/core/{p-5c5b0b12.entry.js.map → p-87aa30b4.entry.js.map} +0 -0
  345. /package/dist/core/{p-98429cbe.entry.js.map → p-8b554299.entry.js.map} +0 -0
  346. /package/dist/core/{p-7f05cc17.entry.js.map → p-9cfd6855.entry.js.map} +0 -0
  347. /package/dist/core/{p-229523bc.entry.js.map → p-abb383bd.entry.js.map} +0 -0
  348. /package/dist/core/{p-ee0d4bf4.entry.js.map → p-b9941d97.entry.js.map} +0 -0
  349. /package/dist/core/{p-d41e5b62.entry.js.map → p-c1e93306.entry.js.map} +0 -0
  350. /package/dist/core/{p-ea71e89f.entry.js.map → p-e4cb5585.entry.js.map} +0 -0
  351. /package/dist/core/{p-81e8d7c5.entry.js.map → p-f073fc69.entry.js.map} +0 -0
  352. /package/dist/core/{p-a3b00ec1.entry.js.map → p-f37c6a76.entry.js.map} +0 -0
  353. /package/dist/core/{p-f61170f3.entry.js.map → p-f7872eef.entry.js.map} +0 -0
  354. /package/dist/core/{p-88fdd912.entry.js.map → p-f9dceda0.entry.js.map} +0 -0
  355. /package/dist/core/{p-840113b1.entry.js.map → p-fac53f92.entry.js.map} +0 -0
  356. /package/dist/core/{p-434fa633.entry.js.map → p-ffc150c5.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,OAAO,EACP,KAAK,EAEL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,GACN,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C;;GAEG;AAKH,MAAM,OAAO,WAAW;;QACd,sBAAiB,GAAW,EAAE,CAAC;QAC/B,uBAAkB,GAAY,KAAK,CAAC;QAEpC,cAAS,GAAG,KAAK,CAAC;QA4JlB,gBAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC1C,MAAM,sBAAsB,GAAI,KAAK,CAAC,MAAkB,CAAC,OAAO,CAC9D,0CAA0C,CAC3C,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9C,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC;gBACzE,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC/C,MAAM,0BAA0B,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;YAEvE,IACE,IAAI,CAAC,kBAAkB,EAAE,IAAI,QAAQ,CAAC,aAAa;gBACnD,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EACvE,CAAC;gBACD,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAS,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACzC,CAAC,CAAC;sCAxLA,QAAQ;wBAKmB,KAAK;2BASJ,4CAA4C;;;;;qBAyB5C,SAAS;;wBAUsB,KAAK;iCACrC,IAAI,CAAC,QAAQ;;IA3C1C,oBAAoB;QAClB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IA4CD,oBAAoB;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAYD,oBAAoB;QAClB,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,iBAAiB;QACf,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;QAEpC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEpD,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,cAAc,CACf,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC1D,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAClC,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,sBAAsB,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAGD,2BAA2B,CAAC,KAAqC;QAC/D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,wBAAwB,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;;QACZ,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;IACrC,CAAC;IAEO,kBAAkB;QACxB,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAC3C,2BAA2B,CACF,CAAC;QAC5B,IAAI,eAAe;YAAE,eAAe,CAAC,WAAW,GAAG,KAAK,CAAC;QACzD,OAAO,eAAe,CAAC;IACzB,CAAC;IAwCD,MAAM;QACJ,MAAM,EACJ,sBAAsB,EACtB,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,GACN,GAAG,IAAI,CAAC;QAET,MAAM,EAAE,GAAG,mBAAmB,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;QAE5E,OAAO,CACL,EAAC,IAAI,IACH,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE;gBACL,CAAC,0BAA0B,CAAC,EAAE,QAAQ;gBACtC,CAAC,YAAY,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,SAAS;aAC3C;YAED,WAAK,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC;oBACE,aACE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAC/B,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAChC,OAAO,EAAE,QAAQ,EACjB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACrC,IAAI,EAAE,IAAI,GACH;oBACT,YAAM,KAAK,EAAC,WAAW,GAAQ,CAC3B;gBACN,qBAAe,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,MAAM;oBAC/C,aAAO,OAAO,EAAE,EAAE,IAAG,KAAK,CAAS,CACrB,CACZ;YAEL,kBAAkB,IAAI,CACrB,WACE,KAAK,EAAE;oBACL,mBAAmB,EAAE,IAAI;oBACzB,MAAM,EAAE,sBAAsB,KAAK,SAAS,IAAI,CAAC,QAAQ;iBAC1D;gBAEA,sBAAsB,KAAK,SAAS,IAAI,CACvC,WAAK,KAAK,EAAC,eAAe,GAAO,CAClC;gBACD;oBACG,sBAAsB,KAAK,SAAS,IAAI,CACvC,qBAAe,OAAO,EAAC,SAAS;wBAC9B,SAAG,KAAK,EAAC,cAAc,IAAE,WAAW,CAAK,CAC3B,CACjB;oBACD,WACE,KAAK,EAAE;4BACL,0BAA0B,EACxB,sBAAsB,KAAK,QAAQ;yBACtC;wBAED,YAAM,IAAI,EAAE,gBAAgB,GAAS,CACjC,CACF,CACF,CACP,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement.tabIndex = value;\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n '[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container, .dynamic-container *\"\n );\n\n if (!this.disabled && !clickedAdditionalField) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField().value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled ? true : null}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n additionalFieldDisplay === \"static\",\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement.tabIndex = value;\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled ? true : null}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n additionalFieldDisplay === \"static\",\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -579,7 +579,7 @@ input[type="search"].truncate-value {
579
579
 
580
580
  .clear-button:focus,
581
581
  .clear-button:active * {
582
- fill: white;
582
+ fill: var(--ic-atoms-input-clear-button-focus);
583
583
  }
584
584
 
585
585
  .clear-button-visible {
@@ -685,12 +685,18 @@ select:not([disabled]) {
685
685
  border-radius var(--ic-easing-transition);
686
686
  }
687
687
 
688
- .clear-button:focus {
688
+ .clear-button:focus,
689
+ .clear-button:active {
689
690
  background-color: var(--ic-color-focus-inner);
690
691
  box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);
691
692
  border-radius: 0.25rem;
692
693
  }
693
694
 
695
+ .clear-button:focus,
696
+ .clear-button:active * {
697
+ fill: var(--ic-atoms-input-clear-button-focus);
698
+ }
699
+
694
700
  .clear-button.searchable {
695
701
  position: static;
696
702
  }
@@ -490,12 +490,6 @@ input {
490
490
  flex: 1 0 100%;
491
491
  }
492
492
 
493
- .ic-switch-checked-status {
494
- padding-left: var(--ic-space-xxs);
495
- width: var(--ic-space-lg);
496
- color: var(--ic-switch-help-text);
497
- }
498
-
499
493
  .ic-switch-toggle::before {
500
494
  content: "";
501
495
  width: 1.333rem;
@@ -584,10 +578,6 @@ input {
584
578
  border: var(--ic-space-1px) dashed var(--ic-switch-unchecked-outline-disabled);
585
579
  }
586
580
 
587
- .ic-switch-input:disabled ~ .ic-switch-checked-status {
588
- color: var(--ic-architectural-300);
589
- }
590
-
591
581
  .ic-switch-input:disabled + .ic-switch-toggle::before {
592
582
  background-color: var(--ic-switch-unchecked-disabled);
593
583
  }
@@ -606,10 +596,6 @@ input {
606
596
  gap: var(--ic-space-xxxs);
607
597
  }
608
598
 
609
- .ic-switch-small .ic-switch-checked-status {
610
- padding-left: 0.375rem;
611
- }
612
-
613
599
  .ic-switch-small .ic-switch-toggle {
614
600
  width: var(--ic-space-xxl);
615
601
  height: var(--ic-space-lg);
@@ -654,10 +640,6 @@ input {
654
640
  border-color: GrayText;
655
641
  }
656
642
 
657
- .ic-switch-input:disabled ~ .ic-switch-checked-status {
658
- color: GrayText;
659
- }
660
-
661
643
  .ic-switch-disabled .ic-switch-icon-circle,
662
644
  .ic-switch-disabled .ic-switch-icon-line {
663
645
  stroke: GrayText;
@@ -2,7 +2,7 @@ import { Host, h, } from "@stencil/core";
2
2
  import { getInputDescribedByText, onComponentRequiredPropUndefined, renderHiddenInput, addFormResetListener, removeFormResetListener, removeDisabledFalse, } from "../../utils/helpers";
3
3
  let inputIds = 0;
4
4
  /**
5
- * @slot right-adornment - Content is placed to the right of switch before state label.
5
+ * @slot right-adornment - Content is placed to the right of switch.
6
6
  */
7
7
  export class Switch {
8
8
  constructor() {
@@ -31,7 +31,6 @@ export class Switch {
31
31
  this.hideLabel = false;
32
32
  this.label = undefined;
33
33
  this.name = this.inputId;
34
- this.showState = false;
35
34
  this.size = "medium";
36
35
  this.theme = "inherit";
37
36
  this.value = "on";
@@ -57,24 +56,23 @@ export class Switch {
57
56
  * Sets focus on the switch.
58
57
  */
59
58
  async setFocus() {
60
- if (this.el.shadowRoot.querySelector("input")) {
61
- this.el.shadowRoot.querySelector("input").focus();
62
- }
59
+ var _a;
60
+ (_a = this.el.shadowRoot.querySelector("input")) === null || _a === void 0 ? void 0 : _a.focus();
63
61
  }
64
62
  render() {
65
- const { label, checkedState, size, disabled, name, showState, value, hideLabel, helperText, inputId, theme, } = this;
63
+ const { label, checkedState, size, disabled, name, value, hideLabel, helperText, inputId, theme, } = this;
64
+ const isSmall = size === "small";
66
65
  renderHiddenInput(true, this.el, name, checkedState ? value : "", disabled);
67
- const describedBy = getInputDescribedByText(inputId, helperText !== "", false);
68
66
  return (h(Host, { class: {
69
67
  [`ic-theme-${theme}`]: theme !== "inherit",
70
68
  } }, h("label", { class: {
71
- ["ic-switch-container"]: true,
72
- ["ic-switch-disabled"]: disabled,
73
- ["ic-switch-small"]: size === "small",
69
+ "ic-switch-container": true,
70
+ "ic-switch-disabled": disabled,
71
+ "ic-switch-small": isSmall,
74
72
  }, htmlFor: inputId }, !hideLabel && (h("ic-input-label", { for: inputId, label: label, helperText: helperText, readonly: true, disabled: disabled, class: {
75
- ["ic-switch-label"]: true,
76
- ["ic-switch-label-small"]: size === "small",
77
- } })), !hideLabel && h("span", { class: "ic-switch-line-break" }), h("input", { checked: checkedState, disabled: disabled, "aria-label": label, "aria-checked": checkedState ? "true" : "false", "aria-describedby": describedBy, role: "switch", class: "ic-switch-input", type: "checkbox", name: "toggle", id: inputId, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.handleChange }), h("span", { class: "ic-switch-toggle" }, h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("line", { class: "ic-switch-icon-line", x1: "9", y1: size === "small" ? "2" : "1", x2: "9", y2: size === "small" ? "8" : "9" })), h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("circle", { class: "ic-switch-icon-circle", fill: "none", cx: "5", cy: "5", r: size === "small" ? "3.335" : "4.445" }))), h("slot", { name: "right-adornment" }), showState && (h("ic-typography", { "aria-hidden": "true", variant: "label", class: "ic-switch-checked-status" }, checkedState ? "On" : "Off")))));
73
+ "ic-switch-label": true,
74
+ "ic-switch-label-small": isSmall,
75
+ } })), !hideLabel && h("span", { class: "ic-switch-line-break" }), h("input", { checked: checkedState, disabled: disabled, "aria-label": label, "aria-checked": checkedState ? "true" : "false", "aria-describedby": getInputDescribedByText(inputId, helperText !== "", false), role: "switch", class: "ic-switch-input", type: "checkbox", name: "toggle", id: inputId, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.handleChange }), h("span", { class: "ic-switch-toggle" }, h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("line", { class: "ic-switch-icon-line", x1: "9", y1: isSmall ? "2" : "1", x2: "9", y2: isSmall ? "8" : "9" })), h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("circle", { class: "ic-switch-icon-circle", fill: "none", cx: "5", cy: "5", r: isSmall ? "3.335" : "4.445" }))), h("slot", { name: "right-adornment" }))));
78
76
  }
79
77
  static get is() { return "ic-switch"; }
80
78
  static get encapsulation() { return "shadow"; }
@@ -198,24 +196,6 @@ export class Switch {
198
196
  "reflect": false,
199
197
  "defaultValue": "this.inputId"
200
198
  },
201
- "showState": {
202
- "type": "boolean",
203
- "mutable": false,
204
- "complexType": {
205
- "original": "boolean",
206
- "resolved": "boolean",
207
- "references": {}
208
- },
209
- "required": false,
210
- "optional": true,
211
- "docs": {
212
- "tags": [],
213
- "text": "If `true`, the switch will render the On/Off state text."
214
- },
215
- "attribute": "show-state",
216
- "reflect": false,
217
- "defaultValue": "false"
218
- },
219
199
  "size": {
220
200
  "type": "string",
221
201
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-switch.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n\n @Watch(\"checked\")\n checkedChangeHandler(): void {\n this.checkedState = this.checked;\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The size of the switch component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n render() {\n const {\n label,\n checkedState,\n size,\n disabled,\n name,\n showState,\n value,\n hideLabel,\n helperText,\n inputId,\n theme,\n } = this;\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n );\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <label\n class={{\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: size === \"small\",\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: size === \"small\",\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={describedBy}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={size === \"small\" ? \"2\" : \"1\"}\n x2=\"9\"\n y2={size === \"small\" ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={size === \"small\" ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n {showState && (\n <ic-typography\n aria-hidden=\"true\"\n variant=\"label\"\n class=\"ic-switch-checked-status\"\n >\n {checkedState ? \"On\" : \"Off\"}\n </ic-typography>\n )}\n </label>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-switch.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n\n @Watch(\"checked\")\n checkedChangeHandler(): void {\n this.checkedState = this.checked;\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * The size of the switch component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot.querySelector(\"input\")?.focus();\n }\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n render() {\n const {\n label,\n checkedState,\n size,\n disabled,\n name,\n value,\n hideLabel,\n helperText,\n inputId,\n theme,\n } = this;\n\n const isSmall = size === \"small\";\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <label\n class={{\n \"ic-switch-container\": true,\n \"ic-switch-disabled\": disabled,\n \"ic-switch-small\": isSmall,\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n \"ic-switch-label\": true,\n \"ic-switch-label-small\": isSmall,\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n )}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={isSmall ? \"2\" : \"1\"}\n x2=\"9\"\n y2={isSmall ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={isSmall ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n </label>\n </Host>\n );\n }\n}\n"]}
@@ -32,20 +32,6 @@ describe("ic-switch component", () => {
32
32
  });
33
33
  expect(page.root).toMatchSnapshot("renders-small");
34
34
  });
35
- it("should render with state text", async () => {
36
- const page = await newSpecPage({
37
- components: [Switch],
38
- html: `<ic-switch label="Custom title" checked=true show-state></ic-switch>`,
39
- });
40
- expect(page.root).toMatchSnapshot("renders-with-state-text");
41
- });
42
- it("should render with state text and unchecked", async () => {
43
- const page = await newSpecPage({
44
- components: [Switch],
45
- html: `<ic-switch label="Custom title" checked="false" show-state="true"></ic-switch>`,
46
- });
47
- expect(page.root).toMatchSnapshot("renders-with-state-text-unchecked");
48
- });
49
35
  it("should focus", async () => {
50
36
  const page = await newSpecPage({
51
37
  components: [Switch],
@@ -1 +1 @@
1
- {"version":3,"file":"ic-switch.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-switch/test/basic/ic-switch.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Switch } from \"../../ic-switch\";\n\ndescribe(\"ic-switch component\", () => {\n it(\"should render an aria-label\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\"></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-aria\");\n });\n\n it(\"should render disabled\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" disabled=true></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-disabled\");\n\n page.rootInstance.disabled = false;\n\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(\"disabled-removed\");\n });\n\n it(\"should render checked\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-checked\");\n });\n\n it(\"should render small\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true size=\"small\"></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-small\");\n });\n\n it(\"should render with state text\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true show-state></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-state-text\");\n });\n\n it(\"should render with state text and unchecked\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=\"false\" show-state=\"true\"></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-state-text-unchecked\");\n });\n\n it(\"should focus\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icFocus\", callbackFn);\n const input = page.root.shadowRoot.querySelector(\"input\");\n input.focus();\n await page.waitForChanges();\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should blur\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icBlur\", callbackFn);\n const input = page.root.shadowRoot.querySelector(\"input\");\n input.blur();\n await page.waitForChanges();\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should toggle checkedState\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n expect(page.rootInstance.checkedState).toBe(true);\n page.rootInstance.handleChange();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(false);\n });\n\n it(\"should call 'setFocus' when switch is focused\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\"></ic-switch>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should reset to initial state on form reset\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<form><ic-switch label=\"Custom title\" checked=true></ic-switch><button id=\"resetButton\" type=\"reset\">Reset</button></form>`,\n });\n\n expect(page.rootInstance.checkedState).toBe(true);\n\n page.rootInstance.handleChange();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(false);\n\n await page.rootInstance.handleFormReset();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(true);\n\n //test disconnected callback\n page.setContent(\"\");\n });\n});\n"]}
1
+ {"version":3,"file":"ic-switch.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-switch/test/basic/ic-switch.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Switch } from \"../../ic-switch\";\n\ndescribe(\"ic-switch component\", () => {\n it(\"should render an aria-label\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\"></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-aria\");\n });\n\n it(\"should render disabled\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" disabled=true></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-disabled\");\n\n page.rootInstance.disabled = false;\n\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(\"disabled-removed\");\n });\n\n it(\"should render checked\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-checked\");\n });\n\n it(\"should render small\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true size=\"small\"></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-small\");\n });\n\n it(\"should focus\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icFocus\", callbackFn);\n const input = page.root.shadowRoot.querySelector(\"input\");\n input.focus();\n await page.waitForChanges();\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should blur\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icBlur\", callbackFn);\n const input = page.root.shadowRoot.querySelector(\"input\");\n input.blur();\n await page.waitForChanges();\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should toggle checkedState\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n expect(page.rootInstance.checkedState).toBe(true);\n page.rootInstance.handleChange();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(false);\n });\n\n it(\"should call 'setFocus' when switch is focused\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\"></ic-switch>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should reset to initial state on form reset\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<form><ic-switch label=\"Custom title\" checked=true></ic-switch><button id=\"resetButton\" type=\"reset\">Reset</button></form>`,\n });\n\n expect(page.rootInstance.checkedState).toBe(true);\n\n page.rootInstance.handleChange();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(false);\n\n await page.rootInstance.handleFormReset();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(true);\n\n //test disconnected callback\n page.setContent(\"\");\n });\n});\n"]}
@@ -780,4 +780,10 @@ video {
780
780
  :host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button) {
781
781
  background-color: GrayText;
782
782
  }
783
+
784
+ :host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),
785
+ :host(.ic-toggle-button-checked.ic-toggle-button-loading)
786
+ ::part(button):hover {
787
+ --loading-button-background: Highlight;
788
+ }
783
789
  }
@@ -71,6 +71,7 @@ export class ToggleButton {
71
71
  this.monochrome = false;
72
72
  this.size = "medium";
73
73
  this.theme = "inherit";
74
+ this.tooltipPlacement = "bottom";
74
75
  this.variant = "default";
75
76
  }
76
77
  watchDisabledHandler() {
@@ -108,7 +109,7 @@ export class ToggleButton {
108
109
  ["ic-toggle-button-loading"]: this.loading,
109
110
  ["ic-toggle-button-monochrome"]: this.monochrome,
110
111
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
111
- }, onFocus: this.handleFocus }, h("ic-button", { "aria-pressed": this.checked.toString(), variant: this.variant === "icon" ? "icon" : "secondary", onClick: this.handleClick, title: this.accessibleLabel, "aria-label": `${this.accessibleLabel ? this.accessibleLabel : this.label}, ${this.checked ? "ticked" : "unticked"}`, disabled: this.disabled, size: this.size, fullWidth: this.fullWidth, loading: this.loading }, this.variant !== "icon" && this.label, h("slot", null), isSlotUsed(this.el, "icon") && (h("slot", { name: "icon", slot: `${this.iconPlacement}-icon` })), isSlotUsed(this.el, "badge") && (h("slot", { name: "badge", slot: "badge" })))));
112
+ }, onFocus: this.handleFocus }, h("ic-button", { "aria-pressed": this.checked.toString(), variant: this.variant === "icon" ? "icon" : "secondary", onClick: this.handleClick, title: this.accessibleLabel, "aria-label": `${this.accessibleLabel ? this.accessibleLabel : this.label}, ${this.checked ? "ticked" : "unticked"}`, disabled: this.disabled, size: this.size, fullWidth: this.fullWidth, loading: this.loading, tooltipPlacement: this.tooltipPlacement }, this.variant !== "icon" && this.label, h("slot", null), isSlotUsed(this.el, "icon") && (h("slot", { name: "icon", slot: `${this.iconPlacement}-icon` })), isSlotUsed(this.el, "badge") && (h("slot", { name: "badge", slot: "badge" })))));
112
113
  }
113
114
  static get is() { return "ic-toggle-button"; }
114
115
  static get encapsulation() { return "shadow"; }
@@ -321,6 +322,30 @@ export class ToggleButton {
321
322
  "reflect": false,
322
323
  "defaultValue": "\"inherit\""
323
324
  },
325
+ "tooltipPlacement": {
326
+ "type": "string",
327
+ "mutable": false,
328
+ "complexType": {
329
+ "original": "IcButtonTooltipPlacement",
330
+ "resolved": "\"bottom\" | \"left\" | \"right\" | \"top\"",
331
+ "references": {
332
+ "IcButtonTooltipPlacement": {
333
+ "location": "import",
334
+ "path": "../../utils/types",
335
+ "id": "src/utils/types.ts::IcButtonTooltipPlacement"
336
+ }
337
+ }
338
+ },
339
+ "required": false,
340
+ "optional": false,
341
+ "docs": {
342
+ "tags": [],
343
+ "text": "The position of the tooltip in relation to the toggle button."
344
+ },
345
+ "attribute": "tooltip-placement",
346
+ "reflect": false,
347
+ "defaultValue": "\"bottom\""
348
+ },
324
349
  "variant": {
325
350
  "type": "string",
326
351
  "mutable": true,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-toggle-button.js","sourceRoot":"","sources":["../../../src/components/ic-toggle-button/ic-toggle-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n Event,\n EventEmitter,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isSlottedInGroup,\n} from \"../../utils/helpers\";\nimport {\n IcSizes,\n IcThemeMode,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be displayed alongside the toggle button label.\n * @slot badge - Badge component overlaying the top right of the toggle button.\n */\n\n@Component({\n tag: \"ic-toggle-button\",\n styleUrl: \"ic-toggle-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ToggleButton {\n @Element() el: HTMLIcToggleButtonElement;\n\n /**\n * The accessible label that will be applied to the toggle button. This is required for the icon variant of toggle buttons.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * If `true`, the toggle button will be in a checked state.\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * If `true`, the toggle button will be in disabled state.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button will fill the width of the container.\n */\n @Prop({ mutable: true }) fullWidth?: boolean = false;\n\n /**\n * The placement of the icon in relation to the toggle button label.\n */\n @Prop() iconPlacement?: IcIconPlacementOptions = \"left\";\n\n /**\n * The label to display in the toggle button. This is required for the default variant of toggle buttons.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the toggle button will be in loading state.\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n /**\n * If `true`, the toggle button will display as black in the light theme, and white in dark theme.\n */\n @Prop({ mutable: true }) monochrome?: boolean = false;\n\n /**\n * The size of the toggle button to be displayed.\n */\n @Prop({ mutable: true }) size?: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme?: IcThemeMode = \"inherit\";\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true, mutable: true }) variant: \"default\" | \"icon\" =\n \"default\";\n\n /**\n * Emitted when the user clicks a toggle button.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (isSlottedInGroup(this.el)) {\n this.loopAttributes();\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n {\n prop: this.variant === \"icon\" ? this.accessibleLabel : this.label,\n propName: this.variant === \"icon\" ? \"accessible-label\" : \"label\",\n },\n ],\n \"Toggle button\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n } else if (!this.loading) {\n this.checked = !this.checked;\n }\n }\n\n private loopAttributes = () => {\n const trackedAttributes: string[] = [\n \"loading\",\n \"disabled\",\n \"full-width\",\n \"icon-placement\",\n \"variant\",\n \"size\",\n \"theme\",\n \"monochrome\",\n ];\n const parentAttributes = this.el.parentElement.attributes;\n for (let i = 0; i < trackedAttributes.length; i++) {\n if (parentAttributes.getNamedItem(trackedAttributes[i]) !== null) {\n const attribute = parentAttributes.getNamedItem(trackedAttributes[i]);\n switch (attribute.name) {\n case trackedAttributes[0]:\n this.loading = attribute.value !== \"false\";\n break;\n case trackedAttributes[1]:\n console.log(attribute.value);\n this.disabled = attribute.value !== \"false\";\n break;\n case trackedAttributes[2]:\n this.fullWidth = attribute.value !== \"false\";\n break;\n case trackedAttributes[3]:\n this.iconPlacement = attribute.value as \"left\" | \"right\" | \"top\";\n break;\n case trackedAttributes[4]:\n this.variant = attribute.value as \"default\" | \"icon\";\n break;\n case trackedAttributes[5]:\n this.size = attribute.value as IcSizes;\n break;\n case trackedAttributes[6]:\n this.theme = attribute.value as IcThemeMode;\n break;\n case trackedAttributes[7]:\n this.monochrome = attribute.value !== \"false\";\n break;\n }\n }\n }\n };\n\n private handleFocus = (ev: FocusEvent) => {\n ev.stopImmediatePropagation();\n };\n\n private handleClick = (): void => {\n !this.loading &&\n !this.disabled &&\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n };\n\n render() {\n return (\n <Host\n class={{\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n [\"ic-toggle-button-disabled\"]: this.disabled,\n [\"ic-toggle-button-checked\"]: this.checked,\n [\"ic-toggle-button-icon\"]: this.variant === \"icon\",\n [`ic-toggle-button-${this.size}`]: true,\n [\"ic-toggle-button-loading\"]: this.loading,\n [\"ic-toggle-button-monochrome\"]: this.monochrome,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n onFocus={this.handleFocus}\n >\n <ic-button\n aria-pressed={this.checked.toString()}\n variant={this.variant === \"icon\" ? \"icon\" : \"secondary\"}\n onClick={this.handleClick}\n title={this.accessibleLabel}\n aria-label={`${\n this.accessibleLabel ? this.accessibleLabel : this.label\n }, ${this.checked ? \"ticked\" : \"unticked\"}`}\n disabled={this.disabled}\n size={this.size}\n fullWidth={this.fullWidth}\n loading={this.loading}\n >\n {this.variant !== \"icon\" && this.label}\n <slot />\n {isSlotUsed(this.el, \"icon\") && (\n <slot name=\"icon\" slot={`${this.iconPlacement}-icon`}></slot>\n )}\n {isSlotUsed(this.el, \"badge\") && (\n <slot name=\"badge\" slot=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-toggle-button.js","sourceRoot":"","sources":["../../../src/components/ic-toggle-button/ic-toggle-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n Event,\n EventEmitter,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isSlottedInGroup,\n} from \"../../utils/helpers\";\nimport {\n IcSizes,\n IcThemeMode,\n IcIconPlacementOptions,\n IcButtonTooltipPlacement,\n} from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be displayed alongside the toggle button label.\n * @slot badge - Badge component overlaying the top right of the toggle button.\n */\n\n@Component({\n tag: \"ic-toggle-button\",\n styleUrl: \"ic-toggle-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ToggleButton {\n @Element() el: HTMLIcToggleButtonElement;\n\n /**\n * The accessible label that will be applied to the toggle button. This is required for the icon variant of toggle buttons.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * If `true`, the toggle button will be in a checked state.\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * If `true`, the toggle button will be in disabled state.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button will fill the width of the container.\n */\n @Prop({ mutable: true }) fullWidth?: boolean = false;\n\n /**\n * The placement of the icon in relation to the toggle button label.\n */\n @Prop() iconPlacement?: IcIconPlacementOptions = \"left\";\n\n /**\n * The label to display in the toggle button. This is required for the default variant of toggle buttons.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the toggle button will be in loading state.\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n /**\n * If `true`, the toggle button will display as black in the light theme, and white in dark theme.\n */\n @Prop({ mutable: true }) monochrome?: boolean = false;\n\n /**\n * The size of the toggle button to be displayed.\n */\n @Prop({ mutable: true }) size?: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme?: IcThemeMode = \"inherit\";\n\n /**\n * The position of the tooltip in relation to the toggle button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true, mutable: true }) variant: \"default\" | \"icon\" =\n \"default\";\n\n /**\n * Emitted when the user clicks a toggle button.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (isSlottedInGroup(this.el)) {\n this.loopAttributes();\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n {\n prop: this.variant === \"icon\" ? this.accessibleLabel : this.label,\n propName: this.variant === \"icon\" ? \"accessible-label\" : \"label\",\n },\n ],\n \"Toggle button\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n } else if (!this.loading) {\n this.checked = !this.checked;\n }\n }\n\n private loopAttributes = () => {\n const trackedAttributes: string[] = [\n \"loading\",\n \"disabled\",\n \"full-width\",\n \"icon-placement\",\n \"variant\",\n \"size\",\n \"theme\",\n \"monochrome\",\n ];\n const parentAttributes = this.el.parentElement.attributes;\n for (let i = 0; i < trackedAttributes.length; i++) {\n if (parentAttributes.getNamedItem(trackedAttributes[i]) !== null) {\n const attribute = parentAttributes.getNamedItem(trackedAttributes[i]);\n switch (attribute.name) {\n case trackedAttributes[0]:\n this.loading = attribute.value !== \"false\";\n break;\n case trackedAttributes[1]:\n console.log(attribute.value);\n this.disabled = attribute.value !== \"false\";\n break;\n case trackedAttributes[2]:\n this.fullWidth = attribute.value !== \"false\";\n break;\n case trackedAttributes[3]:\n this.iconPlacement = attribute.value as \"left\" | \"right\" | \"top\";\n break;\n case trackedAttributes[4]:\n this.variant = attribute.value as \"default\" | \"icon\";\n break;\n case trackedAttributes[5]:\n this.size = attribute.value as IcSizes;\n break;\n case trackedAttributes[6]:\n this.theme = attribute.value as IcThemeMode;\n break;\n case trackedAttributes[7]:\n this.monochrome = attribute.value !== \"false\";\n break;\n }\n }\n }\n };\n\n private handleFocus = (ev: FocusEvent) => {\n ev.stopImmediatePropagation();\n };\n\n private handleClick = (): void => {\n !this.loading &&\n !this.disabled &&\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n };\n\n render() {\n return (\n <Host\n class={{\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n [\"ic-toggle-button-disabled\"]: this.disabled,\n [\"ic-toggle-button-checked\"]: this.checked,\n [\"ic-toggle-button-icon\"]: this.variant === \"icon\",\n [`ic-toggle-button-${this.size}`]: true,\n [\"ic-toggle-button-loading\"]: this.loading,\n [\"ic-toggle-button-monochrome\"]: this.monochrome,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n onFocus={this.handleFocus}\n >\n <ic-button\n aria-pressed={this.checked.toString()}\n variant={this.variant === \"icon\" ? \"icon\" : \"secondary\"}\n onClick={this.handleClick}\n title={this.accessibleLabel}\n aria-label={`${\n this.accessibleLabel ? this.accessibleLabel : this.label\n }, ${this.checked ? \"ticked\" : \"unticked\"}`}\n disabled={this.disabled}\n size={this.size}\n fullWidth={this.fullWidth}\n loading={this.loading}\n tooltipPlacement={this.tooltipPlacement}\n >\n {this.variant !== \"icon\" && this.label}\n <slot />\n {isSlotUsed(this.el, \"icon\") && (\n <slot name=\"icon\" slot={`${this.iconPlacement}-icon`}></slot>\n )}\n {isSlotUsed(this.el, \"badge\") && (\n <slot name=\"badge\" slot=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
@@ -92,6 +92,7 @@ export class ToggleButtonGroup {
92
92
  this.selectType = "single";
93
93
  this.size = "medium";
94
94
  this.theme = "inherit";
95
+ this.tooltipPlacement = "bottom";
95
96
  this.variant = "default";
96
97
  }
97
98
  watchDisabledHandler() {
@@ -125,6 +126,11 @@ export class ToggleButtonGroup {
125
126
  el.theme = this.theme;
126
127
  });
127
128
  }
129
+ watchTooltipPlacementHandler() {
130
+ this.getAllToggleButtons().forEach((el) => {
131
+ el.tooltipPlacement = this.tooltipPlacement;
132
+ });
133
+ }
128
134
  watchVariantHandler() {
129
135
  this.getAllToggleButtons().forEach((el) => {
130
136
  el.variant = this.variant;
@@ -420,6 +426,30 @@ export class ToggleButtonGroup {
420
426
  "reflect": false,
421
427
  "defaultValue": "\"inherit\""
422
428
  },
429
+ "tooltipPlacement": {
430
+ "type": "string",
431
+ "mutable": false,
432
+ "complexType": {
433
+ "original": "IcButtonTooltipPlacement",
434
+ "resolved": "\"bottom\" | \"left\" | \"right\" | \"top\"",
435
+ "references": {
436
+ "IcButtonTooltipPlacement": {
437
+ "location": "import",
438
+ "path": "../../utils/types",
439
+ "id": "src/utils/types.ts::IcButtonTooltipPlacement"
440
+ }
441
+ }
442
+ },
443
+ "required": false,
444
+ "optional": false,
445
+ "docs": {
446
+ "tags": [],
447
+ "text": "The position of the tooltip in relation to the toggle buttons."
448
+ },
449
+ "attribute": "tooltip-placement",
450
+ "reflect": false,
451
+ "defaultValue": "\"bottom\""
452
+ },
423
453
  "variant": {
424
454
  "type": "string",
425
455
  "mutable": false,
@@ -489,6 +519,9 @@ export class ToggleButtonGroup {
489
519
  }, {
490
520
  "propName": "theme",
491
521
  "methodName": "watchThemeHandler"
522
+ }, {
523
+ "propName": "tooltipPlacement",
524
+ "methodName": "watchTooltipPlacementHandler"
492
525
  }, {
493
526
  "propName": "variant",
494
527
  "methodName": "watchVariantHandler"