@ukic/web-components 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/README.md +28 -0
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/{helpers-a0a128bd.js → helpers-fc4016d2.js} +36 -73
  4. package/dist/cjs/helpers-fc4016d2.js.map +1 -0
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +63 -36
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +4 -4
  12. package/dist/cjs/ic-badge.cjs.entry.js +41 -17
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +56 -76
  15. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js +32 -51
  17. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-button_3.cjs.entry.js +135 -131
  19. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-card-vertical.cjs.entry.js +6 -6
  21. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js +9 -10
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-checkbox.cjs.entry.js +35 -34
  25. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-chip.cjs.entry.js +26 -38
  27. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  31. package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
  32. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  36. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  39. package/dist/cjs/ic-footer.cjs.entry.js +4 -4
  40. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  41. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  42. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -9
  43. package/dist/cjs/ic-input-label_2.cjs.entry.js +8 -8
  44. package/dist/cjs/ic-link.cjs.entry.js +21 -3
  45. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  47. package/dist/cjs/ic-menu-item.cjs.entry.js +5 -5
  48. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  50. package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -3
  51. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-item.cjs.entry.js +12 -7
  53. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  55. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  56. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  58. package/dist/cjs/ic-popover-menu.cjs.entry.js +8 -7
  59. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  61. package/dist/cjs/ic-radio-option.cjs.entry.js +6 -6
  62. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-search-bar.cjs.entry.js +112 -135
  64. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-select.cjs.entry.js +47 -50
  67. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -6
  69. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-skip-link.cjs.entry.js +10 -3
  72. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  74. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-step.cjs.entry.js +15 -15
  76. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  78. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  79. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  81. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  82. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  83. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  84. package/dist/cjs/ic-text-field.cjs.entry.js +32 -29
  85. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-theme.cjs.entry.js +4 -2
  87. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  89. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  90. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  91. package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -4
  92. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  94. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-typography.cjs.entry.js +4 -4
  96. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  97. package/dist/cjs/loader.cjs.js +1 -1
  98. package/dist/collection/components/ic-accordion/ic-accordion.css +3 -0
  99. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +1 -0
  100. package/dist/collection/components/ic-alert/ic-alert.css +3 -1
  101. package/dist/collection/components/ic-alert/ic-alert.js +85 -50
  102. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  103. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -3
  104. package/dist/collection/components/ic-badge/ic-badge.css +1 -1
  105. package/dist/collection/components/ic-badge/ic-badge.js +39 -15
  106. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  107. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +40 -59
  108. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  109. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +65 -86
  110. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  111. package/dist/collection/components/ic-button/ic-button.css +123 -59
  112. package/dist/collection/components/ic-button/ic-button.js +141 -162
  113. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  114. package/dist/collection/components/ic-button/ic-button.stories.js +39 -54
  115. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +20 -4
  116. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  117. package/dist/collection/components/ic-checkbox/ic-checkbox.css +3 -1
  118. package/dist/collection/components/ic-checkbox/ic-checkbox.js +71 -73
  119. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  120. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +24 -25
  121. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  122. package/dist/collection/components/ic-chip/ic-chip.css +9 -0
  123. package/dist/collection/components/ic-chip/ic-chip.js +66 -72
  124. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  125. package/dist/collection/components/ic-chip/ic-chip.stories.js +2 -1
  126. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +2 -2
  127. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  128. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  129. package/dist/collection/components/ic-dialog/ic-dialog.css +2 -1
  130. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  131. package/dist/collection/components/ic-divider/ic-divider.css +7 -4
  132. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  133. package/dist/collection/components/ic-footer/ic-footer.js +3 -3
  134. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  135. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +0 -3
  136. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  137. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  138. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  139. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  140. package/dist/collection/components/ic-input-label/ic-input-label.js +4 -4
  141. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  142. package/dist/collection/components/ic-link/ic-link.js +23 -2
  143. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  144. package/dist/collection/components/ic-link/ic-link.stories.js +28 -5
  145. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +3 -3
  146. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  147. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  148. package/dist/collection/components/ic-menu-item/ic-menu-item.css +2 -5
  149. package/dist/collection/components/ic-menu-item/ic-menu-item.js +3 -3
  150. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  151. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  152. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +0 -4
  153. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  154. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +20 -1
  155. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +11 -6
  156. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  157. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  158. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  159. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  160. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  161. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +0 -5
  162. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +6 -5
  163. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  164. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  165. package/dist/collection/components/ic-radio-option/ic-radio-option.css +2 -1
  166. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  167. package/dist/collection/components/ic-search-bar/ic-search-bar.js +169 -192
  168. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  169. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  170. package/dist/collection/components/ic-select/ic-select.js +46 -49
  171. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  172. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +3 -2
  173. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  174. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  175. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  176. package/dist/collection/components/ic-skip-link/ic-skip-link.js +31 -3
  177. package/dist/collection/components/ic-skip-link/ic-skip-link.js.map +1 -1
  178. package/dist/collection/components/ic-status-tag/ic-status-tag.css +6 -0
  179. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  180. package/dist/collection/components/ic-step/ic-step.css +0 -3
  181. package/dist/collection/components/ic-step/ic-step.js +13 -13
  182. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  183. package/dist/collection/components/ic-switch/ic-switch.js +5 -5
  184. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  185. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  186. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  187. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  188. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  189. package/dist/collection/components/ic-text-field/ic-text-field.js +112 -95
  190. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  191. package/dist/collection/components/ic-theme/ic-theme.js +31 -3
  192. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  193. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  194. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  195. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +6 -8
  196. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  197. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  198. package/dist/collection/components/ic-tooltip/ic-tooltip.js +32 -2
  199. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  200. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -1
  201. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  202. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  203. package/dist/collection/components/ic-typography/ic-typography.css +2 -2
  204. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  205. package/dist/collection/utils/helpers.js +35 -72
  206. package/dist/collection/utils/helpers.js.map +1 -1
  207. package/dist/collection/utils/types.js.map +1 -1
  208. package/dist/components/helpers.js +36 -73
  209. package/dist/components/helpers.js.map +1 -1
  210. package/dist/components/ic-accordion-group.js.map +1 -1
  211. package/dist/components/ic-accordion.js.map +1 -1
  212. package/dist/components/ic-alert.js +66 -37
  213. package/dist/components/ic-alert.js.map +1 -1
  214. package/dist/components/ic-back-to-top.js +3 -3
  215. package/dist/components/ic-badge.js +40 -16
  216. package/dist/components/ic-badge.js.map +1 -1
  217. package/dist/components/ic-breadcrumb-group.js +57 -78
  218. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  219. package/dist/components/ic-breadcrumb2.js +32 -51
  220. package/dist/components/ic-breadcrumb2.js.map +1 -1
  221. package/dist/components/ic-button2.js +105 -126
  222. package/dist/components/ic-button2.js.map +1 -1
  223. package/dist/components/ic-card-vertical.js +5 -5
  224. package/dist/components/ic-card-vertical.js.map +1 -1
  225. package/dist/components/ic-checkbox-group.js +9 -10
  226. package/dist/components/ic-checkbox-group.js.map +1 -1
  227. package/dist/components/ic-checkbox.js +37 -36
  228. package/dist/components/ic-checkbox.js.map +1 -1
  229. package/dist/components/ic-chip.js +28 -40
  230. package/dist/components/ic-chip.js.map +1 -1
  231. package/dist/components/ic-classification-banner.js +2 -2
  232. package/dist/components/ic-data-list.js +2 -2
  233. package/dist/components/ic-data-row.js +3 -3
  234. package/dist/components/ic-dialog.js +2 -2
  235. package/dist/components/ic-dialog.js.map +1 -1
  236. package/dist/components/ic-divider2.js +2 -2
  237. package/dist/components/ic-divider2.js.map +1 -1
  238. package/dist/components/ic-empty-state.js +2 -2
  239. package/dist/components/ic-footer-link-group.js +1 -1
  240. package/dist/components/ic-footer-link-group.js.map +1 -1
  241. package/dist/components/ic-footer-link.js +2 -2
  242. package/dist/components/ic-footer.js +4 -4
  243. package/dist/components/ic-hero.js +5 -5
  244. package/dist/components/ic-horizontal-scroll2.js +6 -6
  245. package/dist/components/ic-input-component-container2.js +4 -4
  246. package/dist/components/ic-input-container2.js +2 -2
  247. package/dist/components/ic-input-label2.js +5 -5
  248. package/dist/components/ic-input-validation2.js +4 -4
  249. package/dist/components/ic-link2.js +23 -3
  250. package/dist/components/ic-link2.js.map +1 -1
  251. package/dist/components/ic-loading-indicator2.js +3 -3
  252. package/dist/components/ic-menu-group.js +1 -1
  253. package/dist/components/ic-menu-item2.js +4 -4
  254. package/dist/components/ic-menu-item2.js.map +1 -1
  255. package/dist/components/ic-menu2.js +4 -4
  256. package/dist/components/ic-navigation-button.js +2 -2
  257. package/dist/components/ic-navigation-group.js +3 -3
  258. package/dist/components/ic-navigation-group.js.map +1 -1
  259. package/dist/components/ic-navigation-item.js +12 -7
  260. package/dist/components/ic-navigation-item.js.map +1 -1
  261. package/dist/components/ic-navigation-menu2.js +5 -5
  262. package/dist/components/ic-page-header.js +6 -6
  263. package/dist/components/ic-pagination-item2.js +2 -2
  264. package/dist/components/ic-pagination.js +4 -4
  265. package/dist/components/ic-popover-menu.js +7 -6
  266. package/dist/components/ic-popover-menu.js.map +1 -1
  267. package/dist/components/ic-radio-group.js +5 -5
  268. package/dist/components/ic-radio-option.js +6 -6
  269. package/dist/components/ic-radio-option.js.map +1 -1
  270. package/dist/components/ic-search-bar.js +112 -135
  271. package/dist/components/ic-search-bar.js.map +1 -1
  272. package/dist/components/ic-section-container2.js +2 -2
  273. package/dist/components/ic-select.js +47 -50
  274. package/dist/components/ic-select.js.map +1 -1
  275. package/dist/components/ic-side-navigation.js +6 -6
  276. package/dist/components/ic-side-navigation.js.map +1 -1
  277. package/dist/components/ic-skeleton.js +2 -2
  278. package/dist/components/ic-skip-link.js +12 -4
  279. package/dist/components/ic-skip-link.js.map +1 -1
  280. package/dist/components/ic-status-tag.js +2 -2
  281. package/dist/components/ic-status-tag.js.map +1 -1
  282. package/dist/components/ic-step.js +14 -14
  283. package/dist/components/ic-step.js.map +1 -1
  284. package/dist/components/ic-stepper.js +3 -3
  285. package/dist/components/ic-switch.js +6 -6
  286. package/dist/components/ic-switch.js.map +1 -1
  287. package/dist/components/ic-tab-context.js +1 -1
  288. package/dist/components/ic-tab-group.js +2 -2
  289. package/dist/components/ic-tab-panel.js +2 -2
  290. package/dist/components/ic-tab.js +2 -2
  291. package/dist/components/ic-text-field.js +32 -29
  292. package/dist/components/ic-text-field.js.map +1 -1
  293. package/dist/components/ic-theme.js +3 -1
  294. package/dist/components/ic-theme.js.map +1 -1
  295. package/dist/components/ic-toast-region.js +1 -1
  296. package/dist/components/ic-toast.js +4 -4
  297. package/dist/components/ic-toggle-button-group.js +2 -2
  298. package/dist/components/ic-toggle-button.js +3 -3
  299. package/dist/components/ic-toggle-button.js.map +1 -1
  300. package/dist/components/ic-tooltip2.js +30 -2
  301. package/dist/components/ic-tooltip2.js.map +1 -1
  302. package/dist/components/ic-top-navigation.js +5 -5
  303. package/dist/components/ic-top-navigation.js.map +1 -1
  304. package/dist/components/ic-typography2.js +3 -3
  305. package/dist/components/ic-typography2.js.map +1 -1
  306. package/dist/core/core.css +160 -110
  307. package/dist/core/core.esm.js +1 -1
  308. package/dist/core/core.esm.js.map +1 -1
  309. package/dist/core/p-00bc353b.entry.js +2 -0
  310. package/dist/core/p-00bc353b.entry.js.map +1 -0
  311. package/dist/core/{p-45595f98.entry.js → p-0a436c47.entry.js} +2 -2
  312. package/dist/core/p-0a436c47.entry.js.map +1 -0
  313. package/dist/core/{p-a55e7988.entry.js → p-10e1e227.entry.js} +2 -2
  314. package/dist/core/p-1440847f.entry.js +2 -0
  315. package/dist/core/p-1440847f.entry.js.map +1 -0
  316. package/dist/core/{p-729745d3.entry.js → p-15b7adaf.entry.js} +2 -2
  317. package/dist/core/p-16f55230.entry.js +2 -0
  318. package/dist/core/p-16f55230.entry.js.map +1 -0
  319. package/dist/core/{p-5c349c9d.entry.js → p-1838d1e9.entry.js} +2 -2
  320. package/dist/core/p-1838d1e9.entry.js.map +1 -0
  321. package/dist/core/{p-972671ea.entry.js → p-18714198.entry.js} +2 -2
  322. package/dist/core/{p-a20a7cd3.entry.js → p-1b2690b4.entry.js} +2 -2
  323. package/dist/core/p-1b2690b4.entry.js.map +1 -0
  324. package/dist/core/{p-37df68fe.entry.js → p-1be17f22.entry.js} +2 -2
  325. package/dist/core/p-206c2a26.entry.js +2 -0
  326. package/dist/core/p-206c2a26.entry.js.map +1 -0
  327. package/dist/core/{p-17cf7b50.entry.js → p-267a19d4.entry.js} +2 -2
  328. package/dist/core/p-26dfc4db.entry.js +2 -0
  329. package/dist/core/p-26dfc4db.entry.js.map +1 -0
  330. package/dist/core/p-2c17cc67.entry.js +2 -0
  331. package/dist/core/p-2c17cc67.entry.js.map +1 -0
  332. package/dist/core/{p-8b268274.entry.js → p-2c371198.entry.js} +2 -2
  333. package/dist/core/p-2e44cf53.entry.js +2 -0
  334. package/dist/core/p-2e44cf53.entry.js.map +1 -0
  335. package/dist/core/p-42a7d0b6.entry.js +2 -0
  336. package/dist/core/{p-fa02a267.entry.js → p-4b6818d9.entry.js} +2 -2
  337. package/dist/core/p-513628ef.entry.js +2 -0
  338. package/dist/core/p-513628ef.entry.js.map +1 -0
  339. package/dist/core/{p-1ac08e6d.entry.js → p-628c32b8.entry.js} +2 -2
  340. package/dist/core/p-70a6cff1.entry.js +2 -0
  341. package/dist/core/p-70a6cff1.entry.js.map +1 -0
  342. package/dist/core/{p-8856dff4.entry.js → p-72c117b6.entry.js} +2 -2
  343. package/dist/core/p-730d2f6e.entry.js +2 -0
  344. package/dist/core/p-730d2f6e.entry.js.map +1 -0
  345. package/dist/core/{p-0d016565.entry.js → p-788c96ac.entry.js} +2 -2
  346. package/dist/core/{p-78e7a859.entry.js → p-7fb79e87.entry.js} +2 -2
  347. package/dist/core/p-8242c24f.js +2 -0
  348. package/dist/core/p-8242c24f.js.map +1 -0
  349. package/dist/core/{p-7e79bd0e.entry.js → p-83764268.entry.js} +2 -2
  350. package/dist/core/p-8b5022bc.entry.js +2 -0
  351. package/dist/core/p-8b5022bc.entry.js.map +1 -0
  352. package/dist/core/{p-f34efc17.entry.js → p-8c4f7c63.entry.js} +2 -2
  353. package/dist/core/{p-1f455336.entry.js → p-910f5f14.entry.js} +2 -2
  354. package/dist/core/{p-10cd26dc.entry.js → p-9479f272.entry.js} +2 -2
  355. package/dist/core/{p-10cd26dc.entry.js.map → p-9479f272.entry.js.map} +1 -1
  356. package/dist/core/p-9c47521d.entry.js +2 -0
  357. package/dist/core/p-9c47521d.entry.js.map +1 -0
  358. package/dist/core/{p-110486f0.entry.js → p-9ca147f3.entry.js} +2 -2
  359. package/dist/core/{p-d9aec0dd.entry.js → p-9cfc2bac.entry.js} +2 -2
  360. package/dist/core/{p-74600ed8.entry.js → p-a0161990.entry.js} +2 -2
  361. package/dist/core/p-a17499ff.entry.js +2 -0
  362. package/dist/core/p-a17499ff.entry.js.map +1 -0
  363. package/dist/core/{p-4f2a1950.entry.js → p-a4f9b5bf.entry.js} +2 -2
  364. package/dist/core/{p-c9726fbd.entry.js → p-aad10013.entry.js} +2 -2
  365. package/dist/core/p-aad10013.entry.js.map +1 -0
  366. package/dist/core/{p-44e32417.entry.js → p-b371a498.entry.js} +2 -2
  367. package/dist/core/{p-44e32417.entry.js.map → p-b371a498.entry.js.map} +1 -1
  368. package/dist/core/p-b7568944.entry.js +2 -0
  369. package/dist/core/p-b7568944.entry.js.map +1 -0
  370. package/dist/core/p-b8da5c07.entry.js +2 -0
  371. package/dist/core/p-b8da5c07.entry.js.map +1 -0
  372. package/dist/core/{p-701696aa.entry.js → p-b9459ba2.entry.js} +2 -2
  373. package/dist/core/{p-2537f33e.entry.js → p-ba600947.entry.js} +2 -2
  374. package/dist/core/p-ba600947.entry.js.map +1 -0
  375. package/dist/core/{p-50f4d151.entry.js → p-bc2ca778.entry.js} +2 -2
  376. package/dist/core/{p-69e4daec.entry.js → p-bdc72446.entry.js} +2 -2
  377. package/dist/core/p-c45023b7.entry.js +2 -0
  378. package/dist/core/p-c45023b7.entry.js.map +1 -0
  379. package/dist/core/p-c4663e1a.entry.js +2 -0
  380. package/dist/core/p-c4663e1a.entry.js.map +1 -0
  381. package/dist/core/{p-a103068b.entry.js → p-c8cf1ad5.entry.js} +2 -2
  382. package/dist/core/p-c9a4fe37.entry.js +2 -0
  383. package/dist/core/p-c9a4fe37.entry.js.map +1 -0
  384. package/dist/core/p-cdf56a5d.entry.js +2 -0
  385. package/dist/core/p-cdf56a5d.entry.js.map +1 -0
  386. package/dist/core/{p-a71055c9.entry.js → p-d45d66c0.entry.js} +2 -2
  387. package/dist/core/p-d6c50565.entry.js +2 -0
  388. package/dist/core/p-d6c50565.entry.js.map +1 -0
  389. package/dist/core/{p-85734ebf.entry.js → p-d975bf2f.entry.js} +2 -2
  390. package/dist/core/p-d975bf2f.entry.js.map +1 -0
  391. package/dist/core/p-dede4974.entry.js +2 -0
  392. package/dist/core/p-dede4974.entry.js.map +1 -0
  393. package/dist/core/{p-071f4748.entry.js → p-df88ff5b.entry.js} +2 -2
  394. package/dist/core/p-e86a6d2d.entry.js +2 -0
  395. package/dist/core/{p-20c4d90b.entry.js → p-ebab7a9e.entry.js} +2 -2
  396. package/dist/core/p-eeab3a2e.entry.js +2 -0
  397. package/dist/core/p-eeab3a2e.entry.js.map +1 -0
  398. package/dist/core/{p-264ce7a0.entry.js → p-ef36181d.entry.js} +2 -2
  399. package/dist/core/p-ef36181d.entry.js.map +1 -0
  400. package/dist/core/p-f0388d68.entry.js +2 -0
  401. package/dist/core/p-f0388d68.entry.js.map +1 -0
  402. package/dist/core/{p-2b1a331b.entry.js → p-fbf57f0a.entry.js} +2 -2
  403. package/dist/esm/core.js +1 -1
  404. package/dist/esm/{helpers-dd035d0d.js → helpers-f2ffaa7c.js} +37 -74
  405. package/dist/esm/helpers-f2ffaa7c.js.map +1 -0
  406. package/dist/esm/ic-accordion-group.entry.js +1 -1
  407. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  408. package/dist/esm/ic-accordion.entry.js +1 -1
  409. package/dist/esm/ic-accordion.entry.js.map +1 -1
  410. package/dist/esm/ic-alert.entry.js +63 -36
  411. package/dist/esm/ic-alert.entry.js.map +1 -1
  412. package/dist/esm/ic-back-to-top.entry.js +4 -4
  413. package/dist/esm/ic-badge.entry.js +41 -17
  414. package/dist/esm/ic-badge.entry.js.map +1 -1
  415. package/dist/esm/ic-breadcrumb-group.entry.js +56 -76
  416. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  417. package/dist/esm/ic-breadcrumb.entry.js +32 -51
  418. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  419. package/dist/esm/ic-button_3.entry.js +136 -132
  420. package/dist/esm/ic-button_3.entry.js.map +1 -1
  421. package/dist/esm/ic-card-vertical.entry.js +6 -6
  422. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  423. package/dist/esm/ic-checkbox-group.entry.js +9 -10
  424. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  425. package/dist/esm/ic-checkbox.entry.js +35 -34
  426. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  427. package/dist/esm/ic-chip.entry.js +26 -38
  428. package/dist/esm/ic-chip.entry.js.map +1 -1
  429. package/dist/esm/ic-classification-banner.entry.js +2 -2
  430. package/dist/esm/ic-data-list.entry.js +2 -2
  431. package/dist/esm/ic-data-row.entry.js +3 -3
  432. package/dist/esm/ic-dialog.entry.js +3 -3
  433. package/dist/esm/ic-dialog.entry.js.map +1 -1
  434. package/dist/esm/ic-divider.entry.js +2 -2
  435. package/dist/esm/ic-divider.entry.js.map +1 -1
  436. package/dist/esm/ic-empty-state.entry.js +3 -3
  437. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  438. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  439. package/dist/esm/ic-footer-link.entry.js +3 -3
  440. package/dist/esm/ic-footer.entry.js +4 -4
  441. package/dist/esm/ic-hero.entry.js +5 -5
  442. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  443. package/dist/esm/ic-input-component-container_3.entry.js +9 -9
  444. package/dist/esm/ic-input-label_2.entry.js +8 -8
  445. package/dist/esm/ic-link.entry.js +21 -3
  446. package/dist/esm/ic-link.entry.js.map +1 -1
  447. package/dist/esm/ic-menu-group.entry.js +2 -2
  448. package/dist/esm/ic-menu-item.entry.js +5 -5
  449. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  450. package/dist/esm/ic-navigation-button.entry.js +3 -3
  451. package/dist/esm/ic-navigation-group.entry.js +3 -3
  452. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  453. package/dist/esm/ic-navigation-item.entry.js +12 -7
  454. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  455. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  456. package/dist/esm/ic-page-header.entry.js +7 -7
  457. package/dist/esm/ic-pagination-item.entry.js +2 -2
  458. package/dist/esm/ic-pagination.entry.js +5 -5
  459. package/dist/esm/ic-popover-menu.entry.js +8 -7
  460. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  461. package/dist/esm/ic-radio-group.entry.js +5 -5
  462. package/dist/esm/ic-radio-option.entry.js +6 -6
  463. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  464. package/dist/esm/ic-search-bar.entry.js +112 -135
  465. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  466. package/dist/esm/ic-section-container.entry.js +2 -2
  467. package/dist/esm/ic-select.entry.js +47 -50
  468. package/dist/esm/ic-select.entry.js.map +1 -1
  469. package/dist/esm/ic-side-navigation.entry.js +6 -6
  470. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  471. package/dist/esm/ic-skeleton.entry.js +2 -2
  472. package/dist/esm/ic-skip-link.entry.js +10 -3
  473. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  474. package/dist/esm/ic-status-tag.entry.js +3 -3
  475. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  476. package/dist/esm/ic-step.entry.js +15 -15
  477. package/dist/esm/ic-step.entry.js.map +1 -1
  478. package/dist/esm/ic-stepper.entry.js +3 -3
  479. package/dist/esm/ic-switch.entry.js +6 -6
  480. package/dist/esm/ic-switch.entry.js.map +1 -1
  481. package/dist/esm/ic-tab-context.entry.js +1 -1
  482. package/dist/esm/ic-tab-group.entry.js +3 -3
  483. package/dist/esm/ic-tab-panel.entry.js +2 -2
  484. package/dist/esm/ic-tab.entry.js +3 -3
  485. package/dist/esm/ic-text-field.entry.js +32 -29
  486. package/dist/esm/ic-text-field.entry.js.map +1 -1
  487. package/dist/esm/ic-theme.entry.js +4 -2
  488. package/dist/esm/ic-theme.entry.js.map +1 -1
  489. package/dist/esm/ic-toast-region.entry.js +1 -1
  490. package/dist/esm/ic-toast.entry.js +4 -4
  491. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  492. package/dist/esm/ic-toggle-button.entry.js +4 -4
  493. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  494. package/dist/esm/ic-top-navigation.entry.js +5 -5
  495. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  496. package/dist/esm/ic-typography.entry.js +4 -4
  497. package/dist/esm/ic-typography.entry.js.map +1 -1
  498. package/dist/esm/loader.js +1 -1
  499. package/dist/types/components/ic-alert/ic-alert.d.ts +17 -9
  500. package/dist/types/components/ic-badge/ic-badge.d.ts +4 -0
  501. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +4 -6
  502. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +9 -15
  503. package/dist/types/components/ic-button/ic-button.d.ts +29 -22
  504. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +14 -13
  505. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +8 -9
  506. package/dist/types/components/ic-chip/ic-chip.d.ts +13 -15
  507. package/dist/types/components/ic-link/ic-link.d.ts +2 -0
  508. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +38 -40
  509. package/dist/types/components/ic-select/ic-select.d.ts +1 -0
  510. package/dist/types/components/ic-skip-link/ic-skip-link.d.ts +5 -0
  511. package/dist/types/components/ic-text-field/ic-text-field.d.ts +37 -32
  512. package/dist/types/components/ic-theme/ic-theme.d.ts +6 -2
  513. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +3 -0
  514. package/dist/types/components.d.ts +147 -133
  515. package/dist/types/utils/helpers.d.ts +13 -9
  516. package/dist/types/utils/types.d.ts +1 -0
  517. package/hydrate/index.js +809 -832
  518. package/hydrate/index.mjs +809 -832
  519. package/package.json +3 -3
  520. package/vscode-data.json +167 -3
  521. package/dist/cjs/helpers-a0a128bd.js.map +0 -1
  522. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.types.js +0 -2
  523. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.types.js.map +0 -1
  524. package/dist/core/p-06d97789.entry.js +0 -2
  525. package/dist/core/p-06d97789.entry.js.map +0 -1
  526. package/dist/core/p-09070f61.entry.js +0 -2
  527. package/dist/core/p-0c0ac69d.entry.js +0 -2
  528. package/dist/core/p-0c0ac69d.entry.js.map +0 -1
  529. package/dist/core/p-0e96d4d8.entry.js +0 -2
  530. package/dist/core/p-0e96d4d8.entry.js.map +0 -1
  531. package/dist/core/p-116ad73d.entry.js +0 -2
  532. package/dist/core/p-116ad73d.entry.js.map +0 -1
  533. package/dist/core/p-1171a945.entry.js +0 -2
  534. package/dist/core/p-1171a945.entry.js.map +0 -1
  535. package/dist/core/p-2537f33e.entry.js.map +0 -1
  536. package/dist/core/p-264ce7a0.entry.js.map +0 -1
  537. package/dist/core/p-28656111.entry.js +0 -2
  538. package/dist/core/p-28656111.entry.js.map +0 -1
  539. package/dist/core/p-33243fff.entry.js +0 -2
  540. package/dist/core/p-33243fff.entry.js.map +0 -1
  541. package/dist/core/p-45595f98.entry.js.map +0 -1
  542. package/dist/core/p-49768069.entry.js +0 -2
  543. package/dist/core/p-49768069.entry.js.map +0 -1
  544. package/dist/core/p-4c68494c.entry.js +0 -2
  545. package/dist/core/p-4c68494c.entry.js.map +0 -1
  546. package/dist/core/p-55a37101.entry.js +0 -2
  547. package/dist/core/p-55a37101.entry.js.map +0 -1
  548. package/dist/core/p-5c349c9d.entry.js.map +0 -1
  549. package/dist/core/p-5e1fd097.entry.js +0 -2
  550. package/dist/core/p-5e1fd097.entry.js.map +0 -1
  551. package/dist/core/p-73fc198f.entry.js +0 -2
  552. package/dist/core/p-73fc198f.entry.js.map +0 -1
  553. package/dist/core/p-7eaf8da8.entry.js +0 -2
  554. package/dist/core/p-811d447b.entry.js +0 -2
  555. package/dist/core/p-811d447b.entry.js.map +0 -1
  556. package/dist/core/p-85734ebf.entry.js.map +0 -1
  557. package/dist/core/p-85b7d931.entry.js +0 -2
  558. package/dist/core/p-85b7d931.entry.js.map +0 -1
  559. package/dist/core/p-98328cb9.entry.js +0 -2
  560. package/dist/core/p-98328cb9.entry.js.map +0 -1
  561. package/dist/core/p-a20a7cd3.entry.js.map +0 -1
  562. package/dist/core/p-a22658fb.entry.js +0 -2
  563. package/dist/core/p-a22658fb.entry.js.map +0 -1
  564. package/dist/core/p-a794b724.entry.js +0 -2
  565. package/dist/core/p-a794b724.entry.js.map +0 -1
  566. package/dist/core/p-b21b4fea.entry.js +0 -2
  567. package/dist/core/p-b21b4fea.entry.js.map +0 -1
  568. package/dist/core/p-b953b22f.entry.js +0 -2
  569. package/dist/core/p-b953b22f.entry.js.map +0 -1
  570. package/dist/core/p-c9726fbd.entry.js.map +0 -1
  571. package/dist/core/p-d981598e.entry.js +0 -2
  572. package/dist/core/p-d981598e.entry.js.map +0 -1
  573. package/dist/core/p-ed8957da.js +0 -2
  574. package/dist/core/p-ed8957da.js.map +0 -1
  575. package/dist/core/p-f3315216.entry.js +0 -2
  576. package/dist/core/p-f3315216.entry.js.map +0 -1
  577. package/dist/core/p-f43f411a.entry.js +0 -2
  578. package/dist/core/p-f43f411a.entry.js.map +0 -1
  579. package/dist/core/p-ff995eb8.entry.js +0 -2
  580. package/dist/core/p-ff995eb8.entry.js.map +0 -1
  581. package/dist/esm/helpers-dd035d0d.js.map +0 -1
  582. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.types.d.ts +0 -1
  583. /package/dist/core/{p-a55e7988.entry.js.map → p-10e1e227.entry.js.map} +0 -0
  584. /package/dist/core/{p-729745d3.entry.js.map → p-15b7adaf.entry.js.map} +0 -0
  585. /package/dist/core/{p-972671ea.entry.js.map → p-18714198.entry.js.map} +0 -0
  586. /package/dist/core/{p-37df68fe.entry.js.map → p-1be17f22.entry.js.map} +0 -0
  587. /package/dist/core/{p-17cf7b50.entry.js.map → p-267a19d4.entry.js.map} +0 -0
  588. /package/dist/core/{p-8b268274.entry.js.map → p-2c371198.entry.js.map} +0 -0
  589. /package/dist/core/{p-09070f61.entry.js.map → p-42a7d0b6.entry.js.map} +0 -0
  590. /package/dist/core/{p-fa02a267.entry.js.map → p-4b6818d9.entry.js.map} +0 -0
  591. /package/dist/core/{p-1ac08e6d.entry.js.map → p-628c32b8.entry.js.map} +0 -0
  592. /package/dist/core/{p-8856dff4.entry.js.map → p-72c117b6.entry.js.map} +0 -0
  593. /package/dist/core/{p-0d016565.entry.js.map → p-788c96ac.entry.js.map} +0 -0
  594. /package/dist/core/{p-78e7a859.entry.js.map → p-7fb79e87.entry.js.map} +0 -0
  595. /package/dist/core/{p-7e79bd0e.entry.js.map → p-83764268.entry.js.map} +0 -0
  596. /package/dist/core/{p-f34efc17.entry.js.map → p-8c4f7c63.entry.js.map} +0 -0
  597. /package/dist/core/{p-1f455336.entry.js.map → p-910f5f14.entry.js.map} +0 -0
  598. /package/dist/core/{p-110486f0.entry.js.map → p-9ca147f3.entry.js.map} +0 -0
  599. /package/dist/core/{p-d9aec0dd.entry.js.map → p-9cfc2bac.entry.js.map} +0 -0
  600. /package/dist/core/{p-74600ed8.entry.js.map → p-a0161990.entry.js.map} +0 -0
  601. /package/dist/core/{p-4f2a1950.entry.js.map → p-a4f9b5bf.entry.js.map} +0 -0
  602. /package/dist/core/{p-701696aa.entry.js.map → p-b9459ba2.entry.js.map} +0 -0
  603. /package/dist/core/{p-50f4d151.entry.js.map → p-bc2ca778.entry.js.map} +0 -0
  604. /package/dist/core/{p-69e4daec.entry.js.map → p-bdc72446.entry.js.map} +0 -0
  605. /package/dist/core/{p-a103068b.entry.js.map → p-c8cf1ad5.entry.js.map} +0 -0
  606. /package/dist/core/{p-a71055c9.entry.js.map → p-d45d66c0.entry.js.map} +0 -0
  607. /package/dist/core/{p-071f4748.entry.js.map → p-df88ff5b.entry.js.map} +0 -0
  608. /package/dist/core/{p-7eaf8da8.entry.js.map → p-e86a6d2d.entry.js.map} +0 -0
  609. /package/dist/core/{p-20c4d90b.entry.js.map → p-ebab7a9e.entry.js.map} +0 -0
  610. /package/dist/core/{p-2b1a331b.entry.js.map → p-fbf57f0a.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-text-field.js","sourceRoot":"","sources":["../../../src/components/ic-text-field/ic-text-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,CAAC,EACD,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,GAOpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,gCAAgC,EAChC,oBAAoB,EACpB,uBAAuB,EACvB,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAO/B,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,MAAM,kBAAkB,GAAG,CAAC,GAAG,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAE3D;;GAEG;AAMH,MAAM,OAAO,SAAS;IALtB;QAMU,wBAAmB,GAA4B,EAAE,CAAC;QAElD,yBAAoB,GAA4B,IAAI,CAAC;QAKpD,aAAQ,GAAW,CAAC,CAAC;QACrB,yBAAoB,GAAY,KAAK,CAAC;QACtC,yBAAoB,GAAY,KAAK,CAAC;QACtC,4BAAuB,GAAY,KAAK,CAAC;QACzC,qBAAgB,GAAY,KAAK,CAAC;QAClC,uBAAkB,GAAY,KAAK,CAAC;QAa7C;;WAEG;QACK,qBAAgB,GAA6B,SAAS,CAAC;QAY/D;;;WAGG;QACK,mBAAc,GAAuB,KAAK,CAAC;QAEnD;;WAEG;QACK,iBAAY,GAAyB,KAAK,CAAC;QAEnD;;WAEG;QACK,gBAAW,GAAyB,KAAK,CAAC;QAElD;;WAEG;QACK,cAAS,GAAwB,KAAK,CAAC;QAE/C;;WAEG;QACK,aAAQ,GAAa,KAAK,CAAC;QAMnC;;;WAGG;QACK,cAAS,GAAa,KAAK,CAAC;QAEpC;;WAEG;QACK,eAAU,GAAY,EAAE,CAAC;QAEjC;;WAEG;QACK,kBAAa,GAAa,KAAK,CAAC;QAExC;;WAEG;QACK,cAAS,GAAa,KAAK,CAAC;QAEpC;;WAEG;QACK,gBAAW,GAAa,IAAI,CAAC;QAErC;;WAEG;QACK,YAAO,GAAY,uBAAuB,QAAQ,EAAE,EAAE,CAAC;QAE/D;;;;WAIG;QACK,cAAS,GAA2B,MAAM,CAAC;QAYnD;;WAEG;QACK,kBAAa,GAAY,CAAC,CAAC;QAEnC;;WAEG;QACH,kBAAkB;QACV,yBAAoB,GAAY,oBAAoB,IAAI,CAAC,aAAa,aAAa,CAAC;QAE5F;;WAEG;QACK,eAAU,GAAY,oBAAoB,IAAI,CAAC,GAAG,WAAW,CAAC;QAOtE;;WAEG;QACK,kBAAa,GAAY,CAAC,CAAC;QAEnC;;WAEG;QACH,kBAAkB;QACV,yBAAoB,GAAY,oBAAoB,IAAI,CAAC,aAAa,aAAa,CAAC;QAE5F;;WAEG;QACK,eAAU,GAAY,oBAAoB,IAAI,CAAC,GAAG,UAAU,CAAC;QAErE;;WAEG;QACK,SAAI,GAAY,IAAI,CAAC,OAAO,CAAC;QAErC;;WAEG;QACK,gBAAW,GAAY,EAAE,CAAC;QAElC;;WAEG;QACsB,aAAQ,GAAa,KAAK,CAAC;QAEpD;;WAEG;QACK,aAAQ,GAAa,KAAK,CAAC;QAEnC;;WAEG;QACK,WAAM,GAAa,KAAK,CAAC;QAOjC;;WAEG;QACK,SAAI,GAAY,CAAC,CAAC;QAE1B;;WAEG;QACK,SAAI,GAAoB,QAAQ,CAAC;QAEzC;;WAEG;QACK,eAAU,GAAwB,KAAK,CAAC;QAEhD;;WAEG;QACK,UAAK,GAAiB,SAAS,CAAC;QAOxC;;WAEG;QACK,SAAI,GAAsB,MAAM,CAAC;QAEzC;;WAEG;QACK,qBAAgB,GAAa,KAAK,CAAC;QAE3C;;WAEG;QACK,6BAAwB,GAAa,KAAK,CAAC;QAEnD;;WAEG;QACK,qBAAgB,GAAgC,EAAE,CAAC;QAE3D;;WAEG;QACK,mBAAc,GAAY,EAAE,CAAC;QAErC;;WAEG;QACK,aAAQ,GAAY,CAAC,CAAC;QAO9B;;WAEG;QACqC,UAAK,GAAW,EAAE,CAAC;QAClD,iBAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QA+G3B,wBAAmB,GAAG,GAAG,EAAE;;YACjC,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QAoBM,0BAAqB,GAAG,CAAC,KAAa,EAAE,EAAE,CAChD,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnD,wBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;YAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QAEM,4BAAuB,GAAG,CAAC,KAAa,EAAE,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElD,IAAI,CAAC,oBAAoB;gBACvB,IAAI,CAAC,aAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAc,CAAC,CAAC,CAAC,KAAK,CAAC;YAEzE,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5D,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YACpC,CAAC;QACH,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,EAAS,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAI,EAAE,CAAC,MAA2B,CAAC,KAAK,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEM,WAAM,GAAG,CAAC,EAAS,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,MAA0B,CAAC;YAC7C,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,GAAI,EAAE,CAAC,MAA2B,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,uBAAuB;gBAC1B,IAAI,CAAC,aAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAc,CAAC,CAAC,CAAC,KAAK,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,EAAS,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,EAAE,CAAC,MAA0B,CAAC;YAC7C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,EAAE,CAAC,MAA2B,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,EAAc,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,EAAE,CAAC,MAA0B,CAAC;YAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,EAAE,CAAC;gBACd,UAAU,CAAC,GAAG,EAAE;oBACd,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC,EAAE,CAAC,CAAC,CAAC;YACR,CAAC;QACH,CAAC,CAAC;QAEM,cAAS,GAAG,CAAC,MAAkC,EAAE,EAAE,CACzD,MAAM,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAE1B,oBAAe,GAAG,GAAS,EAAE;YACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,CAAC,CAAC;QAEF,mDAAmD;QAC3C,yBAAoB,GAAG,CAAC,YAA8B,EAAQ,EAAE;YACtE,IAAI,oBAAoB,GAAG,KAAK,CAAC;YACjC,YAAY,CAAC,OAAO,CAClB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE;gBACpD,IAAI,aAAa,IAAI,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChE,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;oBACtD,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;oBACtD,CAAC;oBACD,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;qBAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,oBAAoB,GAAG,yBAAyB,CAC9C,UAAU,EACV,YAAY,EACZ,MAAM,CACP,CAAC;gBACJ,CAAC;YACH,CAAC,CACF,CAAC;YACF,IAAI,oBAAoB,EAAE,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;KAgRH;IApqBC,oBAAoB;QAClB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAiB,CAAC,CAAC;IAC7D,CAAC;IA6KO,eAAe;QACrB,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC;IAC/D,CAAC;IASO,iBAAiB,CAAC,QAAgB;QACxC,IAAI,KAAK,CAAC;QAEV,IAAI,IAAI,CAAC,aAAc,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClD,IAAI,KAAM,CAAC,MAAM,GAAG,QAAS,CAAC,MAAM,EAAE,CAAC;gBACrC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChC,CAAC;IAgCD,iBAAiB;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,oBAAoB;;QAClB,uBAAuB,CAAC,IAAI,CAAC,EAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACtE,MAAA,IAAI,CAAC,oBAAoB,0CAAE,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,aAAc,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAC1C,IAAI,CAAC,EAAiB,EACtB,kBAAkB,CACnB,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAClC,CAAC;QAED,oBAAoB,CAAC,IAAI,CAAC,EAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEnE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAiB,CAAC,CAAC;IAC7D,CAAC;IAED,gBAAgB;QACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,YAAY,CACb,CAAC;QACF,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,cAAe,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAWD,aAAa,CAAC,EAAiB;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IAGH,KAAK,CAAC,QAAQ;;QACZ,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IACxB,CAAC;IAwFD,MAAM;QACJ,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,UAAU,EACV,aAAa,EACb,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,KAAK,GACN,GAAG,IAAI,CAAC;QAET,MAAM,EAAE,GAAG,IAAI,CAAC,EAAiB,CAAC;QAElC,MAAM,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC;QAE1C,MAAM,aAAa,GACjB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,oBAAoB;YAClB,CAAC,CAAC,oBAAoB;gBACpB,CAAC,CAAC,mBAAmB,CAAC,OAAO;gBAC7B,CAAC,CAAC,mBAAmB,CAAC,KAAK;YAC7B,CAAC,CAAC,gBAAgB,CAAC;QAEvB,MAAM,qBAAqB,GAAG,oBAAoB;YAChD,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,uBAAuB;wBACzB,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,cAAc,CAAC;QAEnB,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QACjD,MAAM,eAAe,GACnB,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,aAAa,KAAK,mBAAmB,CAAC,KAAK;YACzC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,QAAQ,CAAC;QAEf,MAAM,cAAc,GAClB,IAAI,CAAC,SAAS,CAAC,aAAc,CAAC;YAC9B,CAAC,CAAC,aAAa,IAAI,mBAAmB,CAAC,OAAO,IAAI,gBAAgB,CAAC;YACnE,CAAC,wBAAwB,CAAC;QAE5B,MAAM,SAAS,GAAG,IAAK,GAAG,CAAC,CAAC;QAE5B,MAAM,cAAc,GAAG,WAAY,GAAG,QAAQ,CAAC;QAC/C,MAAM,4BAA4B,GAAG,GAAG,cAAc,aACpD,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAC9B,aAAa,CAAC;QACd,MAAM,qBAAqB,GACzB,aAAc,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzD,MAAM,WAAW,GAAG,GAAG,qBAAqB,IAAI,uBAAuB,CACrE,OAAQ,EACR,UAAU,KAAK,EAAE,EACjB,cAAc,CACf,EAAE,CAAC,IAAI,EAAE,CAAC;QAEX,MAAM,YAAY,GAAG,YAAY,IAAI,CAAC,QAAQ,CAAC;QAC/C,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;QAE5D,MAAM,OAAO,GAAG,GAAG,aAAa,KAAK,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAEjE,WAAW;YACT,CAAC,CAAC,iBAAiB,CACf,IAAI,EACJ,IAAI,CAAC,EAAiB,EACtB,IAAK,EACL,KAAK,EACL,YAAY,CACb;YACH,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAiB,CAAC,CAAC;QAE9C,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,0BAA0B,EAAE,CAAC,CAAC,SAAS;gBACvC,CAAC,YAAY,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,SAAS;gBAC1C,wBAAwB,EAAE,CAAC,CAAC,YAAY;aACzC;YAED,2EAAoB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY;gBAC3D,CAAC,IAAI,CAAC,SAAS,IAAI,CAClB,uEACE,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,GACF,CACnB;gBAED,qFACE,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,aAAa,EAC/B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS;oBAEnB,YAAY,IAAI,CACf,6DACE,KAAK,EAAE;4BACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC;yBACnD,EACD,IAAI,EAAC,WAAW;wBAEhB,6DAAM,IAAI,EAAC,MAAM,GAAG,CACf,CACR;oBAEA,CAAC,SAAS,CAAC,CAAC,CAAC,CACZ,2BACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,EAAsB,CAAC,EACpD,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;4BACL,aAAa,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ;4BAC1C,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,gBAAgB,EAAE,CAAC,CAAC,aAAa;yBAClC,EACD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAC3C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,gBACT,KAAK,sBACC,WAAW,kBACf,OAAO,2BACE,IAAI,CAAC,oBAAoB,mBACjC,IAAI,CAAC,YAAY,eACrB,IAAI,CAAC,QAAQ,EACxB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC3D,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAC1D,IAAI,CAAC,mBAAmB,EACrB,CACV,CAAC,CAAC,CAAC,CACF,8BACE,EAAE,EAAE,OAAO,EACX,KAAK,EAAE;4BACL,WAAW,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ;4BAC3C,aAAa,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ;4BAC1C,QAAQ,EAAE,CAAC,CAAC,QAAQ;yBACrB,EACD,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,EAAyB,CAAC,EACvD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAC3C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,gBACT,KAAK,sBACC,WAAW,kBACf,OAAO,EACrB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC3D,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAC1D,IAAI,CAAC,mBAAmB,EAClB,CACb;oBACA,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CACjC,6DAAM,IAAI,EAAC,cAAc,GAAQ,CAClC;oBACA,UAAU,CAAC,EAAE,EAAE,sBAAsB,CAAC,IAAI,CACzC,6DAAM,IAAI,EAAC,sBAAsB,GAAQ,CAC1C,CAC4B;gBAC9B,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,6DAAM,IAAI,EAAC,MAAM,GAAQ;gBACnD,CAAC,CAAC,aAAa,CAAC,gBAAiB,CAAC;oBACjC,CAAC,aAAa,CAAC,cAAe,CAAC;oBAC/B,WAAY,GAAG,CAAC;oBAChB,gBAAgB;oBAChB,oBAAoB;oBACpB,uBAAuB;oBACvB,kBAAkB,CAAC;oBACnB,CAAC,wBAAwB,IAAI,CAC3B,4EACE,MAAM,EACJ,IAAI,CAAC,SAAS,CAAC,aAAc,CAAC,KAAK,KAAK;wBACxC,CAAC,aAAa,KAAK,mBAAmB,CAAC,OAAO;4BAC5C,gBAAgB,CAAC;wBACnB,wBAAwB;wBACtB,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,aAAa,EAEnB,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,qBAAsB,CAAC,CAAC,CAAC,EAAE,EACrD,YAAY,EAAE,eAAe,EAC7B,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,SAAS,IAEnB,CAAC,QAAQ,IAAI,WAAY,GAAG,CAAC,IAAI,CAChC,4DAAK,IAAI,EAAC,8BAA8B;oBACrC,CAAC,aAAa,IAAI,CACjB,sEAAe,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,iBAAiB;wBACtD,6DAAM,KAAK,EAAC,YAAY;4BACrB,QAAQ;;4BAAG,WAAW,CAClB,CACO,CACjB;oBACD,6DAAM,KAAK,EAAC,2BAA2B,eAAW,QAAQ,IACvD,4BAA4B,CACxB;oBACP,6DAAM,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,qBAAqB;;wBACX,WAAW;uCACtC,CACH,CACP,CACmB,CACvB,CACgB,CAChB,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\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 checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\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]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: 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 | undefined;\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: string | undefined = \"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: boolean | undefined = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\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 character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount?: boolean = false;\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;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters?: number = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage?: string = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage?: string = `Maximum value of ${this.max} exceeded`;\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;\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 text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage?: string = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage?: string = `Minimum value of ${this.min} not met`;\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 | undefined;\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 = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean | undefined = false;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @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 text to display as the validation message.\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 let value;\n\n if (this.maxCharacters! > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value!.length < newValue!.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\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 as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters! > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText! });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n const el = this.el.shadowRoot?.querySelector(\"ic-typography\");\n if (this.hideLabel || (el && el.classList.contains(\"hydrated\"))) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus() {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters! > 0 ? this.numChars >= this.maxCharacters! : false;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\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 target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const value = (ev.target as HTMLInputElement).value;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters! > 0 ? this.numChars < this.minCharacters! : false;\n this.icBlur.emit({ value: value });\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: (ev.target as HTMLInputElement).value });\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\";\n\n const showStatusText =\n this.hasStatus(currentStatus!) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows! > 1;\n\n const charsRemaining = maxNumChars! - numChars;\n const hiddenRemainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n const hiddenCharCountDescId =\n maxCharacters! > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const describedBy = `${hiddenCharCountDescId} ${getInputDescribedByText(\n inputId!,\n helperText !== \"\",\n showStatusText\n )}`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(\n true,\n this.el as HTMLElement,\n name!,\n value,\n disabledMode\n )\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": !!fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-text-field-disabled\": !!disabledMode,\n }}\n >\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={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly: !!readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 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\": !showLeftIcon && !!readonly,\n readonly: !!readonly,\n \"truncate-value\": !!truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\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 spellcheck={spellcheck}\n inputmode={inputmode}\n role={this.role}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...this.inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !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={placeholder ? placeholder : \"\"}\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 spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...this.inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n {(!isEmptyString(validationStatus!) ||\n !isEmptyString(validationText!) ||\n maxNumChars! > 0 ||\n maxValueExceeded ||\n maxCharactersWarning ||\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 {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span class=\"remaining-char-count-desc\" aria-live=\"polite\">\n {hiddenRemainingCharCountDesc}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-text-field.js","sourceRoot":"","sources":["../../../src/components/ic-text-field/ic-text-field.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\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 checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\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]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: 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;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string | undefined;\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 = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\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 = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount = false;\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 = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId = `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;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage = `Maximum value of ${this.max} exceeded`;\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;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters = 0;\n\n /**\n * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage = `Minimum value of ${this.min} not met`;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string | undefined;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * @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 = false;\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 = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\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 = 0;\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 = \"\";\n @State() initialValue = this.value;\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value.length < newValue.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\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 /**\n * Emitted when the textarea variant is scrolled.\n */\n @Event() icScroll: EventEmitter;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n if (\n this.hideLabel ||\n this.el.shadowRoot\n ?.querySelector(\"ic-typography\")\n ?.classList.contains(\"hydrated\")\n ) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters > 0 && this.numChars >= this.maxCharacters;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\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 target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const { value } = target;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 && this.numChars < this.minCharacters;\n this.icBlur.emit({ value });\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: target.value });\n };\n\n private onTextAreaScroll = () => {\n this.icScroll.emit();\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n hideLabel,\n type,\n autocapitalize,\n ariaActiveDescendant,\n inheritedAttributes,\n ariaExpanded,\n ariaOwns,\n autocomplete,\n role,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\";\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const charsRemaining = maxNumChars - numChars;\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const describedBy = `${hiddenCharCountDescId} ${getInputDescribedByText(\n inputId,\n helperText !== \"\",\n showStatusText\n )}`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(this.el as HTMLElement, value, name, disabledMode)\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": fullWidth,\n \"ic-text-field-disabled\": disabledMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!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={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 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={type}\n min={min}\n max={max}\n value={value}\n class={{\n \"no-left-pad\": !showLeftIcon && readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\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={ariaActiveDescendant}\n aria-expanded={ariaExpanded}\n aria-owns={ariaOwns}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={role}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !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={placeholder}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onScroll={this.onTextAreaScroll}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n {(!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n maxCharactersWarning ||\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 {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span class=\"remaining-char-count-desc\" aria-live=\"polite\">\n {`${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"]}
