@ukic/web-components 2.25.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (887) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-4af10d35.js → helpers-94b33ab0.js} +3 -1
  3. package/dist/cjs/helpers-94b33ab0.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +8 -8
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +4 -4
  7. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +1 -3
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +12 -15
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-badge.cjs.entry.js +15 -27
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +4 -4
  15. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -3
  17. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-button_3.cjs.entry.js +27 -22
  19. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  20. package/dist/cjs/{ic-card.cjs.entry.js → ic-card-vertical.cjs.entry.js} +6 -6
  21. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -0
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js +6 -5
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-checkbox.cjs.entry.js +6 -15
  25. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-chip.cjs.entry.js +9 -10
  27. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-list.cjs.entry.js +28 -0
  31. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -0
  32. package/dist/cjs/ic-data-row.cjs.entry.js +9 -10
  33. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-dialog.cjs.entry.js +12 -97
  35. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-empty-state.cjs.entry.js +6 -6
  38. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-footer-link-group.cjs.entry.js +9 -9
  40. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-footer-link.cjs.entry.js +6 -7
  42. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-footer.cjs.entry.js +8 -8
  44. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-hero.cjs.entry.js +8 -9
  46. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  48. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +18 -23
  50. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-input-label_2.cjs.entry.js +11 -12
  52. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-link.cjs.entry.js +6 -7
  54. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-menu-item.cjs.entry.js +3 -3
  57. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-navigation-group.cjs.entry.js +9 -9
  60. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-navigation-item.cjs.entry.js +5 -5
  62. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-page-header.cjs.entry.js +7 -8
  66. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-pagination.cjs.entry.js +35 -33
  69. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-popover-menu.cjs.entry.js +3 -3
  71. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-radio-group.cjs.entry.js +40 -25
  73. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -18
  75. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-search-bar.cjs.entry.js +18 -24
  77. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-select.cjs.entry.js +13 -21
  79. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-side-navigation.cjs.entry.js +7 -7
  81. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -5
  83. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -11
  85. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-step.cjs.entry.js +40 -43
  87. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-stepper.cjs.entry.js +16 -16
  89. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-switch.cjs.entry.js +5 -6
  91. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab-context.cjs.entry.js +0 -11
  93. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tab-group.cjs.entry.js +4 -5
  95. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -8
  97. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-tab.cjs.entry.js +4 -4
  99. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-text-field.cjs.entry.js +49 -49
  101. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  103. package/dist/cjs/ic-toast-region.cjs.entry.js +0 -7
  104. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-toast.cjs.entry.js +83 -35
  106. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +16 -16
  108. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-toggle-button.cjs.entry.js +13 -13
  110. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-top-navigation.cjs.entry.js +4 -4
  112. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ic-typography.cjs.entry.js +51 -16
  114. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  115. package/dist/cjs/index-f982899d.js +12 -12
  116. package/dist/cjs/loader.cjs.js +1 -1
  117. package/dist/cjs/types-dc22e301.js.map +1 -1
  118. package/dist/collection/collection-manifest.json +3 -3
  119. package/dist/collection/components/ic-accordion/ic-accordion.css +7 -7
  120. package/dist/collection/components/ic-accordion/ic-accordion.js +2 -2
  121. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  122. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +5 -5
  123. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +9 -9
  124. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  125. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +7 -7
  126. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
  127. package/dist/collection/components/ic-alert/ic-alert.js +0 -19
  128. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  129. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +21 -61
  130. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +10 -13
  131. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  132. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +9 -10
  133. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +1 -1
  134. package/dist/collection/components/ic-badge/ic-badge.css +33 -33
  135. package/dist/collection/components/ic-badge/ic-badge.js +18 -74
  136. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  137. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +41 -43
  138. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  139. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +2 -2
  140. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +1 -1
  141. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  142. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.css +7 -5
  143. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  144. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  145. package/dist/collection/components/ic-button/ic-button.css +240 -214
  146. package/dist/collection/components/ic-button/ic-button.js +8 -9
  147. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  148. package/dist/collection/components/{ic-card/ic-card.js → ic-card-vertical/ic-card-vertical.js} +5 -5
  149. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js.map +1 -0
  150. package/dist/collection/components/{ic-card/test/basic/ic-card.spec.js → ic-card-vertical/test/basic/ic-card-vertical.spec.js} +41 -41
  151. package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js.map +1 -0
  152. package/dist/collection/components/ic-checkbox/ic-checkbox.css +10 -10
  153. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -136
  154. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  155. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +3 -3
  156. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -24
  157. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  158. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +2 -2
  159. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  160. package/dist/collection/components/ic-chip/ic-chip.css +1 -5
  161. package/dist/collection/components/ic-chip/ic-chip.js +8 -52
  162. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  163. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +15 -0
  164. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
  165. package/dist/collection/components/ic-classification-banner/ic-classification-banner.css +1 -1
  166. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +1 -1
  167. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  168. package/dist/collection/components/{ic-data-entity/ic-data-entity.css → ic-data-list/ic-data-list.css} +2 -2
  169. package/dist/collection/components/{ic-data-entity/ic-data-entity.js → ic-data-list/ic-data-list.js} +11 -33
  170. package/dist/collection/components/ic-data-list/ic-data-list.js.map +1 -0
  171. package/dist/collection/components/{ic-data-entity/test/basic/ic-data-entity.spec.js → ic-data-list/test/basic/ic-data-list.spec.js} +32 -32
  172. package/dist/collection/components/ic-data-list/test/basic/ic-data-list.spec.js.map +1 -0
  173. package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
  174. package/dist/collection/components/ic-data-row/ic-data-row.js +8 -30
  175. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  176. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +4 -4
  177. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +1 -1
  178. package/dist/collection/components/ic-dialog/ic-dialog.css +3 -12
  179. package/dist/collection/components/ic-dialog/ic-dialog.js +11 -214
  180. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  181. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +3 -226
  182. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  183. package/dist/collection/components/ic-empty-state/ic-empty-state.css +4 -4
  184. package/dist/collection/components/ic-empty-state/ic-empty-state.js +6 -6
  185. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  186. package/dist/collection/components/ic-footer/ic-footer.css +6 -6
  187. package/dist/collection/components/ic-footer/ic-footer.js +6 -6
  188. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  189. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +1 -1
  190. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +1 -1
  191. package/dist/collection/components/ic-footer-link/ic-footer-link.css +33 -107
  192. package/dist/collection/components/ic-footer-link/ic-footer-link.js +4 -5
  193. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  194. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +7 -7
  195. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +9 -9
  196. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  197. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +7 -7
  198. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -1
  199. package/dist/collection/components/ic-hero/ic-hero.css +13 -13
  200. package/dist/collection/components/ic-hero/ic-hero.js +8 -30
  201. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  202. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +6 -6
  203. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -1
  204. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +5 -5
  205. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +3 -3
  206. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  207. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +31 -26
  208. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +9 -54
  209. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  210. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +9 -9
  211. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  212. package/dist/collection/components/ic-input-label/ic-input-label.css +1 -1
  213. package/dist/collection/components/ic-input-label/ic-input-label.js +24 -46
  214. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  215. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +4 -4
  216. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -1
  217. package/dist/collection/components/ic-input-validation/ic-input-validation.css +1 -1
  218. package/dist/collection/components/ic-input-validation/ic-input-validation.js +2 -2
  219. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  220. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +4 -4
  221. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +1 -1
  222. package/dist/collection/components/ic-link/ic-link.css +31 -31
  223. package/dist/collection/components/ic-link/ic-link.js +4 -25
  224. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  225. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +18 -16
  226. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
  227. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +5 -4
  228. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +7 -7
  229. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  230. package/dist/collection/components/ic-menu/ic-menu.css +8 -8
  231. package/dist/collection/components/ic-menu/ic-menu.js +6 -29
  232. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  233. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +1 -1
  234. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  235. package/dist/collection/components/ic-menu-item/ic-menu-item.css +21 -21
  236. package/dist/collection/components/ic-menu-item/ic-menu-item.js +1 -1
  237. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  238. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +10 -10
  239. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +7 -7
  240. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  241. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +4 -4
  242. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  243. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +1 -1
  244. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  245. package/dist/collection/components/ic-page-header/ic-page-header.css +2 -2
  246. package/dist/collection/components/ic-page-header/ic-page-header.js +5 -27
  247. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  248. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +15 -15
  249. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +1 -1
  250. package/dist/collection/components/ic-pagination/ic-pagination.css +5 -0
  251. package/dist/collection/components/ic-pagination/ic-pagination.js +39 -37
  252. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  253. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +26 -26
  254. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
  255. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +2 -2
  256. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +1 -1
  257. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  258. package/dist/collection/components/ic-radio-group/ic-radio-group.css +4 -4
  259. package/dist/collection/components/ic-radio-group/ic-radio-group.js +41 -45
  260. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  261. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +14 -18
  262. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +1 -1
  263. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +11 -2
  264. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  265. package/dist/collection/components/ic-radio-option/ic-radio-option.css +4 -4
  266. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -126
  267. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  268. package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -6
  269. package/dist/collection/components/ic-search-bar/ic-search-bar.js +29 -96
  270. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  271. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +6 -6
  272. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  273. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +15 -15
  274. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -1
  275. package/dist/collection/components/ic-select/ic-select.css +14 -12
  276. package/dist/collection/components/ic-select/ic-select.js +13 -148
  277. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  278. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +6 -6
  279. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  280. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +8 -8
  281. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +6 -6
  282. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  283. package/dist/collection/components/ic-skeleton/ic-skeleton.css +2 -2
  284. package/dist/collection/components/ic-skeleton/ic-skeleton.js +3 -25
  285. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  286. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +1 -1
  287. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +1 -1
  288. package/dist/collection/components/ic-status-tag/ic-status-tag.js +1 -57
  289. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  290. package/dist/collection/components/ic-status-tag/ic-status-tag.types.js.map +1 -1
  291. package/dist/collection/components/ic-step/ic-step.css +52 -52
  292. package/dist/collection/components/ic-step/ic-step.js +49 -52
  293. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  294. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +30 -30
  295. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +1 -1
  296. package/dist/collection/components/ic-stepper/ic-stepper.css +4 -4
  297. package/dist/collection/components/ic-stepper/ic-stepper.js +14 -14
  298. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  299. package/dist/collection/components/ic-stepper/test/basic/ic-stepper-test-examples.js +37 -37
  300. package/dist/collection/components/ic-stepper/test/basic/ic-stepper-test-examples.js.map +1 -1
  301. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +234 -234
  302. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  303. package/dist/collection/components/ic-switch/ic-switch.js +4 -26
  304. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  305. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +1 -1
  306. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +1 -1
  307. package/dist/collection/components/ic-tab/ic-tab.css +5 -5
  308. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  309. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  310. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +2 -2
  311. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +1 -1
  312. package/dist/collection/components/ic-tab-context/ic-tab-context.js +0 -34
  313. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  314. package/dist/collection/components/ic-tab-group/ic-tab-group.css +2 -2
  315. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -24
  316. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  317. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +0 -28
  318. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  319. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +3 -18
  320. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +1 -1
  321. package/dist/collection/components/ic-text-field/ic-text-field.css +8 -3
  322. package/dist/collection/components/ic-text-field/ic-text-field.js +67 -89
  323. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  324. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +26 -11
  325. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  326. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +70 -39
  327. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  328. package/dist/collection/components/ic-toast/ic-toast.css +10 -3
  329. package/dist/collection/components/ic-toast/ic-toast.js +83 -32
  330. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  331. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +43 -7
  332. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -1
  333. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -43
  334. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  335. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +0 -20
  336. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
  337. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +50 -43
  338. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +13 -13
  339. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  340. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js +4 -4
  341. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js.map +1 -1
  342. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +11 -8
  343. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +15 -15
  344. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  345. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.types.js.map +1 -1
  346. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js +19 -19
  347. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js.map +1 -1
  348. package/dist/collection/components/ic-tooltip/ic-tooltip.js +56 -6
  349. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  350. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  351. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  352. package/dist/collection/components/ic-typography/ic-typography.css +13 -5
  353. package/dist/collection/components/ic-typography/ic-typography.js +152 -17
  354. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  355. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +55 -0
  356. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  357. package/dist/collection/utils/helpers.js +1 -0
  358. package/dist/collection/utils/helpers.js.map +1 -1
  359. package/dist/collection/utils/types.js.map +1 -1
  360. package/dist/components/helpers.js +2 -1
  361. package/dist/components/helpers.js.map +1 -1
  362. package/dist/components/ic-accordion-group.js +8 -8
  363. package/dist/components/ic-accordion-group.js.map +1 -1
  364. package/dist/components/ic-accordion.js +3 -3
  365. package/dist/components/ic-accordion.js.map +1 -1
  366. package/dist/components/ic-alert.js +127 -1
  367. package/dist/components/ic-alert.js.map +1 -1
  368. package/dist/components/ic-back-to-top.js +25 -16
  369. package/dist/components/ic-back-to-top.js.map +1 -1
  370. package/dist/components/ic-badge.js +17 -31
  371. package/dist/components/ic-badge.js.map +1 -1
  372. package/dist/components/ic-breadcrumb-group.js +4 -4
  373. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  374. package/dist/components/ic-breadcrumb2.js +3 -3
  375. package/dist/components/ic-breadcrumb2.js.map +1 -1
  376. package/dist/components/ic-button2.js +10 -10
  377. package/dist/components/ic-button2.js.map +1 -1
  378. package/dist/components/{ic-data-entity.d.ts → ic-card-vertical.d.ts} +4 -4
  379. package/dist/components/{ic-card.js → ic-card-vertical.js} +11 -11
  380. package/dist/components/ic-card-vertical.js.map +1 -0
  381. package/dist/components/ic-checkbox-group.js +6 -6
  382. package/dist/components/ic-checkbox-group.js.map +1 -1
  383. package/dist/components/ic-checkbox.js +6 -21
  384. package/dist/components/ic-checkbox.js.map +1 -1
  385. package/dist/components/ic-chip.js +9 -11
  386. package/dist/components/ic-chip.js.map +1 -1
  387. package/dist/components/ic-classification-banner.js +2 -2
  388. package/dist/components/ic-classification-banner.js.map +1 -1
  389. package/dist/components/{ic-card.d.ts → ic-data-list.d.ts} +4 -4
  390. package/dist/components/ic-data-list.js +51 -0
  391. package/dist/components/ic-data-list.js.map +1 -0
  392. package/dist/components/ic-data-row.js +10 -12
  393. package/dist/components/ic-data-row.js.map +1 -1
  394. package/dist/components/ic-dialog.js +14 -112
  395. package/dist/components/ic-dialog.js.map +1 -1
  396. package/dist/components/ic-divider2.js +1 -1
  397. package/dist/components/ic-empty-state.js +7 -7
  398. package/dist/components/ic-empty-state.js.map +1 -1
  399. package/dist/components/ic-footer-link-group.js +10 -10
  400. package/dist/components/ic-footer-link-group.js.map +1 -1
  401. package/dist/components/ic-footer-link.js +13 -8
  402. package/dist/components/ic-footer-link.js.map +1 -1
  403. package/dist/components/ic-footer.js +8 -8
  404. package/dist/components/ic-footer.js.map +1 -1
  405. package/dist/components/ic-hero.js +8 -10
  406. package/dist/components/ic-hero.js.map +1 -1
  407. package/dist/components/ic-horizontal-scroll2.js +5 -5
  408. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  409. package/dist/components/ic-input-component-container2.js +11 -16
  410. package/dist/components/ic-input-component-container2.js.map +1 -1
  411. package/dist/components/ic-input-label2.js +10 -12
  412. package/dist/components/ic-input-label2.js.map +1 -1
  413. package/dist/components/ic-input-validation2.js +4 -4
  414. package/dist/components/ic-input-validation2.js.map +1 -1
  415. package/dist/components/ic-link2.js +6 -8
  416. package/dist/components/ic-link2.js.map +1 -1
  417. package/dist/components/ic-loading-indicator2.js +9 -9
  418. package/dist/components/ic-loading-indicator2.js.map +1 -1
  419. package/dist/components/ic-menu-group.js +1 -1
  420. package/dist/components/ic-menu-item2.js +3 -3
  421. package/dist/components/ic-menu-item2.js.map +1 -1
  422. package/dist/components/ic-menu2.js +7 -10
  423. package/dist/components/ic-menu2.js.map +1 -1
  424. package/dist/components/ic-navigation-button.js +1 -1
  425. package/dist/components/ic-navigation-group.js +9 -9
  426. package/dist/components/ic-navigation-group.js.map +1 -1
  427. package/dist/components/ic-navigation-item.js +5 -5
  428. package/dist/components/ic-navigation-item.js.map +1 -1
  429. package/dist/components/ic-navigation-menu2.js +2 -2
  430. package/dist/components/ic-navigation-menu2.js.map +1 -1
  431. package/dist/components/ic-page-header.js +7 -9
  432. package/dist/components/ic-page-header.js.map +1 -1
  433. package/dist/components/ic-pagination-item2.js +1 -1
  434. package/dist/components/ic-pagination.js +38 -36
  435. package/dist/components/ic-pagination.js.map +1 -1
  436. package/dist/components/ic-popover-menu.js +3 -3
  437. package/dist/components/ic-popover-menu.js.map +1 -1
  438. package/dist/components/ic-radio-group.js +41 -26
  439. package/dist/components/ic-radio-group.js.map +1 -1
  440. package/dist/components/ic-radio-option.js +6 -25
  441. package/dist/components/ic-radio-option.js.map +1 -1
  442. package/dist/components/ic-search-bar.js +20 -27
  443. package/dist/components/ic-search-bar.js.map +1 -1
  444. package/dist/components/ic-select.js +14 -29
  445. package/dist/components/ic-select.js.map +1 -1
  446. package/dist/components/ic-side-navigation.js +7 -7
  447. package/dist/components/ic-side-navigation.js.map +1 -1
  448. package/dist/components/ic-skeleton.js +4 -6
  449. package/dist/components/ic-skeleton.js.map +1 -1
  450. package/dist/components/ic-status-tag.js +1 -12
  451. package/dist/components/ic-status-tag.js.map +1 -1
  452. package/dist/components/ic-step.js +46 -49
  453. package/dist/components/ic-step.js.map +1 -1
  454. package/dist/components/ic-stepper.js +16 -16
  455. package/dist/components/ic-stepper.js.map +1 -1
  456. package/dist/components/ic-switch.js +5 -7
  457. package/dist/components/ic-switch.js.map +1 -1
  458. package/dist/components/ic-tab-context.js +0 -11
  459. package/dist/components/ic-tab-context.js.map +1 -1
  460. package/dist/components/ic-tab-group.js +3 -5
  461. package/dist/components/ic-tab-group.js.map +1 -1
  462. package/dist/components/ic-tab-panel.js +1 -9
  463. package/dist/components/ic-tab-panel.js.map +1 -1
  464. package/dist/components/ic-tab.js +3 -3
  465. package/dist/components/ic-tab.js.map +1 -1
  466. package/dist/components/ic-text-field2.js +51 -53
  467. package/dist/components/ic-text-field2.js.map +1 -1
  468. package/dist/components/ic-theme.js +1 -1
  469. package/dist/components/ic-toast-region.js +1 -9
  470. package/dist/components/ic-toast-region.js.map +1 -1
  471. package/dist/components/ic-toast.js +86 -36
  472. package/dist/components/ic-toast.js.map +1 -1
  473. package/dist/components/ic-toggle-button-group.js +16 -16
  474. package/dist/components/ic-toggle-button-group.js.map +1 -1
  475. package/dist/components/ic-toggle-button.js +13 -13
  476. package/dist/components/ic-toggle-button.js.map +1 -1
  477. package/dist/components/ic-tooltip2.js +12 -5
  478. package/dist/components/ic-tooltip2.js.map +1 -1
  479. package/dist/components/ic-top-navigation.js +4 -4
  480. package/dist/components/ic-top-navigation.js.map +1 -1
  481. package/dist/components/ic-typography2.js +57 -19
  482. package/dist/components/ic-typography2.js.map +1 -1
  483. package/dist/components/types.js.map +1 -1
  484. package/dist/core/core.css +1 -1
  485. package/dist/core/core.esm.js +1 -1
  486. package/dist/core/core.esm.js.map +1 -1
  487. package/dist/core/{p-014342a2.entry.js → p-05d32a4f.entry.js} +2 -2
  488. package/dist/core/{p-1d9fceb1.entry.js → p-086a6d4f.entry.js} +2 -2
  489. package/dist/core/p-0a00a786.entry.js +2 -0
  490. package/dist/core/p-0a00a786.entry.js.map +1 -0
  491. package/dist/core/p-145fcef3.entry.js +2 -0
  492. package/dist/core/p-145fcef3.entry.js.map +1 -0
  493. package/dist/core/{p-eb1d00a7.entry.js → p-15367990.entry.js} +2 -2
  494. package/dist/core/p-15367990.entry.js.map +1 -0
  495. package/dist/core/p-1737bf2c.entry.js +2 -0
  496. package/dist/core/p-1737bf2c.entry.js.map +1 -0
  497. package/dist/core/p-1ace2b02.entry.js +2 -0
  498. package/dist/core/p-1ace2b02.entry.js.map +1 -0
  499. package/dist/core/p-1e371012.entry.js +2 -0
  500. package/dist/core/p-1e371012.entry.js.map +1 -0
  501. package/dist/core/p-1f227289.entry.js +2 -0
  502. package/dist/core/p-1f227289.entry.js.map +1 -0
  503. package/dist/core/p-24275b92.entry.js +2 -0
  504. package/dist/core/p-24275b92.entry.js.map +1 -0
  505. package/dist/core/p-26b7b18f.js.map +1 -1
  506. package/dist/core/p-29e6c33f.entry.js +2 -0
  507. package/dist/core/p-29e6c33f.entry.js.map +1 -0
  508. package/dist/core/{p-5bba7e31.entry.js → p-2a6f01ad.entry.js} +2 -2
  509. package/dist/core/{p-8ce2dfd4.entry.js → p-2f86c53b.entry.js} +2 -2
  510. package/dist/core/p-2f86c53b.entry.js.map +1 -0
  511. package/dist/core/p-319e40c0.entry.js +2 -0
  512. package/dist/core/p-319e40c0.entry.js.map +1 -0
  513. package/dist/core/p-346c6920.entry.js +2 -0
  514. package/dist/core/p-346c6920.entry.js.map +1 -0
  515. package/dist/core/p-4b1445b3.entry.js +2 -0
  516. package/dist/core/p-4b1445b3.entry.js.map +1 -0
  517. package/dist/core/p-4b621c67.entry.js +2 -0
  518. package/dist/core/p-4b621c67.entry.js.map +1 -0
  519. package/dist/core/p-4ca2b177.entry.js +2 -0
  520. package/dist/core/p-4ca2b177.entry.js.map +1 -0
  521. package/dist/core/{p-3eda4e14.entry.js → p-54238d16.entry.js} +2 -2
  522. package/dist/core/p-54238d16.entry.js.map +1 -0
  523. package/dist/core/{p-c1db024d.entry.js → p-5515ad19.entry.js} +2 -2
  524. package/dist/core/p-5515ad19.entry.js.map +1 -0
  525. package/dist/core/p-5c8081d6.entry.js +2 -0
  526. package/dist/core/p-5c8081d6.entry.js.map +1 -0
  527. package/dist/core/{p-a8aea311.entry.js → p-5f941f3a.entry.js} +2 -2
  528. package/dist/core/{p-a8aea311.entry.js.map → p-5f941f3a.entry.js.map} +1 -1
  529. package/dist/core/p-5fd293b3.entry.js +2 -0
  530. package/dist/core/p-5fd293b3.entry.js.map +1 -0
  531. package/dist/core/p-60721d95.entry.js +2 -0
  532. package/dist/core/p-60721d95.entry.js.map +1 -0
  533. package/dist/core/{p-d69f353b.entry.js → p-64a5a1d8.entry.js} +2 -2
  534. package/dist/core/p-64a5a1d8.entry.js.map +1 -0
  535. package/dist/core/p-65e36461.entry.js +2 -0
  536. package/dist/core/p-65e36461.entry.js.map +1 -0
  537. package/dist/core/{p-a9a2987c.entry.js → p-66363c7d.entry.js} +2 -2
  538. package/dist/core/p-66363c7d.entry.js.map +1 -0
  539. package/dist/core/p-69728d76.entry.js +2 -0
  540. package/dist/core/p-69728d76.entry.js.map +1 -0
  541. package/dist/core/p-6b328c76.entry.js +2 -0
  542. package/dist/core/p-6b328c76.entry.js.map +1 -0
  543. package/dist/core/p-6b5ddacd.entry.js +2 -0
  544. package/dist/core/p-6b5ddacd.entry.js.map +1 -0
  545. package/dist/core/{p-92b9b56a.entry.js → p-7b3d6577.entry.js} +2 -2
  546. package/dist/core/p-7b3d6577.entry.js.map +1 -0
  547. package/dist/core/p-7d45828d.entry.js +2 -0
  548. package/dist/core/p-7d45828d.entry.js.map +1 -0
  549. package/dist/core/p-893eca54.entry.js +2 -0
  550. package/dist/core/p-893eca54.entry.js.map +1 -0
  551. package/dist/core/p-8ee262a4.entry.js +2 -0
  552. package/dist/core/p-8ee262a4.entry.js.map +1 -0
  553. package/dist/core/p-8f93d92b.entry.js +2 -0
  554. package/dist/core/p-8f93d92b.entry.js.map +1 -0
  555. package/dist/core/p-90bb13d2.entry.js +2 -0
  556. package/dist/core/p-90bb13d2.entry.js.map +1 -0
  557. package/dist/core/p-9189a82d.entry.js +2 -0
  558. package/dist/core/p-9189a82d.entry.js.map +1 -0
  559. package/dist/core/p-9190a84d.entry.js +2 -0
  560. package/dist/core/p-9190a84d.entry.js.map +1 -0
  561. package/dist/core/{p-08781606.entry.js → p-93f50a1a.entry.js} +2 -2
  562. package/dist/core/p-93f50a1a.entry.js.map +1 -0
  563. package/dist/core/p-9474baf3.entry.js +2 -0
  564. package/dist/core/p-9474baf3.entry.js.map +1 -0
  565. package/dist/core/{p-967d5546.entry.js → p-9857f6b0.entry.js} +2 -2
  566. package/dist/core/{p-7438ab1f.entry.js → p-a0e4d6bd.entry.js} +2 -2
  567. package/dist/core/p-a0e4d6bd.entry.js.map +1 -0
  568. package/dist/core/p-a1b9a808.entry.js +2 -0
  569. package/dist/core/p-a1b9a808.entry.js.map +1 -0
  570. package/dist/core/p-a79bec03.entry.js +2 -0
  571. package/dist/core/p-a79bec03.entry.js.map +1 -0
  572. package/dist/core/p-a84a4675.entry.js +2 -0
  573. package/dist/core/p-a84a4675.entry.js.map +1 -0
  574. package/dist/core/p-a928c7b3.entry.js +2 -0
  575. package/dist/core/p-a928c7b3.entry.js.map +1 -0
  576. package/dist/core/{p-6fae7e1f.entry.js → p-bf89c86d.entry.js} +2 -2
  577. package/dist/core/p-bf89c86d.entry.js.map +1 -0
  578. package/dist/core/{p-36cd5d32.js → p-d0524c73.js} +2 -2
  579. package/dist/core/p-d0524c73.js.map +1 -0
  580. package/dist/core/p-d24410ca.entry.js +2 -0
  581. package/dist/core/p-d24410ca.entry.js.map +1 -0
  582. package/dist/core/p-d52ca420.entry.js +2 -0
  583. package/dist/core/p-d52ca420.entry.js.map +1 -0
  584. package/dist/core/p-d67a30ca.entry.js +2 -0
  585. package/dist/core/p-d67a30ca.entry.js.map +1 -0
  586. package/dist/core/{p-1ef00a47.entry.js → p-de27c59e.entry.js} +2 -2
  587. package/dist/core/p-de27c59e.entry.js.map +1 -0
  588. package/dist/core/p-dec339ba.entry.js +2 -0
  589. package/dist/core/p-dec339ba.entry.js.map +1 -0
  590. package/dist/core/p-e4335135.entry.js +2 -0
  591. package/dist/core/p-e4335135.entry.js.map +1 -0
  592. package/dist/core/p-e56a2a06.entry.js +2 -0
  593. package/dist/core/p-e56a2a06.entry.js.map +1 -0
  594. package/dist/core/p-e696dc2a.entry.js +2 -0
  595. package/dist/core/p-e696dc2a.entry.js.map +1 -0
  596. package/dist/core/{p-f13195ab.entry.js → p-f0501be1.entry.js} +2 -2
  597. package/dist/core/p-f0501be1.entry.js.map +1 -0
  598. package/dist/core/{p-3b41756e.entry.js → p-f50462df.entry.js} +2 -2
  599. package/dist/core/p-feb80f37.entry.js +2 -0
  600. package/dist/core/p-feb80f37.entry.js.map +1 -0
  601. package/dist/esm/core.js +1 -1
  602. package/dist/esm/{helpers-354dbb8d.js → helpers-35ac5e03.js} +3 -2
  603. package/dist/esm/helpers-35ac5e03.js.map +1 -0
  604. package/dist/esm/ic-accordion-group.entry.js +8 -8
  605. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  606. package/dist/esm/ic-accordion.entry.js +4 -4
  607. package/dist/esm/ic-accordion.entry.js.map +1 -1
  608. package/dist/esm/ic-alert.entry.js +1 -3
  609. package/dist/esm/ic-alert.entry.js.map +1 -1
  610. package/dist/esm/ic-back-to-top.entry.js +12 -15
  611. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  612. package/dist/esm/ic-badge.entry.js +15 -27
  613. package/dist/esm/ic-badge.entry.js.map +1 -1
  614. package/dist/esm/ic-breadcrumb-group.entry.js +4 -4
  615. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  616. package/dist/esm/ic-breadcrumb.entry.js +3 -3
  617. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  618. package/dist/esm/ic-button_3.entry.js +27 -22
  619. package/dist/esm/ic-button_3.entry.js.map +1 -1
  620. package/dist/esm/{ic-card.entry.js → ic-card-vertical.entry.js} +6 -6
  621. package/dist/esm/ic-card-vertical.entry.js.map +1 -0
  622. package/dist/esm/ic-checkbox-group.entry.js +6 -5
  623. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  624. package/dist/esm/ic-checkbox.entry.js +6 -15
  625. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  626. package/dist/esm/ic-chip.entry.js +9 -10
  627. package/dist/esm/ic-chip.entry.js.map +1 -1
  628. package/dist/esm/ic-classification-banner.entry.js +2 -2
  629. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  630. package/dist/esm/ic-data-list.entry.js +24 -0
  631. package/dist/esm/ic-data-list.entry.js.map +1 -0
  632. package/dist/esm/ic-data-row.entry.js +9 -10
  633. package/dist/esm/ic-data-row.entry.js.map +1 -1
  634. package/dist/esm/ic-dialog.entry.js +12 -97
  635. package/dist/esm/ic-dialog.entry.js.map +1 -1
  636. package/dist/esm/ic-divider.entry.js +1 -1
  637. package/dist/esm/ic-empty-state.entry.js +6 -6
  638. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  639. package/dist/esm/ic-footer-link-group.entry.js +9 -9
  640. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  641. package/dist/esm/ic-footer-link.entry.js +6 -7
  642. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  643. package/dist/esm/ic-footer.entry.js +8 -8
  644. package/dist/esm/ic-footer.entry.js.map +1 -1
  645. package/dist/esm/ic-hero.entry.js +8 -9
  646. package/dist/esm/ic-hero.entry.js.map +1 -1
  647. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  648. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  649. package/dist/esm/ic-input-component-container_3.entry.js +18 -23
  650. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  651. package/dist/esm/ic-input-label_2.entry.js +11 -12
  652. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  653. package/dist/esm/ic-link.entry.js +6 -7
  654. package/dist/esm/ic-link.entry.js.map +1 -1
  655. package/dist/esm/ic-menu-group.entry.js +1 -1
  656. package/dist/esm/ic-menu-item.entry.js +3 -3
  657. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  658. package/dist/esm/ic-navigation-button.entry.js +1 -1
  659. package/dist/esm/ic-navigation-group.entry.js +9 -9
  660. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  661. package/dist/esm/ic-navigation-item.entry.js +5 -5
  662. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  663. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  664. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  665. package/dist/esm/ic-page-header.entry.js +7 -8
  666. package/dist/esm/ic-page-header.entry.js.map +1 -1
  667. package/dist/esm/ic-pagination-item.entry.js +1 -1
  668. package/dist/esm/ic-pagination.entry.js +35 -33
  669. package/dist/esm/ic-pagination.entry.js.map +1 -1
  670. package/dist/esm/ic-popover-menu.entry.js +3 -3
  671. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  672. package/dist/esm/ic-radio-group.entry.js +40 -25
  673. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  674. package/dist/esm/ic-radio-option.entry.js +5 -18
  675. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  676. package/dist/esm/ic-search-bar.entry.js +18 -24
  677. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  678. package/dist/esm/ic-select.entry.js +13 -21
  679. package/dist/esm/ic-select.entry.js.map +1 -1
  680. package/dist/esm/ic-side-navigation.entry.js +7 -7
  681. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  682. package/dist/esm/ic-skeleton.entry.js +4 -5
  683. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  684. package/dist/esm/ic-status-tag.entry.js +2 -11
  685. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  686. package/dist/esm/ic-step.entry.js +40 -43
  687. package/dist/esm/ic-step.entry.js.map +1 -1
  688. package/dist/esm/ic-stepper.entry.js +16 -16
  689. package/dist/esm/ic-stepper.entry.js.map +1 -1
  690. package/dist/esm/ic-switch.entry.js +5 -6
  691. package/dist/esm/ic-switch.entry.js.map +1 -1
  692. package/dist/esm/ic-tab-context.entry.js +0 -11
  693. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  694. package/dist/esm/ic-tab-group.entry.js +4 -5
  695. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  696. package/dist/esm/ic-tab-panel.entry.js +1 -8
  697. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  698. package/dist/esm/ic-tab.entry.js +4 -4
  699. package/dist/esm/ic-tab.entry.js.map +1 -1
  700. package/dist/esm/ic-text-field.entry.js +49 -49
  701. package/dist/esm/ic-text-field.entry.js.map +1 -1
  702. package/dist/esm/ic-theme.entry.js +1 -1
  703. package/dist/esm/ic-toast-region.entry.js +0 -7
  704. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  705. package/dist/esm/ic-toast.entry.js +83 -35
  706. package/dist/esm/ic-toast.entry.js.map +1 -1
  707. package/dist/esm/ic-toggle-button-group.entry.js +16 -16
  708. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  709. package/dist/esm/ic-toggle-button.entry.js +13 -13
  710. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  711. package/dist/esm/ic-top-navigation.entry.js +4 -4
  712. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  713. package/dist/esm/ic-typography.entry.js +52 -17
  714. package/dist/esm/ic-typography.entry.js.map +1 -1
  715. package/dist/esm/index-d1d2c456.js +12 -12
  716. package/dist/esm/loader.js +1 -1
  717. package/dist/esm/types-6f6b41a5.js.map +1 -1
  718. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +2 -2
  719. package/dist/types/components/ic-alert/ic-alert.d.ts +0 -4
  720. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +0 -1
  721. package/dist/types/components/ic-badge/ic-badge.d.ts +3 -11
  722. package/dist/types/components/ic-button/ic-button.d.ts +0 -1
  723. package/dist/types/components/{ic-card/ic-card.d.ts → ic-card-vertical/ic-card-vertical.d.ts} +2 -2
  724. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +0 -28
  725. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +0 -4
  726. package/dist/types/components/ic-chip/ic-chip.d.ts +2 -9
  727. package/dist/types/components/ic-data-list/ic-data-list.d.ts +16 -0
  728. package/dist/types/components/ic-data-row/ic-data-row.d.ts +1 -5
  729. package/dist/types/components/ic-dialog/ic-dialog.d.ts +1 -37
  730. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +1 -1
  731. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +1 -1
  732. package/dist/types/components/ic-hero/ic-hero.d.ts +2 -6
  733. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +0 -8
  734. package/dist/types/components/ic-input-label/ic-input-label.d.ts +4 -8
  735. package/dist/types/components/ic-link/ic-link.d.ts +0 -4
  736. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +1 -1
  737. package/dist/types/components/ic-menu/ic-menu.d.ts +0 -4
  738. package/dist/types/components/ic-page-header/ic-page-header.d.ts +0 -4
  739. package/dist/types/components/ic-pagination/ic-pagination.d.ts +4 -4
  740. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +4 -4
  741. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +0 -24
  742. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +3 -15
  743. package/dist/types/components/ic-select/ic-select.d.ts +1 -31
  744. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -1
  745. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +0 -4
  746. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +1 -10
  747. package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +0 -1
  748. package/dist/types/components/ic-step/ic-step.d.ts +6 -6
  749. package/dist/types/components/ic-stepper/test/basic/ic-stepper-test-examples.d.ts +4 -4
  750. package/dist/types/components/ic-switch/ic-switch.d.ts +0 -4
  751. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +0 -4
  752. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -5
  753. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +0 -6
  754. package/dist/types/components/ic-text-field/ic-text-field.d.ts +7 -12
  755. package/dist/types/components/ic-toast/ic-toast.d.ts +8 -1
  756. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +0 -5
  757. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +1 -1
  758. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.types.d.ts +1 -1
  759. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +7 -0
  760. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +1 -1
  761. package/dist/types/components/ic-typography/ic-typography.d.ts +23 -1
  762. package/dist/types/components.d.ts +144 -508
  763. package/dist/types/utils/helpers.d.ts +1 -0
  764. package/dist/types/utils/types.d.ts +1 -1
  765. package/hydrate/index.js +642 -768
  766. package/package.json +2 -2
  767. package/vscode-data.json +52 -245
  768. package/dist/cjs/helpers-4af10d35.js.map +0 -1
  769. package/dist/cjs/ic-card.cjs.entry.js.map +0 -1
  770. package/dist/cjs/ic-data-entity.cjs.entry.js +0 -29
  771. package/dist/cjs/ic-data-entity.cjs.entry.js.map +0 -1
  772. package/dist/collection/components/ic-card/ic-card.js.map +0 -1
  773. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js.map +0 -1
  774. package/dist/collection/components/ic-chip/ic-chip.types.js +0 -2
  775. package/dist/collection/components/ic-chip/ic-chip.types.js.map +0 -1
  776. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +0 -1
  777. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +0 -1
  778. package/dist/components/ic-alert2.js +0 -133
  779. package/dist/components/ic-alert2.js.map +0 -1
  780. package/dist/components/ic-card.js.map +0 -1
  781. package/dist/components/ic-data-entity.js +0 -53
  782. package/dist/components/ic-data-entity.js.map +0 -1
  783. package/dist/core/p-03434b02.entry.js +0 -2
  784. package/dist/core/p-03434b02.entry.js.map +0 -1
  785. package/dist/core/p-038a2ea1.entry.js +0 -2
  786. package/dist/core/p-038a2ea1.entry.js.map +0 -1
  787. package/dist/core/p-08781606.entry.js.map +0 -1
  788. package/dist/core/p-0a2cdf34.entry.js +0 -2
  789. package/dist/core/p-0a2cdf34.entry.js.map +0 -1
  790. package/dist/core/p-1145e33c.entry.js +0 -2
  791. package/dist/core/p-1145e33c.entry.js.map +0 -1
  792. package/dist/core/p-13f2c9dc.entry.js +0 -2
  793. package/dist/core/p-13f2c9dc.entry.js.map +0 -1
  794. package/dist/core/p-14c47aed.entry.js +0 -2
  795. package/dist/core/p-14c47aed.entry.js.map +0 -1
  796. package/dist/core/p-15138df1.entry.js +0 -2
  797. package/dist/core/p-15138df1.entry.js.map +0 -1
  798. package/dist/core/p-191d2571.entry.js +0 -2
  799. package/dist/core/p-191d2571.entry.js.map +0 -1
  800. package/dist/core/p-1e33ac04.entry.js +0 -2
  801. package/dist/core/p-1e33ac04.entry.js.map +0 -1
  802. package/dist/core/p-1eb6fc19.entry.js +0 -2
  803. package/dist/core/p-1eb6fc19.entry.js.map +0 -1
  804. package/dist/core/p-1ef00a47.entry.js.map +0 -1
  805. package/dist/core/p-1f4698e7.entry.js +0 -2
  806. package/dist/core/p-1f4698e7.entry.js.map +0 -1
  807. package/dist/core/p-24e6c926.entry.js +0 -2
  808. package/dist/core/p-24e6c926.entry.js.map +0 -1
  809. package/dist/core/p-261debaf.entry.js +0 -2
  810. package/dist/core/p-261debaf.entry.js.map +0 -1
  811. package/dist/core/p-277c3199.entry.js +0 -2
  812. package/dist/core/p-277c3199.entry.js.map +0 -1
  813. package/dist/core/p-2bc8a51d.entry.js +0 -2
  814. package/dist/core/p-2bc8a51d.entry.js.map +0 -1
  815. package/dist/core/p-36cd5d32.js.map +0 -1
  816. package/dist/core/p-37d152b9.entry.js +0 -2
  817. package/dist/core/p-37d152b9.entry.js.map +0 -1
  818. package/dist/core/p-3eda4e14.entry.js.map +0 -1
  819. package/dist/core/p-41b93fc2.entry.js +0 -2
  820. package/dist/core/p-41b93fc2.entry.js.map +0 -1
  821. package/dist/core/p-4a64ec92.entry.js +0 -2
  822. package/dist/core/p-4a64ec92.entry.js.map +0 -1
  823. package/dist/core/p-4a9eecd7.entry.js +0 -2
  824. package/dist/core/p-4a9eecd7.entry.js.map +0 -1
  825. package/dist/core/p-4ad38ad7.entry.js +0 -2
  826. package/dist/core/p-4ad38ad7.entry.js.map +0 -1
  827. package/dist/core/p-4ecf210f.entry.js +0 -2
  828. package/dist/core/p-4ecf210f.entry.js.map +0 -1
  829. package/dist/core/p-5128fc04.entry.js +0 -2
  830. package/dist/core/p-5128fc04.entry.js.map +0 -1
  831. package/dist/core/p-59732bc5.entry.js +0 -2
  832. package/dist/core/p-59732bc5.entry.js.map +0 -1
  833. package/dist/core/p-6a4a0752.entry.js +0 -2
  834. package/dist/core/p-6a4a0752.entry.js.map +0 -1
  835. package/dist/core/p-6e36ff34.entry.js +0 -2
  836. package/dist/core/p-6e36ff34.entry.js.map +0 -1
  837. package/dist/core/p-6fae7e1f.entry.js.map +0 -1
  838. package/dist/core/p-70a7cfa5.entry.js +0 -2
  839. package/dist/core/p-70a7cfa5.entry.js.map +0 -1
  840. package/dist/core/p-7438ab1f.entry.js.map +0 -1
  841. package/dist/core/p-7e5936a3.entry.js +0 -2
  842. package/dist/core/p-7e5936a3.entry.js.map +0 -1
  843. package/dist/core/p-80b87940.entry.js +0 -2
  844. package/dist/core/p-80b87940.entry.js.map +0 -1
  845. package/dist/core/p-85f6a2ef.entry.js +0 -2
  846. package/dist/core/p-85f6a2ef.entry.js.map +0 -1
  847. package/dist/core/p-8ce2dfd4.entry.js.map +0 -1
  848. package/dist/core/p-92b9b56a.entry.js.map +0 -1
  849. package/dist/core/p-98708868.entry.js +0 -2
  850. package/dist/core/p-98708868.entry.js.map +0 -1
  851. package/dist/core/p-a332f7d8.entry.js +0 -2
  852. package/dist/core/p-a332f7d8.entry.js.map +0 -1
  853. package/dist/core/p-a646c117.entry.js +0 -2
  854. package/dist/core/p-a646c117.entry.js.map +0 -1
  855. package/dist/core/p-a9a2987c.entry.js.map +0 -1
  856. package/dist/core/p-b47021d8.entry.js +0 -2
  857. package/dist/core/p-b47021d8.entry.js.map +0 -1
  858. package/dist/core/p-bb2f2048.entry.js +0 -2
  859. package/dist/core/p-bb2f2048.entry.js.map +0 -1
  860. package/dist/core/p-c1db024d.entry.js.map +0 -1
  861. package/dist/core/p-cf3a721c.entry.js +0 -2
  862. package/dist/core/p-cf3a721c.entry.js.map +0 -1
  863. package/dist/core/p-d19d50b6.entry.js +0 -2
  864. package/dist/core/p-d19d50b6.entry.js.map +0 -1
  865. package/dist/core/p-d69f353b.entry.js.map +0 -1
  866. package/dist/core/p-e735d773.entry.js +0 -2
  867. package/dist/core/p-e735d773.entry.js.map +0 -1
  868. package/dist/core/p-e928928a.entry.js +0 -2
  869. package/dist/core/p-e928928a.entry.js.map +0 -1
  870. package/dist/core/p-ea61b524.entry.js +0 -2
  871. package/dist/core/p-ea61b524.entry.js.map +0 -1
  872. package/dist/core/p-eb1d00a7.entry.js.map +0 -1
  873. package/dist/core/p-f13195ab.entry.js.map +0 -1
  874. package/dist/core/p-f861a72a.entry.js +0 -2
  875. package/dist/core/p-f861a72a.entry.js.map +0 -1
  876. package/dist/esm/helpers-354dbb8d.js.map +0 -1
  877. package/dist/esm/ic-card.entry.js.map +0 -1
  878. package/dist/esm/ic-data-entity.entry.js +0 -25
  879. package/dist/esm/ic-data-entity.entry.js.map +0 -1
  880. package/dist/types/components/ic-chip/ic-chip.types.d.ts +0 -1
  881. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +0 -20
  882. /package/dist/collection/components/{ic-card/ic-card.css → ic-card-vertical/ic-card-vertical.css} +0 -0
  883. /package/dist/core/{p-014342a2.entry.js.map → p-05d32a4f.entry.js.map} +0 -0
  884. /package/dist/core/{p-1d9fceb1.entry.js.map → p-086a6d4f.entry.js.map} +0 -0
  885. /package/dist/core/{p-5bba7e31.entry.js.map → p-2a6f01ad.entry.js.map} +0 -0
  886. /package/dist/core/{p-967d5546.entry.js.map → p-9857f6b0.entry.js.map} +0 -0
  887. /package/dist/core/{p-3b41756e.entry.js.map → p-f50462df.entry.js.map} +0 -0
