@ukic/web-components 2.5.0 → 2.7.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 (715) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/{helpers-d166f875.js → helpers-0d63359f.js} +40 -102
  3. package/dist/cjs/helpers-0d63359f.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +6 -4
  7. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +10 -6
  12. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +6 -4
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -5
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +70 -71
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js +13 -6
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox.cjs.entry.js +20 -23
  24. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-chip.cjs.entry.js +11 -6
  26. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-data-entity.cjs.entry.js +6 -5
  29. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-row.cjs.entry.js +5 -4
  31. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-dialog.cjs.entry.js +49 -12
  33. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-empty-state.cjs.entry.js +5 -4
  36. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-hero.cjs.entry.js +9 -6
  41. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -4
  43. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +42 -23
  45. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
  47. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-link.cjs.entry.js +3 -6
  49. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-menu-group.cjs.entry.js +4 -2
  51. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-item.cjs.entry.js +11 -15
  53. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  55. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  59. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-page-header.cjs.entry.js +8 -4
  62. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-pagination.cjs.entry.js +6 -6
  65. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js +21 -21
  67. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-radio-group.cjs.entry.js +9 -8
  69. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-radio-option.cjs.entry.js +21 -15
  71. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-search-bar.cjs.entry.js +27 -22
  73. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-select.cjs.entry.js +40 -30
  76. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-side-navigation.cjs.entry.js +23 -21
  78. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -3
  80. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-status-tag.cjs.entry.js +14 -6
  82. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-step.cjs.entry.js +7 -5
  84. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  86. package/dist/cjs/ic-switch.cjs.entry.js +13 -6
  87. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-context.cjs.entry.js +4 -4
  89. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -4
  91. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -4
  93. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tab.cjs.entry.js +8 -8
  95. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-text-field.cjs.entry.js +5 -6
  97. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-toast-region.cjs.entry.js +21 -9
  100. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-toast.cjs.entry.js +7 -6
  102. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  104. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-typography.cjs.entry.js +12 -4
  106. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  107. package/dist/cjs/{index-afe53465.js → index-4f8c900f.js} +14 -1
  108. package/dist/cjs/index-4f8c900f.js.map +1 -0
  109. package/dist/cjs/loader.cjs.js +2 -2
  110. package/dist/cjs/types-7d67439f.js.map +1 -1
  111. package/dist/collection/collection-manifest.json +3 -3
  112. package/dist/collection/components/ic-accordion/ic-accordion.js +4 -2
  113. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  114. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +0 -1
  115. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  116. package/dist/collection/components/ic-badge/ic-badge.js +41 -15
  117. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  118. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +92 -0
  119. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  120. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -4
  121. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  122. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +4 -2
  123. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  124. package/dist/collection/components/ic-button/ic-button.css +36 -19
  125. package/dist/collection/components/ic-button/ic-button.js +98 -62
  126. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  127. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +30 -2
  128. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  129. package/dist/collection/components/ic-card/ic-card.css +1 -0
  130. package/dist/collection/components/ic-card/ic-card.js +2 -1
  131. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  132. package/dist/collection/components/ic-checkbox/ic-checkbox.js +124 -22
  133. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  134. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +17 -4
  135. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  136. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +7 -0
  137. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  138. package/dist/collection/components/ic-chip/ic-chip.css +10 -5
  139. package/dist/collection/components/ic-chip/ic-chip.js +38 -7
  140. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  141. package/dist/collection/components/ic-data-entity/ic-data-entity.js +38 -7
  142. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  143. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +3 -3
  144. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
  145. package/dist/collection/components/ic-data-row/ic-data-row.js +33 -5
  146. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  147. package/dist/collection/components/ic-dialog/ic-dialog.css +2 -1
  148. package/dist/collection/components/ic-dialog/ic-dialog.js +111 -20
  149. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  150. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +4 -4
  151. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  152. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +74 -0
  153. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  154. package/dist/collection/components/ic-empty-state/ic-empty-state.js +8 -4
  155. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  156. package/dist/collection/components/ic-hero/ic-hero.js +38 -8
  157. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  158. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +24 -2
  159. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  160. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +61 -11
  161. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  162. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +2 -2
  163. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  164. package/dist/collection/components/ic-input-label/ic-input-label.js +26 -4
  165. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  166. package/dist/collection/components/ic-link/ic-link.js +1 -4
  167. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  168. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +6 -5
  169. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  170. package/dist/collection/components/ic-menu/ic-menu.js +62 -18
  171. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  172. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +19 -2
  173. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  174. package/dist/collection/components/ic-menu-group/ic-menu-group.js +2 -1
  175. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  176. package/dist/collection/components/ic-menu-item/ic-menu-item.js +10 -14
  177. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  178. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +3 -2
  179. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  180. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  181. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
  182. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -2
  183. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  184. package/dist/collection/components/ic-page-header/ic-page-header.js +35 -4
  185. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  186. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  187. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  188. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +20 -20
  189. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  190. package/dist/collection/components/ic-radio-group/ic-radio-group.js +37 -9
  191. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  192. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +7 -0
  193. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  194. package/dist/collection/components/ic-radio-option/ic-radio-option.js +125 -14
  195. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  196. package/dist/collection/components/ic-search-bar/ic-search-bar.js +54 -22
  197. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  198. package/dist/collection/components/ic-select/ic-select.css +1 -0
  199. package/dist/collection/components/ic-select/ic-select.js +169 -30
  200. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  201. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +24 -0
  202. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  203. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +17 -2
  204. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  205. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +226 -224
  206. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +39 -19
  207. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  208. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -1
  209. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  210. package/dist/collection/components/ic-skeleton/ic-skeleton.js +26 -4
  211. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  212. package/dist/collection/components/ic-status-tag/ic-status-tag.js +71 -10
  213. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  214. package/dist/collection/components/ic-step/ic-step.js +5 -4
  215. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  216. package/dist/collection/components/ic-switch/ic-switch.js +43 -6
  217. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  218. package/dist/collection/components/ic-tab/ic-tab.js +6 -6
  219. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  220. package/dist/collection/components/ic-tab-context/ic-tab-context.js +3 -3
  221. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  222. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +35 -0
  223. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  224. package/dist/collection/components/ic-tab-group/ic-tab-group.js +1 -2
  225. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  226. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +4 -3
  227. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  228. package/dist/collection/components/ic-text-field/ic-text-field.js +34 -8
  229. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  230. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +1 -1
  231. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  232. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +17 -17
  233. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  234. package/dist/collection/components/ic-toast/ic-toast.js +10 -6
  235. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  236. package/dist/collection/components/ic-toast-region/ic-toast-region.js +53 -17
  237. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  238. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +23 -1
  239. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
  240. package/dist/collection/components/ic-tooltip/ic-tooltip.css +7 -1
  241. package/dist/collection/components/ic-tooltip/ic-tooltip.js +25 -29
  242. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  243. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +0 -8
  244. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  245. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +10 -1
  246. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  247. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  248. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  249. package/dist/collection/components/ic-typography/ic-typography.js +10 -2
  250. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  251. package/dist/collection/utils/constants.js +2 -0
  252. package/dist/collection/utils/constants.js.map +1 -1
  253. package/dist/collection/utils/helpers.js +36 -101
  254. package/dist/collection/utils/helpers.js.map +1 -1
  255. package/dist/collection/utils/types.js.map +1 -1
  256. package/dist/components/helpers.js +39 -102
  257. package/dist/components/helpers.js.map +1 -1
  258. package/dist/components/ic-accordion-group.js.map +1 -1
  259. package/dist/components/ic-accordion.js +4 -2
  260. package/dist/components/ic-accordion.js.map +1 -1
  261. package/dist/components/ic-back-to-top.js +1 -1
  262. package/dist/components/ic-badge.js +10 -6
  263. package/dist/components/ic-badge.js.map +1 -1
  264. package/dist/components/ic-breadcrumb-group.js +5 -3
  265. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  266. package/dist/components/ic-breadcrumb2.js +4 -4
  267. package/dist/components/ic-breadcrumb2.js.map +1 -1
  268. package/dist/components/ic-button2.js +62 -42
  269. package/dist/components/ic-button2.js.map +1 -1
  270. package/dist/components/ic-card.js +2 -2
  271. package/dist/components/ic-card.js.map +1 -1
  272. package/dist/components/ic-checkbox-group.js +13 -6
  273. package/dist/components/ic-checkbox-group.js.map +1 -1
  274. package/dist/components/ic-checkbox.js +25 -22
  275. package/dist/components/ic-checkbox.js.map +1 -1
  276. package/dist/components/ic-chip.js +10 -4
  277. package/dist/components/ic-chip.js.map +1 -1
  278. package/dist/components/ic-data-entity.js +6 -4
  279. package/dist/components/ic-data-entity.js.map +1 -1
  280. package/dist/components/ic-data-row.js +5 -3
  281. package/dist/components/ic-data-row.js.map +1 -1
  282. package/dist/components/ic-dialog.js +51 -11
  283. package/dist/components/ic-dialog.js.map +1 -1
  284. package/dist/components/ic-divider2.js +1 -1
  285. package/dist/components/ic-empty-state.js +4 -3
  286. package/dist/components/ic-empty-state.js.map +1 -1
  287. package/dist/components/ic-footer-link-group.js +1 -1
  288. package/dist/components/ic-footer-link.js +1 -1
  289. package/dist/components/ic-footer.js +1 -1
  290. package/dist/components/ic-hero.js +9 -5
  291. package/dist/components/ic-hero.js.map +1 -1
  292. package/dist/components/ic-horizontal-scroll2.js +5 -3
  293. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  294. package/dist/components/ic-input-component-container2.js +11 -7
  295. package/dist/components/ic-input-component-container2.js.map +1 -1
  296. package/dist/components/ic-input-label2.js +5 -3
  297. package/dist/components/ic-input-label2.js.map +1 -1
  298. package/dist/components/ic-input-validation2.js +1 -1
  299. package/dist/components/ic-link2.js +1 -4
  300. package/dist/components/ic-link2.js.map +1 -1
  301. package/dist/components/ic-loading-indicator2.js +6 -5
  302. package/dist/components/ic-loading-indicator2.js.map +1 -1
  303. package/dist/components/ic-menu-group.js +2 -1
  304. package/dist/components/ic-menu-group.js.map +1 -1
  305. package/dist/components/ic-menu-item2.js +10 -14
  306. package/dist/components/ic-menu-item2.js.map +1 -1
  307. package/dist/components/ic-menu2.js +34 -16
  308. package/dist/components/ic-menu2.js.map +1 -1
  309. package/dist/components/ic-navigation-button.js +2 -2
  310. package/dist/components/ic-navigation-button.js.map +1 -1
  311. package/dist/components/ic-navigation-group.js +1 -1
  312. package/dist/components/ic-navigation-group.js.map +1 -1
  313. package/dist/components/ic-navigation-item.js +3 -3
  314. package/dist/components/ic-navigation-item.js.map +1 -1
  315. package/dist/components/ic-navigation-menu2.js +1 -1
  316. package/dist/components/ic-page-header.js +8 -3
  317. package/dist/components/ic-page-header.js.map +1 -1
  318. package/dist/components/ic-pagination.js +4 -4
  319. package/dist/components/ic-pagination.js.map +1 -1
  320. package/dist/components/ic-popover-menu.js +20 -20
  321. package/dist/components/ic-popover-menu.js.map +1 -1
  322. package/dist/components/ic-radio-group.js +9 -7
  323. package/dist/components/ic-radio-group.js.map +1 -1
  324. package/dist/components/ic-radio-option.js +26 -14
  325. package/dist/components/ic-radio-option.js.map +1 -1
  326. package/dist/components/ic-search-bar.js +27 -21
  327. package/dist/components/ic-search-bar.js.map +1 -1
  328. package/dist/components/ic-select.js +46 -29
  329. package/dist/components/ic-select.js.map +1 -1
  330. package/dist/components/ic-side-navigation.js +23 -20
  331. package/dist/components/ic-side-navigation.js.map +1 -1
  332. package/dist/components/ic-skeleton.js +4 -2
  333. package/dist/components/ic-skeleton.js.map +1 -1
  334. package/dist/components/ic-status-tag.js +15 -5
  335. package/dist/components/ic-status-tag.js.map +1 -1
  336. package/dist/components/ic-step.js +5 -4
  337. package/dist/components/ic-step.js.map +1 -1
  338. package/dist/components/ic-stepper.js +1 -1
  339. package/dist/components/ic-switch.js +15 -5
  340. package/dist/components/ic-switch.js.map +1 -1
  341. package/dist/components/ic-tab-context.js +3 -3
  342. package/dist/components/ic-tab-context.js.map +1 -1
  343. package/dist/components/ic-tab-group.js +1 -2
  344. package/dist/components/ic-tab-group.js.map +1 -1
  345. package/dist/components/ic-tab-panel.js +4 -3
  346. package/dist/components/ic-tab-panel.js.map +1 -1
  347. package/dist/components/ic-tab.js +6 -6
  348. package/dist/components/ic-tab.js.map +1 -1
  349. package/dist/components/ic-text-field2.js +6 -6
  350. package/dist/components/ic-text-field2.js.map +1 -1
  351. package/dist/components/ic-theme.js +1 -1
  352. package/dist/components/ic-toast-region.js +24 -9
  353. package/dist/components/ic-toast-region.js.map +1 -1
  354. package/dist/components/ic-toast.js +6 -5
  355. package/dist/components/ic-toast.js.map +1 -1
  356. package/dist/components/ic-tooltip2.js +9 -28
  357. package/dist/components/ic-tooltip2.js.map +1 -1
  358. package/dist/components/ic-top-navigation.js +4 -4
  359. package/dist/components/ic-top-navigation.js.map +1 -1
  360. package/dist/components/ic-typography2.js +10 -2
  361. package/dist/components/ic-typography2.js.map +1 -1
  362. package/dist/components/types.js.map +1 -1
  363. package/dist/core/core.esm.js +1 -1
  364. package/dist/core/core.esm.js.map +1 -1
  365. package/dist/core/{p-1db57a3f.entry.js → p-025f9d2a.entry.js} +2 -2
  366. package/dist/core/p-025f9d2a.entry.js.map +1 -0
  367. package/dist/core/p-03329fd0.entry.js +2 -0
  368. package/dist/core/p-03329fd0.entry.js.map +1 -0
  369. package/dist/core/p-08b59078.entry.js +2 -0
  370. package/dist/core/p-08b59078.entry.js.map +1 -0
  371. package/dist/core/p-0c82048e.entry.js +2 -0
  372. package/dist/core/p-0c82048e.entry.js.map +1 -0
  373. package/dist/core/{p-64999983.entry.js → p-0dc4f225.entry.js} +2 -2
  374. package/dist/core/p-0dc4f225.entry.js.map +1 -0
  375. package/dist/core/p-12124e24.entry.js +2 -0
  376. package/dist/core/p-12124e24.entry.js.map +1 -0
  377. package/dist/core/{p-1ed0a71d.entry.js → p-1cf2a6aa.entry.js} +2 -2
  378. package/dist/core/p-1cf2a6aa.entry.js.map +1 -0
  379. package/dist/core/{p-ca6e5474.entry.js → p-2265e418.entry.js} +2 -2
  380. package/dist/core/p-2265e418.entry.js.map +1 -0
  381. package/dist/core/{p-9ee852d9.entry.js → p-2c30b583.entry.js} +2 -2
  382. package/dist/core/p-345fe84a.entry.js +2 -0
  383. package/dist/core/p-345fe84a.entry.js.map +1 -0
  384. package/dist/core/p-39c8111d.entry.js +2 -0
  385. package/dist/core/p-39c8111d.entry.js.map +1 -0
  386. package/dist/core/p-3a15202f.entry.js +2 -0
  387. package/dist/core/p-3a15202f.entry.js.map +1 -0
  388. package/dist/core/{p-2d21de19.entry.js → p-3a814fc4.entry.js} +2 -2
  389. package/dist/core/p-3a814fc4.entry.js.map +1 -0
  390. package/dist/core/p-3fd897c9.entry.js +2 -0
  391. package/dist/core/p-3fd897c9.entry.js.map +1 -0
  392. package/dist/core/p-41c6eaa1.entry.js +2 -0
  393. package/dist/core/p-41c6eaa1.entry.js.map +1 -0
  394. package/dist/core/p-432f8ff0.entry.js +2 -0
  395. package/dist/core/p-432f8ff0.entry.js.map +1 -0
  396. package/dist/core/p-4559600a.entry.js +2 -0
  397. package/dist/core/p-4559600a.entry.js.map +1 -0
  398. package/dist/core/{p-913da6d0.entry.js → p-475b7bd2.entry.js} +2 -2
  399. package/dist/core/{p-913da6d0.entry.js.map → p-475b7bd2.entry.js.map} +1 -1
  400. package/dist/core/{p-0fdb1e52.entry.js → p-48525498.entry.js} +2 -2
  401. package/dist/core/p-536b3c97.entry.js +2 -0
  402. package/dist/core/p-536b3c97.entry.js.map +1 -0
  403. package/dist/core/p-59bdafff.entry.js +2 -0
  404. package/dist/core/p-59bdafff.entry.js.map +1 -0
  405. package/dist/core/p-5b487daa.entry.js +2 -0
  406. package/dist/core/p-5b487daa.entry.js.map +1 -0
  407. package/dist/core/{p-4f070381.entry.js → p-5bb6c79b.entry.js} +2 -2
  408. package/dist/core/p-5bb6c79b.entry.js.map +1 -0
  409. package/dist/core/p-5ca39ed5.entry.js +2 -0
  410. package/dist/core/p-5ca39ed5.entry.js.map +1 -0
  411. package/dist/core/p-5fcd202e.entry.js +2 -0
  412. package/dist/core/p-5fcd202e.entry.js.map +1 -0
  413. package/dist/core/p-613aa265.js.map +1 -1
  414. package/dist/core/{p-038601a3.entry.js → p-69948c3e.entry.js} +2 -2
  415. package/dist/core/{p-038601a3.entry.js.map → p-69948c3e.entry.js.map} +1 -1
  416. package/dist/core/{p-d9fc7243.entry.js → p-752f0f9a.entry.js} +2 -2
  417. package/dist/core/p-752f0f9a.entry.js.map +1 -0
  418. package/dist/core/p-763d0822.entry.js +2 -0
  419. package/dist/core/p-763d0822.entry.js.map +1 -0
  420. package/dist/core/{p-9bd160bb.entry.js → p-76563540.entry.js} +2 -2
  421. package/dist/core/p-76563540.entry.js.map +1 -0
  422. package/dist/core/{p-cf95dd66.entry.js → p-7bb3c340.entry.js} +2 -2
  423. package/dist/core/p-88ea1e49.entry.js +2 -0
  424. package/dist/core/p-8b18346a.entry.js +2 -0
  425. package/dist/core/p-8b18346a.entry.js.map +1 -0
  426. package/dist/core/p-8fb4f0c0.js +2 -0
  427. package/dist/core/p-8fb4f0c0.js.map +1 -0
  428. package/dist/core/{p-05249867.entry.js → p-932fb4b7.entry.js} +2 -2
  429. package/dist/core/p-9ccfb863.entry.js +2 -0
  430. package/dist/core/p-9ccfb863.entry.js.map +1 -0
  431. package/dist/core/{p-85903a81.js → p-9d124fc7.js} +3 -3
  432. package/dist/core/p-9d124fc7.js.map +1 -0
  433. package/dist/core/{p-e904d985.entry.js → p-a4397df4.entry.js} +2 -2
  434. package/dist/core/{p-4fbe1dc3.entry.js → p-a448d873.entry.js} +2 -2
  435. package/dist/core/p-a448d873.entry.js.map +1 -0
  436. package/dist/core/{p-a388750d.entry.js → p-af9f1caa.entry.js} +2 -2
  437. package/dist/core/p-af9f1caa.entry.js.map +1 -0
  438. package/dist/core/{p-4ef8342f.entry.js → p-b0ce60a0.entry.js} +2 -2
  439. package/dist/core/{p-0e1a4f8d.entry.js → p-b77ab20a.entry.js} +2 -2
  440. package/dist/core/p-b77ab20a.entry.js.map +1 -0
  441. package/dist/core/p-ba495175.entry.js +2 -0
  442. package/dist/core/p-ba495175.entry.js.map +1 -0
  443. package/dist/core/p-c0c62df4.entry.js +2 -0
  444. package/dist/core/p-c0c62df4.entry.js.map +1 -0
  445. package/dist/core/{p-60fef702.entry.js → p-c36cbd8a.entry.js} +2 -2
  446. package/dist/core/p-c36cbd8a.entry.js.map +1 -0
  447. package/dist/core/p-c9ef9f5c.entry.js +2 -0
  448. package/dist/core/p-c9ef9f5c.entry.js.map +1 -0
  449. package/dist/core/{p-e59d2d50.entry.js → p-ccac1730.entry.js} +2 -2
  450. package/dist/core/p-cf4bacee.entry.js +2 -0
  451. package/dist/core/p-cf4bacee.entry.js.map +1 -0
  452. package/dist/core/p-e2903ce9.entry.js +2 -0
  453. package/dist/core/p-e2903ce9.entry.js.map +1 -0
  454. package/dist/core/{p-b42b8ffa.entry.js → p-e2fd542e.entry.js} +2 -2
  455. package/dist/core/p-e2fd542e.entry.js.map +1 -0
  456. package/dist/core/{p-ac82781b.entry.js → p-e3bffcae.entry.js} +2 -2
  457. package/dist/core/p-ea6ad791.entry.js +2 -0
  458. package/dist/core/p-ea6ad791.entry.js.map +1 -0
  459. package/dist/core/{p-1650c1c2.entry.js → p-eb063498.entry.js} +2 -2
  460. package/dist/core/p-eb063498.entry.js.map +1 -0
  461. package/dist/core/p-ec82fa24.entry.js +2 -0
  462. package/dist/core/p-ec82fa24.entry.js.map +1 -0
  463. package/dist/core/{p-c1e8d13e.entry.js → p-ed256f1d.entry.js} +2 -2
  464. package/dist/core/{p-2184a72f.entry.js → p-f00e510b.entry.js} +2 -2
  465. package/dist/core/p-f00e510b.entry.js.map +1 -0
  466. package/dist/core/{p-482397ae.entry.js → p-f019219c.entry.js} +2 -2
  467. package/dist/core/p-f69fb26b.entry.js +2 -0
  468. package/dist/core/p-f69fb26b.entry.js.map +1 -0
  469. package/dist/core/{p-675fe4db.entry.js → p-fbc8a739.entry.js} +2 -2
  470. package/dist/core/p-fbc8a739.entry.js.map +1 -0
  471. package/dist/core/p-fe6e0c0e.entry.js +2 -0
  472. package/dist/core/p-fe6e0c0e.entry.js.map +1 -0
  473. package/dist/esm/core.js +3 -3
  474. package/dist/esm/{helpers-81a88a11.js → helpers-24f6e762.js} +40 -103
  475. package/dist/esm/helpers-24f6e762.js.map +1 -0
  476. package/dist/esm/ic-accordion-group.entry.js +1 -1
  477. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  478. package/dist/esm/ic-accordion.entry.js +6 -4
  479. package/dist/esm/ic-accordion.entry.js.map +1 -1
  480. package/dist/esm/ic-alert.entry.js +2 -2
  481. package/dist/esm/ic-back-to-top.entry.js +2 -2
  482. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  483. package/dist/esm/ic-badge.entry.js +10 -6
  484. package/dist/esm/ic-badge.entry.js.map +1 -1
  485. package/dist/esm/ic-breadcrumb-group.entry.js +6 -4
  486. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  487. package/dist/esm/ic-breadcrumb.entry.js +5 -5
  488. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  489. package/dist/esm/ic-button_3.entry.js +70 -71
  490. package/dist/esm/ic-button_3.entry.js.map +1 -1
  491. package/dist/esm/ic-card.entry.js +4 -4
  492. package/dist/esm/ic-card.entry.js.map +1 -1
  493. package/dist/esm/ic-checkbox-group.entry.js +13 -6
  494. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  495. package/dist/esm/ic-checkbox.entry.js +20 -23
  496. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  497. package/dist/esm/ic-chip.entry.js +11 -6
  498. package/dist/esm/ic-chip.entry.js.map +1 -1
  499. package/dist/esm/ic-classification-banner.entry.js +1 -1
  500. package/dist/esm/ic-data-entity.entry.js +6 -5
  501. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  502. package/dist/esm/ic-data-row.entry.js +5 -4
  503. package/dist/esm/ic-data-row.entry.js.map +1 -1
  504. package/dist/esm/ic-dialog.entry.js +49 -12
  505. package/dist/esm/ic-dialog.entry.js.map +1 -1
  506. package/dist/esm/ic-divider.entry.js +2 -2
  507. package/dist/esm/ic-empty-state.entry.js +5 -4
  508. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  509. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  510. package/dist/esm/ic-footer-link.entry.js +2 -2
  511. package/dist/esm/ic-footer.entry.js +2 -2
  512. package/dist/esm/ic-hero.entry.js +9 -6
  513. package/dist/esm/ic-hero.entry.js.map +1 -1
  514. package/dist/esm/ic-horizontal-scroll.entry.js +5 -4
  515. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  516. package/dist/esm/ic-input-component-container_3.entry.js +42 -23
  517. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  518. package/dist/esm/ic-input-label_2.entry.js +5 -4
  519. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  520. package/dist/esm/ic-link.entry.js +3 -6
  521. package/dist/esm/ic-link.entry.js.map +1 -1
  522. package/dist/esm/ic-menu-group.entry.js +4 -2
  523. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  524. package/dist/esm/ic-menu-item.entry.js +11 -15
  525. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  526. package/dist/esm/ic-navigation-button.entry.js +3 -3
  527. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  528. package/dist/esm/ic-navigation-group.entry.js +2 -2
  529. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  530. package/dist/esm/ic-navigation-item.entry.js +4 -4
  531. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  532. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  533. package/dist/esm/ic-page-header.entry.js +8 -4
  534. package/dist/esm/ic-page-header.entry.js.map +1 -1
  535. package/dist/esm/ic-pagination-item.entry.js +2 -2
  536. package/dist/esm/ic-pagination.entry.js +6 -6
  537. package/dist/esm/ic-pagination.entry.js.map +1 -1
  538. package/dist/esm/ic-popover-menu.entry.js +21 -21
  539. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  540. package/dist/esm/ic-radio-group.entry.js +9 -8
  541. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  542. package/dist/esm/ic-radio-option.entry.js +21 -15
  543. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  544. package/dist/esm/ic-search-bar.entry.js +27 -22
  545. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  546. package/dist/esm/ic-section-container.entry.js +1 -1
  547. package/dist/esm/ic-select.entry.js +40 -30
  548. package/dist/esm/ic-select.entry.js.map +1 -1
  549. package/dist/esm/ic-side-navigation.entry.js +23 -21
  550. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  551. package/dist/esm/ic-skeleton.entry.js +4 -3
  552. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  553. package/dist/esm/ic-status-tag.entry.js +14 -6
  554. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  555. package/dist/esm/ic-step.entry.js +7 -5
  556. package/dist/esm/ic-step.entry.js.map +1 -1
  557. package/dist/esm/ic-stepper.entry.js +2 -2
  558. package/dist/esm/ic-switch.entry.js +13 -6
  559. package/dist/esm/ic-switch.entry.js.map +1 -1
  560. package/dist/esm/ic-tab-context.entry.js +4 -4
  561. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  562. package/dist/esm/ic-tab-group.entry.js +3 -4
  563. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  564. package/dist/esm/ic-tab-panel.entry.js +5 -4
  565. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  566. package/dist/esm/ic-tab.entry.js +8 -8
  567. package/dist/esm/ic-tab.entry.js.map +1 -1
  568. package/dist/esm/ic-text-field.entry.js +5 -6
  569. package/dist/esm/ic-text-field.entry.js.map +1 -1
  570. package/dist/esm/ic-theme.entry.js +2 -2
  571. package/dist/esm/ic-toast-region.entry.js +21 -9
  572. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  573. package/dist/esm/ic-toast.entry.js +7 -6
  574. package/dist/esm/ic-toast.entry.js.map +1 -1
  575. package/dist/esm/ic-top-navigation.entry.js +5 -5
  576. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  577. package/dist/esm/ic-typography.entry.js +12 -4
  578. package/dist/esm/ic-typography.entry.js.map +1 -1
  579. package/dist/esm/{index-b006ae9d.js → index-813020f1.js} +14 -2
  580. package/dist/esm/index-813020f1.js.map +1 -0
  581. package/dist/esm/loader.js +3 -3
  582. package/dist/esm/types-b2398b37.js.map +1 -1
  583. package/dist/types/components/ic-accordion/ic-accordion.d.ts +1 -0
  584. package/dist/types/components/ic-badge/ic-badge.d.ts +10 -3
  585. package/dist/types/components/ic-button/ic-button.d.ts +12 -5
  586. package/dist/types/components/ic-card/ic-card.d.ts +1 -0
  587. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +28 -2
  588. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +2 -1
  589. package/dist/types/components/ic-chip/ic-chip.d.ts +6 -2
  590. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +10 -2
  591. package/dist/types/components/ic-data-row/ic-data-row.d.ts +7 -2
  592. package/dist/types/components/ic-dialog/ic-dialog.d.ts +15 -5
  593. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +4 -1
  594. package/dist/types/components/ic-hero/ic-hero.d.ts +7 -3
  595. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +4 -0
  596. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +13 -5
  597. package/dist/types/components/ic-input-label/ic-input-label.d.ts +5 -1
  598. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +1 -1
  599. package/dist/types/components/ic-menu/ic-menu.d.ts +8 -3
  600. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -0
  601. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -0
  602. package/dist/types/components/ic-page-header/ic-page-header.d.ts +6 -2
  603. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
  604. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -4
  605. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +28 -1
  606. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +6 -2
  607. package/dist/types/components/ic-select/ic-select.d.ts +34 -4
  608. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  609. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +5 -1
  610. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +12 -2
  611. package/dist/types/components/ic-switch/ic-switch.d.ts +7 -1
  612. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -1
  613. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -1
  614. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -1
  615. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +1 -1
  616. package/dist/types/components/ic-text-field/ic-text-field.d.ts +7 -3
  617. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -1
  618. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +7 -2
  619. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -3
  620. package/dist/types/components.d.ts +388 -60
  621. package/dist/types/utils/helpers.d.ts +2 -1
  622. package/dist/types/utils/types.d.ts +2 -0
  623. package/hydrate/index.js +581 -450
  624. package/package.json +5 -5
  625. package/dist/cjs/helpers-d166f875.js.map +0 -1
  626. package/dist/cjs/index-afe53465.js.map +0 -1
  627. package/dist/core/p-0353a1d8.entry.js +0 -2
  628. package/dist/core/p-0353a1d8.entry.js.map +0 -1
  629. package/dist/core/p-08c6119a.entry.js +0 -2
  630. package/dist/core/p-08c6119a.entry.js.map +0 -1
  631. package/dist/core/p-09004694.entry.js +0 -2
  632. package/dist/core/p-09004694.entry.js.map +0 -1
  633. package/dist/core/p-0d71a937.entry.js +0 -2
  634. package/dist/core/p-0d71a937.entry.js.map +0 -1
  635. package/dist/core/p-0e1a4f8d.entry.js.map +0 -1
  636. package/dist/core/p-10bfc292.entry.js +0 -2
  637. package/dist/core/p-10bfc292.entry.js.map +0 -1
  638. package/dist/core/p-1650c1c2.entry.js.map +0 -1
  639. package/dist/core/p-1db57a3f.entry.js.map +0 -1
  640. package/dist/core/p-1ed0a71d.entry.js.map +0 -1
  641. package/dist/core/p-2184a72f.entry.js.map +0 -1
  642. package/dist/core/p-293f4c5f.entry.js +0 -2
  643. package/dist/core/p-293f4c5f.entry.js.map +0 -1
  644. package/dist/core/p-2afa6d29.entry.js +0 -2
  645. package/dist/core/p-2afa6d29.entry.js.map +0 -1
  646. package/dist/core/p-2c09f9e0.entry.js +0 -2
  647. package/dist/core/p-2c09f9e0.entry.js.map +0 -1
  648. package/dist/core/p-2d21de19.entry.js.map +0 -1
  649. package/dist/core/p-32510505.entry.js +0 -2
  650. package/dist/core/p-32510505.entry.js.map +0 -1
  651. package/dist/core/p-4f070381.entry.js.map +0 -1
  652. package/dist/core/p-4fbe1dc3.entry.js.map +0 -1
  653. package/dist/core/p-5401863e.entry.js +0 -2
  654. package/dist/core/p-5401863e.entry.js.map +0 -1
  655. package/dist/core/p-59b24198.entry.js +0 -2
  656. package/dist/core/p-59b24198.entry.js.map +0 -1
  657. package/dist/core/p-5cc070c4.entry.js +0 -2
  658. package/dist/core/p-5cc070c4.entry.js.map +0 -1
  659. package/dist/core/p-5f881644.entry.js +0 -2
  660. package/dist/core/p-5f881644.entry.js.map +0 -1
  661. package/dist/core/p-60fef702.entry.js.map +0 -1
  662. package/dist/core/p-64999983.entry.js.map +0 -1
  663. package/dist/core/p-675fe4db.entry.js.map +0 -1
  664. package/dist/core/p-6aec6bce.entry.js +0 -2
  665. package/dist/core/p-6aec6bce.entry.js.map +0 -1
  666. package/dist/core/p-6ec3cd12.entry.js +0 -2
  667. package/dist/core/p-6ec3cd12.entry.js.map +0 -1
  668. package/dist/core/p-76daa5b0.entry.js +0 -2
  669. package/dist/core/p-777e5556.entry.js +0 -2
  670. package/dist/core/p-777e5556.entry.js.map +0 -1
  671. package/dist/core/p-7a61d94a.entry.js +0 -2
  672. package/dist/core/p-7a61d94a.entry.js.map +0 -1
  673. package/dist/core/p-85903a81.js.map +0 -1
  674. package/dist/core/p-932fe2a0.entry.js +0 -2
  675. package/dist/core/p-932fe2a0.entry.js.map +0 -1
  676. package/dist/core/p-9bd160bb.entry.js.map +0 -1
  677. package/dist/core/p-a388750d.entry.js.map +0 -1
  678. package/dist/core/p-a46c1690.entry.js +0 -2
  679. package/dist/core/p-a46c1690.entry.js.map +0 -1
  680. package/dist/core/p-abf60097.entry.js +0 -2
  681. package/dist/core/p-abf60097.entry.js.map +0 -1
  682. package/dist/core/p-ad520f36.entry.js +0 -2
  683. package/dist/core/p-ad520f36.entry.js.map +0 -1
  684. package/dist/core/p-b42b8ffa.entry.js.map +0 -1
  685. package/dist/core/p-b96bd8be.entry.js +0 -2
  686. package/dist/core/p-b96bd8be.entry.js.map +0 -1
  687. package/dist/core/p-c30d9b20.js +0 -2
  688. package/dist/core/p-c30d9b20.js.map +0 -1
  689. package/dist/core/p-ca6e5474.entry.js.map +0 -1
  690. package/dist/core/p-ceed0fee.entry.js +0 -2
  691. package/dist/core/p-ceed0fee.entry.js.map +0 -1
  692. package/dist/core/p-d005a71a.entry.js +0 -2
  693. package/dist/core/p-d005a71a.entry.js.map +0 -1
  694. package/dist/core/p-d5282ede.entry.js +0 -2
  695. package/dist/core/p-d5282ede.entry.js.map +0 -1
  696. package/dist/core/p-d9fc7243.entry.js.map +0 -1
  697. package/dist/core/p-db4a15bd.entry.js +0 -2
  698. package/dist/core/p-db4a15bd.entry.js.map +0 -1
  699. package/dist/core/p-e75b04af.entry.js +0 -2
  700. package/dist/core/p-e75b04af.entry.js.map +0 -1
  701. package/dist/core/p-ea55f25c.entry.js +0 -2
  702. package/dist/core/p-ea55f25c.entry.js.map +0 -1
  703. package/dist/esm/helpers-81a88a11.js.map +0 -1
  704. package/dist/esm/index-b006ae9d.js.map +0 -1
  705. /package/dist/core/{p-9ee852d9.entry.js.map → p-2c30b583.entry.js.map} +0 -0
  706. /package/dist/core/{p-0fdb1e52.entry.js.map → p-48525498.entry.js.map} +0 -0
  707. /package/dist/core/{p-cf95dd66.entry.js.map → p-7bb3c340.entry.js.map} +0 -0
  708. /package/dist/core/{p-76daa5b0.entry.js.map → p-88ea1e49.entry.js.map} +0 -0
  709. /package/dist/core/{p-05249867.entry.js.map → p-932fb4b7.entry.js.map} +0 -0
  710. /package/dist/core/{p-e904d985.entry.js.map → p-a4397df4.entry.js.map} +0 -0
  711. /package/dist/core/{p-4ef8342f.entry.js.map → p-b0ce60a0.entry.js.map} +0 -0
  712. /package/dist/core/{p-e59d2d50.entry.js.map → p-ccac1730.entry.js.map} +0 -0
  713. /package/dist/core/{p-ac82781b.entry.js.map → p-e3bffcae.entry.js.map} +0 -0
  714. /package/dist/core/{p-c1e8d13e.entry.js.map → p-ed256f1d.entry.js.map} +0 -0
  715. /package/dist/core/{p-482397ae.entry.js.map → p-f019219c.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-text-field.textarea.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-text-field/test/basic/ic-text-field.textarea.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { TextField } from \"../../ic-text-field\";\nimport { newSpecPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-text-field\", () => {\n it(\"renders a textarea\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" value=\"\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-0\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-0\" inputmode=\"text\" name=\"ic-text-field-input-0\" placeholder=\"\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-0\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with placeholder\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" placeholder=\"placeholder\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" placeholder=\"placeholder\" rows=\"6\" value=\"\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-1\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-1\" inputmode=\"text\" name=\"ic-text-field-input-1\" placeholder=\"placeholder\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-1\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with value\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-2\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-2\" inputmode=\"text\" name=\"ic-text-field-input-2\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-2\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with helperText, required and small\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" helper-text=\"helper text value\" required=true small=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field small=\"\" helper-text=\"helper text value\" label=\"Test label\" required=\"true\" rows=\"6\" value=\"\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-3\" helpertext=\"helper text value\" label=\"Test label\" required=\"\"></ic-input-label>\n <ic-input-component-container small=\"\" multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"ic-text-field-input-3-helper-text\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-3\" inputmode=\"text\" name=\"ic-text-field-input-3\" placeholder=\"\" required=\"\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-3\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with autoprops\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" autofocus=true autocapitalize=\"on\" autocomplete=\"on\" autocorrect=\"on\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field autocapitalize=\"on\" autocomplete=\"on\" autocorrect=\"on\" autofocus=\"true\" label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-4\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"on\" class=\"no-resize\" id=\"ic-text-field-input-4\" inputmode=\"text\" name=\"ic-text-field-input-4\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-4\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with hidden label\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" hide-label=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field hide-label=\"true\" label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-component-container multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-5\" inputmode=\"text\" name=\"ic-text-field-input-5\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-5\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with icon\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\">\n <svg\n slot=\"icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"\n />\n </svg>\n </ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" value=\"\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-6\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"\">\n <span slot=\"left-icon\">\n <slot name=\"icon\"></slot>\n </span><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-6\" inputmode=\"text\" name=\"ic-text-field-input-6\" placeholder=\"\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <svg fill=\"#000000\" height=\"24px\" slot=\"icon\" viewBox=\"0 0 24 24\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"></path>\n </svg>\n <input class=\"ic-input\" name=\"ic-text-field-input-6\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea disabled\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" disabled=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field disabled=\"true\" label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container disabled=\"\">\n <ic-input-label disabled=\"\" for=\"ic-text-field-input-7\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container disabled=\"\" multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" disabled=\"\" id=\"ic-text-field-input-7\" inputmode=\"text\" name=\"ic-text-field-input-7\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" disabled=\"\" name=\"ic-text-field-input-7\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea readonly\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" readonly=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" readonly=\"\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container disabled=\"\" readonly=\"\">\n <ic-input-label for=\"ic-text-field-input-8\" helpertext=\"\" label=\"Test label\" readonly=\"\"></ic-input-label>\n <ic-input-component-container disabled=\"\" multiline=\"\" readonly=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-left-pad no-resize readonly\" disabled=\"\" id=\"ic-text-field-input-8\" inputmode=\"text\" name=\"ic-text-field-input-8\" placeholder=\"\" readonly=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" disabled=\"\" name=\"ic-text-field-input-8\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with max length\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" value=\"a long test value to exceed limit\" max-length=25></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" max-length=\"25\" rows=\"6\" value=\"a long test value to exceed limit\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-9\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"error\"><textarea aria-describedby=\"ic-text-field-input-9-charcount-desc ic-text-field-input-9-validation-text\" aria-invalid=\"true\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-9\" inputmode=\"text\" name=\"ic-text-field-input-9\" placeholder=\"\" rows=\"6\" value=\"a long test value to exceed limit\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"assertive\" for=\"ic-text-field-input-9\" message=\"Maximum length exceeded\" status=\"error\">\n <div slot=\"validation-message-adornment\">\n <ic-typography class=\"error maxlengthtext\" variant=\"caption\">\n <span aria-live=\"polite\" id=\"ic-text-field-input-9-charcount\" class=\"charcount\">\n 33/25\n </span>\n <span hidden=\"\" id=\"ic-text-field-input-9-charcount-desc\">\n Field can contain a maximum of 25 characters.\n </span>\n </ic-typography>\n </div>\n </ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-9\" type=\"hidden\" value=\"a long test value to exceed limit\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with name & full width\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=2 label=\"Test label\" value=\"test value\" name=\"mycontolname\" full-width=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field class=\"fullwidth\" full-width=\"true\" label=\"Test label\" name=\"mycontolname\" rows=\"2\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-10\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container fullwidth=\"\" multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-10\" inputmode=\"text\" name=\"mycontolname\" placeholder=\"\" rows=\"2\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"mycontolname\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with success validation\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" validation-status=\"success\" validation-text=\"Good choice!\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" validation-status=\"success\" validation-text=\"Good choice!\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-11\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"success\"><textarea aria-describedby=\"ic-text-field-input-11-validation-text\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-11\" inputmode=\"text\" name=\"ic-text-field-input-11\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"polite\" for=\"ic-text-field-input-11\" message=\"Good choice!\" status=\"success\"></ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-11\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with warning validation\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" validation-status=\"warning\" validation-text=\"warning text\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" validation-status=\"warning\" validation-text=\"warning text\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-12\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"warning\"><textarea aria-describedby=\"ic-text-field-input-12-validation-text\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-12\" inputmode=\"text\" name=\"ic-text-field-input-12\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"polite\" for=\"ic-text-field-input-12\" message=\"warning text\" status=\"warning\"></ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-12\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with error validation\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" validation-status=\"error\" validation-text=\"error text\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" validation-status=\"error\" validation-text=\"error text\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-13\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"error\"><textarea aria-describedby=\"ic-text-field-input-13-validation-text\" aria-invalid=\"true\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-13\" inputmode=\"text\" name=\"ic-text-field-input-13\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"assertive\" for=\"ic-text-field-input-13\" message=\"error text\" status=\"error\"></ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-13\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with resize\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" resize=true value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" resize=\"true\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-14\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" id=\"ic-text-field-input-14\" inputmode=\"text\" name=\"ic-text-field-input-14\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-14\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n});\n"]}
