@ukic/canary-web-components 3.0.0-canary.32 → 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 (307) 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 +11 -7
  8. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-data-table.cjs.entry.js +11 -8
  11. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-pagination_4.cjs.entry.js +8 -4
  14. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-table-of-contents.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-time-input.cjs.entry.js +401 -99
  17. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-time-selector.cjs.entry.js +842 -0
  19. package/dist/cjs/ic-time-selector.cjs.entry.js.map +1 -0
  20. package/dist/cjs/{ic-toggle-button.cjs.entry.js → ic-toggle-button_2.cjs.entry.js} +274 -1
  21. package/dist/cjs/ic-toggle-button_2.cjs.entry.js.map +1 -0
  22. package/dist/cjs/ic-tree-item.cjs.entry.js +3 -3
  23. package/dist/cjs/ic-tree-view.cjs.entry.js +4 -4
  24. package/dist/cjs/index-d337cd8a.js +8 -8
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/collection/collection-manifest.json +1 -0
  27. package/dist/collection/components/ic-calendar/ic-calendar.css +8 -6
  28. package/dist/collection/components/ic-calendar/ic-calendar.stories.js +13 -0
  29. package/dist/collection/components/ic-calendar/ic-calendar.stories.js.map +1 -1
  30. package/dist/collection/components/ic-data-table/ic-data-table.js +10 -7
  31. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  32. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +30 -6
  33. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  34. package/dist/collection/components/ic-time-input/ic-time-input.css +21 -3
  35. package/dist/collection/components/ic-time-input/ic-time-input.js +434 -106
  36. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  37. package/dist/collection/components/ic-time-input/ic-time-input.stories.js +58 -9
  38. package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
  39. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js +2 -0
  40. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js.map +1 -1
  41. package/dist/collection/components/ic-time-selector/ic-time-selector.css +293 -0
  42. package/dist/collection/components/ic-time-selector/ic-time-selector.js +1075 -0
  43. package/dist/collection/components/ic-time-selector/ic-time-selector.js.map +1 -0
  44. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js +166 -0
  45. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js.map +1 -0
  46. package/dist/collection/components/ic-time-selector/ic-time-selector.types.js +2 -0
  47. package/dist/collection/components/ic-time-selector/ic-time-selector.types.js.map +1 -0
  48. package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
  49. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
  50. package/dist/collection/utils/helpers.js +35 -0
  51. package/dist/collection/utils/helpers.js.map +1 -1
  52. package/dist/collection/utils/types.js.map +1 -1
  53. package/dist/components/helpers2.js +36 -1
  54. package/dist/components/helpers2.js.map +1 -1
  55. package/dist/components/ic-calendar2.js +1 -1
  56. package/dist/components/ic-calendar2.js.map +1 -1
  57. package/dist/components/ic-data-table.js +10 -7
  58. package/dist/components/ic-data-table.js.map +1 -1
  59. package/dist/components/ic-pagination-bar2.js +11 -6
  60. package/dist/components/ic-pagination-bar2.js.map +1 -1
  61. package/dist/components/ic-pagination2.js +9 -4
  62. package/dist/components/ic-pagination2.js.map +1 -1
  63. package/dist/components/ic-time-input.js +431 -112
  64. package/dist/components/ic-time-input.js.map +1 -1
  65. package/dist/components/ic-time-selector.d.ts +11 -0
  66. package/dist/components/ic-time-selector.js +898 -0
  67. package/dist/components/ic-time-selector.js.map +1 -0
  68. package/dist/components/ic-toggle-button-group.js +1 -299
  69. package/dist/components/ic-toggle-button-group.js.map +1 -1
  70. package/dist/{esm/ic-toggle-button-group.entry.js → components/ic-toggle-button-group2.js} +70 -13
  71. package/dist/components/ic-toggle-button-group2.js.map +1 -0
  72. package/dist/components/ic-toggle-button.js +1 -228
  73. package/dist/components/ic-toggle-button.js.map +1 -1
  74. package/dist/{esm/ic-toggle-button.entry.js → components/ic-toggle-button2.js} +65 -10
  75. package/dist/components/ic-toggle-button2.js.map +1 -0
  76. package/dist/components/ic-tree-item.js +2 -2
  77. package/dist/components/ic-tree-view.js +4 -4
  78. package/dist/core/core.css +28 -6
  79. package/dist/core/core.esm.js +1 -1
  80. package/dist/core/core.esm.js.map +1 -1
  81. package/dist/core/{p-b80b08ae.entry.js → p-08f24329.entry.js} +2 -2
  82. package/dist/core/{p-615d474e.entry.js → p-14b8bf37.entry.js} +2 -2
  83. package/dist/core/{p-81f12581.entry.js → p-169ad948.entry.js} +2 -2
  84. package/dist/core/{p-847cbb16.entry.js → p-1d166343.entry.js} +2 -2
  85. package/dist/core/{p-b4bfaf8f.entry.js → p-201b41c7.entry.js} +2 -2
  86. package/dist/core/{p-24bac55f.entry.js → p-33509a89.entry.js} +2 -2
  87. package/dist/core/{p-e1920777.entry.js → p-3389625c.entry.js} +2 -2
  88. package/dist/core/{p-5a1cfb3c.entry.js → p-344752cb.entry.js} +2 -2
  89. package/dist/core/{p-6c238418.entry.js → p-348d7080.entry.js} +2 -2
  90. package/dist/core/{p-3ef2e98d.entry.js → p-39cdf5db.entry.js} +2 -2
  91. package/dist/core/{p-fd20470e.entry.js → p-496b314f.entry.js} +2 -2
  92. package/dist/core/{p-bd9a76d8.entry.js → p-508b6da3.entry.js} +2 -2
  93. package/dist/core/p-551a0fc1.entry.js +2 -0
  94. package/dist/core/p-551a0fc1.entry.js.map +1 -0
  95. package/dist/core/{p-f5cea10d.entry.js → p-5e6687a8.entry.js} +2 -2
  96. package/dist/core/{p-72171192.entry.js → p-60f4fe3a.entry.js} +2 -2
  97. package/dist/core/p-61c92598.entry.js +2 -0
  98. package/dist/core/p-61c92598.entry.js.map +1 -0
  99. package/dist/core/{p-e00e67ff.entry.js → p-6323da7a.entry.js} +2 -2
  100. package/dist/core/p-691dd972.entry.js +2 -0
  101. package/dist/core/p-691dd972.entry.js.map +1 -0
  102. package/dist/core/{p-c6c87e58.entry.js → p-6dfe0922.entry.js} +2 -2
  103. package/dist/core/p-71cc5909.entry.js +2 -0
  104. package/dist/core/p-71cc5909.entry.js.map +1 -0
  105. package/dist/core/{p-fd7f3b58.entry.js → p-770e92cd.entry.js} +2 -2
  106. package/dist/core/{p-7cf6b428.entry.js → p-79ead0e7.entry.js} +2 -2
  107. package/dist/core/{p-285892ef.entry.js → p-7b4b45cf.entry.js} +2 -2
  108. package/dist/core/{p-afedcfdb.entry.js → p-7efdbab8.entry.js} +2 -2
  109. package/dist/core/{p-96177a74.entry.js → p-802a4bd3.entry.js} +2 -2
  110. package/dist/core/p-829b34f9.js +2 -0
  111. package/dist/core/p-829b34f9.js.map +1 -0
  112. package/dist/core/{p-9a9605c3.entry.js → p-879c180d.entry.js} +2 -2
  113. package/dist/core/{p-3891ce53.entry.js → p-8830011c.entry.js} +2 -2
  114. package/dist/core/{p-444cd8d3.entry.js → p-8ab37b4d.entry.js} +2 -2
  115. package/dist/core/{p-c87cc0d1.entry.js → p-939025af.entry.js} +2 -2
  116. package/dist/core/{p-4992e9ac.entry.js → p-939b168a.entry.js} +2 -2
  117. package/dist/core/{p-5a4344cb.entry.js → p-9dea5764.entry.js} +2 -2
  118. package/dist/core/{p-af821831.entry.js → p-a88e61b2.entry.js} +2 -2
  119. package/dist/core/p-a88e61b2.entry.js.map +1 -0
  120. package/dist/core/{p-90611726.entry.js → p-a8a92e54.entry.js} +2 -2
  121. package/dist/core/{p-31f3fb15.entry.js → p-a94a7b71.entry.js} +2 -2
  122. package/dist/core/p-ad551a0c.entry.js +2 -0
  123. package/dist/core/p-ad551a0c.entry.js.map +1 -0
  124. package/dist/core/{p-ba75ed34.entry.js → p-b434bd7c.entry.js} +2 -2
  125. package/dist/core/{p-2188b483.entry.js → p-c0a7eed7.entry.js} +2 -2
  126. package/dist/core/{p-2bd2f38b.entry.js → p-c0b227d2.entry.js} +2 -2
  127. package/dist/core/{p-2646a629.entry.js → p-c32f043e.entry.js} +2 -2
  128. package/dist/core/{p-7a0f62c2.entry.js → p-c4b2774d.entry.js} +2 -2
  129. package/dist/core/{p-775b8dba.entry.js → p-c9525aac.entry.js} +2 -2
  130. package/dist/core/{p-7026afad.entry.js → p-ca05573a.entry.js} +2 -2
  131. package/dist/core/{p-8c580d88.entry.js → p-d0607a70.entry.js} +2 -2
  132. package/dist/core/{p-15c05eb8.entry.js → p-d528d856.entry.js} +2 -2
  133. package/dist/core/{p-0043b019.entry.js → p-da1c2883.entry.js} +2 -2
  134. package/dist/core/{p-ffc1cea6.entry.js → p-e2e556ec.entry.js} +2 -2
  135. package/dist/core/{p-e4ef4263.js → p-e519f607.js} +2 -2
  136. package/dist/core/{p-3f0bce15.entry.js → p-e5c6d01a.entry.js} +2 -2
  137. package/dist/core/{p-04a9f82f.entry.js → p-e8db8772.entry.js} +2 -2
  138. package/dist/core/{p-e4b82731.entry.js → p-ea04103e.entry.js} +2 -2
  139. package/dist/core/{p-9a95f428.entry.js → p-eaeb473e.entry.js} +2 -2
  140. package/dist/core/{p-8e592393.entry.js → p-ecc7fd71.entry.js} +2 -2
  141. package/dist/core/{p-6cfba272.entry.js → p-efe260f0.entry.js} +2 -2
  142. package/dist/core/{p-b6d6b26e.entry.js → p-f1b57f91.entry.js} +2 -2
  143. package/dist/core/{p-e4551a38.entry.js → p-f5dc04f7.entry.js} +2 -2
  144. package/dist/core/{p-25280383.entry.js → p-fb07921b.entry.js} +2 -2
  145. package/dist/core/p-fb07921b.entry.js.map +1 -0
  146. package/dist/core/{p-1900c7c7.entry.js → p-fd08156a.entry.js} +2 -2
  147. package/dist/core/{p-3594922d.entry.js → p-fe5b51bb.entry.js} +2 -2
  148. package/dist/core/{p-ef5b6622.entry.js → p-ff618439.entry.js} +2 -2
  149. package/dist/esm/core.js +1 -1
  150. package/dist/esm/{helpers-5419eb6c.js → helpers-063369f4.js} +2 -2
  151. package/dist/esm/{helpers-5419eb6c.js.map → helpers-063369f4.js.map} +1 -1
  152. package/dist/esm/{helpers-9f228880.js → helpers-a08b3f32.js} +37 -2
  153. package/dist/esm/helpers-a08b3f32.js.map +1 -0
  154. package/dist/esm/ic-accordion-group.entry.js +1 -1
  155. package/dist/esm/ic-accordion.entry.js +1 -1
  156. package/dist/esm/ic-action-chip.entry.js +1 -1
  157. package/dist/esm/ic-alert.entry.js +1 -1
  158. package/dist/esm/ic-back-to-top.entry.js +1 -1
  159. package/dist/esm/ic-badge.entry.js +1 -1
  160. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  161. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  162. package/dist/esm/ic-button_3.entry.js +1 -1
  163. package/dist/esm/ic-calendar_2.entry.js +2 -2
  164. package/dist/esm/ic-calendar_2.entry.js.map +1 -1
  165. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  166. package/dist/esm/ic-card-vertical.entry.js +1 -1
  167. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  168. package/dist/esm/ic-checkbox_3.entry.js +12 -8
  169. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  170. package/dist/esm/ic-chip.entry.js +1 -1
  171. package/dist/esm/ic-data-row.entry.js +1 -1
  172. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  173. package/dist/esm/ic-data-table.entry.js +11 -8
  174. package/dist/esm/ic-data-table.entry.js.map +1 -1
  175. package/dist/esm/ic-date-picker.entry.js +1 -1
  176. package/dist/esm/ic-dialog.entry.js +1 -1
  177. package/dist/esm/ic-divider.entry.js +1 -1
  178. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  179. package/dist/esm/ic-footer-link.entry.js +1 -1
  180. package/dist/esm/ic-footer.entry.js +1 -1
  181. package/dist/esm/ic-hero.entry.js +1 -1
  182. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  183. package/dist/esm/ic-input-component-container_4.entry.js +1 -1
  184. package/dist/esm/ic-link.entry.js +1 -1
  185. package/dist/esm/ic-menu-group.entry.js +1 -1
  186. package/dist/esm/ic-menu-item.entry.js +1 -1
  187. package/dist/esm/ic-menu.entry.js +1 -1
  188. package/dist/esm/ic-navigation-button.entry.js +1 -1
  189. package/dist/esm/ic-navigation-group.entry.js +1 -1
  190. package/dist/esm/ic-navigation-item.entry.js +1 -1
  191. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  192. package/dist/esm/ic-page-header.entry.js +1 -1
  193. package/dist/esm/ic-pagination_4.entry.js +9 -5
  194. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  195. package/dist/esm/ic-popover-menu.entry.js +1 -1
  196. package/dist/esm/ic-radio-group.entry.js +1 -1
  197. package/dist/esm/ic-radio-option.entry.js +1 -1
  198. package/dist/esm/ic-search-bar.entry.js +1 -1
  199. package/dist/esm/ic-side-navigation.entry.js +1 -1
  200. package/dist/esm/ic-status-tag.entry.js +1 -1
  201. package/dist/esm/ic-step.entry.js +1 -1
  202. package/dist/esm/ic-stepper.entry.js +1 -1
  203. package/dist/esm/ic-switch.entry.js +1 -1
  204. package/dist/esm/ic-tab-group.entry.js +1 -1
  205. package/dist/esm/ic-tab.entry.js +1 -1
  206. package/dist/esm/ic-table-of-contents.entry.js +1 -1
  207. package/dist/esm/ic-theme.entry.js +1 -1
  208. package/dist/esm/ic-time-input.entry.js +401 -99
  209. package/dist/esm/ic-time-input.entry.js.map +1 -1
  210. package/dist/esm/ic-time-selector.entry.js +838 -0
  211. package/dist/esm/ic-time-selector.entry.js.map +1 -0
  212. package/dist/esm/ic-toast.entry.js +1 -1
  213. package/dist/esm/ic-toggle-button_2.entry.js +449 -0
  214. package/dist/esm/ic-toggle-button_2.entry.js.map +1 -0
  215. package/dist/esm/ic-top-navigation.entry.js +1 -1
  216. package/dist/esm/ic-tree-item.entry.js +3 -3
  217. package/dist/esm/ic-tree-view.entry.js +4 -4
  218. package/dist/esm/ic-typography.entry.js +1 -1
  219. package/dist/esm/index-a7a720e7.js +8 -8
  220. package/dist/esm/loader.js +1 -1
  221. package/dist/types/components/ic-calendar/ic-calendar.stories.d.ts +20 -14
  222. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +4 -0
  223. package/dist/types/components/ic-time-input/ic-time-input.d.ts +26 -6
  224. package/dist/types/components/ic-time-input/ic-time-input.stories.d.ts +31 -7
  225. package/dist/types/components/ic-time-input/test/helpers/ic-time-input.d.ts +1 -0
  226. package/dist/types/components/ic-time-selector/ic-time-selector.d.ts +88 -0
  227. package/dist/types/components/ic-time-selector/ic-time-selector.stories.d.ts +99 -0
  228. package/dist/types/components/ic-time-selector/ic-time-selector.types.d.ts +1 -0
  229. package/dist/types/components.d.ts +147 -11
  230. package/dist/types/utils/helpers.d.ts +14 -0
  231. package/dist/types/utils/types.d.ts +2 -1
  232. package/hydrate/index.js +1356 -131
  233. package/hydrate/index.mjs +1356 -131
  234. package/package.json +30 -30
  235. package/dist/cjs/helpers-6f4b406b.js.map +0 -1
  236. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +0 -267
  237. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +0 -1
  238. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +0 -1
  239. package/dist/core/p-25280383.entry.js.map +0 -1
  240. package/dist/core/p-2c86ce4b.entry.js +0 -2
  241. package/dist/core/p-2c86ce4b.entry.js.map +0 -1
  242. package/dist/core/p-5b32aaf3.entry.js +0 -2
  243. package/dist/core/p-5b32aaf3.entry.js.map +0 -1
  244. package/dist/core/p-80111272.entry.js +0 -2
  245. package/dist/core/p-80111272.entry.js.map +0 -1
  246. package/dist/core/p-9044539c.entry.js +0 -2
  247. package/dist/core/p-9044539c.entry.js.map +0 -1
  248. package/dist/core/p-af821831.entry.js.map +0 -1
  249. package/dist/core/p-c3eddb99.entry.js +0 -2
  250. package/dist/core/p-c3eddb99.entry.js.map +0 -1
  251. package/dist/core/p-f48ce5f6.js +0 -2
  252. package/dist/core/p-f48ce5f6.js.map +0 -1
  253. package/dist/esm/helpers-9f228880.js.map +0 -1
  254. package/dist/esm/ic-toggle-button-group.entry.js.map +0 -1
  255. package/dist/esm/ic-toggle-button.entry.js.map +0 -1
  256. /package/dist/core/{p-b80b08ae.entry.js.map → p-08f24329.entry.js.map} +0 -0
  257. /package/dist/core/{p-615d474e.entry.js.map → p-14b8bf37.entry.js.map} +0 -0
  258. /package/dist/core/{p-81f12581.entry.js.map → p-169ad948.entry.js.map} +0 -0
  259. /package/dist/core/{p-847cbb16.entry.js.map → p-1d166343.entry.js.map} +0 -0
  260. /package/dist/core/{p-b4bfaf8f.entry.js.map → p-201b41c7.entry.js.map} +0 -0
  261. /package/dist/core/{p-24bac55f.entry.js.map → p-33509a89.entry.js.map} +0 -0
  262. /package/dist/core/{p-e1920777.entry.js.map → p-3389625c.entry.js.map} +0 -0
  263. /package/dist/core/{p-5a1cfb3c.entry.js.map → p-344752cb.entry.js.map} +0 -0
  264. /package/dist/core/{p-6c238418.entry.js.map → p-348d7080.entry.js.map} +0 -0
  265. /package/dist/core/{p-3ef2e98d.entry.js.map → p-39cdf5db.entry.js.map} +0 -0
  266. /package/dist/core/{p-fd20470e.entry.js.map → p-496b314f.entry.js.map} +0 -0
  267. /package/dist/core/{p-bd9a76d8.entry.js.map → p-508b6da3.entry.js.map} +0 -0
  268. /package/dist/core/{p-f5cea10d.entry.js.map → p-5e6687a8.entry.js.map} +0 -0
  269. /package/dist/core/{p-72171192.entry.js.map → p-60f4fe3a.entry.js.map} +0 -0
  270. /package/dist/core/{p-e00e67ff.entry.js.map → p-6323da7a.entry.js.map} +0 -0
  271. /package/dist/core/{p-c6c87e58.entry.js.map → p-6dfe0922.entry.js.map} +0 -0
  272. /package/dist/core/{p-fd7f3b58.entry.js.map → p-770e92cd.entry.js.map} +0 -0
  273. /package/dist/core/{p-7cf6b428.entry.js.map → p-79ead0e7.entry.js.map} +0 -0
  274. /package/dist/core/{p-285892ef.entry.js.map → p-7b4b45cf.entry.js.map} +0 -0
  275. /package/dist/core/{p-afedcfdb.entry.js.map → p-7efdbab8.entry.js.map} +0 -0
  276. /package/dist/core/{p-96177a74.entry.js.map → p-802a4bd3.entry.js.map} +0 -0
  277. /package/dist/core/{p-9a9605c3.entry.js.map → p-879c180d.entry.js.map} +0 -0
  278. /package/dist/core/{p-3891ce53.entry.js.map → p-8830011c.entry.js.map} +0 -0
  279. /package/dist/core/{p-444cd8d3.entry.js.map → p-8ab37b4d.entry.js.map} +0 -0
  280. /package/dist/core/{p-c87cc0d1.entry.js.map → p-939025af.entry.js.map} +0 -0
  281. /package/dist/core/{p-4992e9ac.entry.js.map → p-939b168a.entry.js.map} +0 -0
  282. /package/dist/core/{p-5a4344cb.entry.js.map → p-9dea5764.entry.js.map} +0 -0
  283. /package/dist/core/{p-90611726.entry.js.map → p-a8a92e54.entry.js.map} +0 -0
  284. /package/dist/core/{p-31f3fb15.entry.js.map → p-a94a7b71.entry.js.map} +0 -0
  285. /package/dist/core/{p-ba75ed34.entry.js.map → p-b434bd7c.entry.js.map} +0 -0
  286. /package/dist/core/{p-2188b483.entry.js.map → p-c0a7eed7.entry.js.map} +0 -0
  287. /package/dist/core/{p-2bd2f38b.entry.js.map → p-c0b227d2.entry.js.map} +0 -0
  288. /package/dist/core/{p-2646a629.entry.js.map → p-c32f043e.entry.js.map} +0 -0
  289. /package/dist/core/{p-7a0f62c2.entry.js.map → p-c4b2774d.entry.js.map} +0 -0
  290. /package/dist/core/{p-775b8dba.entry.js.map → p-c9525aac.entry.js.map} +0 -0
  291. /package/dist/core/{p-7026afad.entry.js.map → p-ca05573a.entry.js.map} +0 -0
  292. /package/dist/core/{p-8c580d88.entry.js.map → p-d0607a70.entry.js.map} +0 -0
  293. /package/dist/core/{p-15c05eb8.entry.js.map → p-d528d856.entry.js.map} +0 -0
  294. /package/dist/core/{p-0043b019.entry.js.map → p-da1c2883.entry.js.map} +0 -0
  295. /package/dist/core/{p-ffc1cea6.entry.js.map → p-e2e556ec.entry.js.map} +0 -0
  296. /package/dist/core/{p-e4ef4263.js.map → p-e519f607.js.map} +0 -0
  297. /package/dist/core/{p-3f0bce15.entry.js.map → p-e5c6d01a.entry.js.map} +0 -0
  298. /package/dist/core/{p-04a9f82f.entry.js.map → p-e8db8772.entry.js.map} +0 -0
  299. /package/dist/core/{p-e4b82731.entry.js.map → p-ea04103e.entry.js.map} +0 -0
  300. /package/dist/core/{p-9a95f428.entry.js.map → p-eaeb473e.entry.js.map} +0 -0
  301. /package/dist/core/{p-8e592393.entry.js.map → p-ecc7fd71.entry.js.map} +0 -0
  302. /package/dist/core/{p-6cfba272.entry.js.map → p-efe260f0.entry.js.map} +0 -0
  303. /package/dist/core/{p-b6d6b26e.entry.js.map → p-f1b57f91.entry.js.map} +0 -0
  304. /package/dist/core/{p-e4551a38.entry.js.map → p-f5dc04f7.entry.js.map} +0 -0
  305. /package/dist/core/{p-1900c7c7.entry.js.map → p-fd08156a.entry.js.map} +0 -0
  306. /package/dist/core/{p-3594922d.entry.js.map → p-fe5b51bb.entry.js.map} +0 -0
  307. /package/dist/core/{p-ef5b6622.entry.js.map → p-ff618439.entry.js.map} +0 -0