@@ -24,6 +24,7 @@ export class Theme {
24
24
  else {
25
25
  this.themeClass = `ic-theme-${this.theme}`;
26
26
  }
27
+ this.icThemeChange.emit(this.theme);
27
28
  };
28
29
  this.checkBrandColorContrast = () => {
29
30
  if (getBrandColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&
@@ -64,7 +65,7 @@ export class Theme {
64
65
  }
65
66
  render() {
66
67
  const { themeClass } = this;
67
- return (h(Host, { key: '8b3a86598f9539940fdfc534c4482246b043985c', class: themeClass }, h("slot", { key: '0d55a0ae9b75cfeccf0aa30bd31a2c3a09058ce7' })));
68
+ return (h(Host, { key: 'd994b33e982d89fdb62837456a5a1c90471d0a6a', class: themeClass }, h("slot", { key: 'cc67f5ec282adfe4695a7ecf9134fba920a71a7e' })));
68
69
  }
69
70
  static get is() { return "ic-theme"; }
70
71
  static get properties() {
@@ -99,9 +100,15 @@ export class Theme {
99
100
  "type": "string",
100
101
  "mutable": false,
101
102
  "complexType": {
102
- "original": "\"dark\" | \"light\" | \"system\"",
103
+ "original": "IcThemeSettings",
103
104
  "resolved": "\"dark\" | \"light\" | \"system\" | undefined",
104
- "references": {}
105
+ "references": {
106
+ "IcThemeSettings": {
107
+ "location": "import",
108
+ "path": "../../utils/types",
109
+ "id": "src/utils/types.ts::IcThemeSettings"
110
+ }
111
+ }
105
112
  },
106
113
  "required": false,
107
114
  "optional": true,
@@ -147,6 +154,27 @@ export class Theme {
147
154
  }
148
155
  }
149
156
  }
157
+ }, {
158
+ "method": "icThemeChange",
159
+ "name": "icThemeChange",
160
+ "bubbles": true,
161
+ "cancelable": true,
162
+ "composed": true,
163
+ "docs": {
164
+ "tags": [],
165
+ "text": "Emitted when the theme is changed."
166
+ },
167
+ "complexType": {
168
+ "original": "IcThemeSettings",
169
+ "resolved": "\"dark\" | \"light\" | \"system\"",
170
+ "references": {
171
+ "IcThemeSettings": {
172
+ "location": "import",
173
+ "path": "../../utils/types",
174
+ "id": "src/utils/types.ts::IcThemeSettings"
175
+ }
176
+ }
177
+ }
150
178
  }];
