@ukic/web-components 3.26.0 → 3.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/components/OpenInNew.js +5 -0
  2. package/components/OpenInNew.js.map +1 -0
  3. package/components/check-icon.js +8 -0
  4. package/components/check-icon.js.map +1 -0
  5. package/components/chevron-icon.js +8 -0
  6. package/components/chevron-icon.js.map +1 -0
  7. package/{dist/esm/close-icon-539ec8d1.js → components/close-icon.js} +2 -3
  8. package/components/close-icon.js.map +1 -0
  9. package/components/constants.js +184 -0
  10. package/components/constants.js.map +1 -0
  11. package/components/custom-elements.d.ts +2 -0
  12. package/components/helpers.js +547 -0
  13. package/components/helpers.js.map +1 -0
  14. package/components/ic-accordion-group.d.ts +11 -0
  15. package/components/ic-accordion-group.js +191 -0
  16. package/components/ic-accordion-group.js.map +1 -0
  17. package/components/ic-accordion.d.ts +11 -0
  18. package/components/ic-accordion.js +188 -0
  19. package/components/ic-accordion.js.map +1 -0
  20. package/components/ic-action-chip.d.ts +11 -0
  21. package/components/ic-action-chip.js +164 -0
  22. package/components/ic-action-chip.js.map +1 -0
  23. package/components/ic-alert.d.ts +11 -0
  24. package/components/ic-alert.js +193 -0
  25. package/components/ic-alert.js.map +1 -0
  26. package/components/ic-back-to-top.d.ts +11 -0
  27. package/components/ic-back-to-top.js +216 -0
  28. package/components/ic-back-to-top.js.map +1 -0
  29. package/components/ic-badge.d.ts +11 -0
  30. package/components/ic-badge.js +222 -0
  31. package/components/ic-badge.js.map +1 -0
  32. package/components/ic-breadcrumb-group.d.ts +11 -0
  33. package/components/ic-breadcrumb-group.js +278 -0
  34. package/components/ic-breadcrumb-group.js.map +1 -0
  35. package/components/ic-breadcrumb.d.ts +11 -0
  36. package/components/ic-breadcrumb.js +8 -0
  37. package/components/ic-breadcrumb.js.map +1 -0
  38. package/components/ic-breadcrumb2.js +145 -0
  39. package/components/ic-breadcrumb2.js.map +1 -0
  40. package/components/ic-button.d.ts +11 -0
  41. package/components/ic-button.js +8 -0
  42. package/components/ic-button.js.map +1 -0
  43. package/components/ic-button2.js +509 -0
  44. package/components/ic-button2.js.map +1 -0
  45. package/components/ic-card-horizontal.d.ts +11 -0
  46. package/components/ic-card-horizontal.js +214 -0
  47. package/components/ic-card-horizontal.js.map +1 -0
  48. package/components/ic-card-vertical.d.ts +11 -0
  49. package/components/ic-card-vertical.js +219 -0
  50. package/components/ic-card-vertical.js.map +1 -0
  51. package/components/ic-checkbox-group.d.ts +11 -0
  52. package/components/ic-checkbox-group.js +198 -0
  53. package/components/ic-checkbox-group.js.map +1 -0
  54. package/components/ic-checkbox.d.ts +11 -0
  55. package/components/ic-checkbox.js +202 -0
  56. package/components/ic-checkbox.js.map +1 -0
  57. package/components/ic-chip.d.ts +11 -0
  58. package/components/ic-chip.js +183 -0
  59. package/components/ic-chip.js.map +1 -0
  60. package/components/ic-classification-banner.d.ts +11 -0
  61. package/components/ic-classification-banner.js +102 -0
  62. package/components/ic-classification-banner.js.map +1 -0
  63. package/components/ic-data-list.d.ts +11 -0
  64. package/components/ic-data-list.js +63 -0
  65. package/components/ic-data-list.js.map +1 -0
  66. package/components/ic-data-row.d.ts +11 -0
  67. package/components/ic-data-row.js +115 -0
  68. package/components/ic-data-row.js.map +1 -0
  69. package/components/ic-dialog.d.ts +11 -0
  70. package/components/ic-dialog.js +366 -0
  71. package/components/ic-dialog.js.map +1 -0
  72. package/components/ic-divider.d.ts +11 -0
  73. package/components/ic-divider.js +8 -0
  74. package/components/ic-divider.js.map +1 -0
  75. package/components/ic-divider2.js +148 -0
  76. package/components/ic-divider2.js.map +1 -0
  77. package/components/ic-empty-state.d.ts +11 -0
  78. package/components/ic-empty-state.js +82 -0
  79. package/components/ic-empty-state.js.map +1 -0
  80. package/components/ic-footer-link-group.d.ts +11 -0
  81. package/components/ic-footer-link-group.js +101 -0
  82. package/components/ic-footer-link-group.js.map +1 -0
  83. package/components/ic-footer-link.d.ts +11 -0
  84. package/components/ic-footer-link.js +95 -0
  85. package/components/ic-footer-link.js.map +1 -0
  86. package/components/ic-footer.d.ts +11 -0
  87. package/components/ic-footer.js +156 -0
  88. package/components/ic-footer.js.map +1 -0
  89. package/components/ic-hero.d.ts +11 -0
  90. package/components/ic-hero.js +145 -0
  91. package/components/ic-hero.js.map +1 -0
  92. package/components/ic-horizontal-scroll.d.ts +11 -0
  93. package/components/ic-horizontal-scroll.js +8 -0
  94. package/components/ic-horizontal-scroll.js.map +1 -0
  95. package/components/ic-horizontal-scroll2.js +240 -0
  96. package/components/ic-horizontal-scroll2.js.map +1 -0
  97. package/components/ic-input-component-container.d.ts +11 -0
  98. package/components/ic-input-component-container.js +8 -0
  99. package/components/ic-input-component-container.js.map +1 -0
  100. package/components/ic-input-component-container2.js +95 -0
  101. package/components/ic-input-component-container2.js.map +1 -0
  102. package/components/ic-input-container.d.ts +11 -0
  103. package/components/ic-input-container.js +8 -0
  104. package/components/ic-input-container.js.map +1 -0
  105. package/components/ic-input-container2.js +47 -0
  106. package/components/ic-input-container2.js.map +1 -0
  107. package/components/ic-input-label.d.ts +11 -0
  108. package/components/ic-input-label.js +8 -0
  109. package/components/ic-input-label.js.map +1 -0
  110. package/components/ic-input-label2.js +121 -0
  111. package/components/ic-input-label2.js.map +1 -0
  112. package/components/ic-input-validation.d.ts +11 -0
  113. package/components/ic-input-validation.js +8 -0
  114. package/components/ic-input-validation.js.map +1 -0
  115. package/components/ic-input-validation2.js +90 -0
  116. package/components/ic-input-validation2.js.map +1 -0
  117. package/components/ic-layout-grid-item.d.ts +11 -0
  118. package/components/ic-layout-grid-item.js +95 -0
  119. package/components/ic-layout-grid-item.js.map +1 -0
  120. package/components/ic-layout-grid.d.ts +11 -0
  121. package/components/ic-layout-grid.js +188 -0
  122. package/components/ic-layout-grid.js.map +1 -0
  123. package/components/ic-link.d.ts +11 -0
  124. package/components/ic-link.js +8 -0
  125. package/components/ic-link.js.map +1 -0
  126. package/components/ic-link2.js +135 -0
  127. package/components/ic-link2.js.map +1 -0
  128. package/components/ic-loading-indicator.d.ts +11 -0
  129. package/components/ic-loading-indicator.js +8 -0
  130. package/components/ic-loading-indicator.js.map +1 -0
  131. package/components/ic-loading-indicator2.js +278 -0
  132. package/components/ic-loading-indicator2.js.map +1 -0
  133. package/components/ic-menu-group.d.ts +11 -0
  134. package/components/ic-menu-group.js +47 -0
  135. package/components/ic-menu-group.js.map +1 -0
  136. package/components/ic-menu-item.d.ts +11 -0
  137. package/components/ic-menu-item.js +8 -0
  138. package/components/ic-menu-item.js.map +1 -0
  139. package/components/ic-menu-item2.js +171 -0
  140. package/components/ic-menu-item2.js.map +1 -0
  141. package/components/ic-menu.d.ts +11 -0
  142. package/components/ic-menu.js +8 -0
  143. package/components/ic-menu.js.map +1 -0
  144. package/components/ic-menu2.js +2590 -0
  145. package/components/ic-menu2.js.map +1 -0
  146. package/components/ic-navigation-button.d.ts +11 -0
  147. package/components/ic-navigation-button.js +175 -0
  148. package/components/ic-navigation-button.js.map +1 -0
  149. package/components/ic-navigation-group.d.ts +11 -0
  150. package/components/ic-navigation-group.js +326 -0
  151. package/components/ic-navigation-group.js.map +1 -0
  152. package/components/ic-navigation-item.d.ts +11 -0
  153. package/components/ic-navigation-item.js +294 -0
  154. package/components/ic-navigation-item.js.map +1 -0
  155. package/components/ic-navigation-menu.d.ts +11 -0
  156. package/components/ic-navigation-menu.js +8 -0
  157. package/components/ic-navigation-menu.js.map +1 -0
  158. package/components/ic-navigation-menu2.js +188 -0
  159. package/components/ic-navigation-menu2.js.map +1 -0
  160. package/components/ic-page-header.d.ts +11 -0
  161. package/components/ic-page-header.js +196 -0
  162. package/components/ic-page-header.js.map +1 -0
  163. package/components/ic-pagination-bar.d.ts +11 -0
  164. package/components/ic-pagination-bar.js +523 -0
  165. package/components/ic-pagination-bar.js.map +1 -0
  166. package/components/ic-pagination-item.d.ts +11 -0
  167. package/components/ic-pagination-item.js +8 -0
  168. package/components/ic-pagination-item.js.map +1 -0
  169. package/components/ic-pagination-item2.js +107 -0
  170. package/components/ic-pagination-item2.js.map +1 -0
  171. package/components/ic-pagination.d.ts +11 -0
  172. package/components/ic-pagination.js +8 -0
  173. package/components/ic-pagination.js.map +1 -0
  174. package/components/ic-pagination2.js +383 -0
  175. package/components/ic-pagination2.js.map +1 -0
  176. package/components/ic-popover-menu.d.ts +11 -0
  177. package/components/ic-popover-menu.js +391 -0
  178. package/components/ic-popover-menu.js.map +1 -0
  179. package/components/ic-radio-group.d.ts +11 -0
  180. package/components/ic-radio-group.js +317 -0
  181. package/components/ic-radio-group.js.map +1 -0
  182. package/components/ic-radio-option.d.ts +11 -0
  183. package/components/ic-radio-option.js +211 -0
  184. package/components/ic-radio-option.js.map +1 -0
  185. package/components/ic-search-bar.d.ts +11 -0
  186. package/components/ic-search-bar.js +715 -0
  187. package/components/ic-search-bar.js.map +1 -0
  188. package/components/ic-section-container.d.ts +11 -0
  189. package/components/ic-section-container.js +8 -0
  190. package/components/ic-section-container.js.map +1 -0
  191. package/components/ic-section-container2.js +50 -0
  192. package/components/ic-section-container2.js.map +1 -0
  193. package/components/ic-select.d.ts +11 -0
  194. package/components/ic-select.js +8 -0
  195. package/components/ic-select.js.map +1 -0
  196. package/components/ic-select2.js +806 -0
  197. package/components/ic-select2.js.map +1 -0
  198. package/components/ic-side-navigation.d.ts +11 -0
  199. package/components/ic-side-navigation.js +568 -0
  200. package/components/ic-side-navigation.js.map +1 -0
  201. package/components/ic-skeleton.d.ts +11 -0
  202. package/components/ic-skeleton.js +81 -0
  203. package/components/ic-skeleton.js.map +1 -0
  204. package/components/ic-skip-link.d.ts +11 -0
  205. package/components/ic-skip-link.js +91 -0
  206. package/components/ic-skip-link.js.map +1 -0
  207. package/components/ic-status-tag.d.ts +11 -0
  208. package/components/ic-status-tag.js +85 -0
  209. package/components/ic-status-tag.js.map +1 -0
  210. package/components/ic-step.d.ts +11 -0
  211. package/components/ic-step.js +200 -0
  212. package/components/ic-step.js.map +1 -0
  213. package/components/ic-stepper.d.ts +11 -0
  214. package/components/ic-stepper.js +340 -0
  215. package/components/ic-stepper.js.map +1 -0
  216. package/components/ic-switch.d.ts +11 -0
  217. package/components/ic-switch.js +164 -0
  218. package/components/ic-switch.js.map +1 -0
  219. package/components/ic-tab-context.d.ts +11 -0
  220. package/components/ic-tab-context.js +275 -0
  221. package/components/ic-tab-context.js.map +1 -0
  222. package/components/ic-tab-group.d.ts +11 -0
  223. package/components/ic-tab-group.js +89 -0
  224. package/components/ic-tab-group.js.map +1 -0
  225. package/components/ic-tab-panel.d.ts +11 -0
  226. package/components/ic-tab-panel.js +63 -0
  227. package/components/ic-tab-panel.js.map +1 -0
  228. package/components/ic-tab.d.ts +11 -0
  229. package/components/ic-tab.js +143 -0
  230. package/components/ic-tab.js.map +1 -0
  231. package/components/ic-text-field.d.ts +11 -0
  232. package/components/ic-text-field.js +8 -0
  233. package/components/ic-text-field.js.map +1 -0
  234. package/components/ic-text-field2.js +532 -0
  235. package/components/ic-text-field2.js.map +1 -0
  236. package/components/ic-theme.d.ts +11 -0
  237. package/components/ic-theme.js +105 -0
  238. package/components/ic-theme.js.map +1 -0
  239. package/components/ic-toast-region.d.ts +11 -0
  240. package/components/ic-toast-region.js +76 -0
  241. package/components/ic-toast-region.js.map +1 -0
  242. package/components/ic-toast.d.ts +11 -0
  243. package/components/ic-toast.js +295 -0
  244. package/components/ic-toast.js.map +1 -0
  245. package/components/ic-toggle-button-group.d.ts +11 -0
  246. package/components/ic-toggle-button-group.js +323 -0
  247. package/components/ic-toggle-button-group.js.map +1 -0
  248. package/components/ic-toggle-button.d.ts +11 -0
  249. package/components/ic-toggle-button.js +235 -0
  250. package/components/ic-toggle-button.js.map +1 -0
  251. package/components/ic-tooltip.d.ts +11 -0
  252. package/components/ic-tooltip.js +8 -0
  253. package/components/ic-tooltip.js.map +1 -0
  254. package/components/ic-tooltip2.js +2078 -0
  255. package/components/ic-tooltip2.js.map +1 -0
  256. package/components/ic-top-navigation.d.ts +11 -0
  257. package/components/ic-top-navigation.js +320 -0
  258. package/components/ic-top-navigation.js.map +1 -0
  259. package/components/ic-typography.d.ts +11 -0
  260. package/components/ic-typography.js +8 -0
  261. package/components/ic-typography.js.map +1 -0
  262. package/components/ic-typography2.js +228 -0
  263. package/components/ic-typography2.js.map +1 -0
  264. package/components/index.d.ts +33 -0
  265. package/components/index.js +4 -0
  266. package/components/index.js.map +1 -0
  267. package/components/package.json +9 -0
  268. package/dist/cjs/{close-icon-7f6ef8e4.js → close-icon-30d8bb41.js} +2 -3
  269. package/dist/cjs/close-icon-30d8bb41.js.map +1 -0
  270. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  271. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  272. package/dist/cjs/ic-data-list.cjs.entry.js +1 -1
  273. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  274. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  275. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  276. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  277. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +63 -37
  278. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  279. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  280. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  281. package/dist/cjs/ic-pagination_3.cjs.entry.js +29 -25
  282. package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -1
  283. package/dist/cjs/ic-popover-menu.cjs.entry.js +33 -11
  284. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  285. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -6
  286. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  287. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  288. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  289. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  290. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  291. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  292. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  293. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  294. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  295. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  296. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  297. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  298. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  299. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  300. package/dist/cjs/ic-toast.cjs.entry.js +6 -6
  301. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +2 -2
  302. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  303. package/dist/collection/assets/close-icon.svg +1 -2
  304. package/dist/collection/components/ic-data-list/ic-data-list.css +4 -0
  305. package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
  306. package/dist/collection/components/ic-menu/ic-menu.css +19 -0
  307. package/dist/collection/components/ic-menu/ic-menu.js +62 -36
  308. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  309. package/dist/collection/components/ic-menu/ic-menu.types.js.map +1 -1
  310. package/dist/collection/components/ic-pagination/ic-pagination.js +12 -8
  311. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  312. package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +2 -1
  313. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +4 -4
  314. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +36 -11
  315. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  316. package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +72 -0
  317. package/dist/collection/components/ic-search-bar/ic-search-bar.js +1 -1
  318. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  319. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  320. package/dist/collection/components/ic-select/ic-select.js +17 -17
  321. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  322. package/dist/collection/components/ic-select/ic-select_(single).stories.js +54 -0
  323. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  324. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  325. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  326. package/dist/collection/components/ic-step/ic-step.js +13 -13
  327. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  328. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  329. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  330. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  331. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  332. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  333. package/dist/collection/components/ic-toast/ic-toast.js +5 -5
  334. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  335. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  336. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  337. package/dist/components/close-icon.js +1 -2
  338. package/dist/components/close-icon.js.map +1 -1
  339. package/dist/components/ic-data-list.js +1 -1
  340. package/dist/components/ic-data-list.js.map +1 -1
  341. package/dist/components/ic-data-row.js +1 -1
  342. package/dist/components/ic-data-row.js.map +1 -1
  343. package/dist/components/ic-menu2.js +63 -37
  344. package/dist/components/ic-menu2.js.map +1 -1
  345. package/dist/components/ic-page-header.js.map +1 -1
  346. package/dist/components/ic-pagination-bar.js.map +1 -1
  347. package/dist/components/ic-pagination-item2.js +1 -1
  348. package/dist/components/ic-pagination-item2.js.map +1 -1
  349. package/dist/components/ic-pagination2.js +12 -8
  350. package/dist/components/ic-pagination2.js.map +1 -1
  351. package/dist/components/ic-popover-menu.js +34 -12
  352. package/dist/components/ic-popover-menu.js.map +1 -1
  353. package/dist/components/ic-radio-group.js.map +1 -1
  354. package/dist/components/ic-radio-option.js.map +1 -1
  355. package/dist/components/ic-search-bar.js +2 -6
  356. package/dist/components/ic-search-bar.js.map +1 -1
  357. package/dist/components/ic-section-container2.js +2 -2
  358. package/dist/components/ic-select2.js +17 -17
  359. package/dist/components/ic-select2.js.map +1 -1
  360. package/dist/components/ic-side-navigation.js.map +1 -1
  361. package/dist/components/ic-skeleton.js +2 -2
  362. package/dist/components/ic-skip-link.js +2 -2
  363. package/dist/components/ic-status-tag.js +2 -2
  364. package/dist/components/ic-step.js +13 -13
  365. package/dist/components/ic-stepper.js +2 -2
  366. package/dist/components/ic-switch.js +4 -4
  367. package/dist/components/ic-tab-context.js +1 -1
  368. package/dist/components/ic-tab-group.js +2 -2
  369. package/dist/components/ic-tab-panel.js +2 -2
  370. package/dist/components/ic-theme.js +1 -1
  371. package/dist/components/ic-toast-region.js +1 -1
  372. package/dist/components/ic-toast.js +5 -5
  373. package/dist/components/ic-toggle-button-group.js +2 -2
  374. package/dist/components/ic-toggle-button.js +2 -2
  375. package/dist/core/core.esm.js +1 -1
  376. package/dist/core/{p-23fb87be.entry.js → p-0558baed.entry.js} +2 -2
  377. package/dist/core/{p-a0c54a50.entry.js → p-0740be66.entry.js} +2 -2
  378. package/dist/core/{p-d0dd9f2c.entry.js → p-0cd21e04.entry.js} +2 -2
  379. package/dist/core/p-0cd21e04.entry.js.map +1 -0
  380. package/dist/core/{p-bb52e752.entry.js → p-1043f3dd.entry.js} +2 -2
  381. package/dist/core/{p-74a3a450.entry.js → p-1843357b.entry.js} +2 -2
  382. package/dist/core/{p-b58fb588.entry.js → p-2251df98.entry.js} +2 -2
  383. package/dist/core/{p-cf87b6db.entry.js → p-2bb815ef.entry.js} +2 -2
  384. package/dist/core/p-308be45e.entry.js +2 -0
  385. package/dist/core/p-308be45e.entry.js.map +1 -0
  386. package/dist/core/p-4b61e92e.entry.js +2 -0
  387. package/dist/core/{p-99b20121.entry.js.map → p-4b61e92e.entry.js.map} +1 -1
  388. package/dist/core/p-56ab6fb7.entry.js +2 -0
  389. package/dist/core/p-56ab6fb7.entry.js.map +1 -0
  390. package/dist/core/{p-fd9ea62a.entry.js → p-75f91c8c.entry.js} +2 -2
  391. package/dist/core/p-77f011e7.entry.js +2 -0
  392. package/dist/core/p-77f011e7.entry.js.map +1 -0
  393. package/dist/core/{p-70ca7796.entry.js → p-85db7e71.entry.js} +2 -2
  394. package/dist/core/{p-ab104baa.entry.js → p-987b08f9.entry.js} +2 -2
  395. package/dist/core/p-98dee727.entry.js.map +1 -1
  396. package/dist/core/{p-85ac0d78.entry.js → p-9b144bed.entry.js} +2 -2
  397. package/dist/core/{p-d1220d2a.entry.js → p-a8d98164.entry.js} +2 -2
  398. package/dist/core/{p-a7c263bd.entry.js → p-ba8799ea.entry.js} +2 -2
  399. package/dist/core/p-ba8799ea.entry.js.map +1 -0
  400. package/dist/core/{p-85232cec.entry.js → p-bf06d022.entry.js} +2 -2
  401. package/dist/core/{p-c41fd2cf.entry.js → p-c0f6f568.entry.js} +2 -2
  402. package/dist/core/p-c391e323.js +2 -0
  403. package/dist/core/{p-271ee0bc.entry.js → p-c75c316b.entry.js} +2 -2
  404. package/dist/core/{p-970e190c.entry.js → p-e0b52a71.entry.js} +2 -2
  405. package/dist/core/{p-3da9774b.entry.js → p-ef91cf17.entry.js} +2 -2
  406. package/dist/core/{p-d7c6fc8d.entry.js → p-f8e5d8f8.entry.js} +2 -2
  407. package/dist/core/{p-6b5edd6b.entry.js → p-f9daecc7.entry.js} +2 -2
  408. package/dist/core/{p-171a19bf.entry.js → p-fdc4376e.entry.js} +2 -2
  409. package/dist/core/p-fdc4376e.entry.js.map +1 -0
  410. package/dist/esm/close-icon-0db44bf2.js +9 -0
  411. package/dist/esm/close-icon-0db44bf2.js.map +1 -0
  412. package/dist/esm/ic-alert.entry.js +1 -1
  413. package/dist/esm/ic-button_3.entry.js.map +1 -1
  414. package/dist/esm/ic-data-list.entry.js +1 -1
  415. package/dist/esm/ic-data-list.entry.js.map +1 -1
  416. package/dist/esm/ic-data-row.entry.js +1 -1
  417. package/dist/esm/ic-data-row.entry.js.map +1 -1
  418. package/dist/esm/ic-dialog.entry.js +1 -1
  419. package/dist/esm/ic-input-component-container_3.entry.js +63 -37
  420. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  421. package/dist/esm/ic-pagination-item.entry.js +1 -1
  422. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  423. package/dist/esm/ic-pagination_3.entry.js +29 -25
  424. package/dist/esm/ic-pagination_3.entry.js.map +1 -1
  425. package/dist/esm/ic-popover-menu.entry.js +34 -12
  426. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  427. package/dist/esm/ic-search-bar.entry.js +2 -6
  428. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  429. package/dist/esm/ic-section-container.entry.js +2 -2
  430. package/dist/esm/ic-side-navigation.entry.js +1 -1
  431. package/dist/esm/ic-skeleton.entry.js +2 -2
  432. package/dist/esm/ic-skip-link.entry.js +2 -2
  433. package/dist/esm/ic-status-tag.entry.js +2 -2
  434. package/dist/esm/ic-step.entry.js +13 -13
  435. package/dist/esm/ic-stepper.entry.js +2 -2
  436. package/dist/esm/ic-switch.entry.js +4 -4
  437. package/dist/esm/ic-tab-context.entry.js +1 -1
  438. package/dist/esm/ic-tab-group.entry.js +2 -2
  439. package/dist/esm/ic-tab-panel.entry.js +2 -2
  440. package/dist/esm/ic-theme.entry.js +1 -1
  441. package/dist/esm/ic-toast-region.entry.js +1 -1
  442. package/dist/esm/ic-toast.entry.js +6 -6
  443. package/dist/esm/ic-toggle-button-group.entry.js +2 -2
  444. package/dist/esm/ic-toggle-button.entry.js +2 -2
  445. package/dist/types/components/ic-menu/ic-menu.types.d.ts +1 -0
  446. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +4 -0
  447. package/hydrate/index.js +176 -127
  448. package/hydrate/index.mjs +176 -127
  449. package/package.json +10 -9
  450. package/dist/cjs/close-icon-7f6ef8e4.js.map +0 -1
  451. package/dist/collection/assets/clear-icon.svg +0 -3
  452. package/dist/core/p-023cf5d9.entry.js +0 -2
  453. package/dist/core/p-023cf5d9.entry.js.map +0 -1
  454. package/dist/core/p-171a19bf.entry.js.map +0 -1
  455. package/dist/core/p-2424f82f.entry.js +0 -2
  456. package/dist/core/p-2424f82f.entry.js.map +0 -1
  457. package/dist/core/p-343670b4.entry.js +0 -2
  458. package/dist/core/p-343670b4.entry.js.map +0 -1
  459. package/dist/core/p-99b20121.entry.js +0 -2
  460. package/dist/core/p-a7c263bd.entry.js.map +0 -1
  461. package/dist/core/p-d0dd9f2c.entry.js.map +0 -1
  462. package/dist/core/p-f074ef5b.js +0 -2
  463. package/dist/esm/close-icon-539ec8d1.js.map +0 -1
  464. /package/dist/core/{p-23fb87be.entry.js.map → p-0558baed.entry.js.map} +0 -0
  465. /package/dist/core/{p-a0c54a50.entry.js.map → p-0740be66.entry.js.map} +0 -0
  466. /package/dist/core/{p-bb52e752.entry.js.map → p-1043f3dd.entry.js.map} +0 -0
  467. /package/dist/core/{p-74a3a450.entry.js.map → p-1843357b.entry.js.map} +0 -0
  468. /package/dist/core/{p-b58fb588.entry.js.map → p-2251df98.entry.js.map} +0 -0
  469. /package/dist/core/{p-cf87b6db.entry.js.map → p-2bb815ef.entry.js.map} +0 -0
  470. /package/dist/core/{p-fd9ea62a.entry.js.map → p-75f91c8c.entry.js.map} +0 -0
  471. /package/dist/core/{p-70ca7796.entry.js.map → p-85db7e71.entry.js.map} +0 -0
  472. /package/dist/core/{p-ab104baa.entry.js.map → p-987b08f9.entry.js.map} +0 -0
  473. /package/dist/core/{p-85ac0d78.entry.js.map → p-9b144bed.entry.js.map} +0 -0
  474. /package/dist/core/{p-d1220d2a.entry.js.map → p-a8d98164.entry.js.map} +0 -0
  475. /package/dist/core/{p-85232cec.entry.js.map → p-bf06d022.entry.js.map} +0 -0
  476. /package/dist/core/{p-c41fd2cf.entry.js.map → p-c0f6f568.entry.js.map} +0 -0
  477. /package/dist/core/{p-f074ef5b.js.map → p-c391e323.js.map} +0 -0
  478. /package/dist/core/{p-271ee0bc.entry.js.map → p-c75c316b.entry.js.map} +0 -0
  479. /package/dist/core/{p-970e190c.entry.js.map → p-e0b52a71.entry.js.map} +0 -0
  480. /package/dist/core/{p-3da9774b.entry.js.map → p-ef91cf17.entry.js.map} +0 -0
  481. /package/dist/core/{p-d7c6fc8d.entry.js.map → p-f8e5d8f8.entry.js.map} +0 -0
  482. /package/dist/core/{p-6b5edd6b.entry.js.map → p-f9daecc7.entry.js.map} +0 -0
