@ukic/web-components 2.18.0 → 2.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (511) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-d52cddc1.js → helpers-88e018cf.js} +27 -4
  3. package/dist/cjs/helpers-88e018cf.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +11 -2
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-badge.cjs.entry.js +18 -17
  10. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +41 -86
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-chip.cjs.entry.js +25 -2
  19. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-dialog.cjs.entry.js +14 -4
  22. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +4 -4
  31. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-link.cjs.entry.js +33 -15
  34. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-navigation-button.cjs.entry.js +26 -5
  38. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-navigation-group.cjs.entry.js +16 -13
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-item.cjs.entry.js +29 -33
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  47. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-radio-group.cjs.entry.js +40 -26
  50. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -4
  52. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-select.cjs.entry.js +24 -6
  55. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-step.cjs.entry.js +5 -2
  60. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
  62. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab-context.cjs.entry.js +18 -2
  65. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-text-field.cjs.entry.js +26 -7
  70. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-theme.cjs.entry.js +3 -10
  72. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-top-navigation.cjs.entry.js +46 -60
  76. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-typography.cjs.entry.js +11 -35
  78. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  79. package/dist/cjs/loader.cjs.js +1 -1
  80. package/dist/cjs/types-dc22e301.js.map +1 -1
  81. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +32 -2
  82. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  83. package/dist/collection/components/ic-badge/ic-badge.js +20 -19
  84. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  85. package/dist/collection/components/ic-badge/ic-badge.types.js.map +1 -1
  86. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +2 -2
  87. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  88. package/dist/collection/components/ic-button/ic-button.css +2 -1
  89. package/dist/collection/components/ic-button/ic-button.js +41 -83
  90. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  91. package/dist/collection/components/ic-chip/ic-chip.css +4 -3
  92. package/dist/collection/components/ic-chip/ic-chip.js +51 -1
  93. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  94. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +44 -0
  95. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
  96. package/dist/collection/components/ic-dialog/ic-dialog.js +13 -3
  97. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  98. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +50 -0
  99. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  100. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +1 -1
  101. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  102. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +16 -3
  103. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  104. package/dist/collection/components/ic-link/ic-link.js +33 -15
  105. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  106. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +12 -0
  107. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
  108. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +6 -2
  109. package/dist/collection/components/ic-menu/ic-menu.js +2 -2
  110. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  111. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +26 -5
  112. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  113. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +11 -0
  114. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
  115. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  116. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +14 -11
  117. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  118. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
  119. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +28 -32
  120. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  121. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  122. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  123. package/dist/collection/components/ic-radio-group/ic-radio-group.js +39 -25
  124. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  125. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +30 -0
  126. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  127. package/dist/collection/components/ic-radio-option/ic-radio-option.js +32 -3
  128. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  129. package/dist/collection/components/ic-select/ic-select.js +24 -6
  130. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  131. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +37 -0
  132. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  133. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +2 -2
  134. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  135. package/dist/collection/components/ic-step/ic-step.css +93 -1
  136. package/dist/collection/components/ic-step/ic-step.js +3 -0
  137. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  138. package/dist/collection/components/ic-stepper/ic-stepper.js +19 -0
  139. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  140. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +18 -0
  141. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  142. package/dist/collection/components/ic-tab/ic-tab.types.js.map +1 -1
  143. package/dist/collection/components/ic-tab-context/ic-tab-context.js +18 -2
  144. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  145. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +2 -0
  146. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  147. package/dist/collection/components/ic-text-field/ic-text-field.js +26 -7
  148. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  149. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js +12 -0
  150. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js.map +1 -1
  151. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +11 -0
  152. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  153. package/dist/collection/components/ic-theme/ic-theme.js +3 -10
  154. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  155. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +21 -24
  156. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +68 -59
  157. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  158. package/dist/collection/components/ic-typography/ic-typography.css +1 -4
  159. package/dist/collection/components/ic-typography/ic-typography.js +10 -113
  160. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  161. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +0 -25
  162. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  163. package/dist/collection/utils/helpers.js +55 -2
  164. package/dist/collection/utils/helpers.js.map +1 -1
  165. package/dist/collection/utils/types.js.map +1 -1
  166. package/dist/components/helpers.js +26 -3
  167. package/dist/components/helpers.js.map +1 -1
  168. package/dist/components/ic-accordion-group.js +14 -4
  169. package/dist/components/ic-accordion-group.js.map +1 -1
  170. package/dist/components/ic-badge.js +18 -17
  171. package/dist/components/ic-badge.js.map +1 -1
  172. package/dist/components/ic-button2.js +43 -86
  173. package/dist/components/ic-button2.js.map +1 -1
  174. package/dist/components/ic-card.js +1 -1
  175. package/dist/components/ic-checkbox-group.js +1 -1
  176. package/dist/components/ic-checkbox.js +1 -1
  177. package/dist/components/ic-chip.js +29 -3
  178. package/dist/components/ic-chip.js.map +1 -1
  179. package/dist/components/ic-dialog.js +13 -3
  180. package/dist/components/ic-dialog.js.map +1 -1
  181. package/dist/components/ic-input-component-container2.js +1 -1
  182. package/dist/components/ic-input-component-container2.js.map +1 -1
  183. package/dist/components/ic-link2.js +34 -16
  184. package/dist/components/ic-link2.js.map +1 -1
  185. package/dist/components/ic-loading-indicator2.js +1 -1
  186. package/dist/components/ic-loading-indicator2.js.map +1 -1
  187. package/dist/components/ic-menu-item2.js +1 -1
  188. package/dist/components/ic-menu2.js +2 -2
  189. package/dist/components/ic-menu2.js.map +1 -1
  190. package/dist/components/ic-navigation-button.js +26 -5
  191. package/dist/components/ic-navigation-button.js.map +1 -1
  192. package/dist/components/ic-navigation-group.js +15 -12
  193. package/dist/components/ic-navigation-group.js.map +1 -1
  194. package/dist/components/ic-navigation-item.js +29 -33
  195. package/dist/components/ic-navigation-item.js.map +1 -1
  196. package/dist/components/ic-pagination-item2.js +1 -1
  197. package/dist/components/ic-pagination.js +5 -5
  198. package/dist/components/ic-pagination.js.map +1 -1
  199. package/dist/components/ic-radio-group.js +40 -26
  200. package/dist/components/ic-radio-group.js.map +1 -1
  201. package/dist/components/ic-radio-option.js +11 -5
  202. package/dist/components/ic-radio-option.js.map +1 -1
  203. package/dist/components/ic-search-bar.js +1 -1
  204. package/dist/components/ic-select.js +25 -7
  205. package/dist/components/ic-select.js.map +1 -1
  206. package/dist/components/ic-side-navigation.js +1 -1
  207. package/dist/components/ic-side-navigation.js.map +1 -1
  208. package/dist/components/ic-step.js +4 -1
  209. package/dist/components/ic-step.js.map +1 -1
  210. package/dist/components/ic-stepper.js +2 -0
  211. package/dist/components/ic-stepper.js.map +1 -1
  212. package/dist/components/ic-switch.js +1 -1
  213. package/dist/components/ic-tab-context.js +18 -2
  214. package/dist/components/ic-tab-context.js.map +1 -1
  215. package/dist/components/ic-tab.js +1 -1
  216. package/dist/components/ic-text-field2.js +27 -8
  217. package/dist/components/ic-text-field2.js.map +1 -1
  218. package/dist/components/ic-theme.js +3 -10
  219. package/dist/components/ic-theme.js.map +1 -1
  220. package/dist/components/ic-toggle-button.js +1 -1
  221. package/dist/components/ic-top-navigation.js +47 -61
  222. package/dist/components/ic-top-navigation.js.map +1 -1
  223. package/dist/components/ic-typography2.js +12 -38
  224. package/dist/components/ic-typography2.js.map +1 -1
  225. package/dist/components/types.js.map +1 -1
  226. package/dist/core/core.css +1 -1
  227. package/dist/core/core.esm.js +1 -1
  228. package/dist/core/core.esm.js.map +1 -1
  229. package/dist/core/{p-0e2628eb.entry.js → p-00c21dd7.entry.js} +2 -2
  230. package/dist/core/p-00c21dd7.entry.js.map +1 -0
  231. package/dist/core/{p-d5f721ca.entry.js → p-02ad4585.entry.js} +2 -2
  232. package/dist/core/{p-fce3e1aa.entry.js → p-03796d51.entry.js} +2 -2
  233. package/dist/core/p-04cc2b25.entry.js +2 -0
  234. package/dist/core/p-04cc2b25.entry.js.map +1 -0
  235. package/dist/core/p-051583a5.entry.js +2 -0
  236. package/dist/core/p-051583a5.entry.js.map +1 -0
  237. package/dist/core/p-078f7f23.entry.js +2 -0
  238. package/dist/core/p-078f7f23.entry.js.map +1 -0
  239. package/dist/core/p-0c097626.entry.js +2 -0
  240. package/dist/core/p-0c097626.entry.js.map +1 -0
  241. package/dist/core/{p-04506779.entry.js → p-1197f0d4.entry.js} +2 -2
  242. package/dist/core/{p-0038a8fd.entry.js → p-1a6fab3e.entry.js} +2 -2
  243. package/dist/core/p-1b1270a1.entry.js +2 -0
  244. package/dist/core/p-1b1270a1.entry.js.map +1 -0
  245. package/dist/core/{p-2680b736.entry.js → p-1c3b619f.entry.js} +2 -2
  246. package/dist/core/p-24bed047.entry.js +2 -0
  247. package/dist/core/{p-916f4265.entry.js.map → p-24bed047.entry.js.map} +1 -1
  248. package/dist/core/p-26b7b18f.js.map +1 -1
  249. package/dist/core/{p-123b9306.entry.js → p-2b326b17.entry.js} +2 -2
  250. package/dist/core/{p-9c18f048.entry.js → p-2d4e7985.entry.js} +2 -2
  251. package/dist/core/p-2d4e7985.entry.js.map +1 -0
  252. package/dist/core/p-2f91e86a.entry.js +2 -0
  253. package/dist/core/p-2f91e86a.entry.js.map +1 -0
  254. package/dist/core/{p-296b7d74.entry.js → p-328bc6a2.entry.js} +2 -2
  255. package/dist/core/{p-c7c2aa3c.entry.js → p-32e2ae6f.entry.js} +2 -2
  256. package/dist/core/{p-4641518f.entry.js → p-346578e4.entry.js} +2 -2
  257. package/dist/core/p-3f53446c.entry.js +2 -0
  258. package/dist/core/p-3f53446c.entry.js.map +1 -0
  259. package/dist/core/p-44ea7a6d.entry.js +2 -0
  260. package/dist/core/p-44ea7a6d.entry.js.map +1 -0
  261. package/dist/core/{p-c053230d.entry.js → p-498273cb.entry.js} +2 -2
  262. package/dist/core/{p-35b8923f.entry.js → p-4f3fe190.entry.js} +2 -2
  263. package/dist/core/{p-46ecc4c5.entry.js → p-52a4c223.entry.js} +2 -2
  264. package/dist/core/p-52a4c223.entry.js.map +1 -0
  265. package/dist/core/{p-47a9dca9.entry.js → p-5481b048.entry.js} +2 -2
  266. package/dist/core/p-5481b048.entry.js.map +1 -0
  267. package/dist/core/{p-1d352487.entry.js → p-692ccc73.entry.js} +2 -2
  268. package/dist/core/{p-80c3424f.entry.js → p-6f9dcfb5.entry.js} +2 -2
  269. package/dist/core/{p-95d6f3ed.entry.js → p-731515cf.entry.js} +2 -2
  270. package/dist/core/p-74f9082d.entry.js +2 -0
  271. package/dist/core/{p-2f462ec5.entry.js.map → p-74f9082d.entry.js.map} +1 -1
  272. package/dist/core/{p-1ce0d16e.entry.js → p-8153def1.entry.js} +2 -2
  273. package/dist/core/{p-a98f57cf.entry.js → p-8b65be1e.entry.js} +2 -2
  274. package/dist/core/{p-166861e8.entry.js → p-8bc2a670.entry.js} +2 -2
  275. package/dist/core/p-8bc2a670.entry.js.map +1 -0
  276. package/dist/core/{p-dbbea7fa.entry.js → p-8e37e832.entry.js} +2 -2
  277. package/dist/core/p-8ed04819.entry.js +2 -0
  278. package/dist/core/p-8ed04819.entry.js.map +1 -0
  279. package/dist/core/{p-6a9ddb8a.entry.js → p-8fe2b073.entry.js} +2 -2
  280. package/dist/core/{p-d319ddce.entry.js → p-9f29ab99.entry.js} +2 -2
  281. package/dist/core/p-a13236ef.entry.js +2 -0
  282. package/dist/core/{p-a9e1966f.entry.js.map → p-a13236ef.entry.js.map} +1 -1
  283. package/dist/core/{p-8aa9aa25.entry.js → p-adf468f4.entry.js} +2 -2
  284. package/dist/core/{p-b98ce745.entry.js → p-af5eacc1.entry.js} +2 -2
  285. package/dist/core/{p-e4863c93.entry.js → p-b451f27c.entry.js} +2 -2
  286. package/dist/core/{p-5603eec3.entry.js → p-ba1c3cf7.entry.js} +2 -2
  287. package/dist/core/p-ba40f44a.entry.js +2 -0
  288. package/dist/core/p-ba40f44a.entry.js.map +1 -0
  289. package/dist/core/p-bceaf300.entry.js +2 -0
  290. package/dist/core/p-bceaf300.entry.js.map +1 -0
  291. package/dist/core/p-c3acbefe.entry.js +2 -0
  292. package/dist/core/p-c3acbefe.entry.js.map +1 -0
  293. package/dist/core/p-c6ac1a01.entry.js +2 -0
  294. package/dist/core/p-c6ac1a01.entry.js.map +1 -0
  295. package/dist/core/{p-22a682e8.entry.js → p-c919c571.entry.js} +2 -2
  296. package/dist/core/p-d19d157d.entry.js +2 -0
  297. package/dist/core/p-d19d157d.entry.js.map +1 -0
  298. package/dist/core/{p-bc7f99b8.entry.js → p-d7f4779d.entry.js} +2 -2
  299. package/dist/core/p-e4d0d1fb.js +2 -0
  300. package/dist/core/p-e4d0d1fb.js.map +1 -0
  301. package/dist/core/{p-a4e7d123.entry.js → p-e5957ce0.entry.js} +2 -2
  302. package/dist/core/p-e68485ee.entry.js +2 -0
  303. package/dist/core/p-e68485ee.entry.js.map +1 -0
  304. package/dist/core/{p-d9329191.entry.js → p-e8e0fa96.entry.js} +2 -2
  305. package/dist/core/p-f50a57f3.entry.js +2 -0
  306. package/dist/core/p-f50a57f3.entry.js.map +1 -0
  307. package/dist/core/p-f8df0716.entry.js +2 -0
  308. package/dist/core/{p-b781b691.entry.js.map → p-f8df0716.entry.js.map} +1 -1
  309. package/dist/core/p-fd737b7e.entry.js +2 -0
  310. package/dist/core/p-fd737b7e.entry.js.map +1 -0
  311. package/dist/esm/core.js +1 -1
  312. package/dist/esm/{helpers-f1ca9908.js → helpers-24ba0b83.js} +27 -4
  313. package/dist/esm/helpers-24ba0b83.js.map +1 -0
  314. package/dist/esm/ic-accordion-group.entry.js +11 -2
  315. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  316. package/dist/esm/ic-accordion.entry.js +1 -1
  317. package/dist/esm/ic-alert.entry.js +1 -1
  318. package/dist/esm/ic-back-to-top.entry.js +1 -1
  319. package/dist/esm/ic-badge.entry.js +18 -17
  320. package/dist/esm/ic-badge.entry.js.map +1 -1
  321. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  322. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  323. package/dist/esm/ic-button_3.entry.js +41 -86
  324. package/dist/esm/ic-button_3.entry.js.map +1 -1
  325. package/dist/esm/ic-card.entry.js +1 -1
  326. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  327. package/dist/esm/ic-checkbox.entry.js +1 -1
  328. package/dist/esm/ic-chip.entry.js +25 -2
  329. package/dist/esm/ic-chip.entry.js.map +1 -1
  330. package/dist/esm/ic-data-row.entry.js +1 -1
  331. package/dist/esm/ic-dialog.entry.js +14 -4
  332. package/dist/esm/ic-dialog.entry.js.map +1 -1
  333. package/dist/esm/ic-divider.entry.js +1 -1
  334. package/dist/esm/ic-empty-state.entry.js +1 -1
  335. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  336. package/dist/esm/ic-footer-link.entry.js +1 -1
  337. package/dist/esm/ic-footer.entry.js +1 -1
  338. package/dist/esm/ic-hero.entry.js +1 -1
  339. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  340. package/dist/esm/ic-input-component-container_3.entry.js +4 -4
  341. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  342. package/dist/esm/ic-input-label_2.entry.js +1 -1
  343. package/dist/esm/ic-link.entry.js +34 -16
  344. package/dist/esm/ic-link.entry.js.map +1 -1
  345. package/dist/esm/ic-menu-group.entry.js +1 -1
  346. package/dist/esm/ic-menu-item.entry.js +1 -1
  347. package/dist/esm/ic-navigation-button.entry.js +27 -6
  348. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  349. package/dist/esm/ic-navigation-group.entry.js +16 -13
  350. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  351. package/dist/esm/ic-navigation-item.entry.js +29 -33
  352. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  353. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  354. package/dist/esm/ic-page-header.entry.js +1 -1
  355. package/dist/esm/ic-pagination-item.entry.js +1 -1
  356. package/dist/esm/ic-pagination.entry.js +5 -5
  357. package/dist/esm/ic-pagination.entry.js.map +1 -1
  358. package/dist/esm/ic-popover-menu.entry.js +1 -1
  359. package/dist/esm/ic-radio-group.entry.js +40 -26
  360. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  361. package/dist/esm/ic-radio-option.entry.js +9 -4
  362. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  363. package/dist/esm/ic-search-bar.entry.js +1 -1
  364. package/dist/esm/ic-select.entry.js +25 -7
  365. package/dist/esm/ic-select.entry.js.map +1 -1
  366. package/dist/esm/ic-side-navigation.entry.js +2 -2
  367. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  368. package/dist/esm/ic-status-tag.entry.js +1 -1
  369. package/dist/esm/ic-step.entry.js +5 -2
  370. package/dist/esm/ic-step.entry.js.map +1 -1
  371. package/dist/esm/ic-stepper.entry.js +2 -1
  372. package/dist/esm/ic-stepper.entry.js.map +1 -1
  373. package/dist/esm/ic-switch.entry.js +1 -1
  374. package/dist/esm/ic-tab-context.entry.js +18 -2
  375. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  376. package/dist/esm/ic-tab-group.entry.js +1 -1
  377. package/dist/esm/ic-tab-panel.entry.js +1 -1
  378. package/dist/esm/ic-tab.entry.js +1 -1
  379. package/dist/esm/ic-text-field.entry.js +27 -8
  380. package/dist/esm/ic-text-field.entry.js.map +1 -1
  381. package/dist/esm/ic-theme.entry.js +3 -10
  382. package/dist/esm/ic-theme.entry.js.map +1 -1
  383. package/dist/esm/ic-toast.entry.js +1 -1
  384. package/dist/esm/ic-toggle-button.entry.js +1 -1
  385. package/dist/esm/ic-top-navigation.entry.js +46 -60
  386. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  387. package/dist/esm/ic-typography.entry.js +12 -36
  388. package/dist/esm/ic-typography.entry.js.map +1 -1
  389. package/dist/esm/loader.js +1 -1
  390. package/dist/esm/polyfills/core-js.js +0 -0
  391. package/dist/esm/polyfills/dom.js +0 -0
  392. package/dist/esm/polyfills/es5-html-element.js +0 -0
  393. package/dist/esm/polyfills/index.js +0 -0
  394. package/dist/esm/polyfills/system.js +0 -0
  395. package/dist/esm/types-6f6b41a5.js.map +1 -1
  396. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +6 -0
  397. package/dist/types/components/ic-badge/ic-badge.d.ts +3 -2
  398. package/dist/types/components/ic-badge/ic-badge.types.d.ts +0 -5
  399. package/dist/types/components/ic-button/ic-button.d.ts +3 -10
  400. package/dist/types/components/ic-chip/ic-chip.d.ts +8 -1
  401. package/dist/types/components/ic-dialog/ic-dialog.d.ts +1 -0
  402. package/dist/types/components/ic-link/ic-link.d.ts +6 -2
  403. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +3 -0
  404. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +2 -2
  405. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +3 -0
  406. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +4 -0
  407. package/dist/types/components/ic-select/ic-select.d.ts +2 -0
  408. package/dist/types/components/ic-stepper/ic-stepper.d.ts +4 -0
  409. package/dist/types/components/ic-tab/ic-tab.types.d.ts +1 -0
  410. package/dist/types/components/ic-text-field/ic-text-field.d.ts +3 -1
  411. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +10 -5
  412. package/dist/types/components/ic-typography/ic-typography.d.ts +1 -18
  413. package/dist/types/components.d.ts +33 -31
  414. package/dist/types/interface.d.ts +0 -1
  415. package/dist/types/utils/helpers.d.ts +18 -7
  416. package/dist/types/utils/types.d.ts +6 -0
  417. package/hydrate/index.js +402 -330
  418. package/package.json +3 -2
  419. package/vscode-data.json +20 -0
  420. package/dist/cjs/helpers-d52cddc1.js.map +0 -1
  421. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js +0 -13
  422. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js.map +0 -1
  423. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js +0 -177
  424. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js.map +0 -1
  425. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +0 -18
  426. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +0 -1
  427. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js +0 -128
  428. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js.map +0 -1
  429. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js +0 -13
  430. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js.map +0 -1
  431. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +0 -33
  432. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +0 -1
  433. package/dist/collection/components/ic-typography/ic-typography.types.js +0 -2
  434. package/dist/collection/components/ic-typography/ic-typography.types.js.map +0 -1
  435. package/dist/core/p-0e2628eb.entry.js.map +0 -1
  436. package/dist/core/p-1183031f.entry.js +0 -2
  437. package/dist/core/p-1183031f.entry.js.map +0 -1
  438. package/dist/core/p-166861e8.entry.js.map +0 -1
  439. package/dist/core/p-210412e4.entry.js +0 -2
  440. package/dist/core/p-210412e4.entry.js.map +0 -1
  441. package/dist/core/p-2f462ec5.entry.js +0 -2
  442. package/dist/core/p-46ecc4c5.entry.js.map +0 -1
  443. package/dist/core/p-477cf469.entry.js +0 -2
  444. package/dist/core/p-477cf469.entry.js.map +0 -1
  445. package/dist/core/p-47a9dca9.entry.js.map +0 -1
  446. package/dist/core/p-47d39ce7.entry.js +0 -2
  447. package/dist/core/p-47d39ce7.entry.js.map +0 -1
  448. package/dist/core/p-4ce5abd7.entry.js +0 -2
  449. package/dist/core/p-4ce5abd7.entry.js.map +0 -1
  450. package/dist/core/p-53f2fc84.js +0 -2
  451. package/dist/core/p-53f2fc84.js.map +0 -1
  452. package/dist/core/p-5e729e99.entry.js +0 -2
  453. package/dist/core/p-5e729e99.entry.js.map +0 -1
  454. package/dist/core/p-64705a03.entry.js +0 -2
  455. package/dist/core/p-64705a03.entry.js.map +0 -1
  456. package/dist/core/p-76ee6107.entry.js +0 -2
  457. package/dist/core/p-76ee6107.entry.js.map +0 -1
  458. package/dist/core/p-7b0397ea.entry.js +0 -2
  459. package/dist/core/p-7b0397ea.entry.js.map +0 -1
  460. package/dist/core/p-916f4265.entry.js +0 -2
  461. package/dist/core/p-91768ddf.entry.js +0 -2
  462. package/dist/core/p-91768ddf.entry.js.map +0 -1
  463. package/dist/core/p-9c18f048.entry.js.map +0 -1
  464. package/dist/core/p-a9e1966f.entry.js +0 -2
  465. package/dist/core/p-aa777792.entry.js +0 -2
  466. package/dist/core/p-aa777792.entry.js.map +0 -1
  467. package/dist/core/p-aa878a3c.entry.js +0 -2
  468. package/dist/core/p-aa878a3c.entry.js.map +0 -1
  469. package/dist/core/p-b781b691.entry.js +0 -2
  470. package/dist/core/p-cf798ea7.entry.js +0 -2
  471. package/dist/core/p-cf798ea7.entry.js.map +0 -1
  472. package/dist/core/p-df090fc1.entry.js +0 -2
  473. package/dist/core/p-df090fc1.entry.js.map +0 -1
  474. package/dist/core/p-e68e31ec.entry.js +0 -2
  475. package/dist/core/p-e68e31ec.entry.js.map +0 -1
  476. package/dist/core/p-fbcb77a3.entry.js +0 -2
  477. package/dist/core/p-fbcb77a3.entry.js.map +0 -1
  478. package/dist/core/p-fea1d095.entry.js +0 -2
  479. package/dist/core/p-fea1d095.entry.js.map +0 -1
  480. package/dist/esm/helpers-f1ca9908.js.map +0 -1
  481. package/dist/types/components/ic-page-header/test/a11y/ic-page-header.test.a11y.d.ts +0 -1
  482. package/dist/types/components/ic-pagination/test/a11y/ic-pagination.test.a11y.d.ts +0 -1
  483. package/dist/types/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.d.ts +0 -1
  484. package/dist/types/components/ic-typography/ic-typography.types.d.ts +0 -4
  485. /package/dist/core/{p-d5f721ca.entry.js.map → p-02ad4585.entry.js.map} +0 -0
  486. /package/dist/core/{p-fce3e1aa.entry.js.map → p-03796d51.entry.js.map} +0 -0
  487. /package/dist/core/{p-04506779.entry.js.map → p-1197f0d4.entry.js.map} +0 -0
  488. /package/dist/core/{p-0038a8fd.entry.js.map → p-1a6fab3e.entry.js.map} +0 -0
  489. /package/dist/core/{p-2680b736.entry.js.map → p-1c3b619f.entry.js.map} +0 -0
  490. /package/dist/core/{p-123b9306.entry.js.map → p-2b326b17.entry.js.map} +0 -0
  491. /package/dist/core/{p-296b7d74.entry.js.map → p-328bc6a2.entry.js.map} +0 -0
  492. /package/dist/core/{p-c7c2aa3c.entry.js.map → p-32e2ae6f.entry.js.map} +0 -0
  493. /package/dist/core/{p-4641518f.entry.js.map → p-346578e4.entry.js.map} +0 -0
  494. /package/dist/core/{p-c053230d.entry.js.map → p-498273cb.entry.js.map} +0 -0
  495. /package/dist/core/{p-35b8923f.entry.js.map → p-4f3fe190.entry.js.map} +0 -0
  496. /package/dist/core/{p-1d352487.entry.js.map → p-692ccc73.entry.js.map} +0 -0
  497. /package/dist/core/{p-80c3424f.entry.js.map → p-6f9dcfb5.entry.js.map} +0 -0
  498. /package/dist/core/{p-95d6f3ed.entry.js.map → p-731515cf.entry.js.map} +0 -0
  499. /package/dist/core/{p-1ce0d16e.entry.js.map → p-8153def1.entry.js.map} +0 -0
  500. /package/dist/core/{p-a98f57cf.entry.js.map → p-8b65be1e.entry.js.map} +0 -0
  501. /package/dist/core/{p-dbbea7fa.entry.js.map → p-8e37e832.entry.js.map} +0 -0
  502. /package/dist/core/{p-6a9ddb8a.entry.js.map → p-8fe2b073.entry.js.map} +0 -0
  503. /package/dist/core/{p-d319ddce.entry.js.map → p-9f29ab99.entry.js.map} +0 -0
  504. /package/dist/core/{p-8aa9aa25.entry.js.map → p-adf468f4.entry.js.map} +0 -0
  505. /package/dist/core/{p-b98ce745.entry.js.map → p-af5eacc1.entry.js.map} +0 -0
  506. /package/dist/core/{p-e4863c93.entry.js.map → p-b451f27c.entry.js.map} +0 -0
  507. /package/dist/core/{p-5603eec3.entry.js.map → p-ba1c3cf7.entry.js.map} +0 -0
  508. /package/dist/core/{p-22a682e8.entry.js.map → p-c919c571.entry.js.map} +0 -0
  509. /package/dist/core/{p-bc7f99b8.entry.js.map → p-d7f4779d.entry.js.map} +0 -0
  510. /package/dist/core/{p-a4e7d123.entry.js.map → p-e5957ce0.entry.js.map} +0 -0
  511. /package/dist/core/{p-d9329191.entry.js.map → p-e8e0fa96.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as o,H as i,g as a}from"./p-6b5e91e2.js";import{j as r,a as c,i as n}from"./p-53f2fc84.js";import"./p-26b7b18f.js";const s='/*! 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{--button-border:var(\n --toggle-button-border,\n var(--ic-border-width) solid var(--ic-action-default)\n )}:host(.dark){--button-border:var(\n --toggle-button-border,\n var(--ic-border-width) solid var(--ic-action-dark)\n )}:host(.light){--button-border:var(\n --toggle-button-border,\n var(--ic-border-width) solid var(--ic-action-light)\n )}:host(.disabled){--button-border:var(--toggle-button-border, var(--ic-border-disabled))}:host(.expand-toggle-group-child) ::part(button){width:100%;min-height:inherit;white-space:inherit;height:inherit}:host(.expand-toggle-group-child) ic-button{min-width:100%;min-height:100%;white-space:normal;height:100%}:host(.expand-toggle-group-child) ::part(button):focus,:host(.expand-toggle-group-child.checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus)}:host(.expand-toggle-group-child.light) ::part(button):focus,:host(.expand-toggle-group-child.dark) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-dark),\n var(--ic-border-focus)}:host(:focus){z-index:1}:host ::part(button){border:var(--button-border)}:host(.checked) ::part(button){background-color:var(--ic-action-default);color:var(--ic-architectural-white);box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-white)}:host(.checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-white),\n var(--ic-border-focus)}:host(.checked) ::part(button):hover{background-color:var(--button-default-hover)}:host(.checked) ::part(button):active,:host(.icon.checked) ::part(button):active{background-color:var(--ic-action-default-active)}:host(.dark.checked) ::part(button){background-color:var(--ic-action-dark)}:host(.dark.checked) ::part(button):hover{background-color:var(--ic-action-dark-hover)}:host(.dark.checked) ::part(button):active,:host(.icon.dark.checked) ::part(button):active{background-color:var(--ic-action-dark-active)}:host(.light.checked) ::part(button){background-color:var(--ic-action-light);color:var(--ic-color-primary-text);box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-black)}:host(.light.checked) ::part(button):hover{background-color:var(--ic-action-light-hover)}:host(.light.checked) ::part(button):active,:host(.icon.light.checked) ::part(button):active{background-color:var(--ic-action-light-active)}:host(.light.checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-black),\n var(--ic-border-focus)}:host(.disabled) ::part(button),:host(.icon.disabled) ::part(button){border:var(--button-border)}:host(.disabled.checked) ::part(button),:host(.icon.disabled.checked) ::part(button){background-color:transparent}:host(.disabled.checked) ::part(button),:host(.icon.disabled.checked) ::part(button)::before{background-image:radial-gradient(var(--ic-architectural-400) 95%, white 20%);background-repeat:no-repeat}:host(.icon) ::part(button){border:var(--button-border);height:calc(var(--ic-space-xl) + var(--ic-space-xs));width:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.icon) ::part(button):active{background-color:var(--ic-action-default-bg-active)}:host(.icon.dark) ::part(button):active{background-color:var(--ic-action-dark-bg-active)}:host(.icon.light) ::part(button):active{background-color:var(--ic-action-light-bg-active)}:host(.icon.small) ::part(button){height:var(--ic-space-xl);width:var(--ic-space-xl)}:host(.icon.large) ::part(button){height:var(--ic-space-xxl);width:var(--ic-space-xxl)}:host(.checked.loading) ::part(button){background-color:var(--button-default-active)}:host(.loading) ::part(ic-loading-container){--inner-color:var(--ic-architectural-white)}:host(.checked.loading.light) ::part(button){background-color:var(--ic-action-light-active)}:host(.checked.loading.dark) ::part(button){background-color:var(--ic-action-dark-active)}';const d=class{constructor(o){t(this,o);this.icToggleChecked=e(this,"icToggleChecked",7);this.handleFocus=t=>{t.stopImmediatePropagation()};this.handleClick=()=>{!this.loading&&!this.disabled&&this.icToggleChecked.emit({checked:this.toggleChecked})};this.accessibleLabel=undefined;this.appearance="default";this.disabled=false;this.fullWidth=false;this.iconPlacement=undefined;this.label=undefined;this.loading=false;this.size="default";this.toggleChecked=false;this.variant="default"}componentWillLoad(){r(this.disabled,this.el)}componentDidLoad(){c([{prop:this.variant==="icon"?this.accessibleLabel:this.label,propName:this.variant==="icon"?"accessible-label":"label"}],"Toggle button")}handleHostClick(t){if(this.disabled){t.stopImmediatePropagation()}else if(!this.loading){this.toggleChecked=!this.toggleChecked}}render(){return o(i,{class:{["disabled"]:this.disabled,["checked"]:this.toggleChecked,[`${this.appearance}`]:true,["icon"]:this.variant==="icon",[`${this.size}`]:true,["loading"]:this.loading},onFocus:this.handleFocus},o("ic-button",{"aria-pressed":this.toggleChecked.toString(),variant:this.variant==="icon"?"icon":"secondary",onClick:this.handleClick,title:this.accessibleLabel,"aria-label":`${this.accessibleLabel?this.accessibleLabel:this.label}, ${this.toggleChecked?"ticked":"unticked"}`,disabled:this.disabled,appearance:this.appearance,size:this.size,fullWidth:this.fullWidth,loading:this.loading,"aria-disabled":`${this.disabled}`},this.variant!=="icon"&&this.label,o("slot",null),n(this.el,"icon")&&o("slot",{name:"icon",slot:`${this.iconPlacement?`${this.iconPlacement}-icon`:"icon"}`}),n(this.el,"badge")&&o("slot",{name:"badge",slot:"badge"})))}static get delegatesFocus(){return true}get el(){return a(this)}};d.style=s;export{d as ic_toggle_button};