package/hydrate/index.mjs CHANGED
@@ -5920,6 +5920,41 @@ const hasDynamicChildSlots = (mutationList, slotNames) => mutationList.some(({ t
5920
5920
  const renderDynamicChildSlots = (mutationList, slotNames, ref) => {
5921
5921
  if (hasDynamicChildSlots(mutationList, slotNames)) ;
5922
5922
  };
5923
+ /**
5924
+ * Parses a time string (HH:MM or HH:MM:SS) or Date and returns both Date and time parts.
5925
+ * @param value string or Date
5926
+ * @returns { date: Date | null, parts: { hour: number, minute: number, second: number } | null }
5927
+ */
5928
+ function parseTimeHelper(value) {
5929
+ if (!value)
5930
+ return { date: null, parts: null };
5931
+ let d;
5932
+ if (typeof value === "string") {
5933
+ const parts = value.split(/[:.]/);
5934
+ if (parts.length >= 2) {
5935
+ d = new Date();
5936
+ d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, parts[3] ? +parts[3] : 0);
5937
+ }
5938
+ else {
5939
+ return { date: null, parts: null };
5940
+ }
5941
+ }
5942
+ else if (value instanceof Date) {
5943
+ d = value;
5944
+ }
5945
+ else {
5946
+ return { date: null, parts: null };
5947
+ }
5948
+ return {
5949
+ date: d,
5950
+ parts: {
5951
+ hour: d.getHours(),
5952
+ minute: d.getMinutes(),
5953
+ second: d.getSeconds(),
5954
+ millisecond: d.getMilliseconds(),
5955
+ },
5956
+ };
5957
+ }
5923
5958
 
5924
5959
  const DayButton = ({ focussed, today, day, monthInView, onFocusDay, onBlurDay, onSelectDay, selected, focussedDayRef, inRange, showDaysOutsideMonth, disableDay, }) => {
5925
5960
  const handleDayClick = () => {
@@ -6044,7 +6079,7 @@ const YearPicker = ({ decadeView, size, focussedYear, yearInView, onSelectYear,
6044
6079
  return (hAsync("div", { class: "year-picker", role: "grid" }, thisDecade.map((years, yearIdx) => (hAsync("div", { class: "year-picker-row", role: "row", key: yearIdx }, years.map((yr, idx) => renderYearButton(yr, yearIdx, idx)))))));
6045
6080
  };
6046
6081
 
6047
- const icCalendarCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host(.ic-date-picker-above) .calendar-container{bottom:calc(var(--ic-space-xxl) - var(--ic-space-xxs))}:host(.ic-date-picker-calendar) .calendar-container{box-shadow:var(--ic-calendar-elevation)}:host .calendar-container{min-width:19rem;max-width:23.5rem;width:var(--input-width);display:flex;flex-direction:column;gap:var(--ic-space-xs);position:absolute;border:var(--ic-border-default);border-color:var(--ic-calendar-border);border-radius:var(--ic-border-radius);align-items:center;background-color:var(--ic-calendar-bg);z-index:var(--ic-z-index-calendar);box-sizing:border-box;margin-top:var(--ic-space-xxxs);padding:var(--ic-space-xs);animation:fade-in-calendar var(--ic-transition-duration-slow)}:host(.ic-calendar-small) .calendar-container{min-width:17rem;max-width:21.5rem}:host(.ic-calendar-large) .calendar-container{min-width:21rem;max-width:25.5rem}:host(.ic-calendar-large){--month-button-width:6.3125rem}:host(.ic-calendar-small){--month-button-width:6.25rem}:host .month-year-nav-container{display:flex;justify-content:space-between;align-items:center;align-self:stretch}:host .month-year-nav-container.hidden{display:none}:host .month-year-nav{display:flex;justify-content:space-between;align-items:center;flex:1 0 0}:host .month-picker,:host .year-picker{display:flex;flex-direction:column;align-items:center;width:17.5rem;-moz-column-gap:var(--ic-space-xs);column-gap:var(--ic-space-xs);row-gap:var(--ic-space-xxs)}:host(.ic-calendar-small) .month-picker,:host(.ic-calendar-small) .year-picker{width:13.125rem}:host(.ic-calendar-large) .month-picker,:host(.ic-calendar-large) .year-picker{width:20rem}:host .month-picker .month-picker-row,:host .year-picker .year-picker-row{display:inline-grid;grid-template-columns:repeat(3, minmax(0, 1fr));width:100%;gap:var(--ic-space-xs)}:host(.ic-calendar-small) .month-picker .month-picker-row,:host(.ic-calendar-small) .year-picker .year-picker-row{grid-template-columns:repeat(2, minmax(0, 1fr))}:host .month-picker-button,:host .year-picker-button{width:5rem;--min-width:5rem}:host .month-button,:host .year-button{width:var(--month-button-width)}:host .month-button.focussed,:host .year-button.focussed{z-index:1}:host .month-button::part(button),:host .year-button::part(button){min-width:var(--month-button-width);padding:var(--ic-space-xs) auto}:host .prev-decade.year-button svg{margin-right:calc(-1 * var(--ic-space-xs));--icon-width:var(--ic-space-md);--icon-height:var(--ic-space-md)}:host(.ic-calendar-small) .prev-decade.year-button svg{margin-right:calc(-1 * calc(var(--ic-space-md) + var(--ic-space-1px)))}:host(.ic-calendar-large) .prev-decade.year-button svg{margin-right:calc(-1 * calc(var(--ic-space-md) + var(--ic-space-xxs)))}:host .prev-decade.year-button::part(button){padding-left:0;padding-right:var(--ic-space-lg);gap:var(--ic-space-xxxs);display:inline-grid;grid-template-columns:1.5rem 1fr}:host(.ic-calendar-small) .prev-decade.year-button::part(button){padding-left:0;padding-right:calc(var(--ic-space-lg) + var(--ic-space-xxs))}:host .next-decade.year-button svg{margin-left:calc(-1 * var(--ic-space-lg));--icon-width:var(--ic-space-md);--icon-height:var(--ic-space-md)}:host(.ic-calendar-small) .next-decade.year-button svg,:host(.ic-calendar-large) .next-decade.year-button svg{margin-left:calc(\n -1 * (var(--ic-space-lg) + var(--ic-space-xs) + var(--ic-space-1px))\n )}:host .next-decade.year-button::part(button){padding-right:0;padding-left:var(--ic-space-lg);gap:var(--ic-space-xxxs);display:inline-grid;grid-template-columns:1fr 1.5rem}:host(.ic-calendar-small) .next-decade.year-button::part(button),:host(.ic-calendar-large) .next-decade.year-button::part(button){padding-left:calc(var(--ic-space-xl) - var(--ic-space-xxs))}:host .bottom-buttons{display:flex;justify-content:space-between;align-items:center;align-self:stretch;animation:fade-in-buttons var(--ic-transition-duration-slow)}:host .bottom-buttons.no-today{align-items:flex-end;flex-direction:column}:host .bottom-buttons.hidden{display:none}:host .calendar{display:flex;flex-direction:column;align-items:flex-start;width:15.75rem;animation:fade-in-buttons var(--ic-transition-duration-slow)}:host(.ic-calendar-large) .calendar{width:19.25rem}:host(.ic-calendar-small) .calendar{padding-bottom:var(--ic-space-xxs);width:14rem}:host .hidden{display:none}:host .weekdays-container{display:flex;align-self:stretch}:host .weekdays{display:flex;flex-grow:1;justify-content:space-between;align-items:flex-start;padding-bottom:var(--ic-space-xs)}:host .calendar-days-container{display:flex;flex-wrap:wrap;justify-content:space-between;row-gap:var(--ic-space-xs);padding:var(--ic-space-xxs) 0;min-height:16rem;align-content:flex-start}:host(.ic-calendar-small) .calendar-days-container{padding:var(--ic-space-xxxs) 0;min-height:14.5rem}:host(.ic-calendar-large) .calendar-days-container{padding:var(--ic-space-xs) 0;min-height:17.5rem}:host .calendar-days-container tr{display:flex;flex-grow:1;justify-content:space-between;border-spacing:0}:host .calendar-day-header{display:flex;width:2rem;padding:var(--ic-space-xxs) 0;justify-content:center;align-items:center;color:var(--ic-typography-color, var(--ic-color-text-primary));--ic-typography-color:var(--ic-calendar-label);text-align:center;font:var(--ic-font-caption);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-calendar-large) .calendar-day-header{padding:var(--ic-space-xxs)}:host .day-button-container{display:flex;justify-content:center;align-items:center;width:2.25rem;height:2.25rem}:host(.ic-calendar-small) .day-button-container{width:2rem;height:2rem}:host(.ic-calendar-large) .day-button-container{width:2.5rem;height:2.5rem}:host .day-button{display:flex;position:relative;justify-content:center;align-items:center;border:0;border-radius:2rem;background-color:var(--ic-calendar-bg);width:2rem;height:2rem;cursor:pointer;transition:var(--ic-easing-transition-fast);z-index:0}:host .day-button.disabled{cursor:default}:host(.ic-calendar-large) .day-button{width:2.25rem;height:2.25rem}:host(.ic-calendar-small) .day-button{width:1.75rem;height:1.75rem}:host .day-button ic-typography{width:1.75rem;--ic-typography-color:var(--ic-calendar-date-label-default)}:host .day-button.outside-range ic-typography{--ic-typography-color:var(--ic-calendar-date-label-disabled)}:host .day-button.outside-month ic-typography{font-weight:var(--ic-font-weight-regular) !important}:host .day-button.outside-month:not(.outside-range):not(.selected) ic-typography{--ic-typography-color:var(--ic-calendar-date-label-default)}:host .day-button:hover:not(.disabled){background-color:var(--ic-calendar-date-default-bg-hover)}:host .day-button:active:not(.disabled){background-color:var(--ic-calendar-date-default-bg-pressed)}@media (prefers-reduced-motion: no-preference){:host .day-button:hover:not(.disabled):not(.focussed),:host .day-button:active:not(.disabled):not(.focussed){transition:background-color var(--ic-transition-duration-slow) ease-in-out}}:host .day-button.selected:not(.hidden){background-color:var(--ic-calendar-date-active-bg-default)}:host .day-button.selected ic-typography{--ic-typography-color:var(--ic-calendar-date-label-selected)}:host .day-button.selected:not(.hidden):hover{background-color:var(--ic-calendar-date-active-bg-hover)}:host .day-button.selected:not(.hidden):active{background-color:var(--ic-calendar-date-active-bg-pressed)}:host .day-button.focussed{z-index:1}:host .day-button:focus{outline:none}:host .day-button.focussed:focus{box-shadow:var(--ic-border-focus)}:host .day-button.today:not(.hidden)::after{content:\"\";position:absolute;width:0.875rem;height:0.125rem;bottom:0.4rem;border-radius:var(--ic-border-radius);background-color:var(--ic-calendar-default-underline)}:host(.ic-calendar-small) .day-button.today::after{bottom:0.35rem}:host(.ic-calendar-large) .day-button.today::after{width:1rem}:host .day-button.today.selected::after{background-color:var(--ic-calendar-selected-underline)}:host #select-month-hint,:host #select-year-hint{display:none}.sr-only{position:absolute;left:-9999px}@media (prefers-reduced-motion: reduce){:host .calendar-container,:host .calendar,:host .bottom-buttons{animation:none}}@keyframes fade-in-buttons{0%{opacity:0}50%{opacity:0}100%{opacity:1}}@keyframes fade-in-calendar{0%{display:flex;max-height:0}100%{display:flex;max-height:600px}}@media (forced-colors: active){:host .day-button.today:not(.hidden)::after{background-color:highlight}:host .day-button.selected:not(.hidden){background-color:highlight}:host .day-button.focussed:focus{border:var(--ic-border-hc)}:host .month-button.selected::part(button),:host .year-button.selected::part(button){background-color:highlight}}";
6082
+ const icCalendarCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host(.ic-date-picker-above) .calendar-container{bottom:calc(var(--ic-space-xxl) - var(--ic-space-xxs))}:host(.ic-date-picker-calendar) .calendar-container{position:absolute;min-width:19rem;max-width:23.5rem;width:var(--input-width);margin-top:var(--ic-space-xxxs);animation:fade-in-calendar var(--ic-transition-duration-slow);box-shadow:var(--ic-calendar-elevation)}:host .calendar-container{display:flex;flex-direction:column;gap:var(--ic-space-xs);width:-moz-fit-content;width:fit-content;border:var(--ic-border-default);border-color:var(--ic-calendar-border);border-radius:var(--ic-border-radius);align-items:center;background-color:var(--ic-calendar-bg);z-index:var(--ic-z-index-calendar);box-sizing:border-box;padding:var(--ic-space-xs)}:host(.ic-calendar-small) .calendar-container{min-width:17rem;max-width:21.5rem}:host(.ic-calendar-large) .calendar-container{min-width:21rem;max-width:25.5rem}:host(.ic-calendar-large){--month-button-width:6.3125rem}:host(.ic-calendar-small){--month-button-width:6.25rem}:host .month-year-nav-container{display:flex;justify-content:space-between;align-items:center;align-self:stretch}:host .month-year-nav-container.hidden{display:none}:host .month-year-nav{display:flex;justify-content:space-between;align-items:center;flex:1 0 0}:host .month-picker,:host .year-picker{display:flex;flex-direction:column;align-items:center;width:17.5rem;-moz-column-gap:var(--ic-space-xs);column-gap:var(--ic-space-xs);row-gap:var(--ic-space-xxs)}:host(.ic-calendar-small) .month-picker,:host(.ic-calendar-small) .year-picker{width:13.125rem}:host(.ic-calendar-large) .month-picker,:host(.ic-calendar-large) .year-picker{width:20rem}:host .month-picker .month-picker-row,:host .year-picker .year-picker-row{display:inline-grid;grid-template-columns:repeat(3, minmax(0, 1fr));width:100%;gap:var(--ic-space-xs)}:host(.ic-calendar-small) .month-picker .month-picker-row,:host(.ic-calendar-small) .year-picker .year-picker-row{grid-template-columns:repeat(2, minmax(0, 1fr))}:host .month-picker-button,:host .year-picker-button{width:5rem;--min-width:5rem}:host .month-button,:host .year-button{width:var(--month-button-width)}:host .month-button.focussed,:host .year-button.focussed{z-index:1}:host .month-button::part(button),:host .year-button::part(button){min-width:var(--month-button-width);padding:var(--ic-space-xs) auto}:host .prev-decade.year-button svg{margin-right:calc(-1 * var(--ic-space-xs));--icon-width:var(--ic-space-md);--icon-height:var(--ic-space-md)}:host(.ic-calendar-small) .prev-decade.year-button svg{margin-right:calc(-1 * calc(var(--ic-space-md) + var(--ic-space-1px)))}:host(.ic-calendar-large) .prev-decade.year-button svg{margin-right:calc(-1 * calc(var(--ic-space-md) + var(--ic-space-xxs)))}:host .prev-decade.year-button::part(button){padding-left:0;padding-right:var(--ic-space-lg);gap:var(--ic-space-xxxs);display:inline-grid;grid-template-columns:1.5rem 1fr}:host(.ic-calendar-small) .prev-decade.year-button::part(button){padding-left:0;padding-right:calc(var(--ic-space-lg) + var(--ic-space-xxs))}:host .next-decade.year-button svg{margin-left:calc(-1 * var(--ic-space-lg));--icon-width:var(--ic-space-md);--icon-height:var(--ic-space-md)}:host(.ic-calendar-small) .next-decade.year-button svg,:host(.ic-calendar-large) .next-decade.year-button svg{margin-left:calc(\n -1 * (var(--ic-space-lg) + var(--ic-space-xs) + var(--ic-space-1px))\n )}:host .next-decade.year-button::part(button){padding-right:0;padding-left:var(--ic-space-lg);gap:var(--ic-space-xxxs);display:inline-grid;grid-template-columns:1fr 1.5rem}:host(.ic-calendar-small) .next-decade.year-button::part(button),:host(.ic-calendar-large) .next-decade.year-button::part(button){padding-left:calc(var(--ic-space-xl) - var(--ic-space-xxs))}:host .bottom-buttons{display:flex;justify-content:space-between;align-items:center;align-self:stretch;animation:fade-in-buttons var(--ic-transition-duration-slow)}:host .bottom-buttons.no-today{align-items:flex-end;flex-direction:column}:host .bottom-buttons.hidden{display:none}:host .calendar{display:flex;flex-direction:column;align-items:flex-start;width:15.75rem;animation:fade-in-buttons var(--ic-transition-duration-slow)}:host(.ic-calendar-large) .calendar{width:19.25rem}:host(.ic-calendar-small) .calendar{padding-bottom:var(--ic-space-xxs);width:14rem}:host .hidden{display:none}:host .weekdays-container{display:flex;align-self:stretch}:host .weekdays{display:flex;flex-grow:1;justify-content:space-between;align-items:flex-start;padding-bottom:var(--ic-space-xs)}:host .calendar-days-container{display:flex;flex-wrap:wrap;justify-content:space-between;row-gap:var(--ic-space-xs);padding:var(--ic-space-xxs) 0;min-height:16rem;align-content:flex-start}:host(.ic-calendar-small) .calendar-days-container{padding:var(--ic-space-xxxs) 0;min-height:14.5rem}:host(.ic-calendar-large) .calendar-days-container{padding:var(--ic-space-xs) 0;min-height:17.5rem}:host .calendar-days-container tr{display:flex;flex-grow:1;justify-content:space-between;border-spacing:0}:host .calendar-day-header{display:flex;width:2rem;padding:var(--ic-space-xxs) 0;justify-content:center;align-items:center;color:var(--ic-typography-color, var(--ic-color-text-primary));--ic-typography-color:var(--ic-calendar-label);text-align:center;font:var(--ic-font-caption);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-calendar-large) .calendar-day-header{padding:var(--ic-space-xxs)}:host .day-button-container{display:flex;justify-content:center;align-items:center;width:2.25rem;height:2.25rem}:host(.ic-calendar-small) .day-button-container{width:2rem;height:2rem}:host(.ic-calendar-large) .day-button-container{width:2.5rem;height:2.5rem}:host .day-button{display:flex;position:relative;justify-content:center;align-items:center;border:0;border-radius:2rem;background-color:var(--ic-calendar-bg);width:2rem;height:2rem;cursor:pointer;transition:var(--ic-easing-transition-fast);z-index:0}:host .day-button.disabled{cursor:default}:host(.ic-calendar-large) .day-button{width:2.25rem;height:2.25rem}:host(.ic-calendar-small) .day-button{width:1.75rem;height:1.75rem}:host .day-button ic-typography{width:1.75rem;--ic-typography-color:var(--ic-calendar-date-label-default)}:host .day-button.outside-range ic-typography{--ic-typography-color:var(--ic-calendar-date-label-disabled)}:host .day-button.outside-month ic-typography{font-weight:var(--ic-font-weight-regular) !important}:host .day-button.outside-month:not(.outside-range):not(.selected) ic-typography{--ic-typography-color:var(--ic-calendar-date-label-default)}:host .day-button:hover:not(.disabled){background-color:var(--ic-calendar-date-default-bg-hover)}:host .day-button:active:not(.disabled){background-color:var(--ic-calendar-date-default-bg-pressed)}@media (prefers-reduced-motion: no-preference){:host .day-button:hover:not(.disabled):not(.focussed),:host .day-button:active:not(.disabled):not(.focussed){transition:background-color var(--ic-transition-duration-slow) ease-in-out}}:host .day-button.selected:not(.hidden){background-color:var(--ic-calendar-date-active-bg-default)}:host .day-button.selected ic-typography{--ic-typography-color:var(--ic-calendar-date-label-selected)}:host .day-button.selected:not(.hidden):hover{background-color:var(--ic-calendar-date-active-bg-hover)}:host .day-button.selected:not(.hidden):active{background-color:var(--ic-calendar-date-active-bg-pressed)}:host .day-button.focussed{z-index:1}:host .day-button:focus{outline:none}:host .day-button.focussed:focus{box-shadow:var(--ic-border-focus)}:host .day-button.today:not(.hidden)::after{content:\"\";position:absolute;width:0.875rem;height:0.125rem;bottom:0.4rem;border-radius:var(--ic-border-radius);background-color:var(--ic-calendar-default-underline)}:host(.ic-calendar-small) .day-button.today::after{bottom:0.35rem}:host(.ic-calendar-large) .day-button.today::after{width:1rem}:host .day-button.today.selected::after{background-color:var(--ic-calendar-selected-underline)}:host #select-month-hint,:host #select-year-hint{display:none}.sr-only{position:absolute;left:-9999px}@media (prefers-reduced-motion: reduce){:host .calendar-container,:host .calendar,:host .bottom-buttons{animation:none}}@keyframes fade-in-buttons{0%{opacity:0}50%{opacity:0}100%{opacity:1}}@keyframes fade-in-calendar{0%{display:flex;max-height:0}100%{display:flex;max-height:600px}}@media (forced-colors: active){:host .day-button.today:not(.hidden)::after{background-color:highlight}:host .day-button.selected:not(.hidden){background-color:highlight}:host .day-button.focussed:focus{border:var(--ic-border-hc)}:host .month-button.selected::part(button),:host .year-button.selected::part(button){background-color:highlight}}";
6048
6083
  var IcCalendarStyle0 = icCalendarCss;
6049
6084
 
6050
6085
  const FOCUS_TIMER = 100;
@@ -10124,6 +10159,9 @@ class DataTable {
10124
10159
  if (columnWidth.maxWidth) {
10125
10160
  columnWidthStyling = Object.assign(Object.assign({}, columnWidthStyling), { ["--column-max-width"]: columnWidth.maxWidth });
10126
10161
  }
10162
+ if (columnWidth.width) {
10163
+ columnWidthStyling = Object.assign(Object.assign({}, columnWidthStyling), { ["--column-width"]: columnWidth.width });
10164
+ }
10127
10165
  }
10128
10166
  return columnWidthStyling;
10129
10167
  };
@@ -10922,26 +10960,26 @@ class DataTable {
10922
10960
  ? "deselect all"
10923
10961
  : "select all remaining"
10924
10962
  : "select all";
10925
- return (hAsync(Host, { key: '9f183b318d949b1342869be9193cdff5fed88d2f', style: Object.assign({}, this.setTableDimensions()), class: {
10963
+ return (hAsync(Host, { key: '5a54a8292fc31e31e968c76b21f957d6ed4665bb', style: Object.assign({}, this.setTableDimensions()), class: {
10926
10964
  [`ic-theme-${theme}`]: theme !== "inherit",
10927
10965
  [`ic-data-table-show-pagination`]: !!showPagination,
10928
10966
  [`ic-data-table-embedded`]: !!embedded,
10929
- } }, hAsync("div", { key: '67ed81b3d232c0126317900dabba13b24a06946f', class: "table-container" }, isSlotUsed(this.el, "title-bar") && hAsync("slot", { key: 'd2543f5ac57d62ade8d1651c2285b6bf7a31f12f', name: "title-bar" }), hAsync("div", { key: '875654c430a0d216061249dbaa1674b8073250e2', class: {
10967
+ } }, hAsync("div", { key: '664f9b13c5c5f9b2a0323a870b7c96cfc8e2c45d', class: "table-container" }, isSlotUsed(this.el, "title-bar") && hAsync("slot", { key: '997ec993032c647aea11da288c2f2b19c5f69f8b', name: "title-bar" }), hAsync("div", { key: '35823b8f7cfeeaeab64dc248ef65c6c52762cf03', class: {
10930
10968
  ["table-row-container"]: true,
10931
10969
  scrollable,
10932
- }, tabIndex: scrollable ? 0 : undefined, onScroll: updateScrollOffset }, hAsync("table", { key: 'e3f2659b9fe5f091525a949ccb955da9d633afe7', style: {
10970
+ }, tabIndex: scrollable ? 0 : undefined, onScroll: updateScrollOffset }, hAsync("table", { key: '9b9c1bbf6ebcc08ca235f2637c95dc74bd49c3a1', style: {
10933
10971
  "--table-layout": tableLayout,
10934
- } }, hAsync("caption", { key: 'e841f03366a519a9f22a2e9385e3085b9db63201', class: "table-caption" }, caption), !hideColumnHeaders && (hAsync("thead", { key: '51f0415b666ac119c08ba3a7ef2223547bd55ae3', class: {
10972
+ } }, hAsync("caption", { key: 'f5acadc8976d3b474dab6d17c957553a384c348a', class: "table-caption" }, caption), !hideColumnHeaders && (hAsync("thead", { key: '4131acaa910add9c3f596f34c879b539e69e4c69', class: {
10935
10973
  ["column-header-sticky"]: stickyColumnHeaders,
10936
10974
  ["column-header-overlay"]: stickyColumnHeaders && scrollOffset !== 0,
10937
- } }, hAsync("tr", { key: '0694725f5af74c8173371365e72c7670b8a0e0ac' }, rowSelection && data && (hAsync("th", { key: '6c93c841bab80011f41397363d69172d62f2f11d', class: {
10975
+ } }, hAsync("tr", { key: 'ddf0b02e09b404800f07b86709812a8c719da333' }, rowSelection && data && (hAsync("th", { key: '3aa7cb15d490ea90a1c33959ff83987b244951f4', class: {
10938
10976
  "column-header": true,
10939
10977
  "checkbox-cell": true,
10940
10978
  "updating-state-headers": updating && !loading,
10941
10979
  [`table-density-${density}`]: this.notDefaultDensity(),
10942
- } }, hAsync("div", { key: 'c97ccb8ac9acfea3f948606f3fbb699d15a142b6', class: "checkbox-wrapper" }, hAsync("ic-checkbox", { key: '6973d631e63e183ecd21c7ca645206966ae95c5b', class: "ic-data-table-checkbox", checked: rowsSelected && allRowsSelected, disabled: updating || loading, hideLabel: true, indeterminate: rowsSelected && !allRowsSelected, label: `${caption} ${headerCheckboxLabelState} rows`, nativeIndeterminateBehaviour: true, onIcCheck: () => selectAllRows(), size: density === "dense" ? "small" : "medium", value: caption })))), createColumnHeaders()))), updating &&
10980
+ } }, hAsync("div", { key: '0b42136651692a5b69131dc40eb80636e0cb5ff1', class: "checkbox-wrapper" }, hAsync("ic-checkbox", { key: 'be47f6ce2b9c6450b4fff5bba46686396fbf7bab', class: "ic-data-table-checkbox", checked: rowsSelected && allRowsSelected, disabled: updating || loading, hideLabel: true, indeterminate: rowsSelected && !allRowsSelected, label: `${caption} ${headerCheckboxLabelState} rows`, nativeIndeterminateBehaviour: true, onIcCheck: () => selectAllRows(), size: density === "dense" ? "small" : "medium", value: caption })))), createColumnHeaders()))), updating &&
10943
10981
  !loading &&
10944
- (hideColumnHeaders ? (hAsync("thead", null, createUpdatingIndicator())) : (createUpdatingIndicator())), this.renderTableBody(loading, data, loadingOptions === null || loadingOptions === void 0 ? void 0 : loadingOptions.overlay)), this.renderEmptyState(loading, data, loadingOptions === null || loadingOptions === void 0 ? void 0 : loadingOptions.overlay)), hAsync("div", { key: 'd55e2139c46b6fd77fa4d09e8a1a2308912d2027', "aria-live": "assertive", class: "sr-only" }, this.renderAriaLiveLoading()), this.renderLoadingIndicator(loading, loadingOptions), (showPagination || isSlotUsed(this.el, "pagination-bar")) && (hAsync("div", { key: '6d65f7399346a04d4c050a569b5a716a1374bcc9', class: "pagination-container" }, isSlotUsed(this.el, "pagination-bar") ? (hAsync("slot", { name: "pagination-bar" })) : (hAsync("ic-pagination-bar", { alignment: paginationBarOptions.alignment, hideAllFromItemsPerPage: paginationBarOptions.hideAllFromItemsPerPage, hideCurrentPage: paginationBarOptions.hideCurrentPage, hideFirstAndLastPageButton: paginationBarOptions.hideFirstAndLastPageButton, hideRangeLabel: paginationBarOptions.hideRangeLabel, itemLabel: paginationBarOptions.itemLabel, itemsPerPageOptions: paginationBarOptions.itemsPerPageOptions, monochrome: paginationBarOptions.monochrome, pageLabel: paginationBarOptions.pageLabel, rangeLabelType: paginationBarOptions.rangeLabelType, selectedItemsPerPage: paginationBarOptions.selectedItemsPerPage, selectItemsPerPageOnEnter: paginationBarOptions.selectItemsPerPageOnEnter, setToFirstPageOnPaginationChange: paginationBarOptions.setToFirstPageOnPaginationChange, showGoToPageControl: paginationBarOptions.showGoToPageControl, showItemsPerPageControl: paginationBarOptions.showItemsPerPageControl, theme: theme, totalItems: (_a = data === null || data === void 0 ? void 0 : data.length) !== null && _a !== void 0 ? _a : 0, type: paginationBarOptions.type })))), sortable && (hAsync("div", { key: '2c4efdb9a3b0a8a775600c6763961e0ee431cf86', class: "screen-reader-sort-text", "aria-live": "polite" }, sortedColumnOrder !== "unsorted" && sortedColumn
10982
+ (hideColumnHeaders ? (hAsync("thead", null, createUpdatingIndicator())) : (createUpdatingIndicator())), this.renderTableBody(loading, data, loadingOptions === null || loadingOptions === void 0 ? void 0 : loadingOptions.overlay)), this.renderEmptyState(loading, data, loadingOptions === null || loadingOptions === void 0 ? void 0 : loadingOptions.overlay)), hAsync("div", { key: '23b30f12641186e93d7c20cee3b302d002f799cc', "aria-live": "assertive", class: "sr-only" }, this.renderAriaLiveLoading()), this.renderLoadingIndicator(loading, loadingOptions), (showPagination || isSlotUsed(this.el, "pagination-bar")) && (hAsync("div", { key: '639f16bbcb3ee28acd812e753ad242bdfc9fda24', class: "pagination-container" }, isSlotUsed(this.el, "pagination-bar") ? (hAsync("slot", { name: "pagination-bar" })) : (hAsync("ic-pagination-bar", { alignment: paginationBarOptions.alignment, hideAllFromItemsPerPage: paginationBarOptions.hideAllFromItemsPerPage, hideCurrentPage: paginationBarOptions.hideCurrentPage, hideFirstAndLastPageButton: paginationBarOptions.hideFirstAndLastPageButton, hideRangeLabel: paginationBarOptions.hideRangeLabel, itemLabel: paginationBarOptions.itemLabel, itemsPerPageOptions: paginationBarOptions.itemsPerPageOptions, monochrome: paginationBarOptions.monochrome, pageLabel: paginationBarOptions.pageLabel, rangeLabelType: paginationBarOptions.rangeLabelType, selectedItemsPerPage: paginationBarOptions.selectedItemsPerPage, selectItemsPerPageOnEnter: paginationBarOptions.selectItemsPerPageOnEnter, setToFirstPageOnPaginationChange: paginationBarOptions.setToFirstPageOnPaginationChange, showGoToPageControl: paginationBarOptions.showGoToPageControl, showItemsPerPageControl: paginationBarOptions.showItemsPerPageControl, theme: theme, totalItems: (_a = data === null || data === void 0 ? void 0 : data.length) !== null && _a !== void 0 ? _a : 0, type: paginationBarOptions.type })))), sortable && (hAsync("div", { key: 'fdd6bfc99732ce13c66e322f91630bb02e23fd1b', class: "screen-reader-sort-text", "aria-live": "polite" }, sortedColumnOrder !== "unsorted" && sortedColumn
10945
10983
  ? `${((_b = columns.find((col) => col.key === sortedColumn)) === null || _b === void 0 ? void 0 : _b.title) ||
10946
10984
  sortedColumn} sorted ${sortedColumnOrder}`
10947
10985
  : "table unsorted")))));
@@ -11082,7 +11120,7 @@ class DataTableTitleBar {
11082
11120
  }; }
11083
11121
  }
11084
11122
 
11085
- var Clear$1 = `<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
11123
+ var Clear$2 = `<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
11086
11124
  <path d="M15.8327 5.34199L14.6577 4.16699L9.99935 8.82533L5.34102 4.16699L4.16602 5.34199L8.82435 10.0003L4.16602 14.6587L5.34102 15.8337L9.99935 11.1753L14.6577 15.8337L15.8327 14.6587L11.1743 10.0003L15.8327 5.34199Z" fill="currentColor"/>
11087
11125
  </svg>
11088
11126
  `;
@@ -12274,7 +12312,7 @@ class DateInput {
12274
12312
  ["hidden"]: isEmptyString(this.day) &&
12275
12313
  isEmptyString(this.month) &&
12276
12314
  isEmptyString(this.year),
12277
- }, disabled: this.disabled, innerHTML: Clear$1, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showCalendarButton && (hAsync("div", { key: 'ec2f995db607ae5d575ddd7994e85f4b883ce2bb', class: "show-calendar-button-wrapper" }, hAsync("div", { key: '74e895071ab608fcccc0a3e2b2ec368511efe4d3', class: { divider: true, [size]: true } }), hAsync("ic-button", { key: '51e8939da851ae18809840d22492f3b5be958b26', id: "calendar-button", ref: (el) => (this.calendarButtonEl = el), "aria-label": "Display calendar", "aria-haspopup": "dialog", class: "calendar-button", disabled: this.disabled, innerHTML: Calendar, onClick: this.handleCalendarOpen, variant: "icon-tertiary", size: size, onFocus: this.handleCalendarFocus, onBlur: this.handleCalendarBlur, theme: this.calendarFocused ? "light" : "dark" })))))), hAsync("span", { key: '77d360d10492577650304e7914021ad40bb8b281', id: this.selectedDateInfoId, class: "sr-only", "aria-live": "polite" }, hAsync("span", { key: '1c285045fb1b18bca93c9e32956e93b8d400b0a1', ref: (el) => (this.selectedDateInfoEl = el), role: "status" })), hAsync("ic-input-validation", { key: '7f02c2d9ec754c92dec3156339e6ea6b504b8d74', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidDateText, for: inputId, ariaLiveMode: validationAriaLive }))));
12315
+ }, disabled: this.disabled, innerHTML: Clear$2, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showCalendarButton && (hAsync("div", { key: 'ec2f995db607ae5d575ddd7994e85f4b883ce2bb', class: "show-calendar-button-wrapper" }, hAsync("div", { key: '74e895071ab608fcccc0a3e2b2ec368511efe4d3', class: { divider: true, [size]: true } }), hAsync("ic-button", { key: '51e8939da851ae18809840d22492f3b5be958b26', id: "calendar-button", ref: (el) => (this.calendarButtonEl = el), "aria-label": "Display calendar", "aria-haspopup": "dialog", class: "calendar-button", disabled: this.disabled, innerHTML: Calendar, onClick: this.handleCalendarOpen, variant: "icon-tertiary", size: size, onFocus: this.handleCalendarFocus, onBlur: this.handleCalendarBlur, theme: this.calendarFocused ? "light" : "dark" })))))), hAsync("span", { key: '77d360d10492577650304e7914021ad40bb8b281', id: this.selectedDateInfoId, class: "sr-only", "aria-live": "polite" }, hAsync("span", { key: '1c285045fb1b18bca93c9e32956e93b8d400b0a1', ref: (el) => (this.selectedDateInfoEl = el), role: "status" })), hAsync("ic-input-validation", { key: '7f02c2d9ec754c92dec3156339e6ea6b504b8d74', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidDateText, for: inputId, ariaLiveMode: validationAriaLive }))));
12278
12316
  }
12279
12317
  static get delegatesFocus() { return true; }
12280
12318
  get el() { return getElement(this); }
@@ -18902,6 +18940,10 @@ class Pagination {
18902
18940
  this.midItems = [];
18903
18941
  this.startEllipsis = false;
18904
18942
  this.startItems = [];
18943
+ /**
18944
+ * The accessible label of the pagination component to provide context for screen reader users.
18945
+ */
18946
+ this.accessibleLabel = "Pagination Navigation";
18905
18947
  /**
18906
18948
  * The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.
18907
18949
  */
@@ -19132,14 +19174,14 @@ class Pagination {
19132
19174
  }
19133
19175
  render() {
19134
19176
  const { type, currentPage, hideCurrentPage, disabled, hideFirstAndLastPageButton, label, theme, monochrome, } = this;
19135
- return (hAsync(Host, { key: '9f9c0ceb1629ebff96c677d7b4ad9995bbe480cd', class: {
19177
+ return (hAsync(Host, { key: '206014fa2aa2c61bb9535e4de4fa5bf756bd318c', class: {
19136
19178
  [`ic-theme-${theme}`]: theme !== "inherit",
19137
19179
  ["ic-pagination-monochrome"]: !!monochrome,
19138
- } }, type === "simple" && (hAsync("nav", { key: '4d24ed30438c6755a1717454ee83e2a1b58d93c5', class: {
19180
+ } }, type === "simple" && (hAsync("nav", { key: '8544b88d593c806867e0bd49cb0624a684dec271', class: {
19139
19181
  ["disabled"]: !!disabled,
19140
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), hAsync("ic-pagination-item", { key: '784f99d1fa32d4f48c6de793707825333e45651a', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (hAsync("nav", { key: 'ce6061fcee8e202cb895e2919525b64c6a1c1114', class: {
19182
+ }, role: "navigation", "aria-label": this.accessibleLabel }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), hAsync("ic-pagination-item", { key: '5331aca30709281171cf19f17c2f05a0d0cdf168', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (hAsync("nav", { key: '6b7acef9da08b590b941a7ce142ce448dbf79ff2', class: {
19141
19183
  ["disabled"]: !!disabled,
19142
- }, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (hAsync("span", { key: '4980f1fd9ebd31a5b8835876479e12a8a0f5d54d', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
19184
+ }, role: "navigation", "aria-label": this.accessibleLabel }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (hAsync("span", { key: 'e60f3fb36b78e7970f14836295efbd3a1f481885', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
19143
19185
  }
19144
19186
  get el() { return getElement(this); }
19145
19187
  static get watchers() { return {
@@ -19155,6 +19197,7 @@ class Pagination {
19155
19197
  "$flags$": 9,
19156
19198
  "$tagName$": "ic-pagination",
19157
19199
  "$members$": {
19200
+ "accessibleLabel": [1, "accessible-label"],
19158
19201
  "adjacentPageCount": [1026, "adjacent-page-count"],
19159
19202
  "boundaryPageCount": [1026, "boundary-page-count"],
19160
19203
  "defaultPage": [2, "default-page"],
@@ -19197,6 +19240,10 @@ class PaginationBar {
19197
19240
  this.itemsPerPageString = "10";
19198
19241
  this.lowerBound = 1;
19199
19242
  this.paginationWrapped = false;
19243
+ /**
19244
+ * The accessible label passed down to the pagination component to provide context for screen reader users.
19245
+ */
19246
+ this.accessibleLabel = "Pagination Navigation";
19200
19247
  /**
19201
19248
  * Sets the alignment of the items in the pagination bar.
19202
19249
  */
@@ -19524,22 +19571,22 @@ class PaginationBar {
19524
19571
  this.changePage(page);
19525
19572
  }
19526
19573
  render() {
19527
- const { alignment, displayedItemsPerPageOptions, PAGE_INPUT_FIELD_ID, type, rangeLabelType, hideRangeLabel, showItemsPerPageControl, showGoToPageControl, pageLabel, capitalizedPageLabel, lowerCasePageLabel, capitalizedItemLabel, lowerCaseItemLabel, totalPages, activePage, itemsPerPageString, theme, monochrome, selectItemsPerPageOnEnter, hideCurrentPage, hideFirstAndLastPageButton, } = this;
19528
- return (hAsync(Host, { key: '9e58353122e7c4d900d8e05557b1ad455318193e', class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, hAsync("div", { key: '3b321296452318c0d4e6c6127de6c585d1685b79', class: {
19574
+ const { accessibleLabel, alignment, displayedItemsPerPageOptions, PAGE_INPUT_FIELD_ID, type, rangeLabelType, hideRangeLabel, showItemsPerPageControl, showGoToPageControl, pageLabel, capitalizedPageLabel, lowerCasePageLabel, capitalizedItemLabel, lowerCaseItemLabel, totalPages, activePage, itemsPerPageString, theme, monochrome, selectItemsPerPageOnEnter, hideCurrentPage, hideFirstAndLastPageButton, } = this;
19575
+ return (hAsync(Host, { key: 'b4156a3e8ea25f4e3c63b6806a132998acc4d413', class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, hAsync("div", { key: 'cdbb0088e57c64438cdf78d82a09f022321a6e79', class: {
19529
19576
  ["pagination-bar"]: true,
19530
19577
  [`pagination-bar-${alignment}`]: true,
19531
- }, ref: (el) => (this.paginationBarEl = el) }, (!hideRangeLabel || showItemsPerPageControl) && (hAsync("div", { key: '9d848e5c743b0e175147b69ad6c347fe9501d949', class: "item-controls" }, showItemsPerPageControl && (hAsync("div", { key: '52783c5fc011c45d55801d0b2154bc9a087a004b', class: "items-per-page-holder" }, hAsync("ic-typography", { key: '6b819e980dad965c28db3d0aaa7b6a898d162d69', class: {
19578
+ }, ref: (el) => (this.paginationBarEl = el) }, (!hideRangeLabel || showItemsPerPageControl) && (hAsync("div", { key: '2ca590958c60e8e01b77e8f8ed09e7fa8dd91557', class: "item-controls" }, showItemsPerPageControl && (hAsync("div", { key: '4fc26efe806e4897e305842dcc47d81180364698', class: "items-per-page-holder" }, hAsync("ic-typography", { key: 'eb35b4a2a49a249584532042647a02aaadd4c9b6', class: {
19532
19579
  ["items-per-page-control-label"]: true,
19533
- }, variant: "label", onClick: this.itemsPerPageLabelClickHandler }, capitalizedItemLabel, "s per ", lowerCasePageLabel), hAsync("ic-select", { key: '971399bcdf27a530f80520819c271e9038066581', theme: theme, size: "small", label: "items-per-page-input", class: "items-per-page-input", hideLabel: true, options: displayedItemsPerPageOptions, selectOnEnter: selectItemsPerPageOnEnter, value: itemsPerPageString, onIcChange: this.changeItemsPerPage, ref: (el) => (this.pageDropdownEl = el) }))), !hideRangeLabel &&
19580
+ }, variant: "label", onClick: this.itemsPerPageLabelClickHandler }, capitalizedItemLabel, "s per ", lowerCasePageLabel), hAsync("ic-select", { key: 'f8541624bc0a7121cac0dce4e49392c6ad85e819', theme: theme, size: "small", label: "items-per-page-input", class: "items-per-page-input", hideLabel: true, options: displayedItemsPerPageOptions, selectOnEnter: selectItemsPerPageOnEnter, value: itemsPerPageString, onIcChange: this.changeItemsPerPage, ref: (el) => (this.pageDropdownEl = el) }))), !hideRangeLabel &&
19534
19581
  (rangeLabelType === "data" ? (hAsync("ic-typography", { class: {
19535
19582
  ["item-pagination-label"]: true,
19536
19583
  }, variant: "label", "aria-live": "polite" }, this.upperBound === 0 && `0 ${lowerCaseItemLabel}s`, this.upperBound > 0 &&
19537
19584
  `${this.lowerBound} - ${this.upperBound} of ${this.totalItems} ${lowerCaseItemLabel}${this.totalItems > 1 ? "s" : ""}`)) : (hAsync("ic-typography", { class: {
19538
19585
  ["page-pagination-label"]: true,
19539
- }, variant: "label", "aria-live": "polite" }, capitalizedPageLabel, " ", activePage, " of ", totalPages))))), hAsync("div", { key: '9b488eaf711d15286be92a4b367d02f7e225a0c3', class: {
19586
+ }, variant: "label", "aria-live": "polite" }, capitalizedPageLabel, " ", activePage, " of ", totalPages))))), hAsync("div", { key: 'a781f60abd8da11927f5e3686926113f638936ad', class: {
19540
19587
  ["pagination-controls"]: true,
19541
19588
  ["pagination-controls-wrap"]: this.paginationWrapped,
19542
- } }, hAsync("div", { key: '22cba9694627e35900b6847697360a5924ad0518', class: "pagination-holder" }, hAsync("ic-pagination", { key: '1c397720f1637f856e9bed188ff53b07fff24bea', type: type, pages: totalPages, label: pageLabel, ref: (el) => (this.paginationEl = el), currentPage: activePage, theme: theme, monochrome: monochrome, hideCurrentPage: hideCurrentPage, hideFirstAndLastPageButton: hideFirstAndLastPageButton })), showGoToPageControl && (hAsync("div", { key: '0fea3a086dbcbad5e01cf79808b678d2357c12bf', class: "go-to-page-holder" }, hAsync("ic-typography", { key: 'e8f93eeb864821e80f735dcdbd56ec02cde8bbda', variant: "label", onClick: this.goToPageLabelClickHandler }, "Go to ", lowerCasePageLabel), hAsync("ic-tooltip", { key: 'ca276acfeddd757806772b9ffa7207ba1208e08d', label: this.inputError, target: `#${PAGE_INPUT_FIELD_ID}`, disableHover: true, disableClick: true, ref: (el) => (this.pageInputTooltipEl = el) }, hAsync("ic-text-field", { key: 'f5b56075402822ebd8bad42bf21b2bbb2e6b2e12', theme: theme, type: "number", size: "small", label: PAGE_INPUT_FIELD_ID, class: PAGE_INPUT_FIELD_ID, id: PAGE_INPUT_FIELD_ID, hideLabel: true, onKeyDown: this.handleKeydown, onKeyUp: this.handleKeyUp, onInput: this.handleInputChange, max: totalPages, min: "1", validationInlineInternal: true, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: (el) => (this.pageInputEl = el) })), hAsync("ic-button", { key: '021bb44718fb00a03bddb167ba4f878b06776973', variant: "secondary", onClick: this.goToPage, size: "small", class: "go-to-page-button" }, "Go")))))));
19589
+ } }, hAsync("div", { key: 'eb1dd49fe13eaa7358fadd76e7b7fe552f3e3fe1', class: "pagination-holder" }, hAsync("ic-pagination", { key: '717308c1d004d129c56d2b37ecf6ea207bdd1bc5', accessibleLabel: accessibleLabel, type: type, pages: totalPages, label: pageLabel, ref: (el) => (this.paginationEl = el), currentPage: activePage, theme: theme, monochrome: monochrome, hideCurrentPage: hideCurrentPage, hideFirstAndLastPageButton: hideFirstAndLastPageButton })), showGoToPageControl && (hAsync("div", { key: 'f13fda5cee5728bf3c35ba480a96437416a66721', class: "go-to-page-holder" }, hAsync("ic-typography", { key: 'd33e0a8d6ccbde4f5b44d2cdac54eac4288cf2de', variant: "label", onClick: this.goToPageLabelClickHandler }, "Go to ", lowerCasePageLabel), hAsync("ic-tooltip", { key: '6a6d2d300dbb3419313775fec483f5580bf45add', label: this.inputError, target: `#${PAGE_INPUT_FIELD_ID}`, disableHover: true, disableClick: true, ref: (el) => (this.pageInputTooltipEl = el) }, hAsync("ic-text-field", { key: '94b9d3cb57ca5141392827b81006267e44358473', theme: theme, type: "number", size: "small", label: PAGE_INPUT_FIELD_ID, class: PAGE_INPUT_FIELD_ID, id: PAGE_INPUT_FIELD_ID, hideLabel: true, onKeyDown: this.handleKeydown, onKeyUp: this.handleKeyUp, onInput: this.handleInputChange, max: totalPages, min: "1", validationInlineInternal: true, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: (el) => (this.pageInputEl = el) })), hAsync("ic-button", { key: 'e6b3a97814c0af73c289f46b9c797efdfd3702e2', variant: "secondary", onClick: this.goToPage, size: "small", class: "go-to-page-button" }, "Go")))))));
19543
19590
  }
19544
19591
  get el() { return getElement(this); }
19545
19592
  static get watchers() { return {
@@ -19556,6 +19603,7 @@ class PaginationBar {
19556
19603
  "$flags$": 9,
19557
19604
  "$tagName$": "ic-pagination-bar",
19558
19605
  "$members$": {
19606
+ "accessibleLabel": [1, "accessible-label"],
19559
19607
  "alignment": [1],
19560
19608
  "currentPage": [2, "current-page"],
19561
19609
  "selectedItemsPerPage": [2, "selected-items-per-page"],
@@ -21165,7 +21213,7 @@ var Expand = `<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
21165
21213
  </svg>
21166
21214
  `;
21167
21215
 
21168
- var Clear = `<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
21216
+ var Clear$1 = `<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
21169
21217
  <path d="M12.6666 4.27334L11.7266 3.33334L7.99998 7.06001L4.27331 3.33334L3.33331 4.27334L7.05998 8.00001L3.33331 11.7267L4.27331 12.6667L7.99998 8.94001L11.7266 12.6667L12.6666 11.7267L8.93998 8.00001L12.6666 4.27334Z" fill="currentColor" />
21170
21218
  </svg>
21171
21219
  `;
@@ -21987,7 +22035,7 @@ class Select {
21987
22035
  }, role: "combobox", autocomplete: "off", "aria-label": label, "aria-describedby": describedBy, "aria-activedescendant": ariaActiveDescendant, "aria-autocomplete": "list", "aria-expanded": `${open}`, "aria-invalid": invalid, "aria-required": `${required}`, "aria-controls": menuId, ref: (el) => (this.searchableSelectElement = el), id: inputId, value: searchableSelectInputValue || undefined, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, form: form }), isClearable && (hAsync("div", { class: "clear-button-container" }, hAsync("ic-button", { id: "clear-button", ref: (el) => (this.clearButton = el), "aria-label": searchableSelectInputValue &&
21988
22036
  (currValue === null || loading)
21989
22037
  ? "Clear input"
21990
- : "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon-tertiary", theme: clearButtonFocused ? "light" : "dark" }), hAsync("div", { class: "divider" }))), hAsync("span", { onMouseDown: this.handleExpandIconMouseDown, class: {
22038
+ : "Clear selection", class: "clear-button", innerHTML: Clear$1, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon-tertiary", theme: clearButtonFocused ? "light" : "dark" }), hAsync("div", { class: "divider" }))), hAsync("span", { onMouseDown: this.handleExpandIconMouseDown, class: {
21991
22039
  "expand-icon": true,
21992
22040
  "expand-icon-open": open,
21993
22041
  }, innerHTML: Expand, "aria-hidden": "true" }), hAsync("div", { "aria-live": "polite", role: "status", class: "searchable-select-results-status" }))) : (hAsync("div", { class: "select-container" }, hAsync("button", { role: "combobox", class: "select-input", ref: (el) => (this.customSelectElement = el), id: inputId, "aria-label": `${label}, ${(multiple && currValue
@@ -22001,7 +22049,7 @@ class Select {
22001
22049
  } }, valueLabelString || placeholder), hAsync("div", { class: "select-input-end" }, isClearable && hAsync("div", { class: "divider" }), hAsync("span", { class: {
22002
22050
  "expand-icon": true,
22003
22051
  "expand-icon-open": open,
22004
- }, innerHTML: Expand, "aria-hidden": "true" }))), isClearable && (hAsync("ic-button", { id: "clear-button", "aria-label": "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon-tertiary", theme: clearButtonFocused ? "light" : "dark" }))))), (!isMobileOrTablet() || multiple) && (hAsync("ic-menu", { key: 'b56cf5adc26838ad0f873aa16df8da7fd7b83d22', class: {
22052
+ }, innerHTML: Expand, "aria-hidden": "true" }))), isClearable && (hAsync("ic-button", { id: "clear-button", "aria-label": "Clear selection", class: "clear-button", innerHTML: Clear$1, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: "icon-tertiary", theme: clearButtonFocused ? "light" : "dark" }))))), (!isMobileOrTablet() || multiple) && (hAsync("ic-menu", { key: 'b56cf5adc26838ad0f873aa16df8da7fd7b83d22', class: {
22005
22053
  "no-results": loading ||
22006
22054
  hasTimedOut ||
22007
22055
  (searchable &&
@@ -24794,7 +24842,7 @@ class Theme {
24794
24842
 
24795
24843
  var Clock = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>clock-outline</title><path d="M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z" /></svg>`;
24796
24844
 
24797
- const icTimeInputCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--ic-input-label-helpertext-padding:var(--ic-space-xs);--input-bg-color:var(--ic-time-picker-field-background);--ic-input-label-text-color:var(--ic-time-picker-label);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle);--border-color:var(--ic-time-picker-time-field-border-default);--border-color-disabled:var(--ic-time-picker-border-disabled);--border-color-hover:var(--ic-time-picker-time-field-border-hover);--border-color-pressed:var(--ic-time-picker-time-field-border-pressed);--border-error-color:var(--ic-time-picker-border-error);--border-error-color-hover:var(--ic-time-picker-border-error-hover);--border-error-color-pressed:var(--ic-time-picker-border-error-pressed);--border-success-color:var(--ic-time-picker-border-success);--border-success-color-hover:var(--ic-time-picker-border-success-hover);--border-success-color-pressed:var(--ic-time-picker-border-success-pressed);--border-warning-color:var(--ic-time-picker-border-warning);--border-warning-color-hover:var(--ic-time-picker-border-warning-hover);--border-warning-color-pressed:var(--ic-time-picker-border-warning-pressed);--input-width:calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs))}:host(.ic-time-input-disabled){--ic-input-label-text-color:var(--ic-time-picker-label-disabled);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle-disabled)}:host(.ic-time-input-disabled) input{color:var(--ic-time-picker-time-text-disabled)}:host(.ic-time-input-large){--input-width:calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n )}:host(.ic-time-input-small){--input-width:calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n )}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;color:var(--ic-time-picker-time-text-default);caret-color:var(--ic-time-picker-typing-cursor)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;-webkit-text-fill-color:var(--ic-time-picker-time-text-default) !important}input::-moz-placeholder{color:var(--ic-time-picker-field-placeholder-text)}input::placeholder{color:var(--ic-time-picker-field-placeholder-text)}ic-input-component-container{cursor:text}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.time-inputs{color:var(--ic-time-picker-field-placeholder-text)}.hour-input{width:1.438rem}.minute-input{width:1.813rem}.second-input,.second-input.fit-to-value{width:2.313rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-clock-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.clock-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.clock-button:focus,.clear-button:active,.clock-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:0.25rem}.clock-button:focus,.clock-button:active{--ic-button-tertiary-text-active:var(--ic-atoms-input-clear-button-focus);--ic-button-tertiary-text-hover-active:var(\n --ic-atoms-input-clear-button-focus\n );--ic-button-tertiary-text-pressed-active:var(\n --ic-atoms-input-clear-button-focus\n )}.clear-button:focus,.clock-button:focus,.clear-button:active *,.clock-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button svg{color:var(--ic-time-picker-clear-icon)}.clear-button:focus svg{color:var(--ic-atoms-input-clear-button-focus)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-atoms-input-divider);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.medium{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}ic-input-validation{--ic-input-validation-status-text-color:var(--ic-time-picker-status-text);--ic-input-validation-error:var(--ic-time-picker-icon-error);--ic-input-validation-warning-icon-color:var(--ic-time-picker-icon-warning);--ic-input-validation-success-icon-color:var(--ic-time-picker-icon-success)}@media (forced-colors: active){.clear-button svg{color:currentcolor}}";
24845
+ const icTimeInputCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--ic-input-label-helpertext-padding:var(--ic-space-xs);--input-bg-color:var(--ic-time-picker-field-background);--ic-input-label-text-color:var(--ic-time-picker-label);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle);--border-color:var(--ic-time-picker-time-field-border-default);--border-color-disabled:var(--ic-time-picker-border-disabled);--border-color-hover:var(--ic-time-picker-time-field-border-hover);--border-color-pressed:var(--ic-time-picker-time-field-border-pressed);--border-error-color:var(--ic-time-picker-border-error);--border-error-color-hover:var(--ic-time-picker-border-error-hover);--border-error-color-pressed:var(--ic-time-picker-border-error-pressed);--border-success-color:var(--ic-time-picker-border-success);--border-success-color-hover:var(--ic-time-picker-border-success-hover);--border-success-color-pressed:var(--ic-time-picker-border-success-pressed);--border-warning-color:var(--ic-time-picker-border-warning);--border-warning-color-hover:var(--ic-time-picker-border-warning-hover);--border-warning-color-pressed:var(--ic-time-picker-border-warning-pressed);--input-width:calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs))}:host(.ic-time-input-disabled){--ic-input-label-text-color:var(--ic-time-picker-label-disabled);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle-disabled)}:host(.ic-time-input-disabled) input{color:var(--ic-time-picker-time-text-disabled)}:host(.ic-time-input-large){--input-width:calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n )}:host(.ic-time-input-small){--input-width:calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n )}.with-am-pm-toggle{display:flex;flex-direction:row}.am-pm-toggle ::part(button){min-width:-moz-fit-content;min-width:fit-content}.am-pm-toggle{margin-left:var(--ic-space-xs)}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;color:var(--ic-time-picker-time-text-default);caret-color:var(--ic-time-picker-typing-cursor)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;-webkit-text-fill-color:var(--ic-time-picker-time-text-default) !important}input::-moz-placeholder{color:var(--ic-time-picker-field-placeholder-text)}input::placeholder{color:var(--ic-time-picker-field-placeholder-text)}ic-input-component-container{cursor:text}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.time-inputs{color:var(--ic-time-picker-field-placeholder-text)}.hour-input{width:1.438rem}.minute-input{width:1.813rem}.second-input{width:1.18rem}.millisecond-input,.millisecond-input.fit-to-value{width:1.75rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-clock-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.clock-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.clock-button:focus,.clear-button:active,.clock-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:0.25rem}.clock-button:focus,.clock-button:active{--ic-button-tertiary-text-active:var(--ic-atoms-input-clear-button-focus);--ic-button-tertiary-text-hover-active:var(\n --ic-atoms-input-clear-button-focus\n );--ic-button-tertiary-text-pressed-active:var(\n --ic-atoms-input-clear-button-focus\n )}.clear-button:focus,.clock-button:focus,.clear-button:active *,.clock-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button svg{color:var(--ic-time-picker-clear-icon)}.clear-button:focus svg{color:var(--ic-atoms-input-clear-button-focus)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-atoms-input-divider);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.medium{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}ic-input-validation{--ic-input-validation-status-text-color:var(--ic-time-picker-status-text);--ic-input-validation-error:var(--ic-time-picker-icon-error);--ic-input-validation-warning-icon-color:var(--ic-time-picker-icon-warning);--ic-input-validation-success-icon-color:var(--ic-time-picker-icon-success)}@media (forced-colors: active){.clear-button svg{color:currentcolor}}";
24798
24846
  var IcTimeInputStyle0 = icTimeInputCss;
24799
24847
 
24800
24848
  let inputIds = 0;
@@ -24806,9 +24854,10 @@ class TimeInput {
24806
24854
  registerInstance(this, hostRef);
24807
24855
  this.clockButtonClicked = createEvent(this, "clockButtonClicked", 7);
24808
24856
  this.icBlur = createEvent(this, "icBlur", 7);
24809
- this.icChange = createEvent(this, "icChange", 7);
24857
+ this.icTimeChange = createEvent(this, "icTimeChange", 7);
24810
24858
  this.icFocus = createEvent(this, "icFocus", 7);
24811
24859
  this.DEFAULT_TIME_FORMAT = "HH:MM:SS";
24860
+ this.TOGGLE_BUTTON_SELECTOR = "ic-toggle-button";
24812
24861
  this.ARIA_INVALID = "aria-invalid";
24813
24862
  this.ARIA_LABEL = "aria-label";
24814
24863
  this.ARIA_LABELLED_BY = "aria-labelledby";
@@ -24819,6 +24868,7 @@ class TimeInput {
24819
24868
  this.isValidHour = true;
24820
24869
  this.isValidMinute = true;
24821
24870
  this.isValidSecond = true;
24871
+ this.isValidMillisecond = true;
24822
24872
  this.isValidTime = true;
24823
24873
  this.isTimeSetFromKeyboardEvent = false;
24824
24874
  this.previousSelectedTime = null;
@@ -24827,12 +24877,20 @@ class TimeInput {
24827
24877
  this.clearInput = false;
24828
24878
  this.maxTime = null;
24829
24879
  this.minTime = null;
24880
+ this.previousHour = "";
24881
+ this.previousMinute = "";
24882
+ this.previousSecond = "";
24883
+ this.previousMillisecond = "";
24884
+ this.previousPeriod = "AM";
24830
24885
  this.clockFocused = false;
24831
24886
  this.clearButtonFocused = false;
24832
24887
  this.removeLabelledBy = false;
24833
24888
  this.hour = "";
24834
24889
  this.minute = "";
24835
24890
  this.second = "";
24891
+ this.millisecond = "";
24892
+ this.period = "AM";
24893
+ this.isSSSFormat = () => this.timeFormat === "HH:MM:SS.SSS";
24836
24894
  /**
24837
24895
  * If `true`, the disabled state will be set.
24838
24896
  */
@@ -24842,7 +24900,7 @@ class TimeInput {
24842
24900
  */
24843
24901
  this.disableTimes = [];
24844
24902
  /**
24845
- * If `true`, every individual input field completed will emit an icChange event.
24903
+ * If `true`, every individual input field completed will emit an icTimeChange event.
24846
24904
  */
24847
24905
  this.emitTimePartChange = false;
24848
24906
  /**
@@ -24877,6 +24935,10 @@ class TimeInput {
24877
24935
  * If `true`, the input will require a value.
24878
24936
  */
24879
24937
  this.required = false;
24938
+ /**
24939
+ * If `true`, the time input will show an AM/PM toggle when in 12-hour time period.
24940
+ */
24941
+ this.showAmPmToggle = false;
24880
24942
  /**
24881
24943
  * If `true`, a button which clears the time input when clicked will be displayed.
24882
24944
  */
@@ -24924,19 +24986,6 @@ class TimeInput {
24924
24986
  inputEl.classList.add(this.FIT_TO_VALUE);
24925
24987
  }
24926
24988
  };
24927
- this.parseTime = (value) => {
24928
- if (!value)
24929
- return null;
24930
- if (value instanceof Date)
24931
- return value;
24932
- const parts = value.split(":");
24933
- if (parts.length >= 2) {
24934
- const d = new Date();
24935
- d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, 0);
24936
- return d;
24937
- }
24938
- return null;
24939
- };
24940
24989
  this.isHHMMFormat = () => this.timeFormat === "HH:MM";
24941
24990
  this.isKeyboardOrEvent = (event) => {
24942
24991
  return (Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||
@@ -24964,9 +25013,22 @@ class TimeInput {
24964
25013
  else {
24965
25014
  this.isValidSecond = true;
24966
25015
  }
25016
+ if (this.isSSSFormat()) {
25017
+ if (!isEmptyString(this.millisecond)) {
25018
+ this.isValidMillisecond =
25019
+ +this.millisecond >= 0 && +this.millisecond <= 999;
25020
+ }
25021
+ else {
25022
+ this.isValidMillisecond = true;
25023
+ }
25024
+ }
25025
+ else {
25026
+ this.isValidMillisecond = true;
25027
+ }
24967
25028
  }
24968
25029
  else {
24969
25030
  this.isValidSecond = true;
25031
+ this.isValidMillisecond = true;
24970
25032
  }
24971
25033
  };
24972
25034
  this.setInputValue = (input, clear = false) => {
@@ -24980,6 +25042,9 @@ class TimeInput {
24980
25042
  else if (input === this.secondInputEl && !this.isHHMMFormat()) {
24981
25043
  this.second = newValue;
24982
25044
  }
25045
+ else if (this.isSSSFormat() && input === this.millisecondInputEl) {
25046
+ this.millisecond = newValue;
25047
+ }
24983
25048
  this.setValidationMessage();
24984
25049
  };
24985
25050
  this.setPreventInput = (input, isPrevented) => {
@@ -24992,22 +25057,50 @@ class TimeInput {
24992
25057
  else if (input === this.secondInputEl) {
24993
25058
  this.preventSecondInput = isPrevented;
24994
25059
  }
25060
+ else if (this.isSSSFormat() && input === this.millisecondInputEl) {
25061
+ this.preventMillisecondInput = isPrevented;
25062
+ }
24995
25063
  };
24996
25064
  this.setValidationMessage = () => {
24997
- this.maxTime = this.parseTime(this.max);
24998
- this.minTime = this.parseTime(this.min);
25065
+ this.maxTime = parseTimeHelper(this.max).date;
25066
+ this.minTime = parseTimeHelper(this.min).date;
24999
25067
  this.setTimeValidity();
25000
25068
  let outOfBoundsMsg = "";
25001
25069
  let isDisabledTime = false;
25002
25070
  if (!isEmptyString(this.hour) &&
25003
25071
  !isEmptyString(this.minute) &&
25004
- (this.isHHMMFormat() || !isEmptyString(this.second))) {
25005
- this.selectedTime = this.convertToTime(this.hour, this.minute, this.isHHMMFormat() ? "00" : this.second);
25006
- this.isValidTime =
25007
- !!this.selectedTime &&
25008
- this.selectedTime.getHours() == +this.hour &&
25009
- this.selectedTime.getMinutes() == +this.minute &&
25010
- (this.isHHMMFormat() || this.selectedTime.getSeconds() == +this.second);
25072
+ (this.isHHMMFormat() || !isEmptyString(this.second)) &&
25073
+ (!this.isSSSFormat() || !isEmptyString(this.millisecond))) {
25074
+ this.selectedTime = this.convertToTime(this.hour, this.minute, this.isHHMMFormat() ? "00" : this.second, this.isSSSFormat() ? this.millisecond : "000");
25075
+ const inputHour = +this.hour;
25076
+ const selectedHour = this.selectedTime
25077
+ ? this.selectedTime.getHours()
25078
+ : null;
25079
+ if (this.timePeriod === "12" &&
25080
+ this.showAmPmToggle &&
25081
+ selectedHour !== null) {
25082
+ let selectedHour12 = selectedHour % 12;
25083
+ if (selectedHour12 === 0)
25084
+ selectedHour12 = 12;
25085
+ this.isValidTime =
25086
+ !!this.selectedTime &&
25087
+ selectedHour12 == inputHour &&
25088
+ this.selectedTime.getMinutes() == +this.minute &&
25089
+ (this.isHHMMFormat() ||
25090
+ this.selectedTime.getSeconds() == +this.second) &&
25091
+ (!this.isSSSFormat() ||
25092
+ this.selectedTime.getMilliseconds() == +this.millisecond);
25093
+ }
25094
+ else {
25095
+ this.isValidTime =
25096
+ !!this.selectedTime &&
25097
+ this.selectedTime.getHours() == inputHour &&
25098
+ this.selectedTime.getMinutes() == +this.minute &&
25099
+ (this.isHHMMFormat() ||
25100
+ this.selectedTime.getSeconds() == +this.second) &&
25101
+ (!this.isSSSFormat() ||
25102
+ this.selectedTime.getMilliseconds() == +this.millisecond);
25103
+ }
25011
25104
  if (this.selectedTime &&
25012
25105
  Array.isArray(this.disableTimes) &&
25013
25106
  this.disableTimes.length > 0) {
@@ -25016,18 +25109,25 @@ class TimeInput {
25016
25109
  t !== null &&
25017
25110
  "start" in t &&
25018
25111
  "end" in t) {
25019
- const start = this.parseTime(t.start);
25020
- const end = this.parseTime(t.end);
25112
+ const start = parseTimeHelper(t.start).date;
25113
+ const end = parseTimeHelper(t.end).date;
25021
25114
  if (start && end) {
25022
25115
  return this.selectedTime >= start && this.selectedTime <= end;
25023
25116
  }
25024
25117
  return false;
25025
25118
  }
25026
- const parsed = this.parseTime(t);
25027
- return (parsed &&
25028
- parsed.getHours() === this.selectedTime.getHours() &&
25029
- parsed.getMinutes() === this.selectedTime.getMinutes() &&
25030
- parsed.getSeconds() === this.selectedTime.getSeconds());
25119
+ const parsed = parseTimeHelper(t).parts;
25120
+ if (!parsed)
25121
+ return false;
25122
+ let selectedHour = this.selectedTime.getHours();
25123
+ let parsedHour = parsed.hour;
25124
+ if (this.timePeriod === "12" && this.showAmPmToggle) {
25125
+ selectedHour = this.convertTo24Hour(selectedHour);
25126
+ parsedHour = this.convertTo24Hour(parsedHour);
25127
+ }
25128
+ return (parsedHour === selectedHour &&
25129
+ parsed.minute === this.selectedTime.getMinutes() &&
25130
+ parsed.second === this.selectedTime.getSeconds());
25031
25131
  });
25032
25132
  if (isDisabledTime) {
25033
25133
  this.isValidTime = false;
@@ -25057,6 +25157,7 @@ class TimeInput {
25057
25157
  if (!(this.isValidHour &&
25058
25158
  this.isValidMinute &&
25059
25159
  this.isValidSecond &&
25160
+ this.isValidMillisecond &&
25060
25161
  this.isValidTime)) {
25061
25162
  this.invalidTimeText = outOfBoundsMsg || this.invalidTimeMessage;
25062
25163
  }
@@ -25068,12 +25169,33 @@ class TimeInput {
25068
25169
  const hh = time.getHours().toString().padStart(2, "0");
25069
25170
  const mm = time.getMinutes().toString().padStart(2, "0");
25070
25171
  const ss = time.getSeconds().toString().padStart(2, "0");
25172
+ const sss = time.getMilliseconds().toString().padStart(3, "0");
25173
+ if (this.isSSSFormat()) {
25174
+ return `${hh}:${mm}:${ss}.${sss}`;
25175
+ }
25071
25176
  return this.isHHMMFormat() ? `${hh}:${mm}` : `${hh}:${mm}:${ss}`;
25072
25177
  };
25073
25178
  this.handleInput = (event) => {
25074
25179
  const inputEvent = event;
25075
25180
  const input = event.target;
25076
- if (input !== this.hourInputEl) {
25181
+ if (input === this.millisecondInputEl && this.isSSSFormat()) {
25182
+ this.setInputValue(input);
25183
+ this.setPreventInput(input, false);
25184
+ this.setFitToValueStyling(input);
25185
+ if (input.value.length === 3) {
25186
+ this.moveToNextInput(input);
25187
+ this.setPreventInput(input, true);
25188
+ }
25189
+ else {
25190
+ this.setPreventInput(input, false);
25191
+ }
25192
+ if (input.value.length === 0) {
25193
+ this.setInputValue(input, true);
25194
+ this.setValidationMessage();
25195
+ }
25196
+ this.notifyScreenReader(input);
25197
+ }
25198
+ else if (input !== this.hourInputEl) {
25077
25199
  if (inputEvent.inputType !== "deleteContentBackward" &&
25078
25200
  !this.preventAutoFormatting) {
25079
25201
  if (input.value.length === 1 &&
@@ -25106,6 +25228,12 @@ class TimeInput {
25106
25228
  if (input.value.length !== 2) {
25107
25229
  this.setPreventInput(input, false);
25108
25230
  }
25231
+ this.setFitToValueStyling(input);
25232
+ if (input.value.length === 0) {
25233
+ this.setInputValue(input, true);
25234
+ this.setValidationMessage();
25235
+ }
25236
+ this.notifyScreenReader(input);
25109
25237
  }
25110
25238
  else {
25111
25239
  if (input.value.length === 2) {
@@ -25119,18 +25247,25 @@ class TimeInput {
25119
25247
  this.setInputValue(input, true);
25120
25248
  this.setPreventInput(input, false);
25121
25249
  }
25250
+ this.setFitToValueStyling(input);
25251
+ if (input.value.length === 0) {
25252
+ this.setInputValue(input, true);
25253
+ this.setValidationMessage();
25254
+ }
25255
+ this.notifyScreenReader(input);
25122
25256
  }
25123
- this.setFitToValueStyling(input);
25124
- if (input.value.length === 0) {
25125
- this.setInputValue(input, true);
25126
- this.setValidationMessage();
25127
- }
25128
- this.notifyScreenReader(input);
25129
25257
  };
25130
25258
  this.handleKeyDown = (event, isInputPrevented) => {
25131
25259
  var _a;
25260
+ const navKeys = /arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/i;
25132
25261
  const input = event.target;
25133
25262
  const eventKey = (_a = event.key) === null || _a === void 0 ? void 0 : _a.toLowerCase();
25263
+ if (!/-?\d*\.?\d+(e[-+]?\d+)?|[:]|[.]/i.test(eventKey) &&
25264
+ !navKeys.test(eventKey) &&
25265
+ !((event.ctrlKey || event.metaKey) &&
25266
+ (eventKey === "v" || eventKey === "c"))) {
25267
+ event.preventDefault();
25268
+ }
25134
25269
  const regex = /-?\d*\.?\d+(e[-+]?\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;
25135
25270
  if (!regex.test(eventKey) &&
25136
25271
  !((event.ctrlKey || event.metaKey) &&
@@ -25168,7 +25303,18 @@ class TimeInput {
25168
25303
  };
25169
25304
  this.handleBlur = (event) => {
25170
25305
  const input = event.target;
25171
- if (input) {
25306
+ if (input === this.millisecondInputEl && this.isSSSFormat()) {
25307
+ if (input.value.length === 1) {
25308
+ input.value = `00${input.value}`;
25309
+ this.setInputValue(input);
25310
+ }
25311
+ else if (input.value.length === 2) {
25312
+ input.value = `0${input.value}`;
25313
+ this.setInputValue(input);
25314
+ }
25315
+ this.setFitToValueStyling(input);
25316
+ }
25317
+ else if (input) {
25172
25318
  this.autocompleteInput(input);
25173
25319
  }
25174
25320
  };
@@ -25224,20 +25370,80 @@ class TimeInput {
25224
25370
  };
25225
25371
  this.setValueAndEmitChange = (value, force = false) => {
25226
25372
  if (this.value !== value || force) {
25227
- this.emitIcChange(value);
25373
+ this.emitIcTimeChange(value);
25228
25374
  this.value = value;
25229
25375
  }
25230
25376
  };
25231
- this.emitIcChange = (t) => {
25232
- this.selectedTime = t;
25233
- this.icChange.emit({
25234
- value: t,
25235
- timeObject: {
25236
- hour: this.hour === "" ? null : this.hour,
25237
- minute: this.minute === "" ? null : this.minute,
25238
- second: this.second === "" ? null : this.second,
25239
- },
25240
- });
25377
+ this.convertTo24Hour = (hour) => {
25378
+ let date24hours = hour;
25379
+ if (this.period === "PM" && hour < 12)
25380
+ date24hours = hour + 12;
25381
+ if (this.period === "AM" && hour === 12)
25382
+ date24hours = 0;
25383
+ return date24hours;
25384
+ };
25385
+ this.emitIcTimeChange = (t) => {
25386
+ const hour = parseInt(this.hour);
25387
+ const minute = parseInt(this.minute);
25388
+ const second = parseInt(this.second);
25389
+ const millisecond = parseInt(this.millisecond);
25390
+ const period = this.period;
25391
+ let allSelected = false;
25392
+ if (this.isSSSFormat()) {
25393
+ allSelected =
25394
+ this.hour !== "" &&
25395
+ this.minute !== "" &&
25396
+ this.second !== "" &&
25397
+ this.millisecond !== "";
25398
+ }
25399
+ else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {
25400
+ allSelected =
25401
+ this.hour !== "" && this.minute !== "" && this.second !== "";
25402
+ }
25403
+ else if (this.timeFormat === "HH:MM") {
25404
+ allSelected = this.hour !== "" && this.minute !== "";
25405
+ }
25406
+ let time = t;
25407
+ let date24hours = hour;
25408
+ if (hour != null &&
25409
+ period &&
25410
+ this.timePeriod === "12" &&
25411
+ this.showAmPmToggle) {
25412
+ date24hours = this.convertTo24Hour(hour);
25413
+ time = new Date();
25414
+ time.setHours(date24hours !== null && date24hours !== void 0 ? date24hours : 0);
25415
+ time.setMinutes(minute !== null && minute !== void 0 ? minute : 0);
25416
+ time.setSeconds(second !== null && second !== void 0 ? second : 0);
25417
+ this.isSSSFormat() && time.setMilliseconds(millisecond !== null && millisecond !== void 0 ? millisecond : 0);
25418
+ }
25419
+ this.selectedTime = time;
25420
+ const allTimePartsEmpty = this.hour === "" &&
25421
+ this.minute === "" &&
25422
+ this.second === "" &&
25423
+ this.millisecond === "";
25424
+ const onlyPeriodChanged = allTimePartsEmpty &&
25425
+ this.period !== this.previousPeriod &&
25426
+ this.previousHour === "" &&
25427
+ this.previousMinute === "" &&
25428
+ this.previousSecond === "" &&
25429
+ this.previousMillisecond === "";
25430
+ if (!onlyPeriodChanged) {
25431
+ this.icTimeChange.emit({
25432
+ value: allSelected ? time : null,
25433
+ timeObject: {
25434
+ hour: this.hour === "" ? null : this.hour,
25435
+ minute: this.minute === "" ? null : this.minute,
25436
+ second: this.second === "" ? null : this.second,
25437
+ millisecond: this.millisecond === "" ? null : this.millisecond,
25438
+ period: this.period === "" ? null : this.period,
25439
+ },
25440
+ });
25441
+ }
25442
+ this.previousHour = this.hour;
25443
+ this.previousMinute = this.minute;
25444
+ this.previousSecond = this.second;
25445
+ this.previousMillisecond = this.millisecond;
25446
+ this.previousPeriod = this.period;
25241
25447
  };
25242
25448
  this.setTime = (time) => {
25243
25449
  if (time === null || time === "" || time === undefined) {
@@ -25247,6 +25453,8 @@ class TimeInput {
25247
25453
  this.minute = "";
25248
25454
  if (this.second)
25249
25455
  this.second = "";
25456
+ if (this.millisecond)
25457
+ this.millisecond = "";
25250
25458
  this.inputsInOrder.forEach((input) => {
25251
25459
  input.classList.remove(this.FIT_TO_VALUE);
25252
25460
  this.setPreventInput(input, false);
@@ -25262,22 +25470,26 @@ class TimeInput {
25262
25470
  this.second = zuluMatch[3];
25263
25471
  }
25264
25472
  else {
25265
- const parts = time.split(":");
25473
+ const parts = time.split(/[:.]/);
25266
25474
  this.hour = parts[0] || "";
25267
25475
  this.minute = parts[1] || "";
25268
25476
  this.second = parts[2] || "";
25477
+ this.millisecond = parts[3] || "";
25269
25478
  }
25270
25479
  }
25271
25480
  else if (time instanceof Date) {
25272
25481
  this.hour = time.getHours().toString().padStart(2, "0");
25273
25482
  this.minute = time.getMinutes().toString().padStart(2, "0");
25274
25483
  this.second = time.getSeconds().toString().padStart(2, "0");
25484
+ if (this.isSSSFormat()) {
25485
+ this.millisecond = time.getMilliseconds().toString().padStart(3, "0");
25486
+ }
25275
25487
  }
25276
25488
  }
25277
25489
  this.setValidationMessage();
25278
25490
  };
25279
- this.setAriaInvalid = (validHour, validMinute, validSecond) => {
25280
- var _a, _b, _c;
25491
+ this.setAriaInvalid = (validHour, validMinute, validSecond, validMillisecond) => {
25492
+ var _a, _b, _c, _d;
25281
25493
  if (this.inputsInOrder.length) {
25282
25494
  this.inputsInOrder.forEach((input) => {
25283
25495
  input.removeAttribute(this.ARIA_INVALID);
@@ -25291,7 +25503,10 @@ class TimeInput {
25291
25503
  if (!validSecond) {
25292
25504
  (_c = this.secondInputEl) === null || _c === void 0 ? void 0 : _c.setAttribute(this.ARIA_INVALID, "true");
25293
25505
  }
25294
- if (!(validHour && validMinute && validSecond)) {
25506
+ if (!validMillisecond) {
25507
+ (_d = this.millisecondInputEl) === null || _d === void 0 ? void 0 : _d.setAttribute(this.ARIA_INVALID, "true");
25508
+ }
25509
+ if (!(validHour && validMinute && validSecond && validMillisecond)) {
25295
25510
  this.inputsInOrder.forEach((input) => {
25296
25511
  input.setAttribute(this.ARIA_INVALID, "true");
25297
25512
  });
@@ -25299,6 +25514,7 @@ class TimeInput {
25299
25514
  }
25300
25515
  };
25301
25516
  this.handleClear = () => {
25517
+ var _a;
25302
25518
  this.clearInput = true;
25303
25519
  if (this.hourInputEl) {
25304
25520
  this.hourInputEl.value = "";
@@ -25309,9 +25525,25 @@ class TimeInput {
25309
25525
  if (!this.isHHMMFormat() && this.secondInputEl) {
25310
25526
  this.secondInputEl.value = "";
25311
25527
  }
25528
+ if (this.isSSSFormat() && this.millisecondInputEl) {
25529
+ this.millisecondInputEl.value = "";
25530
+ }
25312
25531
  this.hour = "";
25313
25532
  this.minute = "";
25314
25533
  this.second = "";
25534
+ this.millisecond = "";
25535
+ this.period = "AM";
25536
+ if (this.showAmPmToggle) {
25537
+ (_a = this.periodToggleEl) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((btn) => {
25538
+ const toggleBtn = btn;
25539
+ if (toggleBtn.label === "AM") {
25540
+ toggleBtn.checked = true;
25541
+ }
25542
+ else {
25543
+ toggleBtn.checked = false;
25544
+ }
25545
+ });
25546
+ }
25315
25547
  this.handleTimeChange(true);
25316
25548
  this.inputsInOrder.forEach((input) => {
25317
25549
  input.classList.remove(this.FIT_TO_VALUE);
@@ -25327,26 +25559,31 @@ class TimeInput {
25327
25559
  };
25328
25560
  this.notifyScreenReaderSelectedTime = () => {
25329
25561
  if (this.selectedTime && this.selectedTimeInfoEl) {
25562
+ let hours = this.selectedTime.getHours();
25563
+ if (this.timePeriod === "12" && this.showAmPmToggle) {
25564
+ hours = this.convertTo24Hour(hours);
25565
+ }
25566
+ const hoursStr = hours.toString().padStart(2, "0");
25567
+ const minutesStr = this.selectedTime
25568
+ .getMinutes()
25569
+ .toString()
25570
+ .padStart(2, "0");
25571
+ const secondsStr = this.selectedTime
25572
+ .getSeconds()
25573
+ .toString()
25574
+ .padStart(2, "0");
25575
+ const msStr = this.selectedTime
25576
+ .getMilliseconds()
25577
+ .toString()
25578
+ .padStart(3, "0");
25330
25579
  if (this.isHHMMFormat()) {
25331
- this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime
25332
- .getHours()
25333
- .toString()
25334
- .padStart(2, "0")}:${this.selectedTime
25335
- .getMinutes()
25336
- .toString()
25337
- .padStart(2, "0")}`;
25580
+ this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}`;
25581
+ }
25582
+ else if (!this.isSSSFormat()) {
25583
+ this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}`;
25338
25584
  }
25339
25585
  else {
25340
- this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime
25341
- .getHours()
25342
- .toString()
25343
- .padStart(2, "0")}:${this.selectedTime
25344
- .getMinutes()
25345
- .toString()
25346
- .padStart(2, "0")}:${this.selectedTime
25347
- .getSeconds()
25348
- .toString()
25349
- .padStart(2, "0")}`;
25586
+ this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}.${msStr}`;
25350
25587
  }
25351
25588
  }
25352
25589
  };
@@ -25364,7 +25601,7 @@ class TimeInput {
25364
25601
  };
25365
25602
  this.handleHostFocus = () => {
25366
25603
  var _a, _b;
25367
- 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$/)) {
25604
+ 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$/)) {
25368
25605
  this.removeLabelledBy = false;
25369
25606
  }
