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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-6f4b406b.js → helpers-f81fed28.js} +37 -1
  3. package/dist/cjs/helpers-f81fed28.js.map +1 -0
  4. package/dist/cjs/ic-calendar_2.cjs.entry.js +2 -2
  5. package/dist/cjs/ic-calendar_2.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-checkbox_3.cjs.entry.js +19 -7
  8. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-data-table.cjs.entry.js +13 -8
  13. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-footer.cjs.entry.js +9 -5
  16. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +2 -2
  19. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-menu.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-pagination_4.cjs.entry.js +8 -4
  27. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
  31. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-table-of-contents.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-time-input.cjs.entry.js +401 -99
  36. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-time-selector.cjs.entry.js +842 -0
  38. package/dist/cjs/ic-time-selector.cjs.entry.js.map +1 -0
  39. package/dist/cjs/ic-toast.cjs.entry.js +14 -6
  40. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  41. package/dist/cjs/{ic-toggle-button.cjs.entry.js → ic-toggle-button_2.cjs.entry.js} +274 -1
  42. package/dist/cjs/ic-toggle-button_2.cjs.entry.js.map +1 -0
  43. package/dist/cjs/ic-tree-item.cjs.entry.js +3 -3
  44. package/dist/cjs/ic-tree-view.cjs.entry.js +4 -4
  45. package/dist/cjs/index-d337cd8a.js +8 -8
  46. package/dist/cjs/loader.cjs.js +1 -1
  47. package/dist/collection/collection-manifest.json +1 -0
  48. package/dist/collection/components/ic-calendar/ic-calendar.css +13 -7
  49. package/dist/collection/components/ic-calendar/ic-calendar.stories.js +13 -0
  50. package/dist/collection/components/ic-calendar/ic-calendar.stories.js.map +1 -1
  51. package/dist/collection/components/ic-data-table/ic-data-table.js +13 -8
  52. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  53. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +78 -6
  54. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  55. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +28 -0
  56. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js.map +1 -1
  57. package/dist/collection/components/ic-time-input/ic-time-input.css +21 -3
  58. package/dist/collection/components/ic-time-input/ic-time-input.js +434 -106
  59. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  60. package/dist/collection/components/ic-time-input/ic-time-input.stories.js +58 -9
  61. package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
  62. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js +2 -0
  63. package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js.map +1 -1
  64. package/dist/collection/components/ic-time-selector/ic-time-selector.css +293 -0
  65. package/dist/collection/components/ic-time-selector/ic-time-selector.js +1075 -0
  66. package/dist/collection/components/ic-time-selector/ic-time-selector.js.map +1 -0
  67. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js +166 -0
  68. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js.map +1 -0
  69. package/dist/collection/components/ic-time-selector/ic-time-selector.types.js +2 -0
  70. package/dist/collection/components/ic-time-selector/ic-time-selector.types.js.map +1 -0
  71. package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
  72. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
  73. package/dist/collection/utils/helpers.js +35 -0
  74. package/dist/collection/utils/helpers.js.map +1 -1
  75. package/dist/collection/utils/types.js.map +1 -1
  76. package/dist/components/helpers2.js +36 -1
  77. package/dist/components/helpers2.js.map +1 -1
  78. package/dist/components/ic-calendar2.js +1 -1
  79. package/dist/components/ic-calendar2.js.map +1 -1
  80. package/dist/components/ic-checkbox2.js.map +1 -1
  81. package/dist/components/ic-data-list.js.map +1 -1
  82. package/dist/components/ic-data-row.js.map +1 -1
  83. package/dist/components/ic-data-table.js +12 -7
  84. package/dist/components/ic-data-table.js.map +1 -1
  85. package/dist/components/ic-footer.js +10 -5
  86. package/dist/components/ic-footer.js.map +1 -1
  87. package/dist/components/ic-hero.js.map +1 -1
  88. package/dist/components/ic-input-component-container2.js +1 -1
  89. package/dist/components/ic-input-component-container2.js.map +1 -1
  90. package/dist/components/ic-input-validation2.js +1 -1
  91. package/dist/components/ic-input-validation2.js.map +1 -1
  92. package/dist/components/ic-menu2.js +1 -1
  93. package/dist/components/ic-menu2.js.map +1 -1
  94. package/dist/components/ic-navigation-group.js +1 -1
  95. package/dist/components/ic-navigation-group.js.map +1 -1
  96. package/dist/components/ic-navigation-item.js +1 -1
  97. package/dist/components/ic-navigation-item.js.map +1 -1
  98. package/dist/components/ic-pagination-bar2.js +21 -6
  99. package/dist/components/ic-pagination-bar2.js.map +1 -1
  100. package/dist/components/ic-pagination2.js +9 -4
  101. package/dist/components/ic-pagination2.js.map +1 -1
  102. package/dist/components/ic-radio-group.js +1 -1
  103. package/dist/components/ic-radio-group.js.map +1 -1
  104. package/dist/components/ic-radio-option.js +10 -7
  105. package/dist/components/ic-radio-option.js.map +1 -1
  106. package/dist/components/ic-search-bar.js +1 -1
  107. package/dist/components/ic-search-bar.js.map +1 -1
  108. package/dist/components/ic-time-input.js +431 -112
  109. package/dist/components/ic-time-input.js.map +1 -1
  110. package/dist/components/ic-time-selector.d.ts +11 -0
  111. package/dist/components/ic-time-selector.js +898 -0
  112. package/dist/components/ic-time-selector.js.map +1 -0
  113. package/dist/components/ic-toast.js +15 -6
  114. package/dist/components/ic-toast.js.map +1 -1
  115. package/dist/components/ic-toggle-button-group.js +1 -299
  116. package/dist/components/ic-toggle-button-group.js.map +1 -1
  117. package/dist/{esm/ic-toggle-button-group.entry.js → components/ic-toggle-button-group2.js} +70 -13
  118. package/dist/components/ic-toggle-button-group2.js.map +1 -0
  119. package/dist/components/ic-toggle-button.js +1 -228
  120. package/dist/components/ic-toggle-button.js.map +1 -1
  121. package/dist/{esm/ic-toggle-button.entry.js → components/ic-toggle-button2.js} +65 -10
  122. package/dist/components/ic-toggle-button2.js.map +1 -0
  123. package/dist/components/ic-tree-item.js +2 -2
  124. package/dist/components/ic-tree-view.js +4 -4
  125. package/dist/core/core.css +28 -6
  126. package/dist/core/core.esm.js +1 -1
  127. package/dist/core/core.esm.js.map +1 -1
  128. package/dist/core/{p-b80b08ae.entry.js → p-08f24329.entry.js} +2 -2
  129. package/dist/core/{p-615d474e.entry.js → p-14b8bf37.entry.js} +2 -2
  130. package/dist/core/{p-81f12581.entry.js → p-169ad948.entry.js} +2 -2
  131. package/dist/core/p-169ad948.entry.js.map +1 -0
  132. package/dist/core/{p-847cbb16.entry.js → p-1d166343.entry.js} +2 -2
  133. package/dist/core/{p-b4bfaf8f.entry.js → p-201b41c7.entry.js} +2 -2
  134. package/dist/core/{p-24bac55f.entry.js → p-33509a89.entry.js} +2 -2
  135. package/dist/core/{p-e1920777.entry.js → p-3389625c.entry.js} +2 -2
  136. package/dist/core/{p-5a1cfb3c.entry.js → p-344752cb.entry.js} +2 -2
  137. package/dist/core/{p-6c238418.entry.js → p-348d7080.entry.js} +2 -2
  138. package/dist/core/{p-3ef2e98d.entry.js → p-39cdf5db.entry.js} +2 -2
  139. package/dist/core/{p-ffbf493f.entry.js → p-496b314f.entry.js} +2 -2
  140. package/dist/core/p-496b314f.entry.js.map +1 -0
  141. package/dist/core/{p-bd9a76d8.entry.js → p-508b6da3.entry.js} +2 -2
  142. package/dist/core/p-551a0fc1.entry.js +2 -0
  143. package/dist/core/p-551a0fc1.entry.js.map +1 -0
  144. package/dist/core/{p-f5cea10d.entry.js → p-5e6687a8.entry.js} +2 -2
  145. package/dist/core/{p-72171192.entry.js → p-60f4fe3a.entry.js} +2 -2
  146. package/dist/core/p-61c92598.entry.js +2 -0
  147. package/dist/core/p-61c92598.entry.js.map +1 -0
  148. package/dist/core/{p-e00e67ff.entry.js → p-6323da7a.entry.js} +2 -2
  149. package/dist/core/p-691dd972.entry.js +2 -0
  150. package/dist/core/p-691dd972.entry.js.map +1 -0
  151. package/dist/core/{p-c6c87e58.entry.js → p-6dfe0922.entry.js} +2 -2
  152. package/dist/core/p-71cc5909.entry.js +2 -0
  153. package/dist/core/p-71cc5909.entry.js.map +1 -0
  154. package/dist/core/p-770e92cd.entry.js +2 -0
  155. package/dist/core/p-770e92cd.entry.js.map +1 -0
  156. package/dist/core/{p-7cf6b428.entry.js → p-79ead0e7.entry.js} +2 -2
  157. package/dist/core/p-7b4b45cf.entry.js +2 -0
  158. package/dist/core/p-7b4b45cf.entry.js.map +1 -0
  159. package/dist/core/{p-afedcfdb.entry.js → p-7efdbab8.entry.js} +2 -2
  160. package/dist/core/p-802a4bd3.entry.js +2 -0
  161. package/dist/core/p-802a4bd3.entry.js.map +1 -0
  162. package/dist/core/p-829b34f9.js +2 -0
  163. package/dist/core/p-829b34f9.js.map +1 -0
  164. package/dist/core/{p-9a9605c3.entry.js → p-879c180d.entry.js} +2 -2
  165. package/dist/core/{p-3891ce53.entry.js → p-8830011c.entry.js} +2 -2
  166. package/dist/core/{p-444cd8d3.entry.js → p-8ab37b4d.entry.js} +2 -2
  167. package/dist/core/{p-c87cc0d1.entry.js → p-939025af.entry.js} +2 -2
  168. package/dist/core/p-939b168a.entry.js +2 -0
  169. package/dist/core/p-939b168a.entry.js.map +1 -0
  170. package/dist/core/{p-5a4344cb.entry.js → p-9dea5764.entry.js} +2 -2
  171. package/dist/core/{p-af821831.entry.js → p-a88e61b2.entry.js} +2 -2
  172. package/dist/core/p-a88e61b2.entry.js.map +1 -0
  173. package/dist/core/{p-90611726.entry.js → p-a8a92e54.entry.js} +2 -2
  174. package/dist/core/{p-31f3fb15.entry.js → p-a94a7b71.entry.js} +2 -2
  175. package/dist/core/p-ad551a0c.entry.js +2 -0
  176. package/dist/core/p-ad551a0c.entry.js.map +1 -0
  177. package/dist/core/{p-ba75ed34.entry.js → p-b434bd7c.entry.js} +2 -2
  178. package/dist/core/p-b4a2f6fa.entry.js.map +1 -1
  179. package/dist/core/{p-2188b483.entry.js → p-c0a7eed7.entry.js} +2 -2
  180. package/dist/core/p-c0b227d2.entry.js +2 -0
  181. package/dist/core/p-c0b227d2.entry.js.map +1 -0
  182. package/dist/core/{p-2646a629.entry.js → p-c32f043e.entry.js} +2 -2
  183. package/dist/core/{p-7a0f62c2.entry.js → p-c4b2774d.entry.js} +2 -2
  184. package/dist/core/p-c9525aac.entry.js +2 -0
  185. package/dist/core/p-c9525aac.entry.js.map +1 -0
  186. package/dist/core/{p-7026afad.entry.js → p-ca05573a.entry.js} +2 -2
  187. package/dist/core/{p-8c580d88.entry.js → p-d0607a70.entry.js} +2 -2
  188. package/dist/core/{p-15c05eb8.entry.js → p-d528d856.entry.js} +2 -2
  189. package/dist/core/{p-0043b019.entry.js → p-da1c2883.entry.js} +2 -2
  190. package/dist/core/{p-ffc1cea6.entry.js → p-e2e556ec.entry.js} +2 -2
  191. package/dist/core/{p-e4ef4263.js → p-e519f607.js} +2 -2
  192. package/dist/core/{p-3f0bce15.entry.js → p-e5c6d01a.entry.js} +2 -2
  193. package/dist/core/{p-04a9f82f.entry.js → p-e8db8772.entry.js} +2 -2
  194. package/dist/core/{p-e4b82731.entry.js → p-ea04103e.entry.js} +2 -2
  195. package/dist/core/{p-9a95f428.entry.js → p-eaeb473e.entry.js} +2 -2
  196. package/dist/core/p-eaeb473e.entry.js.map +1 -0
  197. package/dist/core/{p-8e592393.entry.js → p-ecc7fd71.entry.js} +2 -2
  198. package/dist/core/p-efe260f0.entry.js +2 -0
  199. package/dist/core/p-efe260f0.entry.js.map +1 -0
  200. package/dist/core/{p-b6d6b26e.entry.js → p-f1b57f91.entry.js} +2 -2
  201. package/dist/core/p-f5dc04f7.entry.js +2 -0
  202. package/dist/core/p-f5dc04f7.entry.js.map +1 -0
  203. package/dist/core/p-fb07921b.entry.js +2 -0
  204. package/dist/core/p-fb07921b.entry.js.map +1 -0
  205. package/dist/core/{p-1900c7c7.entry.js → p-fd08156a.entry.js} +2 -2
  206. package/dist/core/{p-3594922d.entry.js → p-fe5b51bb.entry.js} +2 -2
  207. package/dist/core/{p-ef5b6622.entry.js → p-ff618439.entry.js} +2 -2
  208. package/dist/esm/core.js +1 -1
  209. package/dist/esm/{helpers-5419eb6c.js → helpers-063369f4.js} +2 -2
  210. package/dist/esm/{helpers-5419eb6c.js.map → helpers-063369f4.js.map} +1 -1
  211. package/dist/esm/{helpers-9f228880.js → helpers-a08b3f32.js} +37 -2
  212. package/dist/esm/helpers-a08b3f32.js.map +1 -0
  213. package/dist/esm/ic-accordion-group.entry.js +1 -1
  214. package/dist/esm/ic-accordion.entry.js +1 -1
  215. package/dist/esm/ic-action-chip.entry.js +1 -1
  216. package/dist/esm/ic-alert.entry.js +1 -1
  217. package/dist/esm/ic-back-to-top.entry.js +1 -1
  218. package/dist/esm/ic-badge.entry.js +1 -1
  219. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  220. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  221. package/dist/esm/ic-button_3.entry.js +1 -1
  222. package/dist/esm/ic-calendar_2.entry.js +2 -2
  223. package/dist/esm/ic-calendar_2.entry.js.map +1 -1
  224. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  225. package/dist/esm/ic-card-vertical.entry.js +1 -1
  226. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  227. package/dist/esm/ic-checkbox_3.entry.js +20 -8
  228. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  229. package/dist/esm/ic-chip.entry.js +1 -1
  230. package/dist/esm/ic-data-list.entry.js.map +1 -1
  231. package/dist/esm/ic-data-row.entry.js +1 -1
  232. package/dist/esm/ic-data-row.entry.js.map +1 -1
  233. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  234. package/dist/esm/ic-data-table.entry.js +13 -8
  235. package/dist/esm/ic-data-table.entry.js.map +1 -1
  236. package/dist/esm/ic-date-picker.entry.js +1 -1
  237. package/dist/esm/ic-dialog.entry.js +1 -1
  238. package/dist/esm/ic-divider.entry.js +1 -1
  239. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  240. package/dist/esm/ic-footer-link.entry.js +1 -1
  241. package/dist/esm/ic-footer.entry.js +10 -6
  242. package/dist/esm/ic-footer.entry.js.map +1 -1
  243. package/dist/esm/ic-hero.entry.js +1 -1
  244. package/dist/esm/ic-hero.entry.js.map +1 -1
  245. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  246. package/dist/esm/ic-input-component-container_4.entry.js +3 -3
  247. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  248. package/dist/esm/ic-link.entry.js +1 -1
  249. package/dist/esm/ic-menu-group.entry.js +1 -1
  250. package/dist/esm/ic-menu-item.entry.js +1 -1
  251. package/dist/esm/ic-menu.entry.js +2 -2
  252. package/dist/esm/ic-menu.entry.js.map +1 -1
  253. package/dist/esm/ic-navigation-button.entry.js +1 -1
  254. package/dist/esm/ic-navigation-group.entry.js +2 -2
  255. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  256. package/dist/esm/ic-navigation-item.entry.js +2 -2
  257. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  258. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  259. package/dist/esm/ic-page-header.entry.js +1 -1
  260. package/dist/esm/ic-pagination_4.entry.js +9 -5
  261. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  262. package/dist/esm/ic-popover-menu.entry.js +1 -1
  263. package/dist/esm/ic-radio-group.entry.js +2 -2
  264. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  265. package/dist/esm/ic-radio-option.entry.js +10 -7
  266. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  267. package/dist/esm/ic-search-bar.entry.js +2 -2
  268. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  269. package/dist/esm/ic-side-navigation.entry.js +1 -1
  270. package/dist/esm/ic-status-tag.entry.js +1 -1
  271. package/dist/esm/ic-step.entry.js +1 -1
  272. package/dist/esm/ic-stepper.entry.js +1 -1
  273. package/dist/esm/ic-switch.entry.js +1 -1
  274. package/dist/esm/ic-tab-group.entry.js +1 -1
  275. package/dist/esm/ic-tab.entry.js +1 -1
  276. package/dist/esm/ic-table-of-contents.entry.js +1 -1
  277. package/dist/esm/ic-theme.entry.js +1 -1
  278. package/dist/esm/ic-time-input.entry.js +401 -99
  279. package/dist/esm/ic-time-input.entry.js.map +1 -1
  280. package/dist/esm/ic-time-selector.entry.js +838 -0
  281. package/dist/esm/ic-time-selector.entry.js.map +1 -0
  282. package/dist/esm/ic-toast.entry.js +15 -7
  283. package/dist/esm/ic-toast.entry.js.map +1 -1
  284. package/dist/esm/ic-toggle-button_2.entry.js +449 -0
  285. package/dist/esm/ic-toggle-button_2.entry.js.map +1 -0
  286. package/dist/esm/ic-top-navigation.entry.js +1 -1
  287. package/dist/esm/ic-tree-item.entry.js +3 -3
  288. package/dist/esm/ic-tree-view.entry.js +4 -4
  289. package/dist/esm/ic-typography.entry.js +1 -1
  290. package/dist/esm/index-a7a720e7.js +8 -8
  291. package/dist/esm/loader.js +1 -1
  292. package/dist/types/components/ic-calendar/ic-calendar.stories.d.ts +20 -14
  293. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +12 -0
  294. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.stories.d.ts +12 -0
  295. package/dist/types/components/ic-time-input/ic-time-input.d.ts +26 -6
  296. package/dist/types/components/ic-time-input/ic-time-input.stories.d.ts +31 -7
  297. package/dist/types/components/ic-time-input/test/helpers/ic-time-input.d.ts +1 -0
  298. package/dist/types/components/ic-time-selector/ic-time-selector.d.ts +88 -0
  299. package/dist/types/components/ic-time-selector/ic-time-selector.stories.d.ts +99 -0
  300. package/dist/types/components/ic-time-selector/ic-time-selector.types.d.ts +1 -0
  301. package/dist/types/components.d.ts +163 -11
  302. package/dist/types/utils/helpers.d.ts +14 -0
  303. package/dist/types/utils/types.d.ts +4 -1
  304. package/hydrate/index.js +1410 -156
  305. package/hydrate/index.mjs +1410 -156
  306. package/package.json +30 -30
  307. package/dist/cjs/helpers-6f4b406b.js.map +0 -1
  308. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +0 -267
  309. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +0 -1
  310. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +0 -1
  311. package/dist/core/p-1a976789.entry.js +0 -2
  312. package/dist/core/p-1a976789.entry.js.map +0 -1
  313. package/dist/core/p-3ba2b455.entry.js +0 -2
  314. package/dist/core/p-3ba2b455.entry.js.map +0 -1
  315. package/dist/core/p-41def410.entry.js +0 -2
  316. package/dist/core/p-41def410.entry.js.map +0 -1
  317. package/dist/core/p-4b188516.entry.js +0 -2
  318. package/dist/core/p-4b188516.entry.js.map +0 -1
  319. package/dist/core/p-5b32aaf3.entry.js +0 -2
  320. package/dist/core/p-5b32aaf3.entry.js.map +0 -1
  321. package/dist/core/p-7332320d.entry.js +0 -2
  322. package/dist/core/p-7332320d.entry.js.map +0 -1
  323. package/dist/core/p-81f12581.entry.js.map +0 -1
  324. package/dist/core/p-9044539c.entry.js +0 -2
  325. package/dist/core/p-9044539c.entry.js.map +0 -1
  326. package/dist/core/p-9a95f428.entry.js.map +0 -1
  327. package/dist/core/p-9f76eed6.entry.js +0 -2
  328. package/dist/core/p-9f76eed6.entry.js.map +0 -1
  329. package/dist/core/p-a1448064.entry.js +0 -2
  330. package/dist/core/p-a1448064.entry.js.map +0 -1
  331. package/dist/core/p-a237af88.entry.js +0 -2
  332. package/dist/core/p-a237af88.entry.js.map +0 -1
  333. package/dist/core/p-af821831.entry.js.map +0 -1
  334. package/dist/core/p-ba21f477.entry.js +0 -2
  335. package/dist/core/p-ba21f477.entry.js.map +0 -1
  336. package/dist/core/p-c3eddb99.entry.js +0 -2
  337. package/dist/core/p-c3eddb99.entry.js.map +0 -1
  338. package/dist/core/p-c5d65718.entry.js +0 -2
  339. package/dist/core/p-c5d65718.entry.js.map +0 -1
  340. package/dist/core/p-d144ca59.entry.js +0 -2
  341. package/dist/core/p-d144ca59.entry.js.map +0 -1
  342. package/dist/core/p-f48ce5f6.js +0 -2
  343. package/dist/core/p-f48ce5f6.js.map +0 -1
  344. package/dist/core/p-ffbf493f.entry.js.map +0 -1
  345. package/dist/esm/helpers-9f228880.js.map +0 -1
  346. package/dist/esm/ic-toggle-button-group.entry.js.map +0 -1
  347. package/dist/esm/ic-toggle-button.entry.js.map +0 -1
  348. /package/dist/core/{p-b80b08ae.entry.js.map → p-08f24329.entry.js.map} +0 -0
  349. /package/dist/core/{p-615d474e.entry.js.map → p-14b8bf37.entry.js.map} +0 -0
  350. /package/dist/core/{p-847cbb16.entry.js.map → p-1d166343.entry.js.map} +0 -0
  351. /package/dist/core/{p-b4bfaf8f.entry.js.map → p-201b41c7.entry.js.map} +0 -0
  352. /package/dist/core/{p-24bac55f.entry.js.map → p-33509a89.entry.js.map} +0 -0
  353. /package/dist/core/{p-e1920777.entry.js.map → p-3389625c.entry.js.map} +0 -0
  354. /package/dist/core/{p-5a1cfb3c.entry.js.map → p-344752cb.entry.js.map} +0 -0
  355. /package/dist/core/{p-6c238418.entry.js.map → p-348d7080.entry.js.map} +0 -0
  356. /package/dist/core/{p-3ef2e98d.entry.js.map → p-39cdf5db.entry.js.map} +0 -0
  357. /package/dist/core/{p-bd9a76d8.entry.js.map → p-508b6da3.entry.js.map} +0 -0
  358. /package/dist/core/{p-f5cea10d.entry.js.map → p-5e6687a8.entry.js.map} +0 -0
  359. /package/dist/core/{p-72171192.entry.js.map → p-60f4fe3a.entry.js.map} +0 -0
  360. /package/dist/core/{p-e00e67ff.entry.js.map → p-6323da7a.entry.js.map} +0 -0
  361. /package/dist/core/{p-c6c87e58.entry.js.map → p-6dfe0922.entry.js.map} +0 -0
  362. /package/dist/core/{p-7cf6b428.entry.js.map → p-79ead0e7.entry.js.map} +0 -0
  363. /package/dist/core/{p-afedcfdb.entry.js.map → p-7efdbab8.entry.js.map} +0 -0
  364. /package/dist/core/{p-9a9605c3.entry.js.map → p-879c180d.entry.js.map} +0 -0
  365. /package/dist/core/{p-3891ce53.entry.js.map → p-8830011c.entry.js.map} +0 -0
  366. /package/dist/core/{p-444cd8d3.entry.js.map → p-8ab37b4d.entry.js.map} +0 -0
  367. /package/dist/core/{p-c87cc0d1.entry.js.map → p-939025af.entry.js.map} +0 -0
  368. /package/dist/core/{p-5a4344cb.entry.js.map → p-9dea5764.entry.js.map} +0 -0
  369. /package/dist/core/{p-90611726.entry.js.map → p-a8a92e54.entry.js.map} +0 -0
  370. /package/dist/core/{p-31f3fb15.entry.js.map → p-a94a7b71.entry.js.map} +0 -0
  371. /package/dist/core/{p-ba75ed34.entry.js.map → p-b434bd7c.entry.js.map} +0 -0
  372. /package/dist/core/{p-2188b483.entry.js.map → p-c0a7eed7.entry.js.map} +0 -0
  373. /package/dist/core/{p-2646a629.entry.js.map → p-c32f043e.entry.js.map} +0 -0
  374. /package/dist/core/{p-7a0f62c2.entry.js.map → p-c4b2774d.entry.js.map} +0 -0
  375. /package/dist/core/{p-7026afad.entry.js.map → p-ca05573a.entry.js.map} +0 -0
  376. /package/dist/core/{p-8c580d88.entry.js.map → p-d0607a70.entry.js.map} +0 -0
  377. /package/dist/core/{p-15c05eb8.entry.js.map → p-d528d856.entry.js.map} +0 -0
  378. /package/dist/core/{p-0043b019.entry.js.map → p-da1c2883.entry.js.map} +0 -0
  379. /package/dist/core/{p-ffc1cea6.entry.js.map → p-e2e556ec.entry.js.map} +0 -0
  380. /package/dist/core/{p-e4ef4263.js.map → p-e519f607.js.map} +0 -0
  381. /package/dist/core/{p-3f0bce15.entry.js.map → p-e5c6d01a.entry.js.map} +0 -0
  382. /package/dist/core/{p-04a9f82f.entry.js.map → p-e8db8772.entry.js.map} +0 -0
  383. /package/dist/core/{p-e4b82731.entry.js.map → p-ea04103e.entry.js.map} +0 -0
  384. /package/dist/core/{p-8e592393.entry.js.map → p-ecc7fd71.entry.js.map} +0 -0
  385. /package/dist/core/{p-b6d6b26e.entry.js.map → p-f1b57f91.entry.js.map} +0 -0
  386. /package/dist/core/{p-1900c7c7.entry.js.map → p-fd08156a.entry.js.map} +0 -0
  387. /package/dist/core/{p-3594922d.entry.js.map → p-fe5b51bb.entry.js.map} +0 -0
  388. /package/dist/core/{p-ef5b6622.entry.js.map → p-ff618439.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-time-selector.js","sourceRoot":"","sources":["../../../../../src/components/ic-time-selector/ic-time-selector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Element,\n State,\n Prop,\n Event,\n EventEmitter,\n Host,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcDisableTimeSelection,\n IcSizes,\n IcThemeMode,\n IcTimeFormatSelector,\n} from \"../../utils/types\";\nimport { parseTimeHelper } from \"../../utils/helpers\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Clear from \"../../assets/close-icon.svg\";\nimport { IcTimePeriods } from \"./ic-time-selector.types\";\n\nconst COLUMN_TYPES = [\"hour\", \"minute\", \"second\", \"period\"] as const;\nconst COLUMN_CLASS = \".ic-time-selector-column\";\nconst ITEM_CLASS = \".ic-time-selector-item\";\ntype ColumnType = typeof COLUMN_TYPES[number];\n\n@Component({\n tag: \"ic-time-selector\",\n styleUrl: \"ic-time-selector.css\",\n shadow: true,\n})\nexport class TimeSelector {\n private DEFAULT_TIME_FORMAT: IcTimeFormatSelector = \"HH:MM:SS\";\n private minutes: number[] = Array.from({ length: 60 }, (_, i) => i);\n private seconds: number[] = Array.from({ length: 60 }, (_, i) => i);\n private periods: IcTimePeriods[] = [\"AM\", \"PM\"];\n private minTime: Date | null = null;\n private maxTime: Date | null = null;\n private lastAnnouncedType?: ColumnType;\n private lastAnnouncedValue?: number | IcTimePeriods | null;\n\n @Element() el: HTMLIcTimeSelectorElement;\n\n @State() selectedHour?: number;\n @State() selectedMinute?: number;\n @State() selectedSecond?: number;\n @State() selectedPeriod?: IcTimePeriods;\n @State() ariaLiveMessage: string = \"\";\n\n /**\n * 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.\n */\n @Prop() disableTimes: IcDisableTimeSelection[] = [];\n\n /**\n * The earliest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() min: string | Date = \"\";\n @Watch(\"min\")\n watchMinHandler(): void {\n this.minTime = parseTimeHelper(this.min).date;\n }\n\n /**\n * The latest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() max: string | Date = \"\";\n @Watch(\"max\")\n watchMaxHandler(): void {\n this.maxTime = parseTimeHelper(this.max).date;\n }\n\n /**\n * The size of the time selector to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The format in which the time will be displayed.\n */\n @Prop() timeFormat: IcTimeFormatSelector = this.DEFAULT_TIME_FORMAT;\n\n /**\n * The time period format: \"12\" for 12-hour, \"24\" for 24-hour. Defaults to \"24\".\n */\n @Prop() timePeriod: \"12\" | \"24\" = \"24\";\n\n /**\n * The value of the time 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.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n @Watch(\"value\")\n watchValueHandler(): void {\n this.setTime(this.value);\n setTimeout(() => {\n this.scrollSelectedItem(\"hour\");\n this.scrollSelectedItem(\"minute\");\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n this.scrollSelectedItem(\"second\");\n }\n if (this.timePeriod === \"12\") {\n this.scrollSelectedItem(\"period\");\n }\n }, 0);\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n timeString: string | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n period?: IcTimePeriods;\n };\n }>;\n\n componentWillLoad() {\n this.setTime(this.value);\n }\n\n componentDidLoad() {\n setTimeout(() => {\n if (this.selectedHour !== undefined && this.selectedHour !== null) {\n this.scrollSelectedItem(\"hour\");\n } else if (this.min) {\n this.scrollMinTime(\"hour\");\n }\n if (this.selectedMinute !== undefined && this.selectedMinute !== null) {\n this.scrollSelectedItem(\"minute\");\n } else if (this.min) {\n this.scrollMinTime(\"minute\");\n }\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n if (this.selectedSecond !== undefined && this.selectedSecond !== null) {\n this.scrollSelectedItem(\"second\");\n } else if (this.min) {\n this.scrollMinTime(\"second\");\n }\n }\n if (this.timePeriod === \"12\") {\n if (this.selectedPeriod !== undefined && this.selectedPeriod !== null) {\n this.scrollSelectedItem(\"period\");\n } else if (this.min) {\n this.scrollMinTime(\"period\");\n }\n }\n this.updateAriaLiveMessage();\n }, 0);\n }\n\n private getHeaderLabel(type: ColumnType): string {\n switch (type) {\n case \"hour\":\n return \"HH\";\n case \"minute\":\n return \"MM\";\n case \"second\":\n return \"SS\";\n default:\n return \"\";\n }\n }\n\n private setTimeParts = (hour: number, minute: number, second: number) => {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (hour === 0) {\n hour = 12;\n period = \"AM\";\n } else if (hour === 12) {\n period = \"PM\";\n } else if (hour > 12) {\n hour = hour - 12;\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n this.selectedHour = hour;\n this.selectedPeriod = period;\n } else {\n this.selectedHour = hour;\n }\n this.selectedMinute = minute;\n this.selectedSecond = second;\n };\n\n private setTime(time?: string | Date | null) {\n if (time === null || time === undefined || time === \"\") {\n this.handleClear();\n return;\n }\n\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\\.[0-9]{1,3})?Z?$/\n );\n if (zuluMatch) {\n this.setTimeParts(\n Number(zuluMatch[1]),\n Number(zuluMatch[2]),\n Number(zuluMatch[3])\n );\n } else {\n const parts = time.split(\":\");\n this.setTimeParts(\n Number(parts[0]) || 0,\n Number(parts[1]) || 0,\n Number(parts[2]) || 0\n );\n }\n } else {\n const { parts } = parseTimeHelper(time);\n if (parts) {\n this.setTimeParts(parts.hour, parts.minute, parts.second);\n }\n }\n }\n\n private renderScrollRows(count: number, keyPrefix = \"scroll-row\") {\n return Array.from({ length: count }).map((_, i) => {\n const isLast = keyPrefix.endsWith(\"bottom-spacer\")\n ? i === count - 1\n : false;\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n \"ic-time-selector-scroll-row\": true,\n ...(isLast ? { \"ic-time-selector-scroll-row-last\": true } : {}),\n }}\n aria-hidden=\"true\"\n tabIndex={-1}\n key={`${keyPrefix}-${i}`}\n />\n );\n });\n }\n\n private scrollSelectedItem(colClass: ColumnType, clear?: boolean) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n let colIdx = COLUMN_TYPES.indexOf(colClass);\n if (colClass === \"period\" && columns?.length) {\n colIdx = columns.length - 1;\n }\n const col = columns?.[colIdx];\n if (col) {\n const items = col.querySelectorAll(ITEM_CLASS);\n let selectedIdx = -1;\n items.forEach((item, idx) => {\n if (item.classList.contains(\"selected\")) selectedIdx = idx;\n });\n if (clear) {\n selectedIdx = 0;\n }\n if (selectedIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop =\n (items[selectedIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n if (clear) {\n setTimeout(() => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n this.checkIfScrollIsFinished(columns[0], scrollTop);\n }\n }, 300);\n }\n }\n }\n }\n\n private checkIfScrollIsFinished = (\n column: { scrollTop: number },\n scrollTop: number\n ) => {\n const isScrollFinished = setInterval(() => {\n if (column.scrollTop === scrollTop + 56) {\n (column as HTMLElement)?.focus();\n clearInterval(isScrollFinished);\n }\n }, 25);\n };\n\n private scrollMinTime(colClass: ColumnType) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const colIdx = COLUMN_TYPES.indexOf(colClass);\n const col = columns?.[colIdx];\n if (!col) return;\n const items = col.querySelectorAll(ITEM_CLASS);\n let minHour = 0,\n minMinute = 0,\n minSecond = 0;\n if (this.minTime) {\n minHour = this.minTime.getHours() + 2;\n minMinute = this.minTime.getMinutes() + 2;\n minSecond = this.minTime.getSeconds();\n } else if (this.min) {\n const minDate = parseTimeHelper(this.min).date;\n if (minDate) {\n minHour = minDate.getHours();\n minMinute = minDate.getMinutes();\n minSecond = minDate.getSeconds();\n }\n }\n let targetIdx = -1;\n const values = this.getColumnValues(colClass);\n if (colClass === \"hour\") {\n targetIdx = values.findIndex((v) => v === minHour);\n } else if (colClass === \"minute\") {\n targetIdx = values.findIndex((v) => v === minMinute);\n } else if (colClass === \"second\") {\n targetIdx = values.findIndex((v) => v === minSecond);\n } else if (colClass === \"period\") {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (minHour === 0) {\n period = \"AM\";\n } else if (minHour === 12) {\n period = \"PM\";\n } else if (minHour > 12) {\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n }\n targetIdx = values.findIndex((v) => v === period);\n }\n if (targetIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop = (items[targetIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n }\n }\n\n private handleSelect = (type: ColumnType, value: number | IcTimePeriods) => {\n const prevValue = this.getSelectedValue(type);\n switch (type) {\n case \"hour\":\n this.selectedHour = Number(value);\n break;\n case \"minute\":\n this.selectedMinute = Number(value);\n break;\n case \"second\":\n this.selectedSecond = Number(value);\n break;\n case \"period\":\n this.selectedPeriod = value as IcTimePeriods;\n break;\n }\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (columns && columns[idx]) {\n (columns[idx] as HTMLElement).focus();\n window.requestAnimationFrame(() => {\n this.scrollSelectedItem(type);\n });\n }\n if (prevValue === undefined || prevValue === null) {\n this.announceSelectedColumn(type);\n } else {\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = this.getSelectedValue(type);\n }\n };\n\n private isTimeDisabled = (\n hour: number,\n minute: number,\n second: number,\n type?: ColumnType\n ): boolean => {\n for (const t of this.disableTimes) {\n if (typeof t === \"string\" || t instanceof Date) {\n const parts = parseTimeHelper(t).parts;\n if (\n parts &&\n parts.hour === hour &&\n parts.minute === minute &&\n parts.second === second\n ) {\n return true;\n }\n } else if (t && typeof t === \"object\" && \"start\" in t && \"end\" in t) {\n const startParts = parseTimeHelper(t.start).parts;\n const endParts = parseTimeHelper(t.end).parts;\n if (startParts && endParts) {\n const timeVal = hour * 3600 + minute * 60 + second;\n const startVal =\n startParts.hour * 3600 + startParts.minute * 60 + startParts.second;\n const endVal =\n endParts.hour * 3600 + endParts.minute * 60 + endParts.second;\n if (timeVal >= startVal && timeVal <= endVal) {\n return true;\n }\n }\n }\n }\n if (this.min) {\n this.minTime = parseTimeHelper(this.min).date;\n if (this.minTime) {\n const minHour = this.minTime.getHours();\n const minMinute = this.minTime.getMinutes();\n const minSecond = this.minTime.getSeconds();\n if (type === \"hour\") {\n const highlightedMinute = this.selectedMinute ?? minMinute;\n const highlightedSecond = this.selectedSecond ?? minSecond;\n if (\n hour < minHour ||\n (hour === minHour && highlightedMinute < minMinute) ||\n (hour === minHour &&\n highlightedMinute === minMinute &&\n highlightedSecond < minSecond)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === minHour && minute < minMinute) {\n return true;\n }\n } else if (type === \"second\") {\n if (hour === minHour && minute === minMinute && second < minSecond) {\n return true;\n }\n } else {\n if (\n hour < minHour ||\n (hour === minHour && minute < minMinute) ||\n (hour === minHour && minute === minMinute && second < minSecond)\n ) {\n return true;\n }\n }\n }\n }\n if (this.max) {\n this.maxTime = parseTimeHelper(this.max).date;\n if (this.maxTime) {\n const maxHour = this.maxTime.getHours();\n const maxMinute = this.maxTime.getMinutes();\n const maxSecond = this.maxTime.getSeconds();\n if (type === \"hour\") {\n const selectedMinute = this.selectedMinute ?? 59;\n const selectedSecond = this.selectedSecond ?? 59;\n if (\n hour > maxHour ||\n (hour === maxHour && selectedMinute > maxMinute) ||\n (hour === maxHour &&\n selectedMinute === maxMinute &&\n selectedSecond > maxSecond)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === maxHour && minute > maxMinute) {\n return true;\n }\n } else if (type === \"second\") {\n if (hour === maxHour && minute === maxMinute && second > maxSecond) {\n return true;\n }\n } else {\n if (\n hour > maxHour ||\n (hour === maxHour && minute > maxMinute) ||\n (hour === maxHour && minute === maxMinute && second > maxSecond)\n ) {\n return true;\n }\n }\n }\n }\n return false;\n };\n\n private announceSelectedColumn(type: ColumnType) {\n const value = this.getSelectedValue(type);\n if (\n value !== null &&\n value !== undefined &&\n (type !== this.lastAnnouncedType || value !== this.lastAnnouncedValue)\n ) {\n this.ariaLiveMessage = `Selected ${type}: ${value}`;\n } else {\n this.ariaLiveMessage = \"\";\n }\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = value;\n }\n\n private getColumnValues(type: ColumnType): number[] | IcTimePeriods[] {\n if (type === \"hour\")\n return this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n if (type === \"minute\") return this.minutes;\n if (type === \"second\") return this.seconds;\n if (type === \"period\") return this.periods;\n return [];\n }\n\n private getSelectedValue(type: ColumnType): number | IcTimePeriods | null {\n if (type === \"hour\") return this.selectedHour ?? null;\n if (type === \"minute\") return this.selectedMinute ?? null;\n if (type === \"second\") return this.selectedSecond ?? null;\n if (type === \"period\") return this.selectedPeriod ?? null;\n return null;\n }\n\n private getHighlightedValue(\n type: ColumnType,\n col: HTMLElement\n ): number | IcTimePeriods | null {\n const items = Array.from(col.querySelectorAll(ITEM_CLASS));\n const realItems = items.filter(\n (item) => !item.classList.contains(\"ic-time-selector-scroll-row\")\n );\n if (realItems.length === 0) return null;\n const highlightTop = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-top\"\n ) as HTMLElement;\n const highlightBottom = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-bottom\"\n ) as HTMLElement;\n if (!highlightTop || !highlightBottom) return null;\n const topRect = highlightTop.getBoundingClientRect();\n const bottomRect = highlightBottom.getBoundingClientRect();\n const highlightStart = topRect.bottom;\n const highlightEnd = bottomRect.top;\n for (const item of realItems) {\n const itemRect = item.getBoundingClientRect();\n const itemCenter = itemRect.top + itemRect.height / 2;\n if (itemCenter >= highlightStart && itemCenter <= highlightEnd) {\n const key = item.getAttribute(\"key\");\n if (key) {\n const valStr = key.replace(`${type}-val-`, \"\");\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n return Number(valStr);\n } else {\n return valStr as IcTimePeriods;\n }\n }\n const text = item.textContent?.trim();\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n return text ? Number(text) : null;\n } else {\n return text as IcTimePeriods;\n }\n }\n }\n return null;\n }\n\n private handleColumnKeyDown = (type: ColumnType, event: KeyboardEvent) => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (!columns) return;\n\n const values = this.getColumnValues(type);\n const selected = this.getSelectedValue(type);\n const col = columns[idx] as HTMLElement;\n if (!col) return;\n\n const selectHighlighted = () => {\n const highlighted = this.getHighlightedValue(type, col);\n if (highlighted !== null) {\n this.handleSelect(type, highlighted);\n } else if (values.length > 0) {\n this.handleSelect(type, values[0]);\n }\n };\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n event.preventDefault();\n selectHighlighted();\n return;\n case \"ArrowRight\":\n event.preventDefault();\n selectHighlighted();\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n }\n return;\n case \"ArrowLeft\":\n event.preventDefault();\n if (idx > 0) (columns[idx - 1] as HTMLElement)?.focus();\n return;\n case \"Tab\":\n if (event.shiftKey) {\n if (idx === 0) {\n return;\n } else {\n event.preventDefault();\n (columns[idx - 1] as HTMLElement)?.focus();\n }\n } else {\n event.preventDefault();\n selectHighlighted();\n this.announceSelectedColumn(type);\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n } else {\n (\n this.el.shadowRoot?.querySelector(\n \".ic-time-selector-clear-btn\"\n ) as HTMLElement\n )?.focus();\n this.updateAriaLiveMessage();\n }\n }\n return;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n let idxInValues = values.findIndex((v) => v === selected);\n if (idxInValues === -1) idxInValues = 0;\n let newIdx = idxInValues;\n const direction = event.key === \"ArrowUp\" ? -1 : 1;\n const maxIdx = values.length - 1;\n do {\n newIdx += direction;\n } while (\n newIdx >= 0 &&\n newIdx <= maxIdx &&\n (() => {\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n const hour =\n type === \"hour\"\n ? (values[newIdx] as number)\n : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (values[newIdx] as number)\n : this.selectedMinute ?? 0;\n const second =\n type === \"second\"\n ? (values[newIdx] as number)\n : this.selectedSecond ?? 0;\n return this.isTimeDisabled(hour, minute, second);\n }\n return false;\n })()\n );\n this.ariaLiveMessage = `Selected ${type}: ${values[newIdx]}`;\n if (newIdx >= 0 && newIdx <= maxIdx && newIdx !== idxInValues) {\n this.handleSelect(type, values[newIdx]);\n }\n return;\n }\n default:\n return;\n }\n };\n\n private updateAriaLiveMessage() {\n const hourStr =\n this.selectedHour != null\n ? this.selectedHour.toString().padStart(2, \"0\")\n : null;\n const minuteStr =\n this.selectedMinute != null\n ? this.selectedMinute.toString().padStart(2, \"0\")\n : null;\n const secondStr =\n this.selectedSecond != null\n ? this.selectedSecond.toString().padStart(2, \"0\")\n : null;\n let timeString = \"\";\n let allSelected = false;\n if (this.timeFormat === \"HH:MM\") {\n allSelected = hourStr !== null && minuteStr !== null;\n if (allSelected) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n (this.selectedPeriod ? \" \" + this.selectedPeriod : \"\");\n }\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected =\n hourStr !== null && minuteStr !== null && secondStr !== null;\n if (allSelected) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n \":\" +\n secondStr +\n (this.selectedPeriod ? \" \" + this.selectedPeriod : \"\");\n }\n }\n this.ariaLiveMessage =\n allSelected && timeString ? `Selected time: ${timeString}` : \"\";\n }\n\n private renderColumn = (\n type: ColumnType,\n values: number[] | IcTimePeriods[],\n selected: number | IcTimePeriods | null\n ) => {\n const isTimeColumn =\n type === \"hour\" || type === \"minute\" || type === \"second\";\n const isPeriodColumn = type === \"period\";\n const headerLabel = this.getHeaderLabel(type);\n const topSpacerCount = 2;\n let bottomSpacerCount = 6;\n if (this.size === \"large\") {\n bottomSpacerCount = 5;\n } else if (this.size === \"small\") {\n bottomSpacerCount = 8;\n }\n return (\n <div class=\"ic-time-selector-column-wrapper\">\n {isPeriodColumn ? (\n <div class=\"ic-time-selector-header-row\" />\n ) : (\n headerLabel && (\n <div class=\"ic-time-selector-header-row\">\n <ic-typography variant=\"subtitle-small\">\n {headerLabel}\n </ic-typography>\n </div>\n )\n )}\n <div\n class={{\n \"ic-time-selector-column\": true,\n \"ic-time-selector-column-period\": isPeriodColumn,\n }}\n tabIndex={0}\n onKeyDown={(e) => this.handleColumnKeyDown(type, e as KeyboardEvent)}\n >\n <ul class=\"ic-time-selector-list\" role=\"listbox\" aria-label={type}>\n {this.renderScrollRows(topSpacerCount, `${type}-top-spacer`)}\n {values.map((val) => {\n let disabled = false;\n if (isTimeColumn) {\n const hour =\n type === \"hour\" ? (val as number) : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (val as number)\n : this.selectedMinute ?? 0;\n const second =\n type === \"second\"\n ? (val as number)\n : this.selectedSecond ?? 0;\n disabled = this.isTimeDisabled(hour, minute, second, type);\n }\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n selected: val === selected,\n disabled,\n }}\n role=\"option\"\n aria-selected={val === selected ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : \"false\"}\n onClick={() =>\n !disabled && this.handleSelect(type, val as any)\n }\n tabIndex={-1}\n key={`${type}-val-${val}`}\n >\n <ic-typography variant=\"subtitle-small\">\n {typeof val === \"number\"\n ? val.toString().padStart(2, \"0\")\n : val}\n </ic-typography>\n </li>\n );\n })}\n {(isTimeColumn || isPeriodColumn) &&\n this.renderScrollRows(bottomSpacerCount, `${type}-bottom-spacer`)}\n </ul>\n </div>\n </div>\n );\n };\n\n private handleClear = () => {\n this.selectedHour = undefined;\n this.scrollSelectedItem(\"hour\", true);\n this.selectedMinute = undefined;\n this.scrollSelectedItem(\"minute\", true);\n this.selectedSecond = undefined;\n this.scrollSelectedItem(\"second\", true);\n this.selectedPeriod = undefined;\n this.scrollSelectedItem(\"period\", true);\n this.lastAnnouncedType = undefined;\n this.lastAnnouncedValue = undefined;\n this.icChange.emit({\n value: null,\n timeString: null,\n timeObject: {\n hour: null,\n minute: null,\n second: null,\n period: undefined,\n },\n });\n };\n\n private handleConfirmClick = () => {\n const hour = this.selectedHour != null ? this.selectedHour : null;\n const minute = this.selectedMinute != null ? this.selectedMinute : null;\n const second = this.selectedSecond != null ? this.selectedSecond : null;\n const period = this.selectedPeriod;\n\n const hourStr = hour != null ? hour.toString().padStart(2, \"0\") : null;\n const minuteStr =\n minute != null ? minute.toString().padStart(2, \"0\") : null;\n const secondStr =\n second != null ? second.toString().padStart(2, \"0\") : null;\n\n let allSelected = false;\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected = hour !== null && minute !== null && second !== null;\n } else {\n allSelected = hour !== null && minute !== null;\n }\n\n let value: Date | null = null;\n let timeString: string | null = null;\n if (allSelected) {\n let date24hours = hour;\n if (hour != null && period && this.timePeriod === \"12\") {\n if (period === \"PM\" && hour < 12) date24hours = hour + 12;\n if (period === \"AM\" && hour === 12) date24hours = 0;\n }\n value = new Date();\n value.setHours(date24hours ?? 0);\n value.setMinutes(minute ?? 0);\n value.setSeconds(second ?? 0);\n value.setMilliseconds(0);\n if (this.timeFormat === \"HH:MM\") {\n timeString = hourStr + \":\" + minuteStr + (period ? \" \" + period : \"\");\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n \":\" +\n secondStr +\n (period ? \" \" + period : \"\");\n }\n this.value = value;\n }\n\n this.icChange.emit({\n value: allSelected ? value : null,\n timeString: allSelected ? timeString : null,\n timeObject: {\n hour: hourStr,\n minute: minuteStr,\n second: secondStr,\n ...(period ? { period } : {}),\n },\n });\n };\n\n render() {\n const hours =\n this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n const timeFormat = this.timeFormat || this.DEFAULT_TIME_FORMAT;\n const columns = [\n this.renderColumn(\"hour\", hours, this.selectedHour ?? null),\n this.renderColumn(\"minute\", this.minutes, this.selectedMinute ?? null),\n ];\n if (timeFormat === this.DEFAULT_TIME_FORMAT) {\n columns.push(\n this.renderColumn(\"second\", this.seconds, this.selectedSecond ?? null)\n );\n }\n\n let colonSelectedStates: boolean[] = [];\n if (timeFormat === this.DEFAULT_TIME_FORMAT) {\n colonSelectedStates = [\n this.selectedHour !== undefined && this.selectedMinute !== undefined,\n this.selectedMinute !== undefined && this.selectedSecond !== undefined,\n ];\n } else {\n colonSelectedStates = [\n this.selectedHour !== undefined && this.selectedMinute !== undefined,\n ];\n }\n\n const isInPicker = this.el.closest(\"ic-time-picker\") !== null;\n\n const { size, theme, timePeriod } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-selector-${size}`]: true,\n }}\n >\n <div\n role={isInPicker ? \"dialog\" : undefined}\n aria-modal={isInPicker ? true : undefined}\n aria-label=\"Select time. Use arrow keys to navigate and select the options and then tab to move onto the next selection.\"\n class={{\n \"ic-time-selector-dialog-container\": true,\n }}\n >\n <div class=\"ic-time-selector-highlight-lines\">\n <div class=\"ic-time-selector-header-border\" />\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-top\": true,\n }}\n />\n <div class=\"ic-time-selector-columns\">\n {columns.map((col, idx) => [\n col,\n idx < columns.length - 1 ? (\n <ic-typography\n class={{\n \"ic-time-selector-colon\": true,\n \"ic-time-selector-colon-selected\":\n colonSelectedStates[idx],\n }}\n variant=\"subtitle-small\"\n aria-hidden=\"true\"\n key={`colon-${idx}`}\n >\n :\n </ic-typography>\n ) : null,\n ])}\n {timePeriod !== \"24\" &&\n this.renderColumn(\n \"period\",\n this.periods,\n this.selectedPeriod ?? null\n )}\n </div>\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-bottom\": true,\n }}\n />\n </div>\n <div class=\"ic-time-selector-actions\">\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Clear time\"\n class={{\n \"ic-time-selector-clear-btn\": true,\n }}\n onClick={this.handleClear}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedSecond === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === \"Tab\" && e.shiftKey) {\n e.preventDefault();\n const columns =\n this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n const lastCol = columns[columns.length - 1] as HTMLElement;\n lastCol?.focus();\n }\n }\n }}\n >\n <span aria-hidden=\"true\" innerHTML={Clear}></span>\n </ic-button>\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Select time\"\n class=\"ic-time-selector-check-btn\"\n onClick={this.handleConfirmClick}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedSecond === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n >\n <span aria-hidden=\"true\" innerHTML={Check}></span>\n </ic-button>\n </div>\n </div>\n <div class=\"sr-only\" aria-live=\"polite\">\n {this.ariaLiveMessage}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,166 @@