151
179
  }
152
180
  static get watchers() {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-theme.js","sourceRoot":"","sources":["../../../src/components/ic-theme/ic-theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EAEL,CAAC,EACD,KAAK,EACL,IAAI,EACJ,KAAK,GACN,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAK/B,MAAM,OAAO,KAAK;IAHlB;QAIW,eAAU,GAAW,EAAE,CAAC;QAEjC;;WAEG;QACK,eAAU,GAAoB,IAAI,CAAC;QAO3C;;WAEG;QACK,UAAK,GAAiC,OAAO,CAAC;QAsB9C,0BAAqB,GAAG,GAAS,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU;oBACb,MAAM,CAAC,UAAU;wBACjB,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO;wBACvD,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,gBAAgB,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,GAAG,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QAEM,4BAAuB,GAAG,GAAS,EAAE;YAC3C,IACE,uBAAuB,EAAE,GAAG,0BAA0B;gBACtD,uBAAuB,EAAE,GAAG,0BAA0B,EACtD,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,2TAA2T,CAC5T,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,GAAG,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE1E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;gBACjC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAC3C,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAExD,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAE/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,4BAA4B,EAAE;oBACpC,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;KAWH;IAjFC,0BAA0B;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAQD,qBAAqB;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAOD,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,CAAC,UAAU;YACf,MAAM;iBACH,UAAU,CAAC,8BAA8B,CAAC;iBAC1C,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC9D,CAAC;IA6CD,MAAM;QACJ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAE5B,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,UAAU;YACrB,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Host,\n Event,\n EventEmitter,\n h,\n Watch,\n Prop,\n State,\n} from \"@stencil/core\";\n\nimport { IcColor, IcBrand } from \"../../utils/types\";\nimport {\n convertToRGBA,\n getBrandForegroundAppearance,\n} from \"../../utils/helpers\";\nimport { getBrandColorBrightness } from \"../../utils/helpers\";\nimport {\n BLACK_MIN_COLOR_BRIGHTNESS,\n WHITE_MAX_COLOR_BRIGHTNESS,\n} from \"../../utils/constants\";\n\n@Component({\n tag: \"ic-theme\",\n})\nexport class Theme {\n @State() themeClass: string = \"\";\n\n /**\n * The brand colour. Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() brandColor?: IcColor | null = null;\n\n @Watch(\"brandColor\")\n watchBrandColorPropHandler(): void {\n this.setBrandColor();\n }\n\n /**\n * The theme mode. Can be \"dark\", \"light\", or \"system\". \"system\" will use the device or browser settings.\n */\n @Prop() theme?: \"dark\" | \"light\" | \"system\" = \"light\";\n\n @Watch(\"theme\")\n watchThemePropHandler(): void {\n this.darkModeChangeHandler();\n }\n\n /**\n * @internal Emitted when the brand color is changed.\n */\n @Event() brandChange: EventEmitter<IcBrand>;\n\n componentWillLoad(): void {\n this.darkModeChangeHandler();\n this.setBrandColor();\n\n window.matchMedia &&\n window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", this.darkModeChangeHandler);\n }\n\n private darkModeChangeHandler = (): void => {\n if (this.theme === \"system\") {\n this.themeClass =\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"ic-theme-dark\"\n : \"ic-theme-light\";\n } else {\n this.themeClass = `ic-theme-${this.theme}`;\n }\n };\n\n private checkBrandColorContrast = (): void => {\n if (\n getBrandColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&\n getBrandColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS\n ) {\n console.warn(\n `The brand colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`\n );\n }\n };\n\n private setBrandColor = () => {\n const colorRGBA = this.brandColor ? convertToRGBA(this.brandColor) : null;\n\n if (colorRGBA) {\n const { r, g, b, a } = colorRGBA;\n const { style } = document.documentElement;\n style.setProperty(\"--ic-brand-color-primary-r\", `${r}`);\n style.setProperty(\"--ic-brand-color-primary-g\", `${g}`);\n style.setProperty(\"--ic-brand-color-primary-b\", `${b}`);\n style.setProperty(\"--ic-brand-color-primary-a\", `${a}`);\n\n this.checkBrandColorContrast();\n\n this.brandChange.emit({\n mode: getBrandForegroundAppearance(),\n color: colorRGBA,\n });\n }\n };\n\n render() {\n const { themeClass } = this;\n\n return (\n <Host class={themeClass}>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-theme.js","sourceRoot":"","sources":["../../../src/components/ic-theme/ic-theme.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n Event,\n EventEmitter,\n h,\n Watch,\n Prop,\n State,\n} from \"@stencil/core\";\n\nimport { IcColor, IcBrand, IcThemeSettings } from \"../../utils/types\";\nimport {\n convertToRGBA,\n getBrandForegroundAppearance,\n} from \"../../utils/helpers\";\nimport { getBrandColorBrightness } from \"../../utils/helpers\";\nimport {\n BLACK_MIN_COLOR_BRIGHTNESS,\n WHITE_MAX_COLOR_BRIGHTNESS,\n} from \"../../utils/constants\";\n\n@Component({\n tag: \"ic-theme\",\n})\nexport class Theme {\n @State() themeClass: string = \"\";\n\n /**\n * The brand colour. Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() brandColor?: IcColor | null = null;\n\n @Watch(\"brandColor\")\n watchBrandColorPropHandler(): void {\n this.setBrandColor();\n }\n\n /**\n * The theme mode. Can be \"dark\", \"light\", or \"system\". \"system\" will use the device or browser settings.\n */\n @Prop() theme?: IcThemeSettings = \"light\";\n\n @Watch(\"theme\")\n watchThemePropHandler(): void {\n this.darkModeChangeHandler();\n }\n\n /**\n * @internal Emitted when the brand color is changed.\n */\n @Event() brandChange: EventEmitter<IcBrand>;\n\n /**\n * Emitted when the theme is changed.\n */\n @Event() icThemeChange: EventEmitter<IcThemeSettings>;\n\n componentWillLoad(): void {\n this.darkModeChangeHandler();\n this.setBrandColor();\n\n window.matchMedia &&\n window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", this.darkModeChangeHandler);\n }\n\n private darkModeChangeHandler = (): void => {\n if (this.theme === \"system\") {\n this.themeClass =\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"ic-theme-dark\"\n : \"ic-theme-light\";\n } else {\n this.themeClass = `ic-theme-${this.theme}`;\n }\n\n this.icThemeChange.emit(this.theme);\n };\n\n private checkBrandColorContrast = (): void => {\n if (\n getBrandColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&\n getBrandColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS\n ) {\n console.warn(\n `The brand colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`\n );\n }\n };\n\n private setBrandColor = () => {\n const colorRGBA = this.brandColor ? convertToRGBA(this.brandColor) : null;\n\n if (colorRGBA) {\n const { r, g, b, a } = colorRGBA;\n const { style } = document.documentElement;\n style.setProperty(\"--ic-brand-color-primary-r\", `${r}`);\n style.setProperty(\"--ic-brand-color-primary-g\", `${g}`);\n style.setProperty(\"--ic-brand-color-primary-b\", `${b}`);\n style.setProperty(\"--ic-brand-color-primary-a\", `${a}`);\n\n this.checkBrandColorContrast();\n\n this.brandChange.emit({\n mode: getBrandForegroundAppearance(),\n color: colorRGBA,\n });\n }\n };\n\n render() {\n const { themeClass } = this;\n\n return (\n <Host class={themeClass}>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -202,13 +202,13 @@ export class Toast {
202
202
  }
203
203
  render() {
204
204
  const { variant, heading, message, visible, isManual, dismissButtonAriaLabel, } = this;
205
- return (h(Host, { key: '3bb9efd8ae3679ba4558b388a275d2cd634268b8', class: { ["ic-toast-hidden"]: !visible }, tabindex: "0", onFocus: this.onFocus, onBlur: this.onBlur, role: isManual ? "dialog" : "alert", "aria-live": isManual ? null : "polite" }, h("div", { key: '49277a9c418908cfd3eb9302bae684462e1c6d55', class: "container" }, variant && visible && (h("div", { key: '805dbac817d5a7e714ce5b4478e426144df02cb8', class: "toast-icon-container" }, h("div", { key: '769af7c12a009955bff31c02008f09530bc19a77', class: {
205
+ return (h(Host, { key: '0215a0779e769d0b9667f0b9b3899e6f9ab40c54', class: { ["ic-toast-hidden"]: !visible }, tabindex: "0", onFocus: this.onFocus, onBlur: this.onBlur, role: isManual ? "dialog" : "alert", "aria-live": isManual ? null : "polite" }, h("div", { key: 'b34a48203f613cbcde37d0c7a75743a1c61ded70', class: "container" }, variant && visible && (h("div", { key: 'f3dea0b812b6ab3ab2528f091139716b2781b8f6', class: "toast-icon-container" }, h("div", { key: '215a58acb589a65efabf3837428e131c77bc1500', class: {
206
206
  ["divider"]: true,
207
207
  [`divider-${variant}`]: true,
208
- } }), variant === "neutral" ? (h("slot", { name: "neutral-icon" })) : (h("span", { class: "toast-icon", innerHTML: VARIANT_ICONS[variant].icon })))), h("div", { key: 'b9987c78c1bdd2def39ecd64ad5a7acb19568a90', class: {
208
+ } }), variant === "neutral" ? (h("slot", { name: "neutral-icon" })) : (h("span", { class: "toast-icon", innerHTML: VARIANT_ICONS[variant].icon })))), h("div", { key: 'd19e6c1989aa5370383d6aafb319570fad9dbeba', class: {
209
209
  ["toast-content"]: true,
210
210
  ["no-icon"]: variant === "neutral" && !isSlotUsed(this.el, "neutral-icon"),
211
- } }, h("div", { key: 'bda1df0dfb9e5a05a84ec6d825a4eef72978127e', class: "toast-text" }, h("ic-typography", { key: '9631f1f1ec54f4694cbe3d80849079d04d9e987e', variant: "subtitle-large", class: "toast-heading" }, visible && (isManual ? h("h5", null, heading) : h("p", null, heading))), message && (h("ic-typography", { key: '87dd87445e270972bab5d931c48b0ae2a70c94ad', variant: "body", class: "toast-message" }, visible && h("p", { key: 'bfe2daf83b1d9e62c4606a00c8615f1f899d0506' }, message)))), isSlotUsed(this.el, "action") && (h("div", { key: '8041f14d81743cd478241aae8e4921b204d68745', class: "toast-action-container" }, h("slot", { key: '0d3cc468aeee3827643be5e0ae17791cd1332f84', name: "action" })))), !isManual ? (h("ic-loading-indicator", { class: "toast-dismiss-timer", theme: "dark", monochrome: true, size: "icon", progress: this.timerProgress, description: "Dismiss timer" })) : (h("ic-button", { id: "dismiss-button", innerHTML: closeIcon, onClick: this.dismissAction, variant: "icon", "aria-label": dismissButtonAriaLabel })))));
211
+ } }, h("div", { key: '3c4b2bcf5563380c57685ddf27e9b9a68c11696c', class: "toast-text" }, h("ic-typography", { key: 'f04cd756f74a338d5e9fbb3db00d91219a018266', variant: "subtitle-large", class: "toast-heading" }, visible && (isManual ? h("h5", null, heading) : h("p", null, heading))), message && (h("ic-typography", { key: 'b414af6a0f49714c133d1420a11ce0cdabc5c886', variant: "body", class: "toast-message" }, visible && h("p", { key: '2d98f3b3ead56cf54a67ebf3afdaa0f46775f293' }, message)))), isSlotUsed(this.el, "action") && (h("div", { key: '3eeaf3fe192ef351748ccabe3b51b3e588394c07', class: "toast-action-container" }, h("slot", { key: 'e618b7d9f135c816d7e2a1ce79e20027edb126cb', name: "action" })))), !isManual ? (h("ic-loading-indicator", { class: "toast-dismiss-timer", theme: "dark", monochrome: true, size: "icon", progress: this.timerProgress, description: "Dismiss timer" })) : (h("ic-button", { id: "dismiss-button", innerHTML: closeIcon, onClick: this.dismissAction, variant: "icon", "aria-label": dismissButtonAriaLabel })))));
212
212
  }
213
213
  static get is() { return "ic-toast"; }
214
214
  static get encapsulation() { return "shadow"; }
@@ -40,7 +40,7 @@ export class ToastRegion {
40
40
  }
41
41
  }
42
42
  render() {
43
- return h("slot", { key: '6dbc76c96060dfd2265e50d622e10ee5c2202b67' });
43
+ return h("slot", { key: '8ba16a1a1aa173043f4a14af432e11a82fffda5a' });
44
44
  }
45
45
  static get is() { return "ic-toast-region"; }
46
46
  static get properties() {
@@ -576,11 +576,13 @@ video {
576
576
  :host ::part(button):hover {
577
577
  border: var(--ic-border-width) solid var(--toggle-button-border-hover);
578
578
  color: var(--toggle-button-text-colour-hover);
579
+ background-color: var(--ic-toggle-button-unselected-background-hover);
579
580
  }
580
581
 
581
582
  :host ::part(button):active {
582
583
  border: var(--ic-border-width) solid var(--toggle-button-border-active);
583
584
  color: var(--toggle-button-text-colour-active);
585
+ background-color: var(--ic-toggle-button-unselected-background-pressed);
584
586
  }
585
587
 
586
588
  :host(.ic-toggle-button-disabled) ::part(button) {
@@ -600,14 +602,6 @@ video {
600
602
  var(--ic-border-focus);
601
603
  }
602
604
 
603
- :host ::part(button):hover {
604
- background-color: var(--ic-toggle-button-unselected-background-hover);
605
- }
606
-
607
- :host ::part(button):active {
608
- background-color: var(--ic-toggle-button-unselected-background-pressed);
609
- }
610
-
611
605
  :host(.ic-toggle-button-checked) ::part(button):hover {
612
606
  background-color: var(--ic-toggle-button-selected-background-hover);
613
607
  }
@@ -714,6 +708,7 @@ video {
714
708
  --loading-button-background: var(
715
709
  --ic-toggle-button-selected-background-pressed
716
710
  );
711
+
717
712
  background-color: var(--ic-toggle-button-selected-background-pressed);
718
713
  }
719
714
 
@@ -721,6 +716,7 @@ video {
721
716
  --loading-button-background: var(
722
717
  --ic-toggle-button-unselected-background-pressed
723
718
  );
719
+
724
720
  background-color: var(--ic-toggle-button-unselected-background-pressed);
725
721
  }
726
722
 
@@ -738,6 +734,7 @@ video {
738
734
  --loading-button-background: var(
739
735
  --ic-toggle-button-selected-background-pressed-monochrome
740
736
  );
737
+
741
738
  background-color: var(
742
739
  --ic-toggle-button-selected-background-pressed-monochrome
743
740
  );
@@ -747,6 +744,7 @@ video {
747
744
  --loading-button-background: var(
748
745
  --ic-toggle-button-unselected-background-pressed-monochrome
749
746
  );
747
+
750
748
  background-color: var(
751
749
  --ic-toggle-button-unselected-background-pressed-monochrome
752
750
  );
@@ -131,7 +131,7 @@ export class ToggleButton {
131
131
  }
132
132
  }
133
133
  render() {
134
- return (h(Host, { key: '3af5618d6fcc757a400771e528fb0cf9f6bca618', class: {
134
+ return (h(Host, { key: 'c2130c0d6effca56347c9f898018b9125caa04e0', class: {
135
135
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
136
136
  ["ic-toggle-button-disabled"]: !!this.disabled,
137
137
  ["ic-toggle-button-checked"]: !!this.checked,
@@ -140,7 +140,7 @@ export class ToggleButton {
140
140
  ["ic-toggle-button-loading"]: !!this.loading,
141
141
  ["ic-toggle-button-monochrome"]: !!this.monochrome,
142
142
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
143
- }, onFocus: this.handleFocus }, h("ic-button", { key: 'ebdfe0fb37f690d9cfd1b3fac8a00bf07adcb4bf', "aria-pressed": this.checked.toString(), variant: this.variant === "icon" ? "icon" : "secondary", onClick: this.handleClick, title: this.accessibleLabel, "aria-label": `${this.accessibleLabel ? this.accessibleLabel : this.label}, ${this.checked ? "ticked" : "unticked"}`, disabled: this.disabled, size: this.size, fullWidth: this.fullWidth, loading: this.loading, tooltipPlacement: this.tooltipPlacement }, this.variant !== "icon" && this.label, h("slot", { key: '70d7727fa11def0e2a584cf4f109f478c7ea890b' }), isSlotUsed(this.el, "icon") && (h("slot", { key: '1ea0fbc98887941e6aa06c8424c6d32c70236238', name: "icon", slot: `${this.iconPlacement}-icon` })), isSlotUsed(this.el, "badge") && (h("slot", { key: '9d15b5e6e2dc70c046d0425738601bbcd20500e2', name: "badge", slot: "badge" })))));
143
+ }, onFocus: this.handleFocus }, h("ic-button", { key: '99bad5b60f57cbecc96c02beff4ab248592abe5d', "aria-pressed": this.checked.toString(), variant: this.variant === "icon" ? "icon" : "secondary", onClick: this.handleClick, title: this.accessibleLabel, "aria-label": `${this.accessibleLabel ? this.accessibleLabel : this.label}, ${this.checked ? "ticked" : "unticked"}`, disabled: this.disabled, size: this.size, fullWidth: this.fullWidth, loading: this.loading, tooltipPlacement: this.tooltipPlacement }, this.variant !== "icon" && this.label, h("slot", { key: '449862b1dca9d441f3b37f4992d02c9666bc5fce' }), isSlotUsed(this.el, "icon") && (h("slot", { key: '7822805ee7c57ddddbab7ae2e1f881ea410a4c7d', name: "icon", slot: `${this.iconPlacement}-icon` })), isSlotUsed(this.el, "badge") && (h("slot", { key: 'c41f62db8ed4a6ab62e0af047c27be442c7aacfb', name: "badge", slot: "badge" })))));
144
144
  }
145
145
  static get is() { return "ic-toggle-button"; }
146
146
  static get encapsulation() { return "shadow"; }
@@ -231,14 +231,14 @@ export class ToggleButtonGroup {
231
231
  return Array.from(this.el.querySelectorAll("ic-toggle-button"));
232
232
  }
233
233
  render() {
234
- return (h(Host, { key: '38b50c347fb706a9cf4f047bacf37141b68d2163', role: "group", "aria-label": this.accessibleLabel, tabindex: 0, class: {
234
+ return (h(Host, { key: '5ff90397f901e294f15f3f560eac22d575b61c62', role: "group", "aria-label": this.accessibleLabel, tabindex: 0, class: {
235
235
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
236
236
  ["ic-toggle-button-group-full-width"]: !!this.fullWidth,
237
237
  ["ic-toggle-button-group-loading"]: !!this.loading,
238
238
  ["ic-toggle-button-group-disabled"]: this.disabled,
239
239
  [`ic-toggle-button-group-monochrome`]: !!this.monochrome,
240
240
  [`ic-theme-${this.theme}`]: this.theme !== "inherit",
241
- }, onFocus: this.handleHostFocus }, h("slot", { key: '5364b0056716f8a66296eb3a680961f8d2424b6d' })));
241
+ }, onFocus: this.handleHostFocus }, h("slot", { key: 'c30679fee25ec96c7d28123d9758173737922e18' })));
242
242
  }
243
243
  static get is() { return "ic-toggle-button-group"; }
244
244
  static get encapsulation() { return "shadow"; }
@@ -178,6 +178,27 @@ export class Tooltip {
178
178
  });
179
179
  document[method]("keydown", this.handleKeyDown);
180
180
  };
181
+ this.updateTooltipEvents = () => {
182
+ this.manageEventListeners("remove");
183
+ this.showEvents = [
184
+ !this.disableHover && "mouseenter",
185
+ !this.disableHover && "focusin",
186
+ !this.disableClick && "click",
187
+ ];
188
+ this.manageEventListeners("add");
189
+ };
190
+ }
191
+ watchDisableClickHandler() {
192
+ if (this.disableClick) {
193
+ this.hide();
194
+ }
195
+ this.updateTooltipEvents();
196
+ }
197
+ watchDisableHoverHandler() {
198
+ if (this.disableHover) {
199
+ this.hide();
200
+ }
201
+ this.updateTooltipEvents();
181
202
  }
182
203
  /**
183
204
  * @internal This method allows props to be added to the PopperJS createPopper instance outside of tooltip
@@ -225,10 +246,10 @@ export class Tooltip {
225
246
  }
226
247
  render() {
227
248
  const { label, maxLines, silent, theme } = this;
228
- return (h(Host, { key: 'aca3cbb8e55d42c027d6a83039f98679ec1d5142', class: {
249
+ return (h(Host, { key: '6e9449deb13ab672b4b9c5a637b406e4bbbf01cf', class: {
229
250
  "ic-tooltip": true,
230
251
  [`ic-theme-${theme}`]: theme !== "inherit",
231
- } }, h("div", { key: '8032257b76f3569c736149a8528312509504dfd0', ref: (el) => (this.toolTip = el), role: "tooltip", class: "ic-tooltip-container", "aria-hidden": `${silent}` }, h("ic-typography", { key: '7d7eff208fb832a622261a77ba34ca21ce8b436e', maxLines: maxLines, variant: "caption" }, label), h("div", { key: 'dafaff61bbe8699ce3e33614ce08db4843dd24f2', ref: (el) => (this.arrow = el), class: "ic-tooltip-arrow" })), h("slot", { key: '9d2d6e403d1bb02ee999a1ea6afffccf9208b7a8' })));
252
+ } }, h("div", { key: '85eced68333b24b831affc67ddd6e19a1142a1da', ref: (el) => (this.toolTip = el), role: "tooltip", class: "ic-tooltip-container", "aria-hidden": `${silent}` }, h("ic-typography", { key: 'c8b2727b200dc1f409332fa1eb362600fdf50334', maxLines: maxLines, variant: "caption" }, label), h("div", { key: '452bc4142b7ef38d95883f93ccc2550228cd1ae8', ref: (el) => (this.arrow = el), class: "ic-tooltip-arrow" })), h("slot", { key: '14ca9939bf600654b87b750ff43c02fd20bafd56' })));
232
253
  }
233
254
  static get is() { return "ic-tooltip"; }
234
255
  static get encapsulation() { return "shadow"; }
@@ -519,5 +540,14 @@ export class Tooltip {
519
540
  };
520
541
  }
521
542
  static get elementRef() { return "el"; }
543
+ static get watchers() {
544
+ return [{
545
+ "propName": "disableClick",
546
+ "methodName": "watchDisableClickHandler"
547
+ }, {
548
+ "propName": "disableHover",
549
+ "methodName": "watchDisableHoverHandler"
550
+ }];
551
+ }
522
552
  }
523
553
  //# sourceMappingURL=ic-tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tooltip.js","sourceRoot":"","sources":["../../../src/components/ic-tooltip/ic-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Method,\n State,\n} from \"@stencil/core\";\nimport { Instance, Options, createPopper } from \"@popperjs/core\";\nimport { IcTooltipPlacements } from \"./ic-tooltip.types\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tooltip\",\n styleUrl: \"ic-tooltip.css\",\n shadow: true,\n})\nexport class Tooltip {\n private arrow: HTMLDivElement;\n private delayedHideEvents = [\"mouseleave\"];\n private dialogOverflow = false;\n private icDialogEl: HTMLIcDialogElement | null;\n private instantHideEvents = [\"focusout\"];\n private mouseOverTool: boolean = false;\n private persistTooltip = false;\n private popperInstance: Instance;\n private onDialog: boolean = false;\n private showEvents = [\n !this.disableHover && \"mouseenter\",\n !this.disableHover && \"focusin\",\n !this.disableClick && \"click\",\n ];\n private toolTip: HTMLDivElement;\n\n @Element() el: HTMLIcTooltipElement;\n\n /**\n * If `true`, the tooltip will not be displayed on click, it will require hover or using the display method.\n */\n @Prop() disableClick?: boolean = false;\n\n /**\n * If `true`, the tooltip will not be displayed on hover, it will require a click.\n */\n @Prop() disableHover?: boolean = false;\n\n /**\n * The number of lines to display before truncating the text.\n */\n @Prop() maxLines?: number;\n\n /**\n * The position of the tooltip in relation to the parent element.\n */\n @Prop({ mutable: true }) placement?: IcTooltipPlacements = \"bottom\";\n\n /**\n * @internal Sets the tooltip to aria-hidden, when used as part of components that are already announced.\n */\n @Prop() silent?: boolean = false;\n\n /**\n * The ID of the element the tooltip is describing - for when aria-labelledby or aria-describedby is used.\n */\n @Prop({ reflect: true }) target?: string;\n\n /**\n * Sets the tooltip to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The text to display on the tooltip.\n */\n @Prop() label!: string;\n\n @State() popperProps: Partial<Options> = {};\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of tooltip\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n disconnectedCallback(): void {\n this.manageEventListeners(\"remove\");\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n }\n\n componentDidLoad(): void {\n this.manageEventListeners(\"add\");\n\n this.icDialogEl = this.el.closest(\"ic-dialog\");\n this.dialogOverflow =\n this.icDialogEl?.getAttribute(\"data-overflow\") === \"true\";\n\n this.onDialog = this.icDialogEl !== null;\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tooltip\"\n );\n }\n\n componentDidRender(): void {\n const typographyEl = this.el.shadowRoot?.querySelector(\n \".ic-tooltip-container > ic-typography\"\n );\n this.maxLines &&\n this.maxLines > 0 &&\n typographyEl?.setAttribute(\n \"style\",\n `--truncation-max-lines: ${this.maxLines}`\n );\n }\n /**\n * Method to programmatically show/hide the tooltip without needing to interact with an anchor element\n * @param show Whether to show or hide the tooltip\n * @param persistTooltip Whether the tooltip should stay on the screen when actions are performed that would previously dismiss the tooltip, such as on hover\n */\n @Method()\n async displayTooltip(show: boolean, persistTooltip?: boolean): Promise<void> {\n this.persistTooltip = !!persistTooltip;\n show ? this.show() : this.hide();\n }\n\n /**\n * @internal Method to return if tooltip is currently visible.\n */\n @Method()\n async isTooltipVisible(): Promise<boolean> {\n return Promise.resolve(this.toolTip.hasAttribute(\"data-show\"));\n }\n\n private getTooltipTranslate = (dialogEl: DOMRect) => {\n const child = this.el.children[0].getBoundingClientRect();\n let tooltipX;\n let tooltipY;\n switch (this.placement) {\n case \"bottom\":\n tooltipX = child.left - dialogEl.left - 0.5 * child.width;\n tooltipY = child.bottom - dialogEl.top;\n break;\n case \"bottom-start\":\n tooltipX = child.left - dialogEl.left;\n tooltipY = child.bottom - dialogEl.top;\n break;\n case \"bottom-end\":\n tooltipX = child.right - dialogEl.right;\n tooltipY = child.bottom - dialogEl.top;\n break;\n case \"top\":\n tooltipX = child.left - dialogEl.left - 0.5 * child.width;\n tooltipY = child.top - dialogEl.bottom;\n break;\n case \"top-start\":\n tooltipX = child.left - dialogEl.left;\n tooltipY = child.top - dialogEl.bottom;\n break;\n case \"top-end\":\n tooltipX = child.right - dialogEl.right;\n tooltipY = child.top - dialogEl.bottom;\n break;\n case \"left\":\n case \"left-start\":\n tooltipX = child.right - dialogEl.right - child.width;\n tooltipY = child.bottom - dialogEl.top - child.height;\n break;\n case \"left-end\":\n tooltipX = child.right - dialogEl.right - child.width;\n tooltipY = child.top - dialogEl.bottom + child.height;\n break;\n case \"right\":\n case \"right-start\":\n tooltipX = child.left - dialogEl.left + child.width;\n tooltipY = child.bottom - dialogEl.top - child.height;\n break;\n case \"right-end\":\n tooltipX = child.left - dialogEl.left + child.width;\n tooltipY = child.top - dialogEl.bottom + child.height;\n break;\n }\n if (this.dialogOverflow && tooltipX && tooltipX < 0) {\n if (\n this.placement!.includes(\"top\") ||\n this.placement!.includes(\"bottom\")\n ) {\n this.toolTip.style.setProperty(\n \"--tooltip-arrow-translate\",\n `${tooltipX}px`\n );\n tooltipX = child.left - dialogEl.left;\n }\n if (this.placement!.includes(\"left\")) {\n this.placement = \"right\";\n tooltipX = child.left - dialogEl.left + child.width;\n }\n }\n\n this.toolTip.style.setProperty(\"--tooltip-translate-x\", `${tooltipX}px`);\n this.toolTip.style.setProperty(\"--tooltip-translate-y\", `${tooltipY}px`);\n };\n\n private show = () => {\n if (this.label) {\n this.toolTip.setAttribute(\"data-show\", \"\");\n\n if (this.onDialog) {\n this.el.classList.add(\"on-dialog\");\n const dialogEl = this.icDialogEl?.shadowRoot\n ?.querySelector(\"dialog\")\n ?.getBoundingClientRect();\n\n dialogEl && this.getTooltipTranslate(dialogEl);\n }\n\n this.popperInstance = createPopper(this.el, this.toolTip, {\n placement: this.placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 10],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: this.arrow,\n },\n },\n {\n name: \"eventListeners\",\n options: { scroll: false, resize: false },\n },\n ],\n ...this.popperProps,\n });\n } else {\n console.warn(`Tooltip can't display without prop 'label' set`);\n }\n };\n\n private hide = () => {\n this.toolTip.removeAttribute(\"data-show\");\n this.persistTooltip = false;\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n };\n\n private checkCloseTooltip = () => {\n setTimeout(() => {\n if (!this.mouseOverTool && !this.persistTooltip) {\n this.hide();\n }\n }, 100);\n };\n\n private mouseEnterTooltip = () => {\n this.mouseOverTool = true;\n };\n\n private mouseLeaveTooltip = () => {\n this.mouseOverTool = false;\n this.checkCloseTooltip();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && !this.persistTooltip) {\n this.hide();\n }\n };\n\n private manageEventListeners = (action: \"add\" | \"remove\") => {\n const method =\n action === \"add\" ? \"addEventListener\" : \"removeEventListener\";\n\n this.showEvents.forEach((event) => {\n if (event) {\n this.el[method](event, this.show);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseEnterTooltip);\n }\n }\n });\n\n if (!this.persistTooltip) {\n this.instantHideEvents.forEach((event) => {\n this.el[method](event, this.hide);\n });\n }\n\n this.delayedHideEvents.forEach((event) => {\n this.el[method](event, this.checkCloseTooltip);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseLeaveTooltip);\n }\n });\n\n document[method](\"keydown\", this.handleKeyDown as EventListener);\n };\n\n render() {\n const { label, maxLines, silent, theme } = this;\n return (\n <Host\n class={{\n \"ic-tooltip\": true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div\n ref={(el) => (this.toolTip = el as HTMLDivElement)}\n role=\"tooltip\"\n class=\"ic-tooltip-container\"\n aria-hidden={`${silent}`}\n >\n <ic-typography maxLines={maxLines} variant=\"caption\">\n {label}\n </ic-typography>\n <div\n ref={(el) => (this.arrow = el as HTMLDivElement)}\n class=\"ic-tooltip-arrow\"\n ></div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tooltip.js","sourceRoot":"","sources":["../../../src/components/ic-tooltip/ic-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Method,\n State,\n Watch,\n} from \"@stencil/core\";\nimport { Instance, Options, createPopper } from \"@popperjs/core\";\nimport { IcTooltipPlacements } from \"./ic-tooltip.types\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tooltip\",\n styleUrl: \"ic-tooltip.css\",\n shadow: true,\n})\nexport class Tooltip {\n private arrow: HTMLDivElement;\n private delayedHideEvents = [\"mouseleave\"];\n private dialogOverflow = false;\n private icDialogEl: HTMLIcDialogElement | null;\n private instantHideEvents = [\"focusout\"];\n private mouseOverTool: boolean = false;\n private persistTooltip = false;\n private popperInstance: Instance;\n private onDialog: boolean = false;\n private showEvents = [\n !this.disableHover && \"mouseenter\",\n !this.disableHover && \"focusin\",\n !this.disableClick && \"click\",\n ];\n private toolTip: HTMLDivElement;\n\n @Element() el: HTMLIcTooltipElement;\n\n /**\n * If `true`, the tooltip will not be displayed on click, it will require hover or using the display method.\n */\n @Prop() disableClick?: boolean = false;\n\n @Watch(\"disableClick\")\n watchDisableClickHandler(): void {\n if (this.disableClick) {\n this.hide();\n }\n this.updateTooltipEvents();\n }\n\n /**\n * If `true`, the tooltip will not be displayed on hover, it will require a click.\n */\n @Prop() disableHover?: boolean = false;\n\n @Watch(\"disableHover\")\n watchDisableHoverHandler(): void {\n if (this.disableHover) {\n this.hide();\n }\n this.updateTooltipEvents();\n }\n\n /**\n * The number of lines to display before truncating the text.\n */\n @Prop() maxLines?: number;\n\n /**\n * The position of the tooltip in relation to the parent element.\n */\n @Prop({ mutable: true }) placement?: IcTooltipPlacements = \"bottom\";\n\n /**\n * @internal Sets the tooltip to aria-hidden, when used as part of components that are already announced.\n */\n @Prop() silent?: boolean = false;\n\n /**\n * The ID of the element the tooltip is describing - for when aria-labelledby or aria-describedby is used.\n */\n @Prop({ reflect: true }) target?: string;\n\n /**\n * Sets the tooltip to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The text to display on the tooltip.\n */\n @Prop() label!: string;\n\n @State() popperProps: Partial<Options> = {};\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of tooltip\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n disconnectedCallback(): void {\n this.manageEventListeners(\"remove\");\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n }\n\n componentDidLoad(): void {\n this.manageEventListeners(\"add\");\n\n this.icDialogEl = this.el.closest(\"ic-dialog\");\n this.dialogOverflow =\n this.icDialogEl?.getAttribute(\"data-overflow\") === \"true\";\n\n this.onDialog = this.icDialogEl !== null;\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tooltip\"\n );\n }\n\n componentDidRender(): void {\n const typographyEl = this.el.shadowRoot?.querySelector(\n \".ic-tooltip-container > ic-typography\"\n );\n this.maxLines &&\n this.maxLines > 0 &&\n typographyEl?.setAttribute(\n \"style\",\n `--truncation-max-lines: ${this.maxLines}`\n );\n }\n /**\n * Method to programmatically show/hide the tooltip without needing to interact with an anchor element\n * @param show Whether to show or hide the tooltip\n * @param persistTooltip Whether the tooltip should stay on the screen when actions are performed that would previously dismiss the tooltip, such as on hover\n */\n @Method()\n async displayTooltip(show: boolean, persistTooltip?: boolean): Promise<void> {\n this.persistTooltip = !!persistTooltip;\n show ? this.show() : this.hide();\n }\n\n /**\n * @internal Method to return if tooltip is currently visible.\n */\n @Method()\n async isTooltipVisible(): Promise<boolean> {\n return Promise.resolve(this.toolTip.hasAttribute(\"data-show\"));\n }\n\n private getTooltipTranslate = (dialogEl: DOMRect) => {\n const child = this.el.children[0].getBoundingClientRect();\n let tooltipX;\n let tooltipY;\n switch (this.placement) {\n case \"bottom\":\n tooltipX = child.left - dialogEl.left - 0.5 * child.width;\n tooltipY = child.bottom - dialogEl.top;\n break;\n case \"bottom-start\":\n tooltipX = child.left - dialogEl.left;\n tooltipY = child.bottom - dialogEl.top;\n break;\n case \"bottom-end\":\n tooltipX = child.right - dialogEl.right;\n tooltipY = child.bottom - dialogEl.top;\n break;\n case \"top\":\n tooltipX = child.left - dialogEl.left - 0.5 * child.width;\n tooltipY = child.top - dialogEl.bottom;\n break;\n case \"top-start\":\n tooltipX = child.left - dialogEl.left;\n tooltipY = child.top - dialogEl.bottom;\n break;\n case \"top-end\":\n tooltipX = child.right - dialogEl.right;\n tooltipY = child.top - dialogEl.bottom;\n break;\n case \"left\":\n case \"left-start\":\n tooltipX = child.right - dialogEl.right - child.width;\n tooltipY = child.bottom - dialogEl.top - child.height;\n break;\n case \"left-end\":\n tooltipX = child.right - dialogEl.right - child.width;\n tooltipY = child.top - dialogEl.bottom + child.height;\n break;\n case \"right\":\n case \"right-start\":\n tooltipX = child.left - dialogEl.left + child.width;\n tooltipY = child.bottom - dialogEl.top - child.height;\n break;\n case \"right-end\":\n tooltipX = child.left - dialogEl.left + child.width;\n tooltipY = child.top - dialogEl.bottom + child.height;\n break;\n }\n if (this.dialogOverflow && tooltipX && tooltipX < 0) {\n if (\n this.placement!.includes(\"top\") ||\n this.placement!.includes(\"bottom\")\n ) {\n this.toolTip.style.setProperty(\n \"--tooltip-arrow-translate\",\n `${tooltipX}px`\n );\n tooltipX = child.left - dialogEl.left;\n }\n if (this.placement!.includes(\"left\")) {\n this.placement = \"right\";\n tooltipX = child.left - dialogEl.left + child.width;\n }\n }\n\n this.toolTip.style.setProperty(\"--tooltip-translate-x\", `${tooltipX}px`);\n this.toolTip.style.setProperty(\"--tooltip-translate-y\", `${tooltipY}px`);\n };\n\n private show = () => {\n if (this.label) {\n this.toolTip.setAttribute(\"data-show\", \"\");\n\n if (this.onDialog) {\n this.el.classList.add(\"on-dialog\");\n const dialogEl = this.icDialogEl?.shadowRoot\n ?.querySelector(\"dialog\")\n ?.getBoundingClientRect();\n\n dialogEl && this.getTooltipTranslate(dialogEl);\n }\n\n this.popperInstance = createPopper(this.el, this.toolTip, {\n placement: this.placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 10],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: this.arrow,\n },\n },\n {\n name: \"eventListeners\",\n options: { scroll: false, resize: false },\n },\n ],\n ...this.popperProps,\n });\n } else {\n console.warn(`Tooltip can't display without prop 'label' set`);\n }\n };\n\n private hide = () => {\n this.toolTip.removeAttribute(\"data-show\");\n this.persistTooltip = false;\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n };\n\n private checkCloseTooltip = () => {\n setTimeout(() => {\n if (!this.mouseOverTool && !this.persistTooltip) {\n this.hide();\n }\n }, 100);\n };\n\n private mouseEnterTooltip = () => {\n this.mouseOverTool = true;\n };\n\n private mouseLeaveTooltip = () => {\n this.mouseOverTool = false;\n this.checkCloseTooltip();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && !this.persistTooltip) {\n this.hide();\n }\n };\n\n private manageEventListeners = (action: \"add\" | \"remove\") => {\n const method =\n action === \"add\" ? \"addEventListener\" : \"removeEventListener\";\n\n this.showEvents.forEach((event) => {\n if (event) {\n this.el[method](event, this.show);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseEnterTooltip);\n }\n }\n });\n\n if (!this.persistTooltip) {\n this.instantHideEvents.forEach((event) => {\n this.el[method](event, this.hide);\n });\n }\n\n this.delayedHideEvents.forEach((event) => {\n this.el[method](event, this.checkCloseTooltip);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseLeaveTooltip);\n }\n });\n\n document[method](\"keydown\", this.handleKeyDown as EventListener);\n };\n\n private updateTooltipEvents = () => {\n this.manageEventListeners(\"remove\");\n this.showEvents = [\n !this.disableHover && \"mouseenter\",\n !this.disableHover && \"focusin\",\n !this.disableClick && \"click\",\n ];\n this.manageEventListeners(\"add\");\n };\n\n render() {\n const { label, maxLines, silent, theme } = this;\n return (\n <Host\n class={{\n \"ic-tooltip\": true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div\n ref={(el) => (this.toolTip = el as HTMLDivElement)}\n role=\"tooltip\"\n class=\"ic-tooltip-container\"\n aria-hidden={`${silent}`}\n >\n <ic-typography maxLines={maxLines} variant=\"caption\">\n {label}\n </ic-typography>\n <div\n ref={(el) => (this.arrow = el as HTMLDivElement)}\n class=\"ic-tooltip-arrow\"\n ></div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -448,7 +448,6 @@ video {
448
448
  position: relative;
449
449
 
450
450
  --ic-typography-color: var(--ic-top-navigation-text);
451
-
452
451
  --ic-button-secondary-text-monochrome: var(--ic-brand-text-color);
453
452
  --ic-button-secondary-border-monochrome: var(--ic-brand-text-color);
454
453
  --navigation-link-colour: var(--ic-top-navigation-text);
@@ -456,6 +455,7 @@ video {
456
455
 
457
456
  :host(.dark) {
458
457
  color: var(--ic-color-text-primary-light);
458
+
459
459
  --ic-typography-color: var(--ic-color-text-primary-light);
460
460
  --ic-top-navigation-logo: var(--ic-color-icon-neutral);
461
461
  --ic-top-navigation-icon: var(--ic-color-icon-neutral);
@@ -585,7 +585,9 @@ video {
585
585
  border-radius: var(--ic-space-md);
586
586
  background-color: var(--ic-top-navigation-status-tag);
587
587
  color: var(--ic-top-navigation-status-tag-text);
588
+
588
589
  --ic-typography-color: var(--ic-top-navigation-status-tag-text);
590
+
589
591
  padding: var(--ic-space-xxs) var(--ic-space-lg);
590
592
  margin-left: var(--ic-space-md);
591
593
  flex: 1 1 0;