25370
25607
  else {
@@ -25413,12 +25650,17 @@ class TimeInput {
25413
25650
  this.setInputValue(input);
25414
25651
  }
25415
25652
  };
25416
- this.convertToTime = (hour, minute, second) => {
25653
+ this.convertToTime = (hour, minute, second, millisecond = null) => {
25417
25654
  if (!isEmptyString(hour) &&
25418
25655
  !isEmptyString(minute) &&
25419
- (this.isHHMMFormat() || !isEmptyString(second))) {
25656
+ (this.isHHMMFormat() || !isEmptyString(second)) &&
25657
+ (!this.isSSSFormat() ||
25658
+ (millisecond !== null && !isEmptyString(millisecond)))) {
25420
25659
  const d = new Date();
25421
25660
  d.setHours(+hour, +minute, this.isHHMMFormat() ? 0 : +second, 0);
25661
+ if (this.isSSSFormat() && millisecond !== null) {
25662
+ d.setMilliseconds(+millisecond);
25663
+ }
25422
25664
  return d;
25423
25665
  }
25424
25666
  else {
@@ -25463,17 +25705,22 @@ class TimeInput {
25463
25705
  (_d = this.inputCompContainerEl) === null || _d === void 0 ? void 0 : _d.setAttribute(this.ARIA_LABELLED_BY, labelledBy);
25464
25706
  };
25465
25707
  this.getInputsInOrder = () => {
25466
- const timeParts = this.timeFormat.split(":");
25708
+ const timeParts = this.timeFormat.split(/[:.]/);
25467
25709
  return timeParts.map((part) => {
25468
- switch (part.substring(0, 1)) {
25469
- case "H":
25710
+ switch (part) {
25711
+ case "HH":
25470
25712
  return (hAsync("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) }));
25471
- case "M":
25713
+ case "MM":
25472
25714
  return (hAsync("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) }));
25473
- case "S":
25715
+ case "SS":
25474
25716
  if (!this.isHHMMFormat()) {
25475
25717
  return (hAsync("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) }));
25476
25718
  }
25719
+ break;
25720
+ case "SSS":
25721
+ if (this.isSSSFormat()) {
25722
+ return (hAsync("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) }));
25723
+ }
25477
25724
  return null;
25478
25725
  default:
25479
25726
  return null;
@@ -25481,6 +25728,9 @@ class TimeInput {
25481
25728
  });
25482
25729
  };
25483
25730
  this.getDescOfInputsOrder = () => {
25731
+ if (this.isSSSFormat()) {
25732
+ return "hour, minute, second, and millisecond";
25733
+ }
25484
25734
  return "hour, minute, and second";
25485
25735
  };
25486
25736
  this.getScreenReaderInfo = (validationStatus) => {
@@ -25520,7 +25770,7 @@ class TimeInput {
25520
25770
  this.removeLabelledBy = false;
25521
25771
  return;
25522
25772
  }
25523
- if (relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.id.match(/(minute|second)-input$/)) {
25773
+ if (relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.id.match(/(minute|second|millisecond)-input$/)) {
25524
25774
  this.removeLabelledBy = false;
25525
25775
  return;
25526
25776
  }
@@ -25538,6 +25788,18 @@ class TimeInput {
25538
25788
  return value;
25539
25789
  }
25540
25790
  }
25791
+ else if (this.isSSSFormat()) {
25792
+ if (/^\d{2}:\d{2}:\d{2}\.\d{1,3}$/.test(value)) {
25793
+ return value;
25794
+ }
25795
+ if (/^\d{2}:\d{2}:\d{2}\.\d{1,3}Z$/.test(value)) {
25796
+ return value.replace("Z", "");
25797
+ }
25798
+ const isoMatch = value.match(/T(\d{2}:\d{2}:\d{2}\.\d{1,3})/);
25799
+ if (isoMatch) {
25800
+ return isoMatch[1];
25801
+ }
25802
+ }
25541
25803
  else {
25542
25804
  if (/^\d{2}:\d{2}:\d{2}$/.test(value)) {
25543
25805
  return value;
@@ -25554,16 +25816,78 @@ class TimeInput {
25554
25816
  };
25555
25817
  this.setPastedValueAndValidation = (isValidTime, pastedValue, event) => {
25556
25818
  if (isValidTime) {
25557
- const timeParts = isValidTime.split(":");
25819
+ const timeParts = isValidTime.split(/[:.]/);
25558
25820
  this.inputsInOrder.forEach((input, index) => {
25821
+ var _a, _b, _c, _d;
25559
25822
  input.classList.add(this.FIT_TO_VALUE);
25560
- const timeValue = timeParts[index] || "";
25561
- input.value = timeValue.slice(0, 2);
25823
+ let timeValue = timeParts[index] || "";
25824
+ if (input === this.millisecondInputEl && this.isSSSFormat()) {
25825
+ timeValue = timeValue.slice(0, 3);
25826
+ }
25827
+ else {
25828
+ timeValue = timeValue.slice(0, 2);
25829
+ }
25830
+ if (input === this.hourInputEl) {
25831
+ let activeToggle;
25832
+ if (this.timePeriod === "12" && this.showAmPmToggle) {
25833
+ if (parseInt(timeValue) > 12) {
25834
+ timeValue = (parseInt(timeValue) - 12)
25835
+ .toString()
25836
+ .padStart(2, "0");
25837
+ if (parseInt(timeValue) > 12) {
25838
+ return;
25839
+ }
25840
+ else {
25841
+ this.period = "PM";
25842
+ (_a = this.periodToggleEl) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((btn) => {
25843
+ const toggleBtn = btn;
25844
+ if (toggleBtn.label === "PM") {
25845
+ activeToggle = toggleBtn;
25846
+ }
25847
+ else {
25848
+ toggleBtn.checked = false;
25849
+ }
25850
+ });
25851
+ if (activeToggle) {
25852
+ (_b = this.periodToggleEl) === null || _b === void 0 ? void 0 : _b.setActiveToggle(activeToggle);
25853
+ activeToggle.checked = true;
25854
+ }
25855
+ this.invalidTimeText = "";
25856
+ this.validationStatus = "";
25857
+ }
25858
+ }
25859
+ else {
25860
+ if (parseInt(timeValue) === 0) {
25861
+ timeValue = "12";
25862
+ }
25863
+ this.period = "AM";
25864
+ (_c = this.periodToggleEl) === null || _c === void 0 ? void 0 : _c.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((btn) => {
25865
+ const toggleBtn = btn;
25866
+ if (toggleBtn.label === "AM") {
25867
+ activeToggle = toggleBtn;
25868
+ }
25869
+ else {
25870
+ toggleBtn.checked = false;
25871
+ }
25872
+ });
25873
+ if (activeToggle) {
25874
+ (_d = this.periodToggleEl) === null || _d === void 0 ? void 0 : _d.setActiveToggle(activeToggle);
25875
+ activeToggle.checked = true;
25876
+ }
25877
+ this.invalidTimeText = "";
25878
+ this.validationStatus = "";
25879
+ }
25880
+ }
25881
+ }
25882
+ input.value = timeValue;
25562
25883
  this.setInputValue(input);
25563
25884
  this.autocompleteInput(input);
25564
25885
  });
25565
- if (this.isHHMMFormat() && this.second !== "") {
25886
+ if (this.isHHMMFormat() &&
25887
+ this.second !== "" &&
25888
+ this.millisecond !== "") {
25566
25889
  this.second = "";
25890
+ this.millisecond = "";
25567
25891
  }
25568
25892
  }
25569
25893
  else {
@@ -25578,14 +25902,22 @@ class TimeInput {
25578
25902
  }
25579
25903
  }
25580
25904
  };
25905
+ this.handleAMPM = (selectedOption) => {
25906
+ var _a;
25907
+ this.period = selectedOption.label;
25908
+ (_a = this.periodToggleEl) === null || _a === void 0 ? void 0 : _a.setActiveToggle(selectedOption);
25909
+ };
25581
25910
  }
25582
25911
  watchInputHandler() {
25583
25912
  if (this.emitTimePartChange &&
25584
25913
  !this.externalSetTime &&
25585
25914
  !this.clearInput &&
25586
- !(this.hour && this.minute && this.second) &&
25915
+ !(this.hour &&
25916
+ this.minute &&
25917
+ this.second &&
25918
+ (this.isSSSFormat() ? this.millisecond : true)) &&
25587
25919
  this.selectedTime === null) {
25588
- this.emitIcChange(this.selectedTime);
25920
+ this.emitIcTimeChange(this.selectedTime);
25589
25921
  }
25590
25922
  }
25591
25923
  watchDisabledHandler() {
@@ -25596,10 +25928,10 @@ class TimeInput {
25596
25928
  this.helperText = this.defaultHelperText;
25597
25929
  }
25598
25930
  watchMaxHandler() {
25599
- this.maxTime = this.parseTime(this.max);
25931
+ this.maxTime = parseTimeHelper(this.max).date;
25600
25932
  }
25601
25933
  watchMinHandler() {
25602
- this.minTime = this.parseTime(this.min);
25934
+ this.minTime = parseTimeHelper(this.min).date;
25603
25935
  }
25604
25936
  watchRequiredHandler() {
25605
25937
  var _a, _b;
@@ -25648,7 +25980,7 @@ class TimeInput {
25648
25980
  input.classList.add(this.FIT_TO_VALUE);
25649
25981
  });
25650
25982
  }
25651
- this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond);
25983
+ this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond, this.isValidMillisecond);
25652
25984
  if (this.value) {
25653
25985
  this.notifyScreenReaderSelectedTime();
25654
25986
  }
@@ -25662,7 +25994,7 @@ class TimeInput {
25662
25994
  componentWillUpdate() {
25663
25995
  if (!this.isTimeSetFromKeyboardEvent)
25664
25996
  this.setTime(this.value);
25665
- this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond);
25997
+ this.setAriaInvalid(this.isValidHour, this.isValidMinute, this.isValidSecond, this.isValidMillisecond);
25666
25998
  this.handleTimeChange(false);
25667
25999
  this.isTimeSetFromKeyboardEvent = false;
25668
26000
  }
@@ -25681,12 +26013,12 @@ class TimeInput {
25681
26013
  return this.selectedTime;
25682
26014
  }
25683
26015
  /**
25684
- * @internal Used to enable other components to invoke an IcChange event from the input.
26016
+ * @internal Used to enable other components to invoke an icTimeChange event from the input.
25685
26017
  */
25686
- async triggerIcChange(t) {
26018
+ async triggerIcTimeChange(t) {
25687
26019
  this.externalSetTime = true;
25688
26020
  this.setTime(t);
25689
- this.emitIcChange(t);
26021
+ this.emitIcTimeChange(t);
25690
26022
  this.externalSetTime = false;
25691
26023
  }
25692
26024
  render() {
@@ -25703,23 +26035,39 @@ class TimeInput {
25703
26035
  !(isEmptyString(this.hour) &&
25704
26036
  isEmptyString(this.minute) &&
25705
26037
  isEmptyString(this.second)));
25706
- return (hAsync(Host, { key: 'b4330a85fcd6bf99ace98ba735759e0e98ebea69', class: {
26038
+ if (this.showAmPmToggle && this.timePeriod !== "12") {
26039
+ this.showAmPmToggle = false;
26040
+ }
26041
+ return (hAsync(Host, { key: 'd005982324084fad9fdfe6392cf879e15709d2ef', class: {
25707
26042
  [`ic-theme-${theme}`]: theme !== "inherit",
25708
26043
  [`ic-time-input-disabled`]: disabled,
25709
26044
  [`ic-time-input-${size}`]: true,
25710
- }, onBlur: this.handleHostBlur, onFocus: this.handleHostFocus }, hAsync("ic-input-container", { key: 'e61ccf4dc81c26e14bf37e388aeb60fd25b4abd7', disabled: disabled }, !(hideLabel && hideHelperText) && (hAsync("ic-input-label", { key: '7bda8a8034ae7b80594341f6924d561abcbbab90', for: inputId, label: label, hideLabel: hideLabel, helperText: !hideHelperText ? helperText : "", disabled: disabled }, hAsync("slot", { key: 'da6a06701686398f4a44b71e76db5d02da897631', name: "helper-text", slot: "helper-text" }))), hAsync("span", { key: '62e88d54d2f445778e96be67949b1a82fc272955', id: this.screenReaderInfoId, class: "sr-only", "aria-hidden": "true" }, this.getScreenReaderInfo(validationStatus), hideLabel && `${label}\n`, hideHelperText && `${helperText}\n`, `${this.defaultHelperText}.`), hAsync("span", { key: '0a80156ecc1ddf0dea39033cc78de875ab7fa532', id: this.assistiveHintId, class: "sr-only", "aria-hidden": "true" }, assistiveHint), hAsync("span", { key: '09d36876b7dc4d8050bcb0e7d39a0b008bab4a12', id: "live-region", "aria-live": "assertive", class: "sr-only" }), hAsync("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" } }, hAsync("div", { key: '02a184415c1f445340b3d4a3097b28a79cd258fe', class: "input-container" }, hAsync("div", { key: 'a68248f5ad7a134ebe73456268b6f9cf07a35afa', class: "time-inputs" }, [
26045
+ }, onBlur: this.handleHostBlur, onFocus: this.handleHostFocus }, hAsync("ic-input-container", { key: '6fcc48d72a92ef2a0acf3f6b109e29b24c6608db', disabled: disabled }, !(hideLabel && hideHelperText) && (hAsync("ic-input-label", { key: '84364f527bbfeffed22d95df1ce879bb9cb55fde', for: inputId, label: label, hideLabel: hideLabel, helperText: !hideHelperText ? helperText : "", disabled: disabled }, hAsync("slot", { key: '4a993ddc9a3923e4fbe58f4abfd1d6f51ef63494', name: "helper-text", slot: "helper-text" }))), hAsync("span", { key: 'de2889971bef74376661a3fb0963c9bc88673e12', id: this.screenReaderInfoId, class: "sr-only", "aria-hidden": "true" }, this.getScreenReaderInfo(validationStatus), hideLabel && `${label}\n`, hideHelperText && `${helperText}\n`, `${this.defaultHelperText}.`), hAsync("span", { key: 'b68b686d6794d6ad1247f18c867b1652066b48da', id: this.assistiveHintId, class: "sr-only", "aria-hidden": "true" }, assistiveHint), hAsync("span", { key: '56557e76da321f937be614926cd3f41b4c9a09a8', id: "live-region", "aria-live": "assertive", class: "sr-only" }), hAsync("div", { key: '89cbb13ffe21d66fd82a28ad6b5b295cf68c5787', class: {
26046
+ "with-am-pm-toggle": this.showAmPmToggle === true,
26047
+ } }, hAsync("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" } }, hAsync("div", { key: '0fdf9d4191272a8b53e73d6230e10750032d5279', class: "input-container" }, hAsync("div", { key: 'c7b13f330ec67b48e817f4b87fff96ad6ad6102e', class: "time-inputs" }, [
25711
26048
  this.getInputsInOrder()[0],
25712
26049
  ":",
25713
26050
  this.getInputsInOrder()[1],
25714
26051
  !this.isHHMMFormat()
25715
26052
  ? [":", this.getInputsInOrder()[2]]
25716
26053
  : null,
25717
- ]), hAsync("div", { key: '095391d922701f29a7debfd2482723fe05d1fdeb', class: "action-buttons" }, showClearButton && (hAsync("ic-button", { key: '8690a529f57705b60ecbc3122925557803197ed8', id: "clear-button", "aria-label": "Clear input", class: {
26054
+ this.isSSSFormat()
26055
+ ? [".", this.getInputsInOrder()[3]]
26056
+ : null,
26057
+ ]), hAsync("div", { key: 'caf4926b8008875a111f6bb3aa0815cfb2e10768', class: "action-buttons" }, showClearButton && (hAsync("ic-button", { key: '9883c16dc3d60c6ea4d9d3cc3e4a770479339879', id: "clear-button", "aria-label": "Clear input", class: {
25718
26058
  ["clear-button"]: true,
25719
26059
  ["hidden"]: isEmptyString(this.hour) &&
25720
26060
  isEmptyString(this.minute) &&
25721
26061
  isEmptyString(this.second),
25722
- }, disabled: this.disabled, innerHTML: Clear$1, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showClockButton && (hAsync("div", { key: '83fe94cb9dc7b16f70049b36644d62f714e03c6f', class: "show-clock-button-wrapper" }, hAsync("div", { key: '34171a16f8058ad79af9ac3bfeb9c2aea06c0c91', class: { divider: showDivider, [size]: true } }), hAsync("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" })))))), hAsync("span", { key: 'b44af8625ff62cf77e8be3e88d62bcb411bd5dc0', id: this.selectedTimeInfoId, class: "sr-only", "aria-live": "polite" }, hAsync("span", { key: 'a68f8dac81536f4f14302d7be6151a20c7e92024', ref: (el) => (this.selectedTimeInfoEl = el), role: "status" })), hAsync("ic-input-validation", { key: 'c152fd0a46420a430bb61f619dbbb395f1dd41cb', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidTimeText, for: inputId, ariaLiveMode: validationAriaLive }))));
26062
+ }, disabled: this.disabled, innerHTML: Clear$2, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showClockButton && (hAsync("div", { key: '9ace5895419381c300bbdc5c8ef2eeacad05b63b', class: "show-clock-button-wrapper" }, hAsync("div", { key: 'dfa2a5bbf9e7bd74353d7caf3514861d545d6026', class: { divider: showDivider, [size]: true } }), hAsync("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 && (hAsync("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) => {
26063
+ if (e.key === "Tab" && e.shiftKey) {
26064
+ e.preventDefault();
26065
+ if (this.inputsInOrder && this.inputsInOrder.length > 0) {
26066
+ const lastInput = this.inputsInOrder[this.inputsInOrder.length - 1];
26067
+ lastInput === null || lastInput === void 0 ? void 0 : lastInput.focus();
26068
+ }
26069
+ }
26070
+ } }, hAsync("ic-toggle-button", { key: 'fc731674e7c26846a969768ddc77b94b14c6cca6', label: "AM", disabled: disabled, checked: true }), hAsync("ic-toggle-button", { key: '89e0bd48a39a8e786fcac5e034358edd560f4136', label: "PM", disabled: disabled })))), hAsync("span", { key: '52854ea1dc4a1c4e7783914ff90bf204848a2e6e', id: this.selectedTimeInfoId, class: "sr-only", "aria-live": "polite" }, hAsync("span", { key: '065c89020778df53ae78d037ef62feb189b7fdba', ref: (el) => (this.selectedTimeInfoEl = el), role: "status" })), hAsync("ic-input-validation", { key: 'fc2500bef0e8e077272424a46663a85509a160c3', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidTimeText, for: inputId, ariaLiveMode: validationAriaLive }))));
25723
26071
  }
25724
26072
  static get delegatesFocus() { return true; }
25725
26073
  get el() { return getElement(this); }
@@ -25727,6 +26075,8 @@ class TimeInput {
25727
26075
  "hour": ["watchInputHandler"],
25728
26076
  "minute": ["watchInputHandler"],
25729
26077
  "second": ["watchInputHandler"],
26078
+ "millisecond": ["watchInputHandler"],
26079
+ "period": ["watchInputHandler"],
25730
26080
  "disabled": ["watchDisabledHandler"],
25731
26081
  "helperText": ["watchHelperTextHandler"],
25732
26082
  "max": ["watchMaxHandler"],
@@ -25752,6 +26102,7 @@ class TimeInput {
25752
26102
  "min": [1],
25753
26103
  "name": [1],
25754
26104
  "required": [4],
26105
+ "showAmPmToggle": [1028, "show-am-pm-toggle"],
25755
26106
  "showClearButton": [4, "show-clear-button"],
25756
26107
  "showClockButton": [4, "show-clock-button"],
25757
26108
  "size": [1],
@@ -25769,8 +26120,864 @@ class TimeInput {
25769
26120
  "hour": [32],
25770
26121
  "minute": [32],
25771
26122
  "second": [32],
26123
+ "millisecond": [32],
26124
+ "period": [32],
25772
26125
  "getTime": [64],
25773
- "triggerIcChange": [64]
26126
+ "triggerIcTimeChange": [64]
26127
+ },
26128
+ "$listeners$": undefined,
26129
+ "$lazyBundleId$": "-",
26130
+ "$attrsToReflect$": []
26131
+ }; }
26132
+ }
26133
+
26134
+ var Check = `<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
26135
+ <path d="M8.79502 15.875L4.62502 11.705L3.20502 13.115L8.79502 18.705L20.795 6.70501L19.385 5.29501L8.79502 15.875Z" fill="currentColor"/>
26136
+ </svg>
26137
+ `;
26138
+
26139
+ var Clear = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
26140
+ <path d="M0 0h24v24H0z" fill="none"/>
26141
+ <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
26142
+ <title>close icon</title>
26143
+ </svg>
26144
+ `;
26145
+
26146
+ const icTimeSelectorCss = ":host(.ic-time-selector-small){--time-selector-padded-item-height:var(--ic-space-lg)}:host(.ic-time-selector-medium){--time-selector-padded-item-height:calc(\n var(--ic-space-lg) + var(--ic-space-xxs)\n )}:host(.ic-time-selector-large){--time-selector-padded-item-height:var(--ic-space-xl)}.ic-time-selector-dialog-container{background-color:var(--ic-time-picker-time-selector-bg);border:var(--ic-space-1px) solid var(--ic-time-picker-time-selector-border);border-radius:var(--ic-space-xxs);padding:var(--ic-space-xs);max-width:calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-xl) + var(--ic-space-xxs)\n );width:-moz-fit-content;width:fit-content}:host(.ic-time-selector-small) .ic-time-selector-dialog-container{padding:var(--ic-space-xxs);max-width:calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-lg) + var(--ic-space-xxs)\n )}:host(.ic-time-selector-large) .ic-time-selector-dialog-container{padding:var(--ic-space-md);max-width:calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-xl) + var(--ic-space-xs) +\n var(--ic-space-xxs)\n )}.ic-time-selector-item{height:var(--ic-space-lg);padding:var(--ic-space-xxxs);text-align:center;cursor:pointer;scroll-snap-align:start;transition:background 0.2s, color 0.2s}:host(.ic-time-selector-small) .ic-time-selector-item{padding:0}:host(.ic-time-selector-large) .ic-time-selector-item{padding:var(--ic-space-xxs)}.ic-time-selector-item:hover:not(.disabled):not(.selected){background-color:var(--ic-time-picker-time-bg-hover)}.ic-time-selector-item:active:not(.disabled):not(.selected){background-color:var(--ic-time-picker-time-bg-pressed)}.ic-time-selector-item.selected{background-color:var(--ic-time-picker-time-bg-selected);--ic-typography-color:var(--ic-time-picker-time-text-selected);position:relative}.ic-time-selector-item.selected:hover{background-color:var(--ic-time-picker-time-active-bg-hover)}.ic-time-selector-item.selected:active{background-color:var(--ic-time-picker-time-active-bg-pressed)}.ic-time-selector-colon-selected{background-color:var(--ic-time-picker-colon-bg-selected);color:var(--ic-time-picker-colon-selected) !important}.ic-time-selector-item.selected::before,.ic-time-selector-item.selected::after,.ic-time-selector-colon-selected::before,.ic-time-selector-colon-selected::after{content:\"\";position:absolute;left:0;right:0;height:var(--ic-space-1px);background:var(--ic-time-picker-time-selector-bg)}.ic-time-selector-item.selected::before,.ic-time-selector-colon-selected::before{top:0}.ic-time-selector-item.selected::after,.ic-time-selector-colon-selected::after{bottom:0}.ic-time-selector-item.disabled{--ic-typography-color:var(--ic-time-picker-time-text-disabled);cursor:not-allowed}.ic-time-selector-column-wrapper{display:flex;flex-direction:column}.ic-time-selector-scroll-row{height:var(--time-selector-padded-item-height) !important;background:transparent !important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default !important;box-sizing:border-box}:host(.ic-time-selector-small) .ic-time-selector-scroll-row-last{height:calc(var(--ic-space-1px) + var(--ic-space-xxxs)) !important}:host(.ic-time-selector-medium) .ic-time-selector-scroll-row-last,:host(.ic-time-selector-large) .ic-time-selector-scroll-row-last{height:calc(\n var(--ic-space-1px) + var(--ic-space-xxxs) + var(--ic-space-md)\n ) !important}.ic-time-selector-scroll-row:hover,.ic-time-selector-scroll-row:active{background:transparent !important}.ic-time-selector-header-row{color:var(--ic-time-picker-hh-label);--ic-typography-color:var(--ic-time-picker-hh-label) !important;background:transparent !important;text-align:center;height:var(--time-selector-padded-item-height);display:flex;align-items:center;justify-content:center}.ic-time-selector-header-border{position:absolute;left:0;right:0;top:var(--time-selector-padded-item-height);height:var(--ic-space-1px);background:var(--ic-time-picker-header-border);pointer-events:none}.ic-time-selector-colon{display:flex;align-items:center;justify-content:center;color:var(--ic-time-picker-colon-default);height:var(--time-selector-padded-item-height);margin-top:calc(3 * var(--time-selector-padded-item-height))}.ic-time-selector-columns{display:flex;flex-direction:row;border-bottom:var(--ic-space-1px) solid var(--ic-time-picker-lower-border);margin:0 var(--ic-space-xxs);position:relative;z-index:1}.ic-time-selector-highlight-lines{position:relative;width:100%}.ic-time-selector-highlight{position:absolute;left:0;right:0;width:100%;height:var(--ic-space-1px);background:var(--ic-time-picker-selection-border);pointer-events:none;z-index:1}.ic-time-selector-highlight-top{top:calc(3 * var(--time-selector-padded-item-height) - var(--ic-space-1px))}.ic-time-selector-highlight-bottom{top:calc(4 * var(--time-selector-padded-item-height))}.ic-time-selector-column{height:calc((5 * var(--ic-space-xxl)) + (3 * var(--ic-space-1px)));overflow-y:auto;width:calc(var(--ic-space-xl) + var(--ic-space-xs));position:relative;scroll-snap-type:y mandatory;scrollbar-width:none;-ms-overflow-style:none}:host(.ic-time-selector-small) .ic-time-selector-column{width:calc(var(--ic-space-xl) + var(--ic-space-xxs) + var(--ic-space-xxxs))}:host(.ic-time-selector-large) .ic-time-selector-column{width:calc(var(--ic-space-xl) + var(--ic-space-xs) + var(--ic-space-xxxs))}.ic-time-selector-column-period{margin-left:var(--ic-space-xxs)}.ic-time-selector-column::-webkit-scrollbar{display:none}.ic-time-selector-column:focus-visible,.ic-time-selector-item:focus-visible{outline:none;background-color:transparent}.ic-time-selector-column:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast);z-index:3}.ic-time-selector-list{list-style:none;margin:0;padding:0}.ic-time-selector-actions{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;width:100%;margin-top:var(--ic-space-xs);margin-left:auto}.ic-time-selector-check-btn{margin-left:calc(var(--ic-space-xs) + var(--ic-space-xxxs))}.sr-only{position:absolute;left:-9999px}@media (forced-colors: active){.ic-time-selector-item.selected{background-color:highlight !important}.ic-time-selector-item.disabled{--ic-typography-color:GrayText !important}.ic-time-selector-column:focus{border:var(--ic-border-hc)}.ic-time-selector-highlight{background:Highlight !important}}";
26147
+ var IcTimeSelectorStyle0 = icTimeSelectorCss;
26148
+
26149
+ const COLUMN_TYPES = ["hour", "minute", "second", "period"];
26150
+ const COLUMN_CLASS = ".ic-time-selector-column";
26151
+ const ITEM_CLASS = ".ic-time-selector-item";
26152
+ class TimeSelector {
26153
+ constructor(hostRef) {
26154
+ registerInstance(this, hostRef);
26155
+ this.icChange = createEvent(this, "icChange", 7);
26156
+ this.DEFAULT_TIME_FORMAT = "HH:MM:SS";
26157
+ this.minutes = Array.from({ length: 60 }, (_, i) => i);
26158
+ this.seconds = Array.from({ length: 60 }, (_, i) => i);
26159
+ this.periods = ["AM", "PM"];
26160
+ this.minTime = null;
26161
+ this.maxTime = null;
26162
+ this.ariaLiveMessage = "";
26163
+ /**
26164
+ * An array of times that will be disabled in the time selector. 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.
26165
+ */
26166
+ this.disableTimes = [];
26167
+ /**
26168
+ * 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.
26169
+ */
26170
+ this.min = "";
26171
+ /**
26172
+ * 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.
26173
+ */
26174
+ this.max = "";
26175
+ /**
26176
+ * The size of the time selector to be displayed.
26177
+ */
26178
+ this.size = "medium";
26179
+ /**
26180
+ * Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
26181
+ */
26182
+ this.theme = "inherit";
26183
+ /**
26184
+ * The format in which the time will be displayed.
26185
+ */
26186
+ this.timeFormat = this.DEFAULT_TIME_FORMAT;
26187
+ /**
26188
+ * The time period format: "12" for 12-hour, "24" for 24-hour. Defaults to "24".
26189
+ */
26190
+ this.timePeriod = "24";
26191
+ /**
26192
+ * The value of the time selector. 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.
26193
+ */
26194
+ this.value = "";
26195
+ this.setTimeParts = (hour, minute, second) => {
26196
+ let period = "AM";
26197
+ if (this.timePeriod === "12") {
26198
+ if (hour === 0) {
26199
+ hour = 12;
26200
+ period = "AM";
26201
+ }
26202
+ else if (hour === 12) {
26203
+ period = "PM";
26204
+ }
26205
+ else if (hour > 12) {
26206
+ hour = hour - 12;
26207
+ period = "PM";
26208
+ }
26209
+ else {
26210
+ period = "AM";
26211
+ }
26212
+ this.selectedHour = hour;
26213
+ this.selectedPeriod = period;
26214
+ }
26215
+ else {
26216
+ this.selectedHour = hour;
26217
+ }
26218
+ this.selectedMinute = minute;
26219
+ this.selectedSecond = second;
26220
+ };
26221
+ this.checkIfScrollIsFinished = (column, scrollTop) => {
26222
+ const isScrollFinished = setInterval(() => {
26223
+ if (column.scrollTop === scrollTop + 56) {
26224
+ column === null || column === void 0 ? void 0 : column.focus();
26225
+ clearInterval(isScrollFinished);
26226
+ }
26227
+ }, 25);
26228
+ };
26229
+ this.handleSelect = (type, value) => {
26230
+ var _a;
26231
+ const prevValue = this.getSelectedValue(type);
26232
+ switch (type) {
26233
+ case "hour":
26234
+ this.selectedHour = Number(value);
26235
+ break;
26236
+ case "minute":
26237
+ this.selectedMinute = Number(value);
26238
+ break;
26239
+ case "second":
26240
+ this.selectedSecond = Number(value);
26241
+ break;
26242
+ case "period":
26243
+ this.selectedPeriod = value;
26244
+ break;
26245
+ }
26246
+ const columns = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(COLUMN_CLASS);
26247
+ const idx = COLUMN_TYPES.indexOf(type);
26248
+ if (columns && columns[idx]) {
26249
+ columns[idx].focus();
26250
+ window.requestAnimationFrame(() => {
26251
+ this.scrollSelectedItem(type);
26252
+ });
26253
+ }
26254
+ if (prevValue === undefined || prevValue === null) {
26255
+ this.announceSelectedColumn(type);
26256
+ }
26257
+ else {
26258
+ this.lastAnnouncedType = type;
26259
+ this.lastAnnouncedValue = this.getSelectedValue(type);
26260
+ }
26261
+ };
26262
+ this.isTimeDisabled = (hour, minute, second, type) => {
26263
+ var _a, _b, _c, _d;
26264
+ for (const t of this.disableTimes) {
26265
+ if (typeof t === "string" || t instanceof Date) {
26266
+ const parts = parseTimeHelper(t).parts;
26267
+ if (parts &&
26268
+ parts.hour === hour &&
26269
+ parts.minute === minute &&
26270
+ parts.second === second) {
26271
+ return true;
26272
+ }
26273
+ }
26274
+ else if (t && typeof t === "object" && "start" in t && "end" in t) {
26275
+ const startParts = parseTimeHelper(t.start).parts;
26276
+ const endParts = parseTimeHelper(t.end).parts;
26277
+ if (startParts && endParts) {
26278
+ const timeVal = hour * 3600 + minute * 60 + second;
26279
+ const startVal = startParts.hour * 3600 + startParts.minute * 60 + startParts.second;
26280
+ const endVal = endParts.hour * 3600 + endParts.minute * 60 + endParts.second;
26281
+ if (timeVal >= startVal && timeVal <= endVal) {
26282
+ return true;
26283
+ }
26284
+ }
26285
+ }
26286
+ }
26287
+ if (this.min) {
26288
+ this.minTime = parseTimeHelper(this.min).date;
26289
+ if (this.minTime) {
26290
+ const minHour = this.minTime.getHours();
26291
+ const minMinute = this.minTime.getMinutes();
26292
+ const minSecond = this.minTime.getSeconds();
26293
+ if (type === "hour") {
26294
+ const highlightedMinute = (_a = this.selectedMinute) !== null && _a !== void 0 ? _a : minMinute;
26295
+ const highlightedSecond = (_b = this.selectedSecond) !== null && _b !== void 0 ? _b : minSecond;
26296
+ if (hour < minHour ||
26297
+ (hour === minHour && highlightedMinute < minMinute) ||
26298
+ (hour === minHour &&
26299
+ highlightedMinute === minMinute &&
26300
+ highlightedSecond < minSecond)) {
26301
+ return true;
26302
+ }
26303
+ }
26304
+ else if (type === "minute") {
26305
+ if (hour === minHour && minute < minMinute) {
26306
+ return true;
26307
+ }
26308
+ }
26309
+ else if (type === "second") {
26310
+ if (hour === minHour && minute === minMinute && second < minSecond) {
26311
+ return true;
26312
+ }
26313
+ }
26314
+ else {
26315
+ if (hour < minHour ||
26316
+ (hour === minHour && minute < minMinute) ||
26317
+ (hour === minHour && minute === minMinute && second < minSecond)) {
26318
+ return true;
26319
+ }
26320
+ }
26321
+ }
26322
+ }
26323
+ if (this.max) {
26324
+ this.maxTime = parseTimeHelper(this.max).date;
26325
+ if (this.maxTime) {
26326
+ const maxHour = this.maxTime.getHours();
26327
+ const maxMinute = this.maxTime.getMinutes();
26328
+ const maxSecond = this.maxTime.getSeconds();
26329
+ if (type === "hour") {
26330
+ const selectedMinute = (_c = this.selectedMinute) !== null && _c !== void 0 ? _c : 59;
26331
+ const selectedSecond = (_d = this.selectedSecond) !== null && _d !== void 0 ? _d : 59;
26332
+ if (hour > maxHour ||
26333
+ (hour === maxHour && selectedMinute > maxMinute) ||
26334
+ (hour === maxHour &&
26335
+ selectedMinute === maxMinute &&
26336
+ selectedSecond > maxSecond)) {
26337
+ return true;
26338
+ }
26339
+ }
26340
+ else if (type === "minute") {
26341
+ if (hour === maxHour && minute > maxMinute) {
26342
+ return true;
26343
+ }
26344
+ }
26345
+ else if (type === "second") {
26346
+ if (hour === maxHour && minute === maxMinute && second > maxSecond) {
26347
+ return true;
26348
+ }
26349
+ }
26350
+ else {
26351
+ if (hour > maxHour ||
26352
+ (hour === maxHour && minute > maxMinute) ||
26353
+ (hour === maxHour && minute === maxMinute && second > maxSecond)) {
26354
+ return true;
26355
+ }
26356
+ }
26357
+ }
26358
+ }
26359
+ return false;
26360
+ };
26361
+ this.handleColumnKeyDown = (type, event) => {
26362
+ var _a, _b, _c, _d, _e, _f, _g;
26363
+ const columns = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(COLUMN_CLASS);
26364
+ const idx = COLUMN_TYPES.indexOf(type);
26365
+ if (!columns)
26366
+ return;
26367
+ const values = this.getColumnValues(type);
26368
+ const selected = this.getSelectedValue(type);
26369
+ const col = columns[idx];
26370
+ if (!col)
26371
+ return;
26372
+ const selectHighlighted = () => {
26373
+ const highlighted = this.getHighlightedValue(type, col);
26374
+ if (highlighted !== null) {
26375
+ this.handleSelect(type, highlighted);
26376
+ }
26377
+ else if (values.length > 0) {
26378
+ this.handleSelect(type, values[0]);
26379
+ }
26380
+ };
26381
+ switch (event.key) {
26382
+ case "Enter":
26383
+ case " ":
26384
+ event.preventDefault();
26385
+ selectHighlighted();
26386
+ return;
26387
+ case "ArrowRight":
26388
+ event.preventDefault();
26389
+ selectHighlighted();
26390
+ if (idx < columns.length - 1) {
26391
+ (_b = columns[idx + 1]) === null || _b === void 0 ? void 0 : _b.focus();
26392
+ }
26393
+ return;
26394
+ case "ArrowLeft":
26395
+ event.preventDefault();
26396
+ if (idx > 0)
26397
+ (_c = columns[idx - 1]) === null || _c === void 0 ? void 0 : _c.focus();
26398
+ return;
26399
+ case "Tab":
26400
+ if (event.shiftKey) {
26401
+ if (idx === 0) {
26402
+ return;
26403
+ }
26404
+ else {
26405
+ event.preventDefault();
26406
+ (_d = columns[idx - 1]) === null || _d === void 0 ? void 0 : _d.focus();
26407
+ }
26408
+ }
26409
+ else {
26410
+ event.preventDefault();
26411
+ selectHighlighted();
26412
+ this.announceSelectedColumn(type);
26413
+ if (idx < columns.length - 1) {
26414
+ (_e = columns[idx + 1]) === null || _e === void 0 ? void 0 : _e.focus();
26415
+ }
26416
+ else {
26417
+ (_g = (_f = this.el.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelector(".ic-time-selector-clear-btn")) === null || _g === void 0 ? void 0 : _g.focus();
26418
+ this.updateAriaLiveMessage();
26419
+ }
26420
+ }
26421
+ return;
26422
+ case "ArrowUp":
26423
+ case "ArrowDown": {
26424
+ let idxInValues = values.findIndex((v) => v === selected);
26425
+ if (idxInValues === -1)
26426
+ idxInValues = 0;
26427
+ let newIdx = idxInValues;
26428
+ const direction = event.key === "ArrowUp" ? -1 : 1;
26429
+ const maxIdx = values.length - 1;
26430
+ do {
26431
+ newIdx += direction;
26432
+ } while (newIdx >= 0 &&
26433
+ newIdx <= maxIdx &&
26434
+ (() => {
26435
+ var _a, _b, _c;
26436
+ if (type === "hour" || type === "minute" || type === "second") {
26437
+ const hour = type === "hour"
26438
+ ? values[newIdx]
26439
+ : (_a = this.selectedHour) !== null && _a !== void 0 ? _a : 0;
26440
+ const minute = type === "minute"
26441
+ ? values[newIdx]
26442
+ : (_b = this.selectedMinute) !== null && _b !== void 0 ? _b : 0;
26443
+ const second = type === "second"
26444
+ ? values[newIdx]
26445
+ : (_c = this.selectedSecond) !== null && _c !== void 0 ? _c : 0;
26446
+ return this.isTimeDisabled(hour, minute, second);
26447
+ }
26448
+ return false;
26449
+ })());
26450
+ this.ariaLiveMessage = `Selected ${type}: ${values[newIdx]}`;
26451
+ if (newIdx >= 0 && newIdx <= maxIdx && newIdx !== idxInValues) {
26452
+ this.handleSelect(type, values[newIdx]);
26453
+ }
26454
+ return;
26455
+ }
26456
+ default:
26457
+ return;
26458
+ }
26459
+ };
26460
+ this.renderColumn = (type, values, selected) => {
26461
+ const isTimeColumn = type === "hour" || type === "minute" || type === "second";
26462
+ const isPeriodColumn = type === "period";
26463
+ const headerLabel = this.getHeaderLabel(type);
26464
+ const topSpacerCount = 2;
26465
+ let bottomSpacerCount = 6;
26466
+ if (this.size === "large") {
26467
+ bottomSpacerCount = 5;
26468
+ }
26469
+ else if (this.size === "small") {
26470
+ bottomSpacerCount = 8;
26471
+ }
26472
+ return (hAsync("div", { class: "ic-time-selector-column-wrapper" }, isPeriodColumn ? (hAsync("div", { class: "ic-time-selector-header-row" })) : (headerLabel && (hAsync("div", { class: "ic-time-selector-header-row" }, hAsync("ic-typography", { variant: "subtitle-small" }, headerLabel)))), hAsync("div", { class: {
26473
+ "ic-time-selector-column": true,
26474
+ "ic-time-selector-column-period": isPeriodColumn,
26475
+ }, tabIndex: 0, onKeyDown: (e) => this.handleColumnKeyDown(type, e) }, hAsync("ul", { class: "ic-time-selector-list", role: "listbox", "aria-label": type }, this.renderScrollRows(topSpacerCount, `${type}-top-spacer`), values.map((val) => {
26476
+ var _a, _b, _c;
26477
+ let disabled = false;
26478
+ if (isTimeColumn) {
26479
+ const hour = type === "hour" ? val : (_a = this.selectedHour) !== null && _a !== void 0 ? _a : 0;
26480
+ const minute = type === "minute"
26481
+ ? val
26482
+ : (_b = this.selectedMinute) !== null && _b !== void 0 ? _b : 0;
26483
+ const second = type === "second"
26484
+ ? val
26485
+ : (_c = this.selectedSecond) !== null && _c !== void 0 ? _c : 0;
26486
+ disabled = this.isTimeDisabled(hour, minute, second, type);
26487
+ }
26488
+ return (hAsync("li", { class: {
26489
+ "ic-time-selector-item": true,
26490
+ selected: val === selected,
26491
+ disabled,
26492
+ }, role: "option", "aria-selected": val === selected ? "true" : "false", "aria-disabled": disabled ? "true" : "false", onClick: () => !disabled && this.handleSelect(type, val), tabIndex: -1, key: `${type}-val-${val}` }, hAsync("ic-typography", { variant: "subtitle-small" }, typeof val === "number"
26493
+ ? val.toString().padStart(2, "0")
26494
+ : val)));
26495
+ }), (isTimeColumn || isPeriodColumn) &&
26496
+ this.renderScrollRows(bottomSpacerCount, `${type}-bottom-spacer`)))));
26497
+ };
26498
+ this.handleClear = () => {
26499
+ this.selectedHour = undefined;
26500
+ this.scrollSelectedItem("hour", true);
26501
+ this.selectedMinute = undefined;
26502
+ this.scrollSelectedItem("minute", true);
26503
+ this.selectedSecond = undefined;
26504
+ this.scrollSelectedItem("second", true);
26505
+ this.selectedPeriod = undefined;
26506
+ this.scrollSelectedItem("period", true);
26507
+ this.lastAnnouncedType = undefined;
26508
+ this.lastAnnouncedValue = undefined;
26509
+ this.icChange.emit({
26510
+ value: null,
26511
+ timeString: null,
26512
+ timeObject: {
26513
+ hour: null,
26514
+ minute: null,
26515
+ second: null,
26516
+ period: undefined,
26517
+ },
26518
+ });
26519
+ };
26520
+ this.handleConfirmClick = () => {
26521
+ const hour = this.selectedHour != null ? this.selectedHour : null;
26522
+ const minute = this.selectedMinute != null ? this.selectedMinute : null;
26523
+ const second = this.selectedSecond != null ? this.selectedSecond : null;
26524
+ const period = this.selectedPeriod;
26525
+ const hourStr = hour != null ? hour.toString().padStart(2, "0") : null;
26526
+ const minuteStr = minute != null ? minute.toString().padStart(2, "0") : null;
26527
+ const secondStr = second != null ? second.toString().padStart(2, "0") : null;
26528
+ let allSelected = false;
26529
+ if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {
26530
+ allSelected = hour !== null && minute !== null && second !== null;
26531
+ }
26532
+ else {
26533
+ allSelected = hour !== null && minute !== null;
26534
+ }
26535
+ let value = null;
26536
+ let timeString = null;
26537
+ if (allSelected) {
26538
+ let date24hours = hour;
26539
+ if (hour != null && period && this.timePeriod === "12") {
26540
+ if (period === "PM" && hour < 12)
26541
+ date24hours = hour + 12;
26542
+ if (period === "AM" && hour === 12)
26543
+ date24hours = 0;
26544
+ }
26545
+ value = new Date();
26546
+ value.setHours(date24hours !== null && date24hours !== void 0 ? date24hours : 0);
26547
+ value.setMinutes(minute !== null && minute !== void 0 ? minute : 0);
26548
+ value.setSeconds(second !== null && second !== void 0 ? second : 0);
26549
+ value.setMilliseconds(0);
26550
+ if (this.timeFormat === "HH:MM") {
26551
+ timeString = hourStr + ":" + minuteStr + (period ? " " + period : "");
26552
+ }
26553
+ else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {
26554
+ timeString =
26555
+ hourStr +
26556
+ ":" +
26557
+ minuteStr +
26558
+ ":" +
26559
+ secondStr +
26560
+ (period ? " " + period : "");
26561
+ }
26562
+ this.value = value;
26563
+ }
26564
+ this.icChange.emit({
26565
+ value: allSelected ? value : null,
26566
+ timeString: allSelected ? timeString : null,
26567
+ timeObject: Object.assign({ hour: hourStr, minute: minuteStr, second: secondStr }, (period ? { period } : {})),
26568
+ });
26569
+ };
26570
+ }
26571
+ watchMinHandler() {
26572
+ this.minTime = parseTimeHelper(this.min).date;
26573
+ }
26574
+ watchMaxHandler() {
26575
+ this.maxTime = parseTimeHelper(this.max).date;
26576
+ }
26577
+ watchValueHandler() {
26578
+ this.setTime(this.value);
26579
+ setTimeout(() => {
26580
+ this.scrollSelectedItem("hour");
26581
+ this.scrollSelectedItem("minute");
26582
+ if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {
26583
+ this.scrollSelectedItem("second");
26584
+ }
26585
+ if (this.timePeriod === "12") {
26586
+ this.scrollSelectedItem("period");
26587
+ }
26588
+ }, 0);
26589
+ }
26590
+ componentWillLoad() {
26591
+ this.setTime(this.value);
26592
+ }
26593
+ componentDidLoad() {
26594
+ setTimeout(() => {
26595
+ if (this.selectedHour !== undefined && this.selectedHour !== null) {
26596
+ this.scrollSelectedItem("hour");
26597
+ }
26598
+ else if (this.min) {
26599
+ this.scrollMinTime("hour");
26600
+ }
26601
+ if (this.selectedMinute !== undefined && this.selectedMinute !== null) {
26602
+ this.scrollSelectedItem("minute");
26603
+ }
26604
+ else if (this.min) {
26605
+ this.scrollMinTime("minute");
26606
+ }
26607
+ if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {
26608
+ if (this.selectedSecond !== undefined && this.selectedSecond !== null) {
26609
+ this.scrollSelectedItem("second");
26610
+ }
26611
+ else if (this.min) {
26612
+ this.scrollMinTime("second");
26613
+ }
26614
+ }
26615
+ if (this.timePeriod === "12") {
26616
+ if (this.selectedPeriod !== undefined && this.selectedPeriod !== null) {
26617
+ this.scrollSelectedItem("period");
26618
+ }
26619
+ else if (this.min) {
26620
+ this.scrollMinTime("period");
26621
+ }
26622
+ }
26623
+ this.updateAriaLiveMessage();
26624
+ }, 0);
26625
+ }
26626
+ getHeaderLabel(type) {
26627
+ switch (type) {
26628
+ case "hour":
26629
+ return "HH";
26630
+ case "minute":
26631
+ return "MM";
26632
+ case "second":
26633
+ return "SS";
26634
+ default:
26635
+ return "";
26636
+ }
26637
+ }
26638
+ setTime(time) {
26639
+ if (time === null || time === undefined || time === "") {
26640
+ this.handleClear();
26641
+ return;
26642
+ }
26643
+ if (typeof time === "string") {
26644
+ const zuluMatch = time.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.[0-9]{1,3})?Z?$/);
26645
+ if (zuluMatch) {
26646
+ this.setTimeParts(Number(zuluMatch[1]), Number(zuluMatch[2]), Number(zuluMatch[3]));
26647
+ }
26648
+ else {
26649
+ const parts = time.split(":");
26650
+ this.setTimeParts(Number(parts[0]) || 0, Number(parts[1]) || 0, Number(parts[2]) || 0);
26651
+ }
26652
+ }
26653
+ else {
26654
+ const { parts } = parseTimeHelper(time);
26655
+ if (parts) {
26656
+ this.setTimeParts(parts.hour, parts.minute, parts.second);
26657
+ }
26658
+ }
26659
+ }
26660
+ renderScrollRows(count, keyPrefix = "scroll-row") {
26661
+ return Array.from({ length: count }).map((_, i) => {
26662
+ const isLast = keyPrefix.endsWith("bottom-spacer")
26663
+ ? i === count - 1
26664
+ : false;
26665
+ return (hAsync("li", { class: Object.assign({ "ic-time-selector-item": true, "ic-time-selector-scroll-row": true }, (isLast ? { "ic-time-selector-scroll-row-last": true } : {})), "aria-hidden": "true", tabIndex: -1, key: `${keyPrefix}-${i}` }));
26666
+ });
26667
+ }
26668
+ scrollSelectedItem(colClass, clear) {
26669
+ var _a;
26670
+ const columns = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(COLUMN_CLASS);
26671
+ let colIdx = COLUMN_TYPES.indexOf(colClass);
26672
+ if (colClass === "period" && (columns === null || columns === void 0 ? void 0 : columns.length)) {
26673
+ colIdx = columns.length - 1;
26674
+ }
26675
+ const col = columns === null || columns === void 0 ? void 0 : columns[colIdx];
26676
+ if (col) {
26677
+ const items = col.querySelectorAll(ITEM_CLASS);
26678
+ let selectedIdx = -1;
26679
+ items.forEach((item, idx) => {
26680
+ if (item.classList.contains("selected"))
26681
+ selectedIdx = idx;
26682
+ });
26683
+ if (clear) {
26684
+ selectedIdx = 0;
26685
+ }
26686
+ if (selectedIdx > -1) {
26687
+ const scrollRow = col.querySelector(".ic-time-selector-scroll-row");
26688
+ let resolvedHeight = 0;
26689
+ if (scrollRow) {
26690
+ resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);
26691
+ }
26692
+ const offset = resolvedHeight * 2;
26693
+ const scrollTop = items[selectedIdx].offsetTop - offset;
26694
+ const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
26695
+ col.scrollTo({
26696
+ top: scrollTop,
26697
+ behavior: prefersReducedMotion ? "instant" : "smooth",
26698
+ });
26699
+ if (clear) {
26700
+ setTimeout(() => {
26701
+ var _a;
26702
+ const columns = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(COLUMN_CLASS);
26703
+ if (columns && columns.length > 0) {
26704
+ this.checkIfScrollIsFinished(columns[0], scrollTop);
26705
+ }
26706
+ }, 300);
26707
+ }
26708
+ }
26709
+ }
26710
+ }
26711
+ scrollMinTime(colClass) {
26712
+ var _a;
26713
+ const columns = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(COLUMN_CLASS);
26714
+ const colIdx = COLUMN_TYPES.indexOf(colClass);
26715
+ const col = columns === null || columns === void 0 ? void 0 : columns[colIdx];
26716
+ if (!col)
26717
+ return;
26718
+ const items = col.querySelectorAll(ITEM_CLASS);
26719
+ let minHour = 0, minMinute = 0, minSecond = 0;
26720
+ if (this.minTime) {
26721
+ minHour = this.minTime.getHours() + 2;
26722
+ minMinute = this.minTime.getMinutes() + 2;
26723
+ minSecond = this.minTime.getSeconds();
26724
+ }
26725
+ else if (this.min) {
26726
+ const minDate = parseTimeHelper(this.min).date;
26727
+ if (minDate) {
26728
+ minHour = minDate.getHours();
26729
+ minMinute = minDate.getMinutes();
26730
+ minSecond = minDate.getSeconds();
26731
+ }
26732
+ }
26733
+ let targetIdx = -1;
26734
+ const values = this.getColumnValues(colClass);
26735
+ if (colClass === "hour") {
26736
+ targetIdx = values.findIndex((v) => v === minHour);
26737
+ }
26738
+ else if (colClass === "minute") {
26739
+ targetIdx = values.findIndex((v) => v === minMinute);
26740
+ }
26741
+ else if (colClass === "second") {
26742
+ targetIdx = values.findIndex((v) => v === minSecond);
26743
+ }
26744
+ else if (colClass === "period") {
26745
+ let period = "AM";
26746
+ if (this.timePeriod === "12") {
26747
+ if (minHour === 0) {
26748
+ period = "AM";
26749
+ }
26750
+ else if (minHour === 12) {
26751
+ period = "PM";
26752
+ }
26753
+ else if (minHour > 12) {
26754
+ period = "PM";
26755
+ }
26756
+ else {
26757
+ period = "AM";
26758
+ }
26759
+ }
26760
+ targetIdx = values.findIndex((v) => v === period);
26761
+ }
26762
+ if (targetIdx > -1) {
26763
+ const scrollRow = col.querySelector(".ic-time-selector-scroll-row");
26764
+ let resolvedHeight = 0;
26765
+ if (scrollRow) {
26766
+ resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);
26767
+ }
26768
+ const offset = resolvedHeight * 2;
26769
+ const scrollTop = items[targetIdx].offsetTop - offset;
26770
+ const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
26771
+ col.scrollTo({
26772
+ top: scrollTop,
26773
+ behavior: prefersReducedMotion ? "instant" : "smooth",
26774
+ });
26775
+ }
26776
+ }
26777
+ announceSelectedColumn(type) {
26778
+ const value = this.getSelectedValue(type);
26779
+ if (value !== null &&
26780
+ value !== undefined &&
26781
+ (type !== this.lastAnnouncedType || value !== this.lastAnnouncedValue)) {
26782
+ this.ariaLiveMessage = `Selected ${type}: ${value}`;
26783
+ }
26784
+ else {
26785
+ this.ariaLiveMessage = "";
26786
+ }
26787
+ this.lastAnnouncedType = type;
26788
+ this.lastAnnouncedValue = value;
26789
+ }
26790
+ getColumnValues(type) {
26791
+ if (type === "hour")
26792
+ return this.timePeriod === "12"
26793
+ ? Array.from({ length: 12 }, (_, i) => i + 1)
26794
+ : Array.from({ length: 24 }, (_, i) => i);
26795
+ if (type === "minute")
26796
+ return this.minutes;
26797
+ if (type === "second")
26798
+ return this.seconds;
26799
+ if (type === "period")
26800
+ return this.periods;
26801
+ return [];
26802
+ }
26803
+ getSelectedValue(type) {
26804
+ var _a, _b, _c, _d;
26805
+ if (type === "hour")
26806
+ return (_a = this.selectedHour) !== null && _a !== void 0 ? _a : null;
26807
+ if (type === "minute")
26808
+ return (_b = this.selectedMinute) !== null && _b !== void 0 ? _b : null;
26809
+ if (type === "second")
26810
+ return (_c = this.selectedSecond) !== null && _c !== void 0 ? _c : null;
26811
+ if (type === "period")
26812
+ return (_d = this.selectedPeriod) !== null && _d !== void 0 ? _d : null;
26813
+ return null;
26814
+ }
26815
+ getHighlightedValue(type, col) {
26816
+ var _a, _b, _c;
26817
+ const items = Array.from(col.querySelectorAll(ITEM_CLASS));
26818
+ const realItems = items.filter((item) => !item.classList.contains("ic-time-selector-scroll-row"));
26819
+ if (realItems.length === 0)
26820
+ return null;
26821
+ const highlightTop = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".ic-time-selector-highlight-top");
26822
+ const highlightBottom = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(".ic-time-selector-highlight-bottom");
26823
+ if (!highlightTop || !highlightBottom)
26824
+ return null;
26825
+ const topRect = highlightTop.getBoundingClientRect();
26826
+ const bottomRect = highlightBottom.getBoundingClientRect();
26827
+ const highlightStart = topRect.bottom;
26828
+ const highlightEnd = bottomRect.top;
26829
+ for (const item of realItems) {
26830
+ const itemRect = item.getBoundingClientRect();
26831
+ const itemCenter = itemRect.top + itemRect.height / 2;
26832
+ if (itemCenter >= highlightStart && itemCenter <= highlightEnd) {
26833
+ const key = item.getAttribute("key");
26834
+ if (key) {
26835
+ const valStr = key.replace(`${type}-val-`, "");
26836
+ if (type === "hour" || type === "minute" || type === "second") {
26837
+ return Number(valStr);
26838
+ }
26839
+ else {
26840
+ return valStr;
26841
+ }
26842
+ }
26843
+ const text = (_c = item.textContent) === null || _c === void 0 ? void 0 : _c.trim();
26844
+ if (type === "hour" || type === "minute" || type === "second") {
26845
+ return text ? Number(text) : null;
26846
+ }
26847
+ else {
26848
+ return text;
26849
+ }
26850
+ }
26851
+ }
26852
+ return null;
26853
+ }
26854
+ updateAriaLiveMessage() {
26855
+ const hourStr = this.selectedHour != null
26856
+ ? this.selectedHour.toString().padStart(2, "0")
26857
+ : null;
26858
+ const minuteStr = this.selectedMinute != null
26859
+ ? this.selectedMinute.toString().padStart(2, "0")
26860
+ : null;
26861
+ const secondStr = this.selectedSecond != null
26862
+ ? this.selectedSecond.toString().padStart(2, "0")
26863
+ : null;
26864
+ let timeString = "";
26865
+ let allSelected = false;
26866
+ if (this.timeFormat === "HH:MM") {
26867
+ allSelected = hourStr !== null && minuteStr !== null;
26868
+ if (allSelected) {
26869
+ timeString =
26870
+ hourStr +
26871
+ ":" +
26872
+ minuteStr +
26873
+ (this.selectedPeriod ? " " + this.selectedPeriod : "");
26874
+ }
26875
+ }
26876
+ else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {
26877
+ allSelected =
26878
+ hourStr !== null && minuteStr !== null && secondStr !== null;
26879
+ if (allSelected) {
26880
+ timeString =
26881
+ hourStr +
26882
+ ":" +
26883
+ minuteStr +
26884
+ ":" +
26885
+ secondStr +
26886
+ (this.selectedPeriod ? " " + this.selectedPeriod : "");
26887
+ }
26888
+ }
26889
+ this.ariaLiveMessage =
26890
+ allSelected && timeString ? `Selected time: ${timeString}` : "";
26891
+ }
26892
+ render() {
26893
+ var _a, _b, _c, _d;
26894
+ const hours = this.timePeriod === "12"
26895
+ ? Array.from({ length: 12 }, (_, i) => i + 1)
26896
+ : Array.from({ length: 24 }, (_, i) => i);
26897
+ const timeFormat = this.timeFormat || this.DEFAULT_TIME_FORMAT;
26898
+ const columns = [
26899
+ this.renderColumn("hour", hours, (_a = this.selectedHour) !== null && _a !== void 0 ? _a : null),
26900
+ this.renderColumn("minute", this.minutes, (_b = this.selectedMinute) !== null && _b !== void 0 ? _b : null),
26901
+ ];
26902
+ if (timeFormat === this.DEFAULT_TIME_FORMAT) {
26903
+ columns.push(this.renderColumn("second", this.seconds, (_c = this.selectedSecond) !== null && _c !== void 0 ? _c : null));
26904
+ }
26905
+ let colonSelectedStates = [];
26906
+ if (timeFormat === this.DEFAULT_TIME_FORMAT) {
26907
+ colonSelectedStates = [
26908
+ this.selectedHour !== undefined && this.selectedMinute !== undefined,
26909
+ this.selectedMinute !== undefined && this.selectedSecond !== undefined,
26910
+ ];
26911
+ }
26912
+ else {
26913
+ colonSelectedStates = [
26914
+ this.selectedHour !== undefined && this.selectedMinute !== undefined,
26915
+ ];
26916
+ }
26917
+ const isInPicker = this.el.closest("ic-time-picker") !== null;
26918
+ const { size, theme, timePeriod } = this;
26919
+ return (hAsync(Host, { key: '0a25adbaeba34a4dcd3ef15edd5076d8ed4ad0a5', class: {
26920
+ [`ic-theme-${theme}`]: theme !== "inherit",
26921
+ [`ic-time-selector-${size}`]: true,
26922
+ } }, hAsync("div", { key: 'e65b452fb22c989b634fd1d8839ecf3bcb5c8a96', role: isInPicker ? "dialog" : undefined, "aria-modal": isInPicker ? true : undefined, "aria-label": "Select time. Use arrow keys to navigate and select the options and then tab to move onto the next selection.", class: {
26923
+ "ic-time-selector-dialog-container": true,
26924
+ } }, hAsync("div", { key: '178213ede67d838f70b8bd164aac6481a97b03eb', class: "ic-time-selector-highlight-lines" }, hAsync("div", { key: 'c10de931f6cba5496de152f1fdfc87a118413e08', class: "ic-time-selector-header-border" }), hAsync("div", { key: '440b09028d77256e9b0bb18cc2f24550eac5f30d', class: {
26925
+ "ic-time-selector-highlight": true,
26926
+ "ic-time-selector-highlight-top": true,
26927
+ } }), hAsync("div", { key: 'eed615b5bbd35c5b0d0a5b3625710b00675856ab', class: "ic-time-selector-columns" }, columns.map((col, idx) => [
26928
+ col,
26929
+ idx < columns.length - 1 ? (hAsync("ic-typography", { class: {
26930
+ "ic-time-selector-colon": true,
26931
+ "ic-time-selector-colon-selected": colonSelectedStates[idx],
26932
+ }, variant: "subtitle-small", "aria-hidden": "true", key: `colon-${idx}` }, ":")) : null,
26933
+ ]), timePeriod !== "24" &&
26934
+ this.renderColumn("period", this.periods, (_d = this.selectedPeriod) !== null && _d !== void 0 ? _d : null)), hAsync("div", { key: '8b2b12a4e907c615b7e79d9801d5840d522e775d', class: {
26935
+ "ic-time-selector-highlight": true,
26936
+ "ic-time-selector-highlight-bottom": true,
26937
+ } })), hAsync("div", { key: '0d3a320315b1cf0557b8d281b6e468ef517b7ff4', class: "ic-time-selector-actions" }, hAsync("ic-button", { key: '70d842672493c3a63ced6571d7e1ab6afba2abdf', variant: "icon-tertiary", "aria-label": "Clear time", class: {
26938
+ "ic-time-selector-clear-btn": true,
26939
+ }, onClick: this.handleClear, disabled: this.selectedHour === undefined &&
26940
+ this.selectedMinute === undefined &&
26941
+ this.selectedSecond === undefined &&
26942
+ this.selectedPeriod === undefined, size: size, tabIndex: 0, onKeyDown: (e) => {
26943
+ var _a;
26944
+ if (e.key === "Tab" && e.shiftKey) {
26945
+ e.preventDefault();
26946
+ const columns = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(COLUMN_CLASS);
26947
+ if (columns && columns.length > 0) {
26948
+ const lastCol = columns[columns.length - 1];
26949
+ lastCol === null || lastCol === void 0 ? void 0 : lastCol.focus();
26950
+ }
26951
+ }
26952
+ } }, hAsync("span", { key: '45c66f9552c10be9e3b466342c6e7d22fd7df90b', "aria-hidden": "true", innerHTML: Clear })), hAsync("ic-button", { key: 'eae553c514bc635a71220b969044df8d32e457bb', variant: "icon-tertiary", "aria-label": "Select time", class: "ic-time-selector-check-btn", onClick: this.handleConfirmClick, disabled: this.selectedHour === undefined &&
26953
+ this.selectedMinute === undefined &&
26954
+ this.selectedSecond === undefined &&
26955
+ this.selectedPeriod === undefined, size: size, tabIndex: 0 }, hAsync("span", { key: 'f586f8d1b2659d3cf2f0f8e7365ebcd9828ebf23', "aria-hidden": "true", innerHTML: Check })))), hAsync("div", { key: '27dd2db88615040635a0b61b9e785d50a488d90a', class: "sr-only", "aria-live": "polite" }, this.ariaLiveMessage)));
26956
+ }
26957
+ get el() { return getElement(this); }
26958
+ static get watchers() { return {
26959
+ "min": ["watchMinHandler"],
26960
+ "max": ["watchMaxHandler"],
26961
+ "value": ["watchValueHandler"]
26962
+ }; }
26963
+ static get style() { return IcTimeSelectorStyle0; }
26964
+ static get cmpMeta() { return {
26965
+ "$flags$": 9,
26966
+ "$tagName$": "ic-time-selector",
26967
+ "$members$": {
26968
+ "disableTimes": [16],
26969
+ "min": [1],
26970
+ "max": [1],
26971
+ "size": [1],
26972
+ "theme": [1],
26973
+ "timeFormat": [1, "time-format"],
26974
+ "timePeriod": [1, "time-period"],
26975
+ "value": [1025],
26976
+ "selectedHour": [32],
26977
+ "selectedMinute": [32],
26978
+ "selectedSecond": [32],
26979
+ "selectedPeriod": [32],
26980
+ "ariaLiveMessage": [32]
25774
26981
  },
25775
26982
  "$listeners$": undefined,
25776
26983
  "$lazyBundleId$": "-",
@@ -26300,6 +27507,7 @@ class ToggleButtonGroup {
26300
27507
  key: null,
26301
27508
  shift: false,
26302
27509
  };
27510
+ this.externallySetActiveToggle = null;
26303
27511
  /**
26304
27512
  * The accessible label of the toggle button group component to provide context for screen reader users.
26305
27513
  */
@@ -26383,7 +27591,15 @@ class ToggleButtonGroup {
26383
27591
  key !== "ArrowUp")
26384
27592
  return;
26385
27593
  const toggleButtonOptions = this.getAllToggleButtons();
26386
- const targetToggle = toggleButtonOptions[this.getNextItemToSelect(toggleButtonOptions.indexOf(toggleButtonOptions.filter((el) => el === document.activeElement)[0]), key === "ArrowDown" || key === "ArrowRight")];
27594
+ let targetToggle;
27595
+ if (this.externallySetActiveToggle) {
27596
+ targetToggle =
27597
+ toggleButtonOptions[this.getNextItemToSelect(toggleButtonOptions.indexOf(toggleButtonOptions.filter((el) => el === this.externallySetActiveToggle)[0]), key === "ArrowDown" || key === "ArrowRight")];
27598
+ }
27599
+ else {
27600
+ targetToggle =
27601
+ toggleButtonOptions[this.getNextItemToSelect(toggleButtonOptions.indexOf(toggleButtonOptions.filter((el) => el === document.activeElement)[0]), key === "ArrowDown" || key === "ArrowRight")];
27602
+ }
26387
27603
  if (this.selectMethod === "auto") {
26388
27604
  // trigger selectHandler when unable to add 'target'
26389
27605
  targetToggle.checked = true;
@@ -26493,6 +27709,12 @@ class ToggleButtonGroup {
26493
27709
  });
26494
27710
  }
26495
27711
  }
27712
+ /**
27713
+ * @internal Used to enable other components to set the active toggle button when toggle button group is in a shadow dom.
27714
+ */
27715
+ async setActiveToggle(toggle) {
27716
+ this.externallySetActiveToggle = toggle;
27717
+ }
26496
27718
  componentWillLoad() {
26497
27719
  if (this.selectType === "multi")
26498
27720
  this.selectMethod = "manual";
@@ -26521,14 +27743,14 @@ class ToggleButtonGroup {
26521
27743
  }
26522
27744
  render() {
26523
27745
  const { accessibleLabel, disabled, fullWidth, loading, monochrome, outline, theme, } = this;
26524
- return (hAsync(Host, { key: '57a5273a71510ce0c22fec40fa9bd924b475c185', role: "group", "aria-label": accessibleLabel, tabindex: disabled ? -1 : 0, class: {
27746
+ return (hAsync(Host, { key: '5ae12c9f09c65a04cbe1f19850998c0d942327c8', role: "group", "aria-label": accessibleLabel, tabindex: disabled ? -1 : 0, class: {
26525
27747
  "ic-toggle-button-group-disabled": disabled,
26526
27748
  "ic-toggle-button-group-full-width": fullWidth,
26527
27749
  "ic-toggle-button-group-loading": loading,
26528
27750
  "ic-toggle-button-group-monochrome": monochrome,
26529
27751
  "ic-toggle-button-group-hide-outline": !outline,
26530
27752
  [`ic-theme-${theme}`]: theme !== "inherit",
26531
- }, onFocus: this.handleHostFocus }, hAsync("slot", { key: '2d957f4dec7d5c097a39be86538c2dcea68cffdc' })));
27753
+ }, onFocus: this.handleHostFocus }, hAsync("slot", { key: '02c4f4cd7df626d4032246bdbcd7e07d2167ba52' })));
26532
27754
  }
26533
27755
  get el() { return getElement(this); }
26534
27756
  static get watchers() { return {
@@ -26560,7 +27782,9 @@ class ToggleButtonGroup {
26560
27782
  "theme": [1],
26561
27783
  "tooltipPlacement": [1, "tooltip-placement"],
26562
27784
  "variant": [513],
26563
- "lastKeyPressed": [32]
27785
+ "lastKeyPressed": [32],
27786
+ "externallySetActiveToggle": [32],
27787
+ "setActiveToggle": [64]
26564
27788
  },
26565
27789
  "$listeners$": [[0, "icToggleChecked", "selectHandler"]],
26566
27790
  "$lazyBundleId$": "-",
@@ -27374,7 +28598,7 @@ class TreeItem {
27374
28598
  rel: this.rel,
27375
28599
  target: this.target,
27376
28600
  };
27377
- return (hAsync(Host, { key: '735aa762f3a11335e21af5ce963b703bc85e0070', class: {
28601
+ return (hAsync(Host, { key: '2b66767ebcadc7f0d59c0e2309424e01dbc49410', class: {
27378
28602
  "ic-tree-item-disabled": disabled,
27379
28603
  "ic-tree-item-selected": !disabled && selected,
27380
28604
  [`ic-tree-item-${size}`]: size !== "medium",
@@ -27385,7 +28609,7 @@ class TreeItem {
27385
28609
  }, tabIndex: disabled ? -1 : 0, onClick: this.handleTreeItemClicked, ref: (el) => (this.treeItemElement = el), "aria-disabled": disabled ? "true" : "false", "aria-live": "polite" }, attrs, { onFocus: () => this.handleDisplayTooltip(true), onBlur: () => this.handleDisplayTooltip(false) }), this.isParent && (hAsync("span", { class: {
27386
28610
  ["arrow-dropdown"]: true,
27387
28611
  ["tree-item-expanded"]: expanded,
27388
- }, "aria-hidden": "true", innerHTML: arrowDropdown })), isSlotUsed(this.el, "icon") && (hAsync("div", { class: "icon-container" }, hAsync("slot", { name: "icon" }))), hAsync("ic-typography", { class: "tree-item-label" }, isSlotUsed(this.el, "label") ? hAsync("slot", { name: "label" }) : label))), expanded && (hAsync("div", { key: 'ca3bf6979ae492a45fadd0e5cac144139511842f', "aria-hidden": `${!expanded}` }, hAsync("slot", { key: 'e7142f27b9d7d753ace48748ea1d74266c9940e2' })))));
28612
+ }, "aria-hidden": "true", innerHTML: arrowDropdown })), isSlotUsed(this.el, "icon") && (hAsync("div", { class: "icon-container" }, hAsync("slot", { name: "icon" }))), hAsync("ic-typography", { class: "tree-item-label" }, isSlotUsed(this.el, "label") ? hAsync("slot", { name: "label" }) : label))), expanded && (hAsync("div", { key: '1806805bf01bf7d6320b753a2ed577ea08b8f716', "aria-hidden": `${!expanded}` }, hAsync("slot", { key: '2c7de11af3f2248a6c7ca57d43f56851046cc26a' })))));
27389
28613
  }
27390
28614
  get el() { return getElement(this); }
27391
28615
  static get watchers() { return {
@@ -27742,14 +28966,14 @@ class TreeView {
27742
28966
  }
27743
28967
  render() {
27744
28968
  const { heading, isLoaded, size, theme, truncateHeading } = this;
27745
- return (hAsync(Host, { key: '28757cb9ec7287dbeca529a06194945e85d59961', "context-id": this.treeViewId, class: {
28969
+ return (hAsync(Host, { key: 'b64c96601e14f028d70d42596ab73c3adcc5c50c', "context-id": this.treeViewId, class: {
27746
28970
  [`ic-tree-view-${size}`]: size !== "medium",
27747
28971
  [`ic-theme-${theme}`]: theme !== "inherit",
27748
28972
  "ic-tree-view-truncate": truncateHeading,
27749
- }, onKeyDown: this.handleKeyDown, "aria-label": this.isHeadingDefined() ? heading : null }, this.hasHeadingAreaContent() && (hAsync("div", { key: '5f60334aa3bcb1981f838f2961a363ac8c71e836', class: "heading-area-container" }, isSlotUsed(this.el, "icon") && (hAsync("div", { key: '547a4d855e7f595504b3eec6df1b49913b85bbbf', class: "icon-container" }, hAsync("slot", { key: 'bd75707980d222e48aa143c4bf9b06be06d2b9e3', name: "icon" }))), hAsync("ic-typography", { key: 'c272371c592cf629a8ac4bcc0f4e6b907e27e526', variant: "subtitle-large", class: {
28973
+ }, onKeyDown: this.handleKeyDown, "aria-label": this.isHeadingDefined() ? heading : null }, this.hasHeadingAreaContent() && (hAsync("div", { key: '2147d52cb5d094a6b2030707832e7986452ec793', class: "heading-area-container" }, isSlotUsed(this.el, "icon") && (hAsync("div", { key: '884b18baa7bf9a6530578e14e554e7da405184e4', class: "icon-container" }, hAsync("slot", { key: 'a7b165ab9a5851dd0006a0ed2d58299c6cce8008', name: "icon" }))), hAsync("ic-typography", { key: 'b851dc0c5d16d8127ba3e3e0c0efdbbb2675bdd4', variant: "subtitle-large", class: {
27750
28974
  "tree-view-header": true,
27751
28975
  "with-padding": this.truncateHeading && !isLoaded,
27752
- } }, isSlotUsed(this.el, "heading") ? (hAsync("slot", { name: "heading" })) : (heading)))), hAsync("slot", { key: '7cd22f3cf4e5eb8850632aca6a8f8c2e4e26d743' })));
28976
+ } }, isSlotUsed(this.el, "heading") ? (hAsync("slot", { name: "heading" })) : (heading)))), hAsync("slot", { key: '1e2577f386a2121c89644f395358fb746eb63cd1' })));
27753
28977
  }
27754
28978
  get el() { return getElement(this); }
27755
28979
  static get watchers() { return {
@@ -28063,6 +29287,7 @@ registerComponents([
28063
29287
  TextField,
28064
29288
  Theme,
28065
29289
  TimeInput,
29290
+ TimeSelector,
28066
29291
  Toast,
28067
29292
  ToastRegion,
28068
29293
  ToggleButton,