@ukic/canary-web-components 3.0.0-canary.33 → 3.0.0-canary.35

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 (946) hide show
  1. package/dist/cjs/{OpenInNew-7bac24f7.js → OpenInNew-add95b7b.js} +1 -1
  2. package/dist/cjs/OpenInNew-add95b7b.js.map +1 -0
  3. package/dist/{esm/purify-6eaa9893.js → cjs/common-helpers-577fc5b0.js} +22 -2
  4. package/dist/cjs/common-helpers-577fc5b0.js.map +1 -0
  5. package/dist/cjs/core.cjs.js +1 -1
  6. package/dist/cjs/{helpers-2cc5f6db.js → helpers-cb472df9.js} +1 -128
  7. package/dist/cjs/helpers-cb472df9.js.map +1 -0
  8. package/dist/cjs/helpers-f81fed28.js.map +1 -1
  9. package/dist/cjs/ic-badge-27f26087.js +184 -0
  10. package/dist/cjs/ic-badge-27f26087.js.map +1 -0
  11. package/dist/cjs/ic-badge.cjs.entry.js +4 -177
  12. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-button-4c329a7d.js +435 -0
  14. package/dist/cjs/ic-button-4c329a7d.js.map +1 -0
  15. package/dist/cjs/ic-button_3.cjs.entry.js +9 -875
  16. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-calendar_2.cjs.entry.js +22 -13
  18. package/dist/cjs/ic-calendar_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card-horizontal.cjs.entry.js +10 -5
  20. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox-ac44e0a2.js +204 -0
  22. package/dist/cjs/ic-checkbox-ac44e0a2.js.map +1 -0
  23. package/dist/cjs/ic-checkbox_3.cjs.entry.js +22 -208
  24. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-chip-1ff0950a.js +133 -0
  26. package/dist/cjs/ic-chip-1ff0950a.js.map +1 -0
  27. package/dist/cjs/ic-chip.cjs.entry.js +4 -119
  28. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +19 -4
  30. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-data-table.cjs.entry.js +18 -10
  32. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-date-picker.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +7 -229
  35. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-input-validation-bf7afa43.js +259 -0
  37. package/dist/cjs/ic-input-validation-bf7afa43.js.map +1 -0
  38. package/dist/cjs/ic-link-c77848ab.js +111 -0
  39. package/dist/cjs/ic-link-c77848ab.js.map +1 -0
  40. package/dist/cjs/ic-link.cjs.entry.js +5 -104
  41. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-loading-indicator-bbd1572c.js +233 -0
  43. package/dist/cjs/ic-loading-indicator-bbd1572c.js.map +1 -0
  44. package/dist/cjs/ic-menu-e9a1a0d3.js +987 -0
  45. package/dist/cjs/ic-menu-e9a1a0d3.js.map +1 -0
  46. package/dist/cjs/ic-menu.cjs.entry.js +6 -991
  47. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-navigation-item-59bd8957.js +243 -0
  49. package/dist/cjs/ic-navigation-item-59bd8957.js.map +1 -0
  50. package/dist/cjs/ic-navigation-item.cjs.entry.js +5 -232
  51. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-page-header-3d8b3a59.js +131 -0
  53. package/dist/cjs/ic-page-header-3d8b3a59.js.map +1 -0
  54. package/dist/cjs/ic-page-header.cjs.entry.js +4 -124
  55. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-pagination_3.cjs.entry.js +16 -0
  57. package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -0
  58. package/dist/cjs/ic-section-container-128e2db0.js +34 -0
  59. package/dist/cjs/ic-section-container-128e2db0.js.map +1 -0
  60. package/dist/cjs/ic-section-container.cjs.entry.js +3 -27
  61. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-select-bc8ca251.js +876 -0
  63. package/dist/cjs/ic-select-bc8ca251.js.map +1 -0
  64. package/dist/cjs/ic-skip-link-43203eea.js +60 -0
  65. package/dist/cjs/ic-skip-link-43203eea.js.map +1 -0
  66. package/dist/cjs/ic-skip-link.cjs.entry.js +3 -53
  67. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-status-tag-a4377a6b.js +55 -0
  69. package/dist/cjs/ic-status-tag-a4377a6b.js.map +1 -0
  70. package/dist/cjs/ic-status-tag.cjs.entry.js +4 -48
  71. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-table-of-contents.cjs.entry.js +14 -3
  73. package/dist/cjs/ic-table-of-contents.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-text-field-5d7ae957.js +732 -0
  75. package/dist/cjs/ic-text-field-5d7ae957.js.map +1 -0
  76. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-time-input.cjs.entry.js +17 -7
  79. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-time-selector.cjs.entry.js +53 -170
  81. package/dist/cjs/ic-time-selector.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-toggle-button-ce67a1ec.js +452 -0
  83. package/dist/cjs/ic-toggle-button-ce67a1ec.js.map +1 -0
  84. package/dist/cjs/ic-toggle-button_2.cjs.entry.js +5 -445
  85. package/dist/cjs/ic-toggle-button_2.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-tooltip-3cc80832.js +239 -0
  87. package/dist/cjs/ic-tooltip-3cc80832.js.map +1 -0
  88. package/dist/cjs/ic-top-navigation-a6c4be7b.js +237 -0
  89. package/dist/cjs/ic-top-navigation-a6c4be7b.js.map +1 -0
  90. package/dist/cjs/ic-top-navigation.cjs.entry.js +4 -227
  91. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tree-item.cjs.entry.js +5 -4
  93. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tree-view.cjs.entry.js +7 -5
  95. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-typography-a199c128.js +198 -0
  97. package/dist/cjs/ic-typography-a199c128.js.map +1 -0
  98. package/dist/cjs/ic-typography.cjs.entry.js +4 -191
  99. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  100. package/dist/cjs/index-d337cd8a.js +6 -170
  101. package/dist/cjs/loader.cjs.js +1 -1
  102. package/dist/collection/collection-manifest.json +28 -76
  103. package/dist/collection/components/ic-calendar/ic-calendar.js +12 -10
  104. package/dist/collection/components/ic-calendar/ic-calendar.js.map +1 -1
  105. package/dist/collection/components/ic-calendar/ic-day-button.js +1 -0
  106. package/dist/collection/components/ic-calendar/ic-day-button.js.map +1 -1
  107. package/dist/collection/components/ic-calendar/ic-month-picker.js +1 -0
  108. package/dist/collection/components/ic-calendar/ic-month-picker.js.map +1 -1
  109. package/dist/collection/components/ic-calendar/ic-year-picker.js +1 -0
  110. package/dist/collection/components/ic-calendar/ic-year-picker.js.map +1 -1
  111. package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js +1 -1
  112. package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js.map +1 -1
  113. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +9 -5
  114. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
  115. package/dist/collection/components/ic-data-table/ic-data-table.js +15 -8
  116. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  117. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +18 -4
  118. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -1
  119. package/dist/collection/components/ic-date-input/ic-date-input.js +13 -3
  120. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  121. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +1 -1
  122. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +1 -1
  123. package/dist/collection/components/ic-date-picker/ic-date-picker.js +2 -2
  124. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +19 -12
  125. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  126. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js +1 -0
  127. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js.map +1 -1
  128. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js +12 -3
  129. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js.map +1 -1
  130. package/dist/collection/components/ic-time-input/ic-time-input.js +20 -8
  131. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  132. package/dist/collection/components/ic-time-input/ic-time-input.stories.js +4 -4
  133. package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
  134. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js +1 -1
  135. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js.map +1 -1
  136. package/dist/collection/components/ic-time-selector/ic-time-selector.js +55 -200
  137. package/dist/collection/components/ic-time-selector/ic-time-selector.js.map +1 -1
  138. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js +50 -24
  139. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js.map +1 -1
  140. package/dist/collection/components/ic-tree-item/ic-tree-item.js +4 -4
  141. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  142. package/dist/collection/components/ic-tree-view/ic-tree-view.js +5 -3
  143. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  144. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js +32 -2
  145. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js.map +1 -1
  146. package/dist/collection/utils/types.js.map +1 -1
  147. package/dist/components/common-helpers.js +1364 -3
  148. package/dist/components/common-helpers.js.map +1 -1
  149. package/dist/components/helpers.js +1 -116
  150. package/dist/components/helpers.js.map +1 -1
  151. package/dist/components/helpers2.js.map +1 -1
  152. package/dist/components/ic-badge.d.ts +11 -0
  153. package/dist/components/ic-badge.js +3 -3
  154. package/dist/components/ic-badge.js.map +1 -1
  155. package/dist/components/ic-button.d.ts +11 -0
  156. package/dist/components/ic-button2.js +5 -5
  157. package/dist/components/ic-button2.js.map +1 -1
  158. package/dist/components/ic-calendar2.js +12 -11
  159. package/dist/components/ic-calendar2.js.map +1 -1
  160. package/dist/components/ic-card-horizontal.js +6 -5
  161. package/dist/components/ic-card-horizontal.js.map +1 -1
  162. package/dist/components/ic-checkbox.d.ts +11 -0
  163. package/dist/components/ic-checkbox2.js +5 -5
  164. package/dist/components/ic-checkbox2.js.map +1 -1
  165. package/dist/components/ic-chip.d.ts +11 -0
  166. package/dist/components/ic-chip.js +14 -6
  167. package/dist/components/ic-chip.js.map +1 -1
  168. package/dist/components/ic-data-table-title-bar.js +18 -7
  169. package/dist/components/ic-data-table-title-bar.js.map +1 -1
  170. package/dist/components/ic-data-table.js +34 -40
  171. package/dist/components/ic-data-table.js.map +1 -1
  172. package/dist/components/ic-date-input2.js +10 -6
  173. package/dist/components/ic-date-input2.js.map +1 -1
  174. package/dist/components/ic-date-picker.js +2 -2
  175. package/dist/components/ic-empty-state.d.ts +11 -0
  176. package/dist/components/ic-empty-state2.js +3 -3
  177. package/dist/components/ic-empty-state2.js.map +1 -1
  178. package/dist/components/ic-input-component-container.d.ts +11 -0
  179. package/dist/components/ic-input-component-container2.js +5 -4
  180. package/dist/components/ic-input-component-container2.js.map +1 -1
  181. package/dist/components/ic-input-container.d.ts +11 -0
  182. package/dist/components/ic-input-container2.js +2 -2
  183. package/dist/components/ic-input-container2.js.map +1 -1
  184. package/dist/components/ic-input-label.d.ts +11 -0
  185. package/dist/components/ic-input-label2.js +3 -3
  186. package/dist/components/ic-input-label2.js.map +1 -1
  187. package/dist/components/ic-input-validation.d.ts +11 -0
  188. package/dist/components/ic-input-validation2.js +21 -5
  189. package/dist/components/ic-input-validation2.js.map +1 -1
  190. package/dist/components/ic-link.d.ts +11 -0
  191. package/dist/components/ic-link2.js +2 -2
  192. package/dist/components/ic-link2.js.map +1 -1
  193. package/dist/components/ic-loading-indicator.d.ts +11 -0
  194. package/dist/components/ic-loading-indicator2.js +27 -13
  195. package/dist/components/ic-loading-indicator2.js.map +1 -1
  196. package/dist/components/ic-menu.d.ts +11 -0
  197. package/dist/components/ic-menu2.js +11 -22
  198. package/dist/components/ic-menu2.js.map +1 -1
  199. package/dist/components/ic-navigation-item.d.ts +11 -0
  200. package/dist/components/ic-navigation-item.js +8 -4
  201. package/dist/components/ic-navigation-item.js.map +1 -1
  202. package/dist/components/ic-page-header.d.ts +11 -0
  203. package/dist/components/ic-page-header.js +9 -33
  204. package/dist/components/ic-page-header.js.map +1 -1
  205. package/dist/components/ic-pagination-bar2.js +23 -29
  206. package/dist/components/ic-pagination-bar2.js.map +1 -1
  207. package/dist/components/ic-pagination.d.ts +11 -0
  208. package/dist/components/ic-pagination2.js +34 -15
  209. package/dist/components/ic-pagination2.js.map +1 -1
  210. package/dist/components/ic-section-container.d.ts +11 -0
  211. package/dist/components/ic-section-container2.js +2 -2
  212. package/dist/components/ic-section-container2.js.map +1 -1
  213. package/dist/components/ic-select.d.ts +11 -0
  214. package/dist/components/ic-select2.js +7 -7
  215. package/dist/components/ic-select2.js.map +1 -1
  216. package/dist/components/ic-skip-link.d.ts +11 -0
  217. package/dist/components/ic-skip-link.js +2 -2
  218. package/dist/components/ic-skip-link.js.map +1 -1
  219. package/dist/components/ic-status-tag.d.ts +11 -0
  220. package/dist/components/ic-status-tag.js +2 -2
  221. package/dist/components/ic-status-tag.js.map +1 -1
  222. package/dist/components/ic-table-of-contents.js +5 -4
  223. package/dist/components/ic-table-of-contents.js.map +1 -1
  224. package/dist/components/ic-text-field.d.ts +11 -0
  225. package/dist/components/ic-text-field2.js +6 -6
  226. package/dist/components/ic-text-field2.js.map +1 -1
  227. package/dist/components/ic-theme.d.ts +11 -0
  228. package/dist/components/ic-theme.js +2 -2
  229. package/dist/components/ic-theme.js.map +1 -1
  230. package/dist/components/ic-time-input.js +16 -12
  231. package/dist/components/ic-time-input.js.map +1 -1
  232. package/dist/components/ic-time-selector.js +51 -173
  233. package/dist/components/ic-time-selector.js.map +1 -1
  234. package/dist/components/ic-toggle-button-group.d.ts +11 -0
  235. package/dist/components/ic-toggle-button-group2.js +2 -2
  236. package/dist/components/ic-toggle-button-group2.js.map +1 -1
  237. package/dist/components/ic-toggle-button.d.ts +11 -0
  238. package/dist/components/ic-toggle-button2.js +3 -3
  239. package/dist/components/ic-toggle-button2.js.map +1 -1
  240. package/dist/components/ic-tooltip.d.ts +11 -0
  241. package/dist/components/ic-tooltip2.js +3 -3
  242. package/dist/components/ic-tooltip2.js.map +1 -1
  243. package/dist/components/ic-top-navigation.d.ts +11 -0
  244. package/dist/components/ic-top-navigation.js +12 -21
  245. package/dist/components/ic-top-navigation.js.map +1 -1
  246. package/dist/components/ic-tree-item.js +4 -5
  247. package/dist/components/ic-tree-item.js.map +1 -1
  248. package/dist/components/ic-tree-view.js +5 -4
  249. package/dist/components/ic-tree-view.js.map +1 -1
  250. package/dist/components/ic-typography.d.ts +11 -0
  251. package/dist/components/ic-typography2.js +3 -3
  252. package/dist/components/ic-typography2.js.map +1 -1
  253. package/dist/components/success-icon.js +11 -0
  254. package/dist/components/success-icon.js.map +1 -0
  255. package/dist/core/core.css +1 -1
  256. package/dist/core/core.esm.js +1 -1
  257. package/dist/core/core.esm.js.map +1 -1
  258. package/dist/core/p-01b04775.js +2 -0
  259. package/dist/core/p-01b04775.js.map +1 -0
  260. package/dist/core/p-02d0a238.entry.js +2 -0
  261. package/dist/core/{p-c4b2774d.entry.js → p-0592277b.js} +2 -2
  262. package/dist/core/p-0592277b.js.map +1 -0
  263. package/dist/core/p-0664935b.js +2 -0
  264. package/dist/core/p-0664935b.js.map +1 -0
  265. package/dist/core/p-0aa06309.entry.js +2 -0
  266. package/dist/core/p-0aa06309.entry.js.map +1 -0
  267. package/dist/core/p-0c02b16c.entry.js +2 -0
  268. package/dist/core/p-1836fef6.entry.js +2 -0
  269. package/dist/core/p-1836fef6.entry.js.map +1 -0
  270. package/dist/core/{p-79ead0e7.entry.js → p-18d5e467.js} +2 -2
  271. package/dist/core/p-18d5e467.js.map +1 -0
  272. package/dist/core/p-1ddc08d0.js +2 -0
  273. package/dist/core/p-1ddc08d0.js.map +1 -0
  274. package/dist/core/{p-201b41c7.entry.js → p-22267c01.entry.js} +2 -2
  275. package/dist/core/p-27962d4d.entry.js +2 -0
  276. package/dist/core/p-384a7f60.entry.js +2 -0
  277. package/dist/core/p-3ed17bfc.entry.js +2 -0
  278. package/dist/core/p-3ed17bfc.entry.js.map +1 -0
  279. package/dist/core/p-42bacb0d.entry.js +2 -0
  280. package/dist/core/p-42bacb0d.entry.js.map +1 -0
  281. package/dist/core/p-4385552a.entry.js +2 -0
  282. package/dist/core/p-4385552a.entry.js.map +1 -0
  283. package/dist/core/{p-551a0fc1.entry.js → p-510f8257.entry.js} +2 -2
  284. package/dist/core/p-510f8257.entry.js.map +1 -0
  285. package/dist/core/{p-939025af.entry.js → p-5585895d.js} +2 -2
  286. package/dist/core/p-5585895d.js.map +1 -0
  287. package/dist/core/p-56ef5c79.js +2 -0
  288. package/dist/core/p-56ef5c79.js.map +1 -0
  289. package/dist/core/{p-7efdbab8.entry.js → p-5d5b1aa8.js} +2 -2
  290. package/dist/core/p-5d5b1aa8.js.map +1 -0
  291. package/dist/core/p-5e14ec1e.entry.js +2 -0
  292. package/dist/core/p-5e14ec1e.entry.js.map +1 -0
  293. package/dist/core/p-67a25154.entry.js +2 -0
  294. package/dist/core/p-67a25154.entry.js.map +1 -0
  295. package/dist/core/{p-ea1ea1b9.js → p-67a4f674.js} +1 -1
  296. package/dist/core/p-67a4f674.js.map +1 -0
  297. package/dist/core/p-6f45df7a.entry.js +2 -0
  298. package/dist/core/p-6f45df7a.entry.js.map +1 -0
  299. package/dist/core/{p-33509a89.entry.js → p-7843f9be.js} +2 -2
  300. package/dist/core/p-7843f9be.js.map +1 -0
  301. package/dist/core/p-7bbd1881.js +2 -0
  302. package/dist/core/p-7bbd1881.js.map +1 -0
  303. package/dist/core/{p-349d91dc.js → p-7d378ee6.js} +3 -3
  304. package/dist/core/p-7d378ee6.js.map +1 -0
  305. package/dist/core/p-7e4404fc.entry.js +2 -0
  306. package/dist/core/p-7e4404fc.entry.js.map +1 -0
  307. package/dist/core/p-829b34f9.js.map +1 -1
  308. package/dist/core/p-84129c7e.entry.js +2 -0
  309. package/dist/core/p-84129c7e.entry.js.map +1 -0
  310. package/dist/core/p-857362bd.entry.js +2 -0
  311. package/dist/core/p-857362bd.entry.js.map +1 -0
  312. package/dist/core/p-883e677d.entry.js +2 -0
  313. package/dist/core/p-883e677d.entry.js.map +1 -0
  314. package/dist/core/p-9148bd35.js +2 -0
  315. package/dist/core/p-9148bd35.js.map +1 -0
  316. package/dist/core/p-92e447e1.entry.js +2 -0
  317. package/dist/core/p-92e447e1.entry.js.map +1 -0
  318. package/dist/core/p-964d0e32.js +2 -0
  319. package/dist/core/p-964d0e32.js.map +1 -0
  320. package/dist/core/{p-9ca147f3.entry.js → p-9b218099.js} +2 -2
  321. package/dist/core/p-9b218099.js.map +1 -0
  322. package/dist/core/p-a4cb3520.js +2 -0
  323. package/dist/core/p-a4cb3520.js.map +1 -0
  324. package/dist/core/p-a50e4bdf.entry.js +2 -0
  325. package/dist/core/p-a50e4bdf.entry.js.map +1 -0
  326. package/dist/core/p-b8325ec4.js +2 -0
  327. package/dist/core/p-b8325ec4.js.map +1 -0
  328. package/dist/core/p-c1337dbc.entry.js +2 -0
  329. package/dist/core/p-c1337dbc.entry.js.map +1 -0
  330. package/dist/core/p-c2669ec9.js +2 -0
  331. package/dist/core/p-c2669ec9.js.map +1 -0
  332. package/dist/core/p-c5ac4fcc.entry.js +2 -0
  333. package/dist/core/p-c5ac4fcc.entry.js.map +1 -0
  334. package/dist/core/{p-879c180d.entry.js → p-c5d680be.js} +2 -2
  335. package/dist/core/p-c5d680be.js.map +1 -0
  336. package/dist/core/p-cd454ff0.entry.js +2 -0
  337. package/dist/core/p-cd454ff0.entry.js.map +1 -0
  338. package/dist/core/{p-319e3d5b.entry.js → p-d107dfa8.js} +2 -2
  339. package/dist/core/p-d107dfa8.js.map +1 -0
  340. package/dist/core/p-da2a9ddc.js +2 -0
  341. package/dist/core/p-da2a9ddc.js.map +1 -0
  342. package/dist/core/p-dc3a13d5.entry.js +2 -0
  343. package/dist/core/p-dc3a13d5.entry.js.map +1 -0
  344. package/dist/core/p-f3267773.entry.js +2 -0
  345. package/dist/core/p-f3267773.entry.js.map +1 -0
  346. package/dist/core/p-f65f0065.js +2 -0
  347. package/dist/core/p-f65f0065.js.map +1 -0
  348. package/dist/core/p-fc239961.entry.js +2 -0
  349. package/dist/core/p-fc239961.entry.js.map +1 -0
  350. package/dist/core/p-fd4fd86a.entry.js +2 -0
  351. package/dist/core/p-fd4fd86a.entry.js.map +1 -0
  352. package/dist/esm/{OpenInNew-52210a9d.js → OpenInNew-6f820c13.js} +1 -1
  353. package/dist/esm/OpenInNew-6f820c13.js.map +1 -0
  354. package/dist/{cjs/purify-039f565a.js → esm/common-helpers-f2174548.js} +18 -3
  355. package/dist/esm/common-helpers-f2174548.js.map +1 -0
  356. package/dist/esm/core.js +1 -1
  357. package/dist/esm/{helpers-063369f4.js → helpers-15fb9b13.js} +2 -117
  358. package/dist/esm/helpers-15fb9b13.js.map +1 -0
  359. package/dist/esm/helpers-a08b3f32.js.map +1 -1
  360. package/dist/esm/ic-badge-5c2b4bc7.js +182 -0
  361. package/dist/esm/ic-badge-5c2b4bc7.js.map +1 -0
  362. package/dist/esm/ic-badge.entry.js +3 -180
  363. package/dist/esm/ic-badge.entry.js.map +1 -1
  364. package/dist/esm/ic-button-2f9b4e8a.js +433 -0
  365. package/dist/esm/ic-button-2f9b4e8a.js.map +1 -0
  366. package/dist/esm/ic-button_3.entry.js +6 -876
  367. package/dist/esm/ic-button_3.entry.js.map +1 -1
  368. package/dist/esm/ic-calendar_2.entry.js +22 -13
  369. package/dist/esm/ic-calendar_2.entry.js.map +1 -1
  370. package/dist/esm/ic-card-horizontal.entry.js +10 -5
  371. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  372. package/dist/esm/ic-checkbox-f21a3f00.js +201 -0
  373. package/dist/esm/ic-checkbox-f21a3f00.js.map +1 -0
  374. package/dist/esm/ic-checkbox_3.entry.js +17 -203
  375. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  376. package/dist/esm/ic-chip-b44cea5b.js +131 -0
  377. package/dist/esm/ic-chip-b44cea5b.js.map +1 -0
  378. package/dist/esm/ic-chip.entry.js +3 -122
  379. package/dist/esm/ic-chip.entry.js.map +1 -1
  380. package/dist/esm/ic-data-table-title-bar.entry.js +19 -4
  381. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -1
  382. package/dist/esm/ic-data-table.entry.js +18 -10
  383. package/dist/esm/ic-data-table.entry.js.map +1 -1
  384. package/dist/esm/ic-date-picker.entry.js +2 -2
  385. package/dist/esm/ic-input-component-container_4.entry.js +3 -229
  386. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  387. package/dist/esm/ic-input-validation-cce3bb05.js +254 -0
  388. package/dist/esm/ic-input-validation-cce3bb05.js.map +1 -0
  389. package/dist/esm/ic-link-0f6ba1b0.js +109 -0
  390. package/dist/esm/ic-link-0f6ba1b0.js.map +1 -0
  391. package/dist/esm/ic-link.entry.js +4 -107
  392. package/dist/esm/ic-link.entry.js.map +1 -1
  393. package/dist/esm/ic-loading-indicator-7ec7c6c9.js +231 -0
  394. package/dist/esm/ic-loading-indicator-7ec7c6c9.js.map +1 -0
  395. package/dist/esm/ic-menu-c29dda8d.js +985 -0
  396. package/dist/esm/ic-menu-c29dda8d.js.map +1 -0
  397. package/dist/esm/ic-menu.entry.js +5 -994
  398. package/dist/esm/ic-menu.entry.js.map +1 -1
  399. package/dist/esm/ic-navigation-item-e775ce8c.js +241 -0
  400. package/dist/esm/ic-navigation-item-e775ce8c.js.map +1 -0
  401. package/dist/esm/ic-navigation-item.entry.js +4 -235
  402. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  403. package/dist/esm/ic-page-header-a4a552fe.js +129 -0
  404. package/dist/esm/ic-page-header-a4a552fe.js.map +1 -0
  405. package/dist/esm/ic-page-header.entry.js +3 -127
  406. package/dist/esm/ic-page-header.entry.js.map +1 -1
  407. package/dist/esm/ic-pagination_3.entry.js +6 -0
  408. package/dist/esm/ic-pagination_3.entry.js.map +1 -0
  409. package/dist/esm/ic-section-container-3b887eb7.js +32 -0
  410. package/dist/esm/ic-section-container-3b887eb7.js.map +1 -0
  411. package/dist/esm/ic-section-container.entry.js +2 -30
  412. package/dist/esm/ic-section-container.entry.js.map +1 -1
  413. package/dist/esm/ic-select-cb04ab16.js +874 -0
  414. package/dist/esm/ic-select-cb04ab16.js.map +1 -0
  415. package/dist/esm/ic-skip-link-7c9b8269.js +58 -0
  416. package/dist/esm/ic-skip-link-7c9b8269.js.map +1 -0
  417. package/dist/esm/ic-skip-link.entry.js +2 -56
  418. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  419. package/dist/esm/ic-status-tag-7395532c.js +53 -0
  420. package/dist/esm/ic-status-tag-7395532c.js.map +1 -0
  421. package/dist/esm/ic-status-tag.entry.js +3 -51
  422. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  423. package/dist/esm/ic-table-of-contents.entry.js +14 -3
  424. package/dist/esm/ic-table-of-contents.entry.js.map +1 -1
  425. package/dist/esm/ic-text-field-73754fc7.js +729 -0
  426. package/dist/esm/ic-text-field-73754fc7.js.map +1 -0
  427. package/dist/esm/ic-theme.entry.js +2 -2
  428. package/dist/esm/ic-theme.entry.js.map +1 -1
  429. package/dist/esm/ic-time-input.entry.js +17 -7
  430. package/dist/esm/ic-time-input.entry.js.map +1 -1
  431. package/dist/esm/ic-time-selector.entry.js +53 -170
  432. package/dist/esm/ic-time-selector.entry.js.map +1 -1
  433. package/dist/esm/ic-toggle-button-c58aaaec.js +449 -0
  434. package/dist/esm/ic-toggle-button-c58aaaec.js.map +1 -0
  435. package/dist/esm/ic-toggle-button_2.entry.js +3 -447
  436. package/dist/esm/ic-toggle-button_2.entry.js.map +1 -1
  437. package/dist/esm/ic-tooltip-3c856fa7.js +237 -0
  438. package/dist/esm/ic-tooltip-3c856fa7.js.map +1 -0
  439. package/dist/esm/ic-top-navigation-ba78648a.js +235 -0
  440. package/dist/esm/ic-top-navigation-ba78648a.js.map +1 -0
  441. package/dist/esm/ic-top-navigation.entry.js +3 -230
  442. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  443. package/dist/esm/ic-tree-item.entry.js +5 -4
  444. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  445. package/dist/esm/ic-tree-view.entry.js +7 -5
  446. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  447. package/dist/esm/ic-typography-9e3efc99.js +196 -0
  448. package/dist/esm/ic-typography-9e3efc99.js.map +1 -0
  449. package/dist/esm/ic-typography.entry.js +3 -194
  450. package/dist/esm/ic-typography.entry.js.map +1 -1
  451. package/dist/esm/index-a7a720e7.js +6 -170
  452. package/dist/esm/loader.js +1 -1
  453. package/dist/types/components/ic-calendar/ic-calendar.d.ts +2 -0
  454. package/dist/types/components/ic-calendar/ic-day-button.d.ts +1 -0
  455. package/dist/types/components/ic-calendar/ic-month-picker.d.ts +1 -0
  456. package/dist/types/components/ic-calendar/ic-year-picker.d.ts +1 -0
  457. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +4 -0
  458. package/dist/types/components/ic-data-table/ic-data-table.d.ts +7 -0
  459. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +4 -0
  460. package/dist/types/components/ic-date-input/ic-date-input.d.ts +7 -0
  461. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +8 -1
  462. package/dist/types/components/ic-table-of-contents/ic-table-of-contents-item.d.ts +1 -0
  463. package/dist/types/components/ic-table-of-contents/ic-table-of-contents.d.ts +9 -0
  464. package/dist/types/components/ic-time-input/ic-time-input.d.ts +10 -1
  465. package/dist/types/components/ic-time-selector/ic-time-selector.d.ts +4 -10
  466. package/dist/types/components/ic-time-selector/ic-time-selector.stories.d.ts +48 -13
  467. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +1 -0
  468. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +2 -0
  469. package/dist/types/components/ic-tree-view/ic-tree-view.stories.d.ts +27 -21
  470. package/dist/types/components.d.ts +3918 -786
  471. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-badge/ic-badge.d.ts +74 -0
  472. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-badge/ic-badge.types.d.ts +4 -0
  473. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-button/ic-button.d.ts +210 -0
  474. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-button/ic-button.types.d.ts +2 -0
  475. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-checkbox/ic-checkbox.d.ts +90 -0
  476. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-chip/ic-chip.d.ts +75 -0
  477. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-empty-state/ic-empty-state.d.ts +44 -0
  478. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-empty-state/ic-empty-state.types.d.ts +1 -0
  479. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-input-component-container/ic-input-component-container.d.ts +40 -0
  480. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-input-container/ic-input-container.d.ts +11 -0
  481. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-input-label/ic-input-label.d.ts +42 -0
  482. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-input-validation/ic-input-validation.d.ts +32 -0
  483. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-link/ic-link.d.ts +55 -0
  484. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-loading-indicator/ic-loading-indicator.d.ts +83 -0
  485. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +9 -0
  486. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-menu/ic-menu.d.ts +235 -0
  487. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-menu/ic-menu.types.d.ts +12 -0
  488. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-navigation-item/ic-navigation-item.d.ts +102 -0
  489. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-page-header/ic-page-header.d.ts +61 -0
  490. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-pagination/ic-pagination.d.ts +102 -0
  491. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-pagination/ic-pagination.types.d.ts +6 -0
  492. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-search-bar/ic-search-bar.types.d.ts +5 -0
  493. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-section-container/ic-section-container.d.ts +12 -0
  494. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-select/ic-select.d.ts +282 -0
  495. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-side-navigation/ic-side-navigation.types.d.ts +13 -0
  496. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-skip-link/ic-skip-link.d.ts +38 -0
  497. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-status-tag/ic-status-tag.d.ts +35 -0
  498. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-status-tag/ic-status-tag.types.d.ts +1 -0
  499. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-text-field/ic-text-field.d.ts +262 -0
  500. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-text-field/ic-text-field.types.d.ts +8 -0
  501. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-theme/ic-theme.d.ts +28 -0
  502. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-toggle-button/ic-toggle-button.d.ts +75 -0
  503. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +92 -0
  504. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-toggle-button-group/ic-toggle-button-group.types.d.ts +7 -0
  505. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-tooltip/ic-tooltip.d.ts +82 -0
  506. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-tooltip/ic-tooltip.types.d.ts +1 -0
  507. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-top-navigation/ic-top-navigation.d.ts +102 -0
  508. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/components/ic-typography/ic-typography.d.ts +83 -0
  509. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/utils/helpers.d.ts +167 -0
  510. package/dist/types/home/runner/work/ic-ui-kit/ic-ui-kit/packages/canary-web-components/.stencil/web-components/src/utils/types.d.ts +98 -0
  511. package/dist/types/utils/types.d.ts +1 -2
  512. package/hydrate/index.js +12979 -20485
  513. package/hydrate/index.mjs +12979 -20485
  514. package/package.json +14 -20
  515. package/dist/cjs/OpenInNew-7bac24f7.js.map +0 -1
  516. package/dist/cjs/check-icon-dd563898.js +0 -10
  517. package/dist/cjs/check-icon-dd563898.js.map +0 -1
  518. package/dist/cjs/chevron-icon-3dedd973.js +0 -10
  519. package/dist/cjs/chevron-icon-3dedd973.js.map +0 -1
  520. package/dist/cjs/close-icon-d62b369d.js +0 -12
  521. package/dist/cjs/close-icon-d62b369d.js.map +0 -1
  522. package/dist/cjs/common-helpers-944cb54d.js +0 -21
  523. package/dist/cjs/common-helpers-944cb54d.js.map +0 -1
  524. package/dist/cjs/helpers-2cc5f6db.js.map +0 -1
  525. package/dist/cjs/ic-accordion-group.cjs.entry.js +0 -137
  526. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +0 -1
  527. package/dist/cjs/ic-accordion.cjs.entry.js +0 -150
  528. package/dist/cjs/ic-accordion.cjs.entry.js.map +0 -1
  529. package/dist/cjs/ic-action-chip.cjs.entry.js +0 -116
  530. package/dist/cjs/ic-action-chip.cjs.entry.js.map +0 -1
  531. package/dist/cjs/ic-alert.cjs.entry.js +0 -136
  532. package/dist/cjs/ic-alert.cjs.entry.js.map +0 -1
  533. package/dist/cjs/ic-back-to-top.cjs.entry.js +0 -168
  534. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +0 -1
  535. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +0 -241
  536. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +0 -1
  537. package/dist/cjs/ic-breadcrumb.cjs.entry.js +0 -118
  538. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +0 -1
  539. package/dist/cjs/ic-card-vertical.cjs.entry.js +0 -171
  540. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +0 -1
  541. package/dist/cjs/ic-checkbox-group.cjs.entry.js +0 -127
  542. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +0 -1
  543. package/dist/cjs/ic-classification-banner.cjs.entry.js +0 -67
  544. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +0 -1
  545. package/dist/cjs/ic-data-list.cjs.entry.js +0 -38
  546. package/dist/cjs/ic-data-list.cjs.entry.js.map +0 -1
  547. package/dist/cjs/ic-data-row.cjs.entry.js +0 -88
  548. package/dist/cjs/ic-data-row.cjs.entry.js.map +0 -1
  549. package/dist/cjs/ic-dialog.cjs.entry.js +0 -388
  550. package/dist/cjs/ic-dialog.cjs.entry.js.map +0 -1
  551. package/dist/cjs/ic-divider.cjs.entry.js +0 -114
  552. package/dist/cjs/ic-divider.cjs.entry.js.map +0 -1
  553. package/dist/cjs/ic-footer-link-group.cjs.entry.js +0 -69
  554. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +0 -1
  555. package/dist/cjs/ic-footer-link.cjs.entry.js +0 -65
  556. package/dist/cjs/ic-footer-link.cjs.entry.js.map +0 -1
  557. package/dist/cjs/ic-footer.cjs.entry.js +0 -119
  558. package/dist/cjs/ic-footer.cjs.entry.js.map +0 -1
  559. package/dist/cjs/ic-hero.cjs.entry.js +0 -104
  560. package/dist/cjs/ic-hero.cjs.entry.js.map +0 -1
  561. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +0 -196
  562. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +0 -1
  563. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +0 -70
  564. package/dist/cjs/ic-layout-grid-item.cjs.entry.js.map +0 -1
  565. package/dist/cjs/ic-layout-grid.cjs.entry.js +0 -156
  566. package/dist/cjs/ic-layout-grid.cjs.entry.js.map +0 -1
  567. package/dist/cjs/ic-menu-group.cjs.entry.js +0 -25
  568. package/dist/cjs/ic-menu-group.cjs.entry.js.map +0 -1
  569. package/dist/cjs/ic-menu-item.cjs.entry.js +0 -121
  570. package/dist/cjs/ic-menu-item.cjs.entry.js.map +0 -1
  571. package/dist/cjs/ic-navigation-button.cjs.entry.js +0 -124
  572. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +0 -1
  573. package/dist/cjs/ic-navigation-group.cjs.entry.js +0 -293
  574. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +0 -1
  575. package/dist/cjs/ic-navigation-menu.cjs.entry.js +0 -149
  576. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +0 -1
  577. package/dist/cjs/ic-pagination_4.cjs.entry.js +0 -1647
  578. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +0 -1
  579. package/dist/cjs/ic-popover-menu.cjs.entry.js +0 -308
  580. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +0 -1
  581. package/dist/cjs/ic-radio-group.cjs.entry.js +0 -264
  582. package/dist/cjs/ic-radio-group.cjs.entry.js.map +0 -1
  583. package/dist/cjs/ic-radio-option.cjs.entry.js +0 -173
  584. package/dist/cjs/ic-radio-option.cjs.entry.js.map +0 -1
  585. package/dist/cjs/ic-search-bar.cjs.entry.js +0 -606
  586. package/dist/cjs/ic-search-bar.cjs.entry.js.map +0 -1
  587. package/dist/cjs/ic-side-navigation.cjs.entry.js +0 -488
  588. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +0 -1
  589. package/dist/cjs/ic-skeleton.cjs.entry.js +0 -47
  590. package/dist/cjs/ic-skeleton.cjs.entry.js.map +0 -1
  591. package/dist/cjs/ic-step.cjs.entry.js +0 -155
  592. package/dist/cjs/ic-step.cjs.entry.js.map +0 -1
  593. package/dist/cjs/ic-stepper.cjs.entry.js +0 -288
  594. package/dist/cjs/ic-stepper.cjs.entry.js.map +0 -1
  595. package/dist/cjs/ic-switch.cjs.entry.js +0 -124
  596. package/dist/cjs/ic-switch.cjs.entry.js.map +0 -1
  597. package/dist/cjs/ic-tab-context.cjs.entry.js +0 -250
  598. package/dist/cjs/ic-tab-context.cjs.entry.js.map +0 -1
  599. package/dist/cjs/ic-tab-group.cjs.entry.js +0 -40
  600. package/dist/cjs/ic-tab-group.cjs.entry.js.map +0 -1
  601. package/dist/cjs/ic-tab-panel.cjs.entry.js +0 -42
  602. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +0 -1
  603. package/dist/cjs/ic-tab.cjs.entry.js +0 -112
  604. package/dist/cjs/ic-tab.cjs.entry.js.map +0 -1
  605. package/dist/cjs/ic-toast-region.cjs.entry.js +0 -59
  606. package/dist/cjs/ic-toast-region.cjs.entry.js.map +0 -1
  607. package/dist/cjs/ic-toast.cjs.entry.js +0 -239
  608. package/dist/cjs/ic-toast.cjs.entry.js.map +0 -1
  609. package/dist/cjs/purify-039f565a.js.map +0 -1
  610. package/dist/components/check-icon.js +0 -8
  611. package/dist/components/check-icon.js.map +0 -1
  612. package/dist/components/chevron-icon.js +0 -8
  613. package/dist/components/chevron-icon.js.map +0 -1
  614. package/dist/components/close-icon.js +0 -10
  615. package/dist/components/close-icon.js.map +0 -1
  616. package/dist/components/ic-accordion-group.js +0 -188
  617. package/dist/components/ic-accordion-group.js.map +0 -1
  618. package/dist/components/ic-accordion.js +0 -181
  619. package/dist/components/ic-accordion.js.map +0 -1
  620. package/dist/components/ic-action-chip.js +0 -160
  621. package/dist/components/ic-action-chip.js.map +0 -1
  622. package/dist/components/ic-alert.js +0 -187
  623. package/dist/components/ic-alert.js.map +0 -1
  624. package/dist/components/ic-back-to-top.js +0 -216
  625. package/dist/components/ic-back-to-top.js.map +0 -1
  626. package/dist/components/ic-breadcrumb-group.js +0 -278
  627. package/dist/components/ic-breadcrumb-group.js.map +0 -1
  628. package/dist/components/ic-breadcrumb.js +0 -8
  629. package/dist/components/ic-breadcrumb.js.map +0 -1
  630. package/dist/components/ic-breadcrumb2.js +0 -145
  631. package/dist/components/ic-breadcrumb2.js.map +0 -1
  632. package/dist/components/ic-card-vertical.js +0 -219
  633. package/dist/components/ic-card-vertical.js.map +0 -1
  634. package/dist/components/ic-checkbox-group.js +0 -176
  635. package/dist/components/ic-checkbox-group.js.map +0 -1
  636. package/dist/components/ic-classification-banner.js +0 -93
  637. package/dist/components/ic-classification-banner.js.map +0 -1
  638. package/dist/components/ic-data-list.js +0 -62
  639. package/dist/components/ic-data-list.js.map +0 -1
  640. package/dist/components/ic-data-row.js +0 -115
  641. package/dist/components/ic-data-row.js.map +0 -1
  642. package/dist/components/ic-dialog.js +0 -445
  643. package/dist/components/ic-dialog.js.map +0 -1
  644. package/dist/components/ic-divider.js +0 -8
  645. package/dist/components/ic-divider.js.map +0 -1
  646. package/dist/components/ic-divider2.js +0 -139
  647. package/dist/components/ic-divider2.js.map +0 -1
  648. package/dist/components/ic-footer-link-group.js +0 -101
  649. package/dist/components/ic-footer-link-group.js.map +0 -1
  650. package/dist/components/ic-footer-link.js +0 -95
  651. package/dist/components/ic-footer-link.js.map +0 -1
  652. package/dist/components/ic-footer.js +0 -155
  653. package/dist/components/ic-footer.js.map +0 -1
  654. package/dist/components/ic-hero.js +0 -145
  655. package/dist/components/ic-hero.js.map +0 -1
  656. package/dist/components/ic-horizontal-scroll.js +0 -8
  657. package/dist/components/ic-horizontal-scroll.js.map +0 -1
  658. package/dist/components/ic-horizontal-scroll2.js +0 -240
  659. package/dist/components/ic-horizontal-scroll2.js.map +0 -1
  660. package/dist/components/ic-layout-grid-item.js +0 -95
  661. package/dist/components/ic-layout-grid-item.js.map +0 -1
  662. package/dist/components/ic-layout-grid.js +0 -188
  663. package/dist/components/ic-layout-grid.js.map +0 -1
  664. package/dist/components/ic-menu-group.js +0 -47
  665. package/dist/components/ic-menu-group.js.map +0 -1
  666. package/dist/components/ic-menu-item.js +0 -8
  667. package/dist/components/ic-menu-item.js.map +0 -1
  668. package/dist/components/ic-menu-item2.js +0 -171
  669. package/dist/components/ic-menu-item2.js.map +0 -1
  670. package/dist/components/ic-navigation-button.js +0 -174
  671. package/dist/components/ic-navigation-button.js.map +0 -1
  672. package/dist/components/ic-navigation-group.js +0 -326
  673. package/dist/components/ic-navigation-group.js.map +0 -1
  674. package/dist/components/ic-navigation-menu.js +0 -8
  675. package/dist/components/ic-navigation-menu.js.map +0 -1
  676. package/dist/components/ic-navigation-menu2.js +0 -188
  677. package/dist/components/ic-navigation-menu2.js.map +0 -1
  678. package/dist/components/ic-pagination-item.js +0 -8
  679. package/dist/components/ic-pagination-item.js.map +0 -1
  680. package/dist/components/ic-pagination-item2.js +0 -107
  681. package/dist/components/ic-pagination-item2.js.map +0 -1
  682. package/dist/components/ic-popover-menu.js +0 -369
  683. package/dist/components/ic-popover-menu.js.map +0 -1
  684. package/dist/components/ic-radio-group.js +0 -317
  685. package/dist/components/ic-radio-group.js.map +0 -1
  686. package/dist/components/ic-radio-option.js +0 -209
  687. package/dist/components/ic-radio-option.js.map +0 -1
  688. package/dist/components/ic-search-bar.js +0 -719
  689. package/dist/components/ic-search-bar.js.map +0 -1
  690. package/dist/components/ic-side-navigation.js +0 -553
  691. package/dist/components/ic-side-navigation.js.map +0 -1
  692. package/dist/components/ic-skeleton.js +0 -64
  693. package/dist/components/ic-skeleton.js.map +0 -1
  694. package/dist/components/ic-step.js +0 -198
  695. package/dist/components/ic-step.js.map +0 -1
  696. package/dist/components/ic-stepper.js +0 -320
  697. package/dist/components/ic-stepper.js.map +0 -1
  698. package/dist/components/ic-switch.js +0 -166
  699. package/dist/components/ic-switch.js.map +0 -1
  700. package/dist/components/ic-tab-context.js +0 -276
  701. package/dist/components/ic-tab-context.js.map +0 -1
  702. package/dist/components/ic-tab-group.js +0 -89
  703. package/dist/components/ic-tab-group.js.map +0 -1
  704. package/dist/components/ic-tab-panel.js +0 -63
  705. package/dist/components/ic-tab-panel.js.map +0 -1
  706. package/dist/components/ic-tab.js +0 -143
  707. package/dist/components/ic-tab.js.map +0 -1
  708. package/dist/components/ic-toast-region.js +0 -76
  709. package/dist/components/ic-toast-region.js.map +0 -1
  710. package/dist/components/ic-toast.js +0 -293
  711. package/dist/components/ic-toast.js.map +0 -1
  712. package/dist/components/purify.js +0 -1363
  713. package/dist/components/purify.js.map +0 -1
  714. package/dist/core/p-04cb17d7.entry.js +0 -2
  715. package/dist/core/p-04cb17d7.entry.js.map +0 -1
  716. package/dist/core/p-08f24329.entry.js +0 -2
  717. package/dist/core/p-08f24329.entry.js.map +0 -1
  718. package/dist/core/p-0aa9ce8b.js +0 -2
  719. package/dist/core/p-14b8bf37.entry.js +0 -2
  720. package/dist/core/p-14b8bf37.entry.js.map +0 -1
  721. package/dist/core/p-169ad948.entry.js +0 -2
  722. package/dist/core/p-169ad948.entry.js.map +0 -1
  723. package/dist/core/p-170ddfc2.js +0 -2
  724. package/dist/core/p-1cc402b8.entry.js +0 -2
  725. package/dist/core/p-1cc402b8.entry.js.map +0 -1
  726. package/dist/core/p-1d166343.entry.js +0 -2
  727. package/dist/core/p-1d166343.entry.js.map +0 -1
  728. package/dist/core/p-319e3d5b.entry.js.map +0 -1
  729. package/dist/core/p-33509a89.entry.js.map +0 -1
  730. package/dist/core/p-3389625c.entry.js +0 -2
  731. package/dist/core/p-3389625c.entry.js.map +0 -1
  732. package/dist/core/p-344752cb.entry.js +0 -2
  733. package/dist/core/p-344752cb.entry.js.map +0 -1
  734. package/dist/core/p-348d7080.entry.js +0 -2
  735. package/dist/core/p-348d7080.entry.js.map +0 -1
  736. package/dist/core/p-349d91dc.js.map +0 -1
  737. package/dist/core/p-39cdf5db.entry.js +0 -2
  738. package/dist/core/p-39cdf5db.entry.js.map +0 -1
  739. package/dist/core/p-496b314f.entry.js +0 -2
  740. package/dist/core/p-496b314f.entry.js.map +0 -1
  741. package/dist/core/p-508b6da3.entry.js +0 -2
  742. package/dist/core/p-508b6da3.entry.js.map +0 -1
  743. package/dist/core/p-5254a078.entry.js +0 -2
  744. package/dist/core/p-5254a078.entry.js.map +0 -1
  745. package/dist/core/p-53740194.entry.js +0 -2
  746. package/dist/core/p-53740194.entry.js.map +0 -1
  747. package/dist/core/p-551a0fc1.entry.js.map +0 -1
  748. package/dist/core/p-5e6687a8.entry.js +0 -2
  749. package/dist/core/p-5e6687a8.entry.js.map +0 -1
  750. package/dist/core/p-60f4fe3a.entry.js +0 -2
  751. package/dist/core/p-60f4fe3a.entry.js.map +0 -1
  752. package/dist/core/p-61c92598.entry.js +0 -2
  753. package/dist/core/p-61c92598.entry.js.map +0 -1
  754. package/dist/core/p-6323da7a.entry.js +0 -2
  755. package/dist/core/p-6323da7a.entry.js.map +0 -1
  756. package/dist/core/p-67c3985d.entry.js +0 -2
  757. package/dist/core/p-67c3985d.entry.js.map +0 -1
  758. package/dist/core/p-691dd972.entry.js +0 -2
  759. package/dist/core/p-691dd972.entry.js.map +0 -1
  760. package/dist/core/p-6dfe0922.entry.js +0 -2
  761. package/dist/core/p-6dfe0922.entry.js.map +0 -1
  762. package/dist/core/p-71cc5909.entry.js +0 -2
  763. package/dist/core/p-71cc5909.entry.js.map +0 -1
  764. package/dist/core/p-770e92cd.entry.js +0 -2
  765. package/dist/core/p-770e92cd.entry.js.map +0 -1
  766. package/dist/core/p-79ead0e7.entry.js.map +0 -1
  767. package/dist/core/p-7b4b45cf.entry.js +0 -2
  768. package/dist/core/p-7b4b45cf.entry.js.map +0 -1
  769. package/dist/core/p-7efdbab8.entry.js.map +0 -1
  770. package/dist/core/p-802a4bd3.entry.js +0 -2
  771. package/dist/core/p-802a4bd3.entry.js.map +0 -1
  772. package/dist/core/p-879c180d.entry.js.map +0 -1
  773. package/dist/core/p-8830011c.entry.js +0 -2
  774. package/dist/core/p-8830011c.entry.js.map +0 -1
  775. package/dist/core/p-8ab37b4d.entry.js +0 -2
  776. package/dist/core/p-8ab37b4d.entry.js.map +0 -1
  777. package/dist/core/p-939025af.entry.js.map +0 -1
  778. package/dist/core/p-939b168a.entry.js +0 -2
  779. package/dist/core/p-939b168a.entry.js.map +0 -1
  780. package/dist/core/p-9674b63f.entry.js +0 -2
  781. package/dist/core/p-9674b63f.entry.js.map +0 -1
  782. package/dist/core/p-9ca147f3.entry.js.map +0 -1
  783. package/dist/core/p-9dea5764.entry.js +0 -2
  784. package/dist/core/p-9dea5764.entry.js.map +0 -1
  785. package/dist/core/p-a422b778.js +0 -2
  786. package/dist/core/p-a422b778.js.map +0 -1
  787. package/dist/core/p-a88e61b2.entry.js +0 -2
  788. package/dist/core/p-a88e61b2.entry.js.map +0 -1
  789. package/dist/core/p-a8a92e54.entry.js +0 -2
  790. package/dist/core/p-a8a92e54.entry.js.map +0 -1
  791. package/dist/core/p-a94a7b71.entry.js +0 -2
  792. package/dist/core/p-a94a7b71.entry.js.map +0 -1
  793. package/dist/core/p-ad551a0c.entry.js +0 -2
  794. package/dist/core/p-ad551a0c.entry.js.map +0 -1
  795. package/dist/core/p-adde6c66.entry.js +0 -2
  796. package/dist/core/p-adde6c66.entry.js.map +0 -1
  797. package/dist/core/p-b434bd7c.entry.js +0 -2
  798. package/dist/core/p-b434bd7c.entry.js.map +0 -1
  799. package/dist/core/p-b4a2f6fa.entry.js +0 -2
  800. package/dist/core/p-b4a2f6fa.entry.js.map +0 -1
  801. package/dist/core/p-c0a7eed7.entry.js +0 -2
  802. package/dist/core/p-c0a7eed7.entry.js.map +0 -1
  803. package/dist/core/p-c0b227d2.entry.js +0 -2
  804. package/dist/core/p-c0b227d2.entry.js.map +0 -1
  805. package/dist/core/p-c32f043e.entry.js +0 -2
  806. package/dist/core/p-c32f043e.entry.js.map +0 -1
  807. package/dist/core/p-c4b2774d.entry.js.map +0 -1
  808. package/dist/core/p-c9525aac.entry.js +0 -2
  809. package/dist/core/p-c9525aac.entry.js.map +0 -1
  810. package/dist/core/p-ca05573a.entry.js +0 -2
  811. package/dist/core/p-ca05573a.entry.js.map +0 -1
  812. package/dist/core/p-d0607a70.entry.js +0 -2
  813. package/dist/core/p-d0607a70.entry.js.map +0 -1
  814. package/dist/core/p-d528d856.entry.js +0 -2
  815. package/dist/core/p-d528d856.entry.js.map +0 -1
  816. package/dist/core/p-da1c2883.entry.js +0 -2
  817. package/dist/core/p-da1c2883.entry.js.map +0 -1
  818. package/dist/core/p-e081702e.js +0 -2
  819. package/dist/core/p-e2e556ec.entry.js +0 -2
  820. package/dist/core/p-e2e556ec.entry.js.map +0 -1
  821. package/dist/core/p-e519f607.js +0 -2
  822. package/dist/core/p-e519f607.js.map +0 -1
  823. package/dist/core/p-e5c6d01a.entry.js +0 -2
  824. package/dist/core/p-e5c6d01a.entry.js.map +0 -1
  825. package/dist/core/p-e8db8772.entry.js +0 -2
  826. package/dist/core/p-e8db8772.entry.js.map +0 -1
  827. package/dist/core/p-ea04103e.entry.js +0 -2
  828. package/dist/core/p-ea04103e.entry.js.map +0 -1
  829. package/dist/core/p-eaeb473e.entry.js +0 -2
  830. package/dist/core/p-eaeb473e.entry.js.map +0 -1
  831. package/dist/core/p-ecc7fd71.entry.js +0 -2
  832. package/dist/core/p-ecc7fd71.entry.js.map +0 -1
  833. package/dist/core/p-efe260f0.entry.js +0 -2
  834. package/dist/core/p-efe260f0.entry.js.map +0 -1
  835. package/dist/core/p-f1b57f91.entry.js +0 -2
  836. package/dist/core/p-f1b57f91.entry.js.map +0 -1
  837. package/dist/core/p-f5dc04f7.entry.js +0 -2
  838. package/dist/core/p-f5dc04f7.entry.js.map +0 -1
  839. package/dist/core/p-fb07921b.entry.js +0 -2
  840. package/dist/core/p-fb07921b.entry.js.map +0 -1
  841. package/dist/core/p-fd08156a.entry.js +0 -2
  842. package/dist/core/p-fd08156a.entry.js.map +0 -1
  843. package/dist/core/p-fe5b51bb.entry.js +0 -2
  844. package/dist/core/p-fe5b51bb.entry.js.map +0 -1
  845. package/dist/core/p-ff618439.entry.js +0 -2
  846. package/dist/core/p-ff618439.entry.js.map +0 -1
  847. package/dist/esm/OpenInNew-52210a9d.js.map +0 -1
  848. package/dist/esm/check-icon-f2346e76.js +0 -8
  849. package/dist/esm/check-icon-f2346e76.js.map +0 -1
  850. package/dist/esm/chevron-icon-875b7af2.js +0 -8
  851. package/dist/esm/chevron-icon-875b7af2.js.map +0 -1
  852. package/dist/esm/close-icon-c9e09475.js +0 -10
  853. package/dist/esm/close-icon-c9e09475.js.map +0 -1
  854. package/dist/esm/common-helpers-86c07ff1.js +0 -19
  855. package/dist/esm/common-helpers-86c07ff1.js.map +0 -1
  856. package/dist/esm/helpers-063369f4.js.map +0 -1
  857. package/dist/esm/ic-accordion-group.entry.js +0 -133
  858. package/dist/esm/ic-accordion-group.entry.js.map +0 -1
  859. package/dist/esm/ic-accordion.entry.js +0 -146
  860. package/dist/esm/ic-accordion.entry.js.map +0 -1
  861. package/dist/esm/ic-action-chip.entry.js +0 -112
  862. package/dist/esm/ic-action-chip.entry.js.map +0 -1
  863. package/dist/esm/ic-alert.entry.js +0 -132
  864. package/dist/esm/ic-alert.entry.js.map +0 -1
  865. package/dist/esm/ic-back-to-top.entry.js +0 -164
  866. package/dist/esm/ic-back-to-top.entry.js.map +0 -1
  867. package/dist/esm/ic-breadcrumb-group.entry.js +0 -237
  868. package/dist/esm/ic-breadcrumb-group.entry.js.map +0 -1
  869. package/dist/esm/ic-breadcrumb.entry.js +0 -114
  870. package/dist/esm/ic-breadcrumb.entry.js.map +0 -1
  871. package/dist/esm/ic-card-vertical.entry.js +0 -167
  872. package/dist/esm/ic-card-vertical.entry.js.map +0 -1
  873. package/dist/esm/ic-checkbox-group.entry.js +0 -123
  874. package/dist/esm/ic-checkbox-group.entry.js.map +0 -1
  875. package/dist/esm/ic-classification-banner.entry.js +0 -63
  876. package/dist/esm/ic-classification-banner.entry.js.map +0 -1
  877. package/dist/esm/ic-data-list.entry.js +0 -34
  878. package/dist/esm/ic-data-list.entry.js.map +0 -1
  879. package/dist/esm/ic-data-row.entry.js +0 -84
  880. package/dist/esm/ic-data-row.entry.js.map +0 -1
  881. package/dist/esm/ic-dialog.entry.js +0 -384
  882. package/dist/esm/ic-dialog.entry.js.map +0 -1
  883. package/dist/esm/ic-divider.entry.js +0 -110
  884. package/dist/esm/ic-divider.entry.js.map +0 -1
  885. package/dist/esm/ic-footer-link-group.entry.js +0 -65
  886. package/dist/esm/ic-footer-link-group.entry.js.map +0 -1
  887. package/dist/esm/ic-footer-link.entry.js +0 -61
  888. package/dist/esm/ic-footer-link.entry.js.map +0 -1
  889. package/dist/esm/ic-footer.entry.js +0 -115
  890. package/dist/esm/ic-footer.entry.js.map +0 -1
  891. package/dist/esm/ic-hero.entry.js +0 -100
  892. package/dist/esm/ic-hero.entry.js.map +0 -1
  893. package/dist/esm/ic-horizontal-scroll.entry.js +0 -192
  894. package/dist/esm/ic-horizontal-scroll.entry.js.map +0 -1
  895. package/dist/esm/ic-layout-grid-item.entry.js +0 -66
  896. package/dist/esm/ic-layout-grid-item.entry.js.map +0 -1
  897. package/dist/esm/ic-layout-grid.entry.js +0 -152
  898. package/dist/esm/ic-layout-grid.entry.js.map +0 -1
  899. package/dist/esm/ic-menu-group.entry.js +0 -21
  900. package/dist/esm/ic-menu-group.entry.js.map +0 -1
  901. package/dist/esm/ic-menu-item.entry.js +0 -117
  902. package/dist/esm/ic-menu-item.entry.js.map +0 -1
  903. package/dist/esm/ic-navigation-button.entry.js +0 -120
  904. package/dist/esm/ic-navigation-button.entry.js.map +0 -1
  905. package/dist/esm/ic-navigation-group.entry.js +0 -289
  906. package/dist/esm/ic-navigation-group.entry.js.map +0 -1
  907. package/dist/esm/ic-navigation-menu.entry.js +0 -145
  908. package/dist/esm/ic-navigation-menu.entry.js.map +0 -1
  909. package/dist/esm/ic-pagination_4.entry.js +0 -1640
  910. package/dist/esm/ic-pagination_4.entry.js.map +0 -1
  911. package/dist/esm/ic-popover-menu.entry.js +0 -304
  912. package/dist/esm/ic-popover-menu.entry.js.map +0 -1
  913. package/dist/esm/ic-radio-group.entry.js +0 -260
  914. package/dist/esm/ic-radio-group.entry.js.map +0 -1
  915. package/dist/esm/ic-radio-option.entry.js +0 -169
  916. package/dist/esm/ic-radio-option.entry.js.map +0 -1
  917. package/dist/esm/ic-search-bar.entry.js +0 -602
  918. package/dist/esm/ic-search-bar.entry.js.map +0 -1
  919. package/dist/esm/ic-side-navigation.entry.js +0 -484
  920. package/dist/esm/ic-side-navigation.entry.js.map +0 -1
  921. package/dist/esm/ic-skeleton.entry.js +0 -43
  922. package/dist/esm/ic-skeleton.entry.js.map +0 -1
  923. package/dist/esm/ic-step.entry.js +0 -151
  924. package/dist/esm/ic-step.entry.js.map +0 -1
  925. package/dist/esm/ic-stepper.entry.js +0 -284
  926. package/dist/esm/ic-stepper.entry.js.map +0 -1
  927. package/dist/esm/ic-switch.entry.js +0 -120
  928. package/dist/esm/ic-switch.entry.js.map +0 -1
  929. package/dist/esm/ic-tab-context.entry.js +0 -246
  930. package/dist/esm/ic-tab-context.entry.js.map +0 -1
  931. package/dist/esm/ic-tab-group.entry.js +0 -36
  932. package/dist/esm/ic-tab-group.entry.js.map +0 -1
  933. package/dist/esm/ic-tab-panel.entry.js +0 -38
  934. package/dist/esm/ic-tab-panel.entry.js.map +0 -1
  935. package/dist/esm/ic-tab.entry.js +0 -108
  936. package/dist/esm/ic-tab.entry.js.map +0 -1
  937. package/dist/esm/ic-toast-region.entry.js +0 -55
  938. package/dist/esm/ic-toast-region.entry.js.map +0 -1
  939. package/dist/esm/ic-toast.entry.js +0 -235
  940. package/dist/esm/ic-toast.entry.js.map +0 -1
  941. package/dist/esm/purify-6eaa9893.js.map +0 -1
  942. /package/dist/core/{p-0aa9ce8b.js.map → p-02d0a238.entry.js.map} +0 -0
  943. /package/dist/core/{p-170ddfc2.js.map → p-0c02b16c.entry.js.map} +0 -0
  944. /package/dist/core/{p-201b41c7.entry.js.map → p-22267c01.entry.js.map} +0 -0
  945. /package/dist/core/{p-e081702e.js.map → p-27962d4d.entry.js.map} +0 -0
  946. /package/dist/core/{p-ea1ea1b9.js.map → p-384a7f60.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["IcInformationStatus","IcBrandForegroundEnum","IcDateInputMonths","IcShortDayNames","IcDayNames","IcWeekDays","IC_DEVICE_SIZES","XS","S","M","L","XL","IC_BLOCK_COLOR_COMPONENTS","IC_FIXED_COLOR_COMPONENTS","IC_BLOCK_COLOR_EXCEPTIONS","icInput","stringEnumToArray","theEnum","arr","Object","values","forEach","val","isNaN","Number","str","push","dynamicDebounce","func","getDelay","timer","args","delay","clearTimeout","setTimeout","renderHiddenInput","always","container","name","value","disabled","undefined","hasShadowDom","input","getHiddenInputElement","ownerDocument","createElement","type","classList","add","appendChild","Date","toISOString","Array","from","querySelectorAll","filter","el","parentElement","shadowRoot","attachShadow","getInputHelperTextID","id","getInputValidationTextID","getInputDescribedByText","inputId","helperText","validationText","isSlotUsed","trim","getBrandFromContext","brandFromEvent","getRootNode","host","blockColorParent","closest","join","parentTag","tagName","toLowerCase","currentTag","_a","includes","Default","contains","Dark","Light","isEmptyString","length","isPropDefined","prop","deviceSizeMatches","size","window","matchMedia","matches","getCurrentDeviceSize","DEVICE_SIZES","UNDEFINED","getCssProperty","cssVar","getComputedStyle","document","documentElement","getPropertyValue","getSlotElements","slot","slotContent","firstElementChild","elements","assignedElements","childNodes","replace","children","slotName","some","child","getAttribute","onComponentRequiredPropUndefined","props","component","propName","console","error","kebabToCamelCase","kebabCase","split","map","word","index","substring","toUpperCase","checkResizeObserver","callbackFn","ResizeObserver","addFormResetListener","addEventListener","removeFormResetListener","removeEventListener","pxToRem","px","base","parseInt","removeDisabledFalse","element","removeAttribute","isNumeric","test","capitalize","text","charAt","slice","checkSlotInChildMutations","addedNodes","removedNodes","hasSlot","nodeList","node","isArray","addDataToPosition","dataObject","newKeys","newValue","newData","newIndexes","key","keys","numberOfKeys","i","j","indexOf","hasDynamicChildSlots","mutationList","slotNames","renderDynamicChildSlots","ref","forceUpdate","parseTimeHelper","date","parts","d","setHours","hour","getHours","minute","getMinutes","second","getSeconds","millisecond","getMilliseconds"],"sources":["src/utils/types.ts","src/utils/constants.ts","src/utils/helpers.ts"],"sourcesContent":["import {\n IcPaginationLabelTypes,\n IcPaginationTypes,\n IcPaginationAlignmentOptions,\n} from \"../components\";\n\nexport type IcFocusableComponents =\n | HTMLIcBreadcrumbElement\n | HTMLIcButtonElement\n | HTMLIcCardVerticalElement\n | HTMLIcCheckboxElement\n | HTMLIcChipElement\n | HTMLIcLinkElement\n | HTMLIcNavigationButtonElement\n | HTMLIcNavigationGroupElement\n | HTMLIcNavigationItemElement\n | HTMLIcRadioOptionElement\n | HTMLIcSearchBarElement\n | HTMLIcSelectElement\n | HTMLIcSwitchElement\n | HTMLIcTabElement\n | HTMLIcTextFieldElement;\n\nexport type IcStatusVariants =\n | \"neutral\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcSizes = \"medium\" | \"large\" | \"small\";\n\nexport type IcSizesNoLarge = \"medium\" | \"small\";\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcNavType = \"side\" | \"top\" | \"page-header\";\n\n// From: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\nexport type IcAutocompleteTypes =\n | \"on\"\n | \"off\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\";\n\nexport type IcAlignment = \"left\" | \"center\" | \"full-width\";\n\nexport enum IcBrandForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport type IcThemeMode = \"dark\" | \"light\" | \"inherit\";\n\nexport type IcBrandForeground = \"default\" | \"dark\" | \"light\";\n\nexport type IcBrandForegroundNoDefault = \"dark\" | \"light\";\n\nexport type IcBrand = {\n mode: IcBrandForeground;\n color: IcColorRGB;\n};\n\nexport type IcAdditionalFieldTypes = \"static\" | \"dynamic\";\n\nexport type IcColorRGB = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type IcColorRGBA = IcColorRGB & {\n a: number;\n};\n\nexport type IcActivationTypes = \"automatic\" | \"manual\";\n\nexport type IcAutocorrectStates = \"on\" | \"off\";\n\nexport type IcNavParentDetails = {\n navType: IcNavType | \"\";\n parent: HTMLElement | null;\n};\n\nexport type IcTypographyVariants =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"subtitle-large\"\n | \"subtitle-small\"\n | \"body\"\n | \"label\"\n | \"label-uppercase\"\n | \"caption\"\n | \"caption-uppercase\"\n | \"code-large\"\n | \"code-small\"\n | \"code-extra-small\"\n | \"badge\"\n | \"badge-small\";\n\n/**\n * @interface IcMenuOption\n * Set \"label\" and \"value\" props to use as the option's label and value.\n * Alternatively, custom names for these props can be used e.g. by setting the \"labelField\" and \"valueField\" props on the relevant component.\n *\n * Any props supplied to the \"htmlProps\" object will be spread onto the option's underlying <li> element.\n */\nexport interface IcMenuOption {\n description?: string;\n disabled?: boolean;\n recommended?: boolean;\n children?: IcMenuOption[];\n loading?: boolean;\n timedOut?: boolean;\n [key: string]: any;\n element?: {\n component: any;\n ariaLabel: string;\n };\n icon?: any;\n htmlProps?: Record<string, any>;\n}\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport type IcCallbackFunctionNoReturn = (...args: unknown[]) => void;\n\nexport type IcRequiredPropsTypes =\n | string\n | boolean\n | number\n | HTMLElement\n | IcMenuOption[]\n | undefined;\n\nexport type IcPropObject = { prop: IcRequiredPropsTypes; propName: string };\n\nexport type IcRelatedTarget = EventTarget | undefined;\n\nexport type IcOrientation = \"horizontal\" | \"vertical\";\n\nexport type IcEmphasisType = \"filled\" | \"outlined\";\n\nexport interface IcValueEventDetail {\n value: string;\n keyPressed?: string;\n}\n\nexport interface IcMultiValueEventDetail {\n value: string | string[] | null;\n keyPressed?: string;\n}\n\nexport interface IcBlurEventDetail {\n relatedTarget: IcRelatedTarget | null;\n}\n\nexport type IcSelectTypes = \"single\" | \"multi\";\n\nexport type IcSelectMethodTypes = \"auto\" | \"manual\";\n\nexport type IcDeviceSizes = 0 | 576 | 768 | 992 | 1200;\n\ntype RGB = `rgb(${string})`;\ntype RGBA = `rgba(${string})`;\ntype HEX = `#${string}`;\n\nexport type IcColor = RGB | RGBA | HEX;\n\nexport type IcIconPlacementOptions = \"left\" | \"right\" | \"top\";\n\nexport type IcButtonTooltipPlacement = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nexport type IcThemeSettings = \"dark\" | \"light\" | \"system\";\n\nexport interface IcPaginationBarOptions {\n alignment?: IcPaginationAlignmentOptions;\n hideAllFromItemsPerPage?: boolean;\n hideCurrentPage?: boolean;\n hideFirstAndLastPageButton?: boolean;\n hideRangeLabel?: boolean;\n itemLabel?: string;\n itemsPerPageOptions?: { label: string; value: string }[];\n monochrome?: boolean;\n pageLabel?: string;\n rangeLabelType?: IcPaginationLabelTypes;\n selectedItemsPerPage?: number;\n selectItemsPerPageOnEnter?: boolean;\n setToFirstPageOnPaginationChange?: boolean;\n showGoToPageControl?: boolean;\n showItemsPerPageControl?: boolean;\n theme?: IcThemeMode;\n type?: IcPaginationTypes;\n}\n\nexport type IcDateFormat = \"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\";\n\nexport type IcDateValueFormat = string | Date | null | undefined;\n\nexport type IcTimeFormat = \"HH:MM\" | \"HH:MM:SS\" | \"HH:MM:SS.SSS\";\n\nexport type IcTimeFormatSelector = \"HH:MM\" | \"HH:MM:SS\";\n\nexport type IcDisableTimeSelection =\n | string\n | Date\n | { start: string | Date; end: string | Date };\n\nexport enum IcDateInputMonths {\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n}\n\nexport enum IcShortDayNames {\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n}\n\nexport enum IcDayNames {\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n}\n\nexport enum IcWeekDays {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n}\n\nexport type IcPositionTopOrRight = \"top\" | \"right\";\n\n// Matches HTML aria-live attribute options\nexport type IcAriaLive = \"polite\" | \"assertive\" | \"off\";\n\nexport type IcCardDensity = \"default\" | \"spacious\";\n","import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\", \"ic-button\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n\n// Keyboard characters that do not affect the content of an input control when pressed\nexport const IGNORED_KEYBOARD_CHARACTERS = [\n \"Alt\",\n \"AltGraph\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"AudioVolumeDown\",\n \"AudioVolumeMute\",\n \"AudioVolumeUp\",\n \"CapsLock\",\n \"ContextMenu\",\n \"Control\",\n \"Delete\",\n \"End\",\n \"Enter\",\n \"Escape\",\n \"F1\",\n \"F10\",\n \"F11\",\n \"F12\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"Home\",\n \"Insert\",\n \"Meta\",\n \"NumLock\",\n \"PageDown\",\n \"PageUp\",\n \"Shift\",\n \"Tab\",\n];\n","/**\n * To investigate:\n * IcColorRGBA works via @ukic/web-components but IcBrandForegroundEnum does not even though they are exported\n * from @ukic/web-components in the same file. Why?\n */\nimport { EventEmitter, forceUpdate } from \"@stencil/core\";\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n IcDeviceSizes,\n IcColor,\n IcBrandForegroundNoDefault,\n IcBrandForeground,\n IcMenuOption,\n} from \"@ukic/web-components\";\nimport { IcDataTableDataType } from \"../interface\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\"; // Using @ukic/web-components/dist/types/utils/constants does not work so duplicated constants into canary package\nimport { IcBrandForegroundEnum } from \"./types\"; // Using @ukic/web-components/dist/types/utils/types does not work so duplicated constants into canary package\n\nconst DARK_MODE_THRESHOLD = 133.3505;\nconst ANYWHERE_SEARCH_POSITION = \"anywhere\";\nconst icInput = \"ic-input\";\n\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (\n theEnum: Record<string, string | number>\n): string[] => {\n const arr: string[] = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val as string;\n arr.push(str);\n }\n });\n return arr;\n};\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: string } => {\n const attributeObject: { [key: string]: string } = {};\n\n attributes.forEach((attr) => {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = value;\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\nexport const dynamicDebounce = (\n func: (...args: unknown[]) => void,\n getDelay: () => number\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n const delay = getDelay();\n clearTimeout(timer);\n timer = setTimeout(func, delay, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | Date | undefined | null,\n disabled: boolean | undefined\n): void => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n let input = getHiddenInputElement(container);\n\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.disabled = !!disabled;\n input.name = name;\n\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : \"\";\n } else {\n input.value = value || \"\";\n }\n }\n};\n\nconst getHiddenInputElement = (container: HTMLElement) =>\n Array.from(\n container.querySelectorAll<HTMLInputElement>(`input.${icInput}`)\n ).filter((el) => container === el.parentElement)[0];\n\n/**\n * This method is used to add a hidden file input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param event: The event that is emitted once a file is selected.\n * @param container The element where the input will be added\n * @param multiple If true, multiple files can be selected\n * @param disabled If true, the input is disabled\n * @param accept A string of the accepted files\n * @param name The name of the input\n * @param value The value of the input\n */\nexport const renderFileHiddenInput = (\n event: EventEmitter,\n container: HTMLElement,\n multiple: boolean,\n disabled: boolean,\n accept?: string,\n name?: string,\n value?: FileList\n): void => {\n if (name !== undefined && hasShadowDom(container)) {\n let input = getHiddenInputElement(container);\n\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.type = \"file\";\n input.hidden = true;\n input.multiple = multiple;\n input.name = name;\n input.disabled = disabled;\n\n if (value) input.files = value;\n if (accept) input.accept = accept;\n\n input.onchange = () => {\n event.emit(input.files);\n };\n input.click();\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n getHiddenInputElement(container)?.remove();\n};\n\nexport const hasShadowDom = (el: HTMLElement | null | undefined): boolean =>\n !!el && !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n el: HTMLElement,\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${\n isSlotUsed(el, \"helper-text\") || helperText\n ? getInputHelperTextID(inputId)\n : \"\"\n } ${validationText ? getInputValidationTextID(inputId) : \"\"}`.trim();\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcBrandForeground depending on the context\n */\nexport const getBrandFromContext = (\n el: Element,\n brandFromEvent: IcBrandForeground | null = null\n): IcBrandForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement?.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcBrandForegroundEnum.Default;\n } else if (\n brandFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return brandFromEvent;\n } else if (\n blockColorParent.classList.contains(\n `${parentTag}-${IcBrandForegroundEnum.Dark}`\n ) ||\n blockColorParent.classList.contains(IcBrandForegroundEnum.Dark)\n ) {\n return IcBrandForegroundEnum.Dark;\n }\n\n return IcBrandForegroundEnum.Light;\n }\n\n return IcBrandForegroundEnum.Default;\n};\n\n/**\n * Checks if the current device is a mobile or tablet device.\n * @returns {boolean} Returns true if the device is a mobile or tablet device, otherwise returns false.\n */\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator && \"userAgent\" in navigator\n ? navigator.maxTouchPoints > 0 &&\n /iPad|iPhone|iPod|Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n )\n : false;\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n button.type && hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string | null): boolean =>\n value ? value.trim().length === 0 : true;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop: string): string | null =>\n prop !== undefined ? prop : null;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions = ANYWHERE_SEARCH_POSITION,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === ANYWHERE_SEARCH_POSITION\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\n/**\n * Gets count of options where only group title \"parent\" options have been removed.\n * Disabled options are included in the count.\n * @param options - array of options\n * @returns number of options not including group titles\n */\nexport const getOptionsWithoutGroupTitlesCount = (\n options: IcMenuOption[]\n): number => {\n const optionsWithoutGroupTitles: IcMenuOption[] = [];\n\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => optionsWithoutGroupTitles.push(option));\n } else {\n optionsWithoutGroupTitles.push(option);\n }\n });\n }\n\n return optionsWithoutGroupTitles.length;\n};\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the brand colour, calculated by using the brand RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-brand-text-color\"\n * @returns number representing the brightness of the brand colour\n */\nexport const getBrandColorBrightness = (): number => {\n const r = getCssProperty(\"--ic-brand-color-primary-r\");\n const g = getCssProperty(\"--ic-brand-color-primary-g\");\n const b = getCssProperty(\"--ic-brand-color-primary-b\");\n return (parseInt(r) * 299 + parseInt(g) * 587 + parseInt(b) * 114) / 1000;\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n * @param brightness - Optional custom brightness value. Defaults to `getBrandColorBrightness`\n */\nexport const getBrandForegroundAppearance = (\n brightness = getBrandColorBrightness()\n): IcBrandForegroundNoDefault =>\n brightness > DARK_MODE_THRESHOLD\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n\nexport const getSlot = (\n element: HTMLElement | undefined,\n name: string\n): Element | null => element?.querySelector(`[slot=\"${name}\"]`) || null;\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n return slot ? getSlotElements(slot) : null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] | null => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent === null) return [slot];\n\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : slot.tagName ? [slot] : null;\n};\n\nexport const getNavItemParentDetails = ({\n parentElement,\n}: HTMLElement): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n if (parentElement) {\n switch (parentElement.tagName) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: parentElement };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: parentElement };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n }\n\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(\n getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 0\n S: Number(\n getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 576\n M: Number(\n getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 768\n L: Number(\n getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 992\n XL: Number(\n getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 1200\n UNDEFINED: 1200,\n};\n\nexport const hasValidationStatus = (\n status?: IcInformationStatusOrEmpty,\n disabled?: boolean\n): boolean => !!status && !disabled;\n\nexport const isSlotUsed = (\n { children }: HTMLElement,\n slotName: string\n): boolean =>\n Array.from(children).some((child) => child.getAttribute(\"slot\") === slotName);\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n props.forEach(({ prop, propName }) => {\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n });\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string =>\n kebabCase\n .toLowerCase()\n .split(\"-\")\n .map((word, index) =>\n index === 0\n ? word\n : `${word.substring(0, 1).toUpperCase()}${word.substring(1)}`\n )\n .join(\"\");\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nconst hex2dec = (v: string) => parseInt(v, 16);\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n const hexChars = hex\n .replace(\"#\", \"\")\n .split(\"\")\n .map((char) => char.repeat(2));\n return {\n r: hex2dec(hex.length === 4 ? hexChars[0] : hex.slice(1, 3)),\n g: hex2dec(hex.length === 4 ? hexChars[1] : hex.slice(3, 5)),\n b: hex2dec(hex.length === 4 ? hexChars[2] : hex.slice(5)),\n a: 1,\n };\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const isRGBA = rgbaStr.slice(3, 4).toLowerCase() === \"a\";\n const rgbValues = rgbaStr\n .substring(isRGBA ? 5 : 4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\")\n .map(Number);\n return {\n r: rgbValues[0],\n g: rgbValues[1],\n b: rgbValues[2],\n a: isRGBA ? rgbValues[3] : 1,\n };\n};\n\nexport const elementOverflowsX = ({\n scrollWidth,\n clientWidth,\n}: HTMLElement): boolean => scrollWidth > clientWidth;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.addEventListener(\"reset\", callbackFn);\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.removeEventListener(\"reset\", callbackFn);\n};\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\n/**\n * Removes the disabled attribute from the provided element when its value is set to false.\n * This effectively makes it null, to not confuse screen readers that cannot interpret the false value\n */\nexport const removeDisabledFalse = (\n disabled: boolean | undefined,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean =>\n window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n\nexport const isNumeric = (value: string): boolean => /^-?\\d+$/.test(value);\n\nexport async function waitForHydration(): Promise<boolean> {\n const elements = document.getElementsByTagName(\"*\");\n\n for (let i = 0; i < elements.length; i++) {\n if (elements[i].tagName.startsWith(\"IC-\")) {\n if (elements[i].classList.contains(\"hydrated\")) {\n return true;\n }\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nexport const convertToRGBA = (color: IcColor): IcColorRGBA | null => {\n const firstChar = color?.slice(0, 1).toLowerCase();\n return firstChar === \"#\"\n ? hexToRgba(color)\n : firstChar === \"r\"\n ? rgbaStrToObj(color)\n : null;\n};\n\nexport const capitalize = (text: string): string =>\n text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const checkSlotInChildMutations = (\n addedNodes: NodeList,\n removedNodes: NodeList,\n slotName: string | string[]\n): boolean => {\n const hasSlot = (nodeList: NodeList) =>\n Array.from(nodeList).some((node) =>\n Array.isArray(slotName)\n ? slotName.some((name) => (node as Element).slot === name)\n : (node as Element).slot === slotName\n );\n return hasSlot(addedNodes) || hasSlot(removedNodes);\n};\n\nexport const isElInAGGrid = (el: HTMLElement): boolean =>\n !!el.closest(\".ag-cell\") && !!el.closest(\".ag-root\");\n\nexport const addDataToPosition = (\n dataObject: IcDataTableDataType,\n newKeys: { key: string; index: number }[],\n newValue: unknown\n): IcDataTableDataType => {\n const newData: IcDataTableDataType = {};\n const newIndexes = newKeys.map((key) => key.index);\n\n const keys = Object.keys(dataObject);\n const values = Object.values(dataObject);\n const numberOfKeys = keys.length + newIndexes.length;\n\n for (let i = 0, j = 0; i < numberOfKeys; i++) {\n if (newIndexes.includes(i)) {\n newData[newKeys[newIndexes.indexOf(i)].key] = newValue;\n continue;\n }\n newData[keys[j]] = values[j];\n j++;\n }\n return newData;\n};\n\n/*\n * Checks if the component is slotted in its relevant 'group' component\n * @param component - the component to check\n */\nexport const isSlottedInGroup = (component: HTMLElement): boolean =>\n component.parentElement?.tagName === `${component.tagName}-GROUP`;\n\nexport const hasDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[]\n): boolean =>\n mutationList.some(\n ({ type, addedNodes, removedNodes }) =>\n type === \"childList\" &&\n checkSlotInChildMutations(addedNodes, removedNodes, slotNames)\n );\n\nexport const renderDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[],\n ref: unknown\n): void => {\n if (hasDynamicChildSlots(mutationList, slotNames)) {\n forceUpdate(ref);\n }\n};\n\n/**\n * Parses a time string (HH:MM or HH:MM:SS) or Date and returns both Date and time parts.\n * @param value string or Date\n * @returns { date: Date | null, parts: { hour: number, minute: number, second: number } | null }\n */\nexport function parseTimeHelper(value: string | Date): {\n date: Date | null;\n parts: {\n hour: number;\n minute: number;\n second: number;\n millisecond: number;\n } | null;\n} {\n if (!value) return { date: null, parts: null };\n let d: Date;\n if (typeof value === \"string\") {\n const parts = value.split(/[:.]/);\n if (parts.length >= 2) {\n d = new Date();\n d.setHours(\n +parts[0],\n +parts[1],\n parts[2] ? +parts[2] : 0,\n parts[3] ? +parts[3] : 0\n );\n } else {\n return { date: null, parts: null };\n }\n } else if (value instanceof Date) {\n d = value;\n } else {\n return { date: null, parts: null };\n }\n return {\n date: d,\n parts: {\n hour: d.getHours(),\n minute: d.getMinutes(),\n second: d.getSeconds(),\n millisecond: d.getMilliseconds(),\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["IcInformationStatus","IcBrandForegroundEnum","IcDateInputMonths","IcShortDayNames","IcDayNames","IcWeekDays","IC_DEVICE_SIZES","XS","S","M","L","XL","IC_BLOCK_COLOR_COMPONENTS","IC_FIXED_COLOR_COMPONENTS","IC_BLOCK_COLOR_EXCEPTIONS","icInput","stringEnumToArray","theEnum","arr","Object","values","forEach","val","isNaN","Number","str","push","dynamicDebounce","func","getDelay","timer","args","delay","clearTimeout","setTimeout","renderHiddenInput","always","container","name","value","disabled","undefined","hasShadowDom","input","getHiddenInputElement","ownerDocument","createElement","type","classList","add","appendChild","Date","toISOString","Array","from","querySelectorAll","filter","el","parentElement","shadowRoot","attachShadow","getInputHelperTextID","id","getInputValidationTextID","getInputDescribedByText","inputId","helperText","validationText","isSlotUsed","trim","getBrandFromContext","brandFromEvent","getRootNode","host","blockColorParent","closest","join","parentTag","tagName","toLowerCase","currentTag","_a","includes","Default","contains","Dark","Light","isEmptyString","length","isPropDefined","prop","deviceSizeMatches","size","window","matchMedia","matches","getCurrentDeviceSize","DEVICE_SIZES","UNDEFINED","getCssProperty","cssVar","getComputedStyle","document","documentElement","getPropertyValue","getSlotElements","slot","slotContent","firstElementChild","elements","assignedElements","childNodes","replace","children","slotName","some","child","getAttribute","onComponentRequiredPropUndefined","props","component","propName","console","error","kebabToCamelCase","kebabCase","split","map","word","index","substring","toUpperCase","checkResizeObserver","callbackFn","ResizeObserver","addFormResetListener","addEventListener","removeFormResetListener","removeEventListener","pxToRem","px","base","parseInt","removeDisabledFalse","element","removeAttribute","isNumeric","test","capitalize","text","charAt","slice","checkSlotInChildMutations","addedNodes","removedNodes","hasSlot","nodeList","node","isArray","addDataToPosition","dataObject","newKeys","newValue","newData","newIndexes","key","keys","numberOfKeys","i","j","indexOf","hasDynamicChildSlots","mutationList","slotNames","renderDynamicChildSlots","ref","forceUpdate","parseTimeHelper","date","parts","d","setHours","hour","getHours","minute","getMinutes","second","getSeconds","millisecond","getMilliseconds"],"sources":["src/utils/types.ts","src/utils/constants.ts","src/utils/helpers.ts"],"sourcesContent":["import {\n IcPaginationLabelTypes,\n IcPaginationTypes,\n IcPaginationAlignmentOptions,\n} from \"../components\";\n\nexport type IcFocusableComponents =\n | HTMLIcBreadcrumbElement\n | HTMLIcButtonElement\n | HTMLIcCardVerticalElement\n | HTMLIcCheckboxElement\n | HTMLIcChipElement\n | HTMLIcLinkElement\n | HTMLIcNavigationButtonElement\n | HTMLIcNavigationGroupElement\n | HTMLIcNavigationItemElement\n | HTMLIcRadioOptionElement\n | HTMLIcSearchBarElement\n | HTMLIcSelectElement\n | HTMLIcSwitchElement\n | HTMLIcTabElement\n | HTMLIcTextFieldElement;\n\nexport type IcStatusVariants =\n | \"neutral\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcSizes = \"medium\" | \"large\" | \"small\";\n\nexport type IcSizesNoLarge = \"medium\" | \"small\";\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcNavType = \"side\" | \"top\" | \"page-header\";\n\n// From: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\nexport type IcAutocompleteTypes =\n | \"on\"\n | \"off\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\";\n\nexport type IcAlignment = \"left\" | \"center\" | \"full-width\";\n\nexport enum IcBrandForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport type IcThemeMode = \"dark\" | \"light\" | \"inherit\";\n\nexport type IcBrandForeground = \"default\" | \"dark\" | \"light\";\n\nexport type IcBrandForegroundNoDefault = \"dark\" | \"light\";\n\nexport type IcBrand = {\n mode: IcBrandForeground;\n color: IcColorRGB;\n};\n\nexport type IcAdditionalFieldTypes = \"static\" | \"dynamic\";\n\nexport type IcColorRGB = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type IcColorRGBA = IcColorRGB & {\n a: number;\n};\n\nexport type IcActivationTypes = \"automatic\" | \"manual\";\n\nexport type IcAutocorrectStates = \"on\" | \"off\";\n\nexport type IcNavParentDetails = {\n navType: IcNavType | \"\";\n parent: HTMLElement | null;\n};\n\nexport type IcTypographyVariants =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"subtitle-large\"\n | \"subtitle-small\"\n | \"body\"\n | \"label\"\n | \"label-uppercase\"\n | \"caption\"\n | \"caption-uppercase\"\n | \"code-large\"\n | \"code-small\"\n | \"code-extra-small\"\n | \"badge\"\n | \"badge-small\";\n\n/**\n * @interface IcMenuOption\n * Set \"label\" and \"value\" props to use as the option's label and value.\n * Alternatively, custom names for these props can be used e.g. by setting the \"labelField\" and \"valueField\" props on the relevant component.\n *\n * Any props supplied to the \"htmlProps\" object will be spread onto the option's underlying <li> element.\n */\nexport interface IcMenuOption {\n description?: string;\n disabled?: boolean;\n recommended?: boolean;\n children?: IcMenuOption[];\n loading?: boolean;\n timedOut?: boolean;\n [key: string]: any;\n element?: {\n component: any;\n ariaLabel: string;\n };\n icon?: any;\n htmlProps?: Record<string, any>;\n}\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport type IcCallbackFunctionNoReturn = (...args: unknown[]) => void;\n\nexport type IcRequiredPropsTypes =\n | string\n | boolean\n | number\n | HTMLElement\n | IcMenuOption[]\n | undefined;\n\nexport type IcPropObject = { prop: IcRequiredPropsTypes; propName: string };\n\nexport type IcRelatedTarget = EventTarget | undefined;\n\nexport type IcOrientation = \"horizontal\" | \"vertical\";\n\nexport type IcEmphasisType = \"filled\" | \"outlined\";\n\nexport interface IcValueEventDetail {\n value: string;\n keyPressed?: string;\n}\n\nexport interface IcMultiValueEventDetail {\n value: string | string[] | null;\n keyPressed?: string;\n}\n\nexport interface IcBlurEventDetail {\n relatedTarget: IcRelatedTarget | null;\n}\n\nexport type IcSelectTypes = \"single\" | \"multi\";\n\nexport type IcSelectMethodTypes = \"auto\" | \"manual\";\n\nexport type IcDeviceSizes = 0 | 576 | 768 | 992 | 1200;\n\ntype RGB = `rgb(${string})`;\ntype RGBA = `rgba(${string})`;\ntype HEX = `#${string}`;\n\nexport type IcColor = RGB | RGBA | HEX;\n\nexport type IcIconPlacementOptions = \"left\" | \"right\" | \"top\";\n\nexport type IcButtonTooltipPlacement = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nexport type IcThemeSettings = \"dark\" | \"light\" | \"system\";\n\nexport interface IcPaginationBarOptions {\n alignment?: IcPaginationAlignmentOptions;\n hideAllFromItemsPerPage?: boolean;\n hideCurrentPage?: boolean;\n hideFirstAndLastPageButton?: boolean;\n hideRangeLabel?: boolean;\n itemLabel?: string;\n itemsPerPageOptions?: { label: string; value: string }[];\n monochrome?: boolean;\n pageLabel?: string;\n rangeLabelType?: IcPaginationLabelTypes;\n selectedItemsPerPage?: number;\n selectItemsPerPageOnEnter?: boolean;\n setToFirstPageOnPaginationChange?: boolean;\n showGoToPageControl?: boolean;\n showItemsPerPageControl?: boolean;\n theme?: IcThemeMode;\n type?: IcPaginationTypes;\n}\n\nexport type IcDateFormat = \"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\";\n\nexport type IcDateValueFormat = string | Date | null | undefined;\n\nexport type IcTimeFormat = \"HH:MM\" | \"HH:MM:SS\" | \"HH:MM:SS.SSS\";\n\nexport type IcDisableTimeSelection = {\n start: string | Date;\n end: string | Date;\n};\n\nexport enum IcDateInputMonths {\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n}\n\nexport enum IcShortDayNames {\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n}\n\nexport enum IcDayNames {\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n}\n\nexport enum IcWeekDays {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n}\n\nexport type IcPositionTopOrRight = \"top\" | \"right\";\n\n// Matches HTML aria-live attribute options\nexport type IcAriaLive = \"polite\" | \"assertive\" | \"off\";\n\nexport type IcCardDensity = \"default\" | \"spacious\";\n","import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\", \"ic-button\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n\n// Keyboard characters that do not affect the content of an input control when pressed\nexport const IGNORED_KEYBOARD_CHARACTERS = [\n \"Alt\",\n \"AltGraph\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"AudioVolumeDown\",\n \"AudioVolumeMute\",\n \"AudioVolumeUp\",\n \"CapsLock\",\n \"ContextMenu\",\n \"Control\",\n \"Delete\",\n \"End\",\n \"Enter\",\n \"Escape\",\n \"F1\",\n \"F10\",\n \"F11\",\n \"F12\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"Home\",\n \"Insert\",\n \"Meta\",\n \"NumLock\",\n \"PageDown\",\n \"PageUp\",\n \"Shift\",\n \"Tab\",\n];\n","/**\n * To investigate:\n * IcColorRGBA works via @ukic/web-components but IcBrandForegroundEnum does not even though they are exported\n * from @ukic/web-components in the same file. Why?\n */\nimport { EventEmitter, forceUpdate } from \"@stencil/core\";\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n IcDeviceSizes,\n IcColor,\n IcBrandForegroundNoDefault,\n IcBrandForeground,\n IcMenuOption,\n} from \"@ukic/web-components\";\nimport { IcDataTableDataType } from \"../interface\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\"; // Using @ukic/web-components/dist/types/utils/constants does not work so duplicated constants into canary package\nimport { IcBrandForegroundEnum } from \"./types\"; // Using @ukic/web-components/dist/types/utils/types does not work so duplicated constants into canary package\n\nconst DARK_MODE_THRESHOLD = 133.3505;\nconst ANYWHERE_SEARCH_POSITION = \"anywhere\";\nconst icInput = \"ic-input\";\n\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (\n theEnum: Record<string, string | number>\n): string[] => {\n const arr: string[] = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val as string;\n arr.push(str);\n }\n });\n return arr;\n};\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: string } => {\n const attributeObject: { [key: string]: string } = {};\n\n attributes.forEach((attr) => {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = value;\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\nexport const dynamicDebounce = (\n func: (...args: unknown[]) => void,\n getDelay: () => number\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n const delay = getDelay();\n clearTimeout(timer);\n timer = setTimeout(func, delay, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | Date | undefined | null,\n disabled: boolean | undefined\n): void => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n let input = getHiddenInputElement(container);\n\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.disabled = !!disabled;\n input.name = name;\n\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : \"\";\n } else {\n input.value = value || \"\";\n }\n }\n};\n\nconst getHiddenInputElement = (container: HTMLElement) =>\n Array.from(\n container.querySelectorAll<HTMLInputElement>(`input.${icInput}`)\n ).filter((el) => container === el.parentElement)[0];\n\n/**\n * This method is used to add a hidden file input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param event: The event that is emitted once a file is selected.\n * @param container The element where the input will be added\n * @param multiple If true, multiple files can be selected\n * @param disabled If true, the input is disabled\n * @param accept A string of the accepted files\n * @param name The name of the input\n * @param value The value of the input\n */\nexport const renderFileHiddenInput = (\n event: EventEmitter,\n container: HTMLElement,\n multiple: boolean,\n disabled: boolean,\n accept?: string,\n name?: string,\n value?: FileList\n): void => {\n if (name !== undefined && hasShadowDom(container)) {\n let input = getHiddenInputElement(container);\n\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.type = \"file\";\n input.hidden = true;\n input.multiple = multiple;\n input.name = name;\n input.disabled = disabled;\n\n if (value) input.files = value;\n if (accept) input.accept = accept;\n\n input.onchange = () => {\n event.emit(input.files);\n };\n input.click();\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n getHiddenInputElement(container)?.remove();\n};\n\nexport const hasShadowDom = (el: HTMLElement | null | undefined): boolean =>\n !!el && !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n el: HTMLElement,\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${\n isSlotUsed(el, \"helper-text\") || helperText\n ? getInputHelperTextID(inputId)\n : \"\"\n } ${validationText ? getInputValidationTextID(inputId) : \"\"}`.trim();\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcBrandForeground depending on the context\n */\nexport const getBrandFromContext = (\n el: Element,\n brandFromEvent: IcBrandForeground | null = null\n): IcBrandForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement?.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcBrandForegroundEnum.Default;\n } else if (\n brandFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return brandFromEvent;\n } else if (\n blockColorParent.classList.contains(\n `${parentTag}-${IcBrandForegroundEnum.Dark}`\n ) ||\n blockColorParent.classList.contains(IcBrandForegroundEnum.Dark)\n ) {\n return IcBrandForegroundEnum.Dark;\n }\n\n return IcBrandForegroundEnum.Light;\n }\n\n return IcBrandForegroundEnum.Default;\n};\n\n/**\n * Checks if the current device is a mobile or tablet device.\n * @returns {boolean} Returns true if the device is a mobile or tablet device, otherwise returns false.\n */\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator && \"userAgent\" in navigator\n ? navigator.maxTouchPoints > 0 &&\n /iPad|iPhone|iPod|Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n )\n : false;\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n button.type && hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string | null): boolean =>\n value ? value.trim().length === 0 : true;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop: string): string | null =>\n prop !== undefined ? prop : null;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions = ANYWHERE_SEARCH_POSITION,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === ANYWHERE_SEARCH_POSITION\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\n/**\n * Gets count of options where only group title \"parent\" options have been removed.\n * Disabled options are included in the count.\n * @param options - array of options\n * @returns number of options not including group titles\n */\nexport const getOptionsWithoutGroupTitlesCount = (\n options: IcMenuOption[]\n): number => {\n const optionsWithoutGroupTitles: IcMenuOption[] = [];\n\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => optionsWithoutGroupTitles.push(option));\n } else {\n optionsWithoutGroupTitles.push(option);\n }\n });\n }\n\n return optionsWithoutGroupTitles.length;\n};\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the brand colour, calculated by using the brand RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-brand-text-color\"\n * @returns number representing the brightness of the brand colour\n */\nexport const getBrandColorBrightness = (): number => {\n const r = getCssProperty(\"--ic-brand-color-primary-r\");\n const g = getCssProperty(\"--ic-brand-color-primary-g\");\n const b = getCssProperty(\"--ic-brand-color-primary-b\");\n return (parseInt(r) * 299 + parseInt(g) * 587 + parseInt(b) * 114) / 1000;\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n * @param brightness - Optional custom brightness value. Defaults to `getBrandColorBrightness`\n */\nexport const getBrandForegroundAppearance = (\n brightness = getBrandColorBrightness()\n): IcBrandForegroundNoDefault =>\n brightness > DARK_MODE_THRESHOLD\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n\nexport const getSlot = (\n element: HTMLElement | undefined,\n name: string\n): Element | null => element?.querySelector(`[slot=\"${name}\"]`) || null;\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n return slot ? getSlotElements(slot) : null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] | null => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent === null) return [slot];\n\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : slot.tagName ? [slot] : null;\n};\n\nexport const getNavItemParentDetails = ({\n parentElement,\n}: HTMLElement): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n if (parentElement) {\n switch (parentElement.tagName) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: parentElement };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: parentElement };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n }\n\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(\n getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 0\n S: Number(\n getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 576\n M: Number(\n getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 768\n L: Number(\n getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 992\n XL: Number(\n getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 1200\n UNDEFINED: 1200,\n};\n\nexport const hasValidationStatus = (\n status?: IcInformationStatusOrEmpty,\n disabled?: boolean\n): boolean => !!status && !disabled;\n\nexport const isSlotUsed = (\n { children }: HTMLElement,\n slotName: string\n): boolean =>\n Array.from(children).some((child) => child.getAttribute(\"slot\") === slotName);\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n props.forEach(({ prop, propName }) => {\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n });\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string =>\n kebabCase\n .toLowerCase()\n .split(\"-\")\n .map((word, index) =>\n index === 0\n ? word\n : `${word.substring(0, 1).toUpperCase()}${word.substring(1)}`\n )\n .join(\"\");\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nconst hex2dec = (v: string) => parseInt(v, 16);\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n const hexChars = hex\n .replace(\"#\", \"\")\n .split(\"\")\n .map((char) => char.repeat(2));\n return {\n r: hex2dec(hex.length === 4 ? hexChars[0] : hex.slice(1, 3)),\n g: hex2dec(hex.length === 4 ? hexChars[1] : hex.slice(3, 5)),\n b: hex2dec(hex.length === 4 ? hexChars[2] : hex.slice(5)),\n a: 1,\n };\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const isRGBA = rgbaStr.slice(3, 4).toLowerCase() === \"a\";\n const rgbValues = rgbaStr\n .substring(isRGBA ? 5 : 4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\")\n .map(Number);\n return {\n r: rgbValues[0],\n g: rgbValues[1],\n b: rgbValues[2],\n a: isRGBA ? rgbValues[3] : 1,\n };\n};\n\nexport const elementOverflowsX = ({\n scrollWidth,\n clientWidth,\n}: HTMLElement): boolean => scrollWidth > clientWidth;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.addEventListener(\"reset\", callbackFn);\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.removeEventListener(\"reset\", callbackFn);\n};\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\n/**\n * Removes the disabled attribute from the provided element when its value is set to false.\n * This effectively makes it null, to not confuse screen readers that cannot interpret the false value\n */\nexport const removeDisabledFalse = (\n disabled: boolean | undefined,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean =>\n window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n\nexport const isNumeric = (value: string): boolean => /^-?\\d+$/.test(value);\n\nexport async function waitForHydration(): Promise<boolean> {\n const elements = document.getElementsByTagName(\"*\");\n\n for (let i = 0; i < elements.length; i++) {\n if (elements[i].tagName.startsWith(\"IC-\")) {\n if (elements[i].classList.contains(\"hydrated\")) {\n return true;\n }\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nexport const convertToRGBA = (color: IcColor): IcColorRGBA | null => {\n const firstChar = color?.slice(0, 1).toLowerCase();\n return firstChar === \"#\"\n ? hexToRgba(color)\n : firstChar === \"r\"\n ? rgbaStrToObj(color)\n : null;\n};\n\nexport const capitalize = (text: string): string =>\n text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const checkSlotInChildMutations = (\n addedNodes: NodeList,\n removedNodes: NodeList,\n slotName: string | string[]\n): boolean => {\n const hasSlot = (nodeList: NodeList) =>\n Array.from(nodeList).some((node) =>\n Array.isArray(slotName)\n ? slotName.some((name) => (node as Element).slot === name)\n : (node as Element).slot === slotName\n );\n return hasSlot(addedNodes) || hasSlot(removedNodes);\n};\n\nexport const isElInAGGrid = (el: HTMLElement): boolean =>\n !!el.closest(\".ag-cell\") && !!el.closest(\".ag-root\");\n\nexport const addDataToPosition = (\n dataObject: IcDataTableDataType,\n newKeys: { key: string; index: number }[],\n newValue: unknown\n): IcDataTableDataType => {\n const newData: IcDataTableDataType = {};\n const newIndexes = newKeys.map((key) => key.index);\n\n const keys = Object.keys(dataObject);\n const values = Object.values(dataObject);\n const numberOfKeys = keys.length + newIndexes.length;\n\n for (let i = 0, j = 0; i < numberOfKeys; i++) {\n if (newIndexes.includes(i)) {\n newData[newKeys[newIndexes.indexOf(i)].key] = newValue;\n continue;\n }\n newData[keys[j]] = values[j];\n j++;\n }\n return newData;\n};\n\n/*\n * Checks if the component is slotted in its relevant 'group' component\n * @param component - the component to check\n */\nexport const isSlottedInGroup = (component: HTMLElement): boolean =>\n component.parentElement?.tagName === `${component.tagName}-GROUP`;\n\nexport const hasDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[]\n): boolean =>\n mutationList.some(\n ({ type, addedNodes, removedNodes }) =>\n type === \"childList\" &&\n checkSlotInChildMutations(addedNodes, removedNodes, slotNames)\n );\n\nexport const renderDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[],\n ref: unknown\n): void => {\n if (hasDynamicChildSlots(mutationList, slotNames)) {\n forceUpdate(ref);\n }\n};\n\n/**\n * Parses a time string (HH:MM or HH:MM:SS) or Date and returns both Date and time parts.\n * @param value string or Date\n * @returns { date: Date | null, parts: { hour: number, minute: number, second: number } | null }\n */\nexport function parseTimeHelper(value: string | Date): {\n date: Date | null;\n parts: {\n hour: number;\n minute: number;\n second: number;\n millisecond: number;\n } | null;\n} {\n if (!value) return { date: null, parts: null };\n let d: Date;\n if (typeof value === \"string\") {\n const parts = value.split(/[:.]/);\n if (parts.length >= 2) {\n d = new Date();\n d.setHours(\n +parts[0],\n +parts[1],\n parts[2] ? +parts[2] : 0,\n parts[3] ? +parts[3] : 0\n );\n } else {\n return { date: null, parts: null };\n }\n } else if (value instanceof Date) {\n d = value;\n } else {\n return { date: null, parts: null };\n }\n return {\n date: d,\n parts: {\n hour: d.getHours(),\n minute: d.getMinutes(),\n second: d.getSeconds(),\n millisecond: d.getMilliseconds(),\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as i,c as t,h as s,H as e,g as h}from"./p-8e4e97b4.js";import{b as r,l as a,m as o,n,q as l,r as c,s as d,t as u,o as f,u as p}from"./p-829b34f9.js";import{C as b}from"./p-dd7450fb.js";import"./p-c2669ec9.js";import"./p-964d0e32.js";import"./p-f65f0065.js";import"./p-18d5e467.js";import"./p-0592277b.js";import"./p-7bbd1881.js";import"./p-67a4f674.js";const m=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>clock-outline</title><path d="M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z" /></svg>`;const v='/*! 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{--ic-input-label-helpertext-padding:var(--ic-space-xs);--input-bg-color:var(--ic-time-picker-field-background);--ic-input-label-text-color:var(--ic-time-picker-label);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle);--border-color:var(--ic-time-picker-time-field-border-default);--border-color-disabled:var(--ic-time-picker-border-disabled);--border-color-hover:var(--ic-time-picker-time-field-border-hover);--border-color-pressed:var(--ic-time-picker-time-field-border-pressed);--border-error-color:var(--ic-time-picker-border-error);--border-error-color-hover:var(--ic-time-picker-border-error-hover);--border-error-color-pressed:var(--ic-time-picker-border-error-pressed);--border-success-color:var(--ic-time-picker-border-success);--border-success-color-hover:var(--ic-time-picker-border-success-hover);--border-success-color-pressed:var(--ic-time-picker-border-success-pressed);--border-warning-color:var(--ic-time-picker-border-warning);--border-warning-color-hover:var(--ic-time-picker-border-warning-hover);--border-warning-color-pressed:var(--ic-time-picker-border-warning-pressed);--input-width:calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs))}:host(.ic-time-input-disabled){--ic-input-label-text-color:var(--ic-time-picker-label-disabled);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle-disabled)}:host(.ic-time-input-disabled) input{color:var(--ic-time-picker-time-text-disabled)}:host(.ic-time-input-large){--input-width:calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n )}:host(.ic-time-input-small){--input-width:calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n )}.with-am-pm-toggle{display:flex;flex-direction:row}.am-pm-toggle ::part(button){min-width:-moz-fit-content;min-width:fit-content}.am-pm-toggle{margin-left:var(--ic-space-xs)}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;color:var(--ic-time-picker-time-text-default);caret-color:var(--ic-time-picker-typing-cursor)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;-webkit-text-fill-color:var(--ic-time-picker-time-text-default) !important}input::-moz-placeholder{color:var(--ic-time-picker-field-placeholder-text)}input::placeholder{color:var(--ic-time-picker-field-placeholder-text)}ic-input-component-container{cursor:text}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.time-inputs{color:var(--ic-time-picker-field-placeholder-text)}.hour-input{width:1.438rem}.minute-input{width:1.813rem}.second-input{width:1.18rem}.millisecond-input,.millisecond-input.fit-to-value{width:1.75rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-clock-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.clock-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.clock-button:focus,.clear-button:active,.clock-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:0.25rem}.clock-button:focus,.clock-button:active{--ic-button-tertiary-text-active:var(--ic-atoms-input-clear-button-focus);--ic-button-tertiary-text-hover-active:var(\n --ic-atoms-input-clear-button-focus\n );--ic-button-tertiary-text-pressed-active:var(\n --ic-atoms-input-clear-button-focus\n )}.clear-button:focus,.clock-button:focus,.clear-button:active *,.clock-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button svg{color:var(--ic-time-picker-clear-icon)}.clear-button:focus svg{color:var(--ic-atoms-input-clear-button-focus)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-atoms-input-divider);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.medium{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}ic-input-validation{--ic-input-validation-status-text-color:var(--ic-time-picker-status-text);--ic-input-validation-error:var(--ic-time-picker-icon-error);--ic-input-validation-warning-icon-color:var(--ic-time-picker-icon-warning);--ic-input-validation-success-icon-color:var(--ic-time-picker-icon-success)}@media (forced-colors: active){.clear-button svg{color:currentcolor}}';const g=v;let k=0;const w=class{constructor(e){i(this,e);this.clockButtonClicked=t(this,"clockButtonClicked",7);this.icBlur=t(this,"icBlur",7);this.icTimeChange=t(this,"icTimeChange",7);this.icFocus=t(this,"icFocus",7);this.DEFAULT_TIME_FORMAT="HH:MM:SS";this.TOGGLE_BUTTON_SELECTOR="ic-toggle-button";this.ARIA_INVALID="aria-invalid";this.ARIA_LABEL="aria-label";this.ARIA_LABELLED_BY="aria-labelledby";this.EVENT_OBJECT_STRING="[object Event]";this.FIT_TO_VALUE="fit-to-value";this.initialValue=this.value;this.inputsInOrder=[];this.isValidHour=true;this.isValidMinute=true;this.isValidSecond=true;this.isValidMillisecond=true;this.isValidTime=true;this.isTimeSetFromKeyboardEvent=false;this.previousSelectedTime=null;this.selectedTime=null;this.externalSetTime=false;this.clearInput=false;this.maxTime=null;this.minTime=null;this.previousHour="";this.previousMinute="";this.previousSecond="";this.previousMillisecond="";this.previousPeriod="AM";this.clockFocused=false;this.clearButtonFocused=false;this.removeLabelledBy=false;this.hour="";this.minute="";this.second="";this.millisecond="";this.period="AM";this.isSSSFormat=()=>this.timeFormat==="HH:MM:SS.SSS";this.disabled=false;this.disableTimes=[];this.emitTimePartChange=false;this.hideHelperText=false;this.hideLabel=false;this.inputId=`ic-time-input-${k++}`;this.invalidTimeMessage="Please enter a valid time.";this.max="";this.min="";this.name=this.inputId;this.required=false;this.showAmPmToggle=false;this.showClearButton=true;this.showClockButton=false;this.size="medium";this.theme="inherit";this.timeFormat=this.DEFAULT_TIME_FORMAT;this.timePeriod="24";this.value="";this.validationAriaLive="polite";this.validationStatus="";this.validationText="";this.setInputPasteValue=(i,t)=>{if(i){const s=i;s.value=t;s.classList.add(this.FIT_TO_VALUE)}};this.isHHMMFormat=()=>this.timeFormat==="HH:MM";this.isKeyboardOrEvent=i=>Object.prototype.toString.call(i)===this.EVENT_OBJECT_STRING||Object.prototype.toString.call(i)==="[object KeyboardEvent]";this.setTimeValidity=()=>{const i=0;const t=this.timePeriod==="12"?12:23;if(!r(this.hour)){this.isValidHour=+this.hour>=i&&+this.hour<=t}else{this.isValidHour=true}if(!r(this.minute)){this.isValidMinute=+this.minute>=0&&+this.minute<=59}else{this.isValidMinute=true}if(!this.isHHMMFormat()){if(!r(this.second)){this.isValidSecond=+this.second>=0&&+this.second<=59}else{this.isValidSecond=true}if(this.isSSSFormat()){if(!r(this.millisecond)){this.isValidMillisecond=+this.millisecond>=0&&+this.millisecond<=999}else{this.isValidMillisecond=true}}else{this.isValidMillisecond=true}}else{this.isValidSecond=true;this.isValidMillisecond=true}};this.setInputValue=(i,t=false)=>{const s=t?"":i.value;if(i===this.hourInputEl){this.hour=s}else if(i===this.minuteInputEl){this.minute=s}else if(i===this.secondInputEl&&!this.isHHMMFormat()){this.second=s}else if(this.isSSSFormat()&&i===this.millisecondInputEl){this.millisecond=s}this.setValidationMessage()};this.setPreventInput=(i,t)=>{if(i===this.hourInputEl){this.preventHourInput=t}else if(i===this.minuteInputEl){this.preventMinuteInput=t}else if(i===this.secondInputEl){this.preventSecondInput=t}else if(this.isSSSFormat()&&i===this.millisecondInputEl){this.preventMillisecondInput=t}};this.setValidationMessage=()=>{this.maxTime=a(this.max).date;this.minTime=a(this.min).date;this.setTimeValidity();let i="";let t=false;if(!r(this.hour)&&!r(this.minute)&&(this.isHHMMFormat()||!r(this.second))&&(!this.isSSSFormat()||!r(this.millisecond))){this.selectedTime=this.convertToTime(this.hour,this.minute,this.isHHMMFormat()?"00":this.second,this.isSSSFormat()?this.millisecond:"000");const s=+this.hour;const e=this.selectedTime?this.selectedTime.getHours():null;if(this.timePeriod==="12"&&this.showAmPmToggle&&e!==null){let i=e%12;if(i===0)i=12;this.isValidTime=!!this.selectedTime&&i==s&&this.selectedTime.getMinutes()==+this.minute&&(this.isHHMMFormat()||this.selectedTime.getSeconds()==+this.second)&&(!this.isSSSFormat()||this.selectedTime.getMilliseconds()==+this.millisecond)}else{this.isValidTime=!!this.selectedTime&&this.selectedTime.getHours()==s&&this.selectedTime.getMinutes()==+this.minute&&(this.isHHMMFormat()||this.selectedTime.getSeconds()==+this.second)&&(!this.isSSSFormat()||this.selectedTime.getMilliseconds()==+this.millisecond)}if(this.selectedTime&&Array.isArray(this.disableTimes)&&this.disableTimes.length>0){t=this.disableTimes.some((i=>{if(typeof i==="object"&&i!==null&&"start"in i&&"end"in i){const t=a(i.start).date;const s=a(i.end).date;if(t&&s){return this.selectedTime>=t&&this.selectedTime<=s}return false}const t=a(i).parts;if(!t)return false;let s=this.selectedTime.getHours();let e=t.hour;if(this.timePeriod==="12"&&this.showAmPmToggle){s=this.convertTo24Hour(s);e=this.convertTo24Hour(e)}return e===s&&t.minute===this.selectedTime.getMinutes()&&t.second===this.selectedTime.getSeconds()}));if(t){this.isValidTime=false;i=this.invalidTimeMessage}}if(this.selectedTime&&!t){if(this.minTime&&this.selectedTime<this.minTime){this.isValidTime=false;i=`Please enter a time after ${this.formatTime(this.minTime)}.`}else if(this.maxTime&&this.selectedTime>this.maxTime){this.isValidTime=false;i=`Please enter a time before ${this.formatTime(this.maxTime)}.`}}if(!this.isValidTime){this.inputsInOrder.forEach((i=>i.setAttribute(this.ARIA_INVALID,"true")))}else{this.inputsInOrder.forEach((i=>i.removeAttribute(this.ARIA_INVALID)))}}else{this.selectedTime=null}if(!(this.isValidHour&&this.isValidMinute&&this.isValidSecond&&this.isValidMillisecond&&this.isValidTime)){this.invalidTimeText=i||this.invalidTimeMessage}else{this.invalidTimeText=""}};this.formatTime=i=>{const t=i.getHours().toString().padStart(2,"0");const s=i.getMinutes().toString().padStart(2,"0");const e=i.getSeconds().toString().padStart(2,"0");const h=i.getMilliseconds().toString().padStart(3,"0");if(this.isSSSFormat()){return`${t}:${s}:${e}.${h}`}return this.isHHMMFormat()?`${t}:${s}`:`${t}:${s}:${e}`};this.handleInput=i=>{const t=i;const s=i.target;if(s===this.millisecondInputEl&&this.isSSSFormat()){this.setInputValue(s);this.setPreventInput(s,false);this.setFitToValueStyling(s);if(s.value.length===3){this.moveToNextInput(s);this.setPreventInput(s,true)}else{this.setPreventInput(s,false)}if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}else if(s!==this.hourInputEl){if(t.inputType!=="deleteContentBackward"&&!this.preventAutoFormatting){if(s.value.length===1&&+s.value>=6&&+s.value<=9){this.setInputValue(s);this.notifyScreenReader(s);this.moveToNextInput(s)}if(s.value.length===2){this.setInputValue(s);this.setPreventInput(s,true);this.notifyScreenReader(s);this.moveToNextInput(s)}else{this.setPreventInput(s,false)}}else if(this.preventAutoFormatting){if(s.value.length===2&&!this.isKeyboardOrEvent(i)){this.setInputValue(s);this.setPreventInput(s,true);this.moveToNextInput(s)}else{this.setInputValue(s)}}if(s.value.length!==2){this.setPreventInput(s,false)}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}else{if(s.value.length===2){this.setInputValue(s);if(Object.prototype.toString.call(i)!==this.EVENT_OBJECT_STRING){this.moveToNextInput(s)}this.setPreventInput(s,true)}else{this.setInputValue(s,true);this.setPreventInput(s,false)}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}};this.handleKeyDown=(i,t)=>{var s;const e=/arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/i;const h=i.target;const r=(s=i.key)===null||s===void 0?void 0:s.toLowerCase();if(!/-?\d*\.?\d+(e[-+]?\d+)?|[:]|[.]/i.test(r)&&!e.test(r)&&!((i.ctrlKey||i.metaKey)&&(r==="v"||r==="c"))){i.preventDefault()}const a=/-?\d*\.?\d+(e[-+]?\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;if(!a.test(r)&&!((i.ctrlKey||i.metaKey)&&(r==="v"||r==="c"))){i.preventDefault()}switch(r){case":":case"arrowright":i.preventDefault();this.moveToNextInput(h);break;case"arrowleft":i.preventDefault();this.moveToPreviousInput(h);break;case"arrowup":case"arrowdown":this.preventAutoFormatting=true;this.handleUpDownArrowKeyPress(h,i);break;case"backspace":if(h.value.length===0){i.preventDefault();this.moveToPreviousInput(h)}break}this.preventInput(i,t);this.isTimeSetFromKeyboardEvent=true};this.handleFocus=i=>{const t=i.target;t.select()};this.handleBlur=i=>{const t=i.target;if(t===this.millisecondInputEl&&this.isSSSFormat()){if(t.value.length===1){t.value=`00${t.value}`;this.setInputValue(t)}else if(t.value.length===2){t.value=`0${t.value}`;this.setInputValue(t)}this.setFitToValueStyling(t)}else if(t){this.autocompleteInput(t)}};this.handleUpDownArrowKeyPress=(i,t)=>{let s=0;let e=59;if(i===this.hourInputEl){s=this.timePeriod==="12"?1:0;e=this.timePeriod==="12"?12:23}let h=+i.value;if(t.key==="ArrowUp"){h=h+1;if(h>e)h=s;i.value=h.toString().padStart(2,"0");this.notifyScreenReader(i)}if(t.key==="ArrowDown"){h=h-1;if(h<s)h=e;i.value=h.toString().padStart(2,"0");this.notifyScreenReader(i)}this.setInputValue(i);this.setFitToValueStyling(i)};this.handleTimeChange=i=>{if(i||this.selectedTime!==this.previousSelectedTime){if(this.value){this.inputsInOrder.forEach((i=>{i.classList.add(this.FIT_TO_VALUE)}))}if(this.hour&&this.minute&&(this.isHHMMFormat()||this.second)&&this.invalidTimeText===""){this.setValueAndEmitChange(this.selectedTime);this.notifyScreenReaderSelectedTime()}else if(!(this.selectedTime===null&&this.previousSelectedTime===null)&&this.selectedTimeInfoEl){this.setValueAndEmitChange(null,true);this.selectedTimeInfoEl.textContent=""}this.previousSelectedTime=this.selectedTime;if(!this.isTimeSetFromKeyboardEvent){this.updateInputValues(this.hour,this.minute,this.second)}}};this.setValueAndEmitChange=(i,t=false)=>{if(this.value!==i||t){this.emitIcTimeChange(i);this.value=i}};this.convertTo24Hour=i=>{let t=i;if(this.period==="PM"&&i<12)t=i+12;if(this.period==="AM"&&i===12)t=0;return t};this.emitIcTimeChange=i=>{const t=parseInt(this.hour);const s=parseInt(this.minute);const e=parseInt(this.second);const h=parseInt(this.millisecond);const r=this.period;let a=false;if(this.isSSSFormat()){a=this.hour!==""&&this.minute!==""&&this.second!==""&&this.millisecond!==""}else if(this.timeFormat===this.DEFAULT_TIME_FORMAT){a=this.hour!==""&&this.minute!==""&&this.second!==""}else if(this.timeFormat==="HH:MM"){a=this.hour!==""&&this.minute!==""}let o=i;let n=t;if(t!=null&&r&&this.timePeriod==="12"&&this.showAmPmToggle){n=this.convertTo24Hour(t);o=new Date;o.setHours(n!==null&&n!==void 0?n:0);o.setMinutes(s!==null&&s!==void 0?s:0);o.setSeconds(e!==null&&e!==void 0?e:0);this.isSSSFormat()&&o.setMilliseconds(h!==null&&h!==void 0?h:0)}this.selectedTime=o;const l=this.hour===""&&this.minute===""&&this.second===""&&this.millisecond==="";const c=l&&this.period!==this.previousPeriod&&this.previousHour===""&&this.previousMinute===""&&this.previousSecond===""&&this.previousMillisecond==="";if(!c){this.icTimeChange.emit({value:a?o:null,timeObject:{hour:this.hour===""?null:this.hour,minute:this.minute===""?null:this.minute,second:this.second===""?null:this.second,millisecond:this.millisecond===""?null:this.millisecond,period:this.period===""?null:this.period}})}this.previousHour=this.hour;this.previousMinute=this.minute;this.previousSecond=this.second;this.previousMillisecond=this.millisecond;this.previousPeriod=this.period};this.setTime=i=>{if(i===null||i===""||i===undefined){if(this.hour)this.hour="";if(this.minute)this.minute="";if(this.second)this.second="";if(this.millisecond)this.millisecond="";this.inputsInOrder.forEach((i=>{i.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(i,false)}));this.handleTimeChange(true)}else{if(typeof i==="string"){const t=i.match(/^(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,3}))?Z?$/);if(t){this.hour=t[1];this.minute=t[2];this.second=t[3]}else{const t=i.split(/[:.]/);this.hour=t[0]||"";this.minute=t[1]||"";this.second=t[2]||"";this.millisecond=t[3]||""}}else if(i instanceof Date){this.hour=i.getHours().toString().padStart(2,"0");this.minute=i.getMinutes().toString().padStart(2,"0");this.second=i.getSeconds().toString().padStart(2,"0");if(this.isSSSFormat()){this.millisecond=i.getMilliseconds().toString().padStart(3,"0")}}}this.setValidationMessage()};this.setAriaInvalid=(i,t,s,e)=>{var h,r,a,o;if(this.inputsInOrder.length){this.inputsInOrder.forEach((i=>{i.removeAttribute(this.ARIA_INVALID)}));if(!i){(h=this.hourInputEl)===null||h===void 0?void 0:h.setAttribute(this.ARIA_INVALID,"true")}if(!t){(r=this.minuteInputEl)===null||r===void 0?void 0:r.setAttribute(this.ARIA_INVALID,"true")}if(!s){(a=this.secondInputEl)===null||a===void 0?void 0:a.setAttribute(this.ARIA_INVALID,"true")}if(!e){(o=this.millisecondInputEl)===null||o===void 0?void 0:o.setAttribute(this.ARIA_INVALID,"true")}if(!(i&&t&&s&&e)){this.inputsInOrder.forEach((i=>{i.setAttribute(this.ARIA_INVALID,"true")}))}}};this.handleClear=()=>{var i;this.clearInput=true;if(this.hourInputEl){this.hourInputEl.value=""}if(this.minuteInputEl){this.minuteInputEl.value=""}if(!this.isHHMMFormat()&&this.secondInputEl){this.secondInputEl.value=""}if(this.isSSSFormat()&&this.millisecondInputEl){this.millisecondInputEl.value=""}this.hour="";this.minute="";this.second="";this.millisecond="";this.period="AM";if(this.showAmPmToggle){(i=this.periodToggleEl)===null||i===void 0?void 0:i.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((i=>{const t=i;if(t.label==="AM"){t.checked=true}else{t.checked=false}}))}this.handleTimeChange(true);this.inputsInOrder.forEach((i=>{i.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(i,false)}));this.clearInput=false;this.isTimeSetFromKeyboardEvent=false;this.setValidationMessage();this.invalidTimeText="";if(this.hourInputEl){this.hourInputEl.focus()}};this.notifyScreenReaderSelectedTime=()=>{if(this.selectedTime&&this.selectedTimeInfoEl){let i=this.selectedTime.getHours();if(this.timePeriod==="12"&&this.showAmPmToggle){i=this.convertTo24Hour(i)}const t=i.toString().padStart(2,"0");const s=this.selectedTime.getMinutes().toString().padStart(2,"0");const e=this.selectedTime.getSeconds().toString().padStart(2,"0");const h=this.selectedTime.getMilliseconds().toString().padStart(3,"0");if(this.isHHMMFormat()){this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}`}else if(!this.isSSSFormat()){this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}:${e}`}else{this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}:${e}.${h}`}}};this.setFitToValueStyling=i=>{if(i.value){i.classList.add(this.FIT_TO_VALUE)}else{i.classList.remove(this.FIT_TO_VALUE)}};this.handleHostBlur=()=>{this.removeLabelledBy=false;this.icBlur.emit({value:this.selectedTime})};this.handleHostFocus=()=>{var i,t;if((t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.activeElement)===null||t===void 0?void 0:t.id.match(/(hour|minute|second|millisecond)-input$/)){this.removeLabelledBy=false}else{this.removeLabelledBy=true}this.icFocus.emit({value:this.selectedTime})};this.handleFormReset=()=>{this.setTime(this.initialValue);this.setValidationMessage();this.handleTimeChange(false)};this.preventInput=(i,t)=>{const s=i.key;const e=i.target;let h;if(e){h=e.value.substring(e.selectionStart||0,e.selectionEnd||undefined)}if(s==="e"||s==="."||s==="-"||i.key>="0"&&i.key<="9"&&t&&!h){i.preventDefault()}};this.moveToNextInput=i=>{var t;this.preventAutoFormatting=false;(t=this.inputsInOrder[this.inputsInOrder.findIndex((t=>t===i))+1])===null||t===void 0?void 0:t.focus()};this.moveToPreviousInput=i=>{var t;this.preventAutoFormatting=false;(t=this.inputsInOrder[this.inputsInOrder.findIndex((t=>t===i))-1])===null||t===void 0?void 0:t.focus()};this.autocompleteInput=i=>{const t=i.value;if(t.length===1){i.value=`0${t}`}if(i.value){this.setInputValue(i)}};this.convertToTime=(i,t,s,e=null)=>{if(!r(i)&&!r(t)&&(this.isHHMMFormat()||!r(s))&&(!this.isSSSFormat()||e!==null&&!r(e))){const h=new Date;h.setHours(+i,+t,this.isHHMMFormat()?0:+s,0);if(this.isSSSFormat()&&e!==null){h.setMilliseconds(+e)}return h}else{return null}};this.setInputsInOrder=()=>{var i;this.inputsInOrder=[];const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelectorAll("input");if(t){t.forEach((i=>this.inputsInOrder.push(i)))}};this.updateInputValues=(i,t,s)=>{this.hourInputEl&&(this.hourInputEl.value=i);this.minuteInputEl&&(this.minuteInputEl.value=t);this.secondInputEl&&(this.secondInputEl.value=s)};this.removeAriaLabelledBy=()=>{var i;(i=this.inputCompContainerEl)===null||i===void 0?void 0:i.removeAttribute(this.ARIA_LABELLED_BY)};this.setAriaLabelledBy=()=>{var i,t,s,e;if(this.disabled&&((i=this.inputCompContainerEl)===null||i===void 0?void 0:i.getAttribute(this.ARIA_LABELLED_BY))){this.removeAriaLabelledBy();return}if(this.disabled){return}const h=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("label");const a=`${this.inputId}-label`;if(h!==null&&h!==undefined){h.id=a}const n=!r(this.validationStatus)||!r(this.invalidTimeText);const l=`${(s=h===null||h===void 0?void 0:h.id)!==null&&s!==void 0?s:""} ${this.screenReaderInfoId} ${o(this.el,this.inputId,this.helperText!==""&&this.helperText!==this.defaultHelperText,n)} ${this.selectedTime?this.selectedTimeInfoId:""} ${this.assistiveHintId}`;(e=this.inputCompContainerEl)===null||e===void 0?void 0:e.setAttribute(this.ARIA_LABELLED_BY,l)};this.getInputsInOrder=()=>{const i=this.timeFormat.split(/[:.]/);return i.map((i=>{switch(i){case"HH":return s("input",{class:"hour-input",id:"hour-input",ref:i=>this.hourInputEl=i,"aria-label":"hour",placeholder:"HH",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventHourInput)});case"MM":return s("input",{id:"minute-input",class:"minute-input",ref:i=>this.minuteInputEl=i,"aria-label":"minute",placeholder:"MM",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventMinuteInput)});case"SS":if(!this.isHHMMFormat()){return s("input",{id:"second-input",class:"second-input",ref:i=>this.secondInputEl=i,"aria-label":"second",placeholder:"SS",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventSecondInput)})}break;case"SSS":if(this.isSSSFormat()){return s("input",{id:"millisecond-input",class:"millisecond-input",ref:i=>this.millisecondInputEl=i,"aria-label":"millisecond",placeholder:"SSS",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventMillisecondInput)})}return null;default:return null}}))};this.getDescOfInputsOrder=()=>{if(this.isSSSFormat()){return"hour, minute, second, and millisecond"}return"hour, minute, and second"};this.getScreenReaderInfo=i=>{let t="";if(this.required){t+="required"}if(i===l.Error){t+=" invalid data"}return t===""?"":t+", "};this.notifyScreenReader=i=>{var t;const s=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("#live-region");if(s){s.textContent=`${i.value}, ${i.getAttribute(this.ARIA_LABEL)}`}};this.handlePaste=i=>{var t;i.preventDefault();const s=((t=i.clipboardData)===null||t===void 0?void 0:t.getData("Text"))||"";const e=this.isPastedStringTimeValid(s);this.setPastedValueAndValidation(e,s,i)};this.handleClearFocus=()=>{this.removeLabelledBy=true;this.clearButtonFocused=true;this.isTimeSetFromKeyboardEvent=true};this.handleClearBlur=i=>{this.clearButtonFocused=false;this.isTimeSetFromKeyboardEvent=true;const t=i.relatedTarget;if((t===null||t===void 0?void 0:t.id)==="clock-button"){this.removeLabelledBy=false;return}if(t===null||t===void 0?void 0:t.id.match(/(minute|second|millisecond)-input$/)){this.removeLabelledBy=false;return}this.removeLabelledBy=true};this.handleClockFocus=()=>{this.clockFocused=true};this.handleClockBlur=()=>{this.clockFocused=false};this.isPastedStringTimeValid=i=>{if(this.isHHMMFormat()){if(/^\d{2}:\d{2}$/.test(i)){return i}}else if(this.isSSSFormat()){if(/^\d{2}:\d{2}:\d{2}\.\d{1,3}$/.test(i)){return i}if(/^\d{2}:\d{2}:\d{2}\.\d{1,3}Z$/.test(i)){return i.replace("Z","")}const t=i.match(/T(\d{2}:\d{2}:\d{2}\.\d{1,3})/);if(t){return t[1]}}else{if(/^\d{2}:\d{2}:\d{2}$/.test(i)){return i}if(/^\d{2}:\d{2}:\d{2}Z$/.test(i)){return i.replace("Z","")}const t=i.match(/T(\d{2}:\d{2}:\d{2})/);if(t){return t[1]}}return false};this.setPastedValueAndValidation=(i,t,s)=>{if(i){const t=i.split(/[:.]/);this.inputsInOrder.forEach(((i,s)=>{var e,h,r,a;i.classList.add(this.FIT_TO_VALUE);let o=t[s]||"";if(i===this.millisecondInputEl&&this.isSSSFormat()){o=o.slice(0,3)}else{o=o.slice(0,2)}if(i===this.hourInputEl){let i;if(this.timePeriod==="12"&&this.showAmPmToggle){if(parseInt(o)>12){o=(parseInt(o)-12).toString().padStart(2,"0");if(parseInt(o)>12){return}else{this.period="PM";(e=this.periodToggleEl)===null||e===void 0?void 0:e.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((t=>{const s=t;if(s.label==="PM"){i=s}else{s.checked=false}}));if(i){(h=this.periodToggleEl)===null||h===void 0?void 0:h.setActiveToggle(i);i.checked=true}this.invalidTimeText="";this.validationStatus=""}}else{if(parseInt(o)===0){o="12"}this.period="AM";(r=this.periodToggleEl)===null||r===void 0?void 0:r.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((t=>{const s=t;if(s.label==="AM"){i=s}else{s.checked=false}}));if(i){(a=this.periodToggleEl)===null||a===void 0?void 0:a.setActiveToggle(i);i.checked=true}this.invalidTimeText="";this.validationStatus=""}}}i.value=o;this.setInputValue(i);this.autocompleteInput(i)}));if(this.isHHMMFormat()&&this.second!==""&&this.millisecond!==""){this.second="";this.millisecond=""}}else{const i=t.trim();if((i.length===1||i.length===2)&&n(i)){this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}else{this.invalidTimeText=`Please paste a valid ${s.target.getAttribute(this.ARIA_LABEL)}`;this.validationStatus=l.Error}}};this.handleAMPM=i=>{var t;this.period=i.label;(t=this.periodToggleEl)===null||t===void 0?void 0:t.setActiveToggle(i)}}watchInputHandler(){if(this.emitTimePartChange&&!this.externalSetTime&&!this.clearInput&&!(this.hour&&this.minute&&this.second&&(this.isSSSFormat()?this.millisecond:true))&&this.selectedTime===null){this.emitIcTimeChange(this.selectedTime)}}watchDisabledHandler(){c(this.disabled,this.el)}watchHelperTextHandler(i=false){if(r(this.helperText)||i===true)this.helperText=this.defaultHelperText}watchMaxHandler(){this.maxTime=a(this.max).date}watchMinHandler(){this.minTime=a(this.min).date}watchRequiredHandler(){var i,t;const s=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("label");if(this.required){const i=document.createElement("span");i.setAttribute("id","asterisk-span");i.setAttribute("aria-hidden","true");i.textContent=" *";s===null||s===void 0?void 0:s.appendChild(i)}else{const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("#asterisk-span");if(i){i.remove()}}}watchTimeFormatHandler(){const i=this.defaultHelperText;this.defaultHelperText=`Use format ${this.timeFormat}`;this.watchHelperTextHandler(this.helperText===i)}disconnectedCallback(){d(this.el,this.handleFormReset)}componentWillLoad(){this.watchTimeFormatHandler();this.watchHelperTextHandler();if(this.value){this.externalSetTime=true;this.setTime(this.value)}this.screenReaderInfoId=`${this.inputId}-screen-reader-info`;this.assistiveHintId=`${this.inputId}-assistive-hint`;this.selectedTimeInfoId=`${this.inputId}-selected-time-info`;u(this.el,this.handleFormReset);c(this.disabled,this.el)}componentDidLoad(){this.setInputsInOrder();f([{prop:this.label,propName:"label"}],"Time Input");if(this.value){this.updateInputValues(this.hour,this.minute,this.second);this.inputsInOrder.forEach((i=>{i.classList.add(this.FIT_TO_VALUE)}))}this.setAriaInvalid(this.isValidHour,this.isValidMinute,this.isValidSecond,this.isValidMillisecond);if(this.value){this.notifyScreenReaderSelectedTime()}this.inputsInOrder.forEach((i=>{i.addEventListener("input",this.handleInput);i.addEventListener("focus",this.handleFocus);i.addEventListener("blur",this.handleBlur)}));this.watchRequiredHandler()}componentWillUpdate(){if(!this.isTimeSetFromKeyboardEvent)this.setTime(this.value);this.setAriaInvalid(this.isValidHour,this.isValidMinute,this.isValidSecond,this.isValidMillisecond);this.handleTimeChange(false);this.isTimeSetFromKeyboardEvent=false}componentDidRender(){if(this.removeLabelledBy){this.removeAriaLabelledBy();return}this.setAriaLabelledBy()}async getTime(){return this.selectedTime}async triggerIcTimeChange(i){this.externalSetTime=true;this.setTime(i);this.emitIcTimeChange(i);this.externalSetTime=false}render(){var i;const{inputId:t,label:h,disabled:a,helperText:o,hideHelperText:n,hideLabel:c,showClearButton:d,showClockButton:u,size:f,theme:v,validationAriaLive:g}=this;const k=!r(this.validationStatus);const w=k?this.validationStatus:!r(this.invalidTimeText)?l.Error:"";const y=`Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;p(true,this.el,this.name,this.convertToTime(this.hour,this.minute,this.second),this.disabled);const x=!!(d&&!(r(this.hour)&&r(this.minute)&&r(this.second)));if(this.showAmPmToggle&&this.timePeriod!=="12"){this.showAmPmToggle=false}return s(e,{key:"62e2a0e6837b81bf3a74d176487a509928e51d6b",class:{[`ic-theme-${v}`]:v!=="inherit",[`ic-time-input-disabled`]:a,[`ic-time-input-${f}`]:true},onBlur:this.handleHostBlur,onFocus:this.handleHostFocus},s("ic-input-container",{key:"135eb0cc8ada933f795c12d9cf8811a0f7d5cc2a",disabled:a},!(c&&n)&&s("ic-input-label",{key:"471576582143b8a6dd86ce152793b275f6cf409e",for:t,label:h,hideLabel:c,helperText:!n?o!==null&&o!==void 0?o:undefined:"",disabled:a},s("slot",{key:"1a16aa481dd381a0ee95ae6ba65f508084001984",name:"helper-text",slot:"helper-text"})),s("span",{key:"b06834357f685c972e1e3e6964a284dd4870dd61",id:this.screenReaderInfoId,class:"sr-only","aria-hidden":"true"},this.getScreenReaderInfo(w),c&&`${h}\n`,n&&`${o}\n`,`${this.defaultHelperText}.`),s("span",{key:"6b92fed951e93af9942e06adcc8493bdf3050fc6",id:this.assistiveHintId,class:"sr-only","aria-hidden":"true"},y),s("span",{key:"46812811d45fc47007acbb7bf670cc65740660c0",id:"live-region","aria-live":"assertive",class:"sr-only"}),s("div",{key:"9f0bdd000f3f1da4b8ad8912608d78f11241dafe",class:{"with-am-pm-toggle":this.showAmPmToggle===true}},s("ic-input-component-container",{key:"2da5ca6c2c8d84bb99681b48e6fddd73f3c0c16c",id:t,ref:i=>this.inputCompContainerEl=i,disabled:a,validationStatus:w,size:f,role:"group",class:{[`ic-theme-${v}`]:v!=="inherit"}},s("div",{key:"166dfe20eea309ff2cfd468050d33c9d282c4cc1",class:"input-container"},s("div",{key:"22b29cab3f1e09df08a86cce7c2a6292eb27decf",class:"time-inputs"},[this.getInputsInOrder()[0],":",this.getInputsInOrder()[1],!this.isHHMMFormat()?[":",this.getInputsInOrder()[2]]:null,this.isSSSFormat()?[".",this.getInputsInOrder()[3]]:null]),s("div",{key:"7ab389ad2d5683ad5a859ee4cd47cf8b6b9b49a9",class:"action-buttons"},d&&s("ic-button",{key:"5e41579917ac0f5cd0cf75ddb1b2980d04563ff2",id:"clear-button","aria-label":"Clear input",class:{["clear-button"]:true,["hidden"]:r(this.hour)&&r(this.minute)&&r(this.second)},disabled:this.disabled,innerHTML:b,onClick:this.handleClear,onFocus:this.handleClearFocus,onBlur:this.handleClearBlur,variant:"icon-tertiary",theme:this.clearButtonFocused?"light":"dark",size:f}),u&&s("div",{key:"c8816aae8a4c26cc0c2aa49cd5eedda9857e880d",class:"show-clock-button-wrapper"},s("div",{key:"ebfd83da1686f0e6aff3c7c7fa5ed82f4b69042f",class:{divider:x,[f]:true}}),s("ic-button",{key:"50fea07bdf59cbf3eeada27f724be780fab0343f",id:"clock-button","aria-label":"Display clock","aria-haspopup":"dialog",class:"clock-button",disabled:this.disabled,innerHTML:m,variant:"icon-tertiary",size:f,onFocus:this.handleClockFocus,onBlur:this.handleClockBlur,theme:this.clockFocused?"light":"dark"}))))),this.showAmPmToggle&&s("ic-toggle-button-group",{key:"627e2cbe64a5502c1aca994ed2d6994981be6113","select-type":"single","accessible-label":"AM PM Toggle",ref:i=>this.periodToggleEl=i,disabled:a,class:"am-pm-toggle","select-method":"auto",onIcChange:i=>this.handleAMPM(i.detail.selectedOption),onKeyDown:i=>{if(i.key==="Tab"&&i.shiftKey){i.preventDefault();if(this.inputsInOrder&&this.inputsInOrder.length>0){const i=this.inputsInOrder[this.inputsInOrder.length-1];i===null||i===void 0?void 0:i.focus()}}}},s("ic-toggle-button",{key:"36e9ef58c75f1fb07228db53110194125bc43c89",label:"AM",disabled:a,checked:true}),s("ic-toggle-button",{key:"db789a3a2da2e3e4710bc74adca8974428296051",label:"PM",disabled:a}))),s("span",{key:"57c42d4771851df8d391a228361ec46743469a6b",id:this.selectedTimeInfoId,class:"sr-only","aria-live":"polite"},s("span",{key:"75ab730bdb14fbd585e4320aa00a98b3fb2eedf6",ref:i=>this.selectedTimeInfoEl=i,role:"status"})),s("ic-input-validation",{key:"2fb7638ca1deb728d2eed6c9c42e3d319a7d8198",status:w,message:k?(i=this.validationText)!==null&&i!==void 0?i:"":this.invalidTimeText,for:t,ariaLiveMode:g})))}static get delegatesFocus(){return true}get el(){return h(this)}static get watchers(){return{hour:["watchInputHandler"],minute:["watchInputHandler"],second:["watchInputHandler"],millisecond:["watchInputHandler"],period:["watchInputHandler"],disabled:["watchDisabledHandler"],helperText:["watchHelperTextHandler"],max:["watchMaxHandler"],min:["watchMinHandler"],required:["watchRequiredHandler"],timeFormat:["watchTimeFormatHandler"]}}};w.style=g;export{w as ic_time_input};
2
+ //# sourceMappingURL=p-84129c7e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icTimeInputCss","IcTimeInputStyle0","inputIds","TimeInput","constructor","hostRef","this","DEFAULT_TIME_FORMAT","TOGGLE_BUTTON_SELECTOR","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","inputsInOrder","isValidHour","isValidMinute","isValidSecond","isValidMillisecond","isValidTime","isTimeSetFromKeyboardEvent","previousSelectedTime","selectedTime","externalSetTime","clearInput","maxTime","minTime","previousHour","previousMinute","previousSecond","previousMillisecond","previousPeriod","clockFocused","clearButtonFocused","removeLabelledBy","hour","minute","second","millisecond","period","isSSSFormat","timeFormat","disabled","disableTimes","emitTimePartChange","hideHelperText","hideLabel","inputId","invalidTimeMessage","max","min","name","required","showAmPmToggle","showClearButton","showClockButton","size","theme","timePeriod","validationAriaLive","validationStatus","validationText","setInputPasteValue","input","pastedValue","inputEl","classList","add","isHHMMFormat","isKeyboardOrEvent","event","Object","prototype","toString","call","setTimeValidity","minHour","maxHour","isEmptyString","setInputValue","clear","newValue","hourInputEl","minuteInputEl","secondInputEl","millisecondInputEl","setValidationMessage","setPreventInput","isPrevented","preventHourInput","preventMinuteInput","preventSecondInput","preventMillisecondInput","parseTimeHelper","date","outOfBoundsMsg","isDisabledTime","convertToTime","inputHour","selectedHour","getHours","selectedHour12","getMinutes","getSeconds","getMilliseconds","Array","isArray","length","some","t","start","end","parsed","parts","parsedHour","convertTo24Hour","formatTime","forEach","setAttribute","removeAttribute","invalidTimeText","time","hh","padStart","mm","ss","sss","handleInput","inputEvent","target","setFitToValueStyling","moveToNextInput","notifyScreenReader","inputType","preventAutoFormatting","handleKeyDown","isInputPrevented","navKeys","eventKey","_a","key","toLowerCase","test","ctrlKey","metaKey","preventDefault","regex","moveToPreviousInput","handleUpDownArrowKeyPress","preventInput","handleFocus","select","handleBlur","autocompleteInput","minValue","maxValue","val","handleTimeChange","force","setValueAndEmitChange","notifyScreenReaderSelectedTime","selectedTimeInfoEl","textContent","updateInputValues","emitIcTimeChange","date24hours","parseInt","allSelected","Date","setHours","setMinutes","setSeconds","setMilliseconds","allTimePartsEmpty","onlyPeriodChanged","icTimeChange","emit","timeObject","setTime","undefined","remove","zuluMatch","match","split","setAriaInvalid","validHour","validMinute","validSecond","validMillisecond","_b","_c","_d","handleClear","periodToggleEl","querySelectorAll","btn","toggleBtn","label","checked","focus","hours","hoursStr","minutesStr","secondsStr","msStr","handleHostBlur","icBlur","handleHostFocus","el","shadowRoot","activeElement","id","icFocus","handleFormReset","selectedString","substring","selectionStart","selectionEnd","currentInput","findIndex","inputValue","d","setInputsInOrder","shadowInputs","push","removeAriaLabelledBy","inputCompContainerEl","setAriaLabelledBy","getAttribute","labelEl","querySelector","labelId","hasValidation","labelledBy","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedTimeInfoId","assistiveHintId","getInputsInOrder","timeParts","map","part","h","class","ref","placeholder","inputmode","pattern","onPaste","handlePaste","onKeyDown","getDescOfInputsOrder","getScreenReaderInfo","inputDescriptors","IcInformationStatus","Error","liveRegion","clipboardData","getData","isPastedStringTimeValid","setPastedValueAndValidation","handleClearFocus","handleClearBlur","ev","relatedTarget","handleClockFocus","handleClockBlur","replace","isoMatch","index","timeValue","slice","activeToggle","setActiveToggle","pasted","trim","isNumeric","handleAMPM","selectedOption","watchInputHandler","watchDisabledHandler","removeDisabledFalse","watchHelperTextHandler","useDefault","watchMaxHandler","watchMinHandler","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","watchTimeFormatHandler","oldDefaultHelperText","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","addEventListener","componentWillUpdate","componentDidRender","getTime","triggerIcTimeChange","render","hasCustomValidation","assistiveHint","renderHiddenInput","showDivider","Host","onBlur","onFocus","for","slot","role","innerHTML","Clear","onClick","variant","divider","Clock","onIcChange","e","detail","shiftKey","lastInput","status","message","ariaLiveMode"],"sources":["src/components/ic-time-input/ic-time-input.css?tag=ic-time-input&encapsulation=shadow","src/components/ic-time-input/ic-time-input.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --input-bg-color: var(--ic-time-picker-field-background);\n --ic-input-label-text-color: var(--ic-time-picker-label);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle);\n --border-color: var(--ic-time-picker-time-field-border-default);\n --border-color-disabled: var(--ic-time-picker-border-disabled);\n --border-color-hover: var(--ic-time-picker-time-field-border-hover);\n --border-color-pressed: var(--ic-time-picker-time-field-border-pressed);\n --border-error-color: var(--ic-time-picker-border-error);\n --border-error-color-hover: var(--ic-time-picker-border-error-hover);\n --border-error-color-pressed: var(--ic-time-picker-border-error-pressed);\n --border-success-color: var(--ic-time-picker-border-success);\n --border-success-color-hover: var(--ic-time-picker-border-success-hover);\n --border-success-color-pressed: var(--ic-time-picker-border-success-pressed);\n --border-warning-color: var(--ic-time-picker-border-warning);\n --border-warning-color-hover: var(--ic-time-picker-border-warning-hover);\n --border-warning-color-pressed: var(--ic-time-picker-border-warning-pressed);\n --input-width: calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs));\n}\n\n:host(.ic-time-input-disabled) {\n --ic-input-label-text-color: var(--ic-time-picker-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle-disabled);\n}\n\n:host(.ic-time-input-disabled) input {\n color: var(--ic-time-picker-time-text-disabled);\n}\n\n:host(.ic-time-input-large) {\n --input-width: calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n );\n}\n\n:host(.ic-time-input-small) {\n --input-width: calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n );\n}\n\n.with-am-pm-toggle {\n display: flex;\n flex-direction: row;\n}\n\n.am-pm-toggle ::part(button) {\n min-width: fit-content;\n}\n\n.am-pm-toggle {\n margin-left: var(--ic-space-xs);\n}\n\ninput {\n border: 0;\n height: 100%;\n padding: 0;\n outline: none;\n background: none;\n -moz-appearance: textfield;\n appearance: textfield;\n color: var(--ic-time-picker-time-text-default);\n caret-color: var(--ic-time-picker-typing-cursor);\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: 0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;\n -webkit-text-fill-color: var(--ic-time-picker-time-text-default) !important;\n}\n\ninput::placeholder {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\nic-input-component-container {\n cursor: text;\n}\n\nic-input-component-container .focus-indicator {\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n align-items: center;\n}\n\n.time-inputs {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\n.hour-input {\n width: 1.438rem;\n}\n\n.minute-input {\n width: 1.813rem;\n}\n\n.second-input {\n width: 1.18rem;\n}\n\n.millisecond-input,\n.millisecond-input.fit-to-value {\n width: 1.75rem;\n}\n\n.fit-to-value {\n width: 1.25rem;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.input-container {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n}\n\n.action-buttons {\n display: flex;\n align-items: center;\n}\n\n.show-clock-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.clock-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n margin: 0;\n}\n\n.clear-button.hidden {\n display: none;\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active,\n.clock-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: 0.25rem;\n}\n\n.clock-button:focus,\n.clock-button:active {\n --ic-button-tertiary-text-active: var(--ic-atoms-input-clear-button-focus);\n --ic-button-tertiary-text-hover-active: var(\n --ic-atoms-input-clear-button-focus\n );\n --ic-button-tertiary-text-pressed-active: var(\n --ic-atoms-input-clear-button-focus\n );\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active *,\n.clock-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-time-picker-clear-icon);\n}\n\n.clear-button:focus svg {\n color: var(--ic-atoms-input-clear-button-focus);\n}\n\n.divider {\n margin: 0 var(--ic-space-xxs);\n width: var(--ic-space-1px);\n background-color: var(--ic-atoms-input-divider);\n border-radius: var(--ic-space-1px);\n}\n\n.divider.small {\n height: var(--ic-space-md);\n}\n\n.divider.medium {\n height: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\n.divider.large {\n height: var(--ic-space-lg);\n}\n\nic-input-validation {\n --ic-input-validation-status-text-color: var(--ic-time-picker-status-text);\n --ic-input-validation-error: var(--ic-time-picker-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-time-picker-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-time-picker-icon-success);\n}\n\n@media (forced-colors: active) {\n .clear-button svg {\n color: currentcolor;\n }\n}\n","/* eslint-disable react/jsx-no-bind */\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Host,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAriaLive,\n IcDateValueFormat,\n IcDisableTimeSelection,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n IcTimeFormat,\n} from \"../../utils/types\";\nimport {\n isEmptyString,\n isNumeric,\n addFormResetListener,\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n parseTimeHelper,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Clock from \"../../assets/clock.svg\";\n\nimport \"../../../../web-components/src/components/ic-input-container/ic-input-container\";\nimport \"../../../../web-components/src/components/ic-input-component-container/ic-input-component-container\";\nimport \"../../../../web-components/src/components/ic-input-label/ic-input-label\";\nimport \"../../../../web-components/src/components/ic-toggle-button-group/ic-toggle-button-group\";\nimport \"../../../../web-components/src/components/ic-toggle-button/ic-toggle-button\";\nimport \"../../../../web-components/src/components/ic-input-validation/ic-input-validation\";\nimport \"../../../../web-components/src/components/ic-button/ic-button\";\nimport \"../../../../web-components/src/components/ic-typography/ic-typography\";\nimport \"../../../../web-components/src/components/ic-link/ic-link\";\n\nlet inputIds = 0;\n\n/**\n * @slot helper-text - Content is set as the helper text for the time input.\n */\n@Component({\n tag: \"ic-time-input\",\n styleUrl: \"ic-time-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class TimeInput {\n private DEFAULT_TIME_FORMAT: IcTimeFormat = \"HH:MM:SS\";\n private TOGGLE_BUTTON_SELECTOR = \"ic-toggle-button\";\n private ARIA_INVALID = \"aria-invalid\";\n private ARIA_LABEL = \"aria-label\";\n private ARIA_LABELLED_BY = \"aria-labelledby\";\n private assistiveHintId: string;\n private hourInputEl?: HTMLInputElement;\n private minuteInputEl?: HTMLInputElement;\n private secondInputEl?: HTMLInputElement;\n private millisecondInputEl?: HTMLInputElement;\n private periodToggleEl?: HTMLIcToggleButtonGroupElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private inputsInOrder: HTMLInputElement[] = [];\n private isValidHour: boolean = true;\n private isValidMinute: boolean = true;\n private isValidSecond: boolean = true;\n private isValidMillisecond: boolean = true;\n private isValidTime: boolean = true;\n private isTimeSetFromKeyboardEvent: boolean = false;\n private preventAutoFormatting: boolean;\n private preventHourInput: boolean;\n private preventMinuteInput: boolean;\n private preventSecondInput: boolean;\n private preventMillisecondInput: boolean;\n private previousSelectedTime: Date | null = null;\n private selectedTime: Date | null = null;\n private selectedTimeInfoEl?: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedTimeInfoId: string;\n private externalSetTime: boolean = false;\n private clearInput: boolean = false;\n private maxTime: Date | null = null;\n private minTime: Date | null = null;\n private previousHour: string = \"\";\n private previousMinute: string = \"\";\n private previousSecond: string = \"\";\n private previousMillisecond: string = \"\";\n private previousPeriod: string = \"AM\";\n\n @Element() el: HTMLIcTimeInputElement;\n\n @State() invalidTimeText: string;\n @State() clockFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n @State() hour: string = \"\";\n @State() minute: string = \"\";\n @State() second: string = \"\";\n @State() millisecond: string = \"\";\n @State() period: string = \"AM\";\n\n @Watch(\"hour\")\n @Watch(\"minute\")\n @Watch(\"second\")\n @Watch(\"millisecond\")\n @Watch(\"period\")\n watchInputHandler(): void {\n if (\n this.emitTimePartChange &&\n !this.externalSetTime &&\n !this.clearInput &&\n !(\n this.hour &&\n this.minute &&\n this.second &&\n (this.isSSSFormat() ? this.millisecond : true)\n ) &&\n this.selectedTime === null\n ) {\n this.emitIcTimeChange(this.selectedTime);\n }\n }\n private isSSSFormat = () => this.timeFormat === \"HH:MM:SS.SSS\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * An array of objects with start and end values that will be disabled in the time input. The times can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() disableTimes: IcDisableTimeSelection[] = [];\n\n /**\n * If `true`, every individual input field completed will emit an icTimeChange event.\n */\n @Prop() emitTimePartChange?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `timeFormat` value.\n */\n @Prop({ mutable: true }) helperText: string | null;\n @Watch(\"helperText\")\n watchHelperTextHandler(useDefault = false): void {\n if (isEmptyString(this.helperText) || useDefault === true)\n this.helperText = this.defaultHelperText;\n }\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * If `true`, the label will be visually hidden, but will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId: string = `ic-time-input-${inputIds++}`;\n\n /**\n * The text to display as the validation message when an invalid time is entered.\n */\n @Prop() invalidTimeMessage: string = \"Please enter a valid time.\";\n\n /**\n * The label for the time input.\n */\n @Prop() label!: string;\n\n /**\n * The latest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() max: string | Date = \"\";\n @Watch(\"max\")\n watchMaxHandler(): void {\n this.maxTime = parseTimeHelper(this.max).date;\n }\n\n /**\n * The earliest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() min: string | Date = \"\";\n @Watch(\"min\")\n watchMinHandler(): void {\n this.minTime = parseTimeHelper(this.min).date;\n }\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 * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n @Watch(\"required\")\n watchRequiredHandler(): void {\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n if (this.required) {\n const asteriskSpan = document.createElement(\"span\");\n asteriskSpan.setAttribute(\"id\", \"asterisk-span\");\n asteriskSpan.setAttribute(\"aria-hidden\", \"true\");\n asteriskSpan.textContent = \" *\";\n labelEl?.appendChild(asteriskSpan);\n } else {\n const asteriskSpan = this.el.shadowRoot?.querySelector(\"#asterisk-span\");\n if (asteriskSpan) {\n asteriskSpan.remove();\n }\n }\n }\n\n /**\n * If `true`, the time input will show an AM/PM toggle when in 12-hour time period.\n */\n @Prop({ mutable: true }) showAmPmToggle?: boolean = false;\n\n /**\n * If `true`, a button which clears the time input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * @internal If `true`, a button which displays the clock view when clicked will be displayed.\n */\n @Prop() showClockButton?: boolean = false;\n\n /**\n * The size of the time input to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the time picker to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The format in which the time will be displayed.\n */\n @Prop() timeFormat: IcTimeFormat = this.DEFAULT_TIME_FORMAT;\n @Watch(\"timeFormat\")\n watchTimeFormatHandler(): void {\n const oldDefaultHelperText = this.defaultHelperText;\n this.defaultHelperText = `Use format ${this.timeFormat}`;\n this.watchHelperTextHandler(this.helperText === oldDefaultHelperText);\n }\n\n /**\n * The time period format: \"12\" for 12-hour, \"24\" for 24-hour. Defaults to \"24\".\n */\n @Prop() timePeriod: \"12\" | \"24\" = \"24\";\n\n /**\n * The value of the time input. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: IcDateValueFormat = \"\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in time validation.\n */\n @Prop({ mutable: true }) validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in time validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * @internal Emitted when the clock is opened.\n */\n @Event() clockButtonClicked: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icTimeChange: EventEmitter<{\n value: Date | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n millisecond: string | null;\n period: string | null;\n };\n }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date | null }>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.watchTimeFormatHandler();\n this.watchHelperTextHandler();\n if (this.value) {\n this.externalSetTime = true;\n this.setTime(this.value);\n }\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedTimeInfoId = `${this.inputId}-selected-time-info`;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Time Input\"\n );\n if (this.value) {\n this.updateInputValues(this.hour, this.minute, this.second);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond,\n this.isValidMillisecond\n );\n if (this.value) {\n this.notifyScreenReaderSelectedTime();\n }\n this.inputsInOrder.forEach((input) => {\n input.addEventListener(\"input\", this.handleInput);\n input.addEventListener(\"focus\", this.handleFocus);\n input.addEventListener(\"blur\", this.handleBlur);\n });\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (!this.isTimeSetFromKeyboardEvent) this.setTime(this.value);\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond,\n this.isValidMillisecond\n );\n this.handleTimeChange(false);\n this.isTimeSetFromKeyboardEvent = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getTime(): Promise<Date | null> {\n return this.selectedTime;\n }\n\n /**\n * @internal Used to enable other components to invoke an icTimeChange event from the input.\n */\n @Method()\n async triggerIcTimeChange(t: Date | null): Promise<void> {\n this.externalSetTime = true;\n this.setTime(t);\n this.emitIcTimeChange(t);\n this.externalSetTime = false;\n }\n\n private setInputPasteValue = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n if (input) {\n const inputEl = input as HTMLInputElement;\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n }\n };\n\n private isHHMMFormat = () => this.timeFormat === \"HH:MM\";\n\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) === \"[object KeyboardEvent]\"\n );\n };\n\n private setTimeValidity = () => {\n const minHour = 0;\n const maxHour = this.timePeriod === \"12\" ? 12 : 23;\n if (!isEmptyString(this.hour)) {\n this.isValidHour = +this.hour >= minHour && +this.hour <= maxHour;\n } else {\n this.isValidHour = true;\n }\n if (!isEmptyString(this.minute)) {\n this.isValidMinute = +this.minute >= 0 && +this.minute <= 59;\n } else {\n this.isValidMinute = true;\n }\n if (!this.isHHMMFormat()) {\n if (!isEmptyString(this.second)) {\n this.isValidSecond = +this.second >= 0 && +this.second <= 59;\n } else {\n this.isValidSecond = true;\n }\n if (this.isSSSFormat()) {\n if (!isEmptyString(this.millisecond)) {\n this.isValidMillisecond =\n +this.millisecond >= 0 && +this.millisecond <= 999;\n } else {\n this.isValidMillisecond = true;\n }\n } else {\n this.isValidMillisecond = true;\n }\n } else {\n this.isValidSecond = true;\n this.isValidMillisecond = true;\n }\n };\n\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n if (input === this.hourInputEl) {\n this.hour = newValue;\n } else if (input === this.minuteInputEl) {\n this.minute = newValue;\n } else if (input === this.secondInputEl && !this.isHHMMFormat()) {\n this.second = newValue;\n } else if (this.isSSSFormat() && input === this.millisecondInputEl) {\n this.millisecond = newValue;\n }\n this.setValidationMessage();\n };\n\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n if (input === this.hourInputEl) {\n this.preventHourInput = isPrevented;\n } else if (input === this.minuteInputEl) {\n this.preventMinuteInput = isPrevented;\n } else if (input === this.secondInputEl) {\n this.preventSecondInput = isPrevented;\n } else if (this.isSSSFormat() && input === this.millisecondInputEl) {\n this.preventMillisecondInput = isPrevented;\n }\n };\n\n private setValidationMessage = () => {\n this.maxTime = parseTimeHelper(this.max).date;\n this.minTime = parseTimeHelper(this.min).date;\n this.setTimeValidity();\n let outOfBoundsMsg = \"\";\n let isDisabledTime = false;\n if (\n !isEmptyString(this.hour) &&\n !isEmptyString(this.minute) &&\n (this.isHHMMFormat() || !isEmptyString(this.second)) &&\n (!this.isSSSFormat() || !isEmptyString(this.millisecond))\n ) {\n this.selectedTime = this.convertToTime(\n this.hour,\n this.minute,\n this.isHHMMFormat() ? \"00\" : this.second,\n this.isSSSFormat() ? this.millisecond : \"000\"\n );\n const inputHour = +this.hour;\n const selectedHour = this.selectedTime\n ? this.selectedTime.getHours()\n : null;\n if (\n this.timePeriod === \"12\" &&\n this.showAmPmToggle &&\n selectedHour !== null\n ) {\n let selectedHour12 = selectedHour % 12;\n if (selectedHour12 === 0) selectedHour12 = 12;\n this.isValidTime =\n !!this.selectedTime &&\n selectedHour12 == inputHour &&\n this.selectedTime.getMinutes() == +this.minute &&\n (this.isHHMMFormat() ||\n this.selectedTime.getSeconds() == +this.second) &&\n (!this.isSSSFormat() ||\n this.selectedTime.getMilliseconds() == +this.millisecond);\n } else {\n this.isValidTime =\n !!this.selectedTime &&\n this.selectedTime.getHours() == inputHour &&\n this.selectedTime.getMinutes() == +this.minute &&\n (this.isHHMMFormat() ||\n this.selectedTime.getSeconds() == +this.second) &&\n (!this.isSSSFormat() ||\n this.selectedTime.getMilliseconds() == +this.millisecond);\n }\n\n if (\n this.selectedTime &&\n Array.isArray(this.disableTimes) &&\n this.disableTimes.length > 0\n ) {\n isDisabledTime = this.disableTimes.some((t) => {\n if (\n typeof t === \"object\" &&\n t !== null &&\n \"start\" in t &&\n \"end\" in t\n ) {\n const start = parseTimeHelper(t.start).date;\n const end = parseTimeHelper(t.end).date;\n if (start && end) {\n return this.selectedTime! >= start && this.selectedTime! <= end;\n }\n return false;\n }\n const parsed = parseTimeHelper(t as string | Date).parts;\n if (!parsed) return false;\n let selectedHour = this.selectedTime!.getHours();\n let parsedHour = parsed.hour;\n if (this.timePeriod === \"12\" && this.showAmPmToggle) {\n selectedHour = this.convertTo24Hour(selectedHour);\n parsedHour = this.convertTo24Hour(parsedHour);\n }\n return (\n parsedHour === selectedHour &&\n parsed.minute === this.selectedTime!.getMinutes() &&\n parsed.second === this.selectedTime!.getSeconds()\n );\n });\n if (isDisabledTime) {\n this.isValidTime = false;\n outOfBoundsMsg = this.invalidTimeMessage;\n }\n }\n\n if (this.selectedTime && !isDisabledTime) {\n if (this.minTime && this.selectedTime < this.minTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time after ${this.formatTime(\n this.minTime\n )}.`;\n } else if (this.maxTime && this.selectedTime > this.maxTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time before ${this.formatTime(\n this.maxTime\n )}.`;\n }\n }\n if (!this.isValidTime) {\n this.inputsInOrder.forEach((input) =>\n input.setAttribute(this.ARIA_INVALID, \"true\")\n );\n } else {\n this.inputsInOrder.forEach((input) =>\n input.removeAttribute(this.ARIA_INVALID)\n );\n }\n } else {\n this.selectedTime = null;\n }\n if (\n !(\n this.isValidHour &&\n this.isValidMinute &&\n this.isValidSecond &&\n this.isValidMillisecond &&\n this.isValidTime\n )\n ) {\n this.invalidTimeText = outOfBoundsMsg || this.invalidTimeMessage;\n } else {\n this.invalidTimeText = \"\";\n }\n };\n\n private formatTime = (time: Date): string => {\n const hh = time.getHours().toString().padStart(2, \"0\");\n const mm = time.getMinutes().toString().padStart(2, \"0\");\n const ss = time.getSeconds().toString().padStart(2, \"0\");\n const sss = time.getMilliseconds().toString().padStart(3, \"0\");\n if (this.isSSSFormat()) {\n return `${hh}:${mm}:${ss}.${sss}`;\n }\n return this.isHHMMFormat() ? `${hh}:${mm}` : `${hh}:${mm}:${ss}`;\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n if (input === this.millisecondInputEl && this.isSSSFormat()) {\n this.setInputValue(input);\n this.setPreventInput(input, false);\n this.setFitToValueStyling(input);\n if (input.value.length === 3) {\n this.moveToNextInput(input);\n this.setPreventInput(input, true);\n } else {\n this.setPreventInput(input, false);\n }\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n } else if (input !== this.hourInputEl) {\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n +input.value >= 6 &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n }\n if (input.value.length === 2) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n if (input.value.length === 2 && !this.isKeyboardOrEvent(event)) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.moveToNextInput(input);\n } else {\n this.setInputValue(input);\n }\n }\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n this.setFitToValueStyling(input);\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n } else {\n if (input.value.length === 2) {\n this.setInputValue(input);\n if (\n Object.prototype.toString.call(event) !== this.EVENT_OBJECT_STRING\n ) {\n this.moveToNextInput(input);\n }\n this.setPreventInput(input, true);\n } else {\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n }\n this.setFitToValueStyling(input);\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const navKeys =\n /arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/i;\n const input = event.target as HTMLInputElement;\n const eventKey = event.key?.toLowerCase();\n if (\n !/-?\\d*\\.?\\d+(e[-+]?\\d+)?|[:]|[.]/i.test(eventKey) &&\n !navKeys.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n const regex =\n /-?\\d*\\.?\\d+(e[-+]?\\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;\n if (\n !regex.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n switch (eventKey) {\n case \":\":\n case \"arrowright\":\n event.preventDefault();\n this.moveToNextInput(input);\n break;\n case \"arrowleft\":\n event.preventDefault();\n this.moveToPreviousInput(input);\n break;\n case \"arrowup\":\n case \"arrowdown\":\n this.preventAutoFormatting = true;\n this.handleUpDownArrowKeyPress(input, event);\n break;\n case \"backspace\":\n if (input.value.length === 0) {\n event.preventDefault();\n this.moveToPreviousInput(input);\n }\n break;\n default:\n break;\n }\n this.preventInput(event, isInputPrevented);\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n if (input === this.millisecondInputEl && this.isSSSFormat()) {\n if (input.value.length === 1) {\n input.value = `00${input.value}`;\n this.setInputValue(input);\n } else if (input.value.length === 2) {\n input.value = `0${input.value}`;\n this.setInputValue(input);\n }\n this.setFitToValueStyling(input);\n } else if (input) {\n this.autocompleteInput(input);\n }\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n let minValue = 0;\n let maxValue = 59;\n if (input === this.hourInputEl) {\n minValue = this.timePeriod === \"12\" ? 1 : 0;\n maxValue = this.timePeriod === \"12\" ? 12 : 23;\n }\n let val = +input.value;\n if (event.key === \"ArrowUp\") {\n val = val + 1;\n if (val > maxValue) val = minValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n if (event.key === \"ArrowDown\") {\n val = val - 1;\n if (val < minValue) val = maxValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleTimeChange = (force: boolean) => {\n if (force || this.selectedTime !== this.previousSelectedTime) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (\n this.hour &&\n this.minute &&\n (this.isHHMMFormat() || this.second) &&\n this.invalidTimeText === \"\"\n ) {\n this.setValueAndEmitChange(this.selectedTime);\n this.notifyScreenReaderSelectedTime();\n } else if (\n !(this.selectedTime === null && this.previousSelectedTime === null) &&\n this.selectedTimeInfoEl\n ) {\n this.setValueAndEmitChange(null, true);\n this.selectedTimeInfoEl.textContent = \"\";\n }\n this.previousSelectedTime = this.selectedTime;\n if (!this.isTimeSetFromKeyboardEvent) {\n this.updateInputValues(this.hour, this.minute, this.second);\n }\n }\n };\n\n private setValueAndEmitChange = (value: Date | null, force = false) => {\n if (this.value !== value || force) {\n this.emitIcTimeChange(value);\n this.value = value;\n }\n };\n\n private convertTo24Hour = (hour: number) => {\n let date24hours = hour;\n if (this.period === \"PM\" && hour < 12) date24hours = hour + 12;\n if (this.period === \"AM\" && hour === 12) date24hours = 0;\n\n return date24hours;\n };\n\n private emitIcTimeChange = (t: Date | null) => {\n const hour = parseInt(this.hour);\n const minute = parseInt(this.minute);\n const second = parseInt(this.second);\n const millisecond = parseInt(this.millisecond);\n const period = this.period;\n\n let allSelected = false;\n if (this.isSSSFormat()) {\n allSelected =\n this.hour !== \"\" &&\n this.minute !== \"\" &&\n this.second !== \"\" &&\n this.millisecond !== \"\";\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected =\n this.hour !== \"\" && this.minute !== \"\" && this.second !== \"\";\n } else if (this.timeFormat === \"HH:MM\") {\n allSelected = this.hour !== \"\" && this.minute !== \"\";\n }\n\n let time = t;\n let date24hours = hour;\n if (\n hour != null &&\n period &&\n this.timePeriod === \"12\" &&\n this.showAmPmToggle\n ) {\n date24hours = this.convertTo24Hour(hour);\n time = new Date();\n time.setHours(date24hours ?? 0);\n time.setMinutes(minute ?? 0);\n time.setSeconds(second ?? 0);\n this.isSSSFormat() && time.setMilliseconds(millisecond ?? 0);\n }\n\n this.selectedTime = time;\n\n const allTimePartsEmpty =\n this.hour === \"\" &&\n this.minute === \"\" &&\n this.second === \"\" &&\n this.millisecond === \"\";\n\n const onlyPeriodChanged =\n allTimePartsEmpty &&\n this.period !== this.previousPeriod &&\n this.previousHour === \"\" &&\n this.previousMinute === \"\" &&\n this.previousSecond === \"\" &&\n this.previousMillisecond === \"\";\n\n if (!onlyPeriodChanged) {\n this.icTimeChange.emit({\n value: allSelected ? time : null,\n timeObject: {\n hour: this.hour === \"\" ? null : this.hour,\n minute: this.minute === \"\" ? null : this.minute,\n second: this.second === \"\" ? null : this.second,\n millisecond: this.millisecond === \"\" ? null : this.millisecond,\n period: this.period === \"\" ? null : this.period,\n },\n });\n }\n\n this.previousHour = this.hour;\n this.previousMinute = this.minute;\n this.previousSecond = this.second;\n this.previousMillisecond = this.millisecond;\n this.previousPeriod = this.period;\n };\n\n private setTime = (time?: string | Date | null) => {\n if (time === null || time === \"\" || time === undefined) {\n if (this.hour) this.hour = \"\";\n if (this.minute) this.minute = \"\";\n if (this.second) this.second = \"\";\n if (this.millisecond) this.millisecond = \"\";\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleTimeChange(true);\n } else {\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{1,3}))?Z?$/\n );\n if (zuluMatch) {\n this.hour = zuluMatch[1];\n this.minute = zuluMatch[2];\n this.second = zuluMatch[3];\n } else {\n const parts = time.split(/[:.]/);\n this.hour = parts[0] || \"\";\n this.minute = parts[1] || \"\";\n this.second = parts[2] || \"\";\n this.millisecond = parts[3] || \"\";\n }\n } else if (time instanceof Date) {\n this.hour = time.getHours().toString().padStart(2, \"0\");\n this.minute = time.getMinutes().toString().padStart(2, \"0\");\n this.second = time.getSeconds().toString().padStart(2, \"0\");\n if (this.isSSSFormat()) {\n this.millisecond = time.getMilliseconds().toString().padStart(3, \"0\");\n }\n }\n }\n this.setValidationMessage();\n };\n\n private setAriaInvalid = (\n validHour: boolean,\n validMinute: boolean,\n validSecond: boolean,\n validMillisecond: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n if (!validHour) {\n this.hourInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validMinute) {\n this.minuteInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validSecond) {\n this.secondInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validMillisecond) {\n this.millisecondInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!(validHour && validMinute && validSecond && validMillisecond)) {\n this.inputsInOrder.forEach((input) => {\n input.setAttribute(this.ARIA_INVALID, \"true\");\n });\n }\n }\n };\n\n private handleClear = () => {\n this.clearInput = true;\n if (this.hourInputEl) {\n this.hourInputEl.value = \"\";\n }\n if (this.minuteInputEl) {\n this.minuteInputEl.value = \"\";\n }\n if (!this.isHHMMFormat() && this.secondInputEl) {\n this.secondInputEl.value = \"\";\n }\n if (this.isSSSFormat() && this.millisecondInputEl) {\n this.millisecondInputEl.value = \"\";\n }\n this.hour = \"\";\n this.minute = \"\";\n this.second = \"\";\n this.millisecond = \"\";\n this.period = \"AM\";\n if (this.showAmPmToggle) {\n this.periodToggleEl\n ?.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR)\n .forEach((btn) => {\n const toggleBtn = btn as HTMLIcToggleButtonElement;\n if (toggleBtn.label === \"AM\") {\n toggleBtn.checked = true;\n } else {\n toggleBtn.checked = false;\n }\n });\n }\n this.handleTimeChange(true);\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.clearInput = false;\n this.isTimeSetFromKeyboardEvent = false;\n this.setValidationMessage();\n this.invalidTimeText = \"\";\n if (this.hourInputEl) {\n this.hourInputEl.focus();\n }\n };\n\n private notifyScreenReaderSelectedTime = () => {\n if (this.selectedTime && this.selectedTimeInfoEl) {\n let hours = this.selectedTime.getHours();\n if (this.timePeriod === \"12\" && this.showAmPmToggle) {\n hours = this.convertTo24Hour(hours);\n }\n const hoursStr = hours.toString().padStart(2, \"0\");\n const minutesStr = this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\");\n const secondsStr = this.selectedTime\n .getSeconds()\n .toString()\n .padStart(2, \"0\");\n const msStr = this.selectedTime\n .getMilliseconds()\n .toString()\n .padStart(3, \"0\");\n if (this.isHHMMFormat()) {\n this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}`;\n } else if (!this.isSSSFormat()) {\n this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}`;\n } else {\n this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}.${msStr}`;\n }\n }\n };\n\n private setFitToValueStyling = (input: HTMLInputElement) => {\n if (input.value) {\n input.classList.add(this.FIT_TO_VALUE);\n } else {\n input.classList.remove(this.FIT_TO_VALUE);\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedTime });\n };\n\n private handleHostFocus = () => {\n if (\n this.el.shadowRoot?.activeElement?.id.match(\n /(hour|minute|second|millisecond)-input$/\n )\n ) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedTime });\n };\n\n private handleFormReset = () => {\n this.setTime(this.initialValue);\n this.setValidationMessage();\n this.handleTimeChange(false);\n };\n\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart || 0,\n input.selectionEnd || undefined\n );\n }\n if (\n key === \"e\" ||\n key === \".\" ||\n key === \"-\" ||\n (event.key >= \"0\" &&\n event.key <= \"9\" &&\n isInputPrevented &&\n !selectedString)\n ) {\n event.preventDefault();\n }\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) + 1\n ]?.focus();\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) - 1\n ]?.focus();\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n const inputValue = input.value;\n if (inputValue.length === 1) {\n input.value = `0${inputValue}`;\n }\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n private convertToTime = (\n hour: string,\n minute: string,\n second: string,\n millisecond: string | null = null\n ): Date | null => {\n if (\n !isEmptyString(hour) &&\n !isEmptyString(minute) &&\n (this.isHHMMFormat() || !isEmptyString(second)) &&\n (!this.isSSSFormat() ||\n (millisecond !== null && !isEmptyString(millisecond)))\n ) {\n const d = new Date();\n d.setHours(+hour, +minute, this.isHHMMFormat() ? 0 : +second, 0);\n if (this.isSSSFormat() && millisecond !== null) {\n d.setMilliseconds(+millisecond);\n }\n return d;\n } else {\n return null;\n }\n };\n\n private setInputsInOrder = () => {\n this.inputsInOrder = [];\n const shadowInputs = this.el.shadowRoot?.querySelectorAll(\"input\");\n if (shadowInputs) {\n shadowInputs.forEach((input) => this.inputsInOrder.push(input));\n }\n };\n\n private updateInputValues = (\n hour: string,\n minute: string,\n second: string\n ) => {\n this.hourInputEl && (this.hourInputEl.value = hour);\n this.minuteInputEl && (this.minuteInputEl.value = minute);\n this.secondInputEl && (this.secondInputEl.value = second);\n };\n\n private removeAriaLabelledBy = () => {\n this.inputCompContainerEl?.removeAttribute(this.ARIA_LABELLED_BY);\n };\n\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n if (this.disabled) {\n return;\n }\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n const hasValidation =\n !isEmptyString(this.validationStatus) ||\n !isEmptyString(this.invalidTimeText);\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.el,\n this.inputId,\n this.helperText !== \"\" && this.helperText !== this.defaultHelperText,\n hasValidation\n )} ${this.selectedTime ? this.selectedTimeInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n this.inputCompContainerEl?.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n private getInputsInOrder = () => {\n const timeParts = this.timeFormat.split(/[:.]/);\n return timeParts.map((part: string) => {\n switch (part) {\n case \"HH\":\n return (\n <input\n class=\"hour-input\"\n id=\"hour-input\"\n ref={(el) => (this.hourInputEl = el)}\n aria-label=\"hour\"\n placeholder=\"HH\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventHourInput)\n }\n ></input>\n );\n case \"MM\":\n return (\n <input\n id=\"minute-input\"\n class=\"minute-input\"\n ref={(el) => (this.minuteInputEl = el)}\n aria-label=\"minute\"\n placeholder=\"MM\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventMinuteInput)\n }\n ></input>\n );\n case \"SS\":\n if (!this.isHHMMFormat()) {\n return (\n <input\n id=\"second-input\"\n class=\"second-input\"\n ref={(el) => (this.secondInputEl = el)}\n aria-label=\"second\"\n placeholder=\"SS\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventSecondInput)\n }\n ></input>\n );\n }\n break;\n case \"SSS\":\n if (this.isSSSFormat()) {\n return (\n <input\n id=\"millisecond-input\"\n class=\"millisecond-input\"\n ref={(el) => (this.millisecondInputEl = el)}\n aria-label=\"millisecond\"\n placeholder=\"SSS\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventMillisecondInput)\n }\n ></input>\n );\n }\n return null;\n default:\n return null;\n }\n });\n };\n\n private getDescOfInputsOrder = () => {\n if (this.isSSSFormat()) {\n return \"hour, minute, second, and millisecond\";\n }\n return \"hour, minute, and second\";\n };\n\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n if (this.required) {\n inputDescriptors += \"required\";\n }\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n private notifyScreenReader = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n if (liveRegion) {\n liveRegion.textContent = `${input.value}, ${input.getAttribute(\n this.ARIA_LABEL\n )}`;\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedValue = event.clipboardData?.getData(\"Text\") || \"\";\n const isValidTime = this.isPastedStringTimeValid(pastedValue);\n this.setPastedValueAndValidation(isValidTime, pastedValue, event);\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.clearButtonFocused = true;\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n this.isTimeSetFromKeyboardEvent = true;\n const relatedTarget = ev.relatedTarget as HTMLElement | null;\n if (relatedTarget?.id === \"clock-button\") {\n this.removeLabelledBy = false;\n return;\n }\n if (relatedTarget?.id.match(/(minute|second|millisecond)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n this.removeLabelledBy = true;\n };\n\n private handleClockFocus = () => {\n this.clockFocused = true;\n };\n\n private handleClockBlur = () => {\n this.clockFocused = false;\n };\n\n private isPastedStringTimeValid = (value: string): string | false => {\n if (this.isHHMMFormat()) {\n if (/^\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n } else if (this.isSSSFormat()) {\n if (/^\\d{2}:\\d{2}:\\d{2}\\.\\d{1,3}$/.test(value)) {\n return value;\n }\n if (/^\\d{2}:\\d{2}:\\d{2}\\.\\d{1,3}Z$/.test(value)) {\n return value.replace(\"Z\", \"\");\n }\n const isoMatch = value.match(/T(\\d{2}:\\d{2}:\\d{2}\\.\\d{1,3})/);\n if (isoMatch) {\n return isoMatch[1];\n }\n } else {\n if (/^\\d{2}:\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n if (/^\\d{2}:\\d{2}:\\d{2}Z$/.test(value)) {\n return value.replace(\"Z\", \"\");\n }\n const isoMatch = value.match(/T(\\d{2}:\\d{2}:\\d{2})/);\n if (isoMatch) {\n return isoMatch[1];\n }\n }\n return false;\n };\n\n private setPastedValueAndValidation = (\n isValidTime: string | false,\n pastedValue: string,\n event: ClipboardEvent\n ) => {\n if (isValidTime) {\n const timeParts = isValidTime.split(/[:.]/);\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n let timeValue = timeParts[index] || \"\";\n if (input === this.millisecondInputEl && this.isSSSFormat()) {\n timeValue = timeValue.slice(0, 3);\n } else {\n timeValue = timeValue.slice(0, 2);\n }\n if (input === this.hourInputEl) {\n let activeToggle: HTMLIcToggleButtonElement | undefined;\n if (this.timePeriod === \"12\" && this.showAmPmToggle) {\n if (parseInt(timeValue) > 12) {\n timeValue = (parseInt(timeValue) - 12)\n .toString()\n .padStart(2, \"0\");\n if (parseInt(timeValue) > 12) {\n return;\n } else {\n this.period = \"PM\";\n this.periodToggleEl\n ?.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR)\n .forEach((btn) => {\n const toggleBtn = btn as HTMLIcToggleButtonElement;\n if (toggleBtn.label === \"PM\") {\n activeToggle = toggleBtn;\n } else {\n toggleBtn.checked = false;\n }\n });\n if (activeToggle) {\n this.periodToggleEl?.setActiveToggle(activeToggle);\n activeToggle.checked = true;\n }\n this.invalidTimeText = \"\";\n this.validationStatus = \"\";\n }\n } else {\n if (parseInt(timeValue) === 0) {\n timeValue = \"12\";\n }\n this.period = \"AM\";\n this.periodToggleEl\n ?.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR)\n .forEach((btn) => {\n const toggleBtn = btn as HTMLIcToggleButtonElement;\n if (toggleBtn.label === \"AM\") {\n activeToggle = toggleBtn;\n } else {\n toggleBtn.checked = false;\n }\n });\n if (activeToggle) {\n this.periodToggleEl?.setActiveToggle(activeToggle);\n activeToggle.checked = true;\n }\n this.invalidTimeText = \"\";\n this.validationStatus = \"\";\n }\n }\n }\n input.value = timeValue;\n this.setInputValue(input);\n this.autocompleteInput(input);\n });\n if (\n this.isHHMMFormat() &&\n this.second !== \"\" &&\n this.millisecond !== \"\"\n ) {\n this.second = \"\";\n this.millisecond = \"\";\n }\n } else {\n const pasted = pastedValue.trim();\n if ((pasted.length === 1 || pasted.length === 2) && isNumeric(pasted)) {\n this.setInputPasteValue(event.target, pasted);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.invalidTimeText = `Please paste a valid ${(\n event.target as HTMLInputElement\n ).getAttribute(this.ARIA_LABEL)}`;\n this.validationStatus = IcInformationStatus.Error;\n }\n }\n };\n\n private handleAMPM = (selectedOption: HTMLIcToggleButtonElement) => {\n this.period = selectedOption.label!;\n this.periodToggleEl?.setActiveToggle(selectedOption);\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showClockButton,\n size,\n theme,\n validationAriaLive,\n } = this;\n const hasCustomValidation = !isEmptyString(this.validationStatus);\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidTimeText)\n ? IcInformationStatus.Error\n : \"\";\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToTime(this.hour, this.minute, this.second),\n this.disabled\n );\n const showDivider = !!(\n showClearButton &&\n !(\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second)\n )\n );\n\n if (this.showAmPmToggle && this.timePeriod !== \"12\") {\n this.showAmPmToggle = false;\n }\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-input-disabled`]: disabled,\n [`ic-time-input-${size}`]: true,\n }}\n onBlur={this.handleHostBlur}\n onFocus={this.handleHostFocus}\n >\n <ic-input-container disabled={disabled}>\n {!(hideLabel && hideHelperText) && (\n <ic-input-label\n for={inputId}\n label={label}\n hideLabel={hideLabel}\n helperText={!hideHelperText ? helperText ?? undefined : \"\"}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <span id={this.screenReaderInfoId} class=\"sr-only\" aria-hidden=\"true\">\n {this.getScreenReaderInfo(validationStatus)}\n {hideLabel && `${label}\\n`}\n {hideHelperText && `${helperText}\\n`}\n {`${this.defaultHelperText}.`}\n </span>\n <span id={this.assistiveHintId} class=\"sr-only\" aria-hidden=\"true\">\n {assistiveHint}\n </span>\n <span id=\"live-region\" aria-live=\"assertive\" class=\"sr-only\"></span>\n <div\n class={{\n \"with-am-pm-toggle\": this.showAmPmToggle === true,\n }}\n >\n <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement | undefined) =>\n (this.inputCompContainerEl = el!)\n }\n disabled={disabled}\n validationStatus={validationStatus}\n size={size}\n role=\"group\"\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"input-container\">\n <div class=\"time-inputs\">\n {[\n this.getInputsInOrder()[0],\n \":\",\n this.getInputsInOrder()[1],\n !this.isHHMMFormat()\n ? [\":\", this.getInputsInOrder()[2]]\n : null,\n this.isSSSFormat()\n ? [\".\", this.getInputsInOrder()[3]]\n : null,\n ]}\n </div>\n <div class=\"action-buttons\">\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear input\"\n class={{\n [\"clear-button\"]: true,\n [\"hidden\"]:\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second),\n }}\n disabled={this.disabled}\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearFocus}\n onBlur={this.handleClearBlur}\n variant=\"icon-tertiary\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n size={size}\n ></ic-button>\n )}\n {showClockButton && (\n <div class=\"show-clock-button-wrapper\">\n <div class={{ divider: showDivider, [size]: true }}></div>\n <ic-button\n id=\"clock-button\"\n aria-label=\"Display clock\"\n aria-haspopup=\"dialog\"\n class=\"clock-button\"\n disabled={this.disabled}\n innerHTML={Clock}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleClockFocus}\n onBlur={this.handleClockBlur}\n theme={this.clockFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n {this.showAmPmToggle && (\n <ic-toggle-button-group\n select-type=\"single\"\n accessible-label=\"AM PM Toggle\"\n ref={(el: HTMLIcToggleButtonGroupElement | undefined) =>\n (this.periodToggleEl = el)\n }\n disabled={disabled}\n class=\"am-pm-toggle\"\n select-method=\"auto\"\n onIcChange={(e: any) =>\n this.handleAMPM(e.detail.selectedOption)\n }\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === \"Tab\" && e.shiftKey) {\n e.preventDefault();\n if (this.inputsInOrder && this.inputsInOrder.length > 0) {\n const lastInput = this.inputsInOrder[\n this.inputsInOrder.length - 1\n ] as HTMLElement;\n lastInput?.focus();\n }\n }\n }}\n >\n <ic-toggle-button\n label=\"AM\"\n disabled={disabled}\n checked={true}\n ></ic-toggle-button>\n <ic-toggle-button\n label=\"PM\"\n disabled={disabled}\n ></ic-toggle-button>\n </ic-toggle-button-group>\n )}\n </div>\n <span id={this.selectedTimeInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedTimeInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation\n ? this.validationText ?? \"\"\n : this.invalidTimeText\n }\n for={inputId}\n ariaLiveMode={validationAriaLive}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export{S as ic_skip_link}from"./p-d107dfa8.js";import"./p-8e4e97b4.js";
2
+ //# sourceMappingURL=p-857362bd.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export{I as ic_input_component_container,a as ic_input_container,b as ic_input_label,c as ic_input_validation}from"./p-c2669ec9.js";import"./p-8e4e97b4.js";import"./p-7bbd1881.js";
2
+ //# sourceMappingURL=p-883e677d.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"mappings":"","ignoreList":[]}