@ukic/canary-web-components 3.0.0-canary.21 → 3.0.0-canary.23

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 (606) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/clear-icon-547aa9b9.js +10 -0
  3. package/dist/cjs/clear-icon-547aa9b9.js.map +1 -0
  4. package/dist/cjs/core.cjs.js +1 -1
  5. package/dist/cjs/helpers-da852478.js.map +1 -1
  6. package/dist/cjs/ic-action-chip.cjs.entry.js +116 -0
  7. package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -0
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +3 -3
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  11. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-button_3.cjs.entry.js +41 -86
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card-vertical.cjs.entry.js +4 -4
  19. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox_3.cjs.entry.js +6 -6
  23. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-chip.cjs.entry.js +11 -3
  25. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  27. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  31. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-data-table.cjs.entry.js +63 -68
  33. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-date-input.cjs.entry.js +25 -17
  35. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-date-picker.cjs.entry.js +17 -10
  37. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  41. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-footer.cjs.entry.js +3 -3
  43. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-hero.cjs.entry.js +4 -4
  45. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  47. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +224 -0
  49. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -0
  50. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/{ic-input-component-container_3.cjs.entry.js → ic-menu.cjs.entry.js} +41 -140
  55. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -0
  56. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -10
  61. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  63. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
  65. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-pagination_4.cjs.entry.js +17 -17
  67. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
  69. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
  71. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
  73. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-search-bar.cjs.entry.js +9 -9
  75. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -4
  79. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  81. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  83. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  85. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  87. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  89. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  91. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  93. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  95. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  97. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-tab.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  101. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-time-input.cjs.entry.js +943 -0
  103. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -0
  104. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  105. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  107. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +15 -4
  109. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ic-toggle-button.cjs.entry.js +13 -4
  111. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ic-top-navigation.cjs.entry.js +4 -4
  113. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  114. package/dist/cjs/ic-tree-item.cjs.entry.js +14 -8
  115. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  116. package/dist/cjs/ic-tree-view.cjs.entry.js +23 -15
  117. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  118. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  119. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  120. package/dist/cjs/index-d337cd8a.js +12 -4
  121. package/dist/cjs/loader.cjs.js +1 -1
  122. package/dist/collection/assets/clock.svg +1 -0
  123. package/dist/collection/collection-manifest.json +2 -0
  124. package/dist/collection/components/ic-data-table/ic-data-table.css +3 -2
  125. package/dist/collection/components/ic-data-table/ic-data-table.js +62 -68
  126. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  127. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +5 -4
  128. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
  129. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  130. package/dist/collection/components/ic-data-table/story-data.js +39 -130
  131. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  132. package/dist/collection/components/ic-date-input/ic-date-input.js +24 -12
  133. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  134. package/dist/collection/components/ic-date-picker/ic-date-picker.js +37 -10
  135. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  136. package/dist/collection/components/ic-time-input/ic-time-input.css +648 -0
  137. package/dist/collection/components/ic-time-input/ic-time-input.js +1600 -0
  138. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -0
  139. package/dist/collection/components/ic-time-input/ic-time-input.stories.js +320 -0
  140. package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -0
  141. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js +45 -0
  142. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js.map +1 -0
  143. package/dist/collection/components/ic-tree-item/ic-tree-item.js +14 -8
  144. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  145. package/dist/collection/components/ic-tree-view/ic-tree-view.js +23 -15
  146. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  147. package/dist/collection/utils/types.js.map +1 -1
  148. package/dist/components/clear-icon.js +8 -0
  149. package/dist/components/clear-icon.js.map +1 -0
  150. package/dist/components/helpers2.js.map +1 -1
  151. package/dist/components/ic-action-chip.js +160 -0
  152. package/dist/components/ic-action-chip.js.map +1 -0
  153. package/dist/components/ic-back-to-top.js +3 -3
  154. package/dist/components/ic-back-to-top.js.map +1 -1
  155. package/dist/components/ic-badge.js +2 -2
  156. package/dist/components/ic-badge.js.map +1 -1
  157. package/dist/components/ic-breadcrumb-group.js +2 -2
  158. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  159. package/dist/components/ic-breadcrumb2.js +2 -2
  160. package/dist/components/ic-breadcrumb2.js.map +1 -1
  161. package/dist/components/ic-button2.js +3 -3
  162. package/dist/components/ic-button2.js.map +1 -1
  163. package/dist/components/ic-card-vertical.js +4 -4
  164. package/dist/components/ic-card-vertical.js.map +1 -1
  165. package/dist/components/ic-checkbox-group.js +2 -2
  166. package/dist/components/ic-checkbox-group.js.map +1 -1
  167. package/dist/components/ic-checkbox2.js +4 -4
  168. package/dist/components/ic-checkbox2.js.map +1 -1
  169. package/dist/components/ic-chip.js +12 -4
  170. package/dist/components/ic-chip.js.map +1 -1
  171. package/dist/components/ic-classification-banner.js +2 -2
  172. package/dist/components/ic-classification-banner.js.map +1 -1
  173. package/dist/components/ic-data-list.js +2 -2
  174. package/dist/components/ic-data-list.js.map +1 -1
  175. package/dist/components/ic-data-row.js +2 -2
  176. package/dist/components/ic-data-row.js.map +1 -1
  177. package/dist/components/ic-data-table.js +63 -68
  178. package/dist/components/ic-data-table.js.map +1 -1
  179. package/dist/components/ic-date-input2.js +25 -17
  180. package/dist/components/ic-date-input2.js.map +1 -1
  181. package/dist/components/ic-date-picker.js +18 -10
  182. package/dist/components/ic-date-picker.js.map +1 -1
  183. package/dist/components/ic-dialog.js +1 -1
  184. package/dist/components/ic-dialog.js.map +1 -1
  185. package/dist/components/ic-empty-state2.js +2 -2
  186. package/dist/components/ic-empty-state2.js.map +1 -1
  187. package/dist/components/ic-footer-link.js +2 -2
  188. package/dist/components/ic-footer-link.js.map +1 -1
  189. package/dist/components/ic-footer.js +3 -3
  190. package/dist/components/ic-footer.js.map +1 -1
  191. package/dist/components/ic-hero.js +4 -4
  192. package/dist/components/ic-hero.js.map +1 -1
  193. package/dist/components/ic-horizontal-scroll2.js +5 -5
  194. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  195. package/dist/components/ic-input-component-container2.js +3 -3
  196. package/dist/components/ic-input-component-container2.js.map +1 -1
  197. package/dist/components/ic-input-container2.js +2 -2
  198. package/dist/components/ic-input-container2.js.map +1 -1
  199. package/dist/components/ic-input-label2.js +2 -2
  200. package/dist/components/ic-input-label2.js.map +1 -1
  201. package/dist/components/ic-input-validation2.js +3 -3
  202. package/dist/components/ic-input-validation2.js.map +1 -1
  203. package/dist/components/ic-link2.js +1 -1
  204. package/dist/components/ic-link2.js.map +1 -1
  205. package/dist/components/ic-loading-indicator2.js +6 -6
  206. package/dist/components/ic-loading-indicator2.js.map +1 -1
  207. package/dist/components/ic-menu-group.js +1 -1
  208. package/dist/components/ic-menu-group.js.map +1 -1
  209. package/dist/components/ic-menu2.js +42 -47
  210. package/dist/components/ic-menu2.js.map +1 -1
  211. package/dist/components/ic-navigation-button.js +2 -2
  212. package/dist/components/ic-navigation-button.js.map +1 -1
  213. package/dist/components/ic-navigation-group.js +1 -1
  214. package/dist/components/ic-navigation-group.js.map +1 -1
  215. package/dist/components/ic-navigation-item.js +3 -10
  216. package/dist/components/ic-navigation-item.js.map +1 -1
  217. package/dist/components/ic-navigation-menu2.js +4 -4
  218. package/dist/components/ic-navigation-menu2.js.map +1 -1
  219. package/dist/components/ic-page-header.js +6 -6
  220. package/dist/components/ic-page-header.js.map +1 -1
  221. package/dist/components/ic-pagination-item2.js +1 -1
  222. package/dist/components/ic-pagination-item2.js.map +1 -1
  223. package/dist/components/ic-pagination2.js +4 -4
  224. package/dist/components/ic-pagination2.js.map +1 -1
  225. package/dist/components/ic-popover-menu.js +4 -4
  226. package/dist/components/ic-popover-menu.js.map +1 -1
  227. package/dist/components/ic-radio-group.js +4 -4
  228. package/dist/components/ic-radio-group.js.map +1 -1
  229. package/dist/components/ic-radio-option.js +4 -4
  230. package/dist/components/ic-radio-option.js.map +1 -1
  231. package/dist/components/ic-search-bar.js +9 -9
  232. package/dist/components/ic-search-bar.js.map +1 -1
  233. package/dist/components/ic-section-container2.js +2 -2
  234. package/dist/components/ic-section-container2.js.map +1 -1
  235. package/dist/components/ic-select2.js +6 -6
  236. package/dist/components/ic-select2.js.map +1 -1
  237. package/dist/components/ic-side-navigation.js +4 -4
  238. package/dist/components/ic-side-navigation.js.map +1 -1
  239. package/dist/components/ic-skeleton.js +2 -2
  240. package/dist/components/ic-skeleton.js.map +1 -1
  241. package/dist/components/ic-skip-link.js +2 -2
  242. package/dist/components/ic-skip-link.js.map +1 -1
  243. package/dist/components/ic-status-tag.js +2 -2
  244. package/dist/components/ic-status-tag.js.map +1 -1
  245. package/dist/components/ic-step.js +13 -13
  246. package/dist/components/ic-step.js.map +1 -1
  247. package/dist/components/ic-stepper.js +2 -2
  248. package/dist/components/ic-stepper.js.map +1 -1
  249. package/dist/components/ic-switch.js +4 -4
  250. package/dist/components/ic-switch.js.map +1 -1
  251. package/dist/components/ic-tab-context.js +1 -1
  252. package/dist/components/ic-tab-context.js.map +1 -1
  253. package/dist/components/ic-tab-group.js +2 -2
  254. package/dist/components/ic-tab-group.js.map +1 -1
  255. package/dist/components/ic-tab-panel.js +2 -2
  256. package/dist/components/ic-tab-panel.js.map +1 -1
  257. package/dist/components/ic-tab.js +2 -2
  258. package/dist/components/ic-tab.js.map +1 -1
  259. package/dist/components/ic-text-field2.js +6 -6
  260. package/dist/components/ic-text-field2.js.map +1 -1
  261. package/dist/components/ic-theme.js +1 -1
  262. package/dist/components/ic-theme.js.map +1 -1
  263. package/dist/components/ic-time-input.d.ts +11 -0
  264. package/dist/components/ic-time-input.js +1045 -0
  265. package/dist/components/ic-time-input.js.map +1 -0
  266. package/dist/components/ic-toast-region.js +1 -1
  267. package/dist/components/ic-toast-region.js.map +1 -1
  268. package/dist/components/ic-toast.js +3 -3
  269. package/dist/components/ic-toast.js.map +1 -1
  270. package/dist/components/ic-toggle-button-group.js +17 -4
  271. package/dist/components/ic-toggle-button-group.js.map +1 -1
  272. package/dist/components/ic-toggle-button.js +14 -4
  273. package/dist/components/ic-toggle-button.js.map +1 -1
  274. package/dist/components/ic-tooltip2.js +33 -78
  275. package/dist/components/ic-tooltip2.js.map +1 -1
  276. package/dist/components/ic-top-navigation.js +4 -4
  277. package/dist/components/ic-top-navigation.js.map +1 -1
  278. package/dist/components/ic-tree-item.js +15 -9
  279. package/dist/components/ic-tree-item.js.map +1 -1
  280. package/dist/components/ic-tree-view.js +24 -16
  281. package/dist/components/ic-tree-view.js.map +1 -1
  282. package/dist/components/ic-typography2.js +2 -2
  283. package/dist/components/ic-typography2.js.map +1 -1
  284. package/dist/core/core.css +227 -7
  285. package/dist/core/core.esm.js +1 -1
  286. package/dist/core/core.esm.js.map +1 -1
  287. package/dist/core/{p-137dd76e.entry.js → p-00a89919.entry.js} +2 -2
  288. package/dist/core/{p-137dd76e.entry.js.map → p-00a89919.entry.js.map} +1 -1
  289. package/dist/core/{p-e253a857.js → p-0f22f41e.js} +2 -2
  290. package/dist/core/p-0f22f41e.js.map +1 -0
  291. package/dist/core/{p-97abdbf7.entry.js → p-1521e96b.entry.js} +2 -2
  292. package/dist/core/{p-97abdbf7.entry.js.map → p-1521e96b.entry.js.map} +1 -1
  293. package/dist/core/{p-5d987f8f.entry.js → p-153d3597.entry.js} +2 -2
  294. package/dist/core/{p-5d987f8f.entry.js.map → p-153d3597.entry.js.map} +1 -1
  295. package/dist/core/{p-4b6818d9.entry.js → p-1cc402b8.entry.js} +2 -2
  296. package/dist/core/{p-4b6818d9.entry.js.map → p-1cc402b8.entry.js.map} +1 -1
  297. package/dist/core/{p-8d908a57.entry.js → p-22863d31.entry.js} +2 -2
  298. package/dist/core/{p-8d908a57.entry.js.map → p-22863d31.entry.js.map} +1 -1
  299. package/dist/core/{p-c94e7b0b.entry.js → p-27207aa3.entry.js} +2 -2
  300. package/dist/core/{p-c94e7b0b.entry.js.map → p-27207aa3.entry.js.map} +1 -1
  301. package/dist/core/{p-2c4bf16f.entry.js → p-2d6a1b50.entry.js} +2 -2
  302. package/dist/core/{p-2c4bf16f.entry.js.map → p-2d6a1b50.entry.js.map} +1 -1
  303. package/dist/core/{p-b6b7c15c.entry.js → p-307c13a1.entry.js} +2 -2
  304. package/dist/core/p-307c13a1.entry.js.map +1 -0
  305. package/dist/core/{p-2d8900bf.entry.js → p-30b3afb1.entry.js} +2 -2
  306. package/dist/core/{p-2d8900bf.entry.js.map → p-30b3afb1.entry.js.map} +1 -1
  307. package/dist/core/{p-bf93baea.entry.js → p-324862f7.entry.js} +2 -2
  308. package/dist/core/{p-bf93baea.entry.js.map → p-324862f7.entry.js.map} +1 -1
  309. package/dist/core/{p-0fe08a58.js → p-33927ee1.js} +2 -2
  310. package/dist/core/{p-1bcf49fa.entry.js → p-369f4536.entry.js} +2 -2
  311. package/dist/core/p-369f4536.entry.js.map +1 -0
  312. package/dist/core/{p-b6d1988d.entry.js → p-3a5da30c.entry.js} +2 -2
  313. package/dist/core/{p-b6d1988d.entry.js.map → p-3a5da30c.entry.js.map} +1 -1
  314. package/dist/core/{p-826a6c25.entry.js → p-3d10fa12.entry.js} +2 -2
  315. package/dist/core/{p-826a6c25.entry.js.map → p-3d10fa12.entry.js.map} +1 -1
  316. package/dist/core/{p-f569a91f.entry.js → p-48127d40.entry.js} +2 -2
  317. package/dist/core/{p-f569a91f.entry.js.map → p-48127d40.entry.js.map} +1 -1
  318. package/dist/core/{p-3448c713.entry.js → p-48db785a.entry.js} +2 -2
  319. package/dist/core/{p-3448c713.entry.js.map → p-48db785a.entry.js.map} +1 -1
  320. package/dist/core/{p-b27bc1a1.entry.js → p-4b212968.entry.js} +2 -2
  321. package/dist/core/{p-b27bc1a1.entry.js.map → p-4b212968.entry.js.map} +1 -1
  322. package/dist/core/p-53d50d9e.entry.js +2 -0
  323. package/dist/core/p-53d50d9e.entry.js.map +1 -0
  324. package/dist/core/p-558936fb.entry.js +2 -0
  325. package/dist/core/p-558936fb.entry.js.map +1 -0
  326. package/dist/core/{p-64372a57.entry.js → p-593cc594.entry.js} +2 -2
  327. package/dist/core/{p-64372a57.entry.js.map → p-593cc594.entry.js.map} +1 -1
  328. package/dist/core/{p-bbf39a76.entry.js → p-666a671b.entry.js} +2 -2
  329. package/dist/core/{p-bbf39a76.entry.js.map → p-666a671b.entry.js.map} +1 -1
  330. package/dist/core/{p-8397766e.entry.js → p-726144b4.entry.js} +2 -2
  331. package/dist/core/{p-8397766e.entry.js.map → p-726144b4.entry.js.map} +1 -1
  332. package/dist/core/p-74e0f41f.entry.js +2 -0
  333. package/dist/core/p-74e0f41f.entry.js.map +1 -0
  334. package/dist/core/{p-0dc0d839.entry.js → p-75f3038c.entry.js} +2 -2
  335. package/dist/core/{p-0dc0d839.entry.js.map → p-75f3038c.entry.js.map} +1 -1
  336. package/dist/core/p-7892130d.entry.js +2 -0
  337. package/dist/core/p-7892130d.entry.js.map +1 -0
  338. package/dist/core/{p-b6c3cc1c.entry.js → p-7e5e94a9.entry.js} +2 -2
  339. package/dist/core/p-7e5e94a9.entry.js.map +1 -0
  340. package/dist/core/p-8048c7da.entry.js +2 -0
  341. package/dist/core/{p-1e256460.entry.js.map → p-8048c7da.entry.js.map} +1 -1
  342. package/dist/core/p-80e43591.entry.js +2 -0
  343. package/dist/core/{p-8cb5deba.entry.js.map → p-80e43591.entry.js.map} +1 -1
  344. package/dist/core/{p-75901d06.entry.js → p-86ff903d.entry.js} +2 -2
  345. package/dist/core/{p-ead0acc3.entry.js → p-8908b8e6.entry.js} +2 -2
  346. package/dist/core/{p-832c7042.entry.js → p-8bf1022e.entry.js} +2 -2
  347. package/dist/core/{p-90364cef.entry.js → p-8fa7085e.entry.js} +2 -2
  348. package/dist/core/{p-90364cef.entry.js.map → p-8fa7085e.entry.js.map} +1 -1
  349. package/dist/core/{p-5237f3ac.entry.js → p-97c437bb.entry.js} +2 -2
  350. package/dist/core/p-9c8a98e8.entry.js +2 -0
  351. package/dist/core/p-9c8a98e8.entry.js.map +1 -0
  352. package/dist/core/{p-0f86ea09.entry.js → p-9f792a31.entry.js} +2 -2
  353. package/dist/core/{p-0f86ea09.entry.js.map → p-9f792a31.entry.js.map} +1 -1
  354. package/dist/core/{p-cd8178a9.entry.js → p-abcc90f0.entry.js} +2 -2
  355. package/dist/core/{p-cd8178a9.entry.js.map → p-abcc90f0.entry.js.map} +1 -1
  356. package/dist/core/p-ad48c77c.entry.js +2 -0
  357. package/dist/core/p-ad48c77c.entry.js.map +1 -0
  358. package/dist/core/p-b0462734.entry.js +2 -0
  359. package/dist/core/p-b0462734.entry.js.map +1 -0
  360. package/dist/core/{p-88c5ec78.entry.js → p-b2680959.entry.js} +2 -2
  361. package/dist/core/{p-88c5ec78.entry.js.map → p-b2680959.entry.js.map} +1 -1
  362. package/dist/core/{p-b1b27b7e.entry.js → p-b3ac38c5.entry.js} +2 -2
  363. package/dist/core/{p-b1b27b7e.entry.js.map → p-b3ac38c5.entry.js.map} +1 -1
  364. package/dist/core/p-b5ef2799.entry.js +2 -0
  365. package/dist/core/{p-497918fd.entry.js.map → p-b5ef2799.entry.js.map} +1 -1
  366. package/dist/core/{p-33404c14.entry.js → p-b7a0dc04.entry.js} +2 -2
  367. package/dist/core/{p-33404c14.entry.js.map → p-b7a0dc04.entry.js.map} +1 -1
  368. package/dist/core/p-b8938f93.entry.js +2 -0
  369. package/dist/core/p-b8938f93.entry.js.map +1 -0
  370. package/dist/core/{p-9097a16a.entry.js → p-b9d4c0db.entry.js} +2 -2
  371. package/dist/core/{p-9097a16a.entry.js.map → p-b9d4c0db.entry.js.map} +1 -1
  372. package/dist/core/{p-b3509380.entry.js → p-c4bf8742.entry.js} +2 -2
  373. package/dist/core/{p-3cf99186.entry.js → p-c6eabd53.entry.js} +2 -2
  374. package/dist/core/{p-6f72e6ac.entry.js → p-c7ccc52a.entry.js} +2 -2
  375. package/dist/core/{p-6f72e6ac.entry.js.map → p-c7ccc52a.entry.js.map} +1 -1
  376. package/dist/core/p-c82a2e84.entry.js +2 -0
  377. package/dist/core/p-c82a2e84.entry.js.map +1 -0
  378. package/dist/core/{p-94065f7a.entry.js → p-ca3c6653.entry.js} +2 -2
  379. package/dist/core/{p-94065f7a.entry.js.map → p-ca3c6653.entry.js.map} +1 -1
  380. package/dist/core/{p-d281c3cf.entry.js → p-d47acbd4.entry.js} +2 -2
  381. package/dist/core/{p-d281c3cf.entry.js.map → p-d47acbd4.entry.js.map} +1 -1
  382. package/dist/core/{p-a54eb1d1.entry.js → p-d5f8ef77.entry.js} +2 -2
  383. package/dist/core/{p-c77d6efc.entry.js → p-db3b0c0a.entry.js} +2 -2
  384. package/dist/core/{p-c77d6efc.entry.js.map → p-db3b0c0a.entry.js.map} +1 -1
  385. package/dist/core/{p-cc36abaa.entry.js → p-db6d0463.entry.js} +2 -2
  386. package/dist/core/p-dbde45ff.entry.js +2 -0
  387. package/dist/core/p-dbde45ff.entry.js.map +1 -0
  388. package/dist/core/p-dc8eede2.entry.js +2 -0
  389. package/dist/core/p-dc8eede2.entry.js.map +1 -0
  390. package/dist/core/p-dd7450fb.js +2 -0
  391. package/dist/core/p-dd7450fb.js.map +1 -0
  392. package/dist/core/{p-fc5661ac.entry.js → p-de43d375.entry.js} +2 -2
  393. package/dist/core/{p-fc5661ac.entry.js.map → p-de43d375.entry.js.map} +1 -1
  394. package/dist/core/p-de8081c6.entry.js +2 -0
  395. package/dist/core/{p-a26a60ff.entry.js.map → p-de8081c6.entry.js.map} +1 -1
  396. package/dist/core/p-e4906394.entry.js +2 -0
  397. package/dist/core/{p-032113b9.entry.js.map → p-e4906394.entry.js.map} +1 -1
  398. package/dist/core/p-e595bb87.entry.js +2 -0
  399. package/dist/core/p-e595bb87.entry.js.map +1 -0
  400. package/dist/core/{p-42913c5b.entry.js → p-e75514f1.entry.js} +2 -2
  401. package/dist/core/{p-42913c5b.entry.js.map → p-e75514f1.entry.js.map} +1 -1
  402. package/dist/core/{p-6dd73165.entry.js → p-ee6caf27.entry.js} +2 -2
  403. package/dist/core/{p-6dd73165.entry.js.map → p-ee6caf27.entry.js.map} +1 -1
  404. package/dist/core/{p-2de3287c.entry.js → p-f33eae3c.entry.js} +2 -2
  405. package/dist/core/{p-2de3287c.entry.js.map → p-f33eae3c.entry.js.map} +1 -1
  406. package/dist/core/{p-9e051db4.entry.js → p-f34eee68.entry.js} +2 -2
  407. package/dist/core/{p-9e051db4.entry.js.map → p-f34eee68.entry.js.map} +1 -1
  408. package/dist/core/{p-fb7f4e2e.entry.js → p-fbb0a74d.entry.js} +2 -2
  409. package/dist/core/{p-fb7f4e2e.entry.js.map → p-fbb0a74d.entry.js.map} +1 -1
  410. package/dist/core/{p-9fafa5fa.entry.js → p-fbd80981.entry.js} +2 -2
  411. package/dist/core/p-fbd80981.entry.js.map +1 -0
  412. package/dist/core/{p-e18ba5d6.entry.js → p-fffb98c9.entry.js} +2 -2
  413. package/dist/core/{p-e18ba5d6.entry.js.map → p-fffb98c9.entry.js.map} +1 -1
  414. package/dist/esm/clear-icon-1c79bda2.js +8 -0
  415. package/dist/esm/clear-icon-1c79bda2.js.map +1 -0
  416. package/dist/esm/core.js +1 -1
  417. package/dist/esm/{helpers-d9387cd3.js → helpers-89cb996d.js} +2 -2
  418. package/dist/esm/helpers-89cb996d.js.map +1 -0
  419. package/dist/esm/{helpers-574534c9.js → helpers-dea3fd9b.js} +2 -2
  420. package/dist/esm/{helpers-574534c9.js.map → helpers-dea3fd9b.js.map} +1 -1
  421. package/dist/esm/ic-accordion-group.entry.js +1 -1
  422. package/dist/esm/ic-accordion.entry.js +1 -1
  423. package/dist/esm/ic-action-chip.entry.js +112 -0
  424. package/dist/esm/ic-action-chip.entry.js.map +1 -0
  425. package/dist/esm/ic-alert.entry.js +1 -1
  426. package/dist/esm/ic-back-to-top.entry.js +4 -4
  427. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  428. package/dist/esm/ic-badge.entry.js +3 -3
  429. package/dist/esm/ic-badge.entry.js.map +1 -1
  430. package/dist/esm/ic-breadcrumb-group.entry.js +3 -3
  431. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  432. package/dist/esm/ic-breadcrumb.entry.js +3 -3
  433. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  434. package/dist/esm/ic-button_3.entry.js +42 -87
  435. package/dist/esm/ic-button_3.entry.js.map +1 -1
  436. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  437. package/dist/esm/ic-card-vertical.entry.js +5 -5
  438. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  439. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  440. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  441. package/dist/esm/ic-checkbox_3.entry.js +8 -8
  442. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  443. package/dist/esm/ic-chip.entry.js +12 -4
  444. package/dist/esm/ic-chip.entry.js.map +1 -1
  445. package/dist/esm/ic-classification-banner.entry.js +2 -2
  446. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  447. package/dist/esm/ic-data-list.entry.js +2 -2
  448. package/dist/esm/ic-data-list.entry.js.map +1 -1
  449. package/dist/esm/ic-data-row.entry.js +3 -3
  450. package/dist/esm/ic-data-row.entry.js.map +1 -1
  451. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  452. package/dist/esm/ic-data-table.entry.js +64 -69
  453. package/dist/esm/ic-data-table.entry.js.map +1 -1
  454. package/dist/esm/ic-date-input.entry.js +26 -18
  455. package/dist/esm/ic-date-input.entry.js.map +1 -1
  456. package/dist/esm/ic-date-picker.entry.js +18 -11
  457. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  458. package/dist/esm/ic-dialog.entry.js +2 -2
  459. package/dist/esm/ic-dialog.entry.js.map +1 -1
  460. package/dist/esm/ic-divider.entry.js +1 -1
  461. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  462. package/dist/esm/ic-footer-link.entry.js +3 -3
  463. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  464. package/dist/esm/ic-footer.entry.js +4 -4
  465. package/dist/esm/ic-footer.entry.js.map +1 -1
  466. package/dist/esm/ic-hero.entry.js +5 -5
  467. package/dist/esm/ic-hero.entry.js.map +1 -1
  468. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  469. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  470. package/dist/esm/ic-input-component-container_4.entry.js +217 -0
  471. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -0
  472. package/dist/esm/ic-link.entry.js +2 -2
  473. package/dist/esm/ic-link.entry.js.map +1 -1
  474. package/dist/esm/ic-menu-group.entry.js +2 -2
  475. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  476. package/dist/esm/ic-menu-item.entry.js +1 -1
  477. package/dist/esm/{ic-input-component-container_3.entry.js → ic-menu.entry.js} +43 -140
  478. package/dist/esm/ic-menu.entry.js.map +1 -0
  479. package/dist/esm/ic-navigation-button.entry.js +3 -3
  480. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  481. package/dist/esm/ic-navigation-group.entry.js +2 -2
  482. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  483. package/dist/esm/ic-navigation-item.entry.js +4 -11
  484. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  485. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  486. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  487. package/dist/esm/ic-page-header.entry.js +7 -7
  488. package/dist/esm/ic-page-header.entry.js.map +1 -1
  489. package/dist/esm/ic-pagination_4.entry.js +18 -18
  490. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  491. package/dist/esm/ic-popover-menu.entry.js +5 -5
  492. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  493. package/dist/esm/ic-radio-group.entry.js +5 -5
  494. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  495. package/dist/esm/ic-radio-option.entry.js +5 -5
  496. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  497. package/dist/esm/ic-search-bar.entry.js +10 -10
  498. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  499. package/dist/esm/ic-section-container.entry.js +2 -2
  500. package/dist/esm/ic-section-container.entry.js.map +1 -1
  501. package/dist/esm/ic-side-navigation.entry.js +5 -5
  502. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  503. package/dist/esm/ic-skeleton.entry.js +2 -2
  504. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  505. package/dist/esm/ic-skip-link.entry.js +2 -2
  506. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  507. package/dist/esm/ic-status-tag.entry.js +3 -3
  508. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  509. package/dist/esm/ic-step.entry.js +14 -14
  510. package/dist/esm/ic-step.entry.js.map +1 -1
  511. package/dist/esm/ic-stepper.entry.js +3 -3
  512. package/dist/esm/ic-stepper.entry.js.map +1 -1
  513. package/dist/esm/ic-switch.entry.js +5 -5
  514. package/dist/esm/ic-switch.entry.js.map +1 -1
  515. package/dist/esm/ic-tab-context.entry.js +1 -1
  516. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  517. package/dist/esm/ic-tab-group.entry.js +3 -3
  518. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  519. package/dist/esm/ic-tab-panel.entry.js +2 -2
  520. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  521. package/dist/esm/ic-tab.entry.js +3 -3
  522. package/dist/esm/ic-tab.entry.js.map +1 -1
  523. package/dist/esm/ic-theme.entry.js +2 -2
  524. package/dist/esm/ic-theme.entry.js.map +1 -1
  525. package/dist/esm/ic-time-input.entry.js +939 -0
  526. package/dist/esm/ic-time-input.entry.js.map +1 -0
  527. package/dist/esm/ic-toast-region.entry.js +1 -1
  528. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  529. package/dist/esm/ic-toast.entry.js +4 -4
  530. package/dist/esm/ic-toast.entry.js.map +1 -1
  531. package/dist/esm/ic-toggle-button-group.entry.js +16 -5
  532. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  533. package/dist/esm/ic-toggle-button.entry.js +14 -5
  534. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  535. package/dist/esm/ic-top-navigation.entry.js +5 -5
  536. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  537. package/dist/esm/ic-tree-item.entry.js +15 -9
  538. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  539. package/dist/esm/ic-tree-view.entry.js +24 -16
  540. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  541. package/dist/esm/ic-typography.entry.js +3 -3
  542. package/dist/esm/ic-typography.entry.js.map +1 -1
  543. package/dist/esm/index-a7a720e7.js +12 -4
  544. package/dist/esm/loader.js +1 -1
  545. package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -1
  546. package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +1 -1
  547. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +12 -7
  548. package/dist/types/components/ic-data-table/story-data.d.ts +11 -84
  549. package/dist/types/components/ic-date-input/ic-date-input.d.ts +2 -1
  550. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
  551. package/dist/types/components/ic-time-input/ic-time-input.d.ts +229 -0
  552. package/dist/types/components/ic-time-input/ic-time-input.stories.d.ts +121 -0
  553. package/dist/types/components/ic-time-input/test/helpers/ic-time-input.d.ts +23 -0
  554. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +2 -0
  555. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +2 -1
  556. package/dist/types/components.d.ts +242 -2
  557. package/dist/types/utils/types.d.ts +5 -0
  558. package/hydrate/index.js +1611 -493
  559. package/hydrate/index.mjs +1611 -493
  560. package/package.json +3 -3
  561. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +0 -1
  562. package/dist/cjs/ic-input-label_2.cjs.entry.js +0 -133
  563. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +0 -1
  564. package/dist/core/p-032113b9.entry.js +0 -2
  565. package/dist/core/p-145238fe.entry.js +0 -2
  566. package/dist/core/p-145238fe.entry.js.map +0 -1
  567. package/dist/core/p-1b20ab19.entry.js +0 -2
  568. package/dist/core/p-1b20ab19.entry.js.map +0 -1
  569. package/dist/core/p-1bcf49fa.entry.js.map +0 -1
  570. package/dist/core/p-1e256460.entry.js +0 -2
  571. package/dist/core/p-224b2e14.entry.js +0 -2
  572. package/dist/core/p-224b2e14.entry.js.map +0 -1
  573. package/dist/core/p-497918fd.entry.js +0 -2
  574. package/dist/core/p-5f8b09e4.entry.js +0 -2
  575. package/dist/core/p-5f8b09e4.entry.js.map +0 -1
  576. package/dist/core/p-7001f1c1.entry.js +0 -2
  577. package/dist/core/p-7001f1c1.entry.js.map +0 -1
  578. package/dist/core/p-8cb5deba.entry.js +0 -2
  579. package/dist/core/p-95881758.entry.js +0 -2
  580. package/dist/core/p-95881758.entry.js.map +0 -1
  581. package/dist/core/p-9fafa5fa.entry.js.map +0 -1
  582. package/dist/core/p-a26a60ff.entry.js +0 -2
  583. package/dist/core/p-b6b7c15c.entry.js.map +0 -1
  584. package/dist/core/p-b6c3cc1c.entry.js.map +0 -1
  585. package/dist/core/p-b9369ce5.entry.js +0 -2
  586. package/dist/core/p-b9369ce5.entry.js.map +0 -1
  587. package/dist/core/p-cbbba154.entry.js +0 -2
  588. package/dist/core/p-cbbba154.entry.js.map +0 -1
  589. package/dist/core/p-cdd6d5e8.entry.js +0 -2
  590. package/dist/core/p-cdd6d5e8.entry.js.map +0 -1
  591. package/dist/core/p-dc3aba7c.entry.js +0 -2
  592. package/dist/core/p-dc3aba7c.entry.js.map +0 -1
  593. package/dist/core/p-e253a857.js.map +0 -1
  594. package/dist/esm/helpers-d9387cd3.js.map +0 -1
  595. package/dist/esm/ic-input-component-container_3.entry.js.map +0 -1
  596. package/dist/esm/ic-input-label_2.entry.js +0 -128
  597. package/dist/esm/ic-input-label_2.entry.js.map +0 -1
  598. /package/dist/core/{p-0fe08a58.js.map → p-33927ee1.js.map} +0 -0
  599. /package/dist/core/{p-75901d06.entry.js.map → p-86ff903d.entry.js.map} +0 -0
  600. /package/dist/core/{p-ead0acc3.entry.js.map → p-8908b8e6.entry.js.map} +0 -0
  601. /package/dist/core/{p-832c7042.entry.js.map → p-8bf1022e.entry.js.map} +0 -0
  602. /package/dist/core/{p-5237f3ac.entry.js.map → p-97c437bb.entry.js.map} +0 -0
  603. /package/dist/core/{p-b3509380.entry.js.map → p-c4bf8742.entry.js.map} +0 -0
  604. /package/dist/core/{p-3cf99186.entry.js.map → p-c6eabd53.entry.js.map} +0 -0
  605. /package/dist/core/{p-a54eb1d1.entry.js.map → p-d5f8ef77.entry.js.map} +0 -0
  606. /package/dist/core/{p-cc36abaa.entry.js.map → p-db6d0463.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-time-input.js","sourceRoot":"","sources":["../../../src/components/ic-time-input/ic-time-input.tsx"],"names":[],"mappings":"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","sourcesContent":["/* 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 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} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Clock from \"../../assets/clock.svg\";\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 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 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 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 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\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\n @Watch(\"hour\")\n @Watch(\"minute\")\n @Watch(\"second\")\n watchInputHandler(): void {\n if (\n this.emitTimePartChange &&\n !this.externalSetTime &&\n !this.clearInput &&\n !(this.hour && this.minute && this.second) &&\n this.selectedTime === null\n ) {\n this.emitIcChange(this.selectedTime);\n }\n }\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 times 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 icChange 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\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 = this.parseTime(this.max);\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 = this.parseTime(this.min);\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`, 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\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?: string | Date | null | undefined = \"\";\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() icChange: EventEmitter<{\n value: Date | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: 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.defaultHelperText = `Use format ${this.timeFormat}`;\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\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 );\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 (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n if (!this.isTimeSetFromKeyboardEvent) this.setTime(this.value);\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond\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 IcChange event from the input.\n */\n @Method()\n async triggerIcChange(t: Date | null): Promise<void> {\n this.externalSetTime = true;\n this.setTime(t);\n this.emitIcChange(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 parseTime = (value: string | Date): Date | null => {\n if (!value) return null;\n if (value instanceof Date) return value;\n const parts = value.split(\":\");\n if (parts.length >= 2) {\n const d = new Date();\n d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, 0);\n return d;\n }\n return null;\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\" ? 11 : 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 } else {\n this.isValidSecond = 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 }\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 }\n };\n\n private setValidationMessage = () => {\n this.maxTime = this.parseTime(this.max);\n this.minTime = this.parseTime(this.min);\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 ) {\n this.selectedTime = this.convertToTime(\n this.hour,\n this.minute,\n this.isHHMMFormat() ? \"00\" : this.second\n );\n this.isValidTime =\n !!this.selectedTime &&\n this.selectedTime.getHours() == +this.hour &&\n this.selectedTime.getMinutes() == +this.minute &&\n (this.isHHMMFormat() || this.selectedTime.getSeconds() == +this.second);\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 = this.parseTime(t.start);\n const end = this.parseTime(t.end);\n if (start && end) {\n return this.selectedTime! >= start && this.selectedTime! <= end;\n }\n return false;\n }\n const parsed = this.parseTime(t as string | Date);\n return (\n parsed &&\n parsed.getHours() === this.selectedTime!.getHours() &&\n parsed.getMinutes() === this.selectedTime!.getMinutes() &&\n parsed.getSeconds() === 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.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 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.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 } 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 }\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 private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const input = event.target as HTMLInputElement;\n const eventKey = event.key?.toLowerCase();\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;\n if (input) {\n this.autocompleteInput(input as HTMLInputElement);\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 = 0;\n maxValue = this.timePeriod === \"12\" ? 11 : 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);\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) => {\n if (this.value !== value) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private emitIcChange = (t: Date | null) => {\n this.selectedTime = t;\n this.icChange.emit({\n value: t,\n timeObject: {\n hour: this.hour === \"\" ? null : this.hour,\n minute: this.minute === \"\" ? null : this.minute,\n second: this.second === \"\" ? null : this.second,\n },\n });\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 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 }\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 }\n }\n this.setValidationMessage();\n };\n\n private setAriaInvalid = (\n validHour: boolean,\n validMinute: boolean,\n validSecond: 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 (!(validHour && validMinute && validSecond)) {\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 this.hour = \"\";\n this.minute = \"\";\n this.second = \"\";\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 if (this.isHHMMFormat()) {\n this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime\n .getHours()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\")}`;\n } else {\n this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime\n .getHours()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getSeconds()\n .toString()\n .padStart(2, \"0\")}`;\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(/(hour|minute|second)-input$/)\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 ): Date | null => {\n if (\n !isEmptyString(hour) &&\n !isEmptyString(minute) &&\n (this.isHHMMFormat() || !isEmptyString(second))\n ) {\n const d = new Date();\n d.setHours(+hour, +minute, this.isHHMMFormat() ? 0 : +second, 0);\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 if (this.hourInputEl && this.minuteInputEl && this.secondInputEl) {\n this.hourInputEl.value = hour;\n this.minuteInputEl.value = minute;\n this.secondInputEl.value = second;\n }\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.substring(0, 1)) {\n case \"H\":\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 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 \"M\":\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 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 \"S\":\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 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 return null;\n default:\n return null;\n }\n });\n };\n\n private getDescOfInputsOrder = () => {\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)-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 {\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 const timeValue = timeParts[index] || \"\";\n input.value = timeValue.slice(0, 2);\n this.setInputValue(input);\n this.autocompleteInput(input);\n });\n if (this.isHHMMFormat() && this.second !== \"\") {\n this.second = \"\";\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 render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showClockButton,\n size,\n theme,\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 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 : \"\"}\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 <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement) =>\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 ]}\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 <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 {(hasCustomValidation || !isEmptyString(this.invalidTimeText)) && (\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidTimeText\n }\n for={inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,320 @@
1
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
+ import { html } from "lit-html";
3
+ import readme from "./readme.md";
4
+ export default {
5
+ title: "Web Components/Time Input",
6
+ component: "ic-time-input",
7
+ parameters: {
8
+ componentAPI: {
9
+ data: readme,
10
+ },
11
+ },
12
+ };
13
+ /**
14
+ * Use the time input component to manually type in a time in different formats.
15
+ *
16
+ * The input `label` is the only required attribute for time input.
17
+ *
18
+ * Click the 'Component API' tab to view all the available attributes, events and slots for time input.
19
+ *
20
+ * To use the time input component, import `@ukic/canary-web-components` into your application.
21
+ *
22
+ * Times can be added by manually typing into the input or using the up and down arrow keys.
23
+ *
24
+ * To move between hour, minute and second using the keyboard, provide the required values based on the placeholders or use `:`.
25
+ *
26
+ * By default, the helper text displays the time format.
27
+ */
28
+ export const Default = {
29
+ render: () => html `<ic-time-input
30
+ label="What time would you like to collect your coffee?"
31
+ ></ic-time-input>`,
32
+ name: "Default",
33
+ };
34
+ /**
35
+ * Retrieving the time input value via `icChange` returns the time as a Date object.
36
+ *
37
+ * The event returns the Date object once hour, minute and second have been entered.
38
+ */
39
+ export const IcChangeEvent = {
40
+ render: () => html `<ic-time-input
41
+ label="What time would you like to collect your coffee?"
42
+ ></ic-time-input>
43
+ <script>
44
+ var timeInput = document.querySelector("ic-time-input");
45
+ timeInput.addEventListener("icChange", function (event) {
46
+ console.log(event.detail.value, event.detail.utcValue);
47
+ });
48
+ </script>`,
49
+ name: "icChange event",
50
+ };
51
+ /**
52
+ * To set a value to the time input, pass the time value in the relevant time format.
53
+ */
54
+ export const WithValue = {
55
+ render: () => html `<ic-time-input
56
+ id="time-input-default-time-with-value"
57
+ label="What time would you like to collect your coffee?"
58
+ time-format="HH:MM:SS"
59
+ value="13:45:00"
60
+ ></ic-time-input>`,
61
+ name: "With value",
62
+ };
63
+ /**
64
+ * The time input also accepts a number of different time formats within the value attribute:
65
+ * - [Date object](#date-object)
66
+ * - [Zulu time](#zulu-time)
67
+ */
68
+ export const DateObject = {
69
+ render: () => html `<ic-time-input
70
+ id="time-input-default-time-date"
71
+ label="What time would you like to collect your coffee?"
72
+ ></ic-time-input>
73
+ <script>
74
+ var timeInputDate = document.querySelector(
75
+ "#time-input-default-time-date"
76
+ );
77
+ timeInputDate.value = new Date("2025-07-14T15:30:45");
78
+ </script>`,
79
+ name: "Date object",
80
+ };
81
+ export const ZuluTime = {
82
+ render: () => html `<div>
83
+ <ic-time-input
84
+ id="time-input-default-zulu-time"
85
+ label="What time would you like to collect your coffee?"
86
+ ></ic-time-input>
87
+ </div>
88
+ <script>
89
+ var timeInputDate = document.querySelector(
90
+ "#time-input-default-zulu-time"
91
+ );
92
+ timeInputDate.value = "15:30:45Z";
93
+ </script>`,
94
+ name: "Zulu time",
95
+ };
96
+ /**
97
+ * To set the time input as a required field, set the `required` attribute to `true`. This will add an asterisk at the end of the time input label.
98
+ */
99
+ export const Required = {
100
+ render: () => html `<ic-time-input
101
+ label="What time would you like to collect your coffee?"
102
+ required="true"
103
+ ></ic-time-input>`,
104
+ name: "Required",
105
+ };
106
+ /**
107
+ * To hide the label, set the `hide-label` attribute to `true`. The required `label` will still be read out by screen readers.
108
+ */
109
+ export const HideLabel = {
110
+ render: () => html `<ic-time-input
111
+ label="What time would you like to collect your coffee?"
112
+ hide-label="true"
113
+ ></ic-time-input>`,
114
+ name: "Hide label",
115
+ };
116
+ /**
117
+ * Set the `disabled` attribute to `true` to prevent interaction with the time input.
118
+ */
119
+ export const Disabled = {
120
+ render: () => html `<ic-time-input
121
+ label="What time would you like to collect your coffee?"
122
+ disabled="true"
123
+ ></ic-time-input>`,
124
+ };
125
+ /**
126
+ * The time input is available in three different sizes:
127
+ * - `small`
128
+ * - `medium` (default)
129
+ * - `large`
130
+ */
131
+ export const Sizes = {
132
+ render: () => html `<ic-time-input
133
+ label="What time would you like to collect your coffee?"
134
+ size="small"
135
+ ></ic-time-input>
136
+ <br />
137
+ <ic-time-input
138
+ label="What time would you like to collect your coffee?"
139
+ ></ic-time-input>
140
+ <br />
141
+ <ic-time-input
142
+ label="What time would you like to collect your coffee?"
143
+ size="large"
144
+ ></ic-time-input>`,
145
+ name: "Sizes",
146
+ };
147
+ /**
148
+ * Use the helper text to add additional detail for the time input. Display custom content using the `helper-text` slot.
149
+ */
150
+ export const CustomHelperText = {
151
+ render: () => html `<ic-time-input
152
+ label="What time would you like to collect your coffee?"
153
+ helper-text="We will have your order ready for you at this time"
154
+ ></ic-time-input>
155
+ <br />
156
+ <ic-time-input label="What time would you like to collect your coffee?"
157
+ ><ic-typography variant="caption" slot="helper-text">
158
+ <span>
159
+ For special requests,
160
+ <ic-link href="#">contact us</ic-link> before choosing a time
161
+ </span>
162
+ </ic-typography></ic-time-input
163
+ >`,
164
+ name: "Custom helper text",
165
+ };
166
+ export const HideHelperText = {
167
+ render: () => html `<ic-time-input
168
+ label="What time would you like to collect your coffee?"
169
+ helper-text="You cannot see me, but you can hear me"
170
+ hide-helper-text="true"
171
+ ></ic-time-input>`,
172
+ name: "Hide helper text",
173
+ };
174
+ /**
175
+ * Validation on time input is set via `validation-status` and `validation-text`.
176
+ *
177
+ * `validation-status` will set the style of the validation message. `validation-status` accepts:
178
+ * - `error`
179
+ * - `warning`
180
+ * - `success`
181
+ *
182
+ * `validation-status` is required for the `validation-text` to appear.
183
+ */
184
+ export const Validation = {
185
+ render: () => html `<ic-time-input
186
+ label="What time would you like to collect your coffee?"
187
+ validation-status="error"
188
+ validation-text="There is a coffee shortage forecast for that time. Please choose a different time."
189
+ ></ic-time-input>
190
+ <br />
191
+ <ic-time-input
192
+ label="What time would you like to collect your coffee?"
193
+ validation-status="warning"
194
+ validation-text="Please be aware that there may be a coffee shortage at that time."
195
+ ></ic-time-input>
196
+ <br />
197
+ <ic-time-input
198
+ label="What time would you like to collect your coffee?"
199
+ validation-status="success"
200
+ validation-text="Your coffee will be available for you to collect at this time."
201
+ ></ic-time-input>`,
202
+ name: "Custom validation",
203
+ };
204
+ /**
205
+ * The `IcChange` event is emitted by the time input every time an input field is changed.
206
+ */
207
+ export const IcChangeEmitTimePartChanges = {
208
+ render: () => html `<ic-time-input
209
+ emit-time-part-change="true"
210
+ label="What time would you like to collect your coffee?"
211
+ ></ic-time-input>
212
+ <script>
213
+ var timeInput = document.querySelector("ic-time-input");
214
+ timeInput.addEventListener("icChange", function (event) {
215
+ console.log("icChange", event.detail);
216
+ });
217
+ </script>`,
218
+ name: "IcChange with emitTimePartChange",
219
+ };
220
+ /**
221
+ * Demonstrates the `time-period` prop for 12-hour and 24-hour time selection.
222
+ */
223
+ export const TimePeriod = {
224
+ render: () => html `
225
+ <ic-time-input label="12-hour time" time-period="12"></ic-time-input>
226
+ `,
227
+ name: "Time period",
228
+ };
229
+ /**
230
+ * Demonstrates the time format HH:MM.
231
+ */
232
+ export const HHMM = {
233
+ render: () => html `<ic-time-input
234
+ label="What time would you like to collect your coffee?"
235
+ time-format="HH:MM"
236
+ ></ic-time-input>`,
237
+ name: "Time format HH:MM",
238
+ };
239
+ /**
240
+ * Setting min time allows you to restrict the earliest time that can be selected.
241
+ * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
242
+ */
243
+ export const MinTime = {
244
+ render: () => html `<ic-time-input
245
+ label="What time would you like to collect your coffee?"
246
+ min="08:00:00"
247
+ ></ic-time-input>`,
248
+ name: "Min time",
249
+ };
250
+ /**
251
+ * Setting max time allows you to restrict the latest time that can be selected.
252
+ * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
253
+ */
254
+ export const MaxTime = {
255
+ render: () => html `<ic-time-input
256
+ label="What time would you like to collect your coffee?"
257
+ max="16:00:00"
258
+ ></ic-time-input>`,
259
+ name: "Max time",
260
+ };
261
+ /**
262
+ * To disable specific times in the time input, set the `disable-times` prop.
263
+ * The `disable-times` prop accepts an array of time objects or strings.
264
+ * Each time object can have a `start` and `end` property to define a range of disabled times, or it can be a single time string to disable that specific time.
265
+ * The time can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
266
+ */
267
+ export const DisableTimes = {
268
+ render: () => html `<div>
269
+ <ic-time-input
270
+ id="time-input-default-disable-time"
271
+ label="What time would you like to collect your coffee?"
272
+ ></ic-time-input>
273
+ </div>
274
+ <script>
275
+ var timeInputDate = document.querySelector(
276
+ "#time-input-default-disable-time"
277
+ );
278
+ timeInputDate.disableTimes = [{ start: "08:00", end: "10:00" }, "13:20"];
279
+ </script>`,
280
+ name: "Disable times",
281
+ };
282
+ /**
283
+ * The time input can be cleared by setting the the value attribute to one of the following:
284
+ * - empty string
285
+ * - `null`
286
+ * - `undefined`
287
+ */
288
+ export const WithClearingValue = {
289
+ render: () => html `<ic-time-input
290
+ id="time-input-clear-value"
291
+ label="When would you like to collect your coffee?"
292
+ value="08:30:00"
293
+ ></ic-time-input>
294
+ <br />
295
+ <ic-button id="update">Update time</ic-button>
296
+ <ic-button id="null-btn">set null</ic-button>
297
+ <ic-button id="empty-btn">set empty string</ic-button>
298
+ <ic-button id="undef-btn">set undefined</ic-button>
299
+ <script>
300
+ var input = document.querySelector("#time-input-clear-value");
301
+ var btn = document.querySelector("#update");
302
+ btn.addEventListener("click", () => {
303
+ input.value = "08:30:00";
304
+ });
305
+ var btn2 = document.querySelector("#null-btn");
306
+ btn2.addEventListener("click", () => {
307
+ input.value = null;
308
+ });
309
+ var btn3 = document.querySelector("#empty-btn");
310
+ btn3.addEventListener("click", () => {
311
+ input.value = "";
312
+ });
313
+ var btn4 = document.querySelector("#undef-btn");
314
+ btn4.addEventListener("click", () => {
315
+ input.value = undefined;
316
+ });
317
+ </script>`,
318
+ name: "With clearing value",
319
+ };
320
+ //# sourceMappingURL=ic-time-input.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-time-input.stories.js","sourceRoot":"","sources":["../../../src/components/ic-time-input/ic-time-input.stories.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { html } from \"lit-html\";\nimport readme from \"./readme.md\";\n\nexport default {\n title: \"Web Components/Time Input\",\n component: \"ic-time-input\",\n parameters: {\n componentAPI: {\n data: readme,\n },\n },\n};\n\n/**\n * Use the time input component to manually type in a time in different formats.\n *\n * The input `label` is the only required attribute for time input.\n *\n * Click the 'Component API' tab to view all the available attributes, events and slots for time input.\n *\n * To use the time input component, import `@ukic/canary-web-components` into your application.\n *\n * Times can be added by manually typing into the input or using the up and down arrow keys.\n *\n * To move between hour, minute and second using the keyboard, provide the required values based on the placeholders or use `:`.\n *\n * By default, the helper text displays the time format.\n */\nexport const Default = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n ></ic-time-input>`,\n name: \"Default\",\n};\n\n/**\n * Retrieving the time input value via `icChange` returns the time as a Date object.\n *\n * The event returns the Date object once hour, minute and second have been entered.\n */\nexport const IcChangeEvent = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n ></ic-time-input>\n <script>\n var timeInput = document.querySelector(\"ic-time-input\");\n timeInput.addEventListener(\"icChange\", function (event) {\n console.log(event.detail.value, event.detail.utcValue);\n });\n </script>`,\n name: \"icChange event\",\n};\n\n/**\n * To set a value to the time input, pass the time value in the relevant time format.\n */\nexport const WithValue = {\n render: () => html`<ic-time-input\n id=\"time-input-default-time-with-value\"\n label=\"What time would you like to collect your coffee?\"\n time-format=\"HH:MM:SS\"\n value=\"13:45:00\"\n ></ic-time-input>`,\n name: \"With value\",\n};\n\n/**\n * The time input also accepts a number of different time formats within the value attribute:\n * - [Date object](#date-object)\n * - [Zulu time](#zulu-time)\n */\nexport const DateObject = {\n render: () => html`<ic-time-input\n id=\"time-input-default-time-date\"\n label=\"What time would you like to collect your coffee?\"\n ></ic-time-input>\n <script>\n var timeInputDate = document.querySelector(\n \"#time-input-default-time-date\"\n );\n timeInputDate.value = new Date(\"2025-07-14T15:30:45\");\n </script>`,\n name: \"Date object\",\n};\n\nexport const ZuluTime = {\n render: () => html`<div>\n <ic-time-input\n id=\"time-input-default-zulu-time\"\n label=\"What time would you like to collect your coffee?\"\n ></ic-time-input>\n </div>\n <script>\n var timeInputDate = document.querySelector(\n \"#time-input-default-zulu-time\"\n );\n timeInputDate.value = \"15:30:45Z\";\n </script>`,\n name: \"Zulu time\",\n};\n\n/**\n * To set the time input as a required field, set the `required` attribute to `true`. This will add an asterisk at the end of the time input label.\n */\nexport const Required = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n required=\"true\"\n ></ic-time-input>`,\n name: \"Required\",\n};\n\n/**\n * To hide the label, set the `hide-label` attribute to `true`. The required `label` will still be read out by screen readers.\n */\nexport const HideLabel = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n hide-label=\"true\"\n ></ic-time-input>`,\n name: \"Hide label\",\n};\n\n/**\n * Set the `disabled` attribute to `true` to prevent interaction with the time input.\n */\nexport const Disabled = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n disabled=\"true\"\n ></ic-time-input>`,\n};\n\n/**\n * The time input is available in three different sizes:\n * - `small`\n * - `medium` (default)\n * - `large`\n */\nexport const Sizes = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n size=\"small\"\n ></ic-time-input>\n <br />\n <ic-time-input\n label=\"What time would you like to collect your coffee?\"\n ></ic-time-input>\n <br />\n <ic-time-input\n label=\"What time would you like to collect your coffee?\"\n size=\"large\"\n ></ic-time-input>`,\n name: \"Sizes\",\n};\n\n/**\n * Use the helper text to add additional detail for the time input. Display custom content using the `helper-text` slot.\n */\nexport const CustomHelperText = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n helper-text=\"We will have your order ready for you at this time\"\n ></ic-time-input>\n <br />\n <ic-time-input label=\"What time would you like to collect your coffee?\"\n ><ic-typography variant=\"caption\" slot=\"helper-text\">\n <span>\n For special requests,\n <ic-link href=\"#\">contact us</ic-link> before choosing a time\n </span>\n </ic-typography></ic-time-input\n >`,\n name: \"Custom helper text\",\n};\n\nexport const HideHelperText = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n helper-text=\"You cannot see me, but you can hear me\"\n hide-helper-text=\"true\"\n ></ic-time-input>`,\n name: \"Hide helper text\",\n};\n\n/**\n * Validation on time input is set via `validation-status` and `validation-text`.\n *\n * `validation-status` will set the style of the validation message. `validation-status` accepts:\n * - `error`\n * - `warning`\n * - `success`\n *\n * `validation-status` is required for the `validation-text` to appear.\n */\nexport const Validation = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n validation-status=\"error\"\n validation-text=\"There is a coffee shortage forecast for that time. Please choose a different time.\"\n ></ic-time-input>\n <br />\n <ic-time-input\n label=\"What time would you like to collect your coffee?\"\n validation-status=\"warning\"\n validation-text=\"Please be aware that there may be a coffee shortage at that time.\"\n ></ic-time-input>\n <br />\n <ic-time-input\n label=\"What time would you like to collect your coffee?\"\n validation-status=\"success\"\n validation-text=\"Your coffee will be available for you to collect at this time.\"\n ></ic-time-input>`,\n name: \"Custom validation\",\n};\n\n/**\n * The `IcChange` event is emitted by the time input every time an input field is changed.\n */\nexport const IcChangeEmitTimePartChanges = {\n render: () => html`<ic-time-input\n emit-time-part-change=\"true\"\n label=\"What time would you like to collect your coffee?\"\n ></ic-time-input>\n <script>\n var timeInput = document.querySelector(\"ic-time-input\");\n timeInput.addEventListener(\"icChange\", function (event) {\n console.log(\"icChange\", event.detail);\n });\n </script>`,\n name: \"IcChange with emitTimePartChange\",\n};\n\n/**\n * Demonstrates the `time-period` prop for 12-hour and 24-hour time selection.\n */\nexport const TimePeriod = {\n render: () => html`\n <ic-time-input label=\"12-hour time\" time-period=\"12\"></ic-time-input>\n `,\n name: \"Time period\",\n};\n\n/**\n * Demonstrates the time format HH:MM.\n */\nexport const HHMM = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n time-format=\"HH:MM\"\n ></ic-time-input>`,\n name: \"Time format HH:MM\",\n};\n\n/**\n * Setting min time allows you to restrict the earliest time that can be selected.\n * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const MinTime = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n min=\"08:00:00\"\n ></ic-time-input>`,\n name: \"Min time\",\n};\n\n/**\n * Setting max time allows you to restrict the latest time that can be selected.\n * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const MaxTime = {\n render: () => html`<ic-time-input\n label=\"What time would you like to collect your coffee?\"\n max=\"16:00:00\"\n ></ic-time-input>`,\n name: \"Max time\",\n};\n\n/**\n * To disable specific times in the time input, set the `disable-times` prop.\n * The `disable-times` prop accepts an array of time objects or strings.\n * Each time object can have a `start` and `end` property to define a range of disabled times, or it can be a single time string to disable that specific time.\n * The time can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const DisableTimes = {\n render: () => html`<div>\n <ic-time-input\n id=\"time-input-default-disable-time\"\n label=\"What time would you like to collect your coffee?\"\n ></ic-time-input>\n </div>\n <script>\n var timeInputDate = document.querySelector(\n \"#time-input-default-disable-time\"\n );\n timeInputDate.disableTimes = [{ start: \"08:00\", end: \"10:00\" }, \"13:20\"];\n </script>`,\n name: \"Disable times\",\n};\n\n/**\n * The time input can be cleared by setting the the value attribute to one of the following:\n * - empty string\n * - `null`\n * - `undefined`\n */\nexport const WithClearingValue = {\n render: () => html`<ic-time-input\n id=\"time-input-clear-value\"\n label=\"When would you like to collect your coffee?\"\n value=\"08:30:00\"\n ></ic-time-input>\n <br />\n <ic-button id=\"update\">Update time</ic-button>\n <ic-button id=\"null-btn\">set null</ic-button>\n <ic-button id=\"empty-btn\">set empty string</ic-button>\n <ic-button id=\"undef-btn\">set undefined</ic-button>\n <script>\n var input = document.querySelector(\"#time-input-clear-value\");\n var btn = document.querySelector(\"#update\");\n btn.addEventListener(\"click\", () => {\n input.value = \"08:30:00\";\n });\n var btn2 = document.querySelector(\"#null-btn\");\n btn2.addEventListener(\"click\", () => {\n input.value = null;\n });\n var btn3 = document.querySelector(\"#empty-btn\");\n btn3.addEventListener(\"click\", () => {\n input.value = \"\";\n });\n var btn4 = document.querySelector(\"#undef-btn\");\n btn4.addEventListener(\"click\", () => {\n input.value = undefined;\n });\n </script>`,\n name: \"With clearing value\",\n};\n"]}
@@ -0,0 +1,45 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { TimeInput } from "../../ic-time-input";
3
+ import { h } from "@stencil/core";
4
+ import { IcInputLabel } from "@ukic/web-components/dist/components/ic-input-label";
5
+ export const createTimeInput = (format = "HH:MM:SS") => newSpecPage({
6
+ components: [TimeInput, IcInputLabel],
7
+ template: () => (h("ic-time-input", { label: "Test label", "time-format": format })),
8
+ });
9
+ export const handleEvent = (input) => {
10
+ return {
11
+ inputType: "insertText",
12
+ target: input,
13
+ data: input.value,
14
+ };
15
+ };
16
+ export const keyboardEvent = (keyboardKey) => {
17
+ return {
18
+ key: `${keyboardKey}`,
19
+ preventDefault: () => null,
20
+ };
21
+ };
22
+ export const createTimeInputEnv = async (format) => {
23
+ const page = await createTimeInput(format);
24
+ const component = page.root;
25
+ const componentInstance = page.rootInstance;
26
+ const hourInput = component.shadowRoot.querySelector(".hour-input");
27
+ const minuteInput = component.shadowRoot.querySelector(".minute-input");
28
+ const secondInput = component.shadowRoot.querySelector(".second-input");
29
+ const mockSelect = jest.fn();
30
+ if (hourInput)
31
+ hourInput.select = mockSelect;
32
+ if (minuteInput)
33
+ minuteInput.select = mockSelect;
34
+ if (secondInput)
35
+ secondInput.select = mockSelect;
36
+ return {
37
+ page,
38
+ component,
39
+ componentInstance,
40
+ hourInput,
41
+ minuteInput,
42
+ secondInput,
43
+ };
44
+ };
45
+ //# sourceMappingURL=ic-time-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-time-input.js","sourceRoot":"","sources":["../../../../../src/components/ic-time-input/test/helpers/ic-time-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAsBnF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,GAAG,UAAU,EAAqB,EAAE,CACxE,WAAW,CAAC;IACV,UAAU,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;IACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,CACd,qBAAe,KAAK,EAAC,YAAY,iBAAc,MAAM,GAAkB,CACxE;CACF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAa,EAAE;IAChE,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAiB,EAAE;IAClE,OAAO;QACL,GAAG,EAAE,GAAG,WAAW,EAAE;QACrB,cAAc,EAAE,GAAS,EAAE,CAAC,IAAI;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAe,EACS,EAAE;IAC1B,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAA8B,CAAC;IACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC;IAE5C,MAAM,SAAS,GACb,SAAS,CAAC,UAAW,CAAC,aAAa,CAAmB,aAAa,CAAE,CAAC;IACxE,MAAM,WAAW,GACf,SAAS,CAAC,UAAW,CAAC,aAAa,CAAmB,eAAe,CAAE,CAAC;IAC1E,MAAM,WAAW,GACf,SAAS,CAAC,UAAW,CAAC,aAAa,CAAmB,eAAe,CAAE,CAAC;IAE1E,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAE7B,IAAI,SAAS;QAAE,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC;IAC7C,IAAI,WAAW;QAAE,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC;IACjD,IAAI,WAAW;QAAE,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC;IAEjD,OAAO;QACL,IAAI;QACJ,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { SpecPage, newSpecPage } from \"@stencil/core/testing\";\nimport { TimeInput } from \"../../ic-time-input\";\nimport { h } from \"@stencil/core\";\nimport { IcInputLabel } from \"@ukic/web-components/dist/components/ic-input-label\";\n\ninterface EventType {\n inputType: string;\n target: HTMLInputElement;\n data: string;\n}\n\ninterface KeyboardEvent {\n key: string;\n preventDefault: () => void;\n}\n\ninterface TimeInputType {\n page: SpecPage;\n component: HTMLIcTimeInputElement;\n componentInstance: any;\n hourInput: HTMLInputElement;\n minuteInput: HTMLInputElement;\n secondInput: HTMLInputElement;\n}\n\nexport const createTimeInput = (format = \"HH:MM:SS\"): Promise<SpecPage> =>\n newSpecPage({\n components: [TimeInput, IcInputLabel],\n template: () => (\n <ic-time-input label=\"Test label\" time-format={format}></ic-time-input>\n ),\n });\n\nexport const handleEvent = (input: HTMLInputElement): EventType => {\n return {\n inputType: \"insertText\",\n target: input,\n data: input.value,\n };\n};\n\nexport const keyboardEvent = (keyboardKey: string): KeyboardEvent => {\n return {\n key: `${keyboardKey}`,\n preventDefault: (): null => null,\n };\n};\n\nexport const createTimeInputEnv = async (\n format?: string\n): Promise<TimeInputType> => {\n const page = await createTimeInput(format);\n\n const component = page.root as HTMLIcTimeInputElement;\n const componentInstance = page.rootInstance;\n\n const hourInput =\n component.shadowRoot!.querySelector<HTMLInputElement>(\".hour-input\")!;\n const minuteInput =\n component.shadowRoot!.querySelector<HTMLInputElement>(\".minute-input\")!;\n const secondInput =\n component.shadowRoot!.querySelector<HTMLInputElement>(\".second-input\")!;\n\n const mockSelect = jest.fn();\n\n if (hourInput) hourInput.select = mockSelect;\n if (minuteInput) minuteInput.select = mockSelect;\n if (secondInput) secondInput.select = mockSelect;\n\n return {\n page,\n component,\n componentInstance,\n hourInput,\n minuteInput,\n secondInput,\n };\n};\n"]}