@@ -11,22 +11,18 @@ export class TextField {
11
11
  constructor() {
12
12
  this.inheritedAttributes = {};
13
13
  this.hostMutationObserver = null;
14
- this.getMaxLengthExceeded = (value) => {
15
- this.numChars = value.length;
14
+ this.getMaxValueExceeded = (value) => {
16
15
  if (this.type === "number") {
17
16
  this.minValueUnattained = value && Number(value) < Number(this.min);
18
17
  this.maxValueExceeded = Number(value) > Number(this.max);
19
18
  }
20
- if (this.maxLength > 0) {
21
- this.maxLengthExceeded = this.numChars > this.maxLength;
22
- }
23
19
  };
24
20
  this.getMaxCharactersReached = (value) => {
25
21
  this.numChars = value.length;
26
22
  this.maxCharactersReached =
27
23
  this.maxCharacters > 0 ? this.numChars >= this.maxCharacters : false;
28
- if (this.maxCharactersError && !this.maxCharactersReached) {
29
- this.maxCharactersError = false;
24
+ if (this.maxCharactersWarning && !this.maxCharactersReached) {
25
+ this.maxCharactersWarning = false;
30
26
  }
31
27
  };
32
28
  this.onInput = (ev) => {
@@ -66,9 +62,8 @@ export class TextField {
66
62
  };
67
63
  this.numChars = 0;
68
64
  this.maxCharactersReached = false;
69
- this.maxCharactersError = false;
65
+ this.maxCharactersWarning = false;
70
66
  this.minCharactersUnattained = false;
71
- this.maxLengthExceeded = false;
72
67
  this.maxValueExceeded = false;
73
68
  this.minValueUnattained = false;
74
69
  this.ariaActiveDescendant = undefined;
@@ -82,6 +77,7 @@ export class TextField {
82
77
  this.disabled = false;
83
78
  this.fullWidth = false;
84
79
  this.helperText = "";
80
+ this.hideCharCount = false;
85
81
  this.hideLabel = false;
86
82
  this.hiddenInput = true;
87
83
  this.inputId = `ic-text-field-input-${inputIds++}`;
@@ -89,7 +85,6 @@ export class TextField {
89
85
  this.label = undefined;
90
86
  this.max = undefined;
91
87
  this.maxCharacters = 0;
92
- this.maxLength = 0;
93
88
  this.min = undefined;
94
89
  this.minCharacters = 0;
95
90
  this.name = this.inputId;
@@ -100,7 +95,6 @@ export class TextField {
100
95
  this.role = undefined;
101
96
  this.rows = 1;
102
97
  this.size = "default";
103
- this.small = false;
104
98
  this.spellcheck = false;
105
99
  this.truncateValue = undefined;
106
100
  this.type = "text";
@@ -116,12 +110,20 @@ export class TextField {
116
110
  this.icChange = debounceEvent(this.icChange, this.debounce);
117
111
  }
118
112
  watchValueHandler(newValue) {
119
- if (this.inputEl && this.inputEl.value !== newValue) {
120
- this.inputEl.value = newValue;
113
+ let value;
114
+ if (this.maxCharacters > 0) {
115
+ value = newValue.substring(0, this.maxCharacters);
116
+ this.value = value;
117
+ }
118
+ else {
119
+ value = newValue;
120
+ }
121
+ if (this.inputEl && this.inputEl.value !== value) {
122
+ this.inputEl.value = value;
121
123
  }
122
- this.getMaxLengthExceeded(newValue);
123
- this.getMaxCharactersReached(newValue);
124
- this.icChange.emit({ value: newValue });
124
+ this.getMaxValueExceeded(value);
125
+ this.getMaxCharactersReached(value);
126
+ this.icChange.emit({ value });
125
127
  }
126
128
  connectedCallback() {
127
129
  this.debounceChanged();
@@ -135,11 +137,13 @@ export class TextField {
135
137
  if (this.value !== this.initialValue) {
136
138
  this.watchValueHandler(this.value);
137
139
  }
138
- this.getMaxLengthExceeded(this.value);
140
+ else if (this.maxCharacters > 0) {
141
+ this.value = this.value.substring(0, this.maxCharacters);
142
+ }
143
+ this.getMaxValueExceeded(this.value);
139
144
  this.getMaxCharactersReached(this.value);
140
145
  this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);
141
146
  if (this.readonly) {
142
- this.maxLengthExceeded = false;
143
147
  this.maxValueExceeded = false;
144
148
  this.minValueUnattained = false;
145
149
  }
@@ -159,7 +163,7 @@ export class TextField {
159
163
  }
160
164
  handleKeyDown(ev) {
161
165
  this.icKeydown.emit({ event: ev });
162
- this.maxCharactersError = this.maxCharactersReached;
166
+ this.maxCharactersWarning = this.maxCharactersReached;
163
167
  }
164
168
  /**
165
169
  * Sets focus on the native `input`.
@@ -169,41 +173,39 @@ export class TextField {
169
173
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
170
174
  }
171
175
  render() {
172
- const { inputId, name, label, required, size, small, placeholder, helperText, rows, resize, disabled, value, min, max, maxLength, numChars, readonly, maxLengthExceeded, maxCharacters, maxCharactersError, maxCharactersReached, minCharacters, minCharactersUnattained, minValueUnattained, maxValueExceeded, validationStatus, validationText, validationInline, validationInlineInternal, spellcheck, inputmode, fullWidth, truncateValue, hiddenInput, } = this;
176
+ const { inputId, name, label, required, size, placeholder, helperText, hideCharCount, rows, resize, disabled, value, min, max, numChars, readonly, maxCharacters, maxCharactersWarning, maxCharactersReached, minCharacters, minCharactersUnattained, minValueUnattained, maxValueExceeded, validationStatus, validationText, validationInline, validationInlineInternal, spellcheck, inputmode, fullWidth, truncateValue, hiddenInput, } = this;
173
177
  const disabledMode = readonly ? true : disabled;
174
- const currentStatus = maxLengthExceeded ||
175
- maxValueExceeded ||
178
+ const currentStatus = maxValueExceeded ||
176
179
  minValueUnattained ||
177
180
  minCharactersUnattained ||
178
- maxCharactersError
179
- ? maxCharactersError
181
+ maxCharactersWarning
182
+ ? maxCharactersWarning
180
183
  ? IcInformationStatus.Warning
181
184
  : IcInformationStatus.Error
182
185
  : validationStatus;
183
- const currentValidationText = maxLengthExceeded
184
- ? "Maximum length exceeded"
185
- : maxCharactersError
186
- ? `Maximum input is ${maxCharacters} characters`
187
- : maxValueExceeded
188
- ? `Maximum value of ${max} exceeded`
189
- : minValueUnattained
190
- ? `Minimum value of ${min} not met`
191
- : minCharactersUnattained
192
- ? `Minimum input is ${minCharacters} characters`
193
- : validationText;
194
- const maxNumChars = readonly ? 0 : maxLength;
195
- const messageAriaLive = maxLengthExceeded ||
196
- maxCharactersError ||
186
+ const currentValidationText = maxCharactersWarning
187
+ ? `Maximum input is ${maxCharacters} characters`
188
+ : maxValueExceeded
189
+ ? `Maximum value of ${max} exceeded`
190
+ : minValueUnattained
191
+ ? `Minimum value of ${min} not met`
192
+ : minCharactersUnattained
193
+ ? `Minimum input is ${minCharacters} characters`
194
+ : validationText;
195
+ const maxNumChars = readonly ? 0 : maxCharacters;
196
+ const messageAriaLive = maxCharactersWarning ||
197
197
  maxValueExceeded ||
198
198
  minValueUnattained ||
199
- (maxLength === 0 && currentStatus === IcInformationStatus.Error)
199
+ currentStatus === IcInformationStatus.Error
200
200
  ? "assertive"
201
201
  : "polite";
202
202
  const showStatusText = this.hasStatus(currentStatus) &&
203
203
  !(currentStatus == IcInformationStatus.Success && validationInline) &&
204
204
  !validationInlineInternal;
205
205
  const multiline = rows > 1;
206
- const hiddenCharCountDescId = maxLength > 0 ? `${inputId}-charcount-desc` : "";
206
+ const charsRemaining = maxNumChars - numChars;
207
+ const hiddenRemainingCharCountDesc = `${charsRemaining} character${charsRemaining === 1 ? "" : "s"} remaining.`;
208
+ const hiddenCharCountDescId = maxCharacters > 0 ? `${inputId}-char-count-desc` : "";
207
209
  const describedBy = `${hiddenCharCountDescId} ${getInputDescribedByText(inputId, helperText !== "", showStatusText)}`.trim();
208
210
  const disabledText = disabledMode && !readonly;
209
211
  const showLeftIcon = !!this.el.querySelector(`[slot="icon"]`) && !disabledText;
@@ -211,7 +213,7 @@ export class TextField {
211
213
  if (hiddenInput) {
212
214
  renderHiddenInput(true, this.el, name, value, disabledMode);
213
215
  }
214
- return (h(Host, { class: { ["fullwidth"]: fullWidth } }, h("ic-input-container", { readonly: readonly, disabled: disabledMode }, !this.hideLabel && (h("ic-input-label", { for: inputId, label: label, helperText: helperText, required: required, disabled: disabledText, readonly: readonly })), h("ic-input-component-container", { size: small ? "small" : size, validationStatus: currentStatus, multiLine: multiline, disabled: disabledMode, readonly: readonly, validationInline: validationInline, fullWidth: fullWidth }, showLeftIcon && (h("span", { class: {
216
+ return (h(Host, { class: { ["ic-text-field-full-width"]: fullWidth } }, h("ic-input-container", { readonly: readonly, disabled: disabledMode }, !this.hideLabel && (h("ic-input-label", { for: inputId, label: label, helperText: helperText, required: required, disabled: disabledText, readonly: readonly })), h("ic-input-component-container", { size: size, validationStatus: currentStatus, multiLine: multiline, disabled: disabledMode, readonly: readonly, validationInline: validationInline, fullWidth: fullWidth }, showLeftIcon && (h("span", { class: {
215
217
  ["readonly"]: readonly,
216
218
  ["has-value"]: value.length > 0,
217
219
  }, slot: "left-icon" }, h("slot", { name: "icon" }))), !multiline ? (h("input", Object.assign({ id: inputId, name: name, ref: (el) => (this.inputEl = el), type: this.type, min: min, max: max, value: value, class: {
@@ -226,7 +228,7 @@ export class TextField {
226
228
  !isEmptyString(validationText) ||
227
229
  maxNumChars > 0 ||
228
230
  maxValueExceeded ||
229
- maxCharactersError ||
231
+ maxCharactersWarning ||
230
232
  minCharactersUnattained ||
231
233
  minValueUnattained) &&
232
234
  !validationInlineInternal && (h("ic-input-validation", { status: this.hasStatus(currentStatus) === false ||
@@ -234,11 +236,9 @@ export class TextField {
234
236
  validationInline) ||
235
237
  validationInlineInternal
236
238
  ? ""
237
- : currentStatus, message: showStatusText ? currentValidationText : "", ariaLiveMode: messageAriaLive, for: inputId, fullWidth: fullWidth }, !readonly && maxNumChars > 0 && (h("div", { slot: "validation-message-adornment" }, h("ic-typography", { variant: "caption", class: {
238
- ["maxlengthtext"]: true,
239
- ["error"]: maxLengthExceeded,
240
- ["disabled"]: disabledText,
241
- } }, h("span", { "aria-live": "polite", id: `${inputId}-charcount`, class: "charcount" }, numChars, "/", maxNumChars), h("span", { hidden: true, id: hiddenCharCountDescId }, "Field can contain a maximum of ", maxNumChars, " characters.")))))))));
239
+ : currentStatus, message: showStatusText ? currentValidationText : "", ariaLiveMode: messageAriaLive, for: inputId, fullWidth: fullWidth }, !readonly && maxNumChars > 0 && (h("div", { slot: "validation-message-adornment" }, !hideCharCount && (h("ic-typography", { variant: "caption", class: {
240
+ ["char-count-text"]: true,
241
+ } }, h("span", { class: "char-count" }, numChars, "/", maxNumChars))), h("span", { class: "remaining-char-count-desc", "aria-live": "polite" }, hiddenRemainingCharCountDesc), h("span", { hidden: true, id: hiddenCharCountDescId }, "Field can contain a maximum of ", maxNumChars, " characters."))))))));
242
242
  }
243
243
  static get is() { return "ic-text-field"; }
244
244
  static get encapsulation() { return "shadow"; }
@@ -479,6 +479,24 @@ export class TextField {
479
479
  "reflect": false,
480
480
  "defaultValue": "\"\""
481
481
  },
482
+ "hideCharCount": {
483
+ "type": "boolean",
484
+ "mutable": false,
485
+ "complexType": {
486
+ "original": "boolean",
487
+ "resolved": "boolean",
488
+ "references": {}
489
+ },
490
+ "required": false,
491
+ "optional": false,
492
+ "docs": {
493
+ "tags": [],
494
+ "text": "If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden."
495
+ },
496
+ "attribute": "hide-char-count",
497
+ "reflect": false,
498
+ "defaultValue": "false"
499
+ },
482
500
  "hideLabel": {
483
501
  "type": "boolean",
484
502
  "mutable": false,
@@ -607,30 +625,12 @@ export class TextField {
607
625
  "optional": false,
608
626
  "docs": {
609
627
  "tags": [],
610
- "text": "The maximum number of characters that can be entered in the field. Will display an error if too many characters are entered."
628
+ "text": "The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)"
611
629
  },
612
630
  "attribute": "max-characters",
613
631
  "reflect": false,
614
632
  "defaultValue": "0"
615
633
  },
616
- "maxLength": {
617
- "type": "number",
618
- "mutable": false,
619
- "complexType": {
620
- "original": "number",
621
- "resolved": "number",
622
- "references": {}
623
- },
624
- "required": false,
625
- "optional": false,
626
- "docs": {
627
- "tags": [],
628
- "text": "The count of characters in the field. Will display a warning if the bound is reached."
629
- },
630
- "attribute": "max-length",
631
- "reflect": false,
632
- "defaultValue": "0"
633
- },
634
634
  "min": {
635
635
  "type": "any",
636
636
  "mutable": false,
@@ -819,27 +819,6 @@ export class TextField {
819
819
  "reflect": false,
820
820
  "defaultValue": "\"default\""
821
821
  },
822
- "small": {
823
- "type": "boolean",
824
- "mutable": false,
825
- "complexType": {
826
- "original": "boolean",
827
- "resolved": "boolean",
828
- "references": {}
829
- },
830
- "required": false,
831
- "optional": true,
832
- "docs": {
833
- "tags": [{
834
- "name": "deprecated",
835
- "text": "This prop should not be used anymore. Set prop `size` to \"small\" instead."
836
- }],
837
- "text": ""
838
- },
839
- "attribute": "small",
840
- "reflect": false,
841
- "defaultValue": "false"
842
- },
843
822
  "spellcheck": {
844
823
  "type": "boolean",
845
824
  "mutable": false,
@@ -1025,9 +1004,8 @@ export class TextField {
1025
1004
  return {
1026
1005
  "numChars": {},
1027
1006
  "maxCharactersReached": {},
1028
- "maxCharactersError": {},
1007
+ "maxCharactersWarning": {},
1029
1008
  "minCharactersUnattained": {},
1030
- "maxLengthExceeded": {},
1031
1009
  "maxValueExceeded": {},
1032
1010
  "minValueUnattained": {},
1033
1011
  "initialValue": {}
@@ -1 +1 @@
1
- {"version":3,"file":"ic-text-field.js","sourceRoot":"","sources":["../../../src/components/ic-text-field/ic-text-field.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersError: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxLengthExceeded: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete: IcAriaAutocompleteTypes = undefined;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autoFocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput: boolean = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId?: string = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max: string | number = undefined;\n\n /**\n * The maximum number of characters that can be entered in the field. Will display an error if too many characters are entered.\n */\n @Prop() maxCharacters: number = 0;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached.\n */\n @Prop() maxLength: number = 0;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min: string | number = undefined;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters: number = 0;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder: string = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize: boolean = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows: number = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean = false;\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue?: boolean;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline: boolean = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal: boolean = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce: number = 0;\n\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n @State() initialValue = this.value;\n\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n if (this.inputEl && this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n\n this.getMaxLengthExceeded(newValue);\n\n this.getMaxCharactersReached(newValue);\n\n this.icChange.emit({ value: newValue });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n }\n\n this.getMaxLengthExceeded(this.value);\n\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n if (this.readonly) {\n this.maxLengthExceeded = false;\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n this.maxCharactersError = this.maxCharactersReached;\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getMaxLengthExceeded = (value: string) => {\n this.numChars = value.length;\n\n if (this.type === \"number\") {\n this.minValueUnattained = value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n\n if (this.maxLength > 0) {\n this.maxLengthExceeded = this.numChars > this.maxLength;\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = value.length;\n this.maxCharactersReached =\n this.maxCharacters > 0 ? this.numChars >= this.maxCharacters : false;\n\n if (this.maxCharactersError && !this.maxCharactersReached) {\n this.maxCharactersError = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 ? this.numChars < this.minCharacters : false;\n this.icBlur.emit({ value: value });\n };\n\n private onFocus = (ev: Event) => {\n this.icFocus.emit({ value: (ev.target as HTMLInputElement).value });\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n small,\n placeholder,\n helperText,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n maxLength,\n numChars,\n readonly,\n maxLengthExceeded,\n maxCharacters,\n maxCharactersError,\n maxCharactersReached,\n minCharacters,\n minCharactersUnattained,\n minValueUnattained,\n maxValueExceeded,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n } = this;\n\n const disabledMode = readonly ? true : disabled;\n\n const currentStatus =\n maxLengthExceeded ||\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersError\n ? maxCharactersError\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxLengthExceeded\n ? \"Maximum length exceeded\"\n : maxCharactersError\n ? `Maximum input is ${maxCharacters} characters`\n : maxValueExceeded\n ? `Maximum value of ${max} exceeded`\n : minValueUnattained\n ? `Minimum value of ${min} not met`\n : minCharactersUnattained\n ? `Minimum input is ${minCharacters} characters`\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxLength;\n const messageAriaLive =\n maxLengthExceeded ||\n maxCharactersError ||\n maxValueExceeded ||\n minValueUnattained ||\n (maxLength === 0 && currentStatus === IcInformationStatus.Error)\n ? \"assertive\"\n : \"polite\";\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n const hiddenCharCountDescId =\n maxLength > 0 ? `${inputId}-charcount-desc` : \"\";\n\n const describedBy = `${hiddenCharCountDescId} ${getInputDescribedByText(\n inputId,\n helperText !== \"\",\n showStatusText\n )}`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n if (hiddenInput) {\n renderHiddenInput(true, this.el, name, value, disabledMode);\n }\n return (\n <Host class={{ [\"fullwidth\"]: fullWidth }}>\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!this.hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n ></ic-input-label>\n )}\n\n <ic-input-component-container\n size={small ? \"small\" : size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n [\"readonly\"]: readonly,\n [\"has-value\"]: value.length > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={this.type}\n min={min}\n max={max}\n value={value}\n class={{\n [\"no-left-pad\"]: !showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n [\"truncate-value\"]: truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-expanded={this.ariaExpanded}\n aria-owns={this.ariaOwns}\n autocomplete={this.autocomplete}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={this.role}\n maxlength={maxCharactersReached ? maxCharacters : null}\n minlength={minCharactersUnattained ? minCharacters : null}\n {...this.inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n [\"no-resize\"]: resize === false || readonly,\n [\"no-left-pad\"]: !showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder ? placeholder : \"\"}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : null}\n minlength={minCharactersUnattained ? minCharacters : null}\n {...this.inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(this.el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(this.el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(this.el, \"menu\") && <slot name=\"menu\"></slot>}\n {(!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n maxCharactersError ||\n minCharactersUnattained ||\n minValueUnattained) &&\n !validationInlineInternal && (\n <ic-input-validation\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n <ic-typography\n variant=\"caption\"\n class={{\n [\"maxlengthtext\"]: true,\n [\"error\"]: maxLengthExceeded,\n [\"disabled\"]: disabledText,\n }}\n >\n <span\n aria-live=\"polite\"\n id={`${inputId}-charcount`}\n class=\"charcount\"\n >\n {numChars}/{maxNumChars}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </ic-typography>\n </div>\n )}\n </ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-text-field.js","sourceRoot":"","sources":["../../../src/components/ic-text-field/ic-text-field.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete: IcAriaAutocompleteTypes = undefined;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autoFocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount: boolean = false;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput: boolean = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId?: string = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max: string | number = undefined;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters: number = 0;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min: string | number = undefined;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters: number = 0;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder: string = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize: boolean = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows: number = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean = false;\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue?: boolean;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline: boolean = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal: boolean = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce: number = 0;\n\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n @State() initialValue = this.value;\n\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getMaxValueExceeded = (value: string) => {\n if (this.type === \"number\") {\n this.minValueUnattained = value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = value.length;\n this.maxCharactersReached =\n this.maxCharacters > 0 ? this.numChars >= this.maxCharacters : false;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 ? this.numChars < this.minCharacters : false;\n this.icBlur.emit({ value: value });\n };\n\n private onFocus = (ev: Event) => {\n this.icFocus.emit({ value: (ev.target as HTMLInputElement).value });\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersWarning,\n maxCharactersReached,\n minCharacters,\n minCharactersUnattained,\n minValueUnattained,\n maxValueExceeded,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n } = this;\n\n const disabledMode = readonly ? true : disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? `Maximum input is ${maxCharacters} characters`\n : maxValueExceeded\n ? `Maximum value of ${max} exceeded`\n : minValueUnattained\n ? `Minimum value of ${min} not met`\n : minCharactersUnattained\n ? `Minimum input is ${minCharacters} characters`\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\";\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const charsRemaining = maxNumChars - numChars;\n const hiddenRemainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const describedBy = `${hiddenCharCountDescId} ${getInputDescribedByText(\n inputId,\n helperText !== \"\",\n showStatusText\n )}`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n if (hiddenInput) {\n renderHiddenInput(true, this.el, name, value, disabledMode);\n }\n return (\n <Host class={{ [\"ic-text-field-full-width\"]: fullWidth }}>\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!this.hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n ></ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n [\"readonly\"]: readonly,\n [\"has-value\"]: value.length > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={this.type}\n min={min}\n max={max}\n value={value}\n class={{\n [\"no-left-pad\"]: !showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n [\"truncate-value\"]: truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-expanded={this.ariaExpanded}\n aria-owns={this.ariaOwns}\n autocomplete={this.autocomplete}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={this.role}\n maxlength={maxCharactersReached ? maxCharacters : null}\n minlength={minCharactersUnattained ? minCharacters : null}\n {...this.inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n [\"no-resize\"]: resize === false || readonly,\n [\"no-left-pad\"]: !showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder ? placeholder : \"\"}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : null}\n minlength={minCharactersUnattained ? minCharacters : null}\n {...this.inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(this.el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(this.el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(this.el, \"menu\") && <slot name=\"menu\"></slot>}\n {(!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n maxCharactersWarning ||\n minCharactersUnattained ||\n minValueUnattained) &&\n !validationInlineInternal && (\n <ic-input-validation\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n {!hideCharCount && (\n <ic-typography\n variant=\"caption\"\n class={{\n [\"char-count-text\"]: true,\n }}\n >\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span class=\"remaining-char-count-desc\" aria-live=\"polite\">\n {hiddenRemainingCharCountDesc}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"]}
@@ -79,12 +79,26 @@ describe("ic-text-field", () => {
79
79
  });
80
80
  expect(page.root).toMatchSnapshot("renders-readonly");
81
81
  });
82
- it("should render with max length", async () => {
82
+ it("should render with max characters", async () => {
83
83
  const page = await newSpecPage({
84
84
  components: [TextField],
85
- html: `<ic-text-field label="Test label" value="a long test value to exceed limit" max-length=25></ic-text-field>`,
85
+ html: `<ic-text-field label="Test label" value="Test value" max-characters=25></ic-text-field>`,
86
86
  });
87
- expect(page.root).toMatchSnapshot("renders-with-maxlength");
87
+ expect(page.root).toMatchSnapshot("renders-with-max-characters");
88
+ });
89
+ it("should render with max characters and hidden character count", async () => {
90
+ const page = await newSpecPage({
91
+ components: [TextField],
92
+ html: `<ic-text-field label="Test label" value="Test value" max-characters=25 hide-char-count></ic-text-field>`,
93
+ });
94
+ expect(page.root).toMatchSnapshot("renders-with-hidden-char-count");
95
+ });
96
+ it("should render with max characters and a value set which exceeds the max number of characters", async () => {
97
+ const page = await newSpecPage({
98
+ components: [TextField],
99
+ html: `<ic-text-field label="Test label" value="A long value which exceeds the max characters" max-characters=25></ic-text-field>`,
100
+ });
101
+ expect(page.root).toMatchSnapshot("renders-with-max-characters-long-value");
88
102
  });
89
103
  it("should render with name & full width", async () => {
90
104
  const page = await newSpecPage({
@@ -165,14 +179,6 @@ describe("ic-text-field", () => {
165
179
  const slot = page.root.shadowRoot.querySelector(`[slot="icon"]`);
166
180
  expect(slot).toBeNull();
167
181
  });
168
- it("should not exceed max length if new value < max length", async () => {
169
- const page = await newSpecPage({
170
- components: [TextField],
171
- html: `<ic-text-field label="Test label" rows=1 max-length=5></ic-text-field>`,
172
- });
173
- page.rootInstance.watchValueHandler("test");
174
- expect(page.rootInstance.maxLengthExceeded).toBe(false);
175
- });
176
182
  it("should test keydown", async () => {
177
183
  const page = await newSpecPage({
178
184
  components: [TextField],
@@ -232,6 +238,15 @@ it("should render with min/max and min validation", async () => {
232
238
  });
233
239
  expect(page.root).toMatchSnapshot("renders-with-min");
234
240
  });
241
+ it("should test setting value cannot exceed maxCharacters", async () => {
242
+ const page = await newSpecPage({
243
+ components: [TextField],
244
+ html: `<ic-text-field label="Test label" rows=1 max-characters=5 value="Test value"></ic-text-field>`,
245
+ });
246
+ expect(page.rootInstance.value).toBe("Test ");
247
+ page.rootInstance.watchValueHandler("Another test value");
248
+ expect(page.rootInstance.value).toBe("Anoth");
249
+ });
235
250
  it("should test maxCharacters method", async () => {
236
251
  const page = await newSpecPage({
237
252
  components: [TextField],