1
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
+ import { html } from "lit-html";
3
+ import readme from "./readme.md";
4
+ export default {
5
+ title: "Web Components/Time Selector",
6
+ component: "ic-time-selector",
7
+ parameters: {
8
+ componentAPI: {
9
+ data: readme,
10
+ },
11
+ },
12
+ };
13
+ /**
14
+ * Use the time selector component to manually select a time in different formats.
15
+ *
16
+ * Click the 'Component API' tab to view all the available attributes, events and slots for time selector.
17
+ *
18
+ * To use the time selector component, import `@ukic/canary-web-components` into your application.
19
+ *
20
+ * Times can be selected by scrolling through each column or using the up and down arrow keys.
21
+ *
22
+ * To move between hour, minute and second using the keyboard, provide the required values based on the placeholders or use `:`.
23
+ *
24
+ */
25
+ export const Default = {
26
+ render: () => html `<ic-time-selector></ic-time-selector>`,
27
+ name: "Default",
28
+ };
29
+ /**
30
+ * Retrieving the time selector value via `icChange` returns the time as a Date object.
31
+ *
32
+ * The event returns the Date object once hour, minute and second have been selected by clicking the tick icon button.
33
+ */
34
+ export const IcChangeEvent = {
35
+ render: () => html `<ic-time-selector></ic-time-selector>
36
+ <script>
37
+ var timeSelector = document.querySelector("ic-time-selector");
38
+ timeSelector.addEventListener("icChange", (event) => {
39
+ console.log("icChange event detail:", event.detail);
40
+ });
41
+ </script>`,
42
+ name: "icChange Event",
43
+ };
44
+ /**
45
+ * To set a value to the time selector, pass the time value in the relevant time format.
46
+ */
47
+ export const WithValue = {
48
+ render: () => html `<ic-time-selector value="14:30:40"></ic-time-selector>`,
49
+ name: "With value",
50
+ };
51
+ /**
52
+ * The time selector also accepts a number of different time formats within the value attribute:
53
+ * - [Date object](#date-object)
54
+ * - [Zulu time](#zulu-time)
55
+ */
56
+ export const DateObject = {
57
+ render: () => html `<ic-time-selector
58
+ id="time-selector-default-time-date"
59
+ ></ic-time-selector>
60
+ <script>
61
+ var timeSelectorDate = document.querySelector(
62
+ "#time-selector-default-time-date"
63
+ );
64
+ timeSelectorDate.value = new Date("2025-07-14T15:30:45");
65
+ </script>`,
66
+ name: "Date object",
67
+ };
68
+ export const ZuluTime = {
69
+ render: () => html `<div>
70
+ <ic-time-selector id="time-selector-default-zulu-time"></ic-time-selector>
71
+ </div>
72
+ <script>
73
+ var timeSelectorZulu = document.querySelector(
74
+ "#time-selector-default-zulu-time"
75
+ );
76
+ timeSelectorZulu.value = "15:30:45Z";
77
+ </script>`,
78
+ name: "Zulu time",
79
+ };
80
+ /**
81
+ * Demonstrates the `time-period` prop for 12-hour selection.
82
+ */
83
+ export const TimePeriod = {
84
+ render: () => html `<ic-time-selector time-period="12"></ic-time-selector>`,
85
+ name: "12-Hour",
86
+ };
87
+ export const IcChangeEventTimePeriod = {
88
+ render: () => html `<ic-time-selector time-period="12"></ic-time-selector>
89
+ <script>
90
+ var icTimeSelector = document.querySelector("ic-time-selector");
91
+ icTimeSelector.addEventListener("icChange", (event) => {
92
+ console.log("icChange event detail:", event.detail);
93
+ });
94
+ </script>`,
95
+ name: "icChange Event - with time period",
96
+ };
97
+ export const DefaultValue12Hour = {
98
+ render: () => html `<ic-time-selector
99
+ value="14:30:40"
100
+ time-period="12"
101
+ ></ic-time-selector>`,
102
+ name: "Default value - 12 hour",
103
+ };
104
+ /**
105
+ * Demonstrates the time format HH:MM.
106
+ */
107
+ export const TimeFormat = {
108
+ render: () => html `<ic-time-selector time-format="HH:MM"></ic-time-selector>`,
109
+ name: "Time format HH:MM",
110
+ };
111
+ export const DefaultValueTimeFormat = {
112
+ render: () => html `<ic-time-selector
113
+ value="14:30"
114
+ time-format="HH:MM"
115
+ ></ic-time-selector>`,
116
+ name: "Default value - Time format HH:MM",
117
+ };
118
+ /**
119
+ * Setting min time allows you to restrict the earliest time that can be selected.
120
+ * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
121
+ */
122
+ export const MinTime = {
123
+ render: () => html `<ic-time-selector min="09:30:00"></ic-time-selector>`,
124
+ name: "Min time",
125
+ };
126
+ /**
127
+ * Setting max time allows you to restrict the latest time that can be selected.
128
+ * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
129
+ */
130
+ export const MaxTime = {
131
+ render: () => html `<ic-time-selector max="18:00:00"></ic-time-selector>`,
132
+ name: "Max time",
133
+ };
134
+ /**
135
+ * To disable specific times in the time selector, set the `disable-times` prop.
136
+ * The `disable-times` prop accepts an array of time objects or strings.
137
+ * Each time object can have a `start` and `end` property to define a range of disabled times, or it can be a single time string to disable that specific time.
138
+ * The time can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
139
+ */
140
+ export const DisableTimes = {
141
+ render: () => html `<ic-time-selector
142
+ id="time-selector-default-disable-time"
143
+ ></ic-time-selector>
144
+ <script>
145
+ var timeSelectorDisable = document.querySelector(
146
+ "#time-selector-default-disable-time"
147
+ );
148
+ timeSelectorDisable.disableTimes = [
149
+ { start: "08:00", end: "10:00" },
150
+ "13:20",
151
+ ];
152
+ </script>`,
153
+ name: "Disabled times",
154
+ };
155
+ /**
156
+ * Demonstrates the size options for the time selector component.
157
+ */
158
+ export const Small = {
159
+ render: () => html `<ic-time-selector size="small" time-period="12"></ic-time-selector>`,
160
+ name: "Small",
161
+ };
162
+ export const Large = {
163
+ render: () => html `<ic-time-selector size="large" time-period="12"></ic-time-selector>`,
164
+ name: "Large",
165
+ };
166
+ //# sourceMappingURL=ic-time-selector.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-time-selector.stories.js","sourceRoot":"","sources":["../../../../../src/components/ic-time-selector/ic-time-selector.stories.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { html } from \"lit-html\";\nimport readme from \"./readme.md\";\n\nexport default {\n title: \"Web Components/Time Selector\",\n component: \"ic-time-selector\",\n parameters: {\n componentAPI: {\n data: readme,\n },\n },\n};\n\n/**\n * Use the time selector component to manually select a time in different formats.\n *\n * Click the 'Component API' tab to view all the available attributes, events and slots for time selector.\n *\n * To use the time selector component, import `@ukic/canary-web-components` into your application.\n *\n * Times can be selected by scrolling through each column or using the up and down arrow keys.\n *\n * To move between hour, minute and second using the keyboard, provide the required values based on the placeholders or use `:`.\n *\n */\nexport const Default = {\n render: () => html`<ic-time-selector></ic-time-selector>`,\n name: \"Default\",\n};\n\n/**\n * Retrieving the time selector value via `icChange` returns the time as a Date object.\n *\n * The event returns the Date object once hour, minute and second have been selected by clicking the tick icon button.\n */\nexport const IcChangeEvent = {\n render: () => html`<ic-time-selector></ic-time-selector>\n <script>\n var timeSelector = document.querySelector(\"ic-time-selector\");\n timeSelector.addEventListener(\"icChange\", (event) => {\n console.log(\"icChange event detail:\", event.detail);\n });\n </script>`,\n name: \"icChange Event\",\n};\n\n/**\n * To set a value to the time selector, pass the time value in the relevant time format.\n */\nexport const WithValue = {\n render: () => html`<ic-time-selector value=\"14:30:40\"></ic-time-selector>`,\n name: \"With value\",\n};\n\n/**\n * The time selector also accepts a number of different time formats within the value attribute:\n * - [Date object](#date-object)\n * - [Zulu time](#zulu-time)\n */\nexport const DateObject = {\n render: () => html`<ic-time-selector\n id=\"time-selector-default-time-date\"\n ></ic-time-selector>\n <script>\n var timeSelectorDate = document.querySelector(\n \"#time-selector-default-time-date\"\n );\n timeSelectorDate.value = new Date(\"2025-07-14T15:30:45\");\n </script>`,\n name: \"Date object\",\n};\n\nexport const ZuluTime = {\n render: () => html`<div>\n <ic-time-selector id=\"time-selector-default-zulu-time\"></ic-time-selector>\n </div>\n <script>\n var timeSelectorZulu = document.querySelector(\n \"#time-selector-default-zulu-time\"\n );\n timeSelectorZulu.value = \"15:30:45Z\";\n </script>`,\n name: \"Zulu time\",\n};\n\n/**\n * Demonstrates the `time-period` prop for 12-hour selection.\n */\nexport const TimePeriod = {\n render: () => html`<ic-time-selector time-period=\"12\"></ic-time-selector>`,\n name: \"12-Hour\",\n};\n\nexport const IcChangeEventTimePeriod = {\n render: () => html`<ic-time-selector time-period=\"12\"></ic-time-selector>\n <script>\n var icTimeSelector = document.querySelector(\"ic-time-selector\");\n icTimeSelector.addEventListener(\"icChange\", (event) => {\n console.log(\"icChange event detail:\", event.detail);\n });\n </script>`,\n name: \"icChange Event - with time period\",\n};\n\nexport const DefaultValue12Hour = {\n render: () =>\n html`<ic-time-selector\n value=\"14:30:40\"\n time-period=\"12\"\n ></ic-time-selector>`,\n name: \"Default value - 12 hour\",\n};\n\n/**\n * Demonstrates the time format HH:MM.\n */\nexport const TimeFormat = {\n render: () => html`<ic-time-selector time-format=\"HH:MM\"></ic-time-selector>`,\n name: \"Time format HH:MM\",\n};\n\nexport const DefaultValueTimeFormat = {\n render: () =>\n html`<ic-time-selector\n value=\"14:30\"\n time-format=\"HH:MM\"\n ></ic-time-selector>`,\n name: \"Default value - Time format HH:MM\",\n};\n\n/**\n * Setting min time allows you to restrict the earliest time that can be selected.\n * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const MinTime = {\n render: () => html`<ic-time-selector min=\"09:30:00\"></ic-time-selector>`,\n name: \"Min time\",\n};\n\n/**\n * Setting max time allows you to restrict the latest time that can be selected.\n * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const MaxTime = {\n render: () => html`<ic-time-selector max=\"18:00:00\"></ic-time-selector>`,\n name: \"Max time\",\n};\n\n/**\n * To disable specific times in the time selector, set the `disable-times` prop.\n * The `disable-times` prop accepts an array of time objects or strings.\n * Each time object can have a `start` and `end` property to define a range of disabled times, or it can be a single time string to disable that specific time.\n * The time can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const DisableTimes = {\n render: () => html`<ic-time-selector\n id=\"time-selector-default-disable-time\"\n ></ic-time-selector>\n <script>\n var timeSelectorDisable = document.querySelector(\n \"#time-selector-default-disable-time\"\n );\n timeSelectorDisable.disableTimes = [\n { start: \"08:00\", end: \"10:00\" },\n \"13:20\",\n ];\n </script>`,\n name: \"Disabled times\",\n};\n\n/**\n * Demonstrates the size options for the time selector component.\n */\nexport const Small = {\n render: () =>\n html`<ic-time-selector size=\"small\" time-period=\"12\"></ic-time-selector>`,\n name: \"Small\",\n};\n\nexport const Large = {\n render: () =>\n html`<ic-time-selector size=\"large\" time-period=\"12\"></ic-time-selector>`,\n name: \"Large\",\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ic-time-selector.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-time-selector.types.js","sourceRoot":"","sources":["../../../../../src/components/ic-time-selector/ic-time-selector.types.ts"],"names":[],"mappings":"","sourcesContent":["export type IcTimePeriods = \"AM\" | \"PM\";\n"]}
@@ -284,7 +284,7 @@ export class TreeItem {
284
284
  rel: this.rel,
285
285
  target: this.target,
286
286
  };
