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

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 (388) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-6f4b406b.js → helpers-f81fed28.js} +37 -1
  3. package/dist/cjs/helpers-f81fed28.js.map +1 -0
  4. package/dist/cjs/ic-calendar_2.cjs.entry.js +2 -2
  5. package/dist/cjs/ic-calendar_2.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-checkbox_3.cjs.entry.js +19 -7
  8. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-data-table.cjs.entry.js +13 -8
  13. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-footer.cjs.entry.js +9 -5
  16. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +2 -2
  19. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-menu.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-pagination_4.cjs.entry.js +8 -4
  27. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
  31. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-table-of-contents.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-time-input.cjs.entry.js +401 -99
  36. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-time-selector.cjs.entry.js +842 -0
  38. package/dist/cjs/ic-time-selector.cjs.entry.js.map +1 -0
  39. package/dist/cjs/ic-toast.cjs.entry.js +14 -6
  40. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  41. package/dist/cjs/{ic-toggle-button.cjs.entry.js → ic-toggle-button_2.cjs.entry.js} +274 -1
  42. package/dist/cjs/ic-toggle-button_2.cjs.entry.js.map +1 -0
  43. package/dist/cjs/ic-tree-item.cjs.entry.js +3 -3
  44. package/dist/cjs/ic-tree-view.cjs.entry.js +4 -4
  45. package/dist/cjs/index-d337cd8a.js +8 -8
  46. package/dist/cjs/loader.cjs.js +1 -1
  47. package/dist/collection/collection-manifest.json +1 -0
  48. package/dist/collection/components/ic-calendar/ic-calendar.css +13 -7
  49. package/dist/collection/components/ic-calendar/ic-calendar.stories.js +13 -0
  50. package/dist/collection/components/ic-calendar/ic-calendar.stories.js.map +1 -1
  51. package/dist/collection/components/ic-data-table/ic-data-table.js +13 -8
  52. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  53. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +78 -6
  54. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  55. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +28 -0
  56. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js.map +1 -1
  57. package/dist/collection/components/ic-time-input/ic-time-input.css +21 -3
  58. package/dist/collection/components/ic-time-input/ic-time-input.js +434 -106
  59. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  60. package/dist/collection/components/ic-time-input/ic-time-input.stories.js +58 -9
  61. package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
  62. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js +2 -0
  63. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js.map +1 -1
  64. package/dist/collection/components/ic-time-selector/ic-time-selector.css +293 -0
  65. package/dist/collection/components/ic-time-selector/ic-time-selector.js +1075 -0
  66. package/dist/collection/components/ic-time-selector/ic-time-selector.js.map +1 -0
  67. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js +166 -0
  68. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js.map +1 -0
  69. package/dist/collection/components/ic-time-selector/ic-time-selector.types.js +2 -0
  70. package/dist/collection/components/ic-time-selector/ic-time-selector.types.js.map +1 -0
  71. package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
  72. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
  73. package/dist/collection/utils/helpers.js +35 -0
  74. package/dist/collection/utils/helpers.js.map +1 -1
  75. package/dist/collection/utils/types.js.map +1 -1
  76. package/dist/components/helpers2.js +36 -1
  77. package/dist/components/helpers2.js.map +1 -1
  78. package/dist/components/ic-calendar2.js +1 -1
  79. package/dist/components/ic-calendar2.js.map +1 -1
  80. package/dist/components/ic-checkbox2.js.map +1 -1
  81. package/dist/components/ic-data-list.js.map +1 -1
  82. package/dist/components/ic-data-row.js.map +1 -1
  83. package/dist/components/ic-data-table.js +12 -7
  84. package/dist/components/ic-data-table.js.map +1 -1
  85. package/dist/components/ic-footer.js +10 -5
  86. package/dist/components/ic-footer.js.map +1 -1
  87. package/dist/components/ic-hero.js.map +1 -1
  88. package/dist/components/ic-input-component-container2.js +1 -1
  89. package/dist/components/ic-input-component-container2.js.map +1 -1
  90. package/dist/components/ic-input-validation2.js +1 -1
  91. package/dist/components/ic-input-validation2.js.map +1 -1
  92. package/dist/components/ic-menu2.js +1 -1
  93. package/dist/components/ic-menu2.js.map +1 -1
  94. package/dist/components/ic-navigation-group.js +1 -1
  95. package/dist/components/ic-navigation-group.js.map +1 -1
  96. package/dist/components/ic-navigation-item.js +1 -1
  97. package/dist/components/ic-navigation-item.js.map +1 -1
  98. package/dist/components/ic-pagination-bar2.js +21 -6
  99. package/dist/components/ic-pagination-bar2.js.map +1 -1
  100. package/dist/components/ic-pagination2.js +9 -4
  101. package/dist/components/ic-pagination2.js.map +1 -1
  102. package/dist/components/ic-radio-group.js +1 -1
  103. package/dist/components/ic-radio-group.js.map +1 -1
  104. package/dist/components/ic-radio-option.js +10 -7
  105. package/dist/components/ic-radio-option.js.map +1 -1
  106. package/dist/components/ic-search-bar.js +1 -1
  107. package/dist/components/ic-search-bar.js.map +1 -1
  108. package/dist/components/ic-time-input.js +431 -112
  109. package/dist/components/ic-time-input.js.map +1 -1
  110. package/dist/components/ic-time-selector.d.ts +11 -0
  111. package/dist/components/ic-time-selector.js +898 -0
  112. package/dist/components/ic-time-selector.js.map +1 -0
  113. package/dist/components/ic-toast.js +15 -6
  114. package/dist/components/ic-toast.js.map +1 -1
  115. package/dist/components/ic-toggle-button-group.js +1 -299
  116. package/dist/components/ic-toggle-button-group.js.map +1 -1
  117. package/dist/{esm/ic-toggle-button-group.entry.js → components/ic-toggle-button-group2.js} +70 -13
  118. package/dist/components/ic-toggle-button-group2.js.map +1 -0
  119. package/dist/components/ic-toggle-button.js +1 -228
  120. package/dist/components/ic-toggle-button.js.map +1 -1
  121. package/dist/{esm/ic-toggle-button.entry.js → components/ic-toggle-button2.js} +65 -10
  122. package/dist/components/ic-toggle-button2.js.map +1 -0
  123. package/dist/components/ic-tree-item.js +2 -2
  124. package/dist/components/ic-tree-view.js +4 -4
  125. package/dist/core/core.css +28 -6
  126. package/dist/core/core.esm.js +1 -1
  127. package/dist/core/core.esm.js.map +1 -1
  128. package/dist/core/{p-b80b08ae.entry.js → p-08f24329.entry.js} +2 -2
  129. package/dist/core/{p-615d474e.entry.js → p-14b8bf37.entry.js} +2 -2
  130. package/dist/core/{p-81f12581.entry.js → p-169ad948.entry.js} +2 -2
  131. package/dist/core/p-169ad948.entry.js.map +1 -0
  132. package/dist/core/{p-847cbb16.entry.js → p-1d166343.entry.js} +2 -2
  133. package/dist/core/{p-b4bfaf8f.entry.js → p-201b41c7.entry.js} +2 -2
  134. package/dist/core/{p-24bac55f.entry.js → p-33509a89.entry.js} +2 -2
  135. package/dist/core/{p-e1920777.entry.js → p-3389625c.entry.js} +2 -2
  136. package/dist/core/{p-5a1cfb3c.entry.js → p-344752cb.entry.js} +2 -2
  137. package/dist/core/{p-6c238418.entry.js → p-348d7080.entry.js} +2 -2
  138. package/dist/core/{p-3ef2e98d.entry.js → p-39cdf5db.entry.js} +2 -2
  139. package/dist/core/{p-ffbf493f.entry.js → p-496b314f.entry.js} +2 -2
  140. package/dist/core/p-496b314f.entry.js.map +1 -0
  141. package/dist/core/{p-bd9a76d8.entry.js → p-508b6da3.entry.js} +2 -2
  142. package/dist/core/p-551a0fc1.entry.js +2 -0
  143. package/dist/core/p-551a0fc1.entry.js.map +1 -0
  144. package/dist/core/{p-f5cea10d.entry.js → p-5e6687a8.entry.js} +2 -2
  145. package/dist/core/{p-72171192.entry.js → p-60f4fe3a.entry.js} +2 -2
  146. package/dist/core/p-61c92598.entry.js +2 -0
  147. package/dist/core/p-61c92598.entry.js.map +1 -0
  148. package/dist/core/{p-e00e67ff.entry.js → p-6323da7a.entry.js} +2 -2
  149. package/dist/core/p-691dd972.entry.js +2 -0
  150. package/dist/core/p-691dd972.entry.js.map +1 -0
  151. package/dist/core/{p-c6c87e58.entry.js → p-6dfe0922.entry.js} +2 -2
  152. package/dist/core/p-71cc5909.entry.js +2 -0
  153. package/dist/core/p-71cc5909.entry.js.map +1 -0
  154. package/dist/core/p-770e92cd.entry.js +2 -0
  155. package/dist/core/p-770e92cd.entry.js.map +1 -0
  156. package/dist/core/{p-7cf6b428.entry.js → p-79ead0e7.entry.js} +2 -2
  157. package/dist/core/p-7b4b45cf.entry.js +2 -0
  158. package/dist/core/p-7b4b45cf.entry.js.map +1 -0
  159. package/dist/core/{p-afedcfdb.entry.js → p-7efdbab8.entry.js} +2 -2
  160. package/dist/core/p-802a4bd3.entry.js +2 -0
  161. package/dist/core/p-802a4bd3.entry.js.map +1 -0
  162. package/dist/core/p-829b34f9.js +2 -0
  163. package/dist/core/p-829b34f9.js.map +1 -0
  164. package/dist/core/{p-9a9605c3.entry.js → p-879c180d.entry.js} +2 -2
  165. package/dist/core/{p-3891ce53.entry.js → p-8830011c.entry.js} +2 -2
  166. package/dist/core/{p-444cd8d3.entry.js → p-8ab37b4d.entry.js} +2 -2
  167. package/dist/core/{p-c87cc0d1.entry.js → p-939025af.entry.js} +2 -2
  168. package/dist/core/p-939b168a.entry.js +2 -0
  169. package/dist/core/p-939b168a.entry.js.map +1 -0
  170. package/dist/core/{p-5a4344cb.entry.js → p-9dea5764.entry.js} +2 -2
  171. package/dist/core/{p-af821831.entry.js → p-a88e61b2.entry.js} +2 -2
  172. package/dist/core/p-a88e61b2.entry.js.map +1 -0
  173. package/dist/core/{p-90611726.entry.js → p-a8a92e54.entry.js} +2 -2
  174. package/dist/core/{p-31f3fb15.entry.js → p-a94a7b71.entry.js} +2 -2
  175. package/dist/core/p-ad551a0c.entry.js +2 -0
  176. package/dist/core/p-ad551a0c.entry.js.map +1 -0
  177. package/dist/core/{p-ba75ed34.entry.js → p-b434bd7c.entry.js} +2 -2
  178. package/dist/core/p-b4a2f6fa.entry.js.map +1 -1
  179. package/dist/core/{p-2188b483.entry.js → p-c0a7eed7.entry.js} +2 -2
  180. package/dist/core/p-c0b227d2.entry.js +2 -0
  181. package/dist/core/p-c0b227d2.entry.js.map +1 -0
  182. package/dist/core/{p-2646a629.entry.js → p-c32f043e.entry.js} +2 -2
  183. package/dist/core/{p-7a0f62c2.entry.js → p-c4b2774d.entry.js} +2 -2
  184. package/dist/core/p-c9525aac.entry.js +2 -0
  185. package/dist/core/p-c9525aac.entry.js.map +1 -0
  186. package/dist/core/{p-7026afad.entry.js → p-ca05573a.entry.js} +2 -2
  187. package/dist/core/{p-8c580d88.entry.js → p-d0607a70.entry.js} +2 -2
  188. package/dist/core/{p-15c05eb8.entry.js → p-d528d856.entry.js} +2 -2
  189. package/dist/core/{p-0043b019.entry.js → p-da1c2883.entry.js} +2 -2
  190. package/dist/core/{p-ffc1cea6.entry.js → p-e2e556ec.entry.js} +2 -2
  191. package/dist/core/{p-e4ef4263.js → p-e519f607.js} +2 -2
  192. package/dist/core/{p-3f0bce15.entry.js → p-e5c6d01a.entry.js} +2 -2
  193. package/dist/core/{p-04a9f82f.entry.js → p-e8db8772.entry.js} +2 -2
  194. package/dist/core/{p-e4b82731.entry.js → p-ea04103e.entry.js} +2 -2
  195. package/dist/core/{p-9a95f428.entry.js → p-eaeb473e.entry.js} +2 -2
  196. package/dist/core/p-eaeb473e.entry.js.map +1 -0
  197. package/dist/core/{p-8e592393.entry.js → p-ecc7fd71.entry.js} +2 -2
  198. package/dist/core/p-efe260f0.entry.js +2 -0
  199. package/dist/core/p-efe260f0.entry.js.map +1 -0
  200. package/dist/core/{p-b6d6b26e.entry.js → p-f1b57f91.entry.js} +2 -2
  201. package/dist/core/p-f5dc04f7.entry.js +2 -0
  202. package/dist/core/p-f5dc04f7.entry.js.map +1 -0
  203. package/dist/core/p-fb07921b.entry.js +2 -0
  204. package/dist/core/p-fb07921b.entry.js.map +1 -0
  205. package/dist/core/{p-1900c7c7.entry.js → p-fd08156a.entry.js} +2 -2
  206. package/dist/core/{p-3594922d.entry.js → p-fe5b51bb.entry.js} +2 -2
  207. package/dist/core/{p-ef5b6622.entry.js → p-ff618439.entry.js} +2 -2
  208. package/dist/esm/core.js +1 -1
  209. package/dist/esm/{helpers-5419eb6c.js → helpers-063369f4.js} +2 -2
  210. package/dist/esm/{helpers-5419eb6c.js.map → helpers-063369f4.js.map} +1 -1
  211. package/dist/esm/{helpers-9f228880.js → helpers-a08b3f32.js} +37 -2
  212. package/dist/esm/helpers-a08b3f32.js.map +1 -0
  213. package/dist/esm/ic-accordion-group.entry.js +1 -1
  214. package/dist/esm/ic-accordion.entry.js +1 -1
  215. package/dist/esm/ic-action-chip.entry.js +1 -1
  216. package/dist/esm/ic-alert.entry.js +1 -1
  217. package/dist/esm/ic-back-to-top.entry.js +1 -1
  218. package/dist/esm/ic-badge.entry.js +1 -1
  219. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  220. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  221. package/dist/esm/ic-button_3.entry.js +1 -1
  222. package/dist/esm/ic-calendar_2.entry.js +2 -2
  223. package/dist/esm/ic-calendar_2.entry.js.map +1 -1
  224. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  225. package/dist/esm/ic-card-vertical.entry.js +1 -1
  226. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  227. package/dist/esm/ic-checkbox_3.entry.js +20 -8
  228. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  229. package/dist/esm/ic-chip.entry.js +1 -1
  230. package/dist/esm/ic-data-list.entry.js.map +1 -1
  231. package/dist/esm/ic-data-row.entry.js +1 -1
  232. package/dist/esm/ic-data-row.entry.js.map +1 -1
  233. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  234. package/dist/esm/ic-data-table.entry.js +13 -8
  235. package/dist/esm/ic-data-table.entry.js.map +1 -1
  236. package/dist/esm/ic-date-picker.entry.js +1 -1
  237. package/dist/esm/ic-dialog.entry.js +1 -1
  238. package/dist/esm/ic-divider.entry.js +1 -1
  239. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  240. package/dist/esm/ic-footer-link.entry.js +1 -1
  241. package/dist/esm/ic-footer.entry.js +10 -6
  242. package/dist/esm/ic-footer.entry.js.map +1 -1
  243. package/dist/esm/ic-hero.entry.js +1 -1
  244. package/dist/esm/ic-hero.entry.js.map +1 -1
  245. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  246. package/dist/esm/ic-input-component-container_4.entry.js +3 -3
  247. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  248. package/dist/esm/ic-link.entry.js +1 -1
  249. package/dist/esm/ic-menu-group.entry.js +1 -1
  250. package/dist/esm/ic-menu-item.entry.js +1 -1
  251. package/dist/esm/ic-menu.entry.js +2 -2
  252. package/dist/esm/ic-menu.entry.js.map +1 -1
  253. package/dist/esm/ic-navigation-button.entry.js +1 -1
  254. package/dist/esm/ic-navigation-group.entry.js +2 -2
  255. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  256. package/dist/esm/ic-navigation-item.entry.js +2 -2
  257. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  258. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  259. package/dist/esm/ic-page-header.entry.js +1 -1
  260. package/dist/esm/ic-pagination_4.entry.js +9 -5
  261. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  262. package/dist/esm/ic-popover-menu.entry.js +1 -1
  263. package/dist/esm/ic-radio-group.entry.js +2 -2
  264. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  265. package/dist/esm/ic-radio-option.entry.js +10 -7
  266. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  267. package/dist/esm/ic-search-bar.entry.js +2 -2
  268. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  269. package/dist/esm/ic-side-navigation.entry.js +1 -1
  270. package/dist/esm/ic-status-tag.entry.js +1 -1
  271. package/dist/esm/ic-step.entry.js +1 -1
  272. package/dist/esm/ic-stepper.entry.js +1 -1
  273. package/dist/esm/ic-switch.entry.js +1 -1
  274. package/dist/esm/ic-tab-group.entry.js +1 -1
  275. package/dist/esm/ic-tab.entry.js +1 -1
  276. package/dist/esm/ic-table-of-contents.entry.js +1 -1
  277. package/dist/esm/ic-theme.entry.js +1 -1
  278. package/dist/esm/ic-time-input.entry.js +401 -99
  279. package/dist/esm/ic-time-input.entry.js.map +1 -1
  280. package/dist/esm/ic-time-selector.entry.js +838 -0
  281. package/dist/esm/ic-time-selector.entry.js.map +1 -0
  282. package/dist/esm/ic-toast.entry.js +15 -7
  283. package/dist/esm/ic-toast.entry.js.map +1 -1
  284. package/dist/esm/ic-toggle-button_2.entry.js +449 -0
  285. package/dist/esm/ic-toggle-button_2.entry.js.map +1 -0
  286. package/dist/esm/ic-top-navigation.entry.js +1 -1
  287. package/dist/esm/ic-tree-item.entry.js +3 -3
  288. package/dist/esm/ic-tree-view.entry.js +4 -4
  289. package/dist/esm/ic-typography.entry.js +1 -1
  290. package/dist/esm/index-a7a720e7.js +8 -8
  291. package/dist/esm/loader.js +1 -1
  292. package/dist/types/components/ic-calendar/ic-calendar.stories.d.ts +20 -14
  293. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +12 -0
  294. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.stories.d.ts +12 -0
  295. package/dist/types/components/ic-time-input/ic-time-input.d.ts +26 -6
  296. package/dist/types/components/ic-time-input/ic-time-input.stories.d.ts +31 -7
  297. package/dist/types/components/ic-time-input/test/helpers/ic-time-input.d.ts +1 -0
  298. package/dist/types/components/ic-time-selector/ic-time-selector.d.ts +88 -0
  299. package/dist/types/components/ic-time-selector/ic-time-selector.stories.d.ts +99 -0
  300. package/dist/types/components/ic-time-selector/ic-time-selector.types.d.ts +1 -0
  301. package/dist/types/components.d.ts +163 -11
  302. package/dist/types/utils/helpers.d.ts +14 -0
  303. package/dist/types/utils/types.d.ts +4 -1
  304. package/hydrate/index.js +1410 -156
  305. package/hydrate/index.mjs +1410 -156
  306. package/package.json +30 -30
  307. package/dist/cjs/helpers-6f4b406b.js.map +0 -1
  308. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +0 -267
  309. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +0 -1
  310. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +0 -1
  311. package/dist/core/p-1a976789.entry.js +0 -2
  312. package/dist/core/p-1a976789.entry.js.map +0 -1
  313. package/dist/core/p-3ba2b455.entry.js +0 -2
  314. package/dist/core/p-3ba2b455.entry.js.map +0 -1
  315. package/dist/core/p-41def410.entry.js +0 -2
  316. package/dist/core/p-41def410.entry.js.map +0 -1
  317. package/dist/core/p-4b188516.entry.js +0 -2
  318. package/dist/core/p-4b188516.entry.js.map +0 -1
  319. package/dist/core/p-5b32aaf3.entry.js +0 -2
  320. package/dist/core/p-5b32aaf3.entry.js.map +0 -1
  321. package/dist/core/p-7332320d.entry.js +0 -2
  322. package/dist/core/p-7332320d.entry.js.map +0 -1
  323. package/dist/core/p-81f12581.entry.js.map +0 -1
  324. package/dist/core/p-9044539c.entry.js +0 -2
  325. package/dist/core/p-9044539c.entry.js.map +0 -1
  326. package/dist/core/p-9a95f428.entry.js.map +0 -1
  327. package/dist/core/p-9f76eed6.entry.js +0 -2
  328. package/dist/core/p-9f76eed6.entry.js.map +0 -1
  329. package/dist/core/p-a1448064.entry.js +0 -2
  330. package/dist/core/p-a1448064.entry.js.map +0 -1
  331. package/dist/core/p-a237af88.entry.js +0 -2
  332. package/dist/core/p-a237af88.entry.js.map +0 -1
  333. package/dist/core/p-af821831.entry.js.map +0 -1
  334. package/dist/core/p-ba21f477.entry.js +0 -2
  335. package/dist/core/p-ba21f477.entry.js.map +0 -1
  336. package/dist/core/p-c3eddb99.entry.js +0 -2
  337. package/dist/core/p-c3eddb99.entry.js.map +0 -1
  338. package/dist/core/p-c5d65718.entry.js +0 -2
  339. package/dist/core/p-c5d65718.entry.js.map +0 -1
  340. package/dist/core/p-d144ca59.entry.js +0 -2
  341. package/dist/core/p-d144ca59.entry.js.map +0 -1
  342. package/dist/core/p-f48ce5f6.js +0 -2
  343. package/dist/core/p-f48ce5f6.js.map +0 -1
  344. package/dist/core/p-ffbf493f.entry.js.map +0 -1
  345. package/dist/esm/helpers-9f228880.js.map +0 -1
  346. package/dist/esm/ic-toggle-button-group.entry.js.map +0 -1
  347. package/dist/esm/ic-toggle-button.entry.js.map +0 -1
  348. /package/dist/core/{p-b80b08ae.entry.js.map → p-08f24329.entry.js.map} +0 -0
  349. /package/dist/core/{p-615d474e.entry.js.map → p-14b8bf37.entry.js.map} +0 -0
  350. /package/dist/core/{p-847cbb16.entry.js.map → p-1d166343.entry.js.map} +0 -0
  351. /package/dist/core/{p-b4bfaf8f.entry.js.map → p-201b41c7.entry.js.map} +0 -0
  352. /package/dist/core/{p-24bac55f.entry.js.map → p-33509a89.entry.js.map} +0 -0
  353. /package/dist/core/{p-e1920777.entry.js.map → p-3389625c.entry.js.map} +0 -0
  354. /package/dist/core/{p-5a1cfb3c.entry.js.map → p-344752cb.entry.js.map} +0 -0
  355. /package/dist/core/{p-6c238418.entry.js.map → p-348d7080.entry.js.map} +0 -0
  356. /package/dist/core/{p-3ef2e98d.entry.js.map → p-39cdf5db.entry.js.map} +0 -0
  357. /package/dist/core/{p-bd9a76d8.entry.js.map → p-508b6da3.entry.js.map} +0 -0
  358. /package/dist/core/{p-f5cea10d.entry.js.map → p-5e6687a8.entry.js.map} +0 -0
  359. /package/dist/core/{p-72171192.entry.js.map → p-60f4fe3a.entry.js.map} +0 -0
  360. /package/dist/core/{p-e00e67ff.entry.js.map → p-6323da7a.entry.js.map} +0 -0
  361. /package/dist/core/{p-c6c87e58.entry.js.map → p-6dfe0922.entry.js.map} +0 -0
  362. /package/dist/core/{p-7cf6b428.entry.js.map → p-79ead0e7.entry.js.map} +0 -0
  363. /package/dist/core/{p-afedcfdb.entry.js.map → p-7efdbab8.entry.js.map} +0 -0
  364. /package/dist/core/{p-9a9605c3.entry.js.map → p-879c180d.entry.js.map} +0 -0
  365. /package/dist/core/{p-3891ce53.entry.js.map → p-8830011c.entry.js.map} +0 -0
  366. /package/dist/core/{p-444cd8d3.entry.js.map → p-8ab37b4d.entry.js.map} +0 -0
  367. /package/dist/core/{p-c87cc0d1.entry.js.map → p-939025af.entry.js.map} +0 -0
  368. /package/dist/core/{p-5a4344cb.entry.js.map → p-9dea5764.entry.js.map} +0 -0
  369. /package/dist/core/{p-90611726.entry.js.map → p-a8a92e54.entry.js.map} +0 -0
  370. /package/dist/core/{p-31f3fb15.entry.js.map → p-a94a7b71.entry.js.map} +0 -0
  371. /package/dist/core/{p-ba75ed34.entry.js.map → p-b434bd7c.entry.js.map} +0 -0
  372. /package/dist/core/{p-2188b483.entry.js.map → p-c0a7eed7.entry.js.map} +0 -0
  373. /package/dist/core/{p-2646a629.entry.js.map → p-c32f043e.entry.js.map} +0 -0
  374. /package/dist/core/{p-7a0f62c2.entry.js.map → p-c4b2774d.entry.js.map} +0 -0
  375. /package/dist/core/{p-7026afad.entry.js.map → p-ca05573a.entry.js.map} +0 -0
  376. /package/dist/core/{p-8c580d88.entry.js.map → p-d0607a70.entry.js.map} +0 -0
  377. /package/dist/core/{p-15c05eb8.entry.js.map → p-d528d856.entry.js.map} +0 -0
  378. /package/dist/core/{p-0043b019.entry.js.map → p-da1c2883.entry.js.map} +0 -0
  379. /package/dist/core/{p-ffc1cea6.entry.js.map → p-e2e556ec.entry.js.map} +0 -0
  380. /package/dist/core/{p-e4ef4263.js.map → p-e519f607.js.map} +0 -0
  381. /package/dist/core/{p-3f0bce15.entry.js.map → p-e5c6d01a.entry.js.map} +0 -0
  382. /package/dist/core/{p-04a9f82f.entry.js.map → p-e8db8772.entry.js.map} +0 -0
  383. /package/dist/core/{p-e4b82731.entry.js.map → p-ea04103e.entry.js.map} +0 -0
  384. /package/dist/core/{p-8e592393.entry.js.map → p-ecc7fd71.entry.js.map} +0 -0
  385. /package/dist/core/{p-b6d6b26e.entry.js.map → p-f1b57f91.entry.js.map} +0 -0
  386. /package/dist/core/{p-1900c7c7.entry.js.map → p-fd08156a.entry.js.map} +0 -0
  387. /package/dist/core/{p-3594922d.entry.js.map → p-fe5b51bb.entry.js.map} +0 -0
  388. /package/dist/core/{p-ef5b6622.entry.js.map → p-ff618439.entry.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable react/jsx-no-bind */
2
2
  import { h, Host, } from "@stencil/core";
3
3
  import { IcInformationStatus, } from "../../utils/types";
4
- import { isEmptyString, isNumeric, addFormResetListener, getInputDescribedByText, onComponentRequiredPropUndefined, removeDisabledFalse, removeFormResetListener, renderHiddenInput, } from "../../utils/helpers";
4
+ import { isEmptyString, isNumeric, addFormResetListener, getInputDescribedByText, onComponentRequiredPropUndefined, removeDisabledFalse, removeFormResetListener, renderHiddenInput, parseTimeHelper, } from "../../utils/helpers";
5
5
  import Clear from "../../assets/clear-icon.svg";
6
6
  import Clock from "../../assets/clock.svg";
7
7
  let inputIds = 0;
@@ -11,6 +11,7 @@ let inputIds = 0;
11
11
  export class TimeInput {
12
12
  constructor() {
13
13
  this.DEFAULT_TIME_FORMAT = "HH:MM:SS";
14
+ this.TOGGLE_BUTTON_SELECTOR = "ic-toggle-button";
14
15
  this.ARIA_INVALID = "aria-invalid";
15
16
  this.ARIA_LABEL = "aria-label";
16
17
  this.ARIA_LABELLED_BY = "aria-labelledby";
@@ -21,6 +22,7 @@ export class TimeInput {
21
22
  this.isValidHour = true;
22
23
  this.isValidMinute = true;
23
24
  this.isValidSecond = true;
25
+ this.isValidMillisecond = true;
24
26
  this.isValidTime = true;
25
27
  this.isTimeSetFromKeyboardEvent = false;
26
28
  this.previousSelectedTime = null;
@@ -29,12 +31,20 @@ export class TimeInput {
29
31
  this.clearInput = false;
30
32
  this.maxTime = null;
31
33
  this.minTime = null;
34
+ this.previousHour = "";
35
+ this.previousMinute = "";
36
+ this.previousSecond = "";
37
+ this.previousMillisecond = "";
38
+ this.previousPeriod = "AM";
32
39
  this.clockFocused = false;
33
40
  this.clearButtonFocused = false;
34
41
  this.removeLabelledBy = false;
35
42
  this.hour = "";
36
43
  this.minute = "";
37
44
  this.second = "";
45
+ this.millisecond = "";
46
+ this.period = "AM";
47
+ this.isSSSFormat = () => this.timeFormat === "HH:MM:SS.SSS";
38
48
  /**
39
49
  * If `true`, the disabled state will be set.
40
50
  */
@@ -44,7 +54,7 @@ export class TimeInput {
44
54
  */
45
55
  this.disableTimes = [];
46
56
  /**
47
- * If `true`, every individual input field completed will emit an icChange event.
57
+ * If `true`, every individual input field completed will emit an icTimeChange event.
48
58
  */
49
59
  this.emitTimePartChange = false;
50
60
  /**
@@ -79,6 +89,10 @@ export class TimeInput {
79
89
  * If `true`, the input will require a value.
80
90
  */
81
91
  this.required = false;
92
+ /**
93
+ * If `true`, the time input will show an AM/PM toggle when in 12-hour time period.
94
+ */
95
+ this.showAmPmToggle = false;
82
96
  /**
83
97
  * If `true`, a button which clears the time input when clicked will be displayed.
84
98
  */
@@ -126,19 +140,6 @@ export class TimeInput {
126
140
  inputEl.classList.add(this.FIT_TO_VALUE);
127
141
  }
128
142
  };
129
- this.parseTime = (value) => {
130
- if (!value)
131
- return null;
132
- if (value instanceof Date)
133
- return value;
134
- const parts = value.split(":");
135
- if (parts.length >= 2) {
136
- const d = new Date();
137
- d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, 0);
138
- return d;
139
- }
140
- return null;
141
- };
142
143
  this.isHHMMFormat = () => this.timeFormat === "HH:MM";
143
144
  this.isKeyboardOrEvent = (event) => {
144
145
  return (Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||
@@ -166,9 +167,22 @@ export class TimeInput {
166
167
  else {
167
168
  this.isValidSecond = true;
168
169
  }
170
+ if (this.isSSSFormat()) {
171
+ if (!isEmptyString(this.millisecond)) {
172
+ this.isValidMillisecond =
173
+ +this.millisecond >= 0 && +this.millisecond <= 999;
174
+ }
175
+ else {
176
+ this.isValidMillisecond = true;
177
+ }
178
+ }
179
+ else {
180
+ this.isValidMillisecond = true;
181
+ }
169
182
  }
170
183
  else {
171
184
  this.isValidSecond = true;
185
+ this.isValidMillisecond = true;
172
186
  }
173
187
  };
174
188
  this.setInputValue = (input, clear = false) => {
@@ -182,6 +196,9 @@ export class TimeInput {
182
196
  else if (input === this.secondInputEl && !this.isHHMMFormat()) {
183
197
  this.second = newValue;
184
198
  }
199
+ else if (this.isSSSFormat() && input === this.millisecondInputEl) {
200
+ this.millisecond = newValue;
201
+ }
185
202
  this.setValidationMessage();
186
203
  };
187
204
  this.setPreventInput = (input, isPrevented) => {
@@ -194,22 +211,50 @@ export class TimeInput {
194
211
  else if (input === this.secondInputEl) {
195
212
  this.preventSecondInput = isPrevented;
196
213
  }
214
+ else if (this.isSSSFormat() && input === this.millisecondInputEl) {
215
+ this.preventMillisecondInput = isPrevented;
216
+ }
197
217
  };
198
218
  this.setValidationMessage = () => {
199
- this.maxTime = this.parseTime(this.max);
200
- this.minTime = this.parseTime(this.min);
219
+ this.maxTime = parseTimeHelper(this.max).date;
220
+ this.minTime = parseTimeHelper(this.min).date;
201
221
  this.setTimeValidity();
202
222
  let outOfBoundsMsg = "";
203
223
  let isDisabledTime = false;
204
224
  if (!isEmptyString(this.hour) &&
205
225
  !isEmptyString(this.minute) &&
206
- (this.isHHMMFormat() || !isEmptyString(this.second))) {
207
- this.selectedTime = this.convertToTime(this.hour, this.minute, this.isHHMMFormat() ? "00" : this.second);
208
- this.isValidTime =
209
- !!this.selectedTime &&
210
- this.selectedTime.getHours() == +this.hour &&
211
- this.selectedTime.getMinutes() == +this.minute &&
212
- (this.isHHMMFormat() || this.selectedTime.getSeconds() == +this.second);
226
+ (this.isHHMMFormat() || !isEmptyString(this.second)) &&
227
+ (!this.isSSSFormat() || !isEmptyString(this.millisecond))) {
228
+ this.selectedTime = this.convertToTime(this.hour, this.minute, this.isHHMMFormat() ? "00" : this.second, this.isSSSFormat() ? this.millisecond : "000");
229
+ const inputHour = +this.hour;
230
+ const selectedHour = this.selectedTime
231
+ ? this.selectedTime.getHours()
232
+ : null;
233
+ if (this.timePeriod === "12" &&
234
+ this.showAmPmToggle &&
235
+ selectedHour !== null) {
236
+ let selectedHour12 = selectedHour % 12;
237
+ if (selectedHour12 === 0)
238
+ selectedHour12 = 12;
239
+ this.isValidTime =
240
+ !!this.selectedTime &&
241
+ selectedHour12 == inputHour &&
242
+ this.selectedTime.getMinutes() == +this.minute &&
243
+ (this.isHHMMFormat() ||
244
+ this.selectedTime.getSeconds() == +this.second) &&
245
+ (!this.isSSSFormat() ||
246
+ this.selectedTime.getMilliseconds() == +this.millisecond);
247
+ }
248
+ else {
249
+ this.isValidTime =
250
+ !!this.selectedTime &&
251
+ this.selectedTime.getHours() == inputHour &&
252
+ this.selectedTime.getMinutes() == +this.minute &&
253
+ (this.isHHMMFormat() ||
254
+ this.selectedTime.getSeconds() == +this.second) &&
255
+ (!this.isSSSFormat() ||
256
+ this.selectedTime.getMilliseconds() == +this.millisecond);
257
+ }
213
258
  if (this.selectedTime &&
214
259
  Array.isArray(this.disableTimes) &&
215
260
  this.disableTimes.length > 0) {
@@ -218,18 +263,25 @@ export class TimeInput {
218
263
  t !== null &&
219
264
  "start" in t &&
220
265
  "end" in t) {
221
- const start = this.parseTime(t.start);
222
- const end = this.parseTime(t.end);
266
+ const start = parseTimeHelper(t.start).date;
267
+ const end = parseTimeHelper(t.end).date;
223
268
  if (start && end) {
224
269
  return this.selectedTime >= start && this.selectedTime <= end;
225
270
  }
226
271
  return false;
227
272
  }
228
- const parsed = this.parseTime(t);
229
- return (parsed &&
230
- parsed.getHours() === this.selectedTime.getHours() &&
231
- parsed.getMinutes() === this.selectedTime.getMinutes() &&
232
- parsed.getSeconds() === this.selectedTime.getSeconds());
273
+ const parsed = parseTimeHelper(t).parts;
274
+ if (!parsed)
275
+ return false;
276
+ let selectedHour = this.selectedTime.getHours();
277
+ let parsedHour = parsed.hour;
278
+ if (this.timePeriod === "12" && this.showAmPmToggle) {
279
+ selectedHour = this.convertTo24Hour(selectedHour);
280
+ parsedHour = this.convertTo24Hour(parsedHour);
281
+ }
282
+ return (parsedHour === selectedHour &&
283
+ parsed.minute === this.selectedTime.getMinutes() &&
284
+ parsed.second === this.selectedTime.getSeconds());
233
285
  });
234
286
  if (isDisabledTime) {
235
287
  this.isValidTime = false;
@@ -259,6 +311,7 @@ export class TimeInput {
259
311
  if (!(this.isValidHour &&
260
312
  this.isValidMinute &&
261
313
  this.isValidSecond &&
314
+ this.isValidMillisecond &&
262
315
  this.isValidTime)) {
263
316
  this.invalidTimeText = outOfBoundsMsg || this.invalidTimeMessage;
264
317
  }
@@ -270,12 +323,33 @@ export class TimeInput {
270
323
  const hh = time.getHours().toString().padStart(2, "0");
271
324
  const mm = time.getMinutes().toString().padStart(2, "0");
272
325
  const ss = time.getSeconds().toString().padStart(2, "0");
326
+ const sss = time.getMilliseconds().toString().padStart(3, "0");
327
+ if (this.isSSSFormat()) {
328
+ return `${hh}:${mm}:${ss}.${sss}`;
329
+ }
273
330
  return this.isHHMMFormat() ? `${hh}:${mm}` : `${hh}:${mm}:${ss}`;
274
331
  };
275
332
  this.handleInput = (event) => {
276
333
  const inputEvent = event;
277
334
  const input = event.target;
278
- if (input !== this.hourInputEl) {
335
+ if (input === this.millisecondInputEl && this.isSSSFormat()) {
336
+ this.setInputValue(input);
337
+ this.setPreventInput(input, false);
338
+ this.setFitToValueStyling(input);
339
+ if (input.value.length === 3) {
340
+ this.moveToNextInput(input);
341
+ this.setPreventInput(input, true);
342
+ }
343
+ else {
344
+ this.setPreventInput(input, false);
345
+ }
346
+ if (input.value.length === 0) {
347
+ this.setInputValue(input, true);
348
+ this.setValidationMessage();
349
+ }
350
+ this.notifyScreenReader(input);
351
+ }
352
+ else if (input !== this.hourInputEl) {
279
353
  if (inputEvent.inputType !== "deleteContentBackward" &&
280
354
  !this.preventAutoFormatting) {
281
355
  if (input.value.length === 1 &&
@@ -308,6 +382,12 @@ export class TimeInput {
308
382
  if (input.value.length !== 2) {
309
383
  this.setPreventInput(input, false);
310
384
  }
385
+ this.setFitToValueStyling(input);
386
+ if (input.value.length === 0) {
387
+ this.setInputValue(input, true);
388
+ this.setValidationMessage();
389
+ }
390
+ this.notifyScreenReader(input);
311
391
  }
312
392
  else {
313
393
  if (input.value.length === 2) {
@@ -321,18 +401,25 @@ export class TimeInput {
321
401
  this.setInputValue(input, true);
322
402
  this.setPreventInput(input, false);
323
403
  }
404
+ this.setFitToValueStyling(input);
405
+ if (input.value.length === 0) {
406
+ this.setInputValue(input, true);
407
+ this.setValidationMessage();
408
+ }
409
+ this.notifyScreenReader(input);
324
410
  }
325
- this.setFitToValueStyling(input);
326
- if (input.value.length === 0) {
327
- this.setInputValue(input, true);
328
- this.setValidationMessage();
329
- }
330
- this.notifyScreenReader(input);
331
411
  };
332
412
  this.handleKeyDown = (event, isInputPrevented) => {
333
413
  var _a;
414
+ const navKeys = /arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/i;
334
415
  const input = event.target;
335
416
  const eventKey = (_a = event.key) === null || _a === void 0 ? void 0 : _a.toLowerCase();
417
+ if (!/-?\d*\.?\d+(e[-+]?\d+)?|[:]|[.]/i.test(eventKey) &&
418
+ !navKeys.test(eventKey) &&
419
+ !((event.ctrlKey || event.metaKey) &&
420
+ (eventKey === "v" || eventKey === "c"))) {
421
+ event.preventDefault();
422
+ }
336
423
  const regex = /-?\d*\.?\d+(e[-+]?\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;
337
424
  if (!regex.test(eventKey) &&
338
425
  !((event.ctrlKey || event.metaKey) &&
@@ -372,7 +459,18 @@ export class TimeInput {
372
459
  };
373
460
  this.handleBlur = (event) => {
374
461
  const input = event.target;
375
- if (input) {
462
+ if (input === this.millisecondInputEl && this.isSSSFormat()) {
463
+ if (input.value.length === 1) {
464
+ input.value = `00${input.value}`;
465
+ this.setInputValue(input);
466
+ }
467
+ else if (input.value.length === 2) {
468
+ input.value = `0${input.value}`;
469
+ this.setInputValue(input);
470
+ }
471
+ this.setFitToValueStyling(input);
472
+ }
473
+ else if (input) {
376
474
  this.autocompleteInput(input);
377
475
  }
378
476
  };
@@ -428,20 +526,80 @@ export class TimeInput {
428
526
  };
429
527
  this.setValueAndEmitChange = (value, force = false) => {
430
528
  if (this.value !== value || force) {
431
- this.emitIcChange(value);
529
+ this.emitIcTimeChange(value);
432
530
  this.value = value;
433
531
  }
434
532
  };
435
- this.emitIcChange = (t) => {
436
- this.selectedTime = t;
437
- this.icChange.emit({
438
- value: t,
439
- timeObject: {
440
- hour: this.hour === "" ? null : this.hour,
441
- minute: this.minute === "" ? null : this.minute,
442
- second: this.second === "" ? null : this.second,
443
- },
444
- });
533
+ this.convertTo24Hour = (hour) => {
534
+ let date24hours = hour;
535
+ if (this.period === "PM" && hour < 12)
536
+ date24hours = hour + 12;
537
+ if (this.period === "AM" && hour === 12)
538
+ date24hours = 0;
539
+ return date24hours;
540
+ };
541
+ this.emitIcTimeChange = (t) => {
542
+ const hour = parseInt(this.hour);
543
+ const minute = parseInt(this.minute);
544
+ const second = parseInt(this.second);
545
+ const millisecond = parseInt(this.millisecond);
546
+ const period = this.period;
547
+ let allSelected = false;
548
+ if (this.isSSSFormat()) {
549
+ allSelected =
550
+ this.hour !== "" &&
551
+ this.minute !== "" &&
552
+ this.second !== "" &&
553
+ this.millisecond !== "";
554
+ }
555
+ else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {
556
+ allSelected =
557
+ this.hour !== "" && this.minute !== "" && this.second !== "";
558
+ }
559
+ else if (this.timeFormat === "HH:MM") {
560
+ allSelected = this.hour !== "" && this.minute !== "";
561
+ }
562
+ let time = t;
563
+ let date24hours = hour;
564
+ if (hour != null &&
565
+ period &&
566
+ this.timePeriod === "12" &&
567
+ this.showAmPmToggle) {
568
+ date24hours = this.convertTo24Hour(hour);
569
+ time = new Date();
570
+ time.setHours(date24hours !== null && date24hours !== void 0 ? date24hours : 0);
571
+ time.setMinutes(minute !== null && minute !== void 0 ? minute : 0);
572
+ time.setSeconds(second !== null && second !== void 0 ? second : 0);
573
+ this.isSSSFormat() && time.setMilliseconds(millisecond !== null && millisecond !== void 0 ? millisecond : 0);
574
+ }
575
+ this.selectedTime = time;
576
+ const allTimePartsEmpty = this.hour === "" &&
577
+ this.minute === "" &&
578
+ this.second === "" &&
579
+ this.millisecond === "";
580
+ const onlyPeriodChanged = allTimePartsEmpty &&
581
+ this.period !== this.previousPeriod &&
582
+ this.previousHour === "" &&
583
+ this.previousMinute === "" &&
584
+ this.previousSecond === "" &&
585
+ this.previousMillisecond === "";
586
+ if (!onlyPeriodChanged) {
587
+ this.icTimeChange.emit({
588
+ value: allSelected ? time : null,
589
+ timeObject: {
590
+ hour: this.hour === "" ? null : this.hour,
591
+ minute: this.minute === "" ? null : this.minute,
592
+ second: this.second === "" ? null : this.second,
593
+ millisecond: this.millisecond === "" ? null : this.millisecond,
594
+ period: this.period === "" ? null : this.period,
595
+ },
596
+ });
597
+ }
598
+ this.previousHour = this.hour;
599
+ this.previousMinute = this.minute;
600
+ this.previousSecond = this.second;
601
+ this.previousMillisecond = this.millisecond;
602
+ this.previousPeriod = this.period;
445
603
  };
446
604
  this.setTime = (time) => {
447
605
  if (time === null || time === "" || time === undefined) {
@@ -451,6 +609,8 @@ export class TimeInput {
451
609
  this.minute = "";
452
610
  if (this.second)
453
611
  this.second = "";
612
+ if (this.millisecond)
613
+ this.millisecond = "";
454
614
  this.inputsInOrder.forEach((input) => {
455
615
  input.classList.remove(this.FIT_TO_VALUE);
456
616
  this.setPreventInput(input, false);
@@ -466,22 +626,26 @@ export class TimeInput {
466
626
  this.second = zuluMatch[3];
467
627
  }
468
628
  else {
469
- const parts = time.split(":");
629
+ const parts = time.split(/[:.]/);
470
630
  this.hour = parts[0] || "";
471
631
  this.minute = parts[1] || "";
472
632
  this.second = parts[2] || "";
633
+ this.millisecond = parts[3] || "";
473
634
  }
474
635
  }
475
636
  else if (time instanceof Date) {
476
637
  this.hour = time.getHours().toString().padStart(2, "0");
477
638
  this.minute = time.getMinutes().toString().padStart(2, "0");
478
639
  this.second = time.getSeconds().toString().padStart(2, "0");
640
+ if (this.isSSSFormat()) {
641
+ this.millisecond = time.getMilliseconds().toString().padStart(3, "0");
642
+ }
479
643
  }
480
644
  }
481
645
  this.setValidationMessage();
482
646
  };
483
- this.setAriaInvalid = (validHour, validMinute, validSecond) => {
484
- var _a, _b, _c;
647
+ this.setAriaInvalid = (validHour, validMinute, validSecond, validMillisecond) => {
648
+ var _a, _b, _c, _d;
485
649
  if (this.inputsInOrder.length) {
486
650
  this.inputsInOrder.forEach((input) => {
487
651
  input.removeAttribute(this.ARIA_INVALID);
@@ -495,7 +659,10 @@ export class TimeInput {
495
659
  if (!validSecond) {
496
660
  (_c = this.secondInputEl) === null || _c === void 0 ? void 0 : _c.setAttribute(this.ARIA_INVALID, "true");
497
661
  }
498
- if (!(validHour && validMinute && validSecond)) {
662
+ if (!validMillisecond) {
663
+ (_d = this.millisecondInputEl) === null || _d === void 0 ? void 0 : _d.setAttribute(this.ARIA_INVALID, "true");
664
+ }
665
+ if (!(validHour && validMinute && validSecond && validMillisecond)) {
499
666
  this.inputsInOrder.forEach((input) => {
500
667
  input.setAttribute(this.ARIA_INVALID, "true");
501
668
  });
@@ -503,6 +670,7 @@ export class TimeInput {
503
670
  }
504
671
  };
505
672
  this.handleClear = () => {
673
+ var _a;
506
674
  this.clearInput = true;
507
675
  if (this.hourInputEl) {
508
676
  this.hourInputEl.value = "";
@@ -513,9 +681,25 @@ export class TimeInput {
513
681
  if (!this.isHHMMFormat() && this.secondInputEl) {
514
682
  this.secondInputEl.value = "";
515
683
  }
684
+ if (this.isSSSFormat() && this.millisecondInputEl) {
685
+ this.millisecondInputEl.value = "";
686
+ }
516
687
  this.hour = "";
517
688
  this.minute = "";
518
689
  this.second = "";
690
+ this.millisecond = "";
691
+ this.period = "AM";
692
+ if (this.showAmPmToggle) {
693
+ (_a = this.periodToggleEl) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((btn) => {
694
+ const toggleBtn = btn;
695
+ if (toggleBtn.label === "AM") {
696
+ toggleBtn.checked = true;
697
+ }
698
+ else {
699
+ toggleBtn.checked = false;
700
+ }
701
+ });
702
+ }
519
703
  this.handleTimeChange(true);
520
704
  this.inputsInOrder.forEach((input) => {
521
705
  input.classList.remove(this.FIT_TO_VALUE);
@@ -531,26 +715,31 @@ export class TimeInput {
531
715
  };
532
716
  this.notifyScreenReaderSelectedTime = () => {
533
717
  if (this.selectedTime && this.selectedTimeInfoEl) {
718
+ let hours = this.selectedTime.getHours();
719
+ if (this.timePeriod === "12" && this.showAmPmToggle) {
720
+ hours = this.convertTo24Hour(hours);
721
+ }
722
+ const hoursStr = hours.toString().padStart(2, "0");
723
+ const minutesStr = this.selectedTime
724
+ .getMinutes()
725
+ .toString()
726
+ .padStart(2, "0");
727
+ const secondsStr = this.selectedTime
728
+ .getSeconds()
729
+ .toString()
730
+ .padStart(2, "0");
731
+ const msStr = this.selectedTime
732
+ .getMilliseconds()
733
+ .toString()
734
+ .padStart(3, "0");
534
735
  if (this.isHHMMFormat()) {
535
- this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime
536
- .getHours()
537
- .toString()
538
- .padStart(2, "0")}:${this.selectedTime
539
- .getMinutes()
540
- .toString()
541
- .padStart(2, "0")}`;
736
+ this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}`;
737
+ }
738
+ else if (!this.isSSSFormat()) {
739
+ this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}`;
542
740
  }
543
741
  else {
544
- this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime
545
- .getHours()
546
- .toString()
547
- .padStart(2, "0")}:${this.selectedTime
548
- .getMinutes()
549
- .toString()
550
- .padStart(2, "0")}:${this.selectedTime
551
- .getSeconds()
552
- .toString()
553
- .padStart(2, "0")}`;
742
+ this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}.${msStr}`;
554
743
  }
555
744
  }
556
745
  };
@@ -568,7 +757,7 @@ export class TimeInput {
568
757
  };
569
758
  this.handleHostFocus = () => {
570
759
  var _a, _b;
571
- if ((_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) === null || _b === void 0 ? void 0 : _b.id.match(/(hour|minute|second)-input$/)) {
760
+ if ((_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) === null || _b === void 0 ? void 0 : _b.id.match(/(hour|minute|second|millisecond)-input$/)) {
572
761
  this.removeLabelledBy = false;
573
762
  }
574
763
  else {
@@ -617,12 +806,17 @@ export class TimeInput {
617
806
  this.setInputValue(input);
618
807
  }
619
808
  };
620
- this.convertToTime = (hour, minute, second) => {
809
+ this.convertToTime = (hour, minute, second, millisecond = null) => {
621
810
  if (!isEmptyString(hour) &&
622
811
  !isEmptyString(minute) &&
623
- (this.isHHMMFormat() || !isEmptyString(second))) {
812
+ (this.isHHMMFormat() || !isEmptyString(second)) &&
813
+ (!this.isSSSFormat() ||
814
+ (millisecond !== null && !isEmptyString(millisecond)))) {
624
815
  const d = new Date();
625
816
  d.setHours(+hour, +minute, this.isHHMMFormat() ? 0 : +second, 0);
817
+ if (this.isSSSFormat() && millisecond !== null) {
818
+ d.setMilliseconds(+millisecond);
819
+ }
626
820
  return d;
627
821
  }
628
822
  else {
@@ -667,17 +861,22 @@ export class TimeInput {
667
861
  (_d = this.inputCompContainerEl) === null || _d === void 0 ? void 0 : _d.setAttribute(this.ARIA_LABELLED_BY, labelledBy);
668
862
  };
669
863
  this.getInputsInOrder = () => {
670
- const timeParts = this.timeFormat.split(":");
864
+ const timeParts = this.timeFormat.split(/[:.]/);
671
865
  return timeParts.map((part) => {
672
- switch (part.substring(0, 1)) {
673
- case "H":
866
+ switch (part) {
867
+ case "HH":
674
868
  return (h("input", { class: "hour-input", id: "hour-input", ref: (el) => (this.hourInputEl = el), "aria-label": "hour", placeholder: "HH", disabled: this.disabled, "aria-required": `${this.required}`, inputmode: "number", pattern: "[0-9]*", onPaste: this.handlePaste, onKeyDown: (event) => this.handleKeyDown(event, this.preventHourInput) }));
675
- case "M":
869
+ case "MM":
676
870
  return (h("input", { id: "minute-input", class: "minute-input", ref: (el) => (this.minuteInputEl = el), "aria-label": "minute", placeholder: "MM", disabled: this.disabled, "aria-required": `${this.required}`, inputmode: "number", pattern: "[0-9]*", onPaste: this.handlePaste, onKeyDown: (event) => this.handleKeyDown(event, this.preventMinuteInput) }));
677
- case "S":
871
+ case "SS":
678
872
  if (!this.isHHMMFormat()) {
679
873
  return (h("input", { id: "second-input", class: "second-input", ref: (el) => (this.secondInputEl = el), "aria-label": "second", placeholder: "SS", disabled: this.disabled, "aria-required": `${this.required}`, inputmode: "number", pattern: "[0-9]*", onPaste: this.handlePaste, onKeyDown: (event) => this.handleKeyDown(event, this.preventSecondInput) }));
680
874
  }
875
+ break;
876
+ case "SSS":
877
+ if (this.isSSSFormat()) {
878
+ return (h("input", { id: "millisecond-input", class: "millisecond-input", ref: (el) => (this.millisecondInputEl = el), "aria-label": "millisecond", placeholder: "SSS", disabled: this.disabled, "aria-required": `${this.required}`, inputmode: "number", pattern: "[0-9]*", onPaste: this.handlePaste, onKeyDown: (event) => this.handleKeyDown(event, this.preventMillisecondInput) }));
879
+ }
681
880
  return null;
682
881
  default:
683
882
  return null;
@@ -685,6 +884,9 @@ export class TimeInput {
685
884
  });
686
885
  };
687
886
  this.getDescOfInputsOrder = () => {
887
+ if (this.isSSSFormat()) {
888
+ return "hour, minute, second, and millisecond";
889
+ }
688
890
  return "hour, minute, and second";
689
891
  };
690
892
  this.getScreenReaderInfo = (validationStatus) => {
@@ -724,7 +926,7 @@ export class TimeInput {
724
926
  this.removeLabelledBy = false;
725
927
  return;
726
928
  }
727
- if (relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.id.match(/(minute|second)-input$/)) {
929
+ if (relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.id.match(/(minute|second|millisecond)-input$/)) {
728
930
  this.removeLabelledBy = false;
729
931
  return;
730
932
  }
@@ -742,6 +944,18 @@ export class TimeInput {
742
944
  return value;
743
945
  }
744
946
  }
947
+ else if (this.isSSSFormat()) {
948
+ if (/^\d{2}:\d{2}:\d{2}\.\d{1,3}$/.test(value)) {
949
+ return value;
950
+ }
951
+ if (/^\d{2}:\d{2}:\d{2}\.\d{1,3}Z$/.test(value)) {
952
+ return value.replace("Z", "");
953
+ }
954
+ const isoMatch = value.match(/T(\d{2}:\d{2}:\d{2}\.\d{1,3})/);
955
+ if (isoMatch) {
956
+ return isoMatch[1];
957
+ }
958
+ }
745
959
  else {
746
960
  if (/^\d{2}:\d{2}:\d{2}$/.test(value)) {
747
961
  return value;
@@ -758,16 +972,78 @@ export class TimeInput {
758
972
  };
759
973
  this.setPastedValueAndValidation = (isValidTime, pastedValue, event) => {
760
974
  if (isValidTime) {
761
- const timeParts = isValidTime.split(":");
975
+ const timeParts = isValidTime.split(/[:.]/);
762
976
  this.inputsInOrder.forEach((input, index) => {
977
+ var _a, _b, _c, _d;
763
978
  input.classList.add(this.FIT_TO_VALUE);
764
- const timeValue = timeParts[index] || "";
765
- input.value = timeValue.slice(0, 2);
979
+ let timeValue = timeParts[index] || "";
980
+ if (input === this.millisecondInputEl && this.isSSSFormat()) {
981
+ timeValue = timeValue.slice(0, 3);
982
+ }
983
+ else {
984
+ timeValue = timeValue.slice(0, 2);
985
+ }
986
+ if (input === this.hourInputEl) {
987
+ let activeToggle;
988
+ if (this.timePeriod === "12" && this.showAmPmToggle) {
989
+ if (parseInt(timeValue) > 12) {
990
+ timeValue = (parseInt(timeValue) - 12)
991
+ .toString()
992
+ .padStart(2, "0");
993
+ if (parseInt(timeValue) > 12) {
994
+ return;
995
+ }
996
+ else {
997
+ this.period = "PM";
998
+ (_a = this.periodToggleEl) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((btn) => {
999
+ const toggleBtn = btn;
1000
+ if (toggleBtn.label === "PM") {
1001
+ activeToggle = toggleBtn;
1002
+ }
1003
+ else {
1004
+ toggleBtn.checked = false;
1005
+ }
1006
+ });
1007
+ if (activeToggle) {
1008
+ (_b = this.periodToggleEl) === null || _b === void 0 ? void 0 : _b.setActiveToggle(activeToggle);
1009
+ activeToggle.checked = true;
1010
+ }
1011
+ this.invalidTimeText = "";
1012
+ this.validationStatus = "";
1013
+ }
1014
+ }
1015
+ else {
1016
+ if (parseInt(timeValue) === 0) {
1017
+ timeValue = "12";
1018
+ }
1019
+ this.period = "AM";
1020
+ (_c = this.periodToggleEl) === null || _c === void 0 ? void 0 : _c.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((btn) => {
1021
+ const toggleBtn = btn;
1022
+ if (toggleBtn.label === "AM") {
1023
+ activeToggle = toggleBtn;
1024
+ }
1025
+ else {
1026
+ toggleBtn.checked = false;
1027
+ }
1028
+ });
1029
+ if (activeToggle) {
1030
+ (_d = this.periodToggleEl) === null || _d === void 0 ? void 0 : _d.setActiveToggle(activeToggle);
1031
+ activeToggle.checked = true;
1032
+ }
1033
+ this.invalidTimeText = "";
1034
+ this.validationStatus = "";
1035
+ }
1036
+ }
1037
+ }
1038
+ input.value = timeValue;
766
1039
  this.setInputValue(input);
767
1040
  this.autocompleteInput(input);
768
1041
  });
769
- if (this.isHHMMFormat() && this.second !== "") {
1042
+ if (this.isHHMMFormat() &&
1043
+ this.second !== "" &&
1044
+ this.millisecond !== "") {
770
1045
  this.second = "";
1046
+ this.millisecond = "";
771
1047
  }
772
1048
  }
773
1049
  else {
@@ -782,14 +1058,22 @@ export class TimeInput {
782
1058
  }
783
1059
  }
784
1060
  };
1061
+ this.handleAMPM = (selectedOption) => {
1062
+ var _a;
1063
+ this.period = selectedOption.label;
1064
+ (_a = this.periodToggleEl) === null || _a === void 0 ? void 0 : _a.setActiveToggle(selectedOption);
1065
+ };
785
1066
  }
786
1067
  watchInputHandler() {
787
1068
  if (this.emitTimePartChange &&
788
1069
  !this.externalSetTime &&
789
1070
  !this.clearInput &&
790
- !(this.hour && this.minute && this.second) &&
1071
+ !(this.hour &&
1072
+ this.minute &&
1073
+ this.second &&
1074
+ (this.isSSSFormat() ? this.millisecond : true)) &&
791
1075
  this.selectedTime === null) {
792
- this.emitIcChange(this.selectedTime);
1076
+ this.emitIcTimeChange(this.selectedTime);
793
1077
  }
794
1078
  }
795
1079
  watchDisabledHandler() {
@@ -800,10 +1084,10 @@ export class TimeInput {
800
1084
  this.helperText = this.defaultHelperText;
801
1085
  }
802
1086
  watchMaxHandler() {
803
- this.maxTime = this.parseTime(this.max);
1087
+ this.maxTime = parseTimeHelper(this.max).date;
804
1088
  }
805
1089
  watchMinHandler() {
806
- this.minTime = this.parseTime(this.min);
1090
+ this.minTime = parseTimeHelper(this.min).date;
807
1091
  }
808
1092
  watchRequiredHandler() {
809
1093
  var _a, _b;
@@ -852,7 +1136,7 @@ export class TimeInput {
852
1136
  input.classList.add(this.FIT_TO_VALUE);
853
1137
  });
854
1138
  }
855
- this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond);
1139
+ this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond, this.isValidMillisecond);
856
1140
  if (this.value) {
857
1141
  this.notifyScreenReaderSelectedTime();
858
1142
  }
@@ -866,7 +1150,7 @@ export class TimeInput {
866
1150
  componentWillUpdate() {
867
1151
  if (!this.isTimeSetFromKeyboardEvent)
868
1152
  this.setTime(this.value);
869
- this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond);
1153
+ this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond, this.isValidMillisecond);
870
1154
  this.handleTimeChange(false);
871
1155
  this.isTimeSetFromKeyboardEvent = false;
872
1156
  }
@@ -885,12 +1169,12 @@ export class TimeInput {
885
1169
  return this.selectedTime;
886
1170
  }
887
1171
  /**
888
- * @internal Used to enable other components to invoke an IcChange event from the input.
1172
+ * @internal Used to enable other components to invoke an icTimeChange event from the input.
889
1173
  */
890
- async triggerIcChange(t) {
1174
+ async triggerIcTimeChange(t) {
891
1175
  this.externalSetTime = true;
892
1176
  this.setTime(t);
893
- this.emitIcChange(t);
1177
+ this.emitIcTimeChange(t);
894
1178
  this.externalSetTime = false;
895
1179
  }
896
1180
  render() {
@@ -907,23 +1191,39 @@ export class TimeInput {
907
1191
  !(isEmptyString(this.hour) &&
908
1192
  isEmptyString(this.minute) &&
909
1193
  isEmptyString(this.second)));
910
- return (h(Host, { key: 'b4330a85fcd6bf99ace98ba735759e0e98ebea69', class: {
1194
+ if (this.showAmPmToggle && this.timePeriod !== "12") {
1195
+ this.showAmPmToggle = false;
1196
+ }
1197
+ return (h(Host, { key: 'd005982324084fad9fdfe6392cf879e15709d2ef', class: {
911
1198
  [`ic-theme-${theme}`]: theme !== "inherit",
912
1199
  [`ic-time-input-disabled`]: disabled,
913
1200
  [`ic-time-input-${size}`]: true,
914
- }, onBlur: this.handleHostBlur, onFocus: this.handleHostFocus }, h("ic-input-container", { key: 'e61ccf4dc81c26e14bf37e388aeb60fd25b4abd7', disabled: disabled }, !(hideLabel && hideHelperText) && (h("ic-input-label", { key: '7bda8a8034ae7b80594341f6924d561abcbbab90', for: inputId, label: label, hideLabel: hideLabel, helperText: !hideHelperText ? helperText : "", disabled: disabled }, h("slot", { key: 'da6a06701686398f4a44b71e76db5d02da897631', name: "helper-text", slot: "helper-text" }))), h("span", { key: '62e88d54d2f445778e96be67949b1a82fc272955', id: this.screenReaderInfoId, class: "sr-only", "aria-hidden": "true" }, this.getScreenReaderInfo(validationStatus), hideLabel && `${label}\n`, hideHelperText && `${helperText}\n`, `${this.defaultHelperText}.`), h("span", { key: '0a80156ecc1ddf0dea39033cc78de875ab7fa532', id: this.assistiveHintId, class: "sr-only", "aria-hidden": "true" }, assistiveHint), h("span", { key: '09d36876b7dc4d8050bcb0e7d39a0b008bab4a12', id: "live-region", "aria-live": "assertive", class: "sr-only" }), h("ic-input-component-container", { key: '6bb2743ce8c211b4500d707bf0a2ce10245dc31c', id: inputId, ref: (el) => (this.inputCompContainerEl = el), disabled: disabled, validationStatus: validationStatus, size: size, role: "group", class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, h("div", { key: '02a184415c1f445340b3d4a3097b28a79cd258fe', class: "input-container" }, h("div", { key: 'a68248f5ad7a134ebe73456268b6f9cf07a35afa', class: "time-inputs" }, [
1201
+ }, onBlur: this.handleHostBlur, onFocus: this.handleHostFocus }, h("ic-input-container", { key: '6fcc48d72a92ef2a0acf3f6b109e29b24c6608db', disabled: disabled }, !(hideLabel && hideHelperText) && (h("ic-input-label", { key: '84364f527bbfeffed22d95df1ce879bb9cb55fde', for: inputId, label: label, hideLabel: hideLabel, helperText: !hideHelperText ? helperText : "", disabled: disabled }, h("slot", { key: '4a993ddc9a3923e4fbe58f4abfd1d6f51ef63494', name: "helper-text", slot: "helper-text" }))), h("span", { key: 'de2889971bef74376661a3fb0963c9bc88673e12', id: this.screenReaderInfoId, class: "sr-only", "aria-hidden": "true" }, this.getScreenReaderInfo(validationStatus), hideLabel && `${label}\n`, hideHelperText && `${helperText}\n`, `${this.defaultHelperText}.`), h("span", { key: 'b68b686d6794d6ad1247f18c867b1652066b48da', id: this.assistiveHintId, class: "sr-only", "aria-hidden": "true" }, assistiveHint), h("span", { key: '56557e76da321f937be614926cd3f41b4c9a09a8', id: "live-region", "aria-live": "assertive", class: "sr-only" }), h("div", { key: '89cbb13ffe21d66fd82a28ad6b5b295cf68c5787', class: {
1202
+ "with-am-pm-toggle": this.showAmPmToggle === true,
1203
+ } }, h("ic-input-component-container", { key: '03a61c8d72f43d68f81069327aa31b632bfee74d', id: inputId, ref: (el) => (this.inputCompContainerEl = el), disabled: disabled, validationStatus: validationStatus, size: size, role: "group", class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, h("div", { key: '0fdf9d4191272a8b53e73d6230e10750032d5279', class: "input-container" }, h("div", { key: 'c7b13f330ec67b48e817f4b87fff96ad6ad6102e', class: "time-inputs" }, [
915
1204
  this.getInputsInOrder()[0],
916
1205
  ":",
917
1206
  this.getInputsInOrder()[1],
918
1207
  !this.isHHMMFormat()
919
1208
  ? [":", this.getInputsInOrder()[2]]
920
1209
  : null,
921
- ]), h("div", { key: '095391d922701f29a7debfd2482723fe05d1fdeb', class: "action-buttons" }, showClearButton && (h("ic-button", { key: '8690a529f57705b60ecbc3122925557803197ed8', id: "clear-button", "aria-label": "Clear input", class: {
1210
+ this.isSSSFormat()
1211
+ ? [".", this.getInputsInOrder()[3]]
1212
+ : null,
1213
+ ]), h("div", { key: 'caf4926b8008875a111f6bb3aa0815cfb2e10768', class: "action-buttons" }, showClearButton && (h("ic-button", { key: '9883c16dc3d60c6ea4d9d3cc3e4a770479339879', id: "clear-button", "aria-label": "Clear input", class: {
922
1214
  ["clear-button"]: true,
923
1215
  ["hidden"]: isEmptyString(this.hour) &&
924
1216
  isEmptyString(this.minute) &&
925
1217
  isEmptyString(this.second),
926
- }, disabled: this.disabled, innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showClockButton && (h("div", { key: '83fe94cb9dc7b16f70049b36644d62f714e03c6f', class: "show-clock-button-wrapper" }, h("div", { key: '34171a16f8058ad79af9ac3bfeb9c2aea06c0c91', class: { divider: showDivider, [size]: true } }), h("ic-button", { key: '3290691bc0e95d300e526052934efbc93e806e62', id: "clock-button", "aria-label": "Display clock", "aria-haspopup": "dialog", class: "clock-button", disabled: this.disabled, innerHTML: Clock, variant: "icon-tertiary", size: size, onFocus: this.handleClockFocus, onBlur: this.handleClockBlur, theme: this.clockFocused ? "light" : "dark" })))))), h("span", { key: 'b44af8625ff62cf77e8be3e88d62bcb411bd5dc0', id: this.selectedTimeInfoId, class: "sr-only", "aria-live": "polite" }, h("span", { key: 'a68f8dac81536f4f14302d7be6151a20c7e92024', ref: (el) => (this.selectedTimeInfoEl = el), role: "status" })), h("ic-input-validation", { key: 'c152fd0a46420a430bb61f619dbbb395f1dd41cb', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidTimeText, for: inputId, ariaLiveMode: validationAriaLive }))));
1218
+ }, disabled: this.disabled, innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showClockButton && (h("div", { key: '9ace5895419381c300bbdc5c8ef2eeacad05b63b', class: "show-clock-button-wrapper" }, h("div", { key: 'dfa2a5bbf9e7bd74353d7caf3514861d545d6026', class: { divider: showDivider, [size]: true } }), h("ic-button", { key: '1c36dcf4f02a323aafeb265126e2d1334df077b2', id: "clock-button", "aria-label": "Display clock", "aria-haspopup": "dialog", class: "clock-button", disabled: this.disabled, innerHTML: Clock, variant: "icon-tertiary", size: size, onFocus: this.handleClockFocus, onBlur: this.handleClockBlur, theme: this.clockFocused ? "light" : "dark" })))))), this.showAmPmToggle && (h("ic-toggle-button-group", { key: 'c63749fddcc1b7ed3c394a17a5d1a65aa322f024', "select-type": "single", "accessible-label": "AM PM Toggle", ref: (el) => (this.periodToggleEl = el), disabled: disabled, class: "am-pm-toggle", "select-method": "auto", onIcChange: (e) => this.handleAMPM(e.detail.selectedOption), onKeyDown: (e) => {
1219
+ if (e.key === "Tab" && e.shiftKey) {
1220
+ e.preventDefault();
1221
+ if (this.inputsInOrder && this.inputsInOrder.length > 0) {
1222
+ const lastInput = this.inputsInOrder[this.inputsInOrder.length - 1];
1223
+ lastInput === null || lastInput === void 0 ? void 0 : lastInput.focus();
1224
+ }
1225
+ }
1226
+ } }, h("ic-toggle-button", { key: 'fc731674e7c26846a969768ddc77b94b14c6cca6', label: "AM", disabled: disabled, checked: true }), h("ic-toggle-button", { key: '89e0bd48a39a8e786fcac5e034358edd560f4136', label: "PM", disabled: disabled })))), h("span", { key: '52854ea1dc4a1c4e7783914ff90bf204848a2e6e', id: this.selectedTimeInfoId, class: "sr-only", "aria-live": "polite" }, h("span", { key: '065c89020778df53ae78d037ef62feb189b7fdba', ref: (el) => (this.selectedTimeInfoEl = el), role: "status" })), h("ic-input-validation", { key: 'fc2500bef0e8e077272424a46663a85509a160c3', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidTimeText, for: inputId, ariaLiveMode: validationAriaLive }))));
927
1227
  }
928
1228
  static get is() { return "ic-time-input"; }
929
1229
  static get encapsulation() { return "shadow"; }
@@ -996,7 +1296,7 @@ export class TimeInput {
996
1296
  "optional": true,
997
1297
  "docs": {
998
1298
  "tags": [],
999
- "text": "If `true`, every individual input field completed will emit an icChange event."
1299
+ "text": "If `true`, every individual input field completed will emit an icTimeChange event."
1000
1300
  },
1001
1301
  "getter": false,
1002
1302
  "setter": false,
@@ -1212,6 +1512,26 @@ export class TimeInput {
1212
1512
  "reflect": false,
1213
1513
  "defaultValue": "false"
1214
1514
  },
1515
+ "showAmPmToggle": {
1516
+ "type": "boolean",
1517
+ "mutable": true,
1518
+ "complexType": {
1519
+ "original": "boolean",
1520
+ "resolved": "boolean | undefined",
1521
+ "references": {}
1522
+ },
1523
+ "required": false,
1524
+ "optional": true,
1525
+ "docs": {
1526
+ "tags": [],
1527
+ "text": "If `true`, the time input will show an AM/PM toggle when in 12-hour time period."
1528
+ },
1529
+ "getter": false,
1530
+ "setter": false,
1531
+ "attribute": "show-am-pm-toggle",
1532
+ "reflect": false,
1533
+ "defaultValue": "false"
1534
+ },
1215
1535
  "showClearButton": {
1216
1536
  "type": "boolean",
1217
1537
  "mutable": false,
@@ -1312,7 +1632,7 @@ export class TimeInput {
1312
1632
  "mutable": false,
1313
1633
  "complexType": {
1314
1634
  "original": "IcTimeFormat",
1315
- "resolved": "\"HH:MM\" | \"HH:MM:SS\"",
1635
+ "resolved": "\"HH:MM\" | \"HH:MM:SS\" | \"HH:MM:SS.SSS\"",
1316
1636
  "references": {
1317
1637
  "IcTimeFormat": {
1318
1638
  "location": "import",
@@ -1461,7 +1781,9 @@ export class TimeInput {
1461
1781
  "removeLabelledBy": {},
1462
1782
  "hour": {},
1463
1783
  "minute": {},
1464
- "second": {}
1784
+ "second": {},
1785
+ "millisecond": {},
1786
+ "period": {}
1465
1787
  };
1466
1788
  }
1467
1789
  static get events() {
@@ -1509,8 +1831,8 @@ export class TimeInput {
1509
1831
  }
1510
1832
  }
1511
1833
  }, {
1512
- "method": "icChange",
1513
- "name": "icChange",
1834
+ "method": "icTimeChange",
1835
+ "name": "icTimeChange",
1514
1836
  "bubbles": true,
1515
1837
  "cancelable": true,
1516
1838
  "composed": true,
@@ -1519,8 +1841,8 @@ export class TimeInput {
1519
1841
  "text": "Emitted when the value has changed."
1520
1842
  },
1521
1843
  "complexType": {
1522
- "original": "{\n value: Date | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n };\n }",
1523
- "resolved": "{ value: Date | null; timeObject: { hour: string | null; minute: string | null; second: string | null; }; }",
1844
+ "original": "{\n value: Date | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n millisecond: string | null;\n period: string | null;\n };\n }",
1845
+ "resolved": "{ value: Date | null; timeObject: { hour: string | null; minute: string | null; second: string | null; millisecond: string | null; period: string | null; }; }",
1524
1846
  "references": {
1525
1847
  "Date": {
1526
1848
  "location": "global",
@@ -1576,7 +1898,7 @@ export class TimeInput {
1576
1898
  }]
1577
1899
  }
1578
1900
  },
1579
- "triggerIcChange": {
1901
+ "triggerIcTimeChange": {
1580
1902
  "complexType": {
1581
1903
  "signature": "(t: Date | null) => Promise<void>",
1582
1904
  "parameters": [{
@@ -1600,7 +1922,7 @@ export class TimeInput {
1600
1922
  "text": "",
1601
1923
  "tags": [{
1602
1924
  "name": "internal",
1603
- "text": "Used to enable other components to invoke an IcChange event from the input."
1925
+ "text": "Used to enable other components to invoke an icTimeChange event from the input."
1604
1926
  }]
1605
1927
  }
1606
1928
  }
@@ -1617,6 +1939,12 @@ export class TimeInput {
1617
1939
  }, {
1618
1940
  "propName": "second",
1619
1941
  "methodName": "watchInputHandler"
1942
+ }, {
1943
+ "propName": "millisecond",
1944
+ "methodName": "watchInputHandler"
1945
+ }, {
1946
+ "propName": "period",
1947
+ "methodName": "watchInputHandler"
1620
1948
  }, {
1621
1949
  "propName": "disabled",
1622
1950
  "methodName": "watchDisabledHandler"