@@ -0,0 +1,532 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';
2
+ import { G as isEmptyString, S as checkSlotInChildMutations, r as removeDisabledFalse, U as debounceEvent, t as removeFormResetListener, b as inheritAttributes, s as addFormResetListener, o as onComponentRequiredPropUndefined, A as IcInformationStatus, w as getInputDescribedByText, u as renderHiddenInput, v as removeHiddenInput, i as isSlotUsed } from './helpers.js';
3
+ import { e as IGNORED_KEYBOARD_CHARACTERS, I as IC_INHERITED_ARIA } from './constants.js';
4
+ import { d as defineCustomElement$5 } from './ic-input-component-container2.js';
5
+ import { d as defineCustomElement$4 } from './ic-input-container2.js';
6
+ import { d as defineCustomElement$3 } from './ic-input-label2.js';
7
+ import { d as defineCustomElement$2 } from './ic-input-validation2.js';
8
+ import { d as defineCustomElement$1 } from './ic-typography2.js';
9
+
10
+ const icTextFieldCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--ic-input-label-helpertext-padding:var(--ic-space-xs);--border-color:var(--ic-text-field-border-neutral);--border-color-hover:var(--ic-text-field-border-neutral-hover);--border-color-pressed:var(--ic-text-field-border-neutral-pressed);--border-color-disabled:var(--ic-text-field-border-disabled);--border-color-error:var(--ic-text-field-border-error);--border-color-error-hover:var(--ic-text-field-border-error-hover);--border-color-error-pressed:var(--ic-text-field-border-error-pressed);--border-color-success:var(--ic-text-field-border-success);--border-color-success-hover:var(--ic-text-field-border-success-hover);--border-color-success-pressed:var(--ic-text-field-border-success-pressed);--border-color-warning:var(--ic-text-field-border-warning);--border-color-warning-hover:var(--ic-text-field-border-warning-hover);--border-color-warning-pressed:var(--ic-text-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-text-field-label);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle);--ic-input-validation-status-text-color:var(--ic-text-field-state-text);--ic-input-validation-error:var(--ic-text-field-state-icon-error);--ic-input-validation-warning-icon-color:var(\n --ic-text-field-state-icon-warning\n );--ic-input-validation-success-icon-color:var(\n --ic-text-field-state-icon-success\n );--ic-input-component-container-success-icon-inline-color:var(\n --ic-text-field-state-icon-success\n )}:host(.ic-text-field-disabled){--ic-input-label-text-color:var(--ic-text-field-label-disabled);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle-disabled);--text-field-placeholder-color:var(\n --ic-text-field-text-area-placeholder-text-disabled\n )}:host(.ic-text-field-full-width){width:100%}::-moz-placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}::placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}input,textarea{border:0;border-radius:var(--ic-border-radius);color:var(--text-field-text-color, var(--ic-text-field-text));background-color:var(--input-bg-color, var(--ic-text-field-background));line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs);caret-color:var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n )}textarea{min-height:var(--ic-space-lg);resize:vertical;padding-top:0.375rem}input:focus,textarea:focus{border:0;outline:0}input:disabled,textarea:disabled{color:var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n )}input.readonly,textarea.readonly{color:var(--ic-text-field-read-only-input-text-internal);background:transparent}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=\"number\"]{-moz-appearance:textfield}textarea.no-resize{resize:none}.char-count-text{--ic-typography-color:var(--ic-text-field-character-limit);padding-right:var(--ic-space-xxxs)}:host(.ic-text-field-disabled) .char-count-text{--ic-typography-color:var(--ic-text-field-character-limit-disabled)}.no-left-pad{padding-left:0}::slotted([slot=\"icon\"]){fill:var(--ic-text-field-text-disabled)}.has-value ::slotted([slot=\"icon\"]){fill:var(--ic-text-field-input-internal-icon)}.char-count{margin-right:calc(-1 * var(--ic-space-xxxs))}.remaining-char-count-desc{position:absolute;left:-9999px}.show-validation{margin-top:var(--ic-space-xs)}input[type=\"search\"]::-webkit-search-cancel-button,input[type=\"search\"]::-webkit-search-decoration,input[type=\"search\"]::-webkit-search-results-button,input[type=\"search\"]::-webkit-search-results-decoration{display:none}input[type=\"search\"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (forced-colors: active){input.readonly,textarea.readonly{color:canvastext}.has-value ::slotted([slot=\"icon\"]){fill:currentcolor}}";
11
+ const IcTextFieldStyle0 = icTextFieldCss;
12
+
13
+ let inputIds = 0;
14
+ const MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, "title"];
15
+ const TextField = /*@__PURE__*/ proxyCustomElement(class TextField extends HTMLElement {
16
+ constructor() {
17
+ super();
18
+ this.__registerHost();
19
+ this.__attachShadow();
20
+ this.getValidationText = createEvent(this, "getValidationText", 7);
21
+ this.icBlur = createEvent(this, "icBlur", 7);
22
+ this.icChange = createEvent(this, "icChange", 7);
23
+ this.icFocus = createEvent(this, "icFocus", 7);
24
+ this.icInput = createEvent(this, "icInput", 7);
25
+ this.icKeydown = createEvent(this, "icKeydown", 7);
26
+ this.icScroll = createEvent(this, "icScroll", 7);
27
+ this.inheritedAttributes = {};
28
+ this.hostMutationObserver = null;
29
+ this.numChars = 0;
30
+ this.maxCharactersReached = false;
31
+ this.maxCharactersWarning = false;
32
+ this.minCharactersUnattained = false;
33
+ this.maxValueExceeded = false;
34
+ this.minValueUnattained = false;
35
+ this.isFocussed = false;
36
+ /**
37
+ * The automatic capitalisation of the text value as it is entered/edited by the user.
38
+ * Available options: "off", "none", "on", "sentences", "words", "characters".
39
+ */
40
+ this.autocapitalize = "off";
41
+ /**
42
+ * The state of autocompletion the browser can apply on the text value.
43
+ */
44
+ this.autocomplete = "off";
45
+ /**
46
+ * The state of autocorrection the browser can apply when the user is entering/editing the text value.
47
+ */
48
+ this.autocorrect = "off";
49
+ /**
50
+ * If `true`, the form control will have input focus when the page loads.
51
+ */
52
+ this.autofocus = false;
53
+ /**
54
+ * If `true`, the disabled state will be set.
55
+ */
56
+ this.disabled = false;
57
+ /**
58
+ * Specify whether the text field fills the full width of the container.
59
+ * If `true`, this overrides the --input-width CSS variable.
60
+ */
61
+ this.fullWidth = false;
62
+ /**
63
+ * The helper text that will be displayed for additional field guidance.
64
+ */
65
+ this.helperText = "";
66
+ /**
67
+ * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.
68
+ */
69
+ this.hideCharCount = false;
70
+ /**
71
+ * If `true`, the label will be hidden and the required label value will be applied as an aria-label.
72
+ */
73
+ this.hideLabel = false;
74
+ /**
75
+ * @internal If `true`, the hidden form input will stop rendering for form submission.
76
+ */
77
+ this.hiddenInput = true;
78
+ /**
79
+ * The ID for the input.
80
+ */
81
+ this.inputId = `ic-text-field-input-${inputIds++}`;
82
+ /**
83
+ * A hint to the browser for which keyboard to display.
84
+ * Possible values: `"none"`, `"text"`, `"tel"`, `"url"`,
85
+ * `"email"`, `"numeric"`, `"decimal"`, and `"search"`.
86
+ */
87
+ this.inputmode = "text";
88
+ /**
89
+ * 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)
90
+ */
91
+ this.maxCharacters = 0;
92
+ /**
93
+ * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.
94
+ */
95
+ // prettier-ignore
96
+ this.maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;
97
+ /**
98
+ * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.
99
+ */
100
+ this.maxMessage = `Maximum value of ${this.max} exceeded`;
101
+ /**
102
+ * The minimum number of characters that can be entered in the field.
103
+ */
104
+ this.minCharacters = 0;
105
+ /**
106
+ * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.
107
+ */
108
+ // prettier-ignore
109
+ this.minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;
110
+ /**
111
+ * The text to display as the error message when the minimum value (the `min` prop value) has not been met.
112
+ */
113
+ this.minMessage = `Minimum value of ${this.min} not met`;
114
+ /**
115
+ * The name of the control, which is submitted with the form data.
116
+ */
117
+ this.name = this.inputId;
118
+ /**
119
+ * The placeholder value to be displayed.
120
+ */
121
+ this.placeholder = "";
122
+ /**
123
+ * If `true`, the read only state will be set.
124
+ */
125
+ this.readonly = false;
126
+ /**
127
+ * If `true`, the input will require a value.
128
+ */
129
+ this.required = false;
130
+ /**
131
+ * If `true`, the multiline text area will be resizeable.
132
+ */
133
+ this.resize = false;
134
+ /**
135
+ * The number of rows to transform the text field into a text area with a specific height.
136
+ */
137
+ this.rows = 1;
138
+ /**
139
+ * The size of the text field component.
140
+ */
141
+ this.size = "medium";
142
+ /**
143
+ * If `true`, the value of the text field will have its spelling and grammar checked.
144
+ */
145
+ this.spellcheck = false;
146
+ /**
147
+ * Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
148
+ */
149
+ this.theme = "inherit";
150
+ /**
151
+ * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.
152
+ */
153
+ this.truncateValue = false;
154
+ /**
155
+ * The type of control to display. The default type is text.
156
+ */
157
+ this.type = "text";
158
+ /**
159
+ * The value of the `aria-live` attribute on the validation message. When set to "default", the `aria-live` value will be handled automatically, e.g. "assertive" for `validation-status="error"`.
160
+ */
161
+ this.validationAriaLive = "default";
162
+ /**
163
+ * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.
164
+ */
165
+ this.validationInline = false;
166
+ /**
167
+ * @internal If `true`, the validation will display inline.
168
+ */
169
+ this.validationInlineInternal = false;
170
+ /**
171
+ * The validation state - e.g. 'error' | 'warning' | 'success'.
172
+ */
173
+ this.validationStatus = "";
174
+ /**
175
+ * The text to display as the validation message.
176
+ */
177
+ this.validationText = "";
178
+ /**
179
+ * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.
180
+ */
181
+ this.debounce = 0;
182
+ /**
183
+ * The value of the text field.
184
+ */
185
+ this.value = "";
186
+ this.initialValue = this.value;
187
+ this.checkChildHydration = () => {
188
+ var _a, _b;
189
+ if (this.hideLabel ||
190
+ ((_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("ic-typography")) === null || _b === void 0 ? void 0 : _b.classList.contains("hydrated"))) {
191
+ this.setFocus();
192
+ clearInterval(this.interval);
193
+ }
194
+ };
195
+ this.getNumberOfCharacters = (value) => value !== null && value !== undefined ? value.length : 0;
196
+ this.getMaxValueExceeded = (value) => {
197
+ this.numChars = this.getNumberOfCharacters(value);
198
+ if (this.type === "number") {
199
+ this.minValueUnattained = !!value && Number(value) < Number(this.min);
200
+ this.maxValueExceeded = Number(value) > Number(this.max);
201
+ }
202
+ };
203
+ this.getMaxCharactersReached = (value) => {
204
+ this.numChars = this.getNumberOfCharacters(value);
205
+ this.maxCharactersReached =
206
+ this.maxCharacters > 0 && this.numChars >= this.maxCharacters;
207
+ if (this.maxCharactersWarning && !this.maxCharactersReached) {
208
+ this.maxCharactersWarning = false;
209
+ }
210
+ };
211
+ this.onInput = (ev) => {
212
+ this.value = ev.target.value;
213
+ this.icInput.emit({ value: this.value });
214
+ };
215
+ this.onBlur = (ev) => {
216
+ const target = ev.target;
217
+ target.removeEventListener("wheel", this.onWheel);
218
+ const { value } = target;
219
+ this.numChars = value.length;
220
+ this.minCharactersUnattained =
221
+ this.minCharacters > 0 && this.numChars < this.minCharacters;
222
+ this.icBlur.emit({ value });
223
+ this.isFocussed = false;
224
+ };
225
+ this.onFocus = (ev) => {
226
+ const target = ev.target;
227
+ target.addEventListener("wheel", this.onWheel);
228
+ this.icFocus.emit({ value: target.value });
229
+ this.isFocussed = true;
230
+ };
231
+ this.onTextAreaScroll = () => {
232
+ this.icScroll.emit();
233
+ };
234
+ this.onWheel = (ev) => {
235
+ const target = ev.target;
236
+ if (target.type === "number") {
237
+ target.blur();
238
+ setTimeout(() => {
239
+ target.focus();
240
+ }, 0);
241
+ }
242
+ };
243
+ this.hasStatus = (status) => status !== "" && !this.disabled;
244
+ this.handleFormReset = () => {
245
+ this.value = this.initialValue;
246
+ };
247
+ this.showValidationMargin = () => {
248
+ const maxNumChars = this.readonly ? 0 : this.maxCharacters;
249
+ const emptyString = isEmptyString(this.validationStatus) ||
250
+ isEmptyString(this.validationText);
251
+ const valueOutsideRange = this.minValueUnattained || this.maxValueExceeded;
252
+ const charsOutsideRange = maxNumChars > 0 || this.minCharactersUnattained;
253
+ return ((!emptyString || valueOutsideRange || charsOutsideRange) &&
254
+ !this.validationInlineInternal);
255
+ };
256
+ // triggered when attributes of host element change
257
+ this.hostMutationCallback = (mutationList) => {
258
+ let forceComponentUpdate = false;
259
+ mutationList.forEach(({ attributeName, type, addedNodes, removedNodes }) => {
260
+ if (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {
261
+ const attribute = this.el.getAttribute(attributeName);
262
+ if (attribute) {
263
+ this.inheritedAttributes[attributeName] = attribute;
264
+ }
265
+ forceComponentUpdate = true;
266
+ }
267
+ else if (type === "childList") {
268
+ forceComponentUpdate = checkSlotInChildMutations(addedNodes, removedNodes, "icon");
269
+ }
270
+ });
271
+ if (forceComponentUpdate) {
272
+ forceUpdate(this);
273
+ }
274
+ };
275
+ }
276
+ watchDisabledHandler() {
277
+ removeDisabledFalse(this.disabled, this.el);
278
+ }
279
+ debounceChanged() {
280
+ this.icChange = debounceEvent(this.icChange, this.debounce);
281
+ }
282
+ watchValueHandler(newValue) {
283
+ let value;
284
+ if (this.maxCharacters > 0) {
285
+ value = newValue.substring(0, this.maxCharacters);
286
+ if (value.length < newValue.length) {
287
+ this.maxCharactersWarning = true;
288
+ }
289
+ this.value = value;
290
+ }
291
+ else {
292
+ value = newValue;
293
+ }
294
+ if (this.inputEl && this.inputEl.value !== value) {
295
+ this.inputEl.value = value;
296
+ }
297
+ this.getMaxValueExceeded(value);
298
+ this.getMaxCharactersReached(value);
299
+ this.icChange.emit({ value });
300
+ }
301
+ connectedCallback() {
302
+ this.debounceChanged();
303
+ }
304
+ disconnectedCallback() {
305
+ var _a;
306
+ removeFormResetListener(this.el, this.handleFormReset);
307
+ (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
308
+ }
309
+ componentWillLoad() {
310
+ if (this.value !== this.initialValue) {
311
+ this.watchValueHandler(this.value);
312
+ }
313
+ else if (this.maxCharacters > 0) {
314
+ this.value = this.value.substring(0, this.maxCharacters);
315
+ }
316
+ this.getMaxValueExceeded(this.value);
317
+ this.getMaxCharactersReached(this.value);
318
+ this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);
319
+ if (this.readonly) {
320
+ this.maxValueExceeded = false;
321
+ this.minValueUnattained = false;
322
+ }
323
+ addFormResetListener(this.el, this.handleFormReset);
324
+ removeDisabledFalse(this.disabled, this.el);
325
+ }
326
+ componentDidLoad() {
327
+ onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Text Field");
328
+ if (this.validationInlineInternal) {
329
+ this.getValidationText.emit({ value: this.validationText });
330
+ }
331
+ this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
332
+ this.hostMutationObserver.observe(this.el, {
333
+ attributes: true,
334
+ childList: true,
335
+ });
336
+ if (this.autofocus && !this.disabled && !this.readonly) {
337
+ this.interval = setInterval(this.checkChildHydration, 50);
338
+ }
339
+ }
340
+ handleKeyDown(ev) {
341
+ var _a, _b;
342
+ this.icKeydown.emit({
343
+ event: ev,
344
+ cursorPosition: (_a = this.inputEl.selectionStart) !== null && _a !== void 0 ? _a : 0,
345
+ selectionEnd: (_b = this.inputEl.selectionEnd) !== null && _b !== void 0 ? _b : 0,
346
+ });
347
+ if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {
348
+ this.maxCharactersWarning = this.maxCharactersReached;
349
+ }
350
+ }
351
+ /**
352
+ * Sets focus on the native `input`.
353
+ */
354
+ async setFocus() {
355
+ var _a;
356
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
357
+ }
358
+ render() {
359
+ const { inputId, name, label, required, size, placeholder, helperText, hideCharCount, rows, resize, disabled, value, min, max, numChars, readonly, maxCharacters, maxCharactersMessage, maxCharactersWarning, maxCharactersReached, maxMessage, minCharacters, minCharactersMessage, minCharactersUnattained, minMessage, minValueUnattained, maxValueExceeded, validationAriaLive, validationStatus, validationText, validationInline, validationInlineInternal, spellcheck, inputmode, fullWidth, truncateValue, hiddenInput, theme, hideLabel, type, autocapitalize, ariaActiveDescendant, inheritedAttributes, ariaExpanded, ariaOwns, autocomplete, role, isFocussed, } = this;
360
+ const el = this.el;
361
+ const disabledMode = readonly || disabled;
362
+ const currentStatus = maxValueExceeded ||
363
+ minValueUnattained ||
364
+ minCharactersUnattained ||
365
+ maxCharactersWarning
366
+ ? maxCharactersWarning
367
+ ? IcInformationStatus.Warning
368
+ : IcInformationStatus.Error
369
+ : validationStatus;
370
+ const currentValidationText = maxCharactersWarning
371
+ ? maxCharactersMessage
372
+ : maxValueExceeded
373
+ ? maxMessage
374
+ : minValueUnattained
375
+ ? minMessage
376
+ : minCharactersUnattained
377
+ ? minCharactersMessage
378
+ : validationText;
379
+ const maxNumChars = readonly ? 0 : maxCharacters;
380
+ const messageAriaLive = validationAriaLive === "default"
381
+ ? maxCharactersWarning ||
382
+ maxValueExceeded ||
383
+ minValueUnattained ||
384
+ currentStatus === IcInformationStatus.Error
385
+ ? "assertive"
386
+ : "polite"
387
+ : validationAriaLive;
388
+ const showStatusText = this.hasStatus(currentStatus) &&
389
+ !(currentStatus == IcInformationStatus.Success && validationInline) &&
390
+ !validationInlineInternal;
391
+ const multiline = rows > 1;
392
+ const hiddenCharCountDescId = maxCharacters > 0 ? `${inputId}-char-count-desc` : "";
393
+ const charsRemaining = maxNumChars - numChars;
394
+ const remainingCharCountDescId = maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : "";
395
+ const remainingCharCountDesc = `${charsRemaining} character${charsRemaining === 1 ? "" : "s"} remaining.`;
396
+ const describedBy = `${getInputDescribedByText(this.el, inputId, helperText !== "", showStatusText)} ${hiddenCharCountDescId} ${numChars > 0 ? remainingCharCountDescId : ""}`.trim();
397
+ const disabledText = disabledMode && !readonly;
398
+ const showLeftIcon = !!this.el.querySelector(`[slot="icon"]`) && !disabledText;
399
+ const invalid = `${currentStatus === IcInformationStatus.Error}`;
400
+ hiddenInput
401
+ ? renderHiddenInput(this.el, value, name, disabledMode)
402
+ : removeHiddenInput(this.el);
403
+ return (h(Host, { key: '4eb073ddbce5dc93c167bbaa66b94daf51c4a828', class: {
404
+ "ic-text-field-full-width": fullWidth,
405
+ "ic-text-field-disabled": disabledMode,
406
+ [`ic-theme-${theme}`]: theme !== "inherit",
407
+ } }, h("ic-input-container", { key: '07a171c8cbd55588387145b3d8469e6930ab4a7c', readonly: readonly, disabled: disabledMode }, !hideLabel && (h("ic-input-label", { key: 'b5f6b3b831c08cd4958458188c8d6be3219f1479', for: inputId, label: label, helperText: helperText, required: required, disabled: disabledText, readonly: readonly }, h("slot", { key: '1c33ec889c6a730f4b7e1075978e13f05a21f53a', name: "helper-text", slot: "helper-text" }))), h("ic-input-component-container", { key: '786f1d5b65b4b66838aba7320cd5b479cd8305e4', size: size, validationStatus: currentStatus, multiLine: multiline, disabled: disabledMode, readonly: readonly, validationInline: validationInline, fullWidth: fullWidth }, showLeftIcon && (h("span", { key: 'ed91ef841c132afd05cdee83e735413ad1d9e5a3', class: {
408
+ readonly,
409
+ "has-value": this.getNumberOfCharacters(value) > 0,
410
+ }, slot: "left-icon" }, h("slot", { key: 'ee52a8fc57ce814d713d1a0807d8dc040ced4d41', name: "icon" }))), !multiline ? (h("input", Object.assign({ id: inputId, name: name, ref: (el) => (this.inputEl = el), type: type, min: min, max: max, value: value, class: {
411
+ "no-left-pad": !showLeftIcon && readonly,
412
+ readonly,
413
+ "truncate-value": truncateValue,
414
+ }, placeholder: placeholder ? placeholder : "", required: required, disabled: disabledMode, readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-activedescendant": ariaActiveDescendant, "aria-expanded": ariaExpanded, "aria-owns": ariaOwns, autocomplete: autocomplete, autocapitalize: autocapitalize, spellcheck: spellcheck, inputmode: inputmode, role: role || undefined, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, inheritedAttributes))) : (h("textarea", Object.assign({ id: inputId, class: {
415
+ "no-resize": resize === false || !!readonly,
416
+ "no-left-pad": !showLeftIcon && !!readonly,
417
+ readonly: !!readonly,
418
+ }, name: name, ref: (el) => (this.inputEl = el), value: value, rows: rows, required: required, disabled: disabledMode, placeholder: placeholder, readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onScroll: this.onTextAreaScroll, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, autocomplete: autocomplete, autocapitalize: autocapitalize, spellcheck: spellcheck, inputmode: inputmode, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, inheritedAttributes))), isSlotUsed(el, "clear-button") && (h("slot", { key: '06f74409f7256055715e982be8e68780df1126b5', name: "clear-button" })), isSlotUsed(el, "search-submit-button") && (h("slot", { key: '7ed8058fb83dfa713539348de0c37929a0225129', name: "search-submit-button" }))), isSlotUsed(el, "menu") && h("slot", { key: 'e56ca28bcb4154d65bb46f1b3625e29c0038e9b7', name: "menu" }), h("ic-input-validation", { key: '3c64d8598155035ebde2419e407e89c35053c64a', class: { "show-validation": this.showValidationMargin() }, status: this.hasStatus(currentStatus) === false ||
419
+ (currentStatus === IcInformationStatus.Success &&
420
+ validationInline) ||
421
+ validationInlineInternal
422
+ ? ""
423
+ : currentStatus, message: showStatusText ? currentValidationText : "", ariaLiveMode: messageAriaLive, for: inputId, fullWidth: fullWidth }, isSlotUsed(el, "validation-text") && (h("slot", { key: 'd40417b8b52597518c4b1e804ede9ae59364c0c9', name: "validation-text", slot: "validation-message" })), !readonly && maxNumChars > 0 && (h("div", { key: 'e4dc991f18d280cf05f3ead492e17eb37b15cbb1', slot: "validation-message-adornment" }, !hideCharCount && (h("ic-typography", { key: 'e668b2a73a860bd7a53300440a019239363f2350', variant: "caption", class: "char-count-text" }, h("span", { key: '835dea67f0e27e0c86e0236f48ecd7a5265719a3', class: "char-count" }, numChars, "/", maxNumChars))), h("span", { key: '0a4d3628c4ecfe1102b015c3bf4a345eb2a18674', class: "remaining-char-count-desc", "aria-live": "polite", hidden: !isFocussed, id: remainingCharCountDescId }, remainingCharCountDesc), h("span", { key: '365c77cbed1ca017f3f19f13be9b76561ec5cf57', hidden: true, id: hiddenCharCountDescId }, "Field can contain a maximum of ", maxNumChars, " characters.")))))));
424
+ }
425
+ get el() { return this; }
426
+ static get watchers() { return {
427
+ "disabled": ["watchDisabledHandler"],
428
+ "debounce": ["debounceChanged"],
429
+ "value": ["watchValueHandler"]
430
+ }; }
431
+ static get style() { return IcTextFieldStyle0; }
432
+ }, [1, "ic-text-field", {
433
+ "ariaActiveDescendant": [1, "aria-active-descendant"],
434
+ "ariaAutocomplete": [1, "aria-autocomplete"],
435
+ "ariaExpanded": [1, "aria-expanded"],
436
+ "ariaOwns": [1, "aria-owns"],
437
+ "autocapitalize": [1],
438
+ "autocomplete": [1],
439
+ "autocorrect": [1],
440
+ "autofocus": [4],
441
+ "disabled": [4],
442
+ "fullWidth": [4, "full-width"],
443
+ "helperText": [1, "helper-text"],
444
+ "hideCharCount": [4, "hide-char-count"],
445
+ "hideLabel": [4, "hide-label"],
446
+ "hiddenInput": [4, "hidden-input"],
447
+ "inputId": [1, "input-id"],
448
+ "inputmode": [1],
449
+ "label": [1],
450
+ "max": [8],
451
+ "maxCharacters": [2, "max-characters"],
452
+ "maxCharactersMessage": [1, "max-characters-message"],
453
+ "maxMessage": [1, "max-message"],
454
+ "min": [8],
455
+ "minCharacters": [2, "min-characters"],
456
+ "minCharactersMessage": [1, "min-characters-message"],
457
+ "minMessage": [1, "min-message"],
458
+ "name": [1],
459
+ "placeholder": [1],
460
+ "readonly": [516],
461
+ "required": [4],
462
+ "resize": [4],
463
+ "role": [1],
464
+ "rows": [2],
465
+ "size": [1],
466
+ "spellcheck": [4],
467
+ "theme": [1],
468
+ "truncateValue": [4, "truncate-value"],
469
+ "type": [1],
470
+ "validationAriaLive": [1, "validation-aria-live"],
471
+ "validationInline": [4, "validation-inline"],
472
+ "validationInlineInternal": [4, "validation-inline-internal"],
473
+ "validationStatus": [1, "validation-status"],
474
+ "validationText": [1, "validation-text"],
475
+ "debounce": [2],
476
+ "value": [1537],
477
+ "numChars": [32],
478
+ "maxCharactersReached": [32],
479
+ "maxCharactersWarning": [32],
480
+ "minCharactersUnattained": [32],
481
+ "maxValueExceeded": [32],
482
+ "minValueUnattained": [32],
483
+ "isFocussed": [32],
484
+ "initialValue": [32],
485
+ "setFocus": [64]
486
+ }, [[0, "keydown", "handleKeyDown"]], {
487
+ "disabled": ["watchDisabledHandler"],
488
+ "debounce": ["debounceChanged"],
489
+ "value": ["watchValueHandler"]
490
+ }]);
491
+ function defineCustomElement() {
492
+ if (typeof customElements === "undefined") {
493
+ return;
494
+ }
495
+ const components = ["ic-text-field", "ic-input-component-container", "ic-input-container", "ic-input-label", "ic-input-validation", "ic-typography"];
496
+ components.forEach(tagName => { switch (tagName) {
497
+ case "ic-text-field":
498
+ if (!customElements.get(tagName)) {
499
+ customElements.define(tagName, TextField);
500
+ }
501
+ break;
502
+ case "ic-input-component-container":
503
+ if (!customElements.get(tagName)) {
504
+ defineCustomElement$5();
505
+ }
506
+ break;
507
+ case "ic-input-container":
508
+ if (!customElements.get(tagName)) {
509
+ defineCustomElement$4();
510
+ }
511
+ break;
512
+ case "ic-input-label":
513
+ if (!customElements.get(tagName)) {
514
+ defineCustomElement$3();
515
+ }
516
+ break;
517
+ case "ic-input-validation":
518
+ if (!customElements.get(tagName)) {
519
+ defineCustomElement$2();
520
+ }
521
+ break;
522
+ case "ic-typography":
523
+ if (!customElements.get(tagName)) {
524
+ defineCustomElement$1();
525
+ }
526
+ break;
527
+ } });
528
+ }
529
+
530
+ export { TextField as T, defineCustomElement as d };
531
+
532
+ //# sourceMappingURL=ic-text-field2.js.map
@@ -0,0 +1 @@
1
+ {"file":"ic-text-field2.js","mappings":"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","names":[],"sources":["src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --border-color: var(--ic-text-field-border-neutral);\n --border-color-hover: var(--ic-text-field-border-neutral-hover);\n --border-color-pressed: var(--ic-text-field-border-neutral-pressed);\n --border-color-disabled: var(--ic-text-field-border-disabled);\n --border-color-error: var(--ic-text-field-border-error);\n --border-color-error-hover: var(--ic-text-field-border-error-hover);\n --border-color-error-pressed: var(--ic-text-field-border-error-pressed);\n --border-color-success: var(--ic-text-field-border-success);\n --border-color-success-hover: var(--ic-text-field-border-success-hover);\n --border-color-success-pressed: var(--ic-text-field-border-success-pressed);\n --border-color-warning: var(--ic-text-field-border-warning);\n --border-color-warning-hover: var(--ic-text-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-text-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-text-field-label);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle);\n --ic-input-validation-status-text-color: var(--ic-text-field-state-text);\n --ic-input-validation-error: var(--ic-text-field-state-icon-error);\n --ic-input-validation-warning-icon-color: var(\n --ic-text-field-state-icon-warning\n );\n --ic-input-validation-success-icon-color: var(\n --ic-text-field-state-icon-success\n );\n --ic-input-component-container-success-icon-inline-color: var(\n --ic-text-field-state-icon-success\n );\n}\n\n:host(.ic-text-field-disabled) {\n --ic-input-label-text-color: var(--ic-text-field-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle-disabled);\n --text-field-placeholder-color: var(\n --ic-text-field-text-area-placeholder-text-disabled\n );\n}\n\n:host(.ic-text-field-full-width) {\n width: 100%;\n}\n\n::placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--text-field-text-color, var(--ic-text-field-text));\n background-color: var(--input-bg-color, var(--ic-text-field-background));\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n caret-color: var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n );\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n );\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-text-field-read-only-input-text-internal);\n background: transparent;\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit);\n\n padding-right: var(--ic-space-xxxs);\n}\n\n:host(.ic-text-field-disabled) .char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit-disabled);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-text-disabled);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-input-internal-icon);\n}\n\n.char-count {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\n.remaining-char-count-desc {\n position: absolute;\n left: -9999px;\n}\n\n.show-validation {\n margin-top: var(--ic-space-xs);\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n IcValidationAriaLive,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldKeydownEventDetail,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the text field.\n * @slot validation-text - Content is set as validation text for the text field.\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n @State() isFocussed: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete?: IcAriaAutocompleteTypes;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string | null;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns?: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete?: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect?: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount = false;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max?: string | number;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage = `Maximum value of ${this.max} exceeded`;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min?: string | number;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters = 0;\n\n /**\n * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage = `Minimum value of ${this.min} not met`;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string | null;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue = false;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * The value of the `aria-live` attribute on the validation message. When set to \"default\", the `aria-live` value will be handled automatically, e.g. \"assertive\" for `validation-status=\"error\"`.\n */\n @Prop() validationAriaLive: IcValidationAriaLive = \"default\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value = \"\";\n @State() initialValue = this.value;\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value.length < newValue.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<IcTextFieldKeydownEventDetail>;\n\n /**\n * Emitted when the textarea variant is scrolled.\n */\n @Event() icScroll: EventEmitter;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n if (\n this.hideLabel ||\n this.el.shadowRoot\n ?.querySelector(\"ic-typography\")\n ?.classList.contains(\"hydrated\")\n ) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({\n event: ev,\n cursorPosition: this.inputEl.selectionStart ?? 0,\n selectionEnd: this.inputEl.selectionEnd ?? 0,\n });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters > 0 && this.numChars >= this.maxCharacters;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const { value } = target;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 && this.numChars < this.minCharacters;\n this.icBlur.emit({ value });\n this.isFocussed = false;\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: target.value });\n this.isFocussed = true;\n };\n\n private onTextAreaScroll = () => {\n this.icScroll.emit();\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n private showValidationMargin = (): boolean => {\n const maxNumChars = this.readonly ? 0 : this.maxCharacters;\n const emptyString =\n isEmptyString(this.validationStatus) ||\n isEmptyString(this.validationText);\n const valueOutsideRange = this.minValueUnattained || this.maxValueExceeded;\n const charsOutsideRange = maxNumChars > 0 || this.minCharactersUnattained;\n return (\n (!emptyString || valueOutsideRange || charsOutsideRange) &&\n !this.validationInlineInternal\n );\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationAriaLive,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n hideLabel,\n type,\n autocapitalize,\n ariaActiveDescendant,\n inheritedAttributes,\n ariaExpanded,\n ariaOwns,\n autocomplete,\n role,\n isFocussed,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n validationAriaLive === \"default\"\n ? maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\"\n : validationAriaLive;\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const charsRemaining = maxNumChars - numChars;\n const remainingCharCountDescId =\n maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : \"\";\n const remainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n\n const describedBy = `${getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showStatusText\n )} ${hiddenCharCountDescId} ${\n numChars > 0 ? remainingCharCountDescId : \"\"\n }`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(this.el as HTMLElement, value, name, disabledMode)\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": fullWidth,\n \"ic-text-field-disabled\": disabledMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={type}\n min={min}\n max={max}\n value={value}\n class={{\n \"no-left-pad\": !showLeftIcon && readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={ariaExpanded}\n aria-owns={ariaOwns}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={role || undefined}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !showLeftIcon && !!readonly,\n readonly: !!readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onScroll={this.onTextAreaScroll}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n <ic-input-validation\n class={{ \"show-validation\": this.showValidationMargin() }}\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 {isSlotUsed(el, \"validation-text\") && (\n <slot name=\"validation-text\" slot=\"validation-message\"></slot>\n )}\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span\n class=\"remaining-char-count-desc\"\n aria-live=\"polite\"\n hidden={!isFocussed}\n id={remainingCharCountDescId}\n >\n {remainingCharCountDesc}\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 </ic-input-container>\n </Host>\n );\n }\n}\n"],"version":3}