287
- return (h(Host, { key: '735aa762f3a11335e21af5ce963b703bc85e0070', class: {
287
+ return (h(Host, { key: '2b66767ebcadc7f0d59c0e2309424e01dbc49410', class: {
288
288
  "ic-tree-item-disabled": disabled,
289
289
  "ic-tree-item-selected": !disabled && selected,
290
290
  [`ic-tree-item-${size}`]: size !== "medium",
@@ -295,7 +295,7 @@ export class TreeItem {
295
295
  }, 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 && (h("span", { class: {
296
296
  ["arrow-dropdown"]: true,
297
297
  ["tree-item-expanded"]: expanded,
298
- }, "aria-hidden": "true", innerHTML: arrowDropdown })), isSlotUsed(this.el, "icon") && (h("div", { class: "icon-container" }, h("slot", { name: "icon" }))), h("ic-typography", { class: "tree-item-label" }, isSlotUsed(this.el, "label") ? h("slot", { name: "label" }) : label))), expanded && (h("div", { key: 'ca3bf6979ae492a45fadd0e5cac144139511842f', "aria-hidden": `${!expanded}` }, h("slot", { key: 'e7142f27b9d7d753ace48748ea1d74266c9940e2' })))));
298
+ }, "aria-hidden": "true", innerHTML: arrowDropdown })), isSlotUsed(this.el, "icon") && (h("div", { class: "icon-container" }, h("slot", { name: "icon" }))), h("ic-typography", { class: "tree-item-label" }, isSlotUsed(this.el, "label") ? h("slot", { name: "label" }) : label))), expanded && (h("div", { key: '1806805bf01bf7d6320b753a2ed577ea08b8f716', "aria-hidden": `${!expanded}` }, h("slot", { key: '2c7de11af3f2248a6c7ca57d43f56851046cc26a' })))));
299
299
  }