2
- //# sourceMappingURL=p-916f4265.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as i,h as t,H as e,g as o}from"./p-6b5e91e2.js";import{D as s,u as n,e as a,y as r}from"./p-53f2fc84.js";import{C as h}from"./p-3b185c32.js";import"./p-26b7b18f.js";const d='/*! 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{display:block}:host(.in-side-menu){border-bottom:var(--ic-border-width) solid var(--ic-architectural-200);padding:var(--ic-space-md) 0}:host .navigation-group{height:100%;width:-moz-fit-content;width:fit-content;color:var(--ic-theme-text);display:flex;align-items:center;justify-content:center;padding:0 var(--ic-space-md);transition:var(--ic-easing-transition-slow);position:relative;background:none;border:none}:host(.in-side-menu) .navigation-group{height:2.5rem;width:100%;text-align:left}:host(.in-side-menu) .navigation-group .ic-typography-label{width:11.875rem}:host(.in-side-menu) .navigation-group-side-menu{color:var(--ic-action-default);justify-content:flex-start;padding:0 var(--ic-space-md) 0 var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-collapsed,:host(.in-side-menu) .navigation-group-side-menu-expanded{color:var(--ic-action-default);justify-content:flex-start;padding-left:var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-expanded{margin-bottom:var(--ic-space-xs)}:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,:host(.in-side-menu) .navigation-group-side-menu-expanded::after{border-style:solid;border-width:0.125em 0.125em 0 0;content:"";display:inline-block;height:0.45em;left:0.75em;position:relative;top:-0.1em;transform:rotate(135deg);vertical-align:top;width:0.45em}:host(.in-side-menu) .navigation-group-side-menu-expanded::after{top:0.15em;transform:rotate(-45deg)}:host .navigation-group:hover,:host .navigation-group:active,:host .selected{background-color:var(--ic-architectural-20);color:var(--ic-color-primary-text);outline:none;cursor:pointer}:host(:not(.in-side-menu)) .navigation-group:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);z-index:var(--ic-z-index-navigation-item);transition:box-shadow var(--ic-easing-transition-fast)}:host(.in-side-menu) .navigation-group-side-menu:hover,:host(.in-side-menu) .navigation-group-side-menu:active,:host(.in-side-menu) .navigation-group-side-menu:focus{background-color:var(--ic-architectural-20);color:var(--ic-action-default);cursor:auto;box-shadow:none;outline:none}:host(.in-side-menu) .navigation-group-side-menu:focus{outline:var(--ic-hc-focus-outline)}:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus){background-color:var(--ic-action-dark-bg-hover);color:var(--ic-action-default);cursor:pointer}:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus){background-color:var(--ic-action-dark-bg-active);color:var(--ic-action-default)}:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus{color:var(--ic-action-default);box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);outline:var(--ic-hc-focus-outline)}:host .navigation-group-dropdown{background-color:var(--ic-architectural-20);border-bottom:var(--ic-border-default);position:absolute;left:0;right:0;padding:var(--ic-space-xs) var(--ic-space-md);box-shadow:0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);z-index:calc(var(--ic-z-index-navigation-item) - 1)}:host .navigation-group-dropdown-items-list{list-style:none;display:flex;flex-flow:column wrap;align-content:flex-start;padding-left:var(--ic-space-md);max-height:16.5rem}:host .chevron-toggle-icon-wrapper{display:flex;align-items:center}:host .chevron-toggle-icon-wrapper svg{transform:rotate(90deg);height:var(--ic-space-lg);width:var(--ic-space-lg)}:host .chevron-toggle-icon-closed svg{transform:rotate(-90deg)}:host(.expanded) .grouped-links-wrapper{height:var(--navigation-child-items-height, auto) !important;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.navigation-group-side-nav) .link,:host(.navigation-group-side-nav) ::slotted(a){height:var(--navigation-child-items-height, auto)}:host(.collapsed) .grouped-links-wrapper{height:0;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.navigation-group-side-nav) .navigation-group{height:var(--navigation-group-height);width:var(--navigation-group-width);justify-content:var(--navigation-group-justify-content);padding-right:var(--navigation-group-expand-toggle-padding)}:host(.navigation-group-side-nav) .navigation-group:hover,:host(.navigation-group-side-nav) .navigation-group:active,:host(.navigation-group-side-nav) .selected{background-color:var(--navigation-group-hover);color:var(--navigation-group-text-hover)}:host(.navigation-group-side-nav) .navigation-group:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background:none}:host(.navigation-group-side-nav) .ic-typography-caption{position:var(--navigation-group-title-position);left:var(--navigation-group-title-position-left);white-space:nowrap}';const u=class{constructor(e){i(this,e);this.allGroupedNavigationItems=[];this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS=100;this.IC_NAVIGATION_ITEM="ic-navigation-item";this.mouseGate=false;this.nodeName="IC-NAVIGATION-GROUP";this.GROUPED_LINKS_WRAPPER_CLASS=".grouped-links-wrapper";this.sideNavExpandHandler=i=>{this.isSideNavExpanded=i.detail.sideNavExpanded;const t=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);if(!t)return;if(this.isSideNavExpanded){if(this.expanded&&this.expandedNavItemsHeight){this.setGroupedLinksElementHeight(t,this.expandedNavItemsHeight)}else if(this.expanded){setTimeout((()=>{this.expandedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(t,this.expandedNavItemsHeight)}),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}}else{if(this.expanded&&this.collapsedNavItemsHeight){this.setGroupedLinksElementHeight(t,this.collapsedNavItemsHeight)}else if(this.expanded){setTimeout((()=>{this.collapsedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(t,this.collapsedNavItemsHeight)}),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}}};this.topNavResizedHandler=i=>{const t=i.detail.size;if(t!==this.deviceSize){this.deviceSize=t;this.inTopNavSideMenu=t<=s.L}};this.setGroupedNavItemTabIndex=i=>{this.el.querySelectorAll(this.IC_NAVIGATION_ITEM).forEach((t=>{const e=t.shadowRoot.querySelector("a")||t.querySelector("a");if(e){e.setAttribute("tabindex",i)}}))};this.toggleGroupedLinkWrapperHeight=(i,t)=>{if(!i)return;if(t){if(this.isSideNavExpanded){this.setGroupedLinksElementHeight(i,this.expandedNavItemsHeight)}else{this.setGroupedLinksElementHeight(i,this.collapsedNavItemsHeight)}this.setGroupedNavItemTabIndex("0")}else{i.style.setProperty("--navigation-child-items-height","0");this.setGroupedNavItemTabIndex("-1")}};this.toggleExpanded=()=>{this.expanded=!this.expanded;const i=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);this.toggleGroupedLinkWrapperHeight(i,this.expanded)};this.handleClick=i=>{if(this.navigationType==="top"&&i.detail){this.toggleDropdown()}else{this.toggleExpanded()}};this.handleBlur=i=>{const t=i.relatedTarget;if(!this.el.contains(t)){this.hideDropdown()}};this.handleTopNavKeydown=i=>{if(i.key===" "||i.key==="Enter"){this.toggleDropdown()}else if(!this.inTopNavSideMenu&&i.key==="Escape"){this.hideDropdown()}};this.handleKeydown=i=>{if(i.key==="Enter"||i.key===" "||i.key==="Escape"){switch(this.navigationType){case"top":this.handleTopNavKeydown(i);break;case"side":this.toggleExpanded();i.preventDefault();break;default:this.toggleExpanded();break}}};this.handleMouseLeave=i=>{const t=i.relatedTarget;this.mouseGate=false;if(!this.el.contains(t)&&t!==this.dropdown&&document.activeElement!==this.el&&!this.el.contains(document.activeElement)&&(t===null||t===void 0?void 0:t.nodeName)===this.nodeName&&this.dropdownOpen===true){this.mouseGate=true;this.hideDropdown()}else if(!this.el.contains(t)&&t!==this.dropdown&&!this.el.contains(document.activeElement)){this.mouseGate=false;setTimeout((()=>{this.dropdownOpen?this.hideDropdown():null}),500)}};this.handleMouseEnter=i=>{const t=i.relatedTarget;document.addEventListener("keydown",this.handleKeydown);if((t===null||t===void 0?void 0:t.nodeName)===this.nodeName&&this.mouseGate===true){this.showDropdown()}else if(this.dropdownOpen===false&&t!==null&&this.mouseGate===false){this.mouseGate=true;setTimeout((()=>{this.mouseGate&&this.showDropdown()}),500)}};this.renderDropdownGroupedLinks=()=>t("div",{class:{["navigation-group-dropdown"]:!this.inTopNavSideMenu,["navigation-group-dropdown-side-menu"]:this.inTopNavSideMenu,["selected"]:this.dropdownOpen&&!this.inTopNavSideMenu},onMouseLeave:!this.inTopNavSideMenu?this.handleMouseLeave:null,ref:i=>this.dropdown=i},t("nav",{class:{["navigation-group-dropdown-items"]:!this.inTopNavSideMenu}},t("ul",null,t("slot",null))));this.renderGroupedLinks=()=>t("ul",{class:"grouped-links-wrapper"},t("slot",null));this.getNavigationChildItemsHeight=()=>{let i=0;this.allGroupedNavigationItems.forEach((t=>{i+=t.offsetHeight}));return`${i}px`};this.setInitialGroupedLinksWrapperHeight=()=>{const i=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);if(!i)return;if(!this.isSideNavExpanded&&!this.collapsedNavItemsHeight&&this.expanded){this.collapsedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(i,this.collapsedNavItemsHeight)}if(this.isSideNavExpanded&&this.expanded){this.expandedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(i,this.expandedNavItemsHeight)}};this.renderNavigationItems=()=>{if(this.dropdownOpen||this.inTopNavSideMenu&&!this.expandable){return this.renderDropdownGroupedLinks()}if(this.navigationType!=="top"){return this.renderGroupedLinks()}return null};this.deviceSize=s.XL;this.dropdownOpen=false;this.expanded=true;this.focusStyle=n();this.inTopNavSideMenu=false;this.navigationType=undefined;this.parentEl=undefined;this.expandable=false;this.label=undefined}disconnectedCallback(){if(this.navigationType==="side"){this.parentEl.removeEventListener("sideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){this.parentEl.removeEventListener("topNavResized",this.topNavResizedHandler)}}componentWillLoad(){this.deviceSize=a();const i=r(this.el);this.navigationType=i.navType;this.parentEl=i.parent;if(this.deviceSize<=s.L&&this.navigationType==="top"){this.inTopNavSideMenu=true}if(this.navigationType==="side"){this.parentEl.addEventListener("sideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){this.parentEl.addEventListener("topNavResized",this.topNavResizedHandler)}}componentDidLoad(){this.allGroupedNavigationItems=Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));setTimeout((()=>this.setInitialGroupedLinksWrapperHeight()),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}childBlurHandler(){this.hideDropdown()}navItemClickHandler(){this.hideDropdown()}themeChangeHandler(i){const t=i.detail;this.focusStyle=t.mode}async setFocus(){if(this.groupEl){this.groupEl.focus()}}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen}showDropdown(){if(!this.dropdownOpen){this.toggleDropdown()}}hideDropdown(){document.removeEventListener("keydown",this.handleKeydown);if(this.dropdownOpen){this.toggleDropdown()}}setGroupedLinksElementHeight(i,t){i.style.setProperty("--navigation-child-items-height",t)}render(){const{label:i,dropdownOpen:o,inTopNavSideMenu:s,expandable:n}=this;return t(e,{class:{["in-side-menu"]:s,expanded:this.expanded,collapsed:!this.expanded,["navigation-group-side-nav"]:this.navigationType==="side"},role:"listitem"},t("button",{onMouseEnter:!s&&this.navigationType==="top"&&this.handleMouseEnter,onMouseLeave:this.navigationType==="top"&&this.handleMouseLeave,tabindex:s&&!n?"-1":"0",onBlur:this.handleBlur,onClick:n?this.handleClick:null,onKeyDown:this.handleKeydown,class:{["navigation-group"]:true,[this.focusStyle]:!s,["navigation-group-side-menu"]:s&&!n,["navigation-group-side-menu-collapsed"]:s&&n&&!o,["navigation-group-side-menu-expanded"]:s&&n&&o,["selected"]:o&&!s},ref:i=>this.groupEl=i,"aria-expanded":`${o||this.expanded}`,"aria-haspopup":`${!s&&this.navigationType==="top"}`},t("ic-typography",{variant:this.navigationType==="side"?"caption":"label"},i),this.navigationType==="side"&&n&&t("div",{class:{"chevron-toggle-icon-wrapper":true,"chevron-toggle-icon-closed":this.expanded},innerHTML:h})),this.renderNavigationItems())}static get delegatesFocus(){return true}get el(){return o(this)}};u.style=d;export{u as ic_navigation_group};
2
- //# sourceMappingURL=p-91768ddf.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationGroupCss","NavigationGroup","this","allGroupedNavigationItems","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","IC_NAVIGATION_ITEM","mouseGate","nodeName","GROUPED_LINKS_WRAPPER_CLASS","sideNavExpandHandler","event","isSideNavExpanded","detail","sideNavExpanded","linkWrapper","el","shadowRoot","querySelector","expanded","expandedNavItemsHeight","setGroupedLinksElementHeight","setTimeout","getNavigationChildItemsHeight","collapsedNavItemsHeight","topNavResizedHandler","ev","newSize","size","deviceSize","inTopNavSideMenu","DEVICE_SIZES","L","setGroupedNavItemTabIndex","tabIndexValue","querySelectorAll","forEach","navigationItem","navItem","setAttribute","toggleGroupedLinkWrapperHeight","wrapper","style","setProperty","toggleExpanded","handleClick","navigationType","toggleDropdown","handleBlur","target","relatedTarget","contains","hideDropdown","handleTopNavKeydown","key","handleKeydown","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","dropdownOpen","handleMouseEnter","addEventListener","showDropdown","renderDropdownGroupedLinks","h","class","onMouseLeave","ref","renderGroupedLinks","navigationChildItemsHeight","offsetHeight","setInitialGroupedLinksWrapperHeight","renderNavigationItems","expandable","XL","getThemeForegroundColor","disconnectedCallback","parentEl","removeEventListener","componentWillLoad","getCurrentDeviceSize","navParentDetails","getNavItemParentDetails","navType","parent","componentDidLoad","Array","from","childBlurHandler","navItemClickHandler","themeChangeHandler","theme","focusStyle","mode","setFocus","groupEl","focus","groupedNavItemWrapper","height","render","label","Host","collapsed","role","onMouseEnter","tabindex","onBlur","onClick","onKeyDown","variant","innerHTML","chevronIcon"],"sources":["src/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","src/components/ic-navigation-group/ic-navigation-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-border-width) solid var(--ic-architectural-200);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: fit-content;\n color: var(--ic-theme-text);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n}\n\n:host(.in-side-menu) .navigation-group {\n height: 2.5rem;\n width: 100%;\n text-align: left;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 11.875rem;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) 0 var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding-left: var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n height: 0.45em;\n left: 0.75em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-primary-text);\n outline: none;\n cursor: pointer;\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:hover,\n:host(.in-side-menu) .navigation-group-side-menu:active,\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n background-color: var(--ic-architectural-20);\n color: var(--ic-action-default);\n cursor: auto;\n box-shadow: none;\n outline: none;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n color: var(--ic-action-default);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-active);\n color: var(--ic-action-default);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n color: var(--ic-action-default);\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-architectural-20);\n border-bottom: var(--ic-border-default);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .link,\n:host(.navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .navigation-group {\n height: var(--navigation-group-height);\n width: var(--navigation-group-width);\n justify-content: var(--navigation-group-justify-content);\n padding-right: var(--navigation-group-expand-toggle-padding);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:hover,\n:host(.navigation-group-side-nav) .navigation-group:active,\n:host(.navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n white-space: nowrap;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport { IcNavType, IcTheme } from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItems: HTMLIcNavigationItemElement[] = [];\n private collapsedNavItemsHeight: string;\n private dropdown: HTMLElement;\n private DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n private expandedNavItemsHeight: string;\n private groupEl: HTMLElement;\n private IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n private isSideNavExpanded: boolean;\n private mouseGate: boolean = false;\n private nodeName = \"IC-NAVIGATION-GROUP\";\n private GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen: boolean = false;\n @State() expanded: boolean = true;\n @State() focusStyle = getThemeForegroundColor();\n @State() inTopNavSideMenu: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n\n /**\n * If `true`, the group will be expandable in the side menu.\n */\n @Prop() expandable: boolean = false;\n\n /**\n * The label to display on the group.\n */\n @Prop() label: string;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItems = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.focusStyle = theme.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n\n private sideNavExpandHandler = (event?: CustomEvent): void => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n } else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n };\n\n private topNavResizedHandler = (ev: CustomEvent): void => {\n const newSize = ev.detail.size;\n if (newSize !== this.deviceSize) {\n this.deviceSize = newSize;\n this.inTopNavSideMenu = newSize <= DEVICE_SIZES.L;\n }\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n private setGroupedNavItemTabIndex = (tabIndexValue: string) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n\n private toggleGroupedLinkWrapperHeight = (\n wrapper: HTMLElement,\n expanded: boolean\n ) => {\n if (!wrapper) return;\n\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n } else {\n this.setGroupedLinksElementHeight(\n wrapper,\n this.collapsedNavItemsHeight\n );\n }\n this.setGroupedNavItemTabIndex(\"0\");\n } else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n\n private handleTopNavKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev as KeyboardEvent);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n relTarget?.nodeName === this.nodeName &&\n this.dropdownOpen === true\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)\n ) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n } else if (\n this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false\n ) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n\n private renderDropdownGroupedLinks = (): HTMLDivElement => (\n <div\n class={{\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={!this.inTopNavSideMenu ? this.handleMouseLeave : null}\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n }}\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n\n private renderGroupedLinks = (): HTMLDivElement => (\n <ul class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n private getNavigationChildItemsHeight = (): string => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n\n return `${navigationChildItemsHeight}px`;\n };\n\n private setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (\n !this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded\n ) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }\n\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }\n };\n\n private renderNavigationItems = (): HTMLDivElement | null => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight(\n groupedNavItemWrapper: HTMLElement,\n height: string\n ) {\n groupedNavItemWrapper.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n }\n\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: inTopNavSideMenu,\n expanded: this.expanded,\n collapsed: !this.expanded,\n [\"navigation-group-side-nav\"]: this.navigationType === \"side\",\n }}\n role=\"listitem\"\n >\n <button\n onMouseEnter={\n !inTopNavSideMenu &&\n this.navigationType === \"top\" &&\n this.handleMouseEnter\n }\n onMouseLeave={this.navigationType === \"top\" && this.handleMouseLeave}\n tabindex={inTopNavSideMenu && !expandable ? \"-1\" : \"0\"}\n onBlur={this.handleBlur}\n onClick={expandable ? this.handleClick : null}\n onKeyDown={this.handleKeydown}\n class={{\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]:\n inTopNavSideMenu && expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]:\n inTopNavSideMenu && expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${dropdownOpen || this.expanded}`}\n aria-haspopup={`${\n !inTopNavSideMenu && this.navigationType === \"top\"\n }`}\n >\n <ic-typography\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {label}\n </ic-typography>\n {this.navigationType === \"side\" && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icRadioOptionCss","RadioOption","this","defaultRadioValue","hasAdditionalField","skipFocus","handleClick","disabled","radioElement","focus","textfield","el","querySelector","value","icCheck","emit","radioOptionSelect","swallowClick","event","stopPropagation","handleFormReset","selected","initiallySelected","watchSelectedHandler","icSelectedChange","disconnectedCallback","removeFormResetListener","componentWillLoad","additionalFieldContent","getSlotContent","Element","tagName","textField","hiddenInput","addFormResetListener","removeDisabledFalse","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","additionalFieldDisplay","setAttribute","removeAttribute","textfieldValueHandler","textFieldValue","detail","stopImmediatePropagation","setFocus","shadowRoot","render","id","isPropDefined","label","groupLabel","h","Host","onClick","class","role","tabindex","type","name","checked","ref","form","formaction","formenctype","formmethod","formnovalidate","formtarget","variant","htmlFor","hidden","dynamicText"],"sources":["src/components/ic-radio-option/ic-radio-option.css?tag=ic-radio-option&encapsulation=shadow","src/components/ic-radio-option/ic-radio-option.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: flex;\n flex-direction: column;\n width: fit-content;\n}\n\n:host([additional-field-display=\"static\"]) ::slotted(ic-text-field) {\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-left: var(--ic-space-xl);\n}\n\n/* The label turns grey when disabled */\n:host(.disabled) {\n color: var(--ic-architectural-200);\n}\n\n/* Focus states */\n\n.container input:focus + span.checkmark,\n:host(:focus) .container input:checked + span.checkmark {\n box-shadow: var(--ic-border-focus);\n}\n\n/* The container */\n.container {\n display: grid;\n grid-template-columns: min-content auto;\n position: relative;\n cursor: pointer;\n align-items: center;\n margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n}\n\n.container.disabled,\n.container.disabled input:disabled {\n cursor: default;\n}\n\n/* Hide the browser's default radio button */\n.container input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: inline-block;\n position: absolute;\n cursor: pointer;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n border-radius: 50%;\n border: none;\n}\n\n/* Create a custom radio button */\n.checkmark {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-architectural-white);\n border: var(--ic-border-default);\n border-radius: 50%;\n transition: var(--ic-easing-transition-fast);\n box-sizing: border-box;\n}\n\n/* Show the indicator (dot/circle) when checked */\n.container input:checked ~ .checkmark::after {\n display: inline-block;\n}\n\n/* On mouse-over, add a light blue background color */\n.container:hover input ~ .checkmark {\n background-color: var(--ic-action-default-bg-hover-no-alpha);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-hover);\n border: var(--ic-border-width) solid var(--ic-action-default);\n}\n\n/* When pressed, adds the active colours */\n.container:active input ~ .checkmark {\n background-color: var(--ic-action-default-bg-active-no-alpha);\n border: var(--ic-border-width) solid var(--ic-action-default-active);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-active);\n}\n\n/* When pressed, adds the active colours */\n.container:active input:checked ~ .checkmark {\n background-color: var(--ic-action-default-bg-active);\n border: 0.125rem solid var(--ic-action-default-active);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-active);\n}\n\n/* When pressed and selected, adds the active colours */\n.container:active input:checked ~ .checkmark::after {\n background-color: var(--ic-action-default-active);\n}\n\n/* When the radio button is checked */\n.container input:checked ~ .checkmark {\n border: 0.125rem solid var(--ic-action-default);\n}\n\n/* When the radio button is checked and disabled */\n.container input:checked:disabled ~ .checkmark {\n background-color: var(--ic-architectural-white);\n border: 0.125rem solid var(--ic-architectural-200);\n}\n\n/* When the radio button is disabled */\n.container input:disabled ~ .checkmark {\n border: var(--ic-border-width) dashed var(--ic-architectural-200);\n}\n\n/* When the radio button is disabled */\n.container input:disabled ~ .checkmark::after {\n background: var(--ic-architectural-200);\n}\n\n/* On mouse-over inactive */\n.container:hover input:disabled ~ .checkmark {\n background-color: var(--ic-architectural-white);\n box-shadow: none;\n border: 0.125rem solid none;\n}\n\n.container:active input:disabled ~ .checkmark::after {\n background-color: var(--ic-architectural-200);\n}\n\n/* Style the indicator (dot/circle) */\n.container .checkmark::after {\n content: \"\";\n position: absolute;\n display: none;\n top: calc(50% - var(--ic-space-xs));\n left: calc(50% - var(--ic-space-xs));\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n border-radius: 50%;\n background: var(--ic-action-default);\n}\n\n.radio-label {\n margin-left: var(--ic-space-md);\n}\n\n.additional-field-wrapper {\n margin-left: var(--ic-space-xs);\n}\n\n/* The line */\n.branch-corner {\n color: var(--ic-action-default);\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-action-default);\n border-left: 0.125rem solid var(--ic-action-default);\n margin-left: calc(-1 * var(--ic-space-1px));\n}\n\n/* The dynamic container */\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-container.hidden {\n display: none;\n}\n\n.dynamic-text {\n color: var(--ic-action-default);\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n@media (max-width: 576px) {\n ::slotted(ic-text-field) {\n --input-width: 100%;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n\n .container input:checked ~ .checkmark,\n .container:active input:checked ~ .checkmark {\n border-color: Highlight;\n }\n\n .container input:checked ~ .checkmark::after,\n .container:active input:checked ~ .checkmark::after {\n background-color: Highlight;\n }\n\n .container input:disabled ~ .checkmark,\n .container input:checked:disabled ~ .checkmark {\n border-color: GrayText;\n }\n\n .container input:disabled ~ .checkmark::after,\n .container:active input:disabled ~ .checkmark::after {\n background-color: GrayText;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport { IcAdditionalFieldTypes, IcValueEventDetail } from \"../../utils/types\";\nimport {\n getSlotContent,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the radio. It overrides the action attribute of the radio's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the radio's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name: string;\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icCheck instead.\n */\n @Event() radioOptionSelect: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n const additionalFieldContent = getSlotContent(this.el, \"additional-field\");\n\n if (additionalFieldContent !== null) {\n this.hasAdditionalField = true;\n const Element = additionalFieldContent[0] as HTMLElement;\n if (Element.tagName === \"IC-TEXT-FIELD\") {\n const textField = Element as HTMLIcTextFieldElement;\n textField.hiddenInput = false;\n }\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.el.querySelector(\"ic-text-field\");\n if (!this.selected) {\n textfield && textfield.setAttribute(\"disabled\", \"\");\n } else {\n textfield && textfield.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n textfieldValueHandler(event: CustomEvent<{ value: string }>): void {\n const textFieldValue = event.detail.value;\n\n if (this.selected) {\n if (textFieldValue !== \"\") {\n this.value = event.detail.value;\n this.icCheck.emit({\n value: this.value,\n });\n this.radioOptionSelect.emit({\n value: this.value,\n });\n } else {\n this.value = this.defaultRadioValue;\n this.icCheck.emit({\n value: this.defaultRadioValue,\n });\n this.radioOptionSelect.emit({\n value: this.defaultRadioValue,\n });\n }\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n private handleClick = () => {\n if (!this.disabled) {\n if (this.skipFocus === false) {\n this.radioElement.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n const textfield = this.el.querySelector(\"ic-text-field\");\n this.value =\n textfield.value !== \"\" ? textfield.value : this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n\n this.radioOptionSelect.emit({\n value: this.value,\n });\n }\n };\n\n private swallowClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const id = `ic-radio-option-${\n isPropDefined(this.label) ? this.label : this.value\n }-${this.groupLabel}`;\n\n return (\n <Host onClick={this.handleClick} class={{ disabled: this.disabled }}>\n <div class={{ [\"container\"]: true, [\"disabled\"]: this.disabled }}>\n <div>\n <input\n role=\"radio\"\n tabindex={this.selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={this.name}\n id={id}\n value={this.value}\n disabled={this.disabled ? true : null}\n checked={this.selected}\n ref={(el) => (this.radioElement = el)}\n form={this.form}\n formaction={this.formaction}\n formenctype={this.formenctype}\n formmethod={this.formmethod}\n formnovalidate={this.formnovalidate}\n formtarget={this.formtarget}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{this.label}</label>\n </ic-typography>\n </div>\n\n {this.hasAdditionalField && (\n <div\n onClick={this.swallowClick}\n class={{\n \"dynamic-container\": true,\n hidden:\n this.additionalFieldDisplay === \"dynamic\" && !this.selected,\n }}\n >\n {this.additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {this.additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">{this.dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n this.additionalFieldDisplay === \"static\",\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as e,c as i,h as t,H as a,g as o}from"./p-6b5e91e2.js";import{j as r,l as c,a as n,m as s,n as d,p as l,i as h,d as b}from"./p-53f2fc84.js";import"./p-26b7b18f.js";const m='/*! 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(.disabled){color:var(--ic-architectural-200);pointer-events:none}.container{display:flex;width:-moz-fit-content;width:fit-content;padding:var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);margin-bottom:var(--ic-space-xxs);align-items:center}:host(.small) .container{margin-bottom:var(--ic-space-xxxs)}.checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;position:relative;top:0;left:0;height:var(--ic-space-lg);width:var(--ic-space-lg);background-color:var(--ic-architectural-white);border:var(--ic-border-width) solid var(--ic-architectural-300);border-radius:var(--ic-border-radius);outline:none;cursor:pointer;transition:var(--ic-easing-transition-fast);flex-shrink:0}:host(.small) .checkbox,:host(.small) .container svg{width:var(--ic-space-md);height:var(--ic-space-md)}:host(.large) .checkbox,:host(.large) .container svg{width:var(--ic-space-xl);height:var(--ic-space-xl)}.checkbox:checked{background-color:var(--ic-action-default);border:var(--ic-border-width) solid var(--ic-action-default);transition:var(--ic-easing-transition-slow)}.checkbox:checked:disabled{background-color:var(--ic-architectural-200)}.checkbox:indeterminate,.checkbox.indeterminate:checked{background-color:var(--ic-architectural-white);border:0.125rem solid var(--ic-action-default)}.checkbox:checked:hover{background-color:var(--ic-action-default-hover)}.checkbox:indeterminate:hover,.checkbox.indeterminate:checked:hover{background-color:var(--ic-action-default-bg-hover-no-alpha);border:0.125rem solid var(--ic-action-default-hover)}.checkbox:checked:active{background-color:var(--ic-action-default-active)}.checkbox:indeterminate:active,.checkbox.indeterminate:checked:active{background-color:var(--ic-action-default-bg-active-no-alpha);border:0.125rem solid var(--ic-action-default-active)}.checkbox:hover{background-color:var(--ic-action-default-bg-hover-no-alpha);box-shadow:0 0 0 0.25rem var(--ic-action-default-bg-hover);border:var(--ic-border-width) solid var(--ic-action-default-hover)}.checkbox:active{background-color:var(--ic-action-default-bg-active-no-alpha);box-shadow:0 0 0 0.25rem var(--ic-action-default-bg-active);border:var(--ic-border-width) solid var(--ic-action-default-active)}.checkbox:focus{box-shadow:var(--ic-border-focus)}.checkbox:disabled{border:var(--ic-border-width) dashed var(--ic-architectural-200)}.checkbox-label{padding-left:var(--ic-space-sm)}.checkbox-label:hover{cursor:pointer}.checkmark{position:relative;right:calc(-1 * var(--ic-space-lg));margin-left:calc(-1 * var(--ic-space-lg));fill:white;z-index:1;background-color:transparent;pointer-events:none;flex-shrink:0}:host(.small) .checkmark{margin-left:calc(-1 * var(--ic-space-md));right:calc(-1 * var(--ic-space-md))}:host(.large) .checkmark{margin-left:calc(-1 * var(--ic-space-xl));right:calc(-1 * var(--ic-space-xl))}.indeterminate-symbol{position:relative;width:0.875rem;height:var(--ic-space-xxxs);right:-1.188rem;margin-left:-0.875rem;z-index:1;background-color:var(--ic-action-default);pointer-events:none;flex-shrink:0}:host(.small) .indeterminate-symbol{width:0.6rem;right:-0.8rem;margin-left:-0.6rem}:host(.large) .indeterminate-symbol{width:1.25rem;right:-1.625rem;margin-left:-1.25rem}.container:hover .indeterminate-symbol{background-color:var(--ic-action-default-hover)}.container:active .indeterminate-symbol{background-color:var(--ic-action-default-active)}.additional-field-wrapper{margin-left:calc(var(--ic-space-md) + var(--ic-space-lg));margin-top:calc(var(--ic-space-sm) / 2)}.branch-corner{color:var(--ic-action-default);height:var(--ic-space-md);width:var(--ic-space-xl);border-radius:0 0 0 0.188rem;border-bottom:0.125rem solid var(--ic-action-default);border-left:0.125rem solid var(--ic-action-default)}.dynamic-container{display:flex;position:relative;margin:var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);gap:var(--ic-space-xs)}.dynamic-text{color:var(--ic-action-default);margin-top:calc(var(--ic-space-sm) / 2);margin-bottom:var(--ic-space-xs);border-radius:2%}@media (max-width: 576px){::slotted(ic-text-field){--input-width:100%}}@media (forced-colors: active){.checkbox{-webkit-appearance:revert;-moz-appearance:revert;appearance:revert;transition:none}.checkbox:checked{transition:none}.checkbox:focus-visible{outline:0.125rem solid highlight}.checkbox:disabled:not(:checked){-webkit-appearance:none;-moz-appearance:none;appearance:none;border-color:GrayText}.checkmark{fill:none}.indeterminate-symbol{display:none}}';const p=class{constructor(t){e(this,t);this.checkboxChecked=i(this,"checkboxChecked",7);this.icCheck=i(this,"icCheck",7);this.IC_TEXT_FIELD="ic-text-field";this.handleClick=()=>{this.checked=!this.checked;this.icCheck.emit();this.checkboxChecked.emit()};this.handleFormReset=()=>{this.checked=this.initiallyChecked};this.additionalFieldDisplay="static";this.checked=false;this.initiallyChecked=this.checked;this.disabled=false;this.dynamicText="This selection requires additional answers";this.form=undefined;this.formaction=undefined;this.formenctype=undefined;this.formmethod=undefined;this.formnovalidate=undefined;this.formtarget=undefined;this.groupLabel=undefined;this.indeterminate=false;this.label=undefined;this.name=undefined;this.size=undefined;this.small=false;this.value=undefined}componentWillLoad(){r(this.disabled,this.el);c(this.el,this.handleFormReset)}componentDidLoad(){n([{prop:this.label,propName:"label"},{prop:this.value,propName:"value"}],"Checkbox")}componentDidRender(){if(this.additionalFieldDisplay==="static"){const e=this.el.querySelector(this.IC_TEXT_FIELD);if(!this.checked){e&&e.setAttribute("disabled","")}else{e&&e.removeAttribute("disabled")}}else if(this.additionalFieldContainer){if(!this.checked){this.additionalFieldContainer.style.display="none"}else{this.additionalFieldContainer.style.display="flex"}}}disconnectedCallback(){s(this.el,this.handleFormReset)}async setFocus(){const e=this.el.shadowRoot.querySelector(".checkbox");if(e){e.focus()}}render(){let e=`ic-checkbox-${b(this.label)?this.label:this.value}-${this.groupLabel}`;e=e.replace(/ /g,"-");const i=this.el.parentElement.size;this.checked?d(true,this.el,this.name,this.checked&&this.value,this.disabled):l(this.el);return t(a,{class:{["disabled"]:this.disabled,["small"]:this.small,[`${this.size||i}`]:true}},t("div",{class:"container"},this.checked&&!this.indeterminate&&t("svg",{class:"checkmark",width:"1.5rem",height:"1.5rem",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","fill-rule":"evenodd","clip-rule":"evenodd"},t("title",null,"checkmark icon"),t("path",{d:"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z"})),this.checked&&this.indeterminate&&t("div",{class:"indeterminate-symbol"}),t("input",{role:"checkbox",class:{["checkbox"]:true,["checked"]:this.checked,["indeterminate"]:this.indeterminate},type:"checkbox",name:this.name,id:e,value:this.value,disabled:this.disabled?true:null,checked:this.checked,indeterminate:this.indeterminate,onClick:this.handleClick,form:this.form,formaction:this.formaction,formenctype:this.formenctype,formmethod:this.formmethod,formnovalidate:this.formnovalidate,formtarget:this.formtarget}),t("ic-typography",{class:"checkbox-label",variant:"body"},t("label",{htmlFor:e},this.label))),h(this.el,"additional-field")&&t("div",{class:"dynamic-container",ref:e=>this.additionalFieldContainer=e},this.additionalFieldDisplay==="dynamic"&&t("div",{class:"branch-corner"}),t("div",null,this.additionalFieldDisplay==="dynamic"&&t("ic-typography",{variant:"caption"},t("p",{class:"dynamic-text","aria-live":"polite"},this.dynamicText)),t("div",{class:{"additional-field-wrapper":this.additionalFieldDisplay==="static"}},t("slot",{name:"additional-field"})))))}static get delegatesFocus(){return true}get el(){return o(this)}};p.style=m;export{p as ic_checkbox};
2
- //# sourceMappingURL=p-a9e1966f.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as o,g as a}from"./p-6b5e91e2.js";import{f as s}from"./p-53f2fc84.js";import"./p-26b7b18f.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}:host{display:block;position:relative}:host(.ic-typography-vertical-margins-h1){margin:0 0 var(--ic-space-xl)}:host(.ic-typography-vertical-margins-h2){margin:var(--ic-space-xxl) 0 var(--ic-space-lg)}:host(.ic-typography-vertical-margins-h3){margin:var(--ic-space-xl) 0 var(--ic-space-md)}:host(.ic-typography-vertical-margins-h4){margin:var(--ic-space-lg) 0 var(--ic-space-md)}:host(.ic-typography-vertical-margins-subtitle-large),:host(.ic-typography-vertical-margins-subtitle-small),:host(.ic-typography-vertical-margins-body),:host(.ic-typography-vertical-margins-code-large),:host(.ic-typography-vertical-margins-code-small),:host(.ic-typography-vertical-margins-code-extra-small){margin:0 0 var(--ic-space-md)}:host(.ic-typography-vertical-margins-caption),:host(.ic-typography-vertical-margins-caption-uppercase){margin:0 0 var(--ic-space-xs)}:host(.ic-typography-vertical-margins-h2:first-child),:host(.ic-typography-vertical-margins-h3:first-child),:host(.ic-typography-vertical-margins-h4:first-child){margin-top:0}:host(.ic-typography-h1){font:var(--ic-font-h1) !important}:host(.ic-typography-h2){font:var(--ic-font-h2);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-h3){font:var(--ic-font-h3)}:host(.ic-typography-h4){font:var(--ic-font-h4);letter-spacing:var(--ic-font-letter-spacing-0pt0015)}:host(.ic-typography-subtitle-large){font:var(--ic-font-subtitle-large);letter-spacing:var(--ic-font-letter-spacing-0pt0015)}:host(.ic-typography-subtitle-small){font:var(--ic-font-subtitle-small);letter-spacing:var(--ic-font-letter-spacing-0pt0015)}:host(.ic-typography-body){font:var(--ic-font-body);letter-spacing:var(--ic-font-letter-spacing-0pt005)}:host(.ic-typography-caption){font:var(--ic-font-caption);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-caption-uppercase){font:var(--ic-font-caption);letter-spacing:var(--ic-font-letter-spacing-0pt0025);text-transform:uppercase}:host(.ic-typography-label){font:var(--ic-font-label);letter-spacing:var(--ic-font-letter-spacing-0pt025)}:host(.ic-typography-label-uppercase){font:var(--ic-font-label);letter-spacing:var(--ic-font-letter-spacing-0pt025);text-transform:uppercase}:host(.ic-typography-code-large){font:var(--ic-font-code-large);letter-spacing:var(--ic-font-letter-spacing-0pt025)}:host(.ic-typography-code-small){font:var(--ic-font-code-small);letter-spacing:var(--ic-font-letter-spacing-0pt005)}:host(.ic-typography-code-extra-small){font:var(--ic-font-code-extra-small);letter-spacing:var(--ic-font-letter-spacing-0pt025)}:host(.ic-typography-badge){font:var(--ic-font-badge);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-badge-small){font:var(--ic-font-badge-small);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-no-wrap){white-space:nowrap}:host ::slotted(h1),:host ::slotted(h2),:host ::slotted(h3),:host ::slotted(h4),:host ::slotted(h5),:host ::slotted(h6),:host ::slotted(p),:host ::slotted(label){font:inherit;letter-spacing:inherit}.trunc-wrapper{display:-webkit-box;-webkit-box-orient:vertical;line-clamp:var(--truncation-max-lines, initial);-webkit-line-clamp:var(--truncation-max-lines, initial);-webkit-clip-path:border-box;clip-path:border-box}.trunc-btn{border:none;background:none;padding:0;color:var(--ic-color-primary-text);text-decoration:underline;font-weight:var(--ic-font-weight-bold);transition:var(--ic-easing-transition-fast);text-align:start}.trunc-btn:hover,.trunc-btn.focus{outline:none;border-bottom:var(--ic-space-xxs) solid !important;margin-bottom:calc(-1 * var(--ic-space-xxs)) !important;text-decoration:none;cursor:pointer}:host(.strikethrough){text-decoration:line-through}:host(.underline){text-decoration:underline}:host(.underline.strikethrough){text-decoration:line-through underline}:host(.italic){font-style:italic !important}:host(.bold){font-weight:var(--ic-font-weight-bold)}@supports (text-decoration-thickness: 25%){.trunc-btn:hover,.trunc-btn.focus{text-decoration-line:underline;text-decoration-thickness:25%;text-underline-offset:25%;border-bottom:0 !important;margin-bottom:0 !important}}';const r=class{constructor(e){t(this,e);this.icExpand=i(this,"icExpand",7);this.focusBtnFromKeyboard=true;this.lastMarkerTop=0;this.lastWidth=0;this.resizeObserver=null;this.truncatedHeight=0;this.toggleExpanded=()=>{this.expanded=!this.expanded;this.icExpand.emit({el:this.el,expanded:this.expanded})};this.checkMarkerPosition=(t,i)=>{if(i-t<this.truncatedHeight){this.truncated=false;this.expanded=false}else{this.truncated=true}};this.getElementTop=t=>t.getClientRects?t.getClientRects()[0].top:0;this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{clearTimeout(this.resizeInterval);this.resizeInterval=window.setTimeout(this.resizeObserverCallback,50)}));this.resizeObserver.observe(this.truncWrapperEl)};this.resizeObserverCallback=()=>{if(this.lastWidth===this.el.clientWidth){return}if(this.truncatedHeight===0){this.checkMaxLines(this.el.clientHeight);return}const t=this.getElementTop(this.marker);if(t===this.lastMarkerTop){return}this.checkMarkerPosition(this.getElementTop(this.el),t);this.lastMarkerTop=t;this.lastWidth=this.el.clientWidth};this.truncButtonFocus=()=>{if(this.focusBtnFromKeyboard){this.truncButtonFocussed=true}};this.truncButtonBlur=()=>{this.focusBtnFromKeyboard=true;this.truncButtonFocussed=false};this.truncButtonFocusFromMouse=()=>{this.focusBtnFromKeyboard=false};this.truncated=false;this.truncButtonFocussed=false;this.applyVerticalMargins=false;this.bold=false;this.italic=false;this.maxLines=undefined;this.strikethrough=false;this.underline=false;this.variant="body";this.expanded=false}watchExpandedHandler(){this.el.setAttribute("style",`--truncation-max-lines: ${this.expanded?"initial":this.maxLines}`)}disconnectedCallback(){if(this.resizeObserver!==null){this.resizeObserver.disconnect()}}componentDidLoad(){var t,i;if((this.variant==="body"||((i=(t=this.el.getRootNode())===null||t===void 0?void 0:t.host)===null||i===void 0?void 0:i.tagName)==="IC-TOOLTIP")&&this.maxLines>0){const t=document.createElement("span");t.style.visibility="hidden";this.el.appendChild(t);this.marker=t;this.lastWidth=this.el.clientWidth;this.checkMaxLines(this.el.clientHeight);s(this.runResizeObserver)}}async checkMaxLines(t){const i=Math.floor(t/24);if(i>this.maxLines){this.el.setAttribute("style",`--truncation-max-lines: ${this.maxLines}`);this.truncatedHeight=this.el.clientHeight;this.truncated=true}}async checkCellTextMaxLines(t,i){const e=Math.floor(i/24);const o=Math.floor(t/24);if(!!i&&e>o||o>this.maxLines){this.el.setAttribute("style",`--truncation-max-lines: ${this.maxLines}`);this.truncatedHeight=this.el.clientHeight;this.truncated=true;this.expanded=false}}render(){var t,i;const{variant:a,applyVerticalMargins:s,maxLines:n,truncated:r,expanded:c,strikethrough:l,underline:h,italic:p,bold:d}=this;return e(o,{class:{[`ic-typography-${a}`]:true,[`ic-typography-vertical-margins-${a}`]:s,["bold"]:d,["italic"]:p,["strikethrough"]:l,["underline"]:h}},(a==="body"||((i=(t=this.el.getRootNode())===null||t===void 0?void 0:t.host)===null||i===void 0?void 0:i.tagName)==="IC-TOOLTIP")&&n>0?e("div",{class:"trunc-wrapper",ref:t=>this.truncWrapperEl=t},e("slot",null)):e("slot",null),a==="body"&&n>0&&r&&e("button",{class:{"trunc-btn":true,focus:this.truncButtonFocussed},onFocus:this.truncButtonFocus,onBlur:this.truncButtonBlur,onMouseDown:this.truncButtonFocusFromMouse,onClick:this.toggleExpanded,"aria-hidden":"true"},c?"See less":"See more"))}get el(){return a(this)}static get watchers(){return{expanded:["watchExpandedHandler"]}}};r.style=n;export{r as ic_typography};
2
- //# sourceMappingURL=p-aa777792.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icTypographyCss","Typography","this","focusBtnFromKeyboard","lastMarkerTop","lastWidth","resizeObserver","truncatedHeight","toggleExpanded","expanded","icExpand","emit","el","checkMarkerPosition","elTop","markerTop","truncated","getElementTop","getClientRects","top","runResizeObserver","ResizeObserver","clearTimeout","resizeInterval","window","setTimeout","resizeObserverCallback","observe","truncWrapperEl","clientWidth","checkMaxLines","clientHeight","marker","truncButtonFocus","truncButtonFocussed","truncButtonBlur","truncButtonFocusFromMouse","watchExpandedHandler","setAttribute","maxLines","disconnectedCallback","disconnect","componentDidLoad","variant","_b","_a","getRootNode","host","tagName","document","createElement","style","visibility","appendChild","checkResizeObserver","height","numLines","Math","floor","checkCellTextMaxLines","typographyHeight","typographyNumLines","render","applyVerticalMargins","strikethrough","underline","italic","bold","h","Host","class","ref","focus","onFocus","onBlur","onMouseDown","onClick"],"sources":["src/components/ic-typography/ic-typography.css?tag=ic-typography&encapsulation=shadow","src/components/ic-typography/ic-typography.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n position: relative;\n}\n\n:host(.ic-typography-vertical-margins-h1) {\n margin: 0 0 var(--ic-space-xl);\n}\n\n:host(.ic-typography-vertical-margins-h2) {\n margin: var(--ic-space-xxl) 0 var(--ic-space-lg);\n}\n\n:host(.ic-typography-vertical-margins-h3) {\n margin: var(--ic-space-xl) 0 var(--ic-space-md);\n}\n\n:host(.ic-typography-vertical-margins-h4) {\n margin: var(--ic-space-lg) 0 var(--ic-space-md);\n}\n\n:host(.ic-typography-vertical-margins-subtitle-large),\n:host(.ic-typography-vertical-margins-subtitle-small),\n:host(.ic-typography-vertical-margins-body),\n:host(.ic-typography-vertical-margins-code-large),\n:host(.ic-typography-vertical-margins-code-small),\n:host(.ic-typography-vertical-margins-code-extra-small) {\n margin: 0 0 var(--ic-space-md);\n}\n\n:host(.ic-typography-vertical-margins-caption),\n:host(.ic-typography-vertical-margins-caption-uppercase) {\n margin: 0 0 var(--ic-space-xs);\n}\n\n:host(.ic-typography-vertical-margins-h2:first-child),\n:host(.ic-typography-vertical-margins-h3:first-child),\n:host(.ic-typography-vertical-margins-h4:first-child) {\n margin-top: 0;\n}\n\n:host(.ic-typography-h1) {\n font: var(--ic-font-h1) !important;\n}\n\n:host(.ic-typography-h2) {\n font: var(--ic-font-h2);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-h3) {\n font: var(--ic-font-h3);\n}\n\n:host(.ic-typography-h4) {\n font: var(--ic-font-h4);\n letter-spacing: var(--ic-font-letter-spacing-0pt0015);\n}\n\n:host(.ic-typography-subtitle-large) {\n font: var(--ic-font-subtitle-large);\n letter-spacing: var(--ic-font-letter-spacing-0pt0015);\n}\n\n:host(.ic-typography-subtitle-small) {\n font: var(--ic-font-subtitle-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt0015);\n}\n\n:host(.ic-typography-body) {\n font: var(--ic-font-body);\n letter-spacing: var(--ic-font-letter-spacing-0pt005);\n}\n\n:host(.ic-typography-caption) {\n font: var(--ic-font-caption);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-caption-uppercase) {\n font: var(--ic-font-caption);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n text-transform: uppercase;\n}\n\n:host(.ic-typography-label) {\n font: var(--ic-font-label);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n}\n\n:host(.ic-typography-label-uppercase) {\n font: var(--ic-font-label);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n text-transform: uppercase;\n}\n\n:host(.ic-typography-code-large) {\n font: var(--ic-font-code-large);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n}\n\n:host(.ic-typography-code-small) {\n font: var(--ic-font-code-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt005);\n}\n\n:host(.ic-typography-code-extra-small) {\n font: var(--ic-font-code-extra-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n}\n\n:host(.ic-typography-badge) {\n font: var(--ic-font-badge);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-badge-small) {\n font: var(--ic-font-badge-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-no-wrap) {\n white-space: nowrap;\n}\n\n:host ::slotted(h1),\n:host ::slotted(h2),\n:host ::slotted(h3),\n:host ::slotted(h4),\n:host ::slotted(h5),\n:host ::slotted(h6),\n:host ::slotted(p),\n:host ::slotted(label) {\n font: inherit;\n letter-spacing: inherit;\n}\n\n.trunc-wrapper {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n line-clamp: var(--truncation-max-lines, initial);\n -webkit-line-clamp: var(--truncation-max-lines, initial);\n /* overflow: hidden; */\n clip-path: border-box;\n}\n\n.trunc-btn {\n border: none;\n background: none;\n padding: 0;\n color: var(--ic-color-primary-text);\n text-decoration: underline;\n font-weight: var(--ic-font-weight-bold);\n transition: var(--ic-easing-transition-fast);\n text-align: start;\n}\n\n.trunc-btn:hover,\n.trunc-btn.focus {\n outline: none;\n border-bottom: var(--ic-space-xxs) solid !important;\n margin-bottom: calc(-1 * var(--ic-space-xxs)) !important;\n text-decoration: none;\n cursor: pointer;\n}\n\n:host(.strikethrough) {\n text-decoration: line-through;\n}\n\n:host(.underline) {\n text-decoration: underline;\n}\n\n:host(.underline.strikethrough) {\n text-decoration: line-through underline;\n}\n\n:host(.italic) {\n font-style: italic !important;\n}\n\n:host(.bold) {\n font-weight: var(--ic-font-weight-bold);\n}\n\n@supports (text-decoration-thickness: 25%) {\n .trunc-btn:hover,\n .trunc-btn.focus {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 25%;\n border-bottom: 0 !important;\n margin-bottom: 0 !important;\n }\n}\n","import {\n Component,\n Prop,\n h,\n Element,\n Host,\n State,\n Watch,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport { IcTypographyVariants } from \"../../utils/types\";\nimport { checkResizeObserver } from \"../../utils/helpers\";\nimport { IcExpandEventDetail } from \"./ic-typography.types\";\n\n@Component({\n styleUrl: \"ic-typography.css\",\n tag: \"ic-typography\",\n shadow: true,\n})\nexport class Typography {\n private focusBtnFromKeyboard: boolean = true;\n private lastMarkerTop: number = 0;\n private lastWidth: number = 0;\n private marker: HTMLElement;\n private resizeInterval: number;\n private resizeObserver: ResizeObserver = null;\n private truncatedHeight: number = 0;\n private truncWrapperEl: Element;\n\n @Element() el: HTMLIcTypographyElement;\n\n @State() truncated: boolean = false;\n @State() truncButtonFocussed: boolean = false;\n\n /**\n * If `true`, appropriate top and bottom margins will be applied to the typography.\n */\n @Prop() applyVerticalMargins?: boolean = false;\n\n /**\n * If `true`, the typography will have a bold font weight.\n * Note: This will have no impact on variants that already use an equivalent or higher font weight (h1, h2, and subtitle-large).\n */\n @Prop() bold?: boolean = false;\n\n /**\n * If `true`, the typography will have an italic font style.\n */\n @Prop() italic?: boolean = false;\n\n /**\n * The number of lines to display before truncating the text, only used for the 'body' variant.\n */\n @Prop() maxLines?: number;\n\n /**\n * If `true`, the typography will have a line through it.\n */\n @Prop() strikethrough?: boolean = false;\n\n /**\n * If `true`, the typography will have a line under it.\n */\n @Prop() underline?: boolean = false;\n\n /**\n * The ICDS typography style to use.\n */\n @Prop() variant?: IcTypographyVariants = \"body\";\n\n @State() expanded: boolean = false;\n\n /**\n * Emitted when the See More/See Less button is clicked.\n */\n @Event() icExpand?: EventEmitter<IcExpandEventDetail>;\n\n @Watch(\"expanded\")\n watchExpandedHandler(): void {\n this.el.setAttribute(\n \"style\",\n `--truncation-max-lines: ${this.expanded ? \"initial\" : this.maxLines}`\n );\n }\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentDidLoad(): void {\n if (\n (this.variant === \"body\" ||\n (this.el.getRootNode() as ShadowRoot)?.host?.tagName ===\n \"IC-TOOLTIP\") &&\n this.maxLines > 0\n ) {\n const marker = document.createElement(\"span\");\n marker.style.visibility = \"hidden\";\n this.el.appendChild(marker);\n this.marker = marker;\n this.lastWidth = this.el.clientWidth;\n this.checkMaxLines(this.el.clientHeight);\n checkResizeObserver(this.runResizeObserver);\n }\n }\n\n /**\n * Truncate the text in ic-typography by adding a line-clamp css property.\n * @param height Used to calculate whether the element has exceeded the maximum number of lines.\n *\n */\n @Method()\n async checkMaxLines(height: number): Promise<void> {\n // 24 is the height of a single line\n const numLines = Math.floor(height / 24);\n if (numLines > this.maxLines) {\n this.el.setAttribute(\"style\", `--truncation-max-lines: ${this.maxLines}`);\n this.truncatedHeight = this.el.clientHeight;\n this.truncated = true;\n }\n }\n\n /**\n * @internal Truncate the text in ic-typography by adding a line-clamp css property. This method is specific to ic-data-table.\n * height - used to calculate whether the element has exceeded the maximum number of lines.\n * typographyHeight - the scroll height of the typography element. Used as another way to calculate whether the element has exceeded the maximum number of lines.\n */\n @Method()\n async checkCellTextMaxLines(\n height: number,\n typographyHeight?: number\n ): Promise<void> {\n // 24 is the height of a single line\n const typographyNumLines = Math.floor(typographyHeight / 24);\n const numLines = Math.floor(height / 24);\n if (\n (!!typographyHeight && typographyNumLines > numLines) ||\n numLines > this.maxLines\n ) {\n this.el.setAttribute(\"style\", `--truncation-max-lines: ${this.maxLines}`);\n this.truncatedHeight = this.el.clientHeight;\n this.truncated = true;\n this.expanded = false;\n }\n }\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n this.icExpand.emit({ el: this.el, expanded: this.expanded });\n };\n\n private checkMarkerPosition = (elTop: number, markerTop: number) => {\n if (markerTop - elTop < this.truncatedHeight) {\n this.truncated = false;\n this.expanded = false;\n } else {\n this.truncated = true;\n }\n };\n\n private getElementTop = (el: HTMLElement) => {\n return el.getClientRects ? el.getClientRects()[0].top : 0;\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeInterval);\n this.resizeInterval = window.setTimeout(this.resizeObserverCallback, 50);\n });\n this.resizeObserver.observe(this.truncWrapperEl);\n };\n\n private resizeObserverCallback = () => {\n if (this.lastWidth === this.el.clientWidth) {\n return;\n }\n\n if (this.truncatedHeight === 0) {\n this.checkMaxLines(this.el.clientHeight);\n return;\n }\n\n const markerTop = this.getElementTop(this.marker);\n if (markerTop === this.lastMarkerTop) {\n return;\n }\n\n this.checkMarkerPosition(this.getElementTop(this.el), markerTop);\n this.lastMarkerTop = markerTop;\n this.lastWidth = this.el.clientWidth;\n };\n\n private truncButtonFocus = (): void => {\n if (this.focusBtnFromKeyboard) {\n this.truncButtonFocussed = true;\n }\n };\n\n private truncButtonBlur = (): void => {\n this.focusBtnFromKeyboard = true;\n this.truncButtonFocussed = false;\n };\n\n private truncButtonFocusFromMouse = (): void => {\n this.focusBtnFromKeyboard = false;\n };\n\n render() {\n const {\n variant,\n applyVerticalMargins,\n maxLines,\n truncated,\n expanded,\n strikethrough,\n underline,\n italic,\n bold,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-typography-${variant}`]: true,\n [`ic-typography-vertical-margins-${variant}`]: applyVerticalMargins,\n [\"bold\"]: bold,\n [\"italic\"]: italic,\n [\"strikethrough\"]: strikethrough,\n [\"underline\"]: underline,\n }}\n >\n {(variant === \"body\" ||\n (this.el.getRootNode() as ShadowRoot)?.host?.tagName ===\n \"IC-TOOLTIP\") &&\n maxLines > 0 ? (\n <div class=\"trunc-wrapper\" ref={(el) => (this.truncWrapperEl = el)}>\n <slot />\n </div>\n ) : (\n <slot />\n )}\n {variant === \"body\" && maxLines > 0 && truncated && (\n <button\n class={{ \"trunc-btn\": true, focus: this.truncButtonFocussed }}\n onFocus={this.truncButtonFocus}\n onBlur={this.truncButtonBlur}\n onMouseDown={this.truncButtonFocusFromMouse}\n onClick={this.toggleExpanded}\n aria-hidden=\"true\"\n >\n {expanded ? \"See less\" : \"See more\"}\n </button>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"4HAAA,MAAMA,EAAkB,+3M,MCsBXC,EAAU,M,4DACbC,KAAAC,qBAAgC,KAChCD,KAAAE,cAAwB,EACxBF,KAAAG,UAAoB,EAGpBH,KAAAI,eAAiC,KACjCJ,KAAAK,gBAA0B,EA0H1BL,KAAAM,eAAiB,KACvBN,KAAKO,UAAYP,KAAKO,SACtBP,KAAKQ,SAASC,KAAK,CAAEC,GAAIV,KAAKU,GAAIH,SAAUP,KAAKO,UAAW,EAGtDP,KAAAW,oBAAsB,CAACC,EAAeC,KAC5C,GAAIA,EAAYD,EAAQZ,KAAKK,gBAAiB,CAC5CL,KAAKc,UAAY,MACjBd,KAAKO,SAAW,K,KACX,CACLP,KAAKc,UAAY,I,GAIbd,KAAAe,cAAiBL,GAChBA,EAAGM,eAAiBN,EAAGM,iBAAiB,GAAGC,IAAM,EAGlDjB,KAAAkB,kBAAoB,KAC1BlB,KAAKI,eAAiB,IAAIe,gBAAe,KACvCC,aAAapB,KAAKqB,gBAClBrB,KAAKqB,eAAiBC,OAAOC,WAAWvB,KAAKwB,uBAAwB,GAAG,IAE1ExB,KAAKI,eAAeqB,QAAQzB,KAAK0B,eAAe,EAG1C1B,KAAAwB,uBAAyB,KAC/B,GAAIxB,KAAKG,YAAcH,KAAKU,GAAGiB,YAAa,CAC1C,M,CAGF,GAAI3B,KAAKK,kBAAoB,EAAG,CAC9BL,KAAK4B,cAAc5B,KAAKU,GAAGmB,cAC3B,M,CAGF,MAAMhB,EAAYb,KAAKe,cAAcf,KAAK8B,QAC1C,GAAIjB,IAAcb,KAAKE,cAAe,CACpC,M,CAGFF,KAAKW,oBAAoBX,KAAKe,cAAcf,KAAKU,IAAKG,GACtDb,KAAKE,cAAgBW,EACrBb,KAAKG,UAAYH,KAAKU,GAAGiB,WAAW,EAG9B3B,KAAA+B,iBAAmB,KACzB,GAAI/B,KAAKC,qBAAsB,CAC7BD,KAAKgC,oBAAsB,I,GAIvBhC,KAAAiC,gBAAkB,KACxBjC,KAAKC,qBAAuB,KAC5BD,KAAKgC,oBAAsB,KAAK,EAG1BhC,KAAAkC,0BAA4B,KAClClC,KAAKC,qBAAuB,KAAK,E,eA/KL,M,yBACU,M,0BAKC,M,UAMhB,M,YAKE,M,2CAUO,M,eAKJ,M,aAKW,O,cAEZ,K,CAQ7B,oBAAAkC,GACEnC,KAAKU,GAAG0B,aACN,QACA,2BAA2BpC,KAAKO,SAAW,UAAYP,KAAKqC,W,CAIhE,oBAAAC,GACE,GAAItC,KAAKI,iBAAmB,KAAM,CAChCJ,KAAKI,eAAemC,Y,EAIxB,gBAAAC,G,QACE,IACGxC,KAAKyC,UAAY,UAChBC,GAAAC,EAAC3C,KAAKU,GAAGkC,iBAA4B,MAAAD,SAAA,SAAAA,EAAEE,QAAI,MAAAH,SAAA,SAAAA,EAAEI,WAC3C,eACJ9C,KAAKqC,SAAW,EAChB,CACA,MAAMP,EAASiB,SAASC,cAAc,QACtClB,EAAOmB,MAAMC,WAAa,SAC1BlD,KAAKU,GAAGyC,YAAYrB,GACpB9B,KAAK8B,OAASA,EACd9B,KAAKG,UAAYH,KAAKU,GAAGiB,YACzB3B,KAAK4B,cAAc5B,KAAKU,GAAGmB,cAC3BuB,EAAoBpD,KAAKkB,kB,EAU7B,mBAAMU,CAAcyB,GAElB,MAAMC,EAAWC,KAAKC,MAAMH,EAAS,IACrC,GAAIC,EAAWtD,KAAKqC,SAAU,CAC5BrC,KAAKU,GAAG0B,aAAa,QAAS,2BAA2BpC,KAAKqC,YAC9DrC,KAAKK,gBAAkBL,KAAKU,GAAGmB,aAC/B7B,KAAKc,UAAY,I,EAUrB,2BAAM2C,CACJJ,EACAK,GAGA,MAAMC,EAAqBJ,KAAKC,MAAME,EAAmB,IACzD,MAAMJ,EAAWC,KAAKC,MAAMH,EAAS,IACrC,KACKK,GAAoBC,EAAqBL,GAC5CA,EAAWtD,KAAKqC,SAChB,CACArC,KAAKU,GAAG0B,aAAa,QAAS,2BAA2BpC,KAAKqC,YAC9DrC,KAAKK,gBAAkBL,KAAKU,GAAGmB,aAC/B7B,KAAKc,UAAY,KACjBd,KAAKO,SAAW,K,EAiEpB,MAAAqD,G,QACE,MAAMnB,QACJA,EAAOoB,qBACPA,EAAoBxB,SACpBA,EAAQvB,UACRA,EAASP,SACTA,EAAQuD,cACRA,EAAaC,UACbA,EAASC,OACTA,EAAMC,KACNA,GACEjE,KAEJ,OACEkE,EAACC,EAAI,CACHC,MAAO,CACL,CAAC,iBAAiB3B,KAAY,KAC9B,CAAC,kCAAkCA,KAAYoB,EAC/C,CAAC,QAASI,EACV,CAAC,UAAWD,EACZ,CAAC,iBAAkBF,EACnB,CAAC,aAAcC,KAGftB,IAAY,UACZC,GAAAC,EAAC3C,KAAKU,GAAGkC,iBAA4B,MAAAD,SAAA,SAAAA,EAAEE,QAAI,MAAAH,SAAA,SAAAA,EAAEI,WAC3C,eACJT,EAAW,EACT6B,EAAA,OAAKE,MAAM,gBAAgBC,IAAM3D,GAAQV,KAAK0B,eAAiBhB,GAC7DwD,EAAA,cAGFA,EAAA,aAEDzB,IAAY,QAAUJ,EAAW,GAAKvB,GACrCoD,EAAA,UACEE,MAAO,CAAE,YAAa,KAAME,MAAOtE,KAAKgC,qBACxCuC,QAASvE,KAAK+B,iBACdyC,OAAQxE,KAAKiC,gBACbwC,YAAazE,KAAKkC,0BAClBwC,QAAS1E,KAAKM,eAAc,cAChB,QAEXC,EAAW,WAAa,Y"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,H as s,g as a}from"./p-6b5e91e2.js";import{a as n}from"./p-26b7b18f.js";import{M as o,m as r,w as l,l as h,j as c,a as d,q as u,n as p,i as m,G as b,x as f}from"./p-53f2fc84.js";const x='/*! 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{display:block}:host(.fullwidth){width:100%}::-moz-placeholder{color:var(--ic-color-tertiary-text);opacity:1}::placeholder{color:var(--ic-color-tertiary-text);opacity:1}input,textarea{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs)}textarea{min-height:var(--ic-space-lg);resize:vertical;padding-top:0.375rem}input:focus,textarea:focus{border:0;outline:0}input:disabled,textarea:disabled{color:var(--ic-architectural-200)}input.readonly,textarea.readonly{color:var(--ic-color-primary-text)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}textarea.no-resize{resize:none}.maxlengthtext{color:var(--ic-color-secondary-text)}.no-left-pad{padding-left:0}::slotted([slot="icon"]){fill:var(--ic-color-tertiary-text)}.has-value ::slotted([slot="icon"]){fill:var(--ic-color-primary-text)}.charcount{margin-right:calc(-1 * var(--ic-space-xxxs))}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}input[type="search"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (forced-colors: active){input.readonly,textarea.readonly{color:canvastext}.has-value ::slotted([slot="icon"]){fill:currentcolor}}';let g=0;const y=class{constructor(i){t(this,i);this.getValidationText=e(this,"getValidationText",7);this.icBlur=e(this,"icBlur",7);this.icChange=e(this,"icChange",7);this.icFocus=e(this,"icFocus",7);this.icInput=e(this,"icInput",7);this.icKeydown=e(this,"icKeydown",7);this.inheritedAttributes={};this.showLeftIcon=this.hasLeftIconSlot();this.getMaxLengthExceeded=t=>{this.numChars=t.length;if(this.type==="number"){this.minValueUnattained=t&&Number(t)<Number(this.min)?true:false;this.maxValueExceeded=Number(t)>Number(this.max)?true:false}if(this.maxLength>0){this.maxLengthExceeded=t.length>this.maxLength?true:false}};this.getMaxCharactersReached=t=>{this.numChars=t.length;if(this.maxCharacters>0){this.maxCharactersReached=this.numChars>=this.maxCharacters;if(this.maxCharactersError&&!this.maxCharactersReached){this.maxCharactersError=false}}};this.getMinCharactersUnattained=t=>{this.numChars=t.length;if(this.minCharacters>0){this.minCharactersUnattained=this.numChars<this.minCharacters}};this.onInput=t=>{this.value=t.target.value;this.icInput.emit({value:this.value})};this.onBlur=t=>{const e=t.target.value;this.getMinCharactersUnattained(e);this.icBlur.emit({value:e})};this.onFocus=t=>{const e=t.target.value;this.icFocus.emit({value:e})};this.isTextArea=()=>this.rows>1;this.getInlineValidationText=()=>{this.getValidationText.emit({value:this.validationText})};this.hasStatus=t=>t!==""&&!this.disabled;this.showStatusText=t=>this.hasStatus(t)&&!(t==n.Success&&this.validationInline)&&!this.validationInlineInternal;this.handleFormReset=()=>{this.value=this.initialValue};this.numChars=0;this.maxCharactersReached=false;this.maxCharactersError=false;this.minCharactersUnattained=false;this.maxLengthExceeded=false;this.maxValueExceeded=false;this.minValueUnattained=false;this.ariaActiveDescendant=undefined;this.ariaAutocomplete=undefined;this.ariaExpanded=undefined;this.ariaOwns=undefined;this.autocapitalize="off";this.autocomplete="off";this.autocorrect="off";this.autoFocus=false;this.disabled=false;this.fullWidth=false;this.helperText="";this.hideLabel=false;this.hiddenInput=true;this.inputId=`ic-text-field-input-${g++}`;this.inputmode="text";this.label=undefined;this.max=undefined;this.maxCharacters=0;this.maxLength=0;this.min=undefined;this.minCharacters=0;this.name=this.inputId;this.placeholder="";this.readonly=false;this.required=false;this.resize=false;this.role=undefined;this.rows=1;this.size="default";this.small=false;this.spellcheck=false;this.truncateValue=undefined;this.type="text";this.validationInline=false;this.validationInlineInternal=false;this.validationStatus="";this.validationText="";this.debounce=0;this.value="";this.initialValue=this.value}debounceChanged(){this.icChange=o(this.icChange,this.debounce)}watchValueHandler(t){if(this.inputEl&&this.inputEl.value!==t){this.inputEl.value=t}this.getMaxLengthExceeded(t);this.getMaxCharactersReached(t);this.icChange.emit({value:t})}connectedCallback(){this.debounceChanged()}disconnectedCallback(){r(this.el,this.handleFormReset)}componentWillLoad(){if(this.value!==this.initialValue){this.watchValueHandler(this.value)}this.getMaxLengthExceeded(this.value);this.getMaxCharactersReached(this.value);this.inheritedAttributes=l(this.el,[...f,"title"]);if(this.readonly){this.maxLengthExceeded=false;this.maxValueExceeded=false;this.minValueUnattained=false}h(this.el,this.handleFormReset);c(this.disabled,this.el)}componentDidLoad(){d([{prop:this.label,propName:"label"}],"Text Field");if(this.validationInlineInternal){this.getInlineValidationText()}}handleKeyDown(t){this.icKeydown.emit({event:t});this.maxCharactersError=this.maxCharactersReached}async setFocus(){if(this.inputEl){this.inputEl.focus()}}hasLeftIconSlot(){const t=this.el.querySelector(`[slot="icon"]`);return t!==null}render(){const{inputId:t,name:e,label:a,required:o,size:r,small:l,placeholder:h,helperText:c,rows:d,resize:f,disabled:x,value:g,min:y,max:v,maxLength:w,numChars:k,readonly:z,maxLengthExceeded:C,maxCharacters:I,maxCharactersError:j,maxCharactersReached:F,minCharacters:L,minCharactersUnattained:M,minValueUnattained:q,maxValueExceeded:T,validationStatus:V,validationText:$,validationInline:N,validationInlineInternal:B,spellcheck:W,inputmode:E,fullWidth:H,truncateValue:S,hiddenInput:D}=this;const K=z?true:x;const O=x?"":h;const U=C||T||q||M||j?j?n.Warning:n.Error:V;const _=C?"Maximum length exceeded":j?`Maximum input is ${I} characters`:T?`Maximum value of ${v} exceeded`:q?`Minimum value of ${y} not met`:M?`Minimum input is ${L} characters`:$;const G=z?0:w;const R=C||j||T||q||w===0&&U===n.Error?"assertive":"polite";const A=this.showStatusText(U);const J=this.isTextArea();const P=w>0?t+"-charcount-desc":"";const Q=(P+" "+u(t,c!=="",A)).trim();if(this.showLeftIcon&&!z&&K){this.showLeftIcon=false}const X=U===n.Error?"true":"false";const Y=K&&!z;if(D){p(true,this.el,e,g,K)}return i(s,{class:{["fullwidth"]:H}},i("ic-input-container",{readonly:z,disabled:K},!this.hideLabel&&i("ic-input-label",{for:t,label:a,helperText:c,required:o,disabled:Y,readonly:z}),i("ic-input-component-container",{size:l?"small":r,validationStatus:U,multiLine:J,disabled:K,readonly:z,validationInline:N,fullWidth:H},this.showLeftIcon&&i("span",{class:{["readonly"]:z,["has-value"]:g.length>0},slot:"left-icon"},i("slot",{name:"icon"})),!J&&i("input",Object.assign({id:t,name:e,ref:t=>this.inputEl=t,type:this.type,min:y,max:v,value:g,class:{["no-left-pad"]:!this.showLeftIcon&&z,["readonly"]:z,["truncate-value"]:S},placeholder:O,required:o,disabled:K,readonly:z,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":a,"aria-describedby":Q,"aria-invalid":X,"aria-activedescendant":this.ariaActiveDescendant,"aria-expanded":this.ariaExpanded,"aria-owns":this.ariaOwns,autocomplete:this.autocomplete,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:W,inputmode:E,role:this.role,maxlength:F?I:null,minlength:M?L:null},this.inheritedAttributes)),J&&i("textarea",Object.assign({id:t,class:{["no-resize"]:f===false||z,["no-left-pad"]:!this.showLeftIcon&&z,["readonly"]:z},name:e,ref:t=>this.inputEl=t,value:g,rows:d,required:o,disabled:K,placeholder:O,readonly:z,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":a,"aria-describedby":Q,"aria-invalid":X,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:W,inputmode:E,maxlength:F?I:null,minlength:M?L:null},this.inheritedAttributes)),m(this.el,"clear-button")&&i("slot",{name:"clear-button"}),m(this.el,"search-submit-button")&&i("slot",{name:"search-submit-button"})),m(this.el,"menu")&&i("slot",{name:"menu"}),(!b(V)||!b($)||G>0||T||j||M||q)&&!B&&i("ic-input-validation",{status:this.hasStatus(U)===false||U===n.Success&&N||B?"":U,message:A?_:"",ariaLiveMode:R,for:t,fullWidth:H},!z&&G>0&&i("div",{slot:"validation-message-adornment"},i("ic-typography",{variant:"caption",class:{["maxlengthtext"]:true,["error"]:C,["disabled"]:Y}},i("span",{"aria-live":"polite",id:`${t}-charcount`,class:"charcount"},k,"/",G),i("span",{hidden:true,id:P},"Field can contain a maximum of ",G," characters."))))))}get el(){return a(this)}static get watchers(){return{debounce:["debounceChanged"],value:["watchValueHandler"]}}};y.style=x;export{y as ic_text_field};
2
- //# sourceMappingURL=p-aa878a3c.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icTextFieldCss","inputIds","TextField","this","inheritedAttributes","showLeftIcon","hasLeftIconSlot","getMaxLengthExceeded","value","numChars","length","type","minValueUnattained","Number","min","maxValueExceeded","max","maxLength","maxLengthExceeded","getMaxCharactersReached","maxCharacters","maxCharactersReached","maxCharactersError","getMinCharactersUnattained","minCharacters","minCharactersUnattained","onInput","ev","target","icInput","emit","onBlur","icBlur","onFocus","icFocus","isTextArea","rows","getInlineValidationText","getValidationText","validationText","hasStatus","status","disabled","showStatusText","IcInformationStatus","Success","validationInline","validationInlineInternal","handleFormReset","initialValue","undefined","inputId","debounceChanged","icChange","debounceEvent","debounce","watchValueHandler","newValue","inputEl","connectedCallback","disconnectedCallback","removeFormResetListener","el","componentWillLoad","inheritAttributes","IC_INHERITED_ARIA","readonly","addFormResetListener","removeDisabledFalse","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","handleKeyDown","icKeydown","event","setFocus","focus","iconEl","querySelector","render","name","required","size","small","placeholder","helperText","resize","validationStatus","spellcheck","inputmode","fullWidth","truncateValue","hiddenInput","disabledMode","placeholderText","currentStatus","Warning","Error","currentValidationText","maxNumChars","messageAriaLive","multiline","hiddenCharCountDescId","describedBy","getInputDescribedByText","trim","invalid","disabledText","renderHiddenInput","h","Host","class","hideLabel","for","multiLine","slot","Object","assign","id","ref","ariaActiveDescendant","ariaExpanded","ariaOwns","autocomplete","autocapitalize","autoFocus","role","maxlength","minlength","isSlotUsed","isEmptyString","message","ariaLiveMode","variant","hidden"],"sources":["src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n}\n\n:host(.fullwidth) {\n width: 100%;\n}\n\n::placeholder {\n color: var(--ic-color-tertiary-text);\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(--ic-architectural-200);\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-color-primary-text);\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.maxlengthtext {\n color: var(--ic-color-secondary-text);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-tertiary-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-primary-text);\n}\n\n.charcount {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: unknown } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private showLeftIcon: boolean = this.hasLeftIconSlot();\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersError: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxLengthExceeded: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete: IcAriaAutocompleteTypes = undefined;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autoFocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput: boolean = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId?: string = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max: string | number = undefined;\n\n /**\n * The maximum number of characters that can be entered in the field.\n */\n @Prop() maxCharacters: number = 0;\n\n /**\n * The label for maximum number of characters that can be entered in the field.\n */\n @Prop() maxLength: number = 0;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min: string | number = undefined;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters: number = 0;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder: string = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize: boolean = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows: number = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean = false;\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue?: boolean;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline: boolean = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal: boolean = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce: number = 0;\n\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n @State() initialValue = this.value;\n\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n if (this.inputEl && this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n\n this.getMaxLengthExceeded(newValue);\n\n this.getMaxCharactersReached(newValue);\n\n this.icChange.emit({ value: newValue });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n }\n\n this.getMaxLengthExceeded(this.value);\n\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"title\",\n ]);\n\n if (this.readonly) {\n this.maxLengthExceeded = false;\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getInlineValidationText();\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n this.maxCharactersError = this.maxCharactersReached;\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n if (this.inputEl) {\n this.inputEl.focus();\n }\n }\n\n private getMaxLengthExceeded = (value: string) => {\n this.numChars = value.length;\n\n if (this.type === \"number\") {\n this.minValueUnattained =\n value && Number(value) < Number(this.min) ? true : false;\n this.maxValueExceeded = Number(value) > Number(this.max) ? true : false;\n }\n\n if (this.maxLength > 0) {\n this.maxLengthExceeded = value.length > this.maxLength ? true : false;\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = value.length;\n\n if (this.maxCharacters > 0) {\n this.maxCharactersReached = this.numChars >= this.maxCharacters;\n if (this.maxCharactersError && !this.maxCharactersReached) {\n this.maxCharactersError = false;\n }\n }\n };\n\n private getMinCharactersUnattained = (value: string) => {\n this.numChars = value.length;\n\n if (this.minCharacters > 0) {\n this.minCharactersUnattained = this.numChars < this.minCharacters;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.getMinCharactersUnattained(value);\n this.icBlur.emit({ value: value });\n };\n\n private onFocus = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.icFocus.emit({ value: value });\n };\n\n private isTextArea = (): boolean => {\n return this.rows > 1;\n };\n\n private getInlineValidationText = () => {\n this.getValidationText.emit({ value: this.validationText });\n };\n\n private hasLeftIconSlot(): boolean {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n return iconEl !== null;\n }\n\n private hasStatus = (status: IcInformationStatusOrEmpty): boolean => {\n return status !== \"\" && !this.disabled;\n };\n\n private showStatusText = (status: IcInformationStatusOrEmpty): boolean => {\n return (\n this.hasStatus(status) &&\n !(status == IcInformationStatus.Success && this.validationInline) &&\n !this.validationInlineInternal\n );\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n small,\n placeholder,\n helperText,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n maxLength,\n numChars,\n readonly,\n maxLengthExceeded,\n maxCharacters,\n maxCharactersError,\n maxCharactersReached,\n minCharacters,\n minCharactersUnattained,\n minValueUnattained,\n maxValueExceeded,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n } = this;\n\n const disabledMode = readonly ? true : disabled;\n\n const placeholderText = disabled ? \"\" : placeholder;\n\n const currentStatus =\n maxLengthExceeded ||\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersError\n ? maxCharactersError\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxLengthExceeded\n ? \"Maximum length exceeded\"\n : maxCharactersError\n ? `Maximum input is ${maxCharacters} characters`\n : maxValueExceeded\n ? `Maximum value of ${max} exceeded`\n : minValueUnattained\n ? `Minimum value of ${min} not met`\n : minCharactersUnattained\n ? `Minimum input is ${minCharacters} characters`\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxLength;\n\n const messageAriaLive =\n maxLengthExceeded ||\n maxCharactersError ||\n maxValueExceeded ||\n minValueUnattained ||\n (maxLength === 0 && currentStatus === IcInformationStatus.Error)\n ? \"assertive\"\n : \"polite\";\n\n const showStatusText = this.showStatusText(currentStatus);\n const multiline = this.isTextArea();\n const hiddenCharCountDescId =\n maxLength > 0 ? inputId + \"-charcount-desc\" : \"\";\n const describedBy = (\n hiddenCharCountDescId +\n \" \" +\n getInputDescribedByText(inputId, helperText !== \"\", showStatusText)\n ).trim();\n\n if (this.showLeftIcon && !readonly && disabledMode) {\n this.showLeftIcon = false;\n }\n\n const invalid =\n currentStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n const disabledText = disabledMode && !readonly;\n\n if (hiddenInput) {\n renderHiddenInput(true, this.el, name, value, disabledMode);\n }\n return (\n <Host class={{ [\"fullwidth\"]: fullWidth }}>\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!this.hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n ></ic-input-label>\n )}\n\n <ic-input-component-container\n size={small ? \"small\" : size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {this.showLeftIcon && (\n <span\n class={{\n [\"readonly\"]: readonly,\n [\"has-value\"]: value.length > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline && (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={this.type}\n min={min}\n max={max}\n value={value}\n class={{\n [\"no-left-pad\"]: !this.showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n [\"truncate-value\"]: truncateValue,\n }}\n placeholder={placeholderText}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-expanded={this.ariaExpanded}\n aria-owns={this.ariaOwns}\n autocomplete={this.autocomplete}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={this.role}\n maxlength={maxCharactersReached ? maxCharacters : null}\n minlength={minCharactersUnattained ? minCharacters : null}\n {...this.inheritedAttributes}\n ></input>\n )}\n {multiline && (\n <textarea\n id={inputId}\n class={{\n [\"no-resize\"]: resize === false || readonly,\n [\"no-left-pad\"]: !this.showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholderText}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : null}\n minlength={minCharactersUnattained ? minCharacters : null}\n {...this.inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(this.el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(this.el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(this.el, \"menu\") && <slot name=\"menu\"></slot>}\n {(!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n maxCharactersError ||\n minCharactersUnattained ||\n minValueUnattained) &&\n !validationInlineInternal && (\n <ic-input-validation\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n <ic-typography\n variant=\"caption\"\n class={{\n [\"maxlengthtext\"]: true,\n [\"error\"]: maxLengthExceeded,\n [\"disabled\"]: disabledText,\n }}\n >\n <span\n aria-live=\"polite\"\n id={`${inputId}-charcount`}\n class=\"charcount\"\n >\n {numChars}/{maxNumChars}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </ic-typography>\n </div>\n )}\n </ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as i,c as e,h as t,H as c,g as s}from"./p-6b5e91e2.js";import{m as a,l as o,j as r,a as n,n as l,q as h}from"./p-53f2fc84.js";import"./p-26b7b18f.js";const d='/*! 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{display:inline-block}input{overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ic-switch-container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ic-space-xxs);cursor:pointer}.ic-switch-label{margin-left:var(--ic-space-xxs);margin-bottom:var(--ic-space-sm)}.ic-switch-label-small{margin-bottom:0.625rem}.ic-switch-toggle{display:flex;align-items:center;justify-content:space-around;width:4rem;height:var(--ic-space-xl);position:relative;border-radius:100vw;background-color:var(--ic-architectural-200);border:var(--ic-border-width) solid var(--ic-architectural-700);box-sizing:border-box;transition:var(--ic-transition-duration-fast)}.ic-switch-line-break{flex:1 0 100%}.ic-switch-checked-status{padding-left:var(--ic-space-xxs);width:var(--ic-space-lg)}.ic-switch-toggle::before{content:"";width:1.333rem;height:1.333rem;border-radius:50%;position:absolute;z-index:2;top:50%;left:0.333rem;transform:translate(0, -50%);background-color:var(--ic-architectural-700);transition:var(--ic-transition-duration-slow)}.ic-switch-icon{display:inline-block;vertical-align:middle;width:0.625rem;height:0.625rem}.ic-switch-icon-circle,.ic-switch-icon-line{stroke-width:1}.ic-switch-icon-circle{stroke:var(--ic-architectural-700)}.ic-switch-icon-line{stroke:var(--ic-architectural-white)}@media (prefers-reduced-motion: reduce){.ic-switch-toggle::before{transition-duration:0ms}}.ic-switch-input:checked+.ic-switch-toggle{background-color:var(--ic-action-default);border:none}.ic-switch-input:checked+.ic-switch-toggle::before{transform:translate(var(--ic-space-xl), -50%);background-color:var(--ic-architectural-white)}.ic-switch-input:not([disabled])+.ic-switch-toggle:hover::before{box-shadow:0 0 0 0.75rem var(--ic-action-dark-bg-hover)}.ic-switch-input:not([disabled])+.ic-switch-toggle:active::before{box-shadow:0 0 0 0.75rem var(--ic-action-dark-bg-active)}.ic-switch-input:not([disabled]):checked+.ic-switch-toggle:hover::before{box-shadow:0 0 0 0.75rem var(--ic-action-default-bg-hover)}.ic-switch-input:not([disabled]):checked+.ic-switch-toggle:active::before{box-shadow:0 0 0 0.75rem var(--ic-action-default-bg-active)}.ic-switch-input:focus:not([disabled])+.ic-switch-toggle,.ic-switch-input:focus-visible:not([disabled])+.ic-switch-toggle{box-shadow:0 0 0 var(--ic-space-1px) var(--ic-architectural-white),\n 0 0 0 0.188rem var(--ic-action-default),\n 0 0 0 0.5rem var(--ic-action-default-active-alpha)}.ic-switch-disabled{cursor:default}.ic-switch-disabled .ic-switch-icon-circle{stroke:var(--ic-architectural-300)}.ic-switch-disabled .ic-switch-icon-line{stroke:var(--ic-action-default-bg-active)}.ic-switch-input:disabled+.ic-switch-toggle{background-color:var(--ic-architectural-80);border:var(--ic-border-disabled)}.ic-switch-input:disabled~.ic-switch-checked-status{color:var(--ic-architectural-300)}.ic-switch-input:disabled+.ic-switch-toggle::before{background-color:var(--ic-architectural-300)}.ic-switch-input:disabled:checked+.ic-switch-toggle{background-color:var(--ic-status-info-light);border:var(--ic-border-width) dashed #98c9f5}.ic-switch-input:disabled:checked+.ic-switch-toggle::before{background-color:var(--ic-architectural-white)}.ic-switch-small{gap:var(--ic-space-xxxs)}.ic-switch-small .ic-switch-checked-status{padding-left:0.375rem}.ic-switch-small .ic-switch-toggle{width:var(--ic-space-xxl);height:var(--ic-space-lg)}.ic-switch-small .ic-switch-toggle::before{width:var(--ic-space-md);height:var(--ic-space-md);left:var(--ic-space-xxs)}.ic-switch-small .ic-switch-input:checked+.ic-switch-toggle::before{transform:translate(var(--ic-space-lg), -50%)}::slotted(*){margin-left:var(--ic-space-sm)}::slotted(svg){fill:currentcolor}@media (forced-colors: active){.ic-switch-toggle::before,.ic-switch-input:checked+.ic-switch-toggle{border:var(--ic-hc-border)}.ic-switch-input:checked+.ic-switch-toggle::before{transform:translate(calc(var(--ic-space-xl) - 0.125rem), -50%)}.ic-switch-input:disabled+.ic-switch-toggle,.ic-switch-input:disabled:checked+.ic-switch-toggle,.ic-switch-input:disabled+.ic-switch-toggle::before{border-color:GrayText}.ic-switch-input:disabled~.ic-switch-checked-status{color:GrayText}.ic-switch-disabled .ic-switch-icon-circle,.ic-switch-disabled .ic-switch-icon-line{stroke:GrayText}}';let b=0;const u=class{constructor(t){i(this,t);this.icBlur=e(this,"icBlur",7);this.icChange=e(this,"icChange",7);this.icFocus=e(this,"icFocus",7);this.inputId=`ic-switch-input-${b++}`;this.handleChange=()=>{this.checkedState=!this.checkedState;this.icChange.emit({checked:this.checkedState,value:this.value})};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=()=>{this.icBlur.emit()};this.handleFormReset=()=>{this.checkedState=this.initiallyChecked};this.checkedState=false;this.initiallyChecked=this.checked;this.checked=false;this.disabled=false;this.helperText="";this.hideLabel=false;this.label=undefined;this.name=this.inputId;this.showState=false;this.size="default";this.small=false;this.value="on"}checkedChangeHandler(){this.checkedState=this.checked}disconnectedCallback(){a(this.el,this.handleFormReset)}componentWillLoad(){this.checkedState=this.checked;o(this.el,this.handleFormReset);r(this.disabled,this.el)}componentDidLoad(){n([{prop:this.label,propName:"label"}],"Switch")}async setFocus(){if(this.el.shadowRoot.querySelector("input")){this.el.shadowRoot.querySelector("input").focus()}}render(){const{label:i,checkedState:e,small:s,size:a,disabled:o,name:r,showState:n,value:d,hideLabel:b,helperText:u,inputId:p}=this;l(true,this.el,r,e?d:"",o);const g=h(p,u!=="",false);return t(c,null,t("label",{class:{["ic-switch-container"]:true,["ic-switch-disabled"]:o,["ic-switch-small"]:s||a==="small"},htmlFor:p},!b&&t("ic-input-label",{for:p,label:i,helperText:u,readonly:true,disabled:o,class:{["ic-switch-label"]:true,["ic-switch-label-small"]:s||a==="small"}}),!b&&t("span",{class:"ic-switch-line-break"}),t("input",{checked:e,disabled:o,"aria-label":i,"aria-checked":e?"true":"false","aria-describedby":g,role:"switch",class:"ic-switch-input",type:"checkbox",name:"toggle",id:p,onFocus:this.onFocus,onBlur:this.onBlur,onChange:this.handleChange}),t("span",{class:"ic-switch-toggle"},t("svg",{class:"ic-switch-icon","aria-hidden":"true",focusable:"false",viewBox:"0 0 10 10",xmlns:"http://www.w3.org/2000/svg"},t("line",{class:"ic-switch-icon-line",x1:"9",y1:s||a==="small"?"2":"1",x2:"9",y2:s||a==="small"?"8":"9"})),t("svg",{class:"ic-switch-icon","aria-hidden":"true",focusable:"false",viewBox:"0 0 10 10",xmlns:"http://www.w3.org/2000/svg"},t("circle",{class:"ic-switch-icon-circle",fill:"none",cx:"5",cy:"5",r:s||a==="small"?"3.335":"4.445"}))),t("slot",{name:"right-adornment"}),n&&t("ic-typography",{"aria-hidden":"true",variant:"label",class:"ic-switch-checked-status"},e?"On":"Off")))}static get delegatesFocus(){return true}get el(){return s(this)}static get watchers(){return{checked:["checkedChangeHandler"]}}};u.style=d;export{u as ic_switch};
2
- //# sourceMappingURL=p-b781b691.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as s,h as i,g as h}from"./p-6b5e91e2.js";import{I as e}from"./p-26b7b18f.js";const a=class{constructor(i){t(this,i);this.icTabSelect=s(this,"icTabSelect",3);this.tabSelect=s(this,"tabSelect",3);this.newTabPanels=[];this.newTabs=[];this.linkTabs=()=>{this.tabs.forEach(((t,s)=>{const i=`ic-tab-${s}-context-${this.contextId}`;const h=`ic-tab-panel-${s}-context-${this.contextId}`;const a=`ic-tab--${s}-context-${this.contextId}`;const c="context-id";t.setAttribute("id",i);t.tabId=a;t.tabPosition=s;t.setAttribute("aria-controls",h);t.setAttribute(c,this.contextId);this.tabGroup.setAttribute(c,this.contextId);this.tabPanels[s].setAttribute("id",h);this.tabPanels[s].panelId=a;this.tabPanels[s].tabPosition=s;this.tabPanels[s].setAttribute("aria-labelledby",i);this.tabPanels[s].setAttribute(c,this.contextId);if(this.appearance===e.Light){t.appearance=this.appearance;this.tabPanels[s].appearance=this.appearance}}));if(this.appearance===e.Light){this.tabGroup.appearance=this.appearance}};this.getChildren=()=>{this.tabGroup=this.el.querySelector("ic-tab-group");this.tabs=Array.from(this.tabGroup.querySelectorAll("ic-tab"));this.tabPanels=Array.from(this.el.children).filter((t=>t.tagName==="IC-TAB-PANEL"));this.enabledTabs=this.getEnabledTabs()};this.keydownHandler=t=>{if(this.activationType==="automatic"){this.handleKeyBoardNavAutomatic(t)}else{this.handleKeyBoardNavManual(t)}};this.attatchEventListeners=()=>{this.tabGroup.addEventListener("keydown",this.keydownHandler)};this.setControlledMode=()=>{if(this.selectedTabIndex!==undefined){this.controlledMode=true;this.selectedTab=this.selectedTabIndex}};this.setInitialTab=()=>{if(this.controlledMode){this.selectedTab=this.selectedTabIndex;this.focusedTabIndex=this.selectedTabIndex}else{const t=this.tabs.findIndex((t=>t.tabId===this.enabledTabs[0].tabId));this.selectedTab=t;this.focusedTabIndex=t}};this.configureTabs=()=>{this.enabledTabs.forEach((t=>{t.selected=t.tabPosition===this.selectedTab}));this.tabPanels.forEach((t=>{t.selectedTab=this.tabs[this.selectedTab].tabId}))};this.getEnabledTabs=()=>Array.from(this.tabs).filter((t=>!t.disabled));this.getIndexOfEnabledTab=t=>this.enabledTabs.findIndex((s=>s.tabId===this.tabs[t].tabId));this.keyboardSelectTab=t=>{const s=this.tabs.findIndex((s=>s.tabId===this.enabledTabs[t].tabId));this.enabledTabs[t].focus();if(!this.controlledMode){this.selectedTab=s}else{this.icTabSelect.emit({tabIndex:s});this.tabSelect.emit({tabIndex:s})}};this.keyboardFocusTab=t=>{const s=this.tabs.findIndex((s=>s.tabId===this.enabledTabs[t].tabId));this.enabledTabs[t].focus();this.focusedTabIndex=s};this.handleKeyBoardNavAutomatic=t=>{const s=t.key;const i=this.getIndexOfEnabledTab(this.selectedTab);let h=true;switch(s){case"Home":this.keyboardSelectTab(0);break;case"End":this.keyboardSelectTab(this.enabledTabs.length-1);break;case"ArrowRight":if(i<this.enabledTabs.length-1){this.keyboardSelectTab(i+1)}else{this.keyboardSelectTab(0)}break;case"ArrowLeft":if(i>0){this.keyboardSelectTab(i-1)}else{this.keyboardSelectTab(this.enabledTabs.length-1)}break;default:h=false}if(h)t.preventDefault()};this.handleKeyBoardNavManual=t=>{const s=t.key;const i=this.getIndexOfEnabledTab(this.focusedTabIndex);let h=true;switch(s){case"Home":this.keyboardFocusTab(0);break;case"End":this.keyboardFocusTab(this.enabledTabs.length-1);break;case"ArrowRight":if(i<this.enabledTabs.length-1){this.keyboardFocusTab(i+1)}else{this.keyboardFocusTab(0)}break;case"ArrowLeft":if(i>0){this.keyboardFocusTab(i-1)}else{this.keyboardFocusTab(this.enabledTabs.length-1)}break;case"Enter":this.keyboardSelectTab(this.focusedTabIndex);break;case" ":this.keyboardSelectTab(this.focusedTabIndex);break;default:h=false}if(h)t.preventDefault()};this.selectedTab=undefined;this.activationType="automatic";this.appearance="dark";this.contextId="default";this.selectedTabIndex=undefined}updateSelectedTab(t){this.selectedTab=t}componentDidLoad(){this.setControlledMode();this.getChildren();this.linkTabs();this.attatchEventListeners();this.setInitialTab();this.configureTabs()}componentWillUpdate(){this.configureTabs()}disconnectedCallback(){this.tabGroup.removeEventListener("keydown",this.keydownHandler)}tabClickHandler(t){if(this.selectedTabIndex===undefined&&t.detail.contextId===this.contextId){this.selectedTab=t.detail.position}this.icTabSelect.emit({tabIndex:t.detail.position});this.tabSelect.emit({tabIndex:t.detail.position});t.stopImmediatePropagation()}tabCreatedHandler(t){if(this.tabs&&this.tabPanels){(t.detail.setFocus?this.newTabs:this.newTabPanels).push(t.detail);if(this.newTabs.length===this.newTabPanels.length){this.tabs.push(...this.newTabs);this.tabPanels.push(...this.newTabPanels);this.enabledTabs=this.getEnabledTabs();this.linkTabs();this.newTabs=[];this.newTabPanels=[]}}}tabEnabledHandler(){this.enabledTabs=this.getEnabledTabs()}async tabRemovedHandler(t){this.getChildren();this.enabledTabs=this.getEnabledTabs();this.linkTabs();if(this.tabs[this.selectedTab]&&this.tabPanels[this.selectedTab]){this.tabs[this.selectedTab].selected=true;this.tabPanels[this.selectedTab].selectedTab=this.tabs[this.selectedTab].tabId}else{this.setInitialTab()}if(t){this.tabs[this.selectedTab].setFocus()}}render(){return i("slot",null)}get el(){return h(this)}static get watchers(){return{selectedTabIndex:["updateSelectedTab"]}}};export{a as ic_tab_context};
2
- //# sourceMappingURL=p-cf798ea7.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["TabContext","this","newTabPanels","newTabs","linkTabs","tabs","forEach","tab","index","tabId","contextId","tabPanelId","shared","contextIdAttr","setAttribute","tabPosition","tabGroup","tabPanels","panelId","appearance","IcThemeForegroundEnum","Light","getChildren","el","querySelector","Array","from","querySelectorAll","children","filter","child","tagName","enabledTabs","getEnabledTabs","keydownHandler","event","activationType","handleKeyBoardNavAutomatic","handleKeyBoardNavManual","attatchEventListeners","addEventListener","setControlledMode","selectedTabIndex","undefined","controlledMode","selectedTab","setInitialTab","focusedTabIndex","firstEnabledTabIndex","findIndex","configureTabs","selected","tabPanel","disabled","getIndexOfEnabledTab","allTabsIndex","keyboardSelectTab","enabledTabIndex","newIndex","focus","icTabSelect","emit","tabIndex","tabSelect","keyboardFocusTab","key","preventDefault","length","updateSelectedTab","newValue","componentDidLoad","componentWillUpdate","disconnectedCallback","removeEventListener","tabClickHandler","detail","position","stopImmediatePropagation","tabCreatedHandler","ev","setFocus","push","tabEnabledHandler","tabRemovedHandler","hadFocus","render","h"],"sources":["src/components/ic-tab-context/ic-tab-context.tsx"],"sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Prop,\n State,\n h,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport {\n IcActivationTypes,\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nimport {\n IcTabClickEventDetail,\n IcTabSelectEventDetail,\n} from \"../ic-tab/ic-tab.types\";\n\n@Component({\n tag: \"ic-tab-context\",\n})\nexport class TabContext {\n private controlledMode: boolean;\n private enabledTabs: HTMLIcTabElement[];\n private focusedTabIndex: number;\n private newTabPanels: HTMLIcTabPanelElement[] = [];\n private newTabs: HTMLIcTabElement[] = [];\n private tabs: HTMLIcTabElement[];\n private tabGroup: HTMLIcTabGroupElement;\n private tabPanels: HTMLIcTabPanelElement[];\n\n @Element() el: HTMLIcTabContextElement;\n\n @State() selectedTab: number | null;\n\n /**\n * Determines whether tabs have to be manually activated (by pressing 'Enter' or 'Space') when they receive focus using keyboard navigation.\n */\n @Prop() activationType?: IcActivationTypes = \"automatic\";\n\n /**\n * The appearance of the tab context, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * The selected tab to be controlled by the user. Must be used alongside the icTabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n @Watch(\"selectedTabIndex\")\n updateSelectedTab(newValue: number): void {\n this.selectedTab = newValue;\n }\n\n /**\n * Emitted when a user selects a tab.\n */\n @Event({ bubbles: false }) icTabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icTabSelect instead.\n */\n @Event({ bubbles: false }) tabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n componentDidLoad(): void {\n this.setControlledMode();\n this.getChildren();\n this.linkTabs();\n this.attatchEventListeners();\n this.setInitialTab();\n this.configureTabs();\n }\n\n componentWillUpdate(): void {\n this.configureTabs();\n }\n\n disconnectedCallback(): void {\n this.tabGroup.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n @Listen(\"tabClick\")\n tabClickHandler(event: CustomEvent<IcTabClickEventDetail>): void {\n if (\n this.selectedTabIndex === undefined &&\n event.detail.contextId === this.contextId\n ) {\n this.selectedTab = event.detail.position;\n }\n this.icTabSelect.emit({\n tabIndex: event.detail.position,\n });\n this.tabSelect.emit({\n tabIndex: event.detail.position,\n });\n event.stopImmediatePropagation();\n }\n\n @Listen(\"tabCreated\")\n @Listen(\"tabPanelCreated\")\n tabCreatedHandler(ev: CustomEvent): void {\n if (this.tabs && this.tabPanels) {\n (ev.detail.setFocus ? this.newTabs : this.newTabPanels).push(ev.detail);\n if (this.newTabs.length === this.newTabPanels.length) {\n this.tabs.push(...this.newTabs);\n this.tabPanels.push(...this.newTabPanels);\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n this.newTabs = [];\n this.newTabPanels = [];\n }\n }\n }\n\n @Listen(\"tabEnabled\")\n tabEnabledHandler(): void {\n this.enabledTabs = this.getEnabledTabs();\n }\n\n /**\n * @internal Used to set tab/tab panel IDs when a tab/tab panel has been removed\n */\n @Method()\n async tabRemovedHandler(hadFocus?: boolean): Promise<void> {\n this.getChildren();\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n if (this.tabs[this.selectedTab] && this.tabPanels[this.selectedTab]) {\n this.tabs[this.selectedTab].selected = true;\n this.tabPanels[this.selectedTab].selectedTab =\n this.tabs[this.selectedTab].tabId;\n } else {\n this.setInitialTab();\n }\n\n if (hadFocus) {\n this.tabs[this.selectedTab].setFocus();\n }\n }\n\n // Sets attributes to link tab-group, tabs and tab-panels\n private linkTabs = () => {\n this.tabs.forEach((tab, index) => {\n const tabId = `ic-tab-${index}-context-${this.contextId}`;\n const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;\n const shared = `ic-tab--${index}-context-${this.contextId}`;\n const contextIdAttr = \"context-id\";\n tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(contextIdAttr, this.contextId);\n this.tabGroup.setAttribute(contextIdAttr, this.contextId);\n this.tabPanels[index].setAttribute(\"id\", tabPanelId);\n this.tabPanels[index].panelId = shared;\n this.tabPanels[index].tabPosition = index;\n this.tabPanels[index].setAttribute(\"aria-labelledby\", tabId);\n this.tabPanels[index].setAttribute(contextIdAttr, this.contextId);\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n }\n });\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n this.tabGroup.appearance = this.appearance;\n }\n };\n\n // Gets tabs and tabpanels with the same context ID\n // Using querySelector to selector the children in relation to the host\n private getChildren = (): void => {\n this.tabGroup = this.el.querySelector(\"ic-tab-group\");\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\"));\n this.tabPanels = Array.from(this.el.children).filter(\n (child) => child.tagName === \"IC-TAB-PANEL\"\n ) as HTMLIcTabPanelElement[];\n this.enabledTabs = this.getEnabledTabs();\n };\n\n private keydownHandler = (event: KeyboardEvent) => {\n if (this.activationType === \"automatic\") {\n this.handleKeyBoardNavAutomatic(event);\n } else {\n this.handleKeyBoardNavManual(event);\n }\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n this.tabGroup.addEventListener(\"keydown\", this.keydownHandler);\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onIcTabSelect)\n private setControlledMode = (): void => {\n if (this.selectedTabIndex !== undefined) {\n this.controlledMode = true;\n this.selectedTab = this.selectedTabIndex;\n }\n };\n\n // Sets the tab that is selected on initial render\n private setInitialTab = (): void => {\n if (this.controlledMode) {\n this.selectedTab = this.selectedTabIndex;\n this.focusedTabIndex = this.selectedTabIndex;\n } else {\n const firstEnabledTabIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[0].tabId\n );\n this.selectedTab = firstEnabledTabIndex;\n this.focusedTabIndex = firstEnabledTabIndex;\n }\n };\n\n // Passes the selected tab to the tab and tab panel components\n private configureTabs = () => {\n this.enabledTabs.forEach((tab) => {\n tab.selected = tab.tabPosition === this.selectedTab;\n });\n this.tabPanels.forEach((tabPanel) => {\n tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;\n });\n };\n\n private getEnabledTabs = () => {\n return Array.from(this.tabs).filter((child) => !child.disabled);\n };\n\n private getIndexOfEnabledTab = (allTabsIndex: number) => {\n return this.enabledTabs.findIndex(\n (tab) => tab.tabId === this.tabs[allTabsIndex].tabId\n );\n };\n\n // Sets focus on tab and selects it\n private keyboardSelectTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n if (!this.controlledMode) {\n this.selectedTab = newIndex;\n } else {\n this.icTabSelect.emit({ tabIndex: newIndex });\n this.tabSelect.emit({ tabIndex: newIndex });\n }\n };\n\n // Sets focus on tab without selecting it (for manual activation)\n private keyboardFocusTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n this.focusedTabIndex = newIndex;\n };\n\n private handleKeyBoardNavAutomatic = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardSelectTab(0);\n break;\n case \"End\":\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardSelectTab(enabledTabIndex + 1);\n } else {\n this.keyboardSelectTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardSelectTab(enabledTabIndex - 1);\n } else {\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n }\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n private handleKeyBoardNavManual = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardFocusTab(0);\n break;\n case \"End\":\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardFocusTab(enabledTabIndex + 1);\n } else {\n this.keyboardFocusTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardFocusTab(enabledTabIndex - 1);\n } else {\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n }\n break;\n case \"Enter\":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n case \" \":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n render() {\n return <slot></slot>;\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-6b5e91e2.js";import{j as n,a as o}from"./p-53f2fc84.js";import"./p-26b7b18f.js";const l=`<svg width="8" height="10" viewBox="0 0 8 10" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M2.08748 0L0.912476 1.175L4.72914 5L0.912476 8.825L2.08748 10L7.08748 5L2.08748 0Z" fill="currentColor"/>\n</svg>\n`;const h=`<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M11.1709 8.825L7.34589 5L11.1709 1.175L9.99589 0L4.99589 5L9.99589 10L11.1709 8.825ZM0.829224 0H2.49589V10H0.829224V0Z" fill="currentColour"/>\n</svg>`;const r='/*! 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{box-sizing:border-box;width:100%;display:flex;justify-content:center}nav{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}ic-button{cursor:pointer}ic-button.next-previous{--icon-width:var(--ic-space-xs);--icon-height:calc(var(--ic-space-xs) + var(--ic-space-xxxs));padding:0 var(--ic-space-xxs) 0 var(--ic-space-xxxs)}ic-button.first-last{--icon-width:calc(var(--ic-space-sm) + var(--ic-space-xxxs));--icon-height:calc(var(--ic-space-xs) + var(--ic-space-xxxs))}.disabled{color:var(--ic-architectural-200);pointer-events:none;cursor:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hide-current-page{display:none}';const p=class{constructor(s){t(this,s);this.icPageChange=i(this,"icPageChange",7);this.handleClickFirst=()=>{this.currentPage=1;this.icPageChange.emit({value:this.currentPage})};this.handleClickPrevious=()=>{this.currentPage--;this.icPageChange.emit({value:this.currentPage})};this.handleClickNext=()=>{this.currentPage++;this.icPageChange.emit({value:this.currentPage})};this.handleClickLast=()=>{this.currentPage=this.pages;this.icPageChange.emit({value:this.currentPage})};this.firstButton=()=>e("ic-button",{id:"first-page-button","aria-label":"Go to first page",appearance:this.appearance,onClick:this.handleClickFirst,class:"page-button first-last",disabled:this.currentPage===1||this.disabled,variant:"icon",innerHTML:h,tooltipPlacement:"top"});this.previousButton=()=>e("ic-button",{id:"previous-page-button","aria-label":"Go to previous page",appearance:this.appearance,onClick:this.handleClickPrevious,class:"page-button next-previous flip",disabled:this.currentPage===1||this.disabled,variant:"icon",innerHTML:l,tooltipPlacement:"top"});this.nextButton=()=>e("ic-button",{id:"next-page-button","aria-label":"Go to next page",appearance:this.appearance,onClick:this.handleClickNext,class:"page-button next-previous",disabled:this.currentPage===this.pages||this.disabled,variant:"icon",innerHTML:l,tooltipPlacement:"top"});this.lastButton=()=>e("ic-button",{id:"last-page-button","aria-label":"Go to last page",appearance:this.appearance,onClick:this.handleClickLast,class:"page-button first-last flip",disabled:this.currentPage===this.pages||this.disabled,variant:"icon",innerHTML:h,tooltipPlacement:"top"});this.renderStartEllipsis=()=>e("ic-pagination-item",{appearance:this.appearance,type:"ellipsis",id:"start-ellipsis",disabled:this.disabled});this.renderEndEllipsis=()=>e("ic-pagination-item",{appearance:this.appearance,type:"ellipsis",id:"end-ellipsis",disabled:this.disabled});this.renderStartItems=()=>this.startItems.map((t=>e("ic-pagination-item",{appearance:this.appearance,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.renderEndItems=()=>this.endItems.map((t=>e("ic-pagination-item",{appearance:this.appearance,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.renderMiddleItems=()=>this.midItems.map((t=>e("ic-pagination-item",{appearance:this.appearance,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.endEllipsis=false;this.endItems=[];this.midItems=[];this.startEllipsis=false;this.startItems=[];this.adjacentCount=1;this.appearance="default";this.boundaryCount=1;this.defaultPage=1;this.disabled=false;this.hideCurrentPage=false;this.hideFirstAndLastPageButton=false;this.label="Page";this.pages=undefined;this.type="simple";this.currentPage=this.defaultPage}watchNumberPagesHandler(){this.watchPageChangeHandler()}watchPageChangeHandler(){if(this.type==="simple"){return}this.startEllipsis=false;this.endEllipsis=false;this.startItems=[];this.endItems=[];this.midItems=[];const t=[];let i=0;const e=[];let s=this.pages;const a=[];let n;let o;let l=false;let h=false;if(this.pages<=this.boundaryCount*2+this.adjacentCount*2+3){this.startEllipsis=false;this.endEllipsis=false;for(let i=1;i<=this.pages;i++){t.push(i)}this.startItems=t;return}i=this.boundaryCount===0?1:this.boundaryCount;s=this.boundaryCount===0?this.pages:this.pages-this.boundaryCount+1;if(this.currentPage<=this.adjacentCount+this.boundaryCount+2){l=false;h=true;let t=2*this.adjacentCount+1;if(this.boundaryCount===0){t--}n=i+1;o=n+t}else{l=true;if(this.currentPage>this.pages-(this.adjacentCount+this.boundaryCount+2)){let t=2*this.adjacentCount+1;if(this.boundaryCount===0){t--}o=this.boundaryCount===0?this.pages-1:this.pages-this.boundaryCount;n=o-t}else{h=true;n=this.currentPage-this.adjacentCount;o=this.currentPage+this.adjacentCount}}if(this.boundaryCount>0||this.boundaryCount===0&&l===false){for(let e=1;e<=i;e++){t.push(e)}}if(this.boundaryCount>0||this.boundaryCount===0&&h===false){for(let t=s;t<=this.pages;t++){e.push(t)}}for(let t=n;t<=o;t++){a.push(t)}this.startEllipsis=l;this.endEllipsis=h;this.startItems=t;this.endItems=e;this.midItems=a}componentWillLoad(){this.watchPageChangeHandler();if(this.boundaryCount>2){this.boundaryCount=2}if(this.adjacentCount>2){this.adjacentCount=2}n(this.disabled,this.el)}componentDidLoad(){o([{prop:this.pages,propName:"pages"}],"Pagination")}paginationItemClickHandler(t){const i=t.detail.page;this.currentPage=i;this.icPageChange.emit({value:this.currentPage})}async setCurrentPage(t){if(typeof t==="number"&&t>0&&t<=this.pages){this.currentPage=t}else{console.error("Current page must be a number greater than zero but less than or equal to the total number of pages")}}render(){const{type:t,pages:i,currentPage:a,hideCurrentPage:n,disabled:o,hideFirstAndLastPageButton:l,label:h}=this;return e(s,null,t==="simple"&&e("nav",{class:{["disabled"]:o},role:"navigation","aria-label":"Pagination Navigation"},l?null:this.firstButton(),this.previousButton(),e("ic-pagination-item",{pages:i,appearance:this.appearance,type:"simple-current",page:a,label:h,class:{["hide-current-page"]:n}}),this.nextButton(),l?null:this.lastButton()),t==="complex"&&e("nav",{class:{["disabled"]:o},role:"navigation","aria-label":"Pagination Navigation"},l?null:this.firstButton(),this.previousButton(),this.renderStartItems(),this.startEllipsis&&this.renderStartEllipsis(),this.renderMiddleItems(),this.endEllipsis&&this.renderEndEllipsis(),this.renderEndItems(),this.nextButton(),l?null:this.lastButton()))}get el(){return a(this)}static get watchers(){return{pages:["watchNumberPagesHandler"],currentPage:["watchPageChangeHandler"]}}};p.style=r;export{p as ic_pagination};
2
- //# sourceMappingURL=p-df090fc1.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icPaginationCss","Pagination","this","handleClickFirst","currentPage","icPageChange","emit","value","handleClickPrevious","handleClickNext","handleClickLast","pages","firstButton","h","id","appearance","onClick","class","disabled","variant","innerHTML","paginationFirstLast","tooltipPlacement","previousButton","paginationNextPrevious","nextButton","lastButton","renderStartEllipsis","type","renderEndEllipsis","renderStartItems","startItems","map","page","selected","renderEndItems","endItems","renderMiddleItems","midItems","defaultPage","watchNumberPagesHandler","watchPageChangeHandler","startEllipsis","endEllipsis","startItemCount","endStart","midStart","midEnd","boundaryCount","adjacentCount","i","push","numItems","componentWillLoad","removeDisabledFalse","el","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","paginationItemClickHandler","ev","detail","setCurrentPage","console","error","render","hideCurrentPage","hideFirstAndLastPageButton","label","Host","role"],"sources":["src/components/ic-pagination/ic-pagination.css?tag=ic-pagination&encapsulation=shadow","src/components/ic-pagination/ic-pagination.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\nnav {\n width: 100%;\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\nic-button {\n cursor: pointer;\n}\n\nic-button.next-previous {\n --icon-width: var(--ic-space-xs);\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n\n padding: 0 var(--ic-space-xxs) 0 var(--ic-space-xxxs);\n}\n\nic-button.first-last {\n --icon-width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\n.disabled {\n color: var(--ic-architectural-200);\n pointer-events: none;\n cursor: none;\n user-select: none;\n}\n\n.hide-current-page {\n display: none;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Listen,\n State,\n Watch,\n Event,\n EventEmitter,\n Method,\n} from \"@stencil/core\";\nimport paginationNextPrevious from \"../../assets/pagination-next-previous.svg\";\nimport paginationFirstLast from \"../../assets/pagination-first-last.svg\";\nimport { IcThemeForeground } from \"../../utils/types\";\nimport { IcPaginationTypes, IcChangeEventDetail } from \"./ic-pagination.types\";\nimport {\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-pagination\",\n styleUrl: \"ic-pagination.css\",\n shadow: true,\n})\nexport class Pagination {\n @Element() el: HTMLIcPaginationElement;\n\n @State() endEllipsis: boolean = false;\n @State() endItems: number[] = [];\n @State() midItems: number[] = [];\n @State() startEllipsis: boolean = false;\n @State() startItems: number[] = [];\n\n /**\n * The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) adjacentCount: number = 1;\n\n /**\n * The appearance of the pagination, e.g. dark, light or the default.\n */\n @Prop() appearance: IcThemeForeground = \"default\";\n\n /**\n * The number of pages displayed as boundary items to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) boundaryCount: number = 1;\n\n /**\n * The default page to display.\n */\n @Prop() defaultPage: number = 1;\n\n /**\n * If `true`, the pagination will not allow interaction.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * If `true`, the current page of the simple pagination will not be displayed.\n */\n @Prop() hideCurrentPage: boolean = false;\n\n /**\n * If `true`, the first and last page buttons will not be displayed.\n */\n @Prop() hideFirstAndLastPageButton: boolean = false;\n\n /**\n * The label for the pagination item (applicable when simple pagination is being used).\n */\n @Prop() label: string = \"Page\";\n\n /**\n * The total number of pages.\n */\n @Prop() pages!: number;\n\n @Watch(\"pages\")\n watchNumberPagesHandler(): void {\n this.watchPageChangeHandler();\n }\n\n /**\n * The type of pagination to be used.\n */\n @Prop() type: IcPaginationTypes = \"simple\";\n\n /**\n * The current page displayed by the pagination.\n */\n @Prop({ mutable: true }) currentPage: number = this.defaultPage;\n\n @Watch(\"currentPage\")\n watchPageChangeHandler(): void {\n if (this.type === \"simple\") {\n return;\n }\n\n this.startEllipsis = false;\n this.endEllipsis = false;\n this.startItems = [];\n this.endItems = [];\n this.midItems = [];\n\n const startItems = [];\n let startItemCount = 0;\n const endItems = [];\n let endStart = this.pages;\n const midItems = [];\n let midStart;\n let midEnd;\n let startEllipsis = false;\n let endEllipsis = false;\n\n if (this.pages <= this.boundaryCount * 2 + this.adjacentCount * 2 + 3) {\n this.startEllipsis = false;\n this.endEllipsis = false;\n for (let i = 1; i <= this.pages; i++) {\n startItems.push(i);\n }\n this.startItems = startItems;\n return;\n }\n\n startItemCount = this.boundaryCount === 0 ? 1 : this.boundaryCount;\n endStart =\n this.boundaryCount === 0\n ? this.pages\n : this.pages - this.boundaryCount + 1;\n\n if (this.currentPage <= this.adjacentCount + this.boundaryCount + 2) {\n startEllipsis = false;\n endEllipsis = true;\n\n let numItems = 2 * this.adjacentCount + 1;\n if (this.boundaryCount === 0) {\n numItems--;\n }\n midStart = startItemCount + 1;\n midEnd = midStart + numItems;\n } else {\n startEllipsis = true;\n if (\n this.currentPage >\n this.pages - (this.adjacentCount + this.boundaryCount + 2)\n ) {\n let numItems = 2 * this.adjacentCount + 1;\n if (this.boundaryCount === 0) {\n numItems--;\n }\n midEnd =\n this.boundaryCount === 0\n ? this.pages - 1\n : this.pages - this.boundaryCount;\n midStart = midEnd - numItems;\n } else {\n endEllipsis = true;\n midStart = this.currentPage - this.adjacentCount;\n midEnd = this.currentPage + this.adjacentCount;\n }\n }\n\n //create array of start items\n if (\n this.boundaryCount > 0 ||\n (this.boundaryCount === 0 && startEllipsis === false)\n ) {\n for (let i = 1; i <= startItemCount; i++) {\n startItems.push(i);\n }\n }\n\n //create array of end items\n if (\n this.boundaryCount > 0 ||\n (this.boundaryCount === 0 && endEllipsis === false)\n ) {\n for (let i = endStart; i <= this.pages; i++) {\n endItems.push(i);\n }\n }\n\n //create array of mid items\n for (let i = midStart; i <= midEnd; i++) {\n midItems.push(i);\n }\n\n this.startEllipsis = startEllipsis;\n this.endEllipsis = endEllipsis;\n this.startItems = startItems;\n this.endItems = endItems;\n this.midItems = midItems;\n }\n\n /**\n * Emitted when a page is selected.\n */\n @Event() icPageChange: EventEmitter<IcChangeEventDetail>;\n\n componentWillLoad(): void {\n this.watchPageChangeHandler();\n if (this.boundaryCount > 2) {\n this.boundaryCount = 2;\n }\n if (this.adjacentCount > 2) {\n this.adjacentCount = 2;\n }\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.pages, propName: \"pages\" }],\n \"Pagination\"\n );\n }\n\n @Listen(\"paginationItemClick\")\n paginationItemClickHandler(ev: CustomEvent): void {\n const page = ev.detail.page;\n this.currentPage = page;\n this.icPageChange.emit({ value: this.currentPage });\n }\n\n /**\n * Sets the currently displayed page.\n * @param {number} page The page number to set as the current page\n */\n @Method()\n async setCurrentPage(page: number): Promise<void> {\n if (typeof page === \"number\" && page > 0 && page <= this.pages) {\n this.currentPage = page;\n } else {\n console.error(\n \"Current page must be a number greater than zero but less than or equal to the total number of pages\"\n );\n }\n }\n\n private handleClickFirst = () => {\n this.currentPage = 1;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private handleClickPrevious = (): void => {\n this.currentPage--;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private handleClickNext = (): void => {\n this.currentPage++;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private handleClickLast = (): void => {\n this.currentPage = this.pages;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n // button rendering abstracted from component render methods for clarity\n private firstButton = () => {\n return (\n <ic-button\n id=\"first-page-button\"\n aria-label=\"Go to first page\"\n appearance={this.appearance}\n onClick={this.handleClickFirst}\n class=\"page-button first-last\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon\"\n innerHTML={paginationFirstLast}\n tooltipPlacement=\"top\"\n />\n );\n };\n\n private previousButton = () => {\n return (\n <ic-button\n id=\"previous-page-button\"\n aria-label=\"Go to previous page\"\n appearance={this.appearance}\n onClick={this.handleClickPrevious}\n class=\"page-button next-previous flip\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon\"\n innerHTML={paginationNextPrevious}\n tooltipPlacement=\"top\"\n />\n );\n };\n\n private nextButton = () => {\n return (\n <ic-button\n id=\"next-page-button\"\n aria-label=\"Go to next page\"\n appearance={this.appearance}\n onClick={this.handleClickNext}\n class=\"page-button next-previous\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon\"\n innerHTML={paginationNextPrevious}\n tooltipPlacement=\"top\"\n />\n );\n };\n\n private lastButton = () => {\n return (\n <ic-button\n id=\"last-page-button\"\n aria-label=\"Go to last page\"\n appearance={this.appearance}\n onClick={this.handleClickLast}\n class=\"page-button first-last flip\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon\"\n innerHTML={paginationFirstLast}\n tooltipPlacement=\"top\"\n />\n );\n };\n\n private renderStartEllipsis = () => {\n return (\n <ic-pagination-item\n appearance={this.appearance}\n type=\"ellipsis\"\n id=\"start-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderEndEllipsis = () => {\n return (\n <ic-pagination-item\n appearance={this.appearance}\n type=\"ellipsis\"\n id=\"end-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderStartItems = () => {\n return this.startItems.map((page: number) => {\n return (\n <ic-pagination-item\n appearance={this.appearance}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderEndItems = () => {\n return this.endItems.map((page: number) => {\n return (\n <ic-pagination-item\n appearance={this.appearance}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderMiddleItems = () => {\n return this.midItems.map((page: number) => {\n return (\n <ic-pagination-item\n appearance={this.appearance}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n render() {\n const {\n type,\n pages,\n currentPage,\n hideCurrentPage,\n disabled,\n hideFirstAndLastPageButton,\n label,\n } = this;\n\n return (\n <Host>\n {type === \"simple\" && (\n <nav\n class={{\n [\"disabled\"]: disabled,\n }}\n role=\"navigation\"\n aria-label=\"Pagination Navigation\"\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n <ic-pagination-item\n pages={pages}\n appearance={this.appearance}\n type=\"simple-current\"\n page={currentPage}\n label={label}\n class={{ [\"hide-current-page\"]: hideCurrentPage }}\n />\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n {type === \"complex\" && (\n <nav\n class={{\n [\"disabled\"]: disabled,\n }}\n role=\"navigation\"\n aria-label=\"Pagination Navigation\"\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n {this.renderStartItems()}\n {this.startEllipsis && this.renderStartEllipsis()}\n {this.renderMiddleItems()}\n {this.endEllipsis && this.renderEndEllipsis()}\n {this.renderEndItems()}\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}