1
+ {"version":3,"file":"ic-text-field.textarea.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-text-field/test/basic/ic-text-field.textarea.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { TextField } from \"../../ic-text-field\";\nimport { newSpecPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-text-field\", () => {\n it(\"renders a textarea\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" value=\"\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-0\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-0\" inputmode=\"text\" name=\"ic-text-field-input-0\" placeholder=\"\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-0\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with placeholder\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" placeholder=\"placeholder\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" placeholder=\"placeholder\" rows=\"6\" value=\"\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-1\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-1\" inputmode=\"text\" name=\"ic-text-field-input-1\" placeholder=\"placeholder\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-1\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with value\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-2\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-2\" inputmode=\"text\" name=\"ic-text-field-input-2\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-2\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with helperText, required and small\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" size=\"small\" helper-text=\"helper text value\" required=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field helper-text=\"helper text value\" label=\"Test label\" required=\"true\" rows=\"6\" value=\"\" size=\"small\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-3\" helpertext=\"helper text value\" label=\"Test label\" required=\"\"></ic-input-label>\n <ic-input-component-container size=\"small\" multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"ic-text-field-input-3-helper-text\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-3\" inputmode=\"text\" name=\"ic-text-field-input-3\" placeholder=\"\" required=\"\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-3\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with autoprops\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" autofocus=true autocapitalize=\"on\" autocomplete=\"on\" autocorrect=\"on\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field autocapitalize=\"on\" autocomplete=\"on\" autocorrect=\"on\" autofocus=\"true\" label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-4\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"on\" class=\"no-resize\" id=\"ic-text-field-input-4\" inputmode=\"text\" name=\"ic-text-field-input-4\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-4\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with hidden label\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" hide-label=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field hide-label=\"true\" label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-5\" inputmode=\"text\" name=\"ic-text-field-input-5\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-5\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with icon\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\">\n <svg\n slot=\"icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"\n />\n </svg>\n </ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" value=\"\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-6\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"\">\n <span slot=\"left-icon\">\n <slot name=\"icon\"></slot>\n </span><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-6\" inputmode=\"text\" name=\"ic-text-field-input-6\" placeholder=\"\" rows=\"6\" value=\"\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <svg fill=\"#000000\" height=\"24px\" slot=\"icon\" viewBox=\"0 0 24 24\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"></path>\n </svg>\n <input class=\"ic-input\" name=\"ic-text-field-input-6\" type=\"hidden\" value=\"\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea disabled\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" disabled=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field disabled=\"true\" label=\"Test label\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container disabled=\"\">\n <ic-input-label disabled=\"\" for=\"ic-text-field-input-7\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container disabled=\"\" size=\"default\" multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" disabled=\"\" id=\"ic-text-field-input-7\" inputmode=\"text\" name=\"ic-text-field-input-7\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" disabled=\"\" name=\"ic-text-field-input-7\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea readonly\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=\"6\" label=\"Test label\" value=\"test value\" readonly=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" readonly=\"\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container disabled=\"\" readonly=\"\">\n <ic-input-label for=\"ic-text-field-input-8\" helpertext=\"\" label=\"Test label\" readonly=\"\"></ic-input-label>\n <ic-input-component-container disabled=\"\" size=\"default\" multiline=\"\" readonly=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-left-pad no-resize readonly\" disabled=\"\" id=\"ic-text-field-input-8\" inputmode=\"text\" name=\"ic-text-field-input-8\" placeholder=\"\" readonly=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" disabled=\"\" name=\"ic-text-field-input-8\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with max length\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" value=\"a long test value to exceed limit\" max-length=25></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" max-length=\"25\" rows=\"6\" value=\"a long test value to exceed limit\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-9\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"error\"><textarea aria-describedby=\"ic-text-field-input-9-charcount-desc ic-text-field-input-9-validation-text\" aria-invalid=\"true\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-9\" inputmode=\"text\" name=\"ic-text-field-input-9\" placeholder=\"\" rows=\"6\" value=\"a long test value to exceed limit\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"assertive\" for=\"ic-text-field-input-9\" message=\"Maximum length exceeded\" status=\"error\">\n <div slot=\"validation-message-adornment\">\n <ic-typography class=\"error maxlengthtext\" variant=\"caption\">\n <span aria-live=\"polite\" id=\"ic-text-field-input-9-charcount\" class=\"charcount\">\n 33/25\n </span>\n <span hidden=\"\" id=\"ic-text-field-input-9-charcount-desc\">\n Field can contain a maximum of 25 characters.\n </span>\n </ic-typography>\n </div>\n </ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-9\" type=\"hidden\" value=\"a long test value to exceed limit\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with name & full width\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=2 label=\"Test label\" value=\"test value\" name=\"mycontolname\" full-width=true></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field class=\"fullwidth\" full-width=\"true\" label=\"Test label\" name=\"mycontolname\" rows=\"2\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-10\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container fullwidth=\"\" size=\"default\" multiline=\"\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-10\" inputmode=\"text\" name=\"mycontolname\" placeholder=\"\" rows=\"2\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"mycontolname\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with success validation\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" validation-status=\"success\" validation-text=\"Good choice!\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" validation-status=\"success\" validation-text=\"Good choice!\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-11\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"success\"><textarea aria-describedby=\"ic-text-field-input-11-validation-text\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-11\" inputmode=\"text\" name=\"ic-text-field-input-11\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"polite\" for=\"ic-text-field-input-11\" message=\"Good choice!\" status=\"success\"></ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-11\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with warning validation\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" validation-status=\"warning\" validation-text=\"warning text\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" validation-status=\"warning\" validation-text=\"warning text\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-12\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"warning\"><textarea aria-describedby=\"ic-text-field-input-12-validation-text\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-12\" inputmode=\"text\" name=\"ic-text-field-input-12\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"polite\" for=\"ic-text-field-input-12\" message=\"warning text\" status=\"warning\"></ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-12\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with error validation\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" validation-status=\"error\" validation-text=\"error text\" value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" rows=\"6\" validation-status=\"error\" validation-text=\"error text\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-13\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"error\"><textarea aria-describedby=\"ic-text-field-input-13-validation-text\" aria-invalid=\"true\" aria-label=\"Test label\" autocapitalize=\"off\" class=\"no-resize\" id=\"ic-text-field-input-13\" inputmode=\"text\" name=\"ic-text-field-input-13\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n <ic-input-validation arialivemode=\"assertive\" for=\"ic-text-field-input-13\" message=\"error text\" status=\"error\"></ic-input-validation>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-13\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n\n it(\"renders textarea with resize\", async () => {\n const page = await newSpecPage({\n components: [TextField],\n html: `<ic-text-field rows=6 label=\"Test label\" resize=true value=\"test value\"></ic-text-field>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-text-field label=\"Test label\" resize=\"true\" rows=\"6\" value=\"test value\">\n <mock:shadow-root>\n <ic-input-container>\n <ic-input-label for=\"ic-text-field-input-14\" helpertext=\"\" label=\"Test label\"></ic-input-label>\n <ic-input-component-container multiline=\"\" size=\"default\" validationstatus=\"\"><textarea aria-describedby=\"\" aria-invalid=\"false\" aria-label=\"Test label\" autocapitalize=\"off\" id=\"ic-text-field-input-14\" inputmode=\"text\" name=\"ic-text-field-input-14\" placeholder=\"\" rows=\"6\" value=\"test value\"></textarea>\n </ic-input-component-container>\n </ic-input-container>\n </mock:shadow-root>\n <input class=\"ic-input\" name=\"ic-text-field-input-14\" type=\"hidden\" value=\"test value\">\n </ic-text-field>\n `);\n });\n});\n"]}
@@ -1,7 +1,7 @@
1
1
  import { h, Host, } from "@stencil/core";