300
300
  static get is() { return "ic-tree-item"; }
301
301
  static get encapsulation() { return "shadow"; }
@@ -315,14 +315,14 @@ export class TreeView {
315
315
  }
316
316
  render() {
317
317
  const { heading, isLoaded, size, theme, truncateHeading } = this;
318
- return (h(Host, { key: '28757cb9ec7287dbeca529a06194945e85d59961', "context-id": this.treeViewId, class: {
318
+ return (h(Host, { key: 'b64c96601e14f028d70d42596ab73c3adcc5c50c', "context-id": this.treeViewId, class: {
319
319
  [`ic-tree-view-${size}`]: size !== "medium",
320
320
  [`ic-theme-${theme}`]: theme !== "inherit",
321
321
  "ic-tree-view-truncate": truncateHeading,
322
- }, onKeyDown: this.handleKeyDown, "aria-label": this.isHeadingDefined() ? heading : null }, this.hasHeadingAreaContent() && (h("div", { key: '5f60334aa3bcb1981f838f2961a363ac8c71e836', class: "heading-area-container" }, isSlotUsed(this.el, "icon") && (h("div", { key: '547a4d855e7f595504b3eec6df1b49913b85bbbf', class: "icon-container" }, h("slot", { key: 'bd75707980d222e48aa143c4bf9b06be06d2b9e3', name: "icon" }))), h("ic-typography", { key: 'c272371c592cf629a8ac4bcc0f4e6b907e27e526', variant: "subtitle-large", class: {
322
+ }, onKeyDown: this.handleKeyDown, "aria-label": this.isHeadingDefined() ? heading : null }, this.hasHeadingAreaContent() && (h("div", { key: '2147d52cb5d094a6b2030707832e7986452ec793', class: "heading-area-container" }, isSlotUsed(this.el, "icon") && (h("div", { key: '884b18baa7bf9a6530578e14e554e7da405184e4', class: "icon-container" }, h("slot", { key: 'a7b165ab9a5851dd0006a0ed2d58299c6cce8008', name: "icon" }))), h("ic-typography", { key: 'b851dc0c5d16d8127ba3e3e0c0efdbbb2675bdd4', variant: "subtitle-large", class: {
323
323
  "tree-view-header": true,
324
324
  "with-padding": this.truncateHeading && !isLoaded,
325
- } }, isSlotUsed(this.el, "heading") ? (h("slot", { name: "heading" })) : (heading)))), h("slot", { key: '7cd22f3cf4e5eb8850632aca6a8f8c2e4e26d743' })));
325
+ } }, isSlotUsed(this.el, "heading") ? (h("slot", { name: "heading" })) : (heading)))), h("slot", { key: '1e2577f386a2121c89644f395358fb746eb63cd1' })));
326
326
  }
