@ukic/canary-web-components 2.0.0-canary.30 → 2.0.0-canary.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (436) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-1a85e860.js → helpers-52ab3835.js} +11 -9
  3. package/dist/cjs/helpers-52ab3835.js.map +1 -0
  4. package/dist/cjs/{helpers-093368be.js → helpers-aa5ff032.js} +5 -1
  5. package/dist/cjs/helpers-aa5ff032.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +8 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-card-horizontal.cjs.entry.js +8 -2
  16. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-card.cjs.entry.js +7 -1
  18. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -1
  22. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-chip.cjs.entry.js +9 -4
  24. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-data-table.cjs.entry.js +78 -64
  28. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-date-input.cjs.entry.js +6 -1
  30. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-date-picker.cjs.entry.js +6 -1
  32. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-empty-state_2.cjs.entry.js +6 -3
  36. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +11 -2
  43. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-menu-item.cjs.entry.js +7 -1
  47. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-menu.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-pagination_4.cjs.entry.js +30 -10
  56. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-radio-group.cjs.entry.js +2 -1
  59. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -1
  61. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-search-bar.cjs.entry.js +5 -1
  63. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-select-with-multi.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-side-navigation.cjs.entry.js +13 -9
  66. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-switch.cjs.entry.js +6 -2
  71. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-tab.cjs.entry.js +5 -2
  74. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +9 -0
  78. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-toggle-button.cjs.entry.js +7 -1
  80. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-tree-item.cjs.entry.js +13 -4
  83. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-tree-view.cjs.entry.js +16 -4
  85. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  87. package/dist/cjs/loader.cjs.js +1 -1
  88. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +4 -1
  89. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +9 -0
  90. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
  91. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +10 -0
  92. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -1
  93. package/dist/collection/components/ic-data-table/ic-data-table.css +10 -0
  94. package/dist/collection/components/ic-data-table/ic-data-table.js +77 -63
  95. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  96. package/dist/collection/components/ic-data-table/story-data.js +86 -2
  97. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  98. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +38 -0
  99. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  100. package/dist/collection/components/ic-date-input/ic-date-input.js +8 -1
  101. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  102. package/dist/collection/components/ic-date-picker/ic-date-picker.js +8 -1
  103. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  104. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +1 -1
  105. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -1
  106. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +4 -1
  107. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  108. package/dist/collection/components/ic-tree-item/ic-tree-item.css +20 -3
  109. package/dist/collection/components/ic-tree-item/ic-tree-item.js +31 -3
  110. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  111. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +3 -0
  112. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -1
  113. package/dist/collection/components/ic-tree-view/ic-tree-view.css +16 -2
  114. package/dist/collection/components/ic-tree-view/ic-tree-view.js +51 -1
  115. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  116. package/dist/collection/utils/helpers.js +10 -8
  117. package/dist/collection/utils/helpers.js.map +1 -1
  118. package/dist/components/helpers.js +5 -1
  119. package/dist/components/helpers.js.map +1 -1
  120. package/dist/components/helpers2.js +10 -8
  121. package/dist/components/helpers2.js.map +1 -1
  122. package/dist/components/ic-accordion.js +9 -1
  123. package/dist/components/ic-accordion.js.map +1 -1
  124. package/dist/components/ic-card-horizontal.js +10 -2
  125. package/dist/components/ic-card-horizontal.js.map +1 -1
  126. package/dist/components/ic-card.js +9 -1
  127. package/dist/components/ic-card.js.map +1 -1
  128. package/dist/components/ic-checkbox-group.js +5 -0
  129. package/dist/components/ic-checkbox-group.js.map +1 -1
  130. package/dist/components/ic-checkbox.js +5 -0
  131. package/dist/components/ic-checkbox.js.map +1 -1
  132. package/dist/components/ic-chip.js +11 -4
  133. package/dist/components/ic-chip.js.map +1 -1
  134. package/dist/components/ic-data-table.js +77 -63
  135. package/dist/components/ic-data-table.js.map +1 -1
  136. package/dist/components/ic-date-input2.js +7 -1
  137. package/dist/components/ic-date-input2.js.map +1 -1
  138. package/dist/components/ic-date-picker.js +7 -1
  139. package/dist/components/ic-date-picker.js.map +1 -1
  140. package/dist/components/ic-input-component-container2.js +13 -2
  141. package/dist/components/ic-input-component-container2.js.map +1 -1
  142. package/dist/components/ic-menu-item2.js +9 -1
  143. package/dist/components/ic-menu-item2.js.map +1 -1
  144. package/dist/components/ic-pagination-bar2.js +4 -1
  145. package/dist/components/ic-pagination-bar2.js.map +1 -1
  146. package/dist/components/ic-pagination-item2.js +6 -1
  147. package/dist/components/ic-pagination-item2.js.map +1 -1
  148. package/dist/components/ic-pagination2.js +5 -0
  149. package/dist/components/ic-pagination2.js.map +1 -1
  150. package/dist/components/ic-radio-group.js +1 -0
  151. package/dist/components/ic-radio-group.js.map +1 -1
  152. package/dist/components/ic-radio-option.js +6 -1
  153. package/dist/components/ic-radio-option.js.map +1 -1
  154. package/dist/components/ic-search-bar.js +6 -1
  155. package/dist/components/ic-search-bar.js.map +1 -1
  156. package/dist/components/ic-select2.js +6 -1
  157. package/dist/components/ic-select2.js.map +1 -1
  158. package/dist/components/ic-side-navigation.js +13 -9
  159. package/dist/components/ic-side-navigation.js.map +1 -1
  160. package/dist/components/ic-switch.js +8 -3
  161. package/dist/components/ic-switch.js.map +1 -1
  162. package/dist/components/ic-tab.js +5 -2
  163. package/dist/components/ic-tab.js.map +1 -1
  164. package/dist/components/ic-text-field2.js +19 -10
  165. package/dist/components/ic-text-field2.js.map +1 -1
  166. package/dist/components/ic-toggle-button-group.js +11 -1
  167. package/dist/components/ic-toggle-button-group.js.map +1 -1
  168. package/dist/components/ic-toggle-button.js +9 -1
  169. package/dist/components/ic-toggle-button.js.map +1 -1
  170. package/dist/components/ic-top-navigation.js +1 -1
  171. package/dist/components/ic-tree-item.js +15 -4
  172. package/dist/components/ic-tree-item.js.map +1 -1
  173. package/dist/components/ic-tree-view.js +19 -4
  174. package/dist/components/ic-tree-view.js.map +1 -1
  175. package/dist/core/core.esm.js +1 -1
  176. package/dist/core/core.esm.js.map +1 -1
  177. package/dist/core/{p-e210f51a.entry.js → p-05c9dee1.entry.js} +2 -2
  178. package/dist/core/p-05c9dee1.entry.js.map +1 -0
  179. package/dist/core/p-0695b4b7.entry.js +2 -0
  180. package/dist/core/p-0695b4b7.entry.js.map +1 -0
  181. package/dist/core/p-09d4fe07.entry.js +2 -0
  182. package/dist/core/p-09d4fe07.entry.js.map +1 -0
  183. package/dist/core/{p-0180e00a.entry.js → p-0bc92c30.entry.js} +2 -2
  184. package/dist/core/{p-924548ec.entry.js → p-120a38ce.entry.js} +2 -2
  185. package/dist/core/{p-2d063032.entry.js → p-1419c8ae.entry.js} +2 -2
  186. package/dist/core/{p-ca8ddad0.entry.js → p-1619b3d7.entry.js} +2 -2
  187. package/dist/core/{p-438abe40.entry.js → p-19a9ab60.entry.js} +2 -2
  188. package/dist/core/p-19a9ab60.entry.js.map +1 -0
  189. package/dist/core/{p-41916ef7.entry.js → p-1a5c1bfa.entry.js} +2 -2
  190. package/dist/core/{p-418a84d4.entry.js → p-1b5a47c6.entry.js} +2 -2
  191. package/dist/core/p-1eb5d7f3.entry.js +2 -0
  192. package/dist/core/p-1eb5d7f3.entry.js.map +1 -0
  193. package/dist/core/{p-cb3afdbf.entry.js → p-1ef02273.entry.js} +2 -2
  194. package/dist/core/p-20075bc7.entry.js +2 -0
  195. package/dist/core/p-20075bc7.entry.js.map +1 -0
  196. package/dist/core/p-2308d041.entry.js +2 -0
  197. package/dist/core/p-2308d041.entry.js.map +1 -0
  198. package/dist/core/{p-d56593cc.entry.js → p-23f32e1e.entry.js} +2 -2
  199. package/dist/core/{p-8128572e.js → p-3a3a8a71.js} +2 -2
  200. package/dist/core/{p-8128572e.js.map → p-3a3a8a71.js.map} +1 -1
  201. package/dist/core/{p-0a01a7ae.entry.js → p-40471551.entry.js} +2 -2
  202. package/dist/core/{p-5eeea55e.entry.js → p-43f87eb3.entry.js} +2 -2
  203. package/dist/core/p-43f87eb3.entry.js.map +1 -0
  204. package/dist/core/{p-2f7e6e38.entry.js → p-456282e2.entry.js} +2 -2
  205. package/dist/core/{p-74abc3bb.entry.js → p-48b62c20.entry.js} +2 -2
  206. package/dist/core/{p-486a6957.entry.js → p-5041cbeb.entry.js} +2 -2
  207. package/dist/core/{p-21d0dea6.entry.js → p-516de675.entry.js} +2 -2
  208. package/dist/core/{p-648fb902.entry.js → p-522b1526.entry.js} +2 -2
  209. package/dist/core/{p-f6a93c4d.entry.js → p-56e19b01.entry.js} +2 -2
  210. package/dist/core/{p-6fb3d61e.entry.js → p-59e677e4.entry.js} +2 -2
  211. package/dist/core/{p-de630a67.entry.js → p-5dc274f0.entry.js} +2 -2
  212. package/dist/core/{p-1a317582.entry.js → p-67b25dfc.entry.js} +2 -2
  213. package/dist/core/p-67b25dfc.entry.js.map +1 -0
  214. package/dist/core/{p-f4e57aaf.entry.js → p-6bd76154.entry.js} +2 -2
  215. package/dist/core/{p-9b70d4f8.entry.js → p-73dab780.entry.js} +2 -2
  216. package/dist/core/{p-8d276e8f.entry.js → p-77637e28.entry.js} +2 -2
  217. package/dist/core/p-782cd387.entry.js +2 -0
  218. package/dist/core/p-782cd387.entry.js.map +1 -0
  219. package/dist/core/p-7e20c194.entry.js +2 -0
  220. package/dist/core/p-7e20c194.entry.js.map +1 -0
  221. package/dist/core/{p-77696f7d.entry.js → p-85101c9a.entry.js} +2 -2
  222. package/dist/core/p-85101c9a.entry.js.map +1 -0
  223. package/dist/core/{p-f10f7f37.entry.js → p-89290d94.entry.js} +2 -2
  224. package/dist/core/p-89290d94.entry.js.map +1 -0
  225. package/dist/core/{p-521abb6e.entry.js → p-895d05f9.entry.js} +2 -2
  226. package/dist/core/p-895d05f9.entry.js.map +1 -0
  227. package/dist/core/{p-969cadfa.entry.js → p-89ec372e.entry.js} +2 -2
  228. package/dist/core/p-89ec372e.entry.js.map +1 -0
  229. package/dist/core/{p-b53455c3.entry.js → p-9271a06b.entry.js} +2 -2
  230. package/dist/core/{p-673a4a62.entry.js → p-9445c2f3.entry.js} +2 -2
  231. package/dist/core/p-94e47a21.entry.js +2 -0
  232. package/dist/core/p-94e47a21.entry.js.map +1 -0
  233. package/dist/core/{p-0fc36045.entry.js → p-952bdeb2.entry.js} +2 -2
  234. package/dist/core/p-95c8513d.entry.js +2 -0
  235. package/dist/core/p-95c8513d.entry.js.map +1 -0
  236. package/dist/core/{p-a7331e7c.entry.js → p-96a909bf.entry.js} +2 -2
  237. package/dist/core/{p-e35d6d78.entry.js → p-9922cd00.entry.js} +2 -2
  238. package/dist/core/{p-9e5c8813.entry.js → p-9b85340f.entry.js} +2 -2
  239. package/dist/core/p-9b85340f.entry.js.map +1 -0
  240. package/dist/core/{p-99185fd5.entry.js → p-9ce35989.entry.js} +2 -2
  241. package/dist/core/p-9ce35989.entry.js.map +1 -0
  242. package/dist/core/p-a44c0351.entry.js +2 -0
  243. package/dist/core/p-a44c0351.entry.js.map +1 -0
  244. package/dist/core/p-a7f4168c.entry.js +2 -0
  245. package/dist/core/{p-ccf72538.entry.js → p-ab485b11.entry.js} +2 -2
  246. package/dist/core/{p-097bfd3f.entry.js → p-ad1e70c9.entry.js} +2 -2
  247. package/dist/core/{p-3a59391f.entry.js → p-ad786103.entry.js} +2 -2
  248. package/dist/core/p-af3d4eba.entry.js +2 -0
  249. package/dist/core/p-af3d4eba.entry.js.map +1 -0
  250. package/dist/core/p-b9d9273f.js +2 -0
  251. package/dist/core/p-b9d9273f.js.map +1 -0
  252. package/dist/core/{p-789ae7f5.entry.js → p-c32f4c0f.entry.js} +2 -2
  253. package/dist/core/{p-16a48a63.entry.js → p-cc99e774.entry.js} +2 -2
  254. package/dist/core/p-ce2162a2.entry.js +2 -0
  255. package/dist/core/{p-a72af8db.entry.js.map → p-ce2162a2.entry.js.map} +1 -1
  256. package/dist/core/{p-c8141cac.entry.js → p-ce90d1b2.entry.js} +2 -2
  257. package/dist/core/p-cf3f9b02.entry.js +2 -0
  258. package/dist/core/p-cf3f9b02.entry.js.map +1 -0
  259. package/dist/core/{p-5348af01.entry.js → p-d0d2952b.entry.js} +2 -2
  260. package/dist/core/{p-4fd35690.entry.js → p-d61ef782.entry.js} +2 -2
  261. package/dist/core/p-d61ef782.entry.js.map +1 -0
  262. package/dist/core/{p-6398a726.entry.js → p-f0e85611.entry.js} +2 -2
  263. package/dist/esm/core.js +1 -1
  264. package/dist/esm/{helpers-e0c3e667.js → helpers-147b5b73.js} +11 -9
  265. package/dist/esm/helpers-147b5b73.js.map +1 -0
  266. package/dist/esm/{helpers-886489d5.js → helpers-25eb1cb0.js} +6 -2
  267. package/dist/esm/helpers-25eb1cb0.js.map +1 -0
  268. package/dist/esm/ic-accordion-group.entry.js +1 -1
  269. package/dist/esm/ic-accordion.entry.js +8 -1
  270. package/dist/esm/ic-accordion.entry.js.map +1 -1
  271. package/dist/esm/ic-alert.entry.js +1 -1
  272. package/dist/esm/ic-back-to-top.entry.js +1 -1
  273. package/dist/esm/ic-badge.entry.js +1 -1
  274. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  275. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  276. package/dist/esm/ic-button_3.entry.js +1 -1
  277. package/dist/esm/ic-card-horizontal.entry.js +8 -2
  278. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  279. package/dist/esm/ic-card.entry.js +7 -1
  280. package/dist/esm/ic-card.entry.js.map +1 -1
  281. package/dist/esm/ic-checkbox-group.entry.js +5 -1
  282. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  283. package/dist/esm/ic-checkbox.entry.js +5 -1
  284. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  285. package/dist/esm/ic-chip.entry.js +9 -4
  286. package/dist/esm/ic-chip.entry.js.map +1 -1
  287. package/dist/esm/ic-data-row.entry.js +1 -1
  288. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  289. package/dist/esm/ic-data-table.entry.js +78 -64
  290. package/dist/esm/ic-data-table.entry.js.map +1 -1
  291. package/dist/esm/ic-date-input.entry.js +6 -1
  292. package/dist/esm/ic-date-input.entry.js.map +1 -1
  293. package/dist/esm/ic-date-picker.entry.js +6 -1
  294. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  295. package/dist/esm/ic-dialog.entry.js +1 -1
  296. package/dist/esm/ic-divider.entry.js +1 -1
  297. package/dist/esm/ic-empty-state_2.entry.js +6 -3
  298. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  299. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  300. package/dist/esm/ic-footer-link.entry.js +1 -1
  301. package/dist/esm/ic-footer.entry.js +1 -1
  302. package/dist/esm/ic-hero.entry.js +1 -1
  303. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  304. package/dist/esm/ic-input-component-container_4.entry.js +11 -2
  305. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  306. package/dist/esm/ic-link.entry.js +1 -1
  307. package/dist/esm/ic-menu-group.entry.js +1 -1
  308. package/dist/esm/ic-menu-item.entry.js +7 -1
  309. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  310. package/dist/esm/ic-menu-with-multi.entry.js +1 -1
  311. package/dist/esm/ic-menu.entry.js +1 -1
  312. package/dist/esm/ic-navigation-button.entry.js +1 -1
  313. package/dist/esm/ic-navigation-group.entry.js +1 -1
  314. package/dist/esm/ic-navigation-item.entry.js +1 -1
  315. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  316. package/dist/esm/ic-page-header.entry.js +1 -1
  317. package/dist/esm/ic-pagination_4.entry.js +30 -10
  318. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  319. package/dist/esm/ic-popover-menu.entry.js +1 -1
  320. package/dist/esm/ic-radio-group.entry.js +2 -1
  321. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  322. package/dist/esm/ic-radio-option.entry.js +5 -1
  323. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  324. package/dist/esm/ic-search-bar.entry.js +5 -1
  325. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  326. package/dist/esm/ic-select-with-multi.entry.js +1 -1
  327. package/dist/esm/ic-side-navigation.entry.js +13 -9
  328. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  329. package/dist/esm/ic-status-tag.entry.js +1 -1
  330. package/dist/esm/ic-step.entry.js +1 -1
  331. package/dist/esm/ic-stepper.entry.js +1 -1
  332. package/dist/esm/ic-switch.entry.js +6 -2
  333. package/dist/esm/ic-switch.entry.js.map +1 -1
  334. package/dist/esm/ic-tab-group.entry.js +1 -1
  335. package/dist/esm/ic-tab.entry.js +5 -2
  336. package/dist/esm/ic-tab.entry.js.map +1 -1
  337. package/dist/esm/ic-theme.entry.js +1 -1
  338. package/dist/esm/ic-toast.entry.js +1 -1
  339. package/dist/esm/ic-toggle-button-group.entry.js +9 -0
  340. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  341. package/dist/esm/ic-toggle-button.entry.js +7 -1
  342. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  343. package/dist/esm/ic-top-navigation.entry.js +1 -1
  344. package/dist/esm/ic-tree-item.entry.js +13 -4
  345. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  346. package/dist/esm/ic-tree-view.entry.js +16 -4
  347. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  348. package/dist/esm/ic-typography.entry.js +1 -1
  349. package/dist/esm/loader.js +1 -1
  350. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +1 -0
  351. package/dist/types/components/ic-data-table/ic-data-table.d.ts +3 -1
  352. package/dist/types/components/ic-data-table/story-data.d.ts +78 -0
  353. package/dist/types/components/ic-date-input/ic-date-input.d.ts +1 -0
  354. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +1 -0
  355. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +6 -0
  356. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +9 -0
  357. package/dist/types/components.d.ts +25 -1
  358. package/hydrate/index.js +261 -103
  359. package/package.json +3 -10
  360. package/dist/cjs/helpers-093368be.js.map +0 -1
  361. package/dist/cjs/helpers-1a85e860.js.map +0 -1
  362. package/dist/core/p-01bc462e.entry.js +0 -2
  363. package/dist/core/p-01bc462e.entry.js.map +0 -1
  364. package/dist/core/p-09746a07.entry.js +0 -2
  365. package/dist/core/p-09746a07.entry.js.map +0 -1
  366. package/dist/core/p-1a317582.entry.js.map +0 -1
  367. package/dist/core/p-2ecedbe5.entry.js +0 -2
  368. package/dist/core/p-2ecedbe5.entry.js.map +0 -1
  369. package/dist/core/p-383ba7e8.entry.js +0 -2
  370. package/dist/core/p-383ba7e8.entry.js.map +0 -1
  371. package/dist/core/p-40510c97.js +0 -2
  372. package/dist/core/p-40510c97.js.map +0 -1
  373. package/dist/core/p-4352b9c5.entry.js +0 -2
  374. package/dist/core/p-4352b9c5.entry.js.map +0 -1
  375. package/dist/core/p-438abe40.entry.js.map +0 -1
  376. package/dist/core/p-43a2cad3.entry.js +0 -2
  377. package/dist/core/p-43a2cad3.entry.js.map +0 -1
  378. package/dist/core/p-4fd35690.entry.js.map +0 -1
  379. package/dist/core/p-521abb6e.entry.js.map +0 -1
  380. package/dist/core/p-5334bc96.entry.js +0 -2
  381. package/dist/core/p-5334bc96.entry.js.map +0 -1
  382. package/dist/core/p-5eeea55e.entry.js.map +0 -1
  383. package/dist/core/p-67ae9d37.entry.js +0 -2
  384. package/dist/core/p-77696f7d.entry.js.map +0 -1
  385. package/dist/core/p-7e5da5eb.entry.js +0 -2
  386. package/dist/core/p-7e5da5eb.entry.js.map +0 -1
  387. package/dist/core/p-810561ab.entry.js +0 -2
  388. package/dist/core/p-810561ab.entry.js.map +0 -1
  389. package/dist/core/p-969cadfa.entry.js.map +0 -1
  390. package/dist/core/p-97f141a6.entry.js +0 -2
  391. package/dist/core/p-97f141a6.entry.js.map +0 -1
  392. package/dist/core/p-99185fd5.entry.js.map +0 -1
  393. package/dist/core/p-9e5c8813.entry.js.map +0 -1
  394. package/dist/core/p-a72af8db.entry.js +0 -2
  395. package/dist/core/p-c9edf975.entry.js +0 -2
  396. package/dist/core/p-c9edf975.entry.js.map +0 -1
  397. package/dist/core/p-cf4572c9.entry.js +0 -2
  398. package/dist/core/p-cf4572c9.entry.js.map +0 -1
  399. package/dist/core/p-e210f51a.entry.js.map +0 -1
  400. package/dist/core/p-f10f7f37.entry.js.map +0 -1
  401. package/dist/esm/helpers-886489d5.js.map +0 -1
  402. package/dist/esm/helpers-e0c3e667.js.map +0 -1
  403. /package/dist/core/{p-0180e00a.entry.js.map → p-0bc92c30.entry.js.map} +0 -0
  404. /package/dist/core/{p-924548ec.entry.js.map → p-120a38ce.entry.js.map} +0 -0
  405. /package/dist/core/{p-2d063032.entry.js.map → p-1419c8ae.entry.js.map} +0 -0
  406. /package/dist/core/{p-ca8ddad0.entry.js.map → p-1619b3d7.entry.js.map} +0 -0
  407. /package/dist/core/{p-41916ef7.entry.js.map → p-1a5c1bfa.entry.js.map} +0 -0
  408. /package/dist/core/{p-418a84d4.entry.js.map → p-1b5a47c6.entry.js.map} +0 -0
  409. /package/dist/core/{p-cb3afdbf.entry.js.map → p-1ef02273.entry.js.map} +0 -0
  410. /package/dist/core/{p-d56593cc.entry.js.map → p-23f32e1e.entry.js.map} +0 -0
  411. /package/dist/core/{p-0a01a7ae.entry.js.map → p-40471551.entry.js.map} +0 -0
  412. /package/dist/core/{p-2f7e6e38.entry.js.map → p-456282e2.entry.js.map} +0 -0
  413. /package/dist/core/{p-74abc3bb.entry.js.map → p-48b62c20.entry.js.map} +0 -0
  414. /package/dist/core/{p-486a6957.entry.js.map → p-5041cbeb.entry.js.map} +0 -0
  415. /package/dist/core/{p-21d0dea6.entry.js.map → p-516de675.entry.js.map} +0 -0
  416. /package/dist/core/{p-648fb902.entry.js.map → p-522b1526.entry.js.map} +0 -0
  417. /package/dist/core/{p-f6a93c4d.entry.js.map → p-56e19b01.entry.js.map} +0 -0
  418. /package/dist/core/{p-6fb3d61e.entry.js.map → p-59e677e4.entry.js.map} +0 -0
  419. /package/dist/core/{p-de630a67.entry.js.map → p-5dc274f0.entry.js.map} +0 -0
  420. /package/dist/core/{p-f4e57aaf.entry.js.map → p-6bd76154.entry.js.map} +0 -0
  421. /package/dist/core/{p-9b70d4f8.entry.js.map → p-73dab780.entry.js.map} +0 -0
  422. /package/dist/core/{p-8d276e8f.entry.js.map → p-77637e28.entry.js.map} +0 -0
  423. /package/dist/core/{p-b53455c3.entry.js.map → p-9271a06b.entry.js.map} +0 -0
  424. /package/dist/core/{p-673a4a62.entry.js.map → p-9445c2f3.entry.js.map} +0 -0
  425. /package/dist/core/{p-0fc36045.entry.js.map → p-952bdeb2.entry.js.map} +0 -0
  426. /package/dist/core/{p-a7331e7c.entry.js.map → p-96a909bf.entry.js.map} +0 -0
  427. /package/dist/core/{p-e35d6d78.entry.js.map → p-9922cd00.entry.js.map} +0 -0
  428. /package/dist/core/{p-67ae9d37.entry.js.map → p-a7f4168c.entry.js.map} +0 -0
  429. /package/dist/core/{p-ccf72538.entry.js.map → p-ab485b11.entry.js.map} +0 -0
  430. /package/dist/core/{p-097bfd3f.entry.js.map → p-ad1e70c9.entry.js.map} +0 -0
  431. /package/dist/core/{p-3a59391f.entry.js.map → p-ad786103.entry.js.map} +0 -0
  432. /package/dist/core/{p-789ae7f5.entry.js.map → p-c32f4c0f.entry.js.map} +0 -0
  433. /package/dist/core/{p-16a48a63.entry.js.map → p-cc99e774.entry.js.map} +0 -0
  434. /package/dist/core/{p-c8141cac.entry.js.map → p-ce90d1b2.entry.js.map} +0 -0
  435. /package/dist/core/{p-5348af01.entry.js.map → p-d0d2952b.entry.js.map} +0 -0
  436. /package/dist/core/{p-6398a726.entry.js.map → p-f0e85611.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,H as o,g as a}from"./p-8455d1bb.js";import{I as s}from"./p-fd186591.js";import{k as r,i as n}from"./p-8128572e.js";const c='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--indicator-initial-color:rgba(23 89 188 / 0%);--indicator-color:var(--ic-action-default);--focus-indicator:var(--ic-border-focus);--label-color:var(--ic-color-primary-text);--background-color-hover:var(--ic-action-default-bg-hover);--background-color-active:var(--ic-action-default-bg-active);display:flex;align-items:center;border-radius:0;color:var(--label-color);height:2.5rem;padding:0 var(--ic-space-md);cursor:pointer;position:relative;border-bottom:var(--ic-space-xxs) solid var(--indicator-initial-color);gap:var(--ic-space-xs);transition:all var(--ic-easing-transition-fast)}:host(:focus){box-shadow:var(--focus-indicator);border-radius:var(--ic-border-radius)}:host(:focus-visible){outline:var(--ic-hc-focus-outline)}:host(:hover){background-color:var(--background-color-hover)}:host(:active){background-color:var(--background-color-active)}:host(.ic-tab-light){--indicator-initial-color:rgb(255 255 255 / 0%);--indicator-color:rgb(255 255 255 / 100%);--focus-indicator:var(--ic-border-focus);--label-color:white;--background-color-hover:var(--ic-action-dark-bg-hover);--background-color-active:var(--ic-action-dark-bg-active)}:host(.selected){border-bottom:var(--ic-space-xxs) solid var(--indicator-color)}:host(.disabled){pointer-events:none;color:var(--ic-architectural-300)}@media (prefers-reduced-motion: no-preference){:host(.selected.with-transition){transition:all var(--ic-easing-transition-slow),\n border-color var(--ic-transition-duration-slow)}}.ic-tab-label{pointer-events:none;text-wrap:nowrap}::slotted(svg){fill:currentcolor}@media (forced-colors: active){:host{border-bottom:var(--ic-space-xxs) solid canvas}:host(.disabled){color:GrayText}}';const l=class{constructor(i){t(this,i);this.tabClick=e(this,"tabClick",7);this.tabCreated=e(this,"tabCreated",7);this.tabEnabled=e(this,"tabEnabled",7);this.tabFocus=e(this,"tabFocus",7);this.tabRemoved=e(this,"tabRemoved",7);this.focusFromClick=false;this.isInitialRender=true;this.handleClick=()=>{this.tabClick.emit({tabId:this.tabId,contextId:this.contextId,position:this.tabPosition});if(this.focusFromClick){this.tabFocus.emit({tabId:this.tabId,contextId:this.contextId,position:this.tabPosition});this.focusFromClick=false}};this.handleFocus=()=>{if(!this.focusFromClick){this.focusTabId=this.tabId;this.tabFocus.emit({tabId:this.tabId,contextId:this.contextId,position:this.tabPosition})}};this.handleMouseDown=()=>{this.focusFromClick=true};this.appearance="dark";this.contextId="default";this.disabled=false;this.selected=false;this.tabId=undefined;this.tabPosition=undefined}disabledWatchHandler(){this.tabEnabled.emit()}connectedCallback(){this.tabCreated.emit(this.el)}disconnectedCallback(){var t;(t=document.querySelector(`ic-tab-context[context-id=${this.contextId}]`))===null||t===void 0?void 0:t.tabRemovedHandler(!!this.focusTabId)}componentWillLoad(){r(this.disabled,this.el)}componentDidUpdate(){this.isInitialRender=false}async setFocus(){if(this.el){this.el.focus()}}render(){const{disabled:t,selected:e,appearance:a,isInitialRender:r,handleClick:c,handleFocus:l,handleMouseDown:d}=this;return i(o,{class:{"with-transition":!r,"ic-tab-light":a===s.Light,selected:e,disabled:t},role:"tab","aria-selected":`${e}`,onClick:c,onFocus:l,onMouseDown:d,"aria-disabled":`${t}`,tabindex:e?0:-1},n(this.el,"icon")&&i("slot",{name:"icon"}),i("ic-typography",{class:"ic-tab-label",variant:"label"},i("span",null,i("slot",null))),n(this.el,"badge")&&i("slot",{name:"badge"}))}get el(){return a(this)}static get watchers(){return{disabled:["disabledWatchHandler"]}}};l.style=c;export{l as ic_tab};