2
2
  import closeIcon from "../../assets/close-icon.svg";
3
3
  import { VARIANT_ICONS } from "../../utils/constants";
4
- import { getSlot, isSlotUsed, onComponentRequiredPropUndefined, } from "../../utils/helpers";
4
+ import { getSlot, isPropDefined, isSlotUsed, onComponentRequiredPropUndefined, } from "../../utils/helpers";
5
5
  import { IcThemeForegroundEnum, } from "../../utils/types";
6
6
  const AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;
7
7
  const TOAST_HEADING_CHAR_LIMIT = 70;
@@ -49,13 +49,14 @@ export class Toast {
49
49
  (_b = this.neutralIconAriaLabel) !== null && _b !== void 0 ? _b : VARIANT_ICONS[this.variant].ariaLabel;
50
50
  }
51
51
  if (this.isManual) {
52
+ const toastMessage = isPropDefined(this.message)
53
+ ? `. ${this.message}`
54
+ : "";
52
55
  this.el.setAttribute("aria-label", this.variant
53
56
  ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel
54
57
  : this.heading);
55
58
  (this.variant || this.message) &&
56
- this.el.setAttribute("aria-description", this.variant
57
- ? `${this.heading}${this.message !== undefined ? `. ${this.message}` : ""}`
58
- : this.message);
59
+ this.el.setAttribute("aria-description", this.variant ? `${this.heading}${toastMessage}` : this.message);
59
60
  }