327
327
  static get is() { return "ic-tree-view"; }
328
328
  static get encapsulation() { return "shadow"; }
@@ -487,4 +487,39 @@ export const renderDynamicChildSlots = (mutationList, slotNames, ref) => {
487
487
  forceUpdate(ref);
488
488
  }
489
489
  };
490
+ /**
491
+ * Parses a time string (HH:MM or HH:MM:SS) or Date and returns both Date and time parts.
492
+ * @param value string or Date
493
+ * @returns { date: Date | null, parts: { hour: number, minute: number, second: number } | null }
494
+ */
495
+ export function parseTimeHelper(value) {
496
+ if (!value)
497
+ return { date: null, parts: null };
498
+ let d;
499
+ if (typeof value === "string") {
500
+ const parts = value.split(/[:.]/);
501
+ if (parts.length >= 2) {
502
+ d = new Date();
503
+ d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, parts[3] ? +parts[3] : 0);
504
+ }
505
+ else {
506
+ return { date: null, parts: null };
507
+ }
508
+ }
509
+ else if (value instanceof Date) {
510
+ d = value;
511
+ }
512
+ else {
513
+ return { date: null, parts: null };
514
+ }
515
+ return {
516
+ date: d,
517
+ parts: {
518
+ hour: d.getHours(),
519
+ minute: d.getMinutes(),
520
+ second: d.getSeconds(),
521
+ millisecond: d.getMilliseconds(),
522
+ },
523
+ };
524
+ }
490
525
  //# sourceMappingURL=helpers.js.map