2
- //# sourceMappingURL=p-383ba7e8.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icTabCss","Tab","constructor","hostRef","this","focusFromClick","isInitialRender","handleClick","tabClick","emit","tabId","contextId","position","tabPosition","tabFocus","handleFocus","focusTabId","handleMouseDown","appearance","disabled","selected","undefined","disabledWatchHandler","tabEnabled","connectedCallback","tabCreated","el","disconnectedCallback","_a","document","querySelector","tabRemovedHandler","componentWillLoad","removeDisabledFalse","componentDidUpdate","setFocus","focus","render","h","Host","class","IcThemeForegroundEnum","Light","role","onClick","onFocus","onMouseDown","tabindex","isSlotUsed","name","variant"],"sources":["../web-components/dist/collection/components/ic-tab/ic-tab.css?tag=ic-tab&encapsulation=shadow","../web-components/dist/collection/components/ic-tab/ic-tab.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n --indicator-initial-color: rgba(23 89 188 / 0%);\n --indicator-color: var(--ic-action-default);\n --focus-indicator: var(--ic-border-focus);\n --label-color: var(--ic-color-primary-text);\n --background-color-hover: var(--ic-action-default-bg-hover);\n --background-color-active: var(--ic-action-default-bg-active);\n\n display: flex;\n align-items: center;\n border-radius: 0;\n color: var(--label-color);\n height: 2.5rem;\n padding: 0 var(--ic-space-md);\n cursor: pointer;\n position: relative;\n border-bottom: var(--ic-space-xxs) solid var(--indicator-initial-color);\n gap: var(--ic-space-xs);\n transition: all var(--ic-easing-transition-fast);\n}\n\n:host(:focus) {\n box-shadow: var(--focus-indicator);\n border-radius: var(--ic-border-radius);\n}\n\n:host(:focus-visible) {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(:hover) {\n background-color: var(--background-color-hover);\n}\n\n:host(:active) {\n background-color: var(--background-color-active);\n}\n\n:host(.ic-tab-light) {\n --indicator-initial-color: rgb(255 255 255 / 0%);\n --indicator-color: rgb(255 255 255 / 100%);\n --focus-indicator: var(--ic-border-focus);\n --label-color: white;\n --background-color-hover: var(--ic-action-dark-bg-hover);\n --background-color-active: var(--ic-action-dark-bg-active);\n}\n\n:host(.selected) {\n border-bottom: var(--ic-space-xxs) solid var(--indicator-color);\n}\n\n:host(.disabled) {\n pointer-events: none;\n color: var(--ic-architectural-300);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host(.selected.with-transition) {\n transition: all var(--ic-easing-transition-slow),\n border-color var(--ic-transition-duration-slow);\n }\n}\n\n.ic-tab-label {\n pointer-events: none;\n text-wrap: nowrap;\n}\n\n::slotted(svg) {\n fill: currentcolor;\n}\n\n@media (forced-colors: active) {\n :host {\n border-bottom: var(--ic-space-xxs) solid canvas;\n }\n\n :host(.disabled) {\n color: GrayText;\n }\n}\n\n/* Add back in after storybook has the `color-scheme: light dark` code */\n\n/* @media (prefers-color-scheme: dark) and (not (forced-colors: active)) {\n :host(ic-tab) .ic-tab-label {\n color: var(--ic-architectural-white);\n }\n :host(ic-tab.disabled) .ic-tab-label {\n color: inherit;\n }\n} */\n","import { Host, h, } from \"@stencil/core\";\nimport { IcThemeForegroundEnum, } from \"../../utils/types\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\n/**\n * @slot icon - Content will be rendered next to the tab label.\n * @slot badge - Badge component displayed inline with the tab.\n */\nexport class Tab {\n constructor() {\n this.focusFromClick = false;\n this.isInitialRender = true;\n this.handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n this.handleFocus = () => {\n if (!this.focusFromClick) {\n this.focusTabId = this.tabId;\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n this.handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a separate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n this.appearance = \"dark\";\n this.contextId = \"default\";\n this.disabled = false;\n this.selected = false;\n this.tabId = undefined;\n this.tabPosition = undefined;\n }\n disabledWatchHandler() {\n this.tabEnabled.emit();\n }\n connectedCallback() {\n this.tabCreated.emit(this.el);\n }\n disconnectedCallback() {\n var _a;\n (_a = document\n .querySelector(`ic-tab-context[context-id=${this.contextId}]`)) === null || _a === void 0 ? void 0 : _a.tabRemovedHandler(!!this.focusTabId);\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidUpdate() {\n this.isInitialRender = false;\n }\n /**\n * Sets focus on the tab.\n */\n async setFocus() {\n if (this.el) {\n this.el.focus();\n }\n }\n render() {\n const { disabled, selected, appearance, isInitialRender, handleClick, handleFocus, handleMouseDown, } = this;\n return (h(Host, { class: {\n \"with-transition\": !isInitialRender,\n \"ic-tab-light\": appearance === IcThemeForegroundEnum.Light,\n selected,\n disabled,\n }, role: \"tab\", \"aria-selected\": `${selected}`, onClick: handleClick, onFocus: handleFocus, onMouseDown: handleMouseDown, \"aria-disabled\": `${disabled}`, tabindex: selected ? 0 : -1 }, isSlotUsed(this.el, \"icon\") && h(\"slot\", { name: \"icon\" }), h(\"ic-typography\", { class: \"ic-tab-label\", variant: \"label\" }, h(\"span\", null, h(\"slot\", null))), isSlotUsed(this.el, \"badge\") && h(\"slot\", { name: \"badge\" })));\n }\n static get is() { return \"ic-tab\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-tab.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-tab.css\"]\n };\n }\n static get properties() {\n return {\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForegroundNoDefault\",\n \"resolved\": \"\\\"dark\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForegroundNoDefault\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForegroundNoDefault\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Determines whether the light or dark variant of the tabs should be displayed.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"dark\\\"\"\n },\n \"contextId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The unique context needed if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"context-id\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"selected\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, the tab will display with a selected indicator and tabIndex will be set.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"selected\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"tabId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The shared ID between panel and tab.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"tab-id\",\n \"reflect\": true\n },\n \"tabPosition\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The position of the tab inside the tabs array in context.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"tab-position\",\n \"reflect\": false\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"tabClick\",\n \"name\": \"tabClick\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when a tab is selected.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcTabClickEventDetail\",\n \"resolved\": \"IcTabClickEventDetail\",\n \"references\": {\n \"IcTabClickEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-tab.types\",\n \"id\": \"src/components/ic-tab/ic-tab.types.ts::IcTabClickEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"tabCreated\",\n \"name\": \"tabCreated\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when a tab is dynamically created.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"HTMLIcTabElement\",\n \"resolved\": \"HTMLIcTabElement\",\n \"references\": {\n \"HTMLIcTabElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLIcTabElement\"\n }\n }\n }\n }, {\n \"method\": \"tabEnabled\",\n \"name\": \"tabEnabled\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when a tab's disabled prop changes\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"tabFocus\",\n \"name\": \"tabFocus\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when a tab is focussed.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcTabClickEventDetail\",\n \"resolved\": \"IcTabClickEventDetail\",\n \"references\": {\n \"IcTabClickEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-tab.types\",\n \"id\": \"src/components/ic-tab/ic-tab.types.ts::IcTabClickEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"tabRemoved\",\n \"name\": \"tabRemoved\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when a tab is unmounted.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the tab.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"disabledWatchHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-tab.js.map\n"],"mappings":"+IAAA,MAAMA,EAAW,q/H,MCOJC,EAAG,MACZ,WAAAC,CAAAC,G,qMACIC,KAAKC,eAAiB,MACtBD,KAAKE,gBAAkB,KACvBF,KAAKG,YAAc,KACfH,KAAKI,SAASC,KAAK,CACfC,MAAON,KAAKM,MACZC,UAAWP,KAAKO,UAChBC,SAAUR,KAAKS,cAEnB,GAAIT,KAAKC,eAAgB,CACrBD,KAAKU,SAASL,KAAK,CACfC,MAAON,KAAKM,MACZC,UAAWP,KAAKO,UAChBC,SAAUR,KAAKS,cAEnBT,KAAKC,eAAiB,K,GAG9BD,KAAKW,YAAc,KACf,IAAKX,KAAKC,eAAgB,CACtBD,KAAKY,WAAaZ,KAAKM,MACvBN,KAAKU,SAASL,KAAK,CACfC,MAAON,KAAKM,MACZC,UAAWP,KAAKO,UAChBC,SAAUR,KAAKS,a,GAI3BT,KAAKa,gBAAkB,KAInBb,KAAKC,eAAiB,IAAI,EAE9BD,KAAKc,WAAa,OAClBd,KAAKO,UAAY,UACjBP,KAAKe,SAAW,MAChBf,KAAKgB,SAAW,MAChBhB,KAAKM,MAAQW,UACbjB,KAAKS,YAAcQ,S,CAEvB,oBAAAC,GACIlB,KAAKmB,WAAWd,M,CAEpB,iBAAAe,GACIpB,KAAKqB,WAAWhB,KAAKL,KAAKsB,G,CAE9B,oBAAAC,GACI,IAAIC,GACHA,EAAKC,SACDC,cAAc,6BAA6B1B,KAAKO,iBAAmB,MAAQiB,SAAY,OAAS,EAAIA,EAAGG,oBAAoB3B,KAAKY,W,CAEzI,iBAAAgB,GACIC,EAAoB7B,KAAKe,SAAUf,KAAKsB,G,CAE5C,kBAAAQ,GACI9B,KAAKE,gBAAkB,K,CAK3B,cAAM6B,GACF,GAAI/B,KAAKsB,GAAI,CACTtB,KAAKsB,GAAGU,O,EAGhB,MAAAC,GACI,MAAMlB,SAAEA,EAAQC,SAAEA,EAAQF,WAAEA,EAAUZ,gBAAEA,EAAeC,YAAEA,EAAWQ,YAAEA,EAAWE,gBAAEA,GAAqBb,KACxG,OAAQkC,EAAEC,EAAM,CAAEC,MAAO,CACjB,mBAAoBlC,EACpB,eAAgBY,IAAeuB,EAAsBC,MACrDtB,WACAD,YACDwB,KAAM,MAAO,gBAAiB,GAAGvB,IAAYwB,QAASrC,EAAasC,QAAS9B,EAAa+B,YAAa7B,EAAiB,gBAAiB,GAAGE,IAAY4B,SAAU3B,EAAW,GAAK,GAAK4B,EAAW5C,KAAKsB,GAAI,SAAWY,EAAE,OAAQ,CAAEW,KAAM,SAAWX,EAAE,gBAAiB,CAAEE,MAAO,eAAgBU,QAAS,SAAWZ,EAAE,OAAQ,KAAMA,EAAE,OAAQ,QAASU,EAAW5C,KAAKsB,GAAI,UAAYY,EAAE,OAAQ,CAAEW,KAAM,U"}
@@ -1,2 +0,0 @@
1
- const n=["aria-atomic","aria-autocomplete","aria-busy","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-dropeffect","aria-errormessage","aria-expanded","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"];const a=["ic-hero","ic-top-navigation","ic-footer","ic-side-navigation","ic-alert"];const e=["ic-alert"];const t={"ic-alert":["ic-link"]};var r;(function(n){n["Warning"]="warning";n["Error"]="error";n["Success"]="success"})(r||(r={}));var s;(function(n){n["Default"]="default";n["Dark"]="dark";n["Light"]="light"})(s||(s={}));var o;(function(n){n[n["January"]=0]="January";n[n["February"]=1]="February";n[n["March"]=2]="March";n[n["April"]=3]="April";n[n["May"]=4]="May";n[n["June"]=5]="June";n[n["July"]=6]="July";n[n["August"]=7]="August";n[n["September"]=8]="September";n[n["October"]=9]="October";n[n["November"]=10]="November";n[n["December"]=11]="December"})(o||(o={}));var i;(function(n){n[n["Sun"]=0]="Sun";n[n["Mon"]=1]="Mon";n[n["Tue"]=2]="Tue";n[n["Wed"]=3]="Wed";n[n["Thu"]=4]="Thu";n[n["Fri"]=5]="Fri";n[n["Sat"]=6]="Sat"})(i||(i={}));var c;(function(n){n[n["Sunday"]=0]="Sunday";n[n["Monday"]=1]="Monday";n[n["Tuesday"]=2]="Tuesday";n[n["Wednesday"]=3]="Wednesday";n[n["Thursday"]=4]="Thursday";n[n["Friday"]=5]="Friday";n[n["Saturday"]=6]="Saturday"})(c||(c={}));var u;(function(n){n[n["Sunday"]=0]="Sunday";n[n["Monday"]=1]="Monday";n[n["Tuesday"]=2]="Tuesday";n[n["Wednesday"]=3]="Wednesday";n[n["Thursday"]=4]="Thursday";n[n["Friday"]=5]="Friday";n[n["Saturday"]=6]="Saturday"})(u||(u={}));const l=n=>{const a=[];Object.values(n).forEach((n=>{if(isNaN(Number(n))){const e=n;a.push(e)}}));return a};const d=(n,a=[])=>{const e={};a.forEach((a=>{if(n.hasAttribute(a)){const t=n.getAttribute(a);if(t!==null){e[a]=n.getAttribute(a)}n.removeAttribute(a)}}));return e};const f=(n,a)=>{let e;return(...t)=>{const r=a();clearTimeout(e);e=setTimeout(n,r,...t)}};const p=(n,a,e,t,r)=>{if(e!==undefined&&(n||N(a))){const n=a.querySelectorAll("input.ic-input");const s=Array.from(n);const o=s.filter((n=>a===n.parentElement));let i=o[0];if(i===null||i===undefined){i=a.ownerDocument.createElement("input");i.type="hidden";i.classList.add("ic-input");a.appendChild(i)}i.disabled=r;i.name=e;if(t instanceof Date){i.value=t?t.toISOString():null}else{i.value=t||""}}};const b=(n,r=null)=>{var o;const i=n.parentElement||n.getRootNode().host.parentElement;const c=i.closest(a.join(","));if(c!==null){const a=c.tagName.toLowerCase();const i=n.tagName.toLowerCase();if((o=t[a])===null||o===void 0?void 0:o.includes(i)){return s.Default}else if(r!==null&&!e.includes(a)){return r}else if(c.classList.contains(s.Dark)){return s.Dark}return s.Light}return s.Default};const y=n=>n?n.trim().length===0:true;const v=n=>n!==undefined?n:null;const m=n=>getComputedStyle(document.documentElement).getPropertyValue(n);const h=n=>{const a=n.firstElementChild;if(a!==null){const e=a.assignedElements?a.assignedElements():a.childNodes;return e.length?e:n.tagName?[n]:null}else{return n===null?null:[n]}};({XS:Number(m("--ic-breakpoint-xs").replace("px","")),S:Number(m("--ic-breakpoint-sm").replace("px","")),M:Number(m("--ic-breakpoint-md").replace("px","")),L:Number(m("--ic-breakpoint-lg").replace("px","")),XL:Number(m("--ic-breakpoint-xl").replace("px","")),UNDEFINED:1200});const x=(n,a)=>Array.from(n.children).some((n=>n.getAttribute("slot")===a));const N=n=>!!n.shadowRoot&&!!n.attachShadow;const g=n=>n+"-helper-text";const w=n=>n+"-validation-text";const S=(n,a,e)=>`${a?g(n):""} ${e?w(n):""}`.trim();const k=()=>"maxTouchPoints"in navigator?navigator.maxTouchPoints>0:false;const T=(n,a,e="value",t="label")=>{const r=[];if(a.length>0&&a.map){a.map((n=>{if(n.children){n.children.map((n=>r.push(n)))}else{r.push(n)}}));const s=r.find((a=>a[e]===n));if(s!==undefined)return s[t]}return undefined};const M=(n,a,e,t,r="label")=>n.filter((n=>{var s;const o=n[r].toLowerCase();const i=(s=n.description)===null||s===void 0?void 0:s.toLowerCase();const c=e.toLowerCase();return t==="anywhere"?a?o.includes(c)||(i===null||i===void 0?void 0:i.includes(c)):o.includes(c):a?o.startsWith(c)||(i===null||i===void 0?void 0:i.startsWith(c)):o.startsWith(c)}));const $=n=>{const a=[];if(n.length>0&&n.map){n.map((n=>{if(n.children){n.children.map((n=>a.push(n)))}else{a.push(n)}}))}return a.length};const A=(n,a=16)=>`${1/a*parseInt(n)}rem`;const F=n=>/^-?\d+$/.test(n);const D=(n,a)=>n!==""&&!a;const O=(n,a)=>{for(let e=0;e<n.length;e++){const{prop:t,propName:r}=n[e];if(t===null||t===undefined){console.error(`No ${r} specified for ${a} component - prop '${r}' (web components) / '${j(r)}' (react) required`)}}};const j=n=>{n=n.toLowerCase();const a=n.split("-");let e=a[0];for(let n=1;n<a.length;n++){e+=a[n].substring(0,1).toUpperCase()+a[n].substring(1)}return e};const C=n=>{if(typeof window!=="undefined"&&typeof window.ResizeObserver!=="undefined"){n()}};const E=n=>n.closest("FORM");const I=(n,a)=>{const e=E(n);if(e!==null){e.addEventListener("reset",a)}};const J=(n,a)=>{const e=E(n);if(e!==null){e.removeEventListener("reset",a)}};const W=(n,a)=>{if(!n){a.removeAttribute("disabled")}};const q=()=>window.navigator.userAgent.toUpperCase().indexOf("MAC")>=0;const L=n=>n.charAt(0).toUpperCase()+n.slice(1);const X=(n,a,e)=>{const t=n=>Array.from(n).some((n=>n.slot===e));return t(n)||t(a)};const z=(n,a,e)=>{const t={};const r=a.map((n=>n.index));let s=0;Object.keys(n).forEach((o=>{if(r.includes(s)){t[a[r.indexOf(s)].key]=e;s++}t[o]=n[o];s++}));return t};export{n as A,r as B,v as C,F as D,L as E,q as F,s as I,y as a,z as b,X as c,f as d,h as e,C as f,b as g,c as h,x as i,o as j,u as k,i as l,T as m,M as n,O as o,A as p,$ as q,W as r,l as s,J as t,d as u,I as v,p as w,S as x,k as y,D as z};
2
- //# sourceMappingURL=p-40510c97.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["IC_INHERITED_ARIA","IC_BLOCK_COLOR_COMPONENTS","IC_FIXED_COLOR_COMPONENTS","IC_BLOCK_COLOR_EXCEPTIONS","IcInformationStatus","IcThemeForegroundEnum","IcDateInputMonths","IcShortDayNames","IcDayNames","IcWeekDays","stringEnumToArray","theEnum","arr","Object","values","forEach","val","isNaN","Number","str","push","inheritAttributes","element","attributes","attributeObject","attr","hasAttribute","value","getAttribute","removeAttribute","dynamicDebounce","func","getDelay","timer","args","delay","clearTimeout","setTimeout","renderHiddenInput","always","container","name","disabled","undefined","hasShadowDom","inputs","querySelectorAll","inputEls","Array","from","filtered","filter","el","parentElement","input","ownerDocument","createElement","type","classList","add","appendChild","Date","toISOString","getThemeFromContext","themeFromEvent","getRootNode","host","blockColorParent","closest","join","parentTag","tagName","toLowerCase","currentTag","_a","includes","Default","contains","Dark","Light","isEmptyString","trim","length","isPropDefined","prop","getCssProperty","cssVar","getComputedStyle","document","documentElement","getPropertyValue","getSlotElements","slot","slotContent","firstElementChild","elements","assignedElements","childNodes","XS","replace","S","M","L","XL","UNDEFINED","isSlotUsed","slotName","children","some","child","shadowRoot","attachShadow","getInputHelperTextID","id","getInputValidationTextID","getInputDescribedByText","inputId","helperText","validationText","isMobileOrTablet","navigator","maxTouchPoints","getLabelFromValue","options","valueField","labelField","ungroupedOptions","map","option","matchingValue","find","getFilteredMenuOptions","includeDescriptions","searchString","position","label","description","lowerSearchString","startsWith","getOptionsWithoutGroupTitlesCount","optionsWithoutGroupTitles","pxToRem","px","base","parseInt","isNumeric","test","hasValidationStatus","status","onComponentRequiredPropUndefined","props","component","i","propName","console","error","kebabToCamelCase","kebabCase","individualWords","split","camelCase","substring","toUpperCase","checkResizeObserver","callbackFn","window","ResizeObserver","getForm","addFormResetListener","form","addEventListener","removeFormResetListener","removeEventListener","removeDisabledFalse","isMacDevice","userAgent","indexOf","capitalize","text","charAt","slice","checkSlotInChildMutations","addedNodes","removedNodes","hasSlot","nodeList","node","addDataToPosition","dataObject","newKeys","newValue","newData","newIndexes","key","index","controlledIndex","keys","dataKey"],"sources":["src/utils/constants.ts","src/utils/types.ts","src/utils/helpers.ts"],"sourcesContent":["import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n","import {\n IcPaginationLabelTypes,\n IcPaginationTypes,\n IcPaginationAlignmentOptions,\n} from \"../components\";\n\nexport type IcFocusableComponents =\n | HTMLIcBreadcrumbElement\n | HTMLIcButtonElement\n | HTMLIcCardElement\n | HTMLIcCheckboxElement\n | HTMLIcChipElement\n | HTMLIcLinkElement\n | HTMLIcNavigationButtonElement\n | HTMLIcNavigationGroupElement\n | HTMLIcNavigationItemElement\n | HTMLIcRadioOptionElement\n | HTMLIcSearchBarElement\n | HTMLIcSelectElement\n | HTMLIcSwitchElement\n | HTMLIcTabElement\n | HTMLIcTextFieldElement;\n\nexport type IcStatusVariants =\n | \"neutral\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcSizes = \"default\" | \"large\" | \"small\";\n\nexport type IcSizesNoLarge = \"default\" | \"small\";\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcNavType = \"side\" | \"top\" | \"page-header\";\n\n// From: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\nexport type IcAutocompleteTypes =\n | \"on\"\n | \"off\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\";\n\nexport type IcAlignment = \"left\" | \"center\" | \"full-width\";\n\nexport enum IcThemeForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport type IcThemeForeground = \"default\" | \"dark\" | \"light\";\n\nexport type IcThemeForegroundNoDefault = \"dark\" | \"light\";\n\nexport type IcTheme = {\n mode: IcThemeForeground;\n color: IcColorRGB;\n};\n\nexport type IcAdditionalFieldTypes = \"static\" | \"dynamic\";\n\nexport type IcColorRGB = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type IcColorRGBA = IcColorRGB & {\n a: number;\n};\n\nexport type IcActivationTypes = \"automatic\" | \"manual\";\n\nexport type IcAutocorrectStates = \"on\" | \"off\";\n\nexport type IcNavParentDetails = {\n navType: IcNavType | \"\";\n parent: HTMLElement;\n};\n\nexport type IcTypographyVariants =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"subtitle-large\"\n | \"subtitle-small\"\n | \"body\"\n | \"label\"\n | \"label-uppercase\"\n | \"caption\"\n | \"caption-uppercase\"\n | \"code-large\"\n | \"code-small\"\n | \"code-extra-small\"\n | \"badge\"\n | \"badge-small\";\n\n/**\n * @interface IcMenuOption\n * @field {string} A label field to options. Defaults to \"label\", but can have any custom name.\n * @field {string} A value field to options. Defaults to \"value\", but can have any custom name.\n */\nexport interface IcMenuOption {\n description?: string;\n disabled?: boolean;\n recommended?: boolean;\n children?: IcMenuOption[];\n loading?: boolean;\n timedOut?: boolean;\n [key: string]: any;\n element?: {\n component: any;\n ariaLabel: string;\n };\n icon?: any;\n}\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport interface IcPaginationBarOptions {\n itemsPerPageOptions?: { label: string; value: string }[];\n rangeLabelType?: IcPaginationLabelTypes;\n type?: IcPaginationTypes;\n showItemsPerPageControl?: boolean;\n showGoToPageControl?: boolean;\n alignment?: IcPaginationAlignmentOptions;\n appearance?: IcThemeForeground;\n itemLabel?: string;\n pageLabel?: string;\n hideRangeLabel?: boolean;\n hideAllFromItemsPerPage?: boolean;\n}\n\nexport type IcCallbackFunctionNoReturn = (...args: unknown[]) => void;\n\nexport type IcDateFormat = \"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\";\n\nexport enum IcDateInputMonths {\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n}\n\nexport enum IcShortDayNames {\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n}\n\nexport enum IcDayNames {\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n}\n\nexport enum IcWeekDays {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n}\n\nexport interface IcValueEventDetail {\n value: string | string[];\n keyPressed?: string;\n}\n","/**\n * To investigate:\n * IcColorRGBA works via @ukic/web-components but IcThemeForeground does not even though they are exported\n * from @ukic/web-components in the same file. Why?\n */\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n} from \"@ukic/web-components\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\"; // Using @ukic/web-components/dist/types/utils/constants does not work so duplicated constants into canary package\nimport {\n IcMenuOption,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"./types\"; // Using @ukic/web-components/dist/types/utils/types does not work so duplicated constants into canary package\nimport { EventEmitter } from \"@stencil/core\";\nimport { IcDataTableDataType } from \"../interface\";\n\nconst DARK_MODE_THRESHOLD = 133.3505;\n\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (\n theEnum: Record<string, string | number>\n): string[] => {\n const arr: string[] = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val as string;\n arr.push(str);\n }\n });\n return arr;\n};\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: unknown } => {\n const attributeObject: { [key: string]: unknown } = {};\n\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = element.getAttribute(attr);\n }\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\nexport const dynamicDebounce = (\n func: (...args: unknown[]) => void,\n getDelay: () => number\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n const delay = getDelay();\n clearTimeout(timer);\n timer = setTimeout(func, delay, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | Date | undefined | null,\n disabled: boolean\n): void => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(\"ic-input\");\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : null;\n } else {\n input.value = value || \"\";\n }\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0] as HTMLInputElement;\n input?.remove();\n};\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcThemeForeground depending on the context\n */\nexport const getThemeFromContext = (\n el: Element,\n themeFromEvent: IcThemeForeground = null\n): IcThemeForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcThemeForegroundEnum.Default;\n } else if (\n themeFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return themeFromEvent;\n } else if (\n blockColorParent.classList.contains(IcThemeForegroundEnum.Dark)\n ) {\n return IcThemeForegroundEnum.Dark;\n }\n\n return IcThemeForegroundEnum.Light;\n }\n\n return IcThemeForegroundEnum.Default;\n};\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string): boolean =>\n value ? value.trim().length === 0 : true;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop: string): string | null =>\n prop !== undefined ? prop : null;\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-theme-text\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getThemeColorBrightness = (): number => {\n const themeRed = getCssProperty(\"--ic-theme-primary-r\");\n const themeGreen = getCssProperty(\"--ic-theme-primary-g\");\n const themeBlue = getCssProperty(\"--ic-theme-primary-b\");\n return (\n (parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000\n );\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n */\nexport const getThemeForegroundColor = (): IcThemeForeground =>\n getThemeColorBrightness() > DARK_MODE_THRESHOLD\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n\nexport const getSlot = (element: HTMLElement, name: string): Element | null => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n\n return null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : slot.tagName ? [slot] : null;\n } else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\n\nexport const getNavItemParentDetails = (\n el: HTMLElement\n): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n switch (getParentElementType(el)) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(el.parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: getParentElement(el) };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: getParentElement(el) };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")), // 0\n S: Number(getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")), // 576\n M: Number(getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")), // 768\n L: Number(getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")), // 992\n XL: Number(getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")), // 1200\n UNDEFINED: 1200,\n};\n\nexport const isSlotUsed = (element: HTMLElement, slotName: string): boolean =>\n Array.from(element.children).some(\n (child) => child.getAttribute(\"slot\") === slotName\n );\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const hasShadowDom = (el: HTMLElement): boolean =>\n !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${helperText ? getInputHelperTextID(inputId) : \"\"} ${\n validationText ? getInputValidationTextID(inputId) : \"\"\n }`.trim();\n\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator ? navigator.maxTouchPoints > 0 : false;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === \"anywhere\"\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\n/**\n * Gets count of options where only group title \"parent\" options have been removed.\n * Disabled options are included in the count.\n * @param options - array of options\n * @returns number of options not including group titles\n */\nexport const getOptionsWithoutGroupTitlesCount = (\n options: IcMenuOption[]\n): number => {\n const optionsWithoutGroupTitles: IcMenuOption[] = [];\n\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => optionsWithoutGroupTitles.push(option));\n } else {\n optionsWithoutGroupTitles.push(option);\n }\n });\n }\n\n return optionsWithoutGroupTitles.length;\n};\n\nconst hex2dec = function (v: string) {\n return parseInt(v, 16);\n};\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n let c;\n if (hex.length === 4) {\n c = hex.replace(\"#\", \"\").split(\"\");\n return {\n r: hex2dec(c[0] + c[0]),\n g: hex2dec(c[1] + c[1]),\n b: hex2dec(c[2] + c[2]),\n a: 1,\n };\n } else {\n return {\n r: hex2dec(hex.slice(1, 3)),\n g: hex2dec(hex.slice(3, 5)),\n b: hex2dec(hex.slice(5)),\n a: 1,\n };\n }\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const fourthChar = rgbaStr.slice(3, 4);\n let colorRGBA: IcColorRGBA;\n if (fourthChar.toLowerCase() === \"a\") {\n colorRGBA = { r: null, g: null, b: null, a: null };\n const rgba = rgbaStr\n .substring(5, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgba[0]);\n colorRGBA.g = Number(rgba[1]);\n colorRGBA.b = Number(rgba[2]);\n colorRGBA.a = Number(rgba[3]);\n } else {\n colorRGBA = { r: null, g: null, b: null, a: 1 };\n const rgb = rgbaStr\n .substring(4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgb[0]);\n colorRGBA.g = Number(rgb[1]);\n colorRGBA.b = Number(rgb[2]);\n }\n\n return colorRGBA;\n};\n\nexport const elementOverflowsX = (element: HTMLElement): boolean =>\n element.scrollWidth > element.clientWidth;\n\n/**\n *\n * @param child - The child element\n * @returns string\n */\nexport const getParentElementType = (child: HTMLElement): string =>\n child.parentElement.tagName;\n\nexport const getParentElement = (child: HTMLElement): HTMLElement =>\n child.parentElement;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\nexport const isNumeric = (value: string): boolean => {\n return /^-?\\d+$/.test(value);\n};\n\nexport const hasValidationStatus = (\n status: IcInformationStatusOrEmpty,\n disabled: boolean\n): boolean => {\n return status !== \"\" && !disabled;\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n for (let i = 0; i < props.length; i++) {\n const { prop, propName } = props[i];\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n }\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string => {\n kebabCase = kebabCase.toLowerCase();\n const individualWords: string[] = kebabCase.split(\"-\");\n let camelCase = individualWords[0];\n for (let i = 1; i < individualWords.length; i++) {\n camelCase +=\n individualWords[i].substring(0, 1).toUpperCase() +\n individualWords[i].substring(1);\n }\n return camelCase;\n};\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nexport const getForm = (el: HTMLElement): HTMLFormElement => el.closest(\"FORM\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.addEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.removeEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeDisabledFalse = (\n disabled: boolean,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean => {\n return window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n};\n\nexport async function waitForHydration(): Promise<boolean> {\n const elements = document.getElementsByTagName(\"*\");\n\n for (let i = 0; i < elements.length; i++) {\n if (elements[i].tagName.startsWith(\"IC-\")) {\n if (elements[i].classList.contains(\"hydrated\")) {\n return true;\n }\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nexport const capitalize = (text: string): string => {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\n\nexport const checkSlotInChildMutations = (\n addedNodes: NodeList,\n removedNodes: NodeList,\n slotName: string\n): boolean => {\n const hasSlot = (nodeList: NodeList) =>\n Array.from(nodeList).some((node) => (node as Element).slot === slotName);\n return hasSlot(addedNodes) || hasSlot(removedNodes);\n};\n\nexport const addDataToPosition = (\n dataObject: IcDataTableDataType,\n newKeys: { key: string; index: number }[],\n newValue: unknown\n): IcDataTableDataType => {\n const newData: IcDataTableDataType = {};\n const newIndexes = newKeys.map((key) => key.index);\n let controlledIndex = 0; // When a new key is added to the data, need to increment the index to account for this new object value\n\n Object.keys(dataObject).forEach((dataKey) => {\n if (newIndexes.includes(controlledIndex)) {\n newData[newKeys[newIndexes.indexOf(controlledIndex)].key] = newValue;\n controlledIndex++;\n }\n newData[dataKey] = dataObject[dataKey];\n controlledIndex++;\n });\n return newData;\n};\n"],"mappings":"MA+BaA,EAAoB,CAC/B,cACA,oBACA,YACA,gBACA,eACA,mBACA,mBACA,eACA,gBACA,kBACA,oBACA,gBACA,cACA,eACA,gBACA,cACA,eACA,oBACA,aACA,kBACA,YACA,YACA,gBACA,wBAWK,MAAMC,EAA4B,CACvC,UACA,oBACA,YACA,qBACA,YAGK,MAAMC,EAA4B,CAAC,YAMnC,MAAMC,EAA+C,CAC1D,WAAY,CAAC,Y,ICnDHC,GAAZ,SAAYA,GACVA,EAAA,qBACAA,EAAA,iBACAA,EAAA,oBACD,EAJD,CAAYA,MAAmB,K,IA0EnBC,GAAZ,SAAYA,GACVA,EAAA,qBACAA,EAAA,eACAA,EAAA,gBACD,EAJD,CAAYA,MAAqB,K,IA8FrBC,GAAZ,SAAYA,GACVA,IAAA,wBACAA,IAAA,0BACAA,IAAA,oBACAA,IAAA,oBACAA,IAAA,gBACAA,IAAA,kBACAA,IAAA,kBACAA,IAAA,sBACAA,IAAA,4BACAA,IAAA,wBACAA,IAAA,2BACAA,IAAA,0BACD,EAbD,CAAYA,MAAiB,K,IAejBC,GAAZ,SAAYA,GACVA,IAAA,gBACAA,IAAA,gBACAA,IAAA,gBACAA,IAAA,gBACAA,IAAA,gBACAA,IAAA,gBACAA,IAAA,eACD,EARD,CAAYA,MAAe,K,IAUfC,GAAZ,SAAYA,GACVA,IAAA,sBACAA,IAAA,sBACAA,IAAA,wBACAA,IAAA,4BACAA,IAAA,0BACAA,IAAA,sBACAA,IAAA,yBACD,EARD,CAAYA,MAAU,K,IAUVC,GAAZ,SAAYA,GACVA,IAAA,sBACAA,IAAA,sBACAA,IAAA,wBACAA,IAAA,4BACAA,IAAA,0BACAA,IAAA,sBACAA,IAAA,yBACD,EARD,CAAYA,MAAU,K,MC1MTC,EACXC,IAEA,MAAMC,EAAgB,GACtBC,OAAOC,OAAOH,GAASI,SAASC,IAC9B,GAAIC,MAAMC,OAAOF,IAAO,CACtB,MAAMG,EAAMH,EACZJ,EAAIQ,KAAKD,E,KAGb,OAAOP,CAAG,E,MAUCS,EAAoB,CAC/BC,EACAC,EAAuB,MAEvB,MAAMC,EAA8C,GAEpDD,EAAWR,SAASU,IAClB,GAAIH,EAAQI,aAAaD,GAAO,CAC9B,MAAME,EAAQL,EAAQM,aAAaH,GACnC,GAAIE,IAAU,KAAM,CAClBH,EAAgBC,GAAQH,EAAQM,aAAaH,E,CAE/CH,EAAQO,gBAAgBJ,E,KAI5B,OAAOD,CAAe,E,MA0BXM,EAAkB,CAC7BC,EACAC,KAEA,IAAIC,EACJ,MAAO,IAAIC,KACT,MAAMC,EAAQH,IACdI,aAAaH,GACbA,EAAQI,WAAWN,EAAMI,KAAUD,EAAK,CACzC,E,MAeUI,EAAoB,CAC/BC,EACAC,EACAC,EACAd,EACAe,KAEA,GAAID,IAASE,YAAcJ,GAAUK,EAAaJ,IAAa,CAC7D,MAAMK,EAASL,EAAUM,iBAAiB,kBAC1C,MAAMC,EAAWC,MAAMC,KAAKJ,GAC5B,MAAMK,EAAWH,EAASI,QAAQC,GAAOZ,IAAcY,EAAGC,gBAE1D,IAAIC,EAAQJ,EAAS,GACrB,GAAII,IAAU,MAAQA,IAAUX,UAAW,CACzCW,EAAQd,EAAUe,cAAcC,cAAc,SAC9CF,EAAMG,KAAO,SACbH,EAAMI,UAAUC,IAAI,YACpBnB,EAAUoB,YAAYN,E,CAExBA,EAAMZ,SAAWA,EACjBY,EAAMb,KAAOA,EAEb,GAAId,aAAiBkC,KAAM,CACzBP,EAAM3B,MAAQA,EAAQA,EAAMmC,cAAgB,I,KACvC,CACLR,EAAM3B,MAAQA,GAAS,E,UAyBhBoC,EAAsB,CACjCX,EACAY,EAAoC,Q,MAEpC,MAAMX,EACJD,EAAGC,eAA8BD,EAAGa,cAAeC,KAAKb,cAC1D,MAAMc,EAAmBd,EAAce,QACrCnE,EAA0BoE,KAAK,MAIjC,GAAIF,IAAqB,KAAM,CAC7B,MAAMG,EAAYH,EAAiBI,QAAQC,cAC3C,MAAMC,EAAarB,EAAGmB,QAAQC,cAE9B,IAAIE,EAAAvE,EAA0BmE,MAAU,MAAAI,SAAA,SAAAA,EAAEC,SAASF,GAAa,CAC9D,OAAOpE,EAAsBuE,O,MACxB,GACLZ,IAAmB,OAClB9D,EAA0ByE,SAASL,GACpC,CACA,OAAON,C,MACF,GACLG,EAAiBT,UAAUmB,SAASxE,EAAsByE,MAC1D,CACA,OAAOzE,EAAsByE,I,CAG/B,OAAOzE,EAAsB0E,K,CAG/B,OAAO1E,EAAsBuE,OAAO,E,MAyBzBI,EAAiBrD,GAC5BA,EAAQA,EAAMsD,OAAOC,SAAW,EAAI,K,MAGzBC,EAAiBC,GAC5BA,IAASzC,UAAYyC,EAAO,KAsBvB,MAAMC,EAAkBC,GAC7BC,iBAAiBC,SAASC,iBAAiBC,iBAAiBJ,G,MAoDjDK,EACXC,IAEA,MAAMC,EAAcD,EAAKE,kBAEzB,GAAID,IAAgB,KAAM,CACxB,MAAME,EAAWF,EAAYG,iBACzBH,EAAYG,mBACZH,EAAYI,WAChB,OAAOF,EAASb,OAASa,EAAWH,EAAKrB,QAAU,CAACqB,GAAQ,I,KACvD,CAEL,OAAOA,IAAS,KAAO,KAAO,CAACA,E,KA0BjCM,GAAIhF,OAAOmE,EAAe,sBAAsBc,QAAQ,KAAM,KAC9DC,EAAGlF,OAAOmE,EAAe,sBAAsBc,QAAQ,KAAM,KAC7DE,EAAGnF,OAAOmE,EAAe,sBAAsBc,QAAQ,KAAM,KAC7DG,EAAGpF,OAAOmE,EAAe,sBAAsBc,QAAQ,KAAM,KAC7DI,GAAIrF,OAAOmE,EAAe,sBAAsBc,QAAQ,KAAM,KAC9DK,UAAW,O,MAGAC,EAAa,CAACnF,EAAsBoF,IAC/C1D,MAAMC,KAAK3B,EAAQqF,UAAUC,MAC1BC,GAAUA,EAAMjF,aAAa,UAAY8E,IAevC,MAAM9D,EAAgBQ,KACzBA,EAAG0D,cAAgB1D,EAAG2D,aAEnB,MAAMC,EAAwBC,GAAuBA,EAAK,eAE1D,MAAMC,EAA4BD,GACvCA,EAAK,mB,MAEME,EAA0B,CACrCC,EACAC,EACAC,IAEA,GAAGD,EAAaL,EAAqBI,GAAW,MAC9CE,EAAiBJ,EAAyBE,GAAW,KACpDnC,O,MAEQsC,EAAmB,IAC9B,mBAAoBC,UAAYA,UAAUC,eAAiB,EAAI,M,MAQpDC,EAAoB,CAC/B/F,EACAgG,EACAC,EAAa,QACbC,EAAa,WAEb,MAAMC,EAAmC,GACzC,GAAIH,EAAQzC,OAAS,GAAKyC,EAAQI,IAAK,CACrCJ,EAAQI,KAAKC,IACX,GAAIA,EAAOrB,SAAU,CACnBqB,EAAOrB,SAASoB,KAAKC,GACnBF,EAAiB1G,KAAK4G,I,KAEnB,CACLF,EAAiB1G,KAAK4G,E,KAG1B,MAAMC,EAAgBH,EAAiBI,MACpCF,GAAWA,EAAOJ,KAAgBjG,IAErC,GAAIsG,IAAkBtF,UAAW,OAAOsF,EAAcJ,E,CAGxD,OAAOlF,SAAS,E,MAWLwF,EAAyB,CACpCR,EACAS,EACAC,EACAC,EACAT,EAAa,UAEbF,EAAQxE,QAAQ6E,I,MACd,MAAMO,EAAgBP,EAAOH,GAAYrD,cACzC,MAAMgE,GAAc9D,EAAAsD,EAAOQ,eAAW,MAAA9D,SAAA,SAAAA,EAAEF,cACxC,MAAMiE,EAAoBJ,EAAa7D,cAEvC,OAAO8D,IAAa,WAChBF,EACEG,EAAM5D,SAAS8D,KACfD,IAAW,MAAXA,SAAW,SAAXA,EAAa7D,SAAS8D,IACtBF,EAAM5D,SAAS8D,GACjBL,EACAG,EAAMG,WAAWD,KACjBD,IAAW,MAAXA,SAAW,SAAXA,EAAaE,WAAWD,IACxBF,EAAMG,WAAWD,EAAkB,I,MAS9BE,EACXhB,IAEA,MAAMiB,EAA4C,GAElD,GAAIjB,EAAQzC,OAAS,GAAKyC,EAAQI,IAAK,CACrCJ,EAAQI,KAAKC,IACX,GAAIA,EAAOrB,SAAU,CACnBqB,EAAOrB,SAASoB,KAAKC,GAAWY,EAA0BxH,KAAK4G,I,KAC1D,CACLY,EAA0BxH,KAAK4G,E,KAKrC,OAAOY,EAA0B1D,MAAM,E,MAuE5B2D,EAAU,CAACC,EAAYC,EAAO,KACzC,GAAI,EAAIA,EAAQC,SAASF,Q,MAEdG,EAAatH,GACjB,UAAUuH,KAAKvH,G,MAGXwH,EAAsB,CACjCC,EACA1G,IAEO0G,IAAW,KAAO1G,E,MAGd2G,EAAmC,CAC9CC,EACAC,KAEA,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAMpE,OAAQsE,IAAK,CACrC,MAAMpE,KAAEA,EAAIqE,SAAEA,GAAaH,EAAME,GACjC,GAAIpE,IAAS,MAAQA,IAASzC,UAAW,CACvC+G,QAAQC,MACN,MAAMF,mBAA0BF,uBAA+BE,0BAAiCG,EAC9FH,uB,IAOH,MAAMG,EAAoBC,IAC/BA,EAAYA,EAAUrF,cACtB,MAAMsF,EAA4BD,EAAUE,MAAM,KAClD,IAAIC,EAAYF,EAAgB,GAChC,IAAK,IAAIN,EAAI,EAAGA,EAAIM,EAAgB5E,OAAQsE,IAAK,CAC/CQ,GACEF,EAAgBN,GAAGS,UAAU,EAAG,GAAGC,cACnCJ,EAAgBN,GAAGS,UAAU,E,CAEjC,OAAOD,CAAS,E,MAGLG,EACXC,IAEA,UACSC,SAAW,oBACXA,OAAOC,iBAAmB,YACjC,CACAF,G,GAIG,MAAMG,EAAWnH,GAAqCA,EAAGgB,QAAQ,Q,MAE3DoG,EAAuB,CAClCpH,EACAgH,KAEA,MAAMK,EAAOF,EAAQnH,GACrB,GAAIqH,IAAS,KAAM,CACjBA,EAAKC,iBAAiB,QAASN,E,SAItBO,EAA0B,CACrCvH,EACAgH,KAEA,MAAMK,EAAOF,EAAQnH,GACrB,GAAIqH,IAAS,KAAM,CACjBA,EAAKG,oBAAoB,QAASR,E,SAIzBS,EAAsB,CACjCnI,EACApB,KAEA,IAAKoB,EAAU,CACbpB,EAAQO,gBAAgB,W,SAIfiJ,EAAc,IAClBT,OAAO7C,UAAUuD,UAAUb,cAAcc,QAAQ,QAAU,E,MAmBvDC,EAAcC,GAClBA,EAAKC,OAAO,GAAGjB,cAAgBgB,EAAKE,MAAM,G,MAGtCC,EAA4B,CACvCC,EACAC,EACA7E,KAEA,MAAM8E,EAAWC,GACfzI,MAAMC,KAAKwI,GAAU7E,MAAM8E,GAAUA,EAAiB9F,OAASc,IACjE,OAAO8E,EAAQF,IAAeE,EAAQD,EAAa,E,MAGxCI,EAAoB,CAC/BC,EACAC,EACAC,KAEA,MAAMC,EAA+B,GACrC,MAAMC,EAAaH,EAAQ9D,KAAKkE,GAAQA,EAAIC,QAC5C,IAAIC,EAAkB,EAEtBtL,OAAOuL,KAAKR,GAAY7K,SAASsL,IAC/B,GAAIL,EAAWrH,SAASwH,GAAkB,CACxCJ,EAAQF,EAAQG,EAAWhB,QAAQmB,IAAkBF,KAAOH,EAC5DK,G,CAEFJ,EAAQM,GAAWT,EAAWS,GAC9BF,GAAiB,IAEnB,OAAOJ,CAAO,S"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,f as i,h as s,H as o,g as r}from"./p-8455d1bb.js";import{c as a,i as c,o as l}from"./p-40510c97.js";const n=`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor"/>\n</svg>`;const h=':host{display:block;border:none;position:relative}:host .tree-item-content{display:flex;align-items:center;height:calc(var(--ic-space-xl) + var(--ic-space-xs));padding:0 var(--ic-space-xs);text-decoration:none;color:var(--ic-primary-text)}::slotted([slot="router-item"]){display:flex;align-items:center;height:calc(var(--ic-space-xl) + var(--ic-space-xs));text-decoration:none;font-family:var(--ic-font-body-family);color:var(--ic-primary-text);padding:0 var(--ic-space-xs) !important}::slotted([slot="router-item"].ic-tree-item-single){padding-left:calc(var(--ic-space-xl) + var(--ic-space-xs)) !important}:host .tree-item-content:focus,::slotted([slot="router-item"]:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}:host .tree-item-content:hover,::slotted([slot="router-item"]:hover){background-color:var(--ic-action-dark-bg-hover) !important;cursor:pointer}:host .tree-item-content:active,::slotted([slot="router-item"]:active){background-color:var(--ic-action-dark-bg-active) !important}:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){background-color:var(--ic-action-default-bg-hover) !important}:host(.ic-tree-item-small) .tree-item-content,:host(.ic-tree-item-small) ::slotted([slot="router-item"]){height:var(--ic-space-xl)}:host(.ic-tree-item-large) .tree-item-content,:host(.ic-tree-item-large) ::slotted([slot="router-item"]){height:var(--ic-space-xxl)}:host(.ic-tree-item-disabled){pointer-events:none}:host(.ic-tree-item-disabled) .tree-item-content,:host(.ic-tree-item-disabled) .arrow-dropdown,:host(.ic-tree-item-disabled) ::slotted([slot="icon"]),:host(.ic-tree-item-disabled) ::slotted([slot="router-item"]){color:var(--ic-architectural-200) !important;fill:var(--ic-architectural-200);pointer-events:none}:host(.ic-tree-item-light) .tree-item-content,:host(.ic-tree-item-light) .arrow-dropdown,:host(.ic-tree-item-light) ::slotted([slot="icon"]),:host(.ic-tree-item-light) ::slotted([slot="router-item"]){color:var(--ic-architectural-white);fill:var(--ic-architectural-white)}:host .arrow-dropdown{color:var(--ic-action-default);margin-right:var(--ic-space-xs)}:host(.ic-tree-item-small) .arrow-dropdown{margin-right:var(--ic-space-xxs)}:host .tree-item-expanded{transform:rotate(180deg);margin-top:calc(-1 * var(--ic-space-xxs))}:host .ic-tree-item-single{padding-left:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-tree-item-small) .ic-tree-item-single{padding-left:calc(var(--ic-space-xl) + var(--ic-space-xxs))}.icon-container{width:var(--ic-space-lg);height:var(--ic-space-lg);margin:0 var(--ic-space-xs) 0 0}:host(.ic-tree-item-small) .icon-container{margin:0 var(--ic-space-xxs) 0 0}.ic-text-overflow{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ic-tooltip-overflow{overflow:hidden}@media (forced-colors: active){::slotted([slot="icon"]){fill:currentcolor}:host(.ic-tree-item-disabled) .tree-item-content,:host(.ic-tree-item-disabled) .arrow-dropdown,:host(.ic-tree-item-disabled) ::slotted([slot="icon"]),:host(.ic-tree-item-disabled) ::slotted([slot="router-item"]){color:GrayText !important;fill:GrayText !important}:host .tree-item-content:focus,::slotted([slot="router-item"]:focus){border:var(--ic-hc-border) !important}:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){color:Highlight !important}}';let d=0;const m=class{constructor(s){t(this,s);this.icTreeItemSelected=e(this,"icTreeItemSelected",7);this.treeItemId=`ic-tree-item-${d++}`;this.treeItemTag="IC-TREE-ITEM";this.hostMutationObserver=null;this.TOOLTIP="ic-tooltip";this.handleTreeItemClicked=()=>{if(this.isParent){this.expanded=!this.expanded;this.hasParentExpanded=true}this.updateAriaLabel();this.selected=true;this.watchSelectedHandler()};this.setTreeItemPadding=()=>{let t=1;let e=this.el.parentElement;const i=this.el.shadowRoot.querySelector(".tree-item-content");const s=Array.from(e.children).map((t=>{if(t!==this.el&&!t.querySelector('[slot="router-item"]')&&!t.querySelector('[slot="label"]')){return t.children.length>0}else{return false}})).includes(true);const o=e.tagName===this.treeItemTag;const r=this.hasRouterSlot();if(s&&!this.el.isParent||o&&!this.el.isParent){if(r){this.routerSlot.classList.add("ic-tree-item-single")}else{i.classList.add("ic-tree-item-single")}}while(e){if(e.tagName===this.treeItemTag){t++;if(!this.el.isParent&&s){i.style.paddingLeft=`calc(var(--ic-space-xl) + ${t*16}px)`}else if(!this.el.isParent){i.style.paddingLeft=`calc(var(--ic-space-xs) + ${t*24}px`}else{i.style.paddingLeft=`${t*16}px`}}e=e.parentElement}};this.truncateTreeItemLabel=t=>{const e=t.shadowRoot.querySelector(".tree-item-label");const i=e===null||e===void 0?void 0:e.closest(this.TOOLTIP);const s=t.shadowRoot.querySelector(".tree-item-content");if((e===null||e===void 0?void 0:e.scrollHeight)>(s===null||s===void 0?void 0:s.clientHeight)){e.classList.add("ic-text-overflow");if(!i){const t=document.createElement("ic-tooltip");t.setAttribute("target",this.el.id);t.setAttribute("label",e.textContent);t.classList.add("ic-tooltip-overflow");t.setAttribute("placement","right");s.appendChild(t);t.appendChild(e)}}};this.hostMutationCallback=t=>{if(t.some((({type:t,addedNodes:e,removedNodes:i})=>t==="childList"?a(e,i,"icon"):false))){i(this)}};this.handleDisplayTooltip=t=>{const e=this.el.shadowRoot.querySelector(".tree-item-label");const i=e===null||e===void 0?void 0:e.closest(this.TOOLTIP);i===null||i===void 0?void 0:i.displayTooltip(t)};this.childTreeItems=undefined;this.appearance="dark";this.disabled=false;this.expanded=false;this.hasParentExpanded=false;this.href=undefined;this.hreflang="";this.isParent=false;this.label="";this.referrerpolicy=undefined;this.rel=undefined;this.selected=false;this.size="default";this.target=undefined}watchSelectedHandler(){if(this.selected){this.icTreeItemSelected.emit({id:this.el.id})}this.updateAriaLabel()}disconnectedCallback(){var t;(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentDidLoad(){this.childTreeItems=Array.from(this.el.children).filter((t=>t.tagName===this.treeItemTag));if(this.childTreeItems.length>0){this.isParent=true}this.setTreeItemPadding();this.updateAriaLabel();setTimeout((()=>{this.truncateTreeItemLabel(this.el)}),100);!c(this.el,"label")&&l([{prop:this.label,propName:"label"}],"Tree item");this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{childList:true})}componentDidUpdate(){if(this.hasParentExpanded){this.childTreeItems.forEach((t=>{this.truncateTreeItemLabel(t)}));this.hasParentExpanded=false}}handleKeyDown(t){if(t.key==="Enter"||t.key===" "){t.stopImmediatePropagation();this.handleTreeItemClicked()}}async setFocus(){var t,e;if(this.hasRouterSlot()){(t=this.routerSlot)===null||t===void 0?void 0:t.focus()}else{(e=this.treeItemElement)===null||e===void 0?void 0:e.focus()}}async updateAriaLabel(){let t;if(this.hasRouterSlot()){t=this.routerSlot.textContent}else if(c(this.el,"label")){t=this.el.querySelector('[slot="label"]').textContent}else{t=this.label}if(this.isParent){t=`${t}, triggers submenu, ${this.expanded?"expanded":"collapsed"}`}if(this.el.parentElement){const e=Array.from(this.el.parentElement.children).filter((t=>t.tagName===this.treeItemTag));const i=e.indexOf(this.el)+1;const s=e.length;t=`${t}, ${i} of ${s}`}if(this.selected){t=`${t}, active`}if(this.disabled){t=`${t}, dimmed`}if(this.hasRouterSlot()){this.routerSlot.ariaLabel=t}else{this.treeItemElement.ariaLabel=t}}hasRouterSlot(){this.routerSlot=this.el.querySelector('[slot="router-item"]');return!!this.routerSlot}render(){const{appearance:t,disabled:e,label:i,selected:r,size:a,expanded:l}=this;const h=this.href&&!this.disabled?"a":"div";const d=h=="a"&&{href:this.href,hrefLang:this.hreflang,referrerPolicy:this.referrerpolicy,rel:this.rel,target:this.target};return s(o,{class:{[`ic-tree-item-${t}`]:true,"ic-tree-item-disabled":e,"ic-tree-item-selected":!e&&r,[`ic-tree-item-${a}`]:a!=="default"},id:this.treeItemId},this.hasRouterSlot()?s("slot",{name:"router-item"}):s(h,Object.assign({class:{"tree-item-content":true},tabIndex:e?-1:0,onClick:this.handleTreeItemClicked,ref:t=>this.treeItemElement=t,"aria-disabled":e?"true":"false","aria-live":"polite"},d,{onFocus:()=>this.handleDisplayTooltip(true),onBlur:()=>this.handleDisplayTooltip(false)}),this.isParent&&s("span",{class:{["arrow-dropdown"]:true,["tree-item-expanded"]:l},"aria-hidden":"true",innerHTML:n}),c(this.el,"icon")&&s("div",{class:"icon-container"},s("slot",{name:"icon"})),s("ic-typography",{class:"tree-item-label"},c(this.el,"label")?s("slot",{name:"label"}):i)),l&&s("div",{"aria-hidden":`${!l}`},s("slot",null)))}get el(){return r(this)}static get watchers(){return{selected:["watchSelectedHandler"]}}};m.style=h;export{m as ic_tree_item};
2
- //# sourceMappingURL=p-4352b9c5.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icTreeItemCss","treeItemIds","TreeItem","this","treeItemId","treeItemTag","hostMutationObserver","TOOLTIP","handleTreeItemClicked","isParent","expanded","hasParentExpanded","updateAriaLabel","selected","watchSelectedHandler","setTreeItemPadding","level","parentElement","el","treeItemContent","shadowRoot","querySelector","isSiblingOfParent","Array","from","children","map","sibling","length","includes","isChild","tagName","isRouterItem","hasRouterSlot","routerSlot","classList","add","style","paddingLeft","truncateTreeItemLabel","treeItem","typographyEl","tooltip","closest","treeContent","scrollHeight","clientHeight","tooltipEl","document","createElement","setAttribute","id","textContent","appendChild","hostMutationCallback","mutationList","some","type","addedNodes","removedNodes","checkSlotInChildMutations","forceUpdate","handleDisplayTooltip","display","displayTooltip","icTreeItemSelected","emit","disconnectedCallback","_a","disconnect","componentDidLoad","childTreeItems","filter","child","setTimeout","isSlotUsed","onComponentRequiredPropUndefined","prop","label","propName","MutationObserver","observe","childList","componentDidUpdate","forEach","handleKeyDown","ev","key","stopImmediatePropagation","setFocus","focus","_b","treeItemElement","ariaLabel","treeItems","index","indexOf","parentChildren","disabled","render","appearance","size","Component","href","attrs","hrefLang","hreflang","referrerPolicy","referrerpolicy","rel","target","h","Host","class","name","Object","assign","tabIndex","onClick","ref","onFocus","onBlur","innerHTML","arrowDropdown"],"sources":["src/components/ic-tree-item/ic-tree-item.css?tag=ic-tree-item&encapsulation=shadow","src/components/ic-tree-item/ic-tree-item.tsx"],"sourcesContent":[":host {\n display: block;\n border: none;\n position: relative;\n}\n\n:host .tree-item-content {\n display: flex;\n align-items: center;\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n padding: 0 var(--ic-space-xs);\n text-decoration: none;\n color: var(--ic-primary-text);\n}\n\n::slotted([slot=\"router-item\"]) {\n display: flex;\n align-items: center;\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n text-decoration: none;\n font-family: var(--ic-font-body-family);\n color: var(--ic-primary-text);\n padding: 0 var(--ic-space-xs) !important;\n}\n\n::slotted([slot=\"router-item\"].ic-tree-item-single) {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xs)) !important;\n}\n\n:host .tree-item-content:focus,\n::slotted([slot=\"router-item\"]:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n:host .tree-item-content:hover,\n::slotted([slot=\"router-item\"]:hover) {\n background-color: var(--ic-action-dark-bg-hover) !important;\n cursor: pointer;\n}\n\n:host .tree-item-content:active,\n::slotted([slot=\"router-item\"]:active) {\n background-color: var(--ic-action-dark-bg-active) !important;\n}\n\n:host(.ic-tree-item-selected) .tree-item-content,\n:host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n background-color: var(--ic-action-default-bg-hover) !important;\n}\n\n:host(.ic-tree-item-small) .tree-item-content,\n:host(.ic-tree-item-small) ::slotted([slot=\"router-item\"]) {\n height: var(--ic-space-xl);\n}\n\n:host(.ic-tree-item-large) .tree-item-content,\n:host(.ic-tree-item-large) ::slotted([slot=\"router-item\"]) {\n height: var(--ic-space-xxl);\n}\n\n:host(.ic-tree-item-disabled) {\n pointer-events: none;\n}\n\n:host(.ic-tree-item-disabled) .tree-item-content,\n:host(.ic-tree-item-disabled) .arrow-dropdown,\n:host(.ic-tree-item-disabled) ::slotted([slot=\"icon\"]),\n:host(.ic-tree-item-disabled) ::slotted([slot=\"router-item\"]) {\n color: var(--ic-architectural-200) !important;\n fill: var(--ic-architectural-200);\n pointer-events: none;\n}\n\n:host(.ic-tree-item-light) .tree-item-content,\n:host(.ic-tree-item-light) .arrow-dropdown,\n:host(.ic-tree-item-light) ::slotted([slot=\"icon\"]),\n:host(.ic-tree-item-light) ::slotted([slot=\"router-item\"]) {\n color: var(--ic-architectural-white);\n fill: var(--ic-architectural-white);\n}\n\n:host .arrow-dropdown {\n color: var(--ic-action-default);\n margin-right: var(--ic-space-xs);\n}\n\n:host(.ic-tree-item-small) .arrow-dropdown {\n margin-right: var(--ic-space-xxs);\n}\n\n:host .tree-item-expanded {\n transform: rotate(180deg);\n margin-top: calc(-1 * var(--ic-space-xxs));\n}\n\n:host .ic-tree-item-single {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-tree-item-small) .ic-tree-item-single {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xxs));\n}\n\n.icon-container {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin: 0 var(--ic-space-xs) 0 0;\n}\n\n:host(.ic-tree-item-small) .icon-container {\n margin: 0 var(--ic-space-xxs) 0 0;\n}\n\n.ic-text-overflow {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ic-tooltip-overflow {\n overflow: hidden;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n\n :host(.ic-tree-item-disabled) .tree-item-content,\n :host(.ic-tree-item-disabled) .arrow-dropdown,\n :host(.ic-tree-item-disabled) ::slotted([slot=\"icon\"]),\n :host(.ic-tree-item-disabled) ::slotted([slot=\"router-item\"]) {\n color: GrayText !important;\n fill: GrayText !important;\n }\n\n :host .tree-item-content:focus,\n ::slotted([slot=\"router-item\"]:focus) {\n border: var(--ic-hc-border) !important;\n }\n\n :host(.ic-tree-item-selected) .tree-item-content,\n :host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n color: Highlight !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n State,\n Listen,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport { IcSizes, IcThemeForegroundNoDefault } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet treeItemIds = 0;\n\n/**\n * @slot label - Content is set as the tree item label.\n * @slot icon - Content is placed to the left of the label.\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n@Component({\n tag: \"ic-tree-item\",\n styleUrl: \"ic-tree-item.css\",\n shadow: true,\n})\nexport class TreeItem {\n private treeItemId = `ic-tree-item-${treeItemIds++}`;\n private treeItemElement: HTMLElement;\n private treeItemTag = \"IC-TREE-ITEM\";\n private routerSlot: HTMLElement;\n private hostMutationObserver: MutationObserver = null;\n private TOOLTIP = \"ic-tooltip\";\n\n @Element() el: HTMLIcTreeItemElement;\n\n @State() childTreeItems: HTMLIcTreeItemElement[];\n\n /**\n * @internal Determines whether the light or dark variant of the tree item should be displayed.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * If `true`, the tree item appears in the disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the tree item appears in the expanded state.\n */\n @Prop({ mutable: true }) expanded: boolean = false;\n\n /**\n * @internal Determines if the parent tree item has been expanded.\n */\n @Prop({ mutable: true }) hasParentExpanded: boolean = false;\n\n /**\n * The URL that the tree item link points to. If set, the tree item will render as an \"a\" tag, otherwise it will render as a div.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * @internal If `true`, the tree item is a parent of other tree items.\n */\n @Prop({ mutable: true }) isParent: boolean = false;\n\n /**\n * The label of the tree item.\n */\n @Prop() label: 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 * If `true`, the tree item appears in the selected state.\n */\n @Prop({ mutable: true }) selected: boolean = false;\n @Watch(\"selected\")\n watchSelectedHandler() {\n if (this.selected) {\n this.icTreeItemSelected.emit({ id: this.el.id });\n }\n this.updateAriaLabel();\n }\n\n /**\n * @internal Determines the size of the tree item.\n */\n @Prop() size?: IcSizes = \"default\";\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 * Emitted when tree item is selected.\n */\n @Event() icTreeItemSelected: EventEmitter<{ id: string }>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentDidLoad(): void {\n this.childTreeItems = Array.from((this.el as HTMLElement).children).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n if (this.childTreeItems.length > 0) {\n this.isParent = true;\n }\n\n this.setTreeItemPadding();\n\n this.updateAriaLabel();\n\n setTimeout(() => {\n this.truncateTreeItemLabel(this.el);\n }, 100);\n\n !isSlotUsed(this.el, \"label\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tree item\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n componentDidUpdate(): void {\n if (this.hasParentExpanded) {\n this.childTreeItems.forEach((child) => {\n this.truncateTreeItemLabel(child);\n });\n this.hasParentExpanded = false;\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.stopImmediatePropagation();\n this.handleTreeItemClicked();\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.hasRouterSlot()) {\n this.routerSlot?.focus();\n } else {\n this.treeItemElement?.focus();\n }\n }\n\n private handleTreeItemClicked = (): void => {\n if (this.isParent) {\n this.expanded = !this.expanded;\n this.hasParentExpanded = true;\n }\n\n this.updateAriaLabel();\n this.selected = true;\n this.watchSelectedHandler();\n };\n\n /**\n * @internal Updates the aria-label of the tree item.\n */\n @Method()\n async updateAriaLabel(): Promise<void> {\n let ariaLabel;\n\n if (this.hasRouterSlot()) {\n ariaLabel = this.routerSlot.textContent;\n } else if (isSlotUsed(this.el, \"label\")) {\n ariaLabel = this.el.querySelector('[slot=\"label\"]').textContent;\n } else {\n ariaLabel = this.label;\n }\n\n if (this.isParent) {\n ariaLabel = `${ariaLabel}, triggers submenu, ${\n this.expanded ? \"expanded\" : \"collapsed\"\n }`;\n }\n\n if (this.el.parentElement) {\n const treeItems = Array.from(\n (this.el.parentElement as HTMLElement).children\n ).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n const index = treeItems.indexOf(this.el) + 1;\n const parentChildren = treeItems.length;\n\n ariaLabel = `${ariaLabel}, ${index} of ${parentChildren}`;\n }\n\n if (this.selected) {\n ariaLabel = `${ariaLabel}, active`;\n }\n\n if (this.disabled) {\n ariaLabel = `${ariaLabel}, dimmed`;\n }\n\n if (this.hasRouterSlot()) {\n this.routerSlot.ariaLabel = ariaLabel;\n } else {\n this.treeItemElement.ariaLabel = ariaLabel;\n }\n }\n\n private setTreeItemPadding = () => {\n let level = 1;\n let parentElement = this.el.parentElement;\n const treeItemContent = this.el.shadowRoot.querySelector(\n \".tree-item-content\"\n ) as HTMLElement;\n\n const isSiblingOfParent = Array.from(parentElement.children)\n .map((sibling) => {\n if (\n sibling !== this.el &&\n !sibling.querySelector('[slot=\"router-item\"]') &&\n !sibling.querySelector('[slot=\"label\"]')\n ) {\n return sibling.children.length > 0;\n } else {\n return false;\n }\n })\n .includes(true);\n\n const isChild = parentElement.tagName === this.treeItemTag;\n\n const isRouterItem = this.hasRouterSlot();\n\n if (\n (isSiblingOfParent && !this.el.isParent) ||\n (isChild && !this.el.isParent)\n ) {\n if (isRouterItem) {\n this.routerSlot.classList.add(\"ic-tree-item-single\");\n } else {\n treeItemContent.classList.add(\"ic-tree-item-single\");\n }\n }\n\n while (parentElement) {\n if (parentElement.tagName === this.treeItemTag) {\n level++;\n if (!this.el.isParent && isSiblingOfParent) {\n treeItemContent.style.paddingLeft = `calc(var(--ic-space-xl) + ${\n level * 16\n }px)`;\n } else if (!this.el.isParent) {\n treeItemContent.style.paddingLeft = `calc(var(--ic-space-xs) + ${\n level * 24\n }px`;\n } else {\n treeItemContent.style.paddingLeft = `${level * 16}px`;\n }\n }\n parentElement = parentElement.parentElement;\n }\n };\n\n private truncateTreeItemLabel = (treeItem: HTMLIcTreeItemElement) => {\n const typographyEl: HTMLIcTypographyElement =\n treeItem.shadowRoot.querySelector(\".tree-item-label\");\n const tooltip = typographyEl?.closest(this.TOOLTIP);\n const treeContent: HTMLElement =\n treeItem.shadowRoot.querySelector(\".tree-item-content\");\n\n if (typographyEl?.scrollHeight > treeContent?.clientHeight) {\n typographyEl.classList.add(\"ic-text-overflow\");\n\n if (!tooltip) {\n const tooltipEl = document.createElement(\"ic-tooltip\");\n tooltipEl.setAttribute(\"target\", this.el.id);\n tooltipEl.setAttribute(\"label\", typographyEl.textContent);\n tooltipEl.classList.add(\"ic-tooltip-overflow\");\n tooltipEl.setAttribute(\"placement\", \"right\");\n treeContent.appendChild(tooltipEl);\n tooltipEl.appendChild(typographyEl);\n }\n }\n };\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n return !!this.routerSlot;\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"icon\")\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n private handleDisplayTooltip = (display: boolean) => {\n const typographyEl: HTMLIcTypographyElement =\n this.el.shadowRoot.querySelector(\".tree-item-label\");\n const tooltip: HTMLIcTooltipElement = typographyEl?.closest(this.TOOLTIP);\n\n tooltip?.displayTooltip(display);\n };\n\n render() {\n const { appearance, disabled, label, selected, size, expanded } = this;\n\n const Component = this.href && !this.disabled ? \"a\" : \"div\";\n\n const attrs = Component == \"a\" && {\n href: this.href,\n hrefLang: this.hreflang,\n referrerPolicy: this.referrerpolicy,\n rel: this.rel,\n target: this.target,\n };\n\n return (\n <Host\n class={{\n [`ic-tree-item-${appearance}`]: true,\n \"ic-tree-item-disabled\": disabled,\n \"ic-tree-item-selected\": !disabled && selected,\n [`ic-tree-item-${size}`]: size !== \"default\",\n }}\n id={this.treeItemId}\n >\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\" />\n ) : (\n <Component\n class={{\n \"tree-item-content\": true,\n }}\n tabIndex={disabled ? -1 : 0}\n onClick={this.handleTreeItemClicked}\n ref={(el) => (this.treeItemElement = el)}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-live=\"polite\"\n {...attrs}\n onFocus={() => this.handleDisplayTooltip(true)}\n onBlur={() => this.handleDisplayTooltip(false)}\n >\n {this.isParent && (\n <span\n class={{\n [\"arrow-dropdown\"]: true,\n [\"tree-item-expanded\"]: expanded,\n }}\n aria-hidden=\"true\"\n innerHTML={arrowDropdown}\n />\n )}\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography class=\"tree-item-label\">\n {isSlotUsed(this.el, \"label\") ? <slot name=\"label\" /> : label}\n </ic-typography>\n </Component>\n )}\n {expanded && (\n <div aria-hidden={`${!expanded}`}>\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"ySAAA,MAAMA,EAAgB,84GCsBtB,IAAIC,EAAc,E,MAYLC,EAAQ,M,gFACXC,KAAAC,WAAa,gBAAgBH,MAE7BE,KAAAE,YAAc,eAEdF,KAAAG,qBAAyC,KACzCH,KAAAI,QAAU,aAiJVJ,KAAAK,sBAAwB,KAC9B,GAAIL,KAAKM,SAAU,CACjBN,KAAKO,UAAYP,KAAKO,SACtBP,KAAKQ,kBAAoB,I,CAG3BR,KAAKS,kBACLT,KAAKU,SAAW,KAChBV,KAAKW,sBAAsB,EAoDrBX,KAAAY,mBAAqB,KAC3B,IAAIC,EAAQ,EACZ,IAAIC,EAAgBd,KAAKe,GAAGD,cAC5B,MAAME,EAAkBhB,KAAKe,GAAGE,WAAWC,cACzC,sBAGF,MAAMC,EAAoBC,MAAMC,KAAKP,EAAcQ,UAChDC,KAAKC,IACJ,GACEA,IAAYxB,KAAKe,KAChBS,EAAQN,cAAc,0BACtBM,EAAQN,cAAc,kBACvB,CACA,OAAOM,EAAQF,SAASG,OAAS,C,KAC5B,CACL,OAAO,K,KAGVC,SAAS,MAEZ,MAAMC,EAAUb,EAAcc,UAAY5B,KAAKE,YAE/C,MAAM2B,EAAe7B,KAAK8B,gBAE1B,GACGX,IAAsBnB,KAAKe,GAAGT,UAC9BqB,IAAY3B,KAAKe,GAAGT,SACrB,CACA,GAAIuB,EAAc,CAChB7B,KAAK+B,WAAWC,UAAUC,IAAI,sB,KACzB,CACLjB,EAAgBgB,UAAUC,IAAI,sB,EAIlC,MAAOnB,EAAe,CACpB,GAAIA,EAAcc,UAAY5B,KAAKE,YAAa,CAC9CW,IACA,IAAKb,KAAKe,GAAGT,UAAYa,EAAmB,CAC1CH,EAAgBkB,MAAMC,YAAc,6BAClCtB,EAAQ,O,MAEL,IAAKb,KAAKe,GAAGT,SAAU,CAC5BU,EAAgBkB,MAAMC,YAAc,6BAClCtB,EAAQ,M,KAEL,CACLG,EAAgBkB,MAAMC,YAAc,GAAGtB,EAAQ,M,EAGnDC,EAAgBA,EAAcA,a,GAI1Bd,KAAAoC,sBAAyBC,IAC/B,MAAMC,EACJD,EAASpB,WAAWC,cAAc,oBACpC,MAAMqB,EAAUD,IAAY,MAAZA,SAAY,SAAZA,EAAcE,QAAQxC,KAAKI,SAC3C,MAAMqC,EACJJ,EAASpB,WAAWC,cAAc,sBAEpC,IAAIoB,IAAY,MAAZA,SAAY,SAAZA,EAAcI,eAAeD,IAAW,MAAXA,SAAW,SAAXA,EAAaE,cAAc,CAC1DL,EAAaN,UAAUC,IAAI,oBAE3B,IAAKM,EAAS,CACZ,MAAMK,EAAYC,SAASC,cAAc,cACzCF,EAAUG,aAAa,SAAU/C,KAAKe,GAAGiC,IACzCJ,EAAUG,aAAa,QAAST,EAAaW,aAC7CL,EAAUZ,UAAUC,IAAI,uBACxBW,EAAUG,aAAa,YAAa,SACpCN,EAAYS,YAAYN,GACxBA,EAAUM,YAAYZ,E,IAUpBtC,KAAAmD,qBAAwBC,IAC9B,GACEA,EAAaC,MAAK,EAAGC,OAAMC,aAAYC,kBACrCF,IAAS,YACLG,EAA0BF,EAAYC,EAAc,QACpD,QAEN,CACAE,EAAY1D,K,GAIRA,KAAA2D,qBAAwBC,IAC9B,MAAMtB,EACJtC,KAAKe,GAAGE,WAAWC,cAAc,oBACnC,MAAMqB,EAAgCD,IAAY,MAAZA,SAAY,SAAZA,EAAcE,QAAQxC,KAAKI,SAEjEmC,IAAO,MAAPA,SAAO,SAAPA,EAASsB,eAAeD,EAAQ,E,8CAvSgB,O,cAKrB,M,cAKgB,M,uBAKS,M,kCAU1B,G,cAKiB,M,WAKrB,G,+DAeqB,M,UAYpB,U,sBAVzB,oBAAAjD,GACE,GAAIX,KAAKU,SAAU,CACjBV,KAAK8D,mBAAmBC,KAAK,CAAEf,GAAIhD,KAAKe,GAAGiC,I,CAE7ChD,KAAKS,iB,CAkBP,oBAAAuD,G,OACEC,EAAAjE,KAAKG,wBAAoB,MAAA8D,SAAA,SAAAA,EAAEC,Y,CAG7B,gBAAAC,GACEnE,KAAKoE,eAAiBhD,MAAMC,KAAMrB,KAAKe,GAAmBO,UAAU+C,QACjEC,GAAUA,EAAM1C,UAAY5B,KAAKE,cAGpC,GAAIF,KAAKoE,eAAe3C,OAAS,EAAG,CAClCzB,KAAKM,SAAW,I,CAGlBN,KAAKY,qBAELZ,KAAKS,kBAEL8D,YAAW,KACTvE,KAAKoC,sBAAsBpC,KAAKe,GAAG,GAClC,MAEFyD,EAAWxE,KAAKe,GAAI,UACnB0D,EACE,CAAC,CAAEC,KAAM1E,KAAK2E,MAAOC,SAAU,UAC/B,aAGJ5E,KAAKG,qBAAuB,IAAI0E,iBAAiB7E,KAAKmD,sBACtDnD,KAAKG,qBAAqB2E,QAAQ9E,KAAKe,GAAI,CACzCgE,UAAW,M,CAIf,kBAAAC,GACE,GAAIhF,KAAKQ,kBAAmB,CAC1BR,KAAKoE,eAAea,SAASX,IAC3BtE,KAAKoC,sBAAsBkC,EAAM,IAEnCtE,KAAKQ,kBAAoB,K,EAK7B,aAAA0E,CAAcC,GACZ,GAAIA,EAAGC,MAAQ,SAAWD,EAAGC,MAAQ,IAAK,CACxCD,EAAGE,2BACHrF,KAAKK,uB,EAQT,cAAMiF,G,QACJ,GAAItF,KAAK8B,gBAAiB,EACxBmC,EAAAjE,KAAK+B,cAAU,MAAAkC,SAAA,SAAAA,EAAEsB,O,KACZ,EACLC,EAAAxF,KAAKyF,mBAAe,MAAAD,SAAA,SAAAA,EAAED,O,EAmB1B,qBAAM9E,GACJ,IAAIiF,EAEJ,GAAI1F,KAAK8B,gBAAiB,CACxB4D,EAAY1F,KAAK+B,WAAWkB,W,MACvB,GAAIuB,EAAWxE,KAAKe,GAAI,SAAU,CACvC2E,EAAY1F,KAAKe,GAAGG,cAAc,kBAAkB+B,W,KAC/C,CACLyC,EAAY1F,KAAK2E,K,CAGnB,GAAI3E,KAAKM,SAAU,CACjBoF,EAAY,GAAGA,wBACb1F,KAAKO,SAAW,WAAa,a,CAIjC,GAAIP,KAAKe,GAAGD,cAAe,CACzB,MAAM6E,EAAYvE,MAAMC,KACrBrB,KAAKe,GAAGD,cAA8BQ,UACvC+C,QACCC,GAAUA,EAAM1C,UAAY5B,KAAKE,cAGpC,MAAM0F,EAAQD,EAAUE,QAAQ7F,KAAKe,IAAM,EAC3C,MAAM+E,EAAiBH,EAAUlE,OAEjCiE,EAAY,GAAGA,MAAcE,QAAYE,G,CAG3C,GAAI9F,KAAKU,SAAU,CACjBgF,EAAY,GAAGA,W,CAGjB,GAAI1F,KAAK+F,SAAU,CACjBL,EAAY,GAAGA,W,CAGjB,GAAI1F,KAAK8B,gBAAiB,CACxB9B,KAAK+B,WAAW2D,UAAYA,C,KACvB,CACL1F,KAAKyF,gBAAgBC,UAAYA,C,EAiF7B,aAAA5D,GACN9B,KAAK+B,WAAa/B,KAAKe,GAAGG,cAAc,wBACxC,QAASlB,KAAK+B,U,CAuBhB,MAAAiE,GACE,MAAMC,WAAEA,EAAUF,SAAEA,EAAQpB,MAAEA,EAAKjE,SAAEA,EAAQwF,KAAEA,EAAI3F,SAAEA,GAAaP,KAElE,MAAMmG,EAAYnG,KAAKoG,OAASpG,KAAK+F,SAAW,IAAM,MAEtD,MAAMM,EAAQF,GAAa,KAAO,CAChCC,KAAMpG,KAAKoG,KACXE,SAAUtG,KAAKuG,SACfC,eAAgBxG,KAAKyG,eACrBC,IAAK1G,KAAK0G,IACVC,OAAQ3G,KAAK2G,QAGf,OACEC,EAACC,EAAI,CACHC,MAAO,CACL,CAAC,gBAAgBb,KAAe,KAChC,wBAAyBF,EACzB,yBAA0BA,GAAYrF,EACtC,CAAC,gBAAgBwF,KAASA,IAAS,WAErClD,GAAIhD,KAAKC,YAERD,KAAK8B,gBACJ8E,EAAA,QAAMG,KAAK,gBAEXH,EAACT,EAASa,OAAAC,OAAA,CACRH,MAAO,CACL,oBAAqB,MAEvBI,SAAUnB,GAAY,EAAI,EAC1BoB,QAASnH,KAAKK,sBACd+G,IAAMrG,GAAQf,KAAKyF,gBAAkB1E,EAAG,gBACzBgF,EAAW,OAAS,QAAO,YAChC,UACNM,EAAK,CACTgB,QAAS,IAAMrH,KAAK2D,qBAAqB,MACzC2D,OAAQ,IAAMtH,KAAK2D,qBAAqB,SAEvC3D,KAAKM,UACJsG,EAAA,QACEE,MAAO,CACL,CAAC,kBAAmB,KACpB,CAAC,sBAAuBvG,GACzB,cACW,OACZgH,UAAWC,IAGdhD,EAAWxE,KAAKe,GAAI,SACnB6F,EAAA,OAAKE,MAAM,kBACTF,EAAA,QAAMG,KAAK,UAGfH,EAAA,iBAAeE,MAAM,mBAClBtC,EAAWxE,KAAKe,GAAI,SAAW6F,EAAA,QAAMG,KAAK,UAAapC,IAI7DpE,GACCqG,EAAA,qBAAkB,IAAIrG,KACpBqG,EAAA,c"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icRadioGroupCss","RadioGroup","constructor","hostRef","this","resizeObserver","ADDITIONAL_FIELD","RADIO_HORIZONTAL","RADIO_VERTICAL","runResizeObserver","ResizeObserver","checkOrientation","observe","el","handleKeyDown","event","key","radioOptions","getNextItemToSelect","selectedChild","click","preventDefault","currentItem","movingDown","numRadios","length","nextItem","disabled","addSlotChangeListener","radioContainer","addEventListener","setRadioOptions","setFirstRadioOptionTabIndex","value","setTabIndex","checkedValue","Array","from","querySelectorAll","forEach","radioOption","index","selected","name","groupLabel","label","initialOrientation","undefined","isSlotUsed","currentOrientation","helperText","hideLabel","orientation","required","size","small","validationStatus","validationText","watchDisabledHandler","newValue","orientationChangeHandler","disconnectedCallback","_a","_b","disconnect","removeEventListener","componentWillLoad","removeDisabledFalse","componentDidLoad","checkResizeObserver","onComponentRequiredPropUndefined","prop","propName","selectHandler","detail","target","selectedOption","icChange","emit","radio","textFieldValue","querySelector","changeHandler","findIndex","totalWidth","isArray","clientWidth","i","arr","render","renderHiddenInput","h","Host","onKeyDown","class","role","horizontal","ref","hasValidationStatus","ariaLiveMode","status","message"],"sources":["../web-components/dist/collection/components/ic-radio-group/ic-radio-group.css?tag=ic-radio-group&encapsulation=shadow","../web-components/dist/collection/components/ic-radio-group/ic-radio-group.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n display: block;\n}\n\nic-input-label.error {\n color: var(--ic-status-error);\n}\n\nic-input-validation {\n margin-top: var(--ic-space-sm);\n}\n\n:host(.small) ic-input-validation {\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\nic-input-label ic-typography {\n margin-bottom: var(--ic-space-sm);\n}\n\n:host(.small) ic-input-label ic-typography {\n margin-bottom: calc(var(--ic-space-sm) / 2);\n}\n\n:host .radio-buttons-container {\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-xxs);\n}\n\n:host(.small) .radio-buttons-container {\n gap: var(--ic-space-xxxs);\n}\n\n:host .radio-buttons-container.horizontal {\n display: flex;\n flex-direction: row;\n gap: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.small) .radio-buttons-container.horizontal {\n gap: var(--ic-space-xl);\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { hasValidationStatus, isSlotUsed, onComponentRequiredPropUndefined, removeDisabledFalse, renderHiddenInput, checkResizeObserver, } from \"../../utils/helpers\";\nexport class RadioGroup {\n constructor() {\n this.resizeObserver = null;\n this.ADDITIONAL_FIELD = \"additional-field\";\n this.RADIO_HORIZONTAL = \"horizontal\";\n this.RADIO_VERTICAL = \"vertical\";\n this.runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkOrientation();\n });\n this.resizeObserver.observe(this.el);\n };\n this.handleKeyDown = (event) => {\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.radioOptions[this.getNextItemToSelect(this.selectedChild, true)].click();\n event.preventDefault();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.radioOptions[this.getNextItemToSelect(this.selectedChild, false)].click();\n event.preventDefault();\n }\n };\n this.getNextItemToSelect = (currentItem, movingDown) => {\n const numRadios = this.radioOptions.length - 1;\n if (currentItem < 1) {\n currentItem = 0;\n }\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n //check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numRadios;\n }\n else if (nextItem > numRadios) {\n nextItem = 0;\n }\n //if next item is disabled then find next\n if (this.radioOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n return nextItem;\n };\n this.addSlotChangeListener = () => {\n this.radioContainer.addEventListener(\"slotchange\", this.setRadioOptions);\n };\n this.setFirstRadioOptionTabIndex = (value) => {\n this.radioOptions[0].setTabIndex(value);\n };\n this.setRadioOptions = () => {\n this.selectedChild = -1;\n this.checkedValue = \"\";\n this.radioOptions = Array.from(this.el.querySelectorAll(\"ic-radio-option\"));\n if (this.radioOptions.length > 0) {\n this.radioOptions.forEach((radioOption, index) => {\n if (!radioOption.selected) {\n radioOption.selected = this.checkedValue === radioOption.value;\n }\n radioOption.name = this.name;\n radioOption.groupLabel = this.label;\n if (radioOption.selected) {\n this.selectedChild = index;\n this.checkedValue = radioOption.value;\n }\n if (this.disabled) {\n radioOption.disabled = true;\n }\n });\n this.setFirstRadioOptionTabIndex(this.selectedChild > 0 ? -1 : 0);\n if (this.initialOrientation === this.RADIO_HORIZONTAL &&\n this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (isSlotUsed(this.radioOptions[0], this.ADDITIONAL_FIELD) ||\n isSlotUsed(this.radioOptions[1], this.ADDITIONAL_FIELD))))) {\n this.currentOrientation = this.RADIO_VERTICAL;\n }\n }\n };\n this.checkedValue = \"\";\n this.currentOrientation = undefined;\n this.initialOrientation = undefined;\n this.selectedChild = -1;\n this.disabled = false;\n this.helperText = undefined;\n this.hideLabel = false;\n this.label = undefined;\n this.name = undefined;\n this.orientation = \"vertical\";\n this.required = false;\n this.size = \"default\";\n this.small = false;\n this.validationStatus = \"\";\n this.validationText = \"\";\n }\n watchDisabledHandler(newValue) {\n this.radioOptions.forEach((radioOption) => (radioOption.disabled = newValue));\n }\n orientationChangeHandler() {\n this.initialOrientation = this.orientation;\n this.checkOrientation();\n }\n disconnectedCallback() {\n var _a, _b;\n (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n (_b = this.radioContainer) === null || _b === void 0 ? void 0 : _b.removeEventListener(\"slotchange\", this.setRadioOptions);\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n this.orientationChangeHandler();\n this.currentOrientation = this.initialOrientation;\n }\n componentDidLoad() {\n this.setRadioOptions();\n checkResizeObserver(this.runResizeObserver);\n this.addSlotChangeListener();\n onComponentRequiredPropUndefined([\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ], \"Radio Group\");\n }\n selectHandler({ detail, target }) {\n var _a;\n this.checkedValue = detail.value;\n const selectedOption = target;\n this.icChange.emit({\n value: this.checkedValue,\n selectedOption: {\n radio: selectedOption,\n textFieldValue: (_a = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.querySelector(\"ic-text-field\")) === null || _a === void 0 ? void 0 : _a.value,\n },\n });\n if (this.radioOptions !== undefined) {\n this.radioOptions.forEach((radioOption, index) => {\n radioOption.selected = selectedOption === radioOption;\n if (radioOption.selected) {\n this.selectedChild = index;\n }\n });\n this.setFirstRadioOptionTabIndex(this.selectedChild > 0 ? -1 : 0);\n }\n }\n changeHandler() {\n const selectedOption = this.radioOptions.findIndex((radioOption) => radioOption.selected);\n if (selectedOption < 0) {\n this.setFirstRadioOptionTabIndex(0);\n this.selectedChild = selectedOption;\n }\n }\n checkOrientation() {\n var _a, _b;\n if (this.initialOrientation === this.RADIO_HORIZONTAL) {\n let totalWidth = 0;\n if (Array.isArray(this.radioOptions) && this.radioOptions.length > 0) {\n this.radioOptions.forEach(({ clientWidth }, i, arr) => {\n totalWidth += clientWidth;\n if (i < arr.length - 1)\n totalWidth += 40;\n });\n }\n else {\n totalWidth = 0;\n }\n if (this.initialOrientation == this.RADIO_HORIZONTAL) {\n if (this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (isSlotUsed(this.radioOptions[0], this.ADDITIONAL_FIELD) ||\n isSlotUsed(this.radioOptions[1], this.ADDITIONAL_FIELD))))) {\n this.currentOrientation = this.RADIO_VERTICAL;\n }\n else {\n if (totalWidth >= ((_a = this.radioContainer) === null || _a === void 0 ? void 0 : _a.clientWidth)) {\n this.currentOrientation = this.RADIO_VERTICAL;\n }\n else if (totalWidth < ((_b = this.radioContainer) === null || _b === void 0 ? void 0 : _b.clientWidth)) {\n this.currentOrientation = this.RADIO_HORIZONTAL;\n }\n }\n }\n }\n }\n render() {\n renderHiddenInput(true, this.el, this.name, this.checkedValue, this.disabled);\n return (h(Host, { onKeyDown: this.handleKeyDown, class: { small: this.small || this.size === \"small\" } }, h(\"div\", { role: \"radiogroup\", \"aria-label\": `${this.label}${this.required ? \", required\" : \"\"}` }, !this.hideLabel && (h(\"ic-input-label\", { class: { [`${this.validationStatus}`]: true }, label: this.label, helperText: this.helperText, required: this.required, disabled: this.disabled })), h(\"div\", { class: {\n \"radio-buttons-container\": true,\n horizontal: this.currentOrientation === this.RADIO_HORIZONTAL,\n }, ref: (el) => (this.radioContainer = el) }, h(\"slot\", null))), hasValidationStatus(this.validationStatus, this.disabled) && (h(\"ic-input-validation\", { ariaLiveMode: \"polite\", status: this.validationStatus, message: this.validationText }))));\n }\n static get is() { return \"ic-radio-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-radio-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-radio-group.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"helperText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The helper text that will be displayed for additional field guidance.\"\n },\n \"attribute\": \"helper-text\",\n \"reflect\": false\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the radio group to be displayed.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name for the radio group to differentiate from other groups.\"\n },\n \"attribute\": \"name\",\n \"reflect\": false\n },\n \"orientation\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcOrientation\",\n \"resolved\": \"\\\"horizontal\\\" | \\\"vertical\\\"\",\n \"references\": {\n \"IcOrientation\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcOrientation\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The orientation of the radio buttons in the radio group. If there are more than two radio buttons in a radio group or either of the radio buttons use the `additional-field` slot, then the orientation will always be vertical.\"\n },\n \"attribute\": \"orientation\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"vertical\\\"\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the radio group will require a value.\"\n },\n \"attribute\": \"required\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizesNoLarge\",\n \"resolved\": \"\\\"default\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizesNoLarge\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizesNoLarge\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the radio group component.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"validationText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation text - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"checkedValue\": {},\n \"currentOrientation\": {},\n \"initialOrientation\": {},\n \"selectedChild\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a user selects a radio.\"\n },\n \"complexType\": {\n \"original\": \"IcChangeEventDetail\",\n \"resolved\": \"IcChangeEventDetail\",\n \"references\": {\n \"IcChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-radio-group.types\",\n \"id\": \"src/components/ic-radio-group/ic-radio-group.types.ts::IcChangeEventDetail\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }, {\n \"propName\": \"orientation\",\n \"methodName\": \"orientationChangeHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"icCheck\",\n \"method\": \"selectHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"icSelectedChange\",\n \"method\": \"changeHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-radio-group.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,H as o,g as s}from"./p-8455d1bb.js";const n='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:root{display:block}:host{display:flex;flex-direction:row;width:-moz-fit-content;width:fit-content;min-width:-moz-min-content;min-width:min-content;border:var(--ic-border-width) solid var(--ic-action-default);border-radius:var(--ic-border-radius)}:host(.full-width){width:100%;max-width:100%}:host(.loading){min-width:-moz-max-content;min-width:max-content}:host(:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}::slotted(ic-toggle-button){flex-grow:1;width:-moz-min-content;width:min-content;--toggle-button-border:none}::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid var(--ic-action-default)}:host(.disabled){border:var(--ic-border-disabled);pointer-events:none}:host(.disabled) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-disabled)}:host(.dark){border:var(--ic-border-width) solid var(--ic-action-dark)}:host(.dark) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid var(--ic-action-dark)}:host(.light) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid var(--ic-action-light)}:host(.light){border:var(--ic-border-width) solid var(--ic-action-light)}';const r="IC-TOGGLE-BUTTON-GROUP";const a=class{constructor(i){t(this,i);this.icChange=e(this,"icChange",7);this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.setSlottedAria=t=>{const e=t.shadowRoot.querySelector("ic-button").shadowRoot.querySelector("button");let i=e.getAttribute("aria-label");i+=", ";i+=this.accessibleLabel;e.setAttribute("aria-label",i)};this.handleHostFocus=t=>{if(this.loading||this.disabled){return null}const e=t.target;const i=t.relatedTarget;const o=Array.from(e.querySelectorAll("ic-toggle-button"));if((o.every((t=>!t.toggleChecked))||this.selectType!=="single")&&this.lastKeyPressed.shift===false||o.every((t=>!t.toggleChecked))&&this.lastKeyPressed.shift===true&&i.tagName==r){o[0].focus()}else if(this.lastKeyPressed.shift===false||this.lastKeyPressed.shift===true&&i.tagName==r){const t=o.filter((t=>t.toggleChecked));t[0].focus()}};this.handleKeyDown=t=>{const e=this.getAllToggleButtons();const i=e.indexOf(e.filter((t=>t===document.activeElement))[0]);switch(t.key){case"ArrowDown":case"ArrowRight":this.selectMethod==="auto"?this.proxySelectHandler(e[this.getNextItemToSelect(i,true)]):e[this.getNextItemToSelect(i,true)].focus();break;case"ArrowUp":case"ArrowLeft":this.selectMethod==="auto"?this.proxySelectHandler(e[this.getNextItemToSelect(i,false)]):e[this.getNextItemToSelect(i,false)].focus();break}};this.getNextItemToSelect=(t,e)=>{const i=this.getAllToggleButtons();const o=i.length-1;if(t<1){t=0}let s=e?t+1:t-1;if(s<0){s=o}else if(s>o){s=0}if(i[s].disabled){s=this.getNextItemToSelect(s,e)}return s};this.lastKeyPressed={key:null,shift:false};this.accessibleLabel="Toggle button group";this.appearance="default";this.disabled=false;this.fullWidth=false;this.iconPlacement=undefined;this.loading=false;this.selectMethod="manual";this.selectType="single";this.size="default";this.variant="default"}selectHandler(t,e){const i=this.getAllToggleButtons();let o=t.target;e&&e.focus();if(this.selectType==="single"){if(!o){o=e}i.forEach((t=>{if(t.id!==o.id&&t.toggleChecked){t.toggleChecked=false}}));this.icChange.emit({toggleChecked:t.detail.toggleChecked,selectedOption:o})}else{const t=this.getAllToggleButtons().filter((t=>t.toggleChecked&&!t.disabled));this.icChange.emit({toggleChecked:t.map((t=>t.toggleChecked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:o})}}componentWillLoad(){this.selectType==="multi"&&(this.selectMethod="manual");document.addEventListener("keydown",this.keyListener)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,e)=>{this.setSlottedAria(t);t.size=this.size;t.loading=this.loading;t.iconPlacement=this.iconPlacement;t.disabled?null:t.disabled=this.disabled;t.appearance=this.appearance;t.variant=this.variant;t.fullWidth=this.fullWidth;t.id=e.toString();t.tabIndex=-1;t.addEventListener("keydown",(t=>{this.handleKeyDown(t)}));t.classList.add("expand-toggle-group-child")}))}disconnectedCallback(){document===null||document===void 0?void 0:document.removeEventListener("keydown",this.keyListener)}proxySelectHandler(t){t.toggleChecked=true;const e=new CustomEvent("icToggleChecked",{detail:{toggleChecked:t.toggleChecked}});this.selectHandler(e,t)}getAllToggleButtons(){return Array.from(this.el.querySelectorAll("ic-toggle-button"))}render(){return i(o,{role:"group","aria-label":this.accessibleLabel,"aria-disabled":this.disabled?"true":"false",tabindex:0,class:{["full-width"]:this.fullWidth,["loading"]:this.loading,["disabled"]:this.disabled,[`${this.appearance}`]:true},onFocus:this.handleHostFocus},i("slot",null))}get el(){return s(this)}};a.style=n;export{a as ic_toggle_button_group};
2
- //# sourceMappingURL=p-43a2cad3.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icToggleButtonGroupCss","TOGGLE_GROUP","ToggleButtonGroup","constructor","hostRef","this","keyListener","ev","lastKeyPressed","key","shift","shiftKey","setSlottedAria","el","btn","shadowRoot","querySelector","aria","getAttribute","accessibleLabel","setAttribute","handleHostFocus","loading","disabled","target","relEl","relatedTarget","toggleButtons","Array","from","querySelectorAll","every","toggleChecked","selectType","tagName","focus","toggledButton","filter","handleKeyDown","event","toggleButtonOptions","getAllToggleButtons","focussedChild","indexOf","document","activeElement","selectMethod","proxySelectHandler","getNextItemToSelect","currentItem","movingDown","numToggles","length","nextItem","appearance","fullWidth","iconPlacement","undefined","size","variant","selectHandler","tabTarget","allToggles","clickedToggle","forEach","id","icChange","emit","detail","selectedOption","toggledOptions","map","opt","toggleButton","componentWillLoad","addEventListener","componentDidLoad","i","toString","tabIndex","classList","add","disconnectedCallback","removeEventListener","toggle","customEv","CustomEvent","render","h","Host","role","tabindex","class","onFocus"],"sources":["../web-components/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css?tag=ic-toggle-button-group&encapsulation=shadow","../web-components/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/* PARENT HOST */\n\n:root {\n display: block;\n}\n\n:host {\n display: flex;\n flex-direction: row;\n width: -moz-fit-content;\n width: fit-content;\n min-width: -moz-min-content;\n min-width: min-content;\n border: var(--ic-border-width) solid var(--ic-action-default);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.full-width) {\n width: 100%;\n max-width: 100%;\n}\n\n:host(.loading) {\n min-width: -moz-max-content;\n min-width: max-content;\n}\n\n:host(:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n/* CHILDREN SLOTTED */\n\n::slotted(ic-toggle-button) {\n flex-grow: 1;\n width: -moz-min-content;\n width: min-content;\n\n --toggle-button-border: none;\n}\n\n::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid var(--ic-action-default);\n}\n\n/* DISABLED */\n:host(.disabled) {\n border: var(--ic-border-disabled);\n pointer-events: none;\n}\n\n:host(.disabled) ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-disabled);\n}\n\n/* DARK */\n:host(.dark) {\n border: var(--ic-border-width) solid var(--ic-action-dark);\n}\n\n:host(.dark) ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid var(--ic-action-dark);\n}\n\n/* LIGHT */\n:host(.light) ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid var(--ic-action-light);\n}\n\n:host(.light) {\n border: var(--ic-border-width) solid var(--ic-action-light);\n}\n","import { Host, h, } from \"@stencil/core\";\nconst TOGGLE_GROUP = \"IC-TOGGLE-BUTTON-GROUP\";\nexport class ToggleButtonGroup {\n constructor() {\n this.keyListener = (ev) => {\n this.lastKeyPressed = {\n key: ev.key,\n shift: ev.shiftKey,\n };\n };\n this.setSlottedAria = (el) => {\n const btn = el.shadowRoot\n .querySelector(\"ic-button\")\n .shadowRoot.querySelector(\"button\");\n let aria = btn.getAttribute(\"aria-label\");\n aria += \", \";\n aria += this.accessibleLabel;\n btn.setAttribute(\"aria-label\", aria);\n };\n this.handleHostFocus = (ev) => {\n if (this.loading || this.disabled) {\n return null;\n }\n const el = ev.target;\n const relEl = ev.relatedTarget;\n const toggleButtons = Array.from(el.querySelectorAll(\"ic-toggle-button\"));\n if (((toggleButtons.every((el) => !el.toggleChecked) ||\n this.selectType !== \"single\") &&\n this.lastKeyPressed.shift === false) ||\n (toggleButtons.every((el) => !el.toggleChecked) &&\n this.lastKeyPressed.shift === true &&\n relEl.tagName == TOGGLE_GROUP)) {\n toggleButtons[0].focus();\n }\n else if (this.lastKeyPressed.shift === false ||\n (this.lastKeyPressed.shift === true && relEl.tagName == TOGGLE_GROUP)) {\n // if toggleChecked is true and selectMethod is \"single\", focus that toggle\n const toggledButton = toggleButtons.filter((el) => el.toggleChecked);\n toggledButton[0].focus();\n }\n };\n this.handleKeyDown = (event) => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const focussedChild = toggleButtonOptions.indexOf(toggleButtonOptions.filter((el) => el === document.activeElement)[0]);\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.selectMethod === \"auto\"\n ? this.proxySelectHandler(toggleButtonOptions[this.getNextItemToSelect(focussedChild, true)])\n : toggleButtonOptions[this.getNextItemToSelect(focussedChild, true)].focus();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.selectMethod === \"auto\"\n ? this.proxySelectHandler(toggleButtonOptions[this.getNextItemToSelect(focussedChild, false)])\n : toggleButtonOptions[this.getNextItemToSelect(focussedChild, false)].focus();\n break;\n case \"Tab\":\n break;\n }\n };\n this.getNextItemToSelect = (currentItem, movingDown) => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const numToggles = toggleButtonOptions.length - 1;\n if (currentItem < 1) {\n currentItem = 0;\n }\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n if (nextItem < 0) {\n nextItem = numToggles;\n }\n else if (nextItem > numToggles) {\n nextItem = 0;\n }\n if (toggleButtonOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n return nextItem;\n };\n this.lastKeyPressed = {\n key: null,\n shift: false,\n };\n this.accessibleLabel = \"Toggle button group\";\n this.appearance = \"default\";\n this.disabled = false;\n this.fullWidth = false;\n this.iconPlacement = undefined;\n this.loading = false;\n this.selectMethod = \"manual\";\n this.selectType = \"single\";\n this.size = \"default\";\n this.variant = \"default\";\n }\n selectHandler(ev, tabTarget) {\n const allToggles = this.getAllToggleButtons();\n let clickedToggle = ev.target;\n // tabTarget used in proxySelectHandler\n tabTarget && tabTarget.focus();\n if (this.selectType === \"single\") {\n if (!clickedToggle) {\n clickedToggle = tabTarget;\n }\n allToggles.forEach((el) => {\n if (el.id !== clickedToggle.id && el.toggleChecked) {\n el.toggleChecked = false;\n }\n });\n this.icChange.emit({\n toggleChecked: ev.detail.toggleChecked,\n selectedOption: clickedToggle,\n });\n }\n else {\n const toggledOptions = this.getAllToggleButtons().filter((el) => el.toggleChecked && !el.disabled);\n this.icChange.emit({\n toggleChecked: toggledOptions.map((opt) => opt.toggleChecked),\n toggledOptions: toggledOptions.map((opt) => ({\n toggleButton: opt,\n })),\n selectedOption: clickedToggle,\n });\n }\n }\n componentWillLoad() {\n this.selectType === \"multi\" && (this.selectMethod = \"manual\");\n this.selectMethod === \"auto\" && this.selectType === \"single\";\n document.addEventListener(\"keydown\", this.keyListener);\n }\n componentDidLoad() {\n this.getAllToggleButtons().forEach((el, i) => {\n this.setSlottedAria(el);\n el.size = this.size;\n el.loading = this.loading;\n el.iconPlacement = this.iconPlacement;\n el.disabled ? null : (el.disabled = this.disabled);\n el.appearance = this.appearance;\n el.variant = this.variant;\n el.fullWidth = this.fullWidth;\n el.id = i.toString();\n el.tabIndex = -1;\n el.addEventListener(\"keydown\", (ev) => {\n this.handleKeyDown(ev);\n });\n el.classList.add(\"expand-toggle-group-child\");\n });\n }\n disconnectedCallback() {\n document === null || document === void 0 ? void 0 : document.removeEventListener(\"keydown\", this.keyListener);\n }\n // trigger selectHandler when unable to add 'target'\n proxySelectHandler(toggle) {\n toggle.toggleChecked = true;\n const customEv = new CustomEvent(\"icToggleChecked\", {\n detail: {\n toggleChecked: toggle.toggleChecked,\n },\n });\n this.selectHandler(customEv, toggle);\n }\n getAllToggleButtons() {\n return Array.from(this.el.querySelectorAll(\"ic-toggle-button\"));\n }\n render() {\n return (h(Host, { role: \"group\", \"aria-label\": this.accessibleLabel, \"aria-disabled\": this.disabled ? \"true\" : \"false\", tabindex: 0, class: {\n [\"full-width\"]: this.fullWidth,\n [\"loading\"]: this.loading,\n [\"disabled\"]: this.disabled,\n [`${this.appearance}`]: true,\n }, onFocus: this.handleHostFocus }, h(\"slot\", null)));\n }\n static get is() { return \"ic-toggle-button-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-toggle-button-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-toggle-button-group.css\"]\n };\n }\n static get properties() {\n return {\n \"accessibleLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The accessible label of the toggle button group component to provide context for screen reader users.\"\n },\n \"attribute\": \"accessible-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Toggle button group\\\"\"\n },\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForeground\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForeground\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForeground\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the toggle button group, e.g dark, or light.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button group will be set to the disabled state.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button group will fill the width of the container.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"iconPlacement\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"resolved\": \"\\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The placement of the icons in relation to the toggle button labels.\"\n },\n \"attribute\": \"icon-placement\",\n \"reflect\": false\n },\n \"loading\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button group will be in loading state.\"\n },\n \"attribute\": \"loading\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"selectMethod\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"IcSelectMethodTypes\",\n \"resolved\": \"\\\"auto\\\" | \\\"manual\\\"\",\n \"references\": {\n \"IcSelectMethodTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSelectMethodTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `auto`, controls are toggled automatically when navigated to. If `manual`, the controls must be actioned to change their toggled state. The value of this prop is ignored if `selectType` is set to`multi`.\"\n },\n \"attribute\": \"select-method\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"manual\\\"\"\n },\n \"selectType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSelectTypes\",\n \"resolved\": \"\\\"multi\\\" | \\\"single\\\"\",\n \"references\": {\n \"IcSelectTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSelectTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets whether single or multiple options can be toggled. If `multi`, then the `selectMethod` is always `manual`.\"\n },\n \"attribute\": \"select-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"single\\\"\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the toggle buttons to be displayed. This does not affect the font size of the accessible label.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"resolved\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the toggle button.\"\n },\n \"attribute\": \"variant\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"default\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"lastKeyPressed\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a toggle button is selected.\"\n },\n \"complexType\": {\n \"original\": \"IcChangeEventDetail\",\n \"resolved\": \"IcChangeEventDetail\",\n \"references\": {\n \"IcChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-toggle-button-group.types\",\n \"id\": \"src/components/ic-toggle-button-group/ic-toggle-button-group.types.ts::IcChangeEventDetail\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"icToggleChecked\",\n \"method\": \"selectHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-toggle-button-group.js.map\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icCardHorizontalCss","Card","this","hostMutationObserver","hostMutationCallback","mutationList","some","type","addedNodes","removedNodes","checkSlotInChildMutations","forceUpdate","parentFocussed","isFocussed","parentBlurred","disconnectedCallback","parentIsAnchorTag","parentEl","removeEventListener","_a","disconnect","componentWillLoad","el","parentElement","tagName","clickable","classList","add","addEventListener","removeDisabledFalse","disabled","componentDidLoad","isSlotUsed","onComponentRequiredPropUndefined","prop","heading","propName","updateTheme","MutationObserver","observe","childList","handleHostClick","event","stopImmediatePropagation","themeChangeHandler","ev","theme","detail","mode","setFocus","shadowRoot","querySelector","focus","newTheme","foregroundColor","getThemeFromContext","IcThemeForegroundEnum","Default","appearance","render","message","href","hreflang","referrerpolicy","rel","target","size","Component","undefined","attrs","hrefLang","referrerPolicy","h","Object","assign","class","Dark","tabindex","name","variant"],"sources":["src/components/ic-card-horizontal/ic-card-horizontal.css?tag=ic-card-horizontal&encapsulation=shadow","src/components/ic-card-horizontal/ic-card-horizontal.tsx"],"sourcesContent":["@import \"../../../dist/core/normalize.css\";\n\n/**\n * @prop --card-horizontal-width: Width of the horizontal card\n */\n\n:host {\n display: flex;\n\n --card-max-width: 548px;\n --image-size: 114px;\n --message-max-lines: 2;\n}\n\n.card.small {\n --card-max-width: 360px;\n}\n\n.card.large {\n --card-max-width: 720px;\n --image-size: 142px;\n --message-max-lines: 3;\n}\n\n.card.extra-large {\n --card-max-width: 1130px;\n --image-size: 186px;\n --message-max-lines: 5;\n}\n\na {\n text-decoration: none !important;\n color: var(--ic-architectural-black) !important;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n padding: 0;\n}\n\n.card,\n.card.clickable {\n display: flex;\n flex-direction: row;\n border: var(--ic-border-default);\n border-radius: var(--ic-border-radius);\n box-sizing: border-box;\n text-align: left;\n color: var(--ic-architectural-black);\n transition: var(--ic-easing-transition-fast);\n position: relative;\n max-width: var(--card-max-width);\n height: fit-content;\n width: var(--card-horizontal-width, fit-content);\n}\n\n.dark.card,\n.dark.card.clickable {\n border: var(--ic-border-width) solid var(--ic-architectural-700);\n}\n\n.card.clickable:hover {\n background-color: var(--ic-action-default-bg-hover);\n border: var(--ic-border-hover);\n cursor: pointer;\n}\n\n.card.clickable:focus,\n.card.clickable.focussed {\n background-color: var(--ic-action-default-bg-hover);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border: var(--ic-border-pressed);\n}\n\n.card.clickable:active {\n background-color: var(--ic-action-default-bg-active);\n box-shadow: var(--ic-border-focus);\n}\n\n.card.disabled {\n border: var(--ic-border-disabled);\n}\n\n.card-header {\n display: flex;\n align-items: center;\n}\n\n.icon {\n display: flex;\n align-items: center;\n padding-right: var(--ic-space-xs);\n}\n\n.card.disabled ::slotted(svg) {\n fill: var(--ic-color-tertiary-text);\n}\n\n.card.clickable .card-title {\n color: var(--ic-hyperlink);\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n}\n\n.card.clickable:hover .card-title,\n.card.clickable:focus .card-title,\n.card.clickable.focussed .card-title {\n display: inline-block;\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n.card.clickable:active .card-title {\n text-decoration: none;\n}\n\n.card.disabled .card-title {\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n text-decoration-color: var(--ic-color-tertiary-text);\n color: var(--ic-color-tertiary-text);\n}\n\n.card-message {\n margin-top: var(--ic-space-xxxs);\n align-items: left;\n}\n\n.card.disabled .card-message {\n color: var(--ic-color-tertiary-text);\n}\n\n.image {\n display: flex;\n height: var(--image-size);\n width: var(--image-size);\n border-radius: var(--ic-border-radius);\n}\n\n.card-content {\n display: flex;\n flex-direction: column;\n padding: var(--ic-space-md);\n}\n\n.card .card-title ::slotted([slot=\"heading\"]),\n.card .card-title ic-typography p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: calc(var(--card-max-width) - var(--ic-space-xl));\n}\n\n.card.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-icon .card-title ic-typography p {\n max-width: calc(var(--card-max-width) - (2 * var(--ic-space-xl)));\n}\n\n.card.with-image .card-title ::slotted([slot=\"heading\"]),\n.card.with-image .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - var(--ic-space-xl)\n );\n}\n\n.card.with-image.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-image.with-icon .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - (2 * var(--ic-space-xl))\n );\n}\n\n.card .card-message ::slotted([slot=\"message\"]),\n.card .card-message ic-typography {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n line-clamp: var(--message-max-lines, initial);\n -webkit-line-clamp: var(--message-max-lines, initial);\n overflow: hidden;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .card ::slotted(svg) {\n fill: currentcolor;\n }\n\n .card.disabled ::slotted(svg) {\n fill: GrayText !important;\n }\n\n .card.disabled {\n border-color: GrayText !important;\n }\n\n .card.disabled .card-message,\n .card.disabled .card-title {\n color: GrayText;\n }\n}\n\n/* Add back in after storybook has the `color-scheme: light dark` code */\n\n/* @media (prefers-color-scheme: dark) and (not (forced-colors: active)) {\n ::slotted([slot=\"icon\"]) {\n fill: var(--ic-architectural-white);\n }\n} */\n","import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getThemeFromContext,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { IcCardSizes } from \"./ic-card-horizontal.types\";\n\n/**\n * @slot heading - Content will be placed at the top of the horizontal card to the right of the icon.\n * @slot message - Content will be placed in the main body of the horizontal card.\n * @slot image - Content will be placed to the left of all other content.\n * @slot icon - Content will be placed to the left of the horizontal card heading.\n * @slot badge - Badge component overlaying the top right of the horizontal card.\n */\n@Component({\n tag: \"ic-card-horizontal\",\n styleUrl: \"ic-card-horizontal.css\",\n shadow: true,\n})\nexport class Card {\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcCardHorizontalElement;\n\n @State() appearance?: IcThemeForeground = \"default\";\n @State() isFocussed: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the horizontal card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n\n /**\n * If `true`, the horizontal card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The heading for the horizontal card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable horizontal card link points to. If set, the clickable horizontal card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the horizontal card.\n */\n @Prop() message?: 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 size of the horizontal card.\n */\n @Prop() size: IcCardSizes = \"medium\";\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 disconnectedCallback(): void {\n if (this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\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 /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n } else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"image\")\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme || null);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n render() {\n const {\n clickable,\n disabled,\n heading,\n message,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n parentIsAnchorTag,\n isFocussed,\n size,\n } = this;\n\n const Component = parentIsAnchorTag\n ? \"div\"\n : clickable\n ? this.href === undefined\n ? \"button\"\n : \"a\"\n : \"div\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Component\n class={{\n [\"card\"]: true,\n [\"clickable\"]: clickable && !disabled,\n [\"disabled\"]: disabled,\n [\"focussed\"]: isFocussed,\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n [`${size}`]: true,\n [\"with-icon\"]: isSlotUsed(this.el, \"icon\"),\n [\"with-image\"]: isSlotUsed(this.el, \"image\"),\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : null}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled ? true : null}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image\") && (\n <div class={{ [\"image\"]: true }}>\n <slot name=\"image\"></slot>\n </div>\n )}\n <div class=\"card-content\">\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n </div>\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div\n class={{\n [\"card-message\"]: true,\n }}\n >\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n </div>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Component>\n );\n }\n}\n"],"mappings":"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"}