60
61
  }
61
62
  componentDidLoad() {
@@ -102,7 +103,7 @@ export class Toast {
102
103
  }
103
104
  }
104
105
  /**
105
- * Used to display the individual toast
106
+ * @internal Used to display the individual toast.
106
107
  * @returns The element that previously had focus before the toast appeared
107
108
  */
108
109
  async setVisible() {
@@ -349,8 +350,11 @@ export class Toast {
349
350
  "return": "Promise<HTMLElement>"
350
351
  },
351
352
  "docs": {
352
- "text": "Used to display the individual toast",
353
+ "text": "",
353
354
  "tags": [{
355
+ "name": "internal",
356
+ "text": "Used to display the individual toast."
357
+ }, {
354
358
  "name": "returns",
355
359
  "text": "The element that previously had focus before the toast appeared"
356
360
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"ic-toast.js","sourceRoot":"","sources":["../../../src/components/ic-toast/ic-toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcActivationTypes,\n IcStatusVariants,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private isManual: boolean;\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n\n @Element() el: HTMLIcToastElement;\n\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant\n ? `${this.heading}${\n this.message !== undefined ? `. ${this.message}` : \"\"\n }`\n : this.message\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n const actionContent = getSlot(this.el, \"action\") as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.isManual && this.visible) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n if (!this.isManual) {\n switch (ev.type) {\n case \"mouseenter\":\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n break;\n case \"mouseleave\":\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n break;\n }\n }\n }\n\n /**\n * Used to display the individual toast\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const first = this.interactiveElements[0];\n const last = this.interactiveElements[this.interactiveElements.length - 1];\n\n const source = isBackwards ? first : last;\n const target = isBackwards ? last : first;\n if (this.isActive(source)) return target;\n\n let currentIndex: number;\n const found = this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n });\n\n if (!found) return first;\n return this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)];\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n if (targetEl === this.el) return !!this.el.shadowRoot.activeElement;\n return document.activeElement === targetEl;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"hidden\"]: !visible }}\n role={isManual ? \"dialog\" : \"status\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-message\">\n <ic-typography variant=\"subtitle-large\">\n {visible && <h5>{heading}</h5>}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n appearance=\"light\"\n size=\"icon\"\n progress={this.timerProgress}\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Light}\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-toast.js","sourceRoot":"","sources":["../../../src/components/ic-toast/ic-toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcActivationTypes,\n IcStatusVariants,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private isManual: boolean;\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n\n @Element() el: HTMLIcToastElement;\n\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n const actionContent = getSlot(this.el, \"action\") as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.isManual && this.visible) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n if (!this.isManual) {\n switch (ev.type) {\n case \"mouseenter\":\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n break;\n case \"mouseleave\":\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n break;\n }\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const first = this.interactiveElements[0];\n const last = this.interactiveElements[this.interactiveElements.length - 1];\n\n const source = isBackwards ? first : last;\n const target = isBackwards ? last : first;\n if (this.isActive(source)) return target;\n\n let currentIndex: number;\n const found = this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n });\n\n if (!found) return first;\n return this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)];\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n if (targetEl === this.el) return !!this.el.shadowRoot.activeElement;\n return document.activeElement === targetEl;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"hidden\"]: !visible }}\n role={isManual ? \"dialog\" : \"status\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-message\">\n <ic-typography variant=\"subtitle-large\">\n {visible && <h5>{heading}</h5>}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n appearance=\"light\"\n size=\"icon\"\n progress={this.timerProgress}\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Light}\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,7 +1,22 @@
1
- import { h } from "@stencil/core";
1
+ import { h, } from "@stencil/core";
2
2
  export class ToastRegion {
3
3
  constructor() {
4
4
  this.pendingVisibility = [];
5
+ this.showToast = (toast) => {
6
+ const visibleToasts = Array.from(document.querySelectorAll("ic-toast")).filter((el) => window.getComputedStyle(el).display !== "none");
7
+ if (visibleToasts.indexOf(toast) === -1 && visibleToasts.length <= 0) {
8
+ toast.setVisible().then((res) => (this.previouslyFocused = res));
9
+ }
10
+ if (visibleToasts.length > 0)
11
+ this.pendingVisibility.push(toast);
12
+ };
13
+ this.openToast = undefined;
14
+ }
15
+ watchOpenToastHandler(newValue) {
16
+ if (this.openToast !== undefined) {
17
+ this.showToast(newValue);
18
+ this.openToast = undefined;
19
+ }
5
20
  }
6
21
  handleDismissedToast() {
7
22
  var _a;
@@ -20,32 +35,47 @@ export class ToastRegion {
20
35
  }
21
36
  }
22
37
  /**
23
- * Handles setting the visibility of various toasts based on what is already visible
24
- * @param toast The toast element being requested to display
38
+ * @deprecated Use openToast prop to display toast instead.
25
39
  */
26
40
  async setVisible(toast) {
27
- const visibleToasts = Array.from(document.querySelectorAll("ic-toast")).filter((el) => window.getComputedStyle(el).display !== "none");
28
- if (visibleToasts.indexOf(toast) === -1 && visibleToasts.length <= 0) {
29
- toast.setVisible().then((res) => (this.previouslyFocused = res));
30
- }
31
- if (visibleToasts.length > 0)
32
- this.pendingVisibility.push(toast);
41
+ this.showToast(toast);
33
42
  }
34
43
  render() {
35
44
  return h("slot", null);
36
45
  }
37
46
  static get is() { return "ic-toast-region"; }
47
+ static get properties() {
48
+ return {
49
+ "openToast": {
50
+ "type": "unknown",
51
+ "mutable": true,
52
+ "complexType": {
53
+ "original": "HTMLIcToastElement",
54
+ "resolved": "HTMLIcToastElement",
55
+ "references": {
56
+ "HTMLIcToastElement": {
57
+ "location": "global",
58
+ "id": "global::HTMLIcToastElement"
59
+ }
60
+ }
61
+ },
62
+ "required": false,
63
+ "optional": false,
64
+ "docs": {
65
+ "tags": [],
66
+ "text": "The toast element to be displayed."
67
+ }
68
+ }
69
+ };
70
+ }
38
71
  static get methods() {
39
72
  return {
40
73
  "setVisible": {
41
74
  "complexType": {
42
75
  "signature": "(toast: HTMLIcToastElement) => Promise<void>",
43
76
  "parameters": [{
44
- "tags": [{
45
- "name": "param",
46
- "text": "toast The toast element being requested to display"
47
- }],
48
- "text": "The toast element being requested to display"
77
+ "tags": [],
78
+ "text": ""
49
79
  }],
50
80
  "references": {
51
81
  "Promise": {
@@ -60,16 +90,22 @@ export class ToastRegion {
60
90
  "return": "Promise<void>"
61
91
  },
62
92
  "docs": {
63
- "text": "Handles setting the visibility of various toasts based on what is already visible",
93
+ "text": "",
64
94
  "tags": [{
65
- "name": "param",
66
- "text": "toast The toast element being requested to display"
95
+ "name": "deprecated",
96
+ "text": "Use openToast prop to display toast instead."
67
97
  }]
68
98
  }
69
99
  }
70
100
  };
71
101
  }
72
102
  static get elementRef() { return "el"; }
103
+ static get watchers() {
104
+ return [{
105
+ "propName": "openToast",
106
+ "methodName": "watchOpenToastHandler"
107
+ }];
108
+ }
73
109
  static get listeners() {
74
110
  return [{
75
111
  "name": "icDismiss",
@@ -1 +1 @@
1
- {"version":3,"file":"ic-toast-region.js","sourceRoot":"","sources":["../../../src/components/ic-toast-region/ic-toast-region.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAItE,MAAM,OAAO,WAAW;EADxB;IAEU,sBAAiB,GAAyB,EAAE,CAAC;GAqCtD;EA/BC,oBAAoB;;IAClB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;MACrC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACtB,UAAU,EAAE;SACZ,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;MACjD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;KAChC;SAAM;MACL,IAAI,IAAI,CAAC,iBAAiB,IAAI,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;QACjE,IAAI,CAAC,iBAA2C,CAAC,QAAQ,EAAE,CAAC;OAC9D;;QAAM,MAAA,IAAI,CAAC,iBAAiB,0CAAE,KAAK,EAAE,CAAC;KACxC;EACH,CAAC;EAED;;;KAGG;EAEH,KAAK,CAAC,UAAU,CAAC,KAAyB;IACxC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAC9B,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACtC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IACjE,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;MACpE,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;KAClE;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;MAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACnE,CAAC;EAED,MAAM;IACJ,OAAO,eAAa,CAAC;EACvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Listen, Method } from \"@stencil/core\";\nimport { IcFocusableComponents } from \"../../utils/types\";\n\n@Component({ tag: \"ic-toast-region\" })\nexport class ToastRegion {\n private pendingVisibility: HTMLIcToastElement[] = [];\n private previouslyFocused: HTMLElement;\n\n @Element() el: HTMLIcToastRegionElement;\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismissedToast(): void {\n if (this.pendingVisibility.length > 0) {\n this.pendingVisibility[0]\n .setVisible()\n .then((res) => (this.previouslyFocused = res));\n this.pendingVisibility.shift();\n } else {\n if (this.previouslyFocused && \"setFocus\" in this.previouslyFocused) {\n (this.previouslyFocused as IcFocusableComponents).setFocus();\n } else this.previouslyFocused?.focus();\n }\n }\n\n /**\n * Handles setting the visibility of various toasts based on what is already visible\n * @param toast The toast element being requested to display\n */\n @Method()\n async setVisible(toast: HTMLIcToastElement): Promise<void> {\n const visibleToasts = Array.from(\n document.querySelectorAll(\"ic-toast\")\n ).filter((el) => window.getComputedStyle(el).display !== \"none\");\n if (visibleToasts.indexOf(toast) === -1 && visibleToasts.length <= 0) {\n toast.setVisible().then((res) => (this.previouslyFocused = res));\n }\n if (visibleToasts.length > 0) this.pendingVisibility.push(toast);\n }\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
1
+ {"version":3,"file":"ic-toast-region.js","sourceRoot":"","sources":["../../../src/components/ic-toast-region/ic-toast-region.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,CAAC,EACD,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,GACN,MAAM,eAAe,CAAC;AAIvB,MAAM,OAAO,WAAW;;IACd,sBAAiB,GAAyB,EAAE,CAAC;IA+B7C,cAAS,GAAG,CAAC,KAAyB,EAAE,EAAE;MAChD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAC9B,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACtC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;MACjE,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;QACpE,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;OAClE;MACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC;;;EA7BF,qBAAqB,CAAC,QAA4B;IAChD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;MAChC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;MACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;EACH,CAAC;EAGD,oBAAoB;;IAClB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;MACrC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACtB,UAAU,EAAE;SACZ,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;MACjD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;KAChC;SAAM;MACL,IAAI,IAAI,CAAC,iBAAiB,IAAI,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;QACjE,IAAI,CAAC,iBAA2C,CAAC,QAAQ,EAAE,CAAC;OAC9D;;QAAM,MAAA,IAAI,CAAC,iBAAiB,0CAAE,KAAK,EAAE,CAAC;KACxC;EACH,CAAC;EAYD;;KAEG;EAEH,KAAK,CAAC,UAAU,CAAC,KAAyB;IACxC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;EACxB,CAAC;EAED,MAAM;IACJ,OAAO,eAAa,CAAC;EACvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n h,\n Listen,\n Method,\n Prop,\n Watch,\n} from \"@stencil/core\";\nimport { IcFocusableComponents } from \"../../utils/types\";\n\n@Component({ tag: \"ic-toast-region\" })\nexport class ToastRegion {\n private pendingVisibility: HTMLIcToastElement[] = [];\n private previouslyFocused: HTMLElement;\n\n @Element() el: HTMLIcToastRegionElement;\n\n /**\n * The toast element to be displayed.\n */\n @Prop({ mutable: true }) openToast: HTMLIcToastElement;\n @Watch(\"openToast\")\n watchOpenToastHandler(newValue: HTMLIcToastElement): void {\n if (this.openToast !== undefined) {\n this.showToast(newValue);\n this.openToast = undefined;\n }\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismissedToast(): void {\n if (this.pendingVisibility.length > 0) {\n this.pendingVisibility[0]\n .setVisible()\n .then((res) => (this.previouslyFocused = res));\n this.pendingVisibility.shift();\n } else {\n if (this.previouslyFocused && \"setFocus\" in this.previouslyFocused) {\n (this.previouslyFocused as IcFocusableComponents).setFocus();\n } else this.previouslyFocused?.focus();\n }\n }\n\n private showToast = (toast: HTMLIcToastElement) => {\n const visibleToasts = Array.from(\n document.querySelectorAll(\"ic-toast\")\n ).filter((el) => window.getComputedStyle(el).display !== \"none\");\n if (visibleToasts.indexOf(toast) === -1 && visibleToasts.length <= 0) {\n toast.setVisible().then((res) => (this.previouslyFocused = res));\n }\n if (visibleToasts.length > 0) this.pendingVisibility.push(toast);\n };\n\n /**\n * @deprecated Use openToast prop to display toast instead.\n */\n @Method()\n async setVisible(toast: HTMLIcToastElement): Promise<void> {\n this.showToast(toast);\n }\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
@@ -12,7 +12,7 @@ describe("ic-toast-region component", () => {
12
12
  });
13
13
  expect(page.root).toMatchSnapshot();
14
14
  });
15
- it("should test showing and hiding toasts", async () => {
15
+ it("should test showing and hiding toasts with deprecated showVisible method", async () => {
16
16
  const page = await newSpecPage({
17
17
  components: [ToastRegion, Toast],
18
18
  html: `<ic-toast-region>
@@ -32,6 +32,28 @@ describe("ic-toast-region component", () => {
32
32
  await page.rootInstance.handleDismissedToast();
33
33
  expect(page.rootInstance.pendingVisibility.length).toBe(0);
34
34
  });
35
+ it("should test showing and hiding toasts with openToast prop", async () => {
36
+ const page = await newSpecPage({
37
+ components: [ToastRegion, Toast],
38
+ html: `<ic-toast-region>
39
+ <ic-toast heading="Heading"></ic-toast>
40
+ <ic-toast heading="Heading"></ic-toast>
41
+ </ic-toast-region>`,
42
+ });
43
+ const toasts = page.root.querySelectorAll("ic-toast");
44
+ page.root.openToast = toasts[0];
45
+ await page.waitForChanges();
46
+ expect(page.rootInstance.pendingVisibility.length).toBe(1);
47
+ page.root.openToast = toasts[1];
48
+ await page.waitForChanges();
49
+ expect(page.rootInstance.pendingVisibility.length).toBe(2);
50
+ await page.rootInstance.handleDismissedToast();
51
+ expect(page.rootInstance.pendingVisibility.length).toBe(1);
52
+ await page.rootInstance.handleDismissedToast();
53
+ expect(page.rootInstance.pendingVisibility.length).toBe(0);
54
+ await page.rootInstance.handleDismissedToast();
55
+ expect(page.rootInstance.pendingVisibility.length).toBe(0);
56
+ });
35
57
  it("should test previouslyFocused", async () => {
36
58
  const page = await newSpecPage({
37
59
  components: [ToastRegion, Toast, Button],
@@ -1 +1 @@
1
- {"version":3,"file":"ic-toast-region.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-toast-region/test/basic/ic-toast-region.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { Toast } from \"../../../ic-toast/ic-toast\";\nimport { ToastRegion } from \"../../ic-toast-region\";\n\ndescribe(\"ic-toast-region component\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast],\n html: `<ic-toast-region>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test showing and hiding toasts\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast],\n html: `<ic-toast-region>\n <ic-toast heading=\"Heading\"></ic-toast>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n const toasts = page.root.querySelectorAll(\"ic-toast\");\n\n await page.root.setVisible(toasts[0]);\n\n expect(page.rootInstance.pendingVisibility.length).toBe(1);\n\n await page.root.setVisible(toasts[1]);\n\n expect(page.rootInstance.pendingVisibility.length).toBe(2);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(1);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n });\n\n it(\"should test previouslyFocused\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast, Button],\n html: `<ic-toast-region>\n <ic-button>Click Me</ic-button>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n const button = page.root.querySelector(\"ic-button\");\n page.rootInstance.previouslyFocused = button;\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n });\n\n it(\"should test previously focused - standard element\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast],\n html: `<ic-toast-region>\n <button>Click Me</button>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n const button = page.root.querySelector(\"button\");\n page.rootInstance.previouslyFocused = button;\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n });\n});\n"]}
1
+ {"version":3,"file":"ic-toast-region.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-toast-region/test/basic/ic-toast-region.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { Toast } from \"../../../ic-toast/ic-toast\";\nimport { ToastRegion } from \"../../ic-toast-region\";\n\ndescribe(\"ic-toast-region component\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast],\n html: `<ic-toast-region>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test showing and hiding toasts with deprecated showVisible method\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast],\n html: `<ic-toast-region>\n <ic-toast heading=\"Heading\"></ic-toast>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n const toasts = page.root.querySelectorAll(\"ic-toast\");\n\n await page.root.setVisible(toasts[0]);\n\n expect(page.rootInstance.pendingVisibility.length).toBe(1);\n\n await page.root.setVisible(toasts[1]);\n\n expect(page.rootInstance.pendingVisibility.length).toBe(2);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(1);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n });\n\n it(\"should test showing and hiding toasts with openToast prop\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast],\n html: `<ic-toast-region>\n <ic-toast heading=\"Heading\"></ic-toast>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n const toasts = page.root.querySelectorAll(\"ic-toast\");\n\n page.root.openToast = toasts[0];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.pendingVisibility.length).toBe(1);\n\n page.root.openToast = toasts[1];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.pendingVisibility.length).toBe(2);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(1);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n });\n\n it(\"should test previouslyFocused\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast, Button],\n html: `<ic-toast-region>\n <ic-button>Click Me</ic-button>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n const button = page.root.querySelector(\"ic-button\");\n page.rootInstance.previouslyFocused = button;\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n });\n\n it(\"should test previously focused - standard element\", async () => {\n const page = await newSpecPage({\n components: [ToastRegion, Toast],\n html: `<ic-toast-region>\n <button>Click Me</button>\n <ic-toast heading=\"Heading\"></ic-toast>\n </ic-toast-region>`,\n });\n\n const button = page.root.querySelector(\"button\");\n page.rootInstance.previouslyFocused = button;\n\n await page.rootInstance.handleDismissedToast();\n expect(page.rootInstance.pendingVisibility.length).toBe(0);\n });\n});\n"]}
@@ -449,7 +449,7 @@ video {
449
449
  background-color: var(--ic-architectural-800);
450
450
  color: #ffff;
451
451
  text-align: center;
452
- padding: var(--ic-space-xxxs) 0.625rem;
452
+ padding: var(--ic-space-xxxs) var(--ic-space-xs);
453
453
  border-radius: var(--ic-border-radius);
454
454
  border: var(--ic-space-1px) solid var(--ic-architectural-40);
455
455
  position: absolute;
@@ -564,6 +564,12 @@ video {
564
564
  ) !important;
565
565
  }
566
566
 
567
+ @media screen and (max-width: 576px) {
568
+ :host(.ic-tooltip) .ic-tooltip-container {
569
+ max-width: 18.875rem;
570
+ }
571
+ }
572
+
567
573
  @media (forced-colors: active) {
568
574
  :host(.ic-tooltip) .ic-tooltip-container,
569
575
  :host(.ic-tooltip) .ic-tooltip-arrow::before {
@@ -1,4 +1,4 @@
1
- import { Host, h, } from "@stencil/core";
1
+ import { Host, h } from "@stencil/core";
2
2
  import { createPopper } from "@popperjs/core";
3
3
  import { onComponentRequiredPropUndefined } from "../../utils/helpers";
4
4
  export class Tooltip {
@@ -9,14 +9,6 @@ export class Tooltip {
9
9
  this.mouseOverTool = false;
10
10
  this.persistTooltip = false;
11
11
  this.onDialog = false;
12
- this.screenReaderOnlyStyles = {
13
- position: "absolute",
14
- left: "-10000px",
15
- top: "auto",
16
- width: "1px",
17
- height: "1px",
18
- overflow: "hidden",
19
- };
20
12
  this.showEvents = this.disableHover
21
13
  ? ["click"]
22
14
  : ["mouseenter", "focusin"];
@@ -157,15 +149,11 @@ export class Tooltip {
157
149
  document[method]("keydown", this.handleKeyDown);
158
150
  };
159
151
  this.disableHover = false;
152
+ this.maxLines = undefined;
160
153
  this.placement = "bottom";
161
154
  this.target = undefined;
162
155
  this.label = undefined;
163
156
  }
164
- updateLabel(newValue) {
165
- if (this.ariaDescribedBy !== null) {
166
- this.ariaDescribedBy.innerText = newValue;
167
- }
168
- }
169
157
  disconnectedCallback() {
170
158
  this.manageEventListeners("remove");
171
159
  if (this.popperInstance !== undefined) {
@@ -180,14 +168,11 @@ export class Tooltip {
180
168
  ((_a = this.icDialogEl) === null || _a === void 0 ? void 0 : _a.getAttribute("data-overflow")) === "true";
181
169
  this.onDialog = this.icDialogEl !== null;
182
170
  onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Tooltip");
183
- if (this.target !== undefined) {
184
- this.ariaDescribedBy = document.createElement("span");
185
- this.ariaDescribedBy.id = `ic-tooltip-${this.target}`;
186
- this.ariaDescribedBy.innerText = this.label;
187
- this.ariaDescribedBy.classList.add("ic-tooltip-label");
188
- Object.assign(this.ariaDescribedBy.style, this.screenReaderOnlyStyles);
189
- this.el.insertAdjacentElement("beforebegin", this.ariaDescribedBy);
190
- }
171
+ }
172
+ componentDidRender() {
173
+ const typographyEl = this.el.shadowRoot.querySelector(".ic-tooltip-container > ic-typography");
174
+ this.maxLines > 0 &&
175
+ typographyEl.setAttribute("style", `--truncation-max-lines: ${this.maxLines}`);
191
176
  }
192
177
  /**
193
178
  * Method to programmatically show/hide the tooltip without needing to interact with an anchor element
@@ -200,7 +185,7 @@ export class Tooltip {
200
185
  }
201
186
  render() {
202
187
  const { label } = this;
203
- return (h(Host, { class: { "ic-tooltip": true } }, h("div", { ref: (el) => (this.toolTip = el), role: "tooltip", class: "ic-tooltip-container" }, h("ic-typography", { variant: "caption" }, label), h("div", { ref: (el) => (this.arrow = el), class: "ic-tooltip-arrow", "data-popper-arrow": true })), h("slot", null)));
188
+ return (h(Host, { class: { "ic-tooltip": true } }, h("div", { ref: (el) => (this.toolTip = el), role: "tooltip", class: "ic-tooltip-container" }, h("ic-typography", { maxLines: this.maxLines, variant: "caption" }, label), h("div", { ref: (el) => (this.arrow = el), class: "ic-tooltip-arrow" })), h("slot", null)));
204
189
  }
205
190
  static get is() { return "ic-tooltip"; }
206
191
  static get encapsulation() { return "shadow"; }
@@ -234,6 +219,23 @@ export class Tooltip {
234
219
  "reflect": false,
235
220
  "defaultValue": "false"
236
221
  },
222
+ "maxLines": {
223
+ "type": "number",
224
+ "mutable": false,
225
+ "complexType": {
226
+ "original": "number",
227
+ "resolved": "number",
228
+ "references": {}
229
+ },
230
+ "required": false,
231
+ "optional": true,
232
+ "docs": {
233
+ "tags": [],
234
+ "text": "The number of lines to display before truncating the text."
235
+ },
236
+ "attribute": "max-lines",
237
+ "reflect": false
238
+ },
237
239
  "placement": {
238
240
  "type": "string",
239
241
  "mutable": true,
@@ -334,11 +336,5 @@ export class Tooltip {
334
336
  };
335
337
  }
336
338
  static get elementRef() { return "el"; }
337
- static get watchers() {
338
- return [{
339
- "propName": "label",
340
- "methodName": "updateLabel"
341
- }];
342
- }
343
339
  }
344
340
  //# sourceMappingURL=ic-tooltip.js.map