mtrl 0.3.8 → 0.4.0

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 (703) hide show
  1. package/dist/LICENSE +21 -0
  2. package/dist/README.md +324 -0
  3. package/dist/components/badge/api.d.ts +48 -0
  4. package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
  5. package/dist/components/badge/config.d.ts +79 -0
  6. package/dist/components/badge/constants.d.ts +35 -0
  7. package/dist/components/badge/features.d.ts +36 -0
  8. package/dist/components/badge/index.d.ts +8 -0
  9. package/dist/components/badge/types.d.ts +256 -0
  10. package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
  11. package/dist/components/bottom-app-bar/config.d.ts +16 -0
  12. package/dist/components/bottom-app-bar/constants.d.ts +22 -0
  13. package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
  14. package/dist/components/bottom-app-bar/types.d.ts +96 -0
  15. package/dist/components/button/api.d.ts +47 -0
  16. package/dist/components/button/button.d.ts +25 -0
  17. package/dist/components/button/config.d.ts +59 -0
  18. package/dist/components/button/constants.d.ts +43 -0
  19. package/dist/components/button/index.d.ts +6 -0
  20. package/dist/components/button/types.d.ts +265 -0
  21. package/dist/components/card/api.d.ts +11 -0
  22. package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
  23. package/dist/components/card/config.d.ts +105 -0
  24. package/dist/components/card/constants.d.ts +85 -0
  25. package/dist/components/card/content.d.ts +92 -0
  26. package/dist/components/card/features.d.ts +131 -0
  27. package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
  28. package/dist/components/card/types.d.ts +471 -0
  29. package/dist/components/carousel/api.d.ts +33 -0
  30. package/dist/components/carousel/carousel.d.ts +75 -0
  31. package/dist/components/carousel/config.d.ts +45 -0
  32. package/dist/components/carousel/constants.d.ts +165 -0
  33. package/dist/components/carousel/features/drag.d.ts +8 -0
  34. package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
  35. package/dist/components/carousel/features/slides.d.ts +8 -0
  36. package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
  37. package/dist/components/carousel/types.d.ts +276 -0
  38. package/dist/components/checkbox/api.d.ts +7 -0
  39. package/dist/components/checkbox/checkbox.d.ts +65 -0
  40. package/dist/components/checkbox/config.d.ts +44 -0
  41. package/dist/components/checkbox/constants.d.ts +63 -0
  42. package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
  43. package/dist/components/checkbox/types.d.ts +242 -0
  44. package/dist/components/chips/api.d.ts +49 -0
  45. package/dist/components/chips/chip/api.d.ts +23 -0
  46. package/dist/components/chips/chip/chip.d.ts +8 -0
  47. package/dist/components/chips/chip/config.d.ts +57 -0
  48. package/dist/components/chips/chip/constants.d.ts +38 -0
  49. package/dist/components/chips/chip/index.d.ts +2 -0
  50. package/dist/components/chips/chip/types.d.ts +11 -0
  51. package/dist/components/chips/chips.d.ts +17 -0
  52. package/dist/components/chips/config.d.ts +67 -0
  53. package/dist/components/chips/constants.d.ts +46 -0
  54. package/dist/components/chips/features/chip-items.d.ts +8 -0
  55. package/dist/components/chips/features/container.d.ts +8 -0
  56. package/dist/components/chips/features/controller.d.ts +9 -0
  57. package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
  58. package/dist/components/chips/features/label.d.ts +8 -0
  59. package/dist/components/chips/index.d.ts +4 -0
  60. package/dist/components/chips/schema.d.ts +34 -0
  61. package/dist/components/chips/types.d.ts +398 -0
  62. package/dist/components/datepicker/api.d.ts +9 -0
  63. package/dist/components/datepicker/config.d.ts +79 -0
  64. package/dist/components/datepicker/constants.d.ts +97 -0
  65. package/dist/components/datepicker/datepicker.d.ts +8 -0
  66. package/dist/components/datepicker/index.d.ts +3 -0
  67. package/dist/components/datepicker/render.d.ts +43 -0
  68. package/dist/components/datepicker/types.d.ts +321 -0
  69. package/dist/components/datepicker/utils.d.ts +84 -0
  70. package/dist/components/dialog/api.d.ts +59 -0
  71. package/dist/components/dialog/config.d.ts +91 -0
  72. package/dist/components/dialog/constants.d.ts +116 -0
  73. package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
  74. package/dist/components/dialog/features.d.ts +37 -0
  75. package/dist/components/dialog/index.d.ts +14 -0
  76. package/dist/components/dialog/types.d.ts +483 -0
  77. package/dist/components/divider/config.d.ts +143 -0
  78. package/dist/components/divider/constants.d.ts +45 -0
  79. package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
  80. package/dist/components/divider/features.d.ts +50 -0
  81. package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
  82. package/dist/components/divider/types.d.ts +124 -0
  83. package/dist/components/extended-fab/api.d.ts +83 -0
  84. package/dist/components/extended-fab/config.d.ts +75 -0
  85. package/dist/components/extended-fab/constants.d.ts +82 -0
  86. package/dist/components/extended-fab/extended-fab.d.ts +61 -0
  87. package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
  88. package/dist/components/extended-fab/types.d.ts +703 -0
  89. package/dist/components/fab/api.d.ts +64 -0
  90. package/dist/components/fab/config.d.ts +71 -0
  91. package/dist/components/fab/constants.d.ts +75 -0
  92. package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
  93. package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
  94. package/dist/components/fab/types.d.ts +577 -0
  95. package/dist/components/index.d.ts +76 -0
  96. package/dist/components/list/api.d.ts +106 -0
  97. package/dist/components/list/config.d.ts +61 -0
  98. package/dist/components/list/constants.d.ts +76 -0
  99. package/dist/components/list/features/index.d.ts +2 -0
  100. package/dist/components/list/features/listmanager.d.ts +9 -0
  101. package/dist/components/list/features/selection.d.ts +9 -0
  102. package/dist/components/list/index.d.ts +12 -0
  103. package/dist/components/list/list.d.ts +11 -0
  104. package/dist/components/list/types.d.ts +294 -0
  105. package/dist/components/menu/api.d.ts +58 -0
  106. package/dist/components/menu/config.d.ts +78 -0
  107. package/dist/components/menu/constants.d.ts +106 -0
  108. package/dist/components/menu/features/controller.d.ts +10 -0
  109. package/dist/components/menu/features/index.d.ts +6 -0
  110. package/dist/components/menu/features/keyboard.d.ts +26 -0
  111. package/dist/components/menu/features/opener.d.ts +10 -0
  112. package/dist/components/menu/features/position.d.ts +18 -0
  113. package/dist/components/menu/features/submenu.d.ts +10 -0
  114. package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
  115. package/dist/components/menu/menu.d.ts +29 -0
  116. package/dist/components/menu/types.d.ts +338 -0
  117. package/dist/components/navigation/api.d.ts +8 -0
  118. package/dist/components/navigation/config.d.ts +34 -0
  119. package/dist/components/navigation/constants.d.ts +137 -0
  120. package/dist/components/navigation/features/controller.d.ts +30 -0
  121. package/dist/components/navigation/features/items.d.ts +32 -0
  122. package/dist/components/navigation/index.d.ts +3 -0
  123. package/dist/components/navigation/nav-item.d.ts +30 -0
  124. package/dist/components/navigation/navigation.d.ts +8 -0
  125. package/dist/components/navigation/system/core.d.ts +72 -0
  126. package/dist/components/navigation/system/events.d.ts +35 -0
  127. package/dist/components/navigation/system/index.d.ts +10 -0
  128. package/dist/components/navigation/system/mobile.d.ts +52 -0
  129. package/dist/components/navigation/system/state.d.ts +22 -0
  130. package/dist/components/navigation/system/types.d.ts +305 -0
  131. package/dist/components/navigation/types.d.ts +216 -0
  132. package/dist/components/progress/api.d.ts +46 -0
  133. package/dist/components/progress/config.d.ts +72 -0
  134. package/dist/components/progress/constants.d.ts +139 -0
  135. package/dist/components/progress/features/canvas.d.ts +32 -0
  136. package/dist/components/progress/features/circular.d.ts +9 -0
  137. package/dist/components/progress/features/index.d.ts +8 -0
  138. package/dist/components/progress/features/linear.d.ts +9 -0
  139. package/dist/components/progress/features/resize-observer.d.ts +5 -0
  140. package/dist/components/progress/features/state.d.ts +38 -0
  141. package/dist/components/progress/features.d.ts +40 -0
  142. package/dist/components/progress/index.d.ts +3 -0
  143. package/dist/components/progress/progress.d.ts +24 -0
  144. package/dist/components/progress/types.d.ts +272 -0
  145. package/dist/components/radios/api.d.ts +37 -0
  146. package/dist/components/radios/config.d.ts +42 -0
  147. package/dist/components/radios/constants.d.ts +114 -0
  148. package/dist/components/radios/index.d.ts +3 -0
  149. package/dist/components/radios/radio.d.ts +8 -0
  150. package/dist/components/radios/radios.d.ts +8 -0
  151. package/dist/components/radios/types.d.ts +189 -0
  152. package/dist/components/search/api.d.ts +55 -0
  153. package/dist/components/search/config.d.ts +73 -0
  154. package/dist/components/search/constants.d.ts +128 -0
  155. package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
  156. package/dist/components/search/features/search.d.ts +7 -0
  157. package/dist/components/search/features/states.d.ts +8 -0
  158. package/dist/components/search/features/structure.d.ts +7 -0
  159. package/dist/components/search/index.d.ts +3 -0
  160. package/dist/components/search/search.d.ts +8 -0
  161. package/dist/components/search/types.d.ts +132 -0
  162. package/dist/components/segmented-button/config.d.ts +65 -0
  163. package/dist/components/segmented-button/constants.d.ts +85 -0
  164. package/dist/components/segmented-button/index.d.ts +4 -0
  165. package/dist/components/segmented-button/segment.d.ts +15 -0
  166. package/dist/components/segmented-button/segmented-button.d.ts +49 -0
  167. package/dist/components/segmented-button/types.d.ts +257 -0
  168. package/dist/components/select/api.d.ts +8 -0
  169. package/dist/components/select/config.d.ts +18 -0
  170. package/dist/components/select/constants.d.ts +113 -0
  171. package/dist/components/select/features.d.ts +13 -0
  172. package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
  173. package/dist/components/select/select.d.ts +36 -0
  174. package/dist/components/select/types.d.ts +302 -0
  175. package/dist/components/sheet/api.d.ts +37 -0
  176. package/dist/components/sheet/config.d.ts +42 -0
  177. package/dist/components/sheet/constants.d.ts +136 -0
  178. package/dist/components/sheet/features/content.d.ts +6 -0
  179. package/dist/components/sheet/features/gestures.d.ts +6 -0
  180. package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
  181. package/dist/components/sheet/features/position.d.ts +7 -0
  182. package/dist/components/sheet/features/state.d.ts +6 -0
  183. package/dist/components/sheet/features/title.d.ts +6 -0
  184. package/dist/components/sheet/index.d.ts +3 -0
  185. package/dist/components/sheet/sheet.d.ts +8 -0
  186. package/dist/components/sheet/types.d.ts +250 -0
  187. package/dist/components/slider/api.d.ts +57 -0
  188. package/dist/components/slider/config.d.ts +75 -0
  189. package/dist/components/slider/constants.d.ts +138 -0
  190. package/dist/components/slider/features/controller.d.ts +9 -0
  191. package/dist/components/slider/features/handlers.d.ts +25 -0
  192. package/dist/components/slider/features/index.d.ts +3 -0
  193. package/dist/components/slider/features/range.d.ts +8 -0
  194. package/dist/components/slider/features/states.d.ts +9 -0
  195. package/dist/components/slider/index.d.ts +3 -0
  196. package/dist/components/slider/schema.d.ts +108 -0
  197. package/dist/components/slider/slider.d.ts +18 -0
  198. package/dist/components/slider/types.d.ts +170 -0
  199. package/dist/components/snackbar/api.d.ts +7 -0
  200. package/dist/components/snackbar/config.d.ts +55 -0
  201. package/dist/components/snackbar/constants.d.ts +88 -0
  202. package/dist/components/snackbar/features.d.ts +13 -0
  203. package/dist/components/snackbar/index.d.ts +3 -0
  204. package/dist/components/snackbar/position.d.ts +15 -0
  205. package/dist/components/snackbar/queue.d.ts +7 -0
  206. package/dist/components/snackbar/snackbar.d.ts +8 -0
  207. package/dist/components/snackbar/types.d.ts +172 -0
  208. package/dist/components/switch/api.d.ts +7 -0
  209. package/dist/components/switch/config.d.ts +34 -0
  210. package/dist/components/switch/constants.d.ts +88 -0
  211. package/dist/components/switch/features.d.ts +59 -0
  212. package/dist/components/switch/index.d.ts +4 -0
  213. package/dist/components/switch/switch.d.ts +8 -0
  214. package/dist/components/switch/types.d.ts +131 -0
  215. package/dist/components/tabs/api.d.ts +52 -0
  216. package/dist/components/tabs/config.d.ts +39 -0
  217. package/dist/components/tabs/constants.d.ts +142 -0
  218. package/dist/components/tabs/features.d.ts +133 -0
  219. package/dist/components/tabs/index.d.ts +11 -0
  220. package/dist/components/tabs/indicator.d.ts +49 -0
  221. package/dist/components/tabs/responsive.d.ts +38 -0
  222. package/dist/components/tabs/scroll-indicators.d.ts +18 -0
  223. package/dist/components/tabs/state.d.ts +53 -0
  224. package/dist/components/tabs/tab-api.d.ts +43 -0
  225. package/dist/components/tabs/tab.d.ts +7 -0
  226. package/dist/components/tabs/tabs.d.ts +27 -0
  227. package/dist/components/tabs/types.d.ts +390 -0
  228. package/dist/components/tabs/utils.d.ts +17 -0
  229. package/dist/components/textfield/api.d.ts +8 -0
  230. package/dist/components/textfield/config.d.ts +34 -0
  231. package/dist/components/textfield/constants.d.ts +148 -0
  232. package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
  233. package/dist/components/textfield/features/leading-icon.d.ts +55 -0
  234. package/dist/components/textfield/features/placement.d.ts +28 -0
  235. package/dist/components/textfield/features/prefix-text.d.ts +54 -0
  236. package/dist/components/textfield/features/suffix-text.d.ts +54 -0
  237. package/dist/components/textfield/features/supporting-text.d.ts +59 -0
  238. package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
  239. package/dist/components/textfield/index.d.ts +3 -0
  240. package/dist/components/textfield/textfield.d.ts +36 -0
  241. package/dist/components/textfield/types.d.ts +217 -0
  242. package/dist/components/timepicker/api.d.ts +24 -0
  243. package/dist/components/timepicker/clockdial.d.ts +34 -0
  244. package/dist/components/timepicker/config.d.ts +75 -0
  245. package/dist/components/timepicker/constants.d.ts +266 -0
  246. package/dist/components/timepicker/index.d.ts +4 -0
  247. package/dist/components/timepicker/render.d.ts +9 -0
  248. package/dist/components/timepicker/timepicker.d.ts +8 -0
  249. package/dist/components/timepicker/types.d.ts +284 -0
  250. package/dist/components/timepicker/utils.d.ts +74 -0
  251. package/dist/components/tooltip/api.d.ts +18 -0
  252. package/dist/components/tooltip/config.d.ts +38 -0
  253. package/dist/components/tooltip/constants.d.ts +108 -0
  254. package/dist/components/tooltip/index.d.ts +3 -0
  255. package/dist/components/tooltip/tooltip.d.ts +8 -0
  256. package/dist/components/tooltip/types.d.ts +188 -0
  257. package/dist/components/top-app-bar/config.d.ts +16 -0
  258. package/dist/components/top-app-bar/constants.d.ts +74 -0
  259. package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
  260. package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
  261. package/dist/components/top-app-bar/types.d.ts +118 -0
  262. package/dist/constants.d.ts +30 -0
  263. package/dist/core/canvas/index.d.ts +5 -0
  264. package/dist/core/canvas/resize.d.ts +14 -0
  265. package/dist/core/collection/adapters/base.d.ts +47 -0
  266. package/dist/core/collection/adapters/route.d.ts +149 -0
  267. package/dist/core/collection/collection.d.ts +131 -0
  268. package/dist/core/collection/index.d.ts +10 -0
  269. package/dist/core/collection/list-manager/config.d.ts +29 -0
  270. package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
  271. package/dist/core/collection/list-manager/index.d.ts +61 -0
  272. package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
  273. package/dist/core/collection/list-manager/renderer.d.ts +31 -0
  274. package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
  275. package/dist/core/collection/list-manager/state.d.ts +60 -0
  276. package/dist/core/collection/list-manager/types.d.ts +361 -0
  277. package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
  278. package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
  279. package/dist/core/compose/base.d.ts +31 -0
  280. package/dist/core/compose/component.d.ts +61 -0
  281. package/dist/core/compose/features/badge.d.ts +43 -0
  282. package/dist/core/compose/features/checkable.d.ts +59 -0
  283. package/dist/core/compose/features/constants.d.ts +45 -0
  284. package/dist/core/compose/features/debounce.d.ts +84 -0
  285. package/dist/core/compose/features/disabled.d.ts +47 -0
  286. package/dist/core/compose/features/events.d.ts +37 -0
  287. package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
  288. package/dist/core/compose/features/gestures/pan.d.ts +108 -0
  289. package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
  290. package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
  291. package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
  292. package/dist/core/compose/features/gestures/tap.d.ts +79 -0
  293. package/dist/core/compose/features/gestures.d.ts +86 -0
  294. package/dist/core/compose/features/icon.d.ts +71 -0
  295. package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
  296. package/dist/core/compose/features/input.d.ts +71 -0
  297. package/dist/core/compose/features/lifecycle.d.ts +61 -0
  298. package/dist/core/compose/features/position.d.ts +51 -0
  299. package/dist/core/compose/features/ripple.d.ts +61 -0
  300. package/dist/core/compose/features/size.d.ts +17 -0
  301. package/dist/core/compose/features/style.d.ts +16 -0
  302. package/dist/core/compose/features/text.d.ts +63 -0
  303. package/dist/core/compose/features/textinput.d.ts +93 -0
  304. package/dist/core/compose/features/textlabel.d.ts +57 -0
  305. package/dist/core/compose/features/throttle.d.ts +75 -0
  306. package/dist/core/compose/features/track.d.ts +42 -0
  307. package/dist/core/compose/features/variant.d.ts +17 -0
  308. package/dist/core/compose/features/withEvents.d.ts +45 -0
  309. package/dist/core/compose/index.d.ts +17 -0
  310. package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
  311. package/dist/core/compose/utils/type-guards.d.ts +27 -0
  312. package/dist/core/composition/features/dom.d.ts +19 -0
  313. package/dist/core/composition/features/icon.d.ts +45 -0
  314. package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
  315. package/dist/core/composition/features/label.d.ts +49 -0
  316. package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
  317. package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
  318. package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +35 -83
  319. package/dist/core/config.d.ts +130 -0
  320. package/dist/core/dom/attributes.d.ts +20 -0
  321. package/dist/core/dom/classes.d.ts +52 -0
  322. package/dist/core/dom/create.d.ts +154 -0
  323. package/dist/core/dom/events.d.ts +69 -0
  324. package/dist/core/dom/index.d.ts +6 -0
  325. package/dist/core/dom/utils.d.ts +42 -0
  326. package/dist/core/gestures/index.d.ts +12 -0
  327. package/dist/core/gestures/longpress.d.ts +23 -0
  328. package/dist/core/gestures/manager.d.ts +14 -0
  329. package/dist/core/gestures/pan.d.ts +12 -0
  330. package/dist/core/gestures/pinch.d.ts +14 -0
  331. package/dist/core/gestures/rotate.d.ts +14 -0
  332. package/dist/core/gestures/swipe.d.ts +20 -0
  333. package/dist/core/gestures/tap.d.ts +12 -0
  334. package/dist/core/gestures/types.d.ts +320 -0
  335. package/dist/core/gestures/utils.d.ts +57 -0
  336. package/dist/core/index.d.ts +29 -0
  337. package/dist/core/layout/array.d.ts +15 -0
  338. package/dist/core/layout/config.d.ts +32 -0
  339. package/dist/core/layout/create.d.ts +14 -0
  340. package/dist/core/layout/index.d.ts +13 -0
  341. package/dist/core/layout/jsx.d.ts +13 -0
  342. package/dist/core/layout/object.d.ts +14 -0
  343. package/dist/core/layout/processor.d.ts +28 -0
  344. package/dist/core/layout/result.d.ts +12 -0
  345. package/dist/core/layout/template.d.ts +12 -0
  346. package/dist/core/layout/types.d.ts +137 -0
  347. package/dist/core/layout/utils.d.ts +38 -0
  348. package/dist/core/state/disabled.d.ts +32 -0
  349. package/dist/core/state/emitter.d.ts +40 -0
  350. package/dist/core/state/events.d.ts +36 -0
  351. package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
  352. package/dist/core/state/lifecycle.d.ts +57 -0
  353. package/dist/core/state/store.d.ts +82 -0
  354. package/dist/core/utils/background.d.ts +40 -0
  355. package/dist/core/utils/index.d.ts +18 -0
  356. package/dist/core/utils/mobile.d.ts +54 -0
  357. package/dist/core/utils/object.d.ts +13 -0
  358. package/dist/core/utils/performance.d.ts +79 -0
  359. package/dist/core/utils/theme.d.ts +38 -0
  360. package/dist/core/utils/validate.d.ts +73 -0
  361. package/dist/index.cjs +64 -0
  362. package/dist/index.cjs.map +291 -0
  363. package/dist/index.d.ts +15 -0
  364. package/dist/index.js +53 -14854
  365. package/dist/index.js.map +291 -0
  366. package/dist/package.json +39 -0
  367. package/dist/styles.css +7 -0
  368. package/package.json +23 -4
  369. package/.env +0 -15
  370. package/.typedocignore +0 -11
  371. package/CONTRIBUTING.md +0 -218
  372. package/DOCS.md +0 -153
  373. package/TESTING.md +0 -214
  374. package/git-user-stats.js +0 -545
  375. package/index.ts +0 -10
  376. package/src/components/badge/api.ts +0 -313
  377. package/src/components/badge/config.ts +0 -153
  378. package/src/components/badge/features.ts +0 -194
  379. package/src/components/badge/index.ts +0 -90
  380. package/src/components/badge/types.ts +0 -279
  381. package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
  382. package/src/components/bottom-app-bar/config.ts +0 -29
  383. package/src/components/bottom-app-bar/types.ts +0 -114
  384. package/src/components/button/api.ts +0 -172
  385. package/src/components/button/button.ts +0 -112
  386. package/src/components/button/config.ts +0 -96
  387. package/src/components/button/index.ts +0 -37
  388. package/src/components/button/types.ts +0 -290
  389. package/src/components/card/api.ts +0 -222
  390. package/src/components/card/config.ts +0 -304
  391. package/src/components/card/content.ts +0 -343
  392. package/src/components/card/features.ts +0 -407
  393. package/src/components/card/types.ts +0 -497
  394. package/src/components/carousel/api.ts +0 -147
  395. package/src/components/carousel/carousel.ts +0 -242
  396. package/src/components/carousel/config.ts +0 -91
  397. package/src/components/carousel/constants.ts +0 -181
  398. package/src/components/carousel/features/drag.ts +0 -388
  399. package/src/components/carousel/features/slides.ts +0 -682
  400. package/src/components/carousel/types.ts +0 -327
  401. package/src/components/checkbox/api.ts +0 -82
  402. package/src/components/checkbox/checkbox.ts +0 -142
  403. package/src/components/checkbox/config.ts +0 -89
  404. package/src/components/checkbox/types.ts +0 -342
  405. package/src/components/chips/api.ts +0 -194
  406. package/src/components/chips/chip/api.ts +0 -233
  407. package/src/components/chips/chip/chip.ts +0 -131
  408. package/src/components/chips/chip/config.ts +0 -91
  409. package/src/components/chips/chip/index.ts +0 -3
  410. package/src/components/chips/chips.md +0 -481
  411. package/src/components/chips/chips.ts +0 -75
  412. package/src/components/chips/config.ts +0 -109
  413. package/src/components/chips/constants.ts +0 -61
  414. package/src/components/chips/features/chip-items.ts +0 -33
  415. package/src/components/chips/features/container.ts +0 -77
  416. package/src/components/chips/features/controller.ts +0 -448
  417. package/src/components/chips/features/label.ts +0 -108
  418. package/src/components/chips/index.ts +0 -11
  419. package/src/components/chips/schema.ts +0 -61
  420. package/src/components/chips/types.ts +0 -469
  421. package/src/components/datepicker/api.ts +0 -265
  422. package/src/components/datepicker/config.ts +0 -141
  423. package/src/components/datepicker/datepicker.ts +0 -341
  424. package/src/components/datepicker/index.ts +0 -12
  425. package/src/components/datepicker/render.ts +0 -450
  426. package/src/components/datepicker/types.ts +0 -397
  427. package/src/components/datepicker/utils.ts +0 -289
  428. package/src/components/dialog/api.ts +0 -317
  429. package/src/components/dialog/config.ts +0 -116
  430. package/src/components/dialog/features.ts +0 -907
  431. package/src/components/dialog/index.ts +0 -141
  432. package/src/components/dialog/types.ts +0 -553
  433. package/src/components/divider/config.ts +0 -165
  434. package/src/components/divider/features.ts +0 -233
  435. package/src/components/divider/types.ts +0 -132
  436. package/src/components/extended-fab/api.ts +0 -193
  437. package/src/components/extended-fab/config.ts +0 -140
  438. package/src/components/extended-fab/extended-fab.ts +0 -153
  439. package/src/components/extended-fab/types.ts +0 -749
  440. package/src/components/fab/api.ts +0 -137
  441. package/src/components/fab/config.ts +0 -121
  442. package/src/components/fab/types.ts +0 -615
  443. package/src/components/list/api.ts +0 -82
  444. package/src/components/list/config.ts +0 -63
  445. package/src/components/list/features.ts +0 -229
  446. package/src/components/list/index.ts +0 -67
  447. package/src/components/list/list-item.ts +0 -163
  448. package/src/components/list/list.ts +0 -108
  449. package/src/components/list/types.ts +0 -396
  450. package/src/components/list/utils.ts +0 -98
  451. package/src/components/menu/api.ts +0 -230
  452. package/src/components/menu/config.ts +0 -127
  453. package/src/components/menu/features/anchor.ts +0 -394
  454. package/src/components/menu/features/controller.ts +0 -1423
  455. package/src/components/menu/features/index.ts +0 -13
  456. package/src/components/menu/features/position.ts +0 -353
  457. package/src/components/menu/menu.ts +0 -121
  458. package/src/components/menu/types.ts +0 -392
  459. package/src/components/navigation/api.ts +0 -142
  460. package/src/components/navigation/config.ts +0 -73
  461. package/src/components/navigation/features/controller.ts +0 -273
  462. package/src/components/navigation/features/items.ts +0 -353
  463. package/src/components/navigation/index.ts +0 -11
  464. package/src/components/navigation/nav-item.ts +0 -196
  465. package/src/components/navigation/navigation.ts +0 -115
  466. package/src/components/navigation/system/core.ts +0 -302
  467. package/src/components/navigation/system/events.ts +0 -240
  468. package/src/components/navigation/system/index.ts +0 -184
  469. package/src/components/navigation/system/mobile.ts +0 -278
  470. package/src/components/navigation/system/state.ts +0 -77
  471. package/src/components/navigation/system/types.ts +0 -364
  472. package/src/components/navigation/types.ts +0 -292
  473. package/src/components/progress/api.ts +0 -178
  474. package/src/components/progress/config.ts +0 -122
  475. package/src/components/progress/index.ts +0 -4
  476. package/src/components/progress/progress.ts +0 -159
  477. package/src/components/progress/types.ts +0 -255
  478. package/src/components/radios/api.ts +0 -125
  479. package/src/components/radios/config.ts +0 -59
  480. package/src/components/radios/constants.ts +0 -19
  481. package/src/components/radios/index.ts +0 -3
  482. package/src/components/radios/radio.ts +0 -292
  483. package/src/components/radios/radios.ts +0 -43
  484. package/src/components/radios/types.ts +0 -219
  485. package/src/components/search/api.ts +0 -203
  486. package/src/components/search/config.ts +0 -86
  487. package/src/components/search/features/search.ts +0 -717
  488. package/src/components/search/features/states.ts +0 -169
  489. package/src/components/search/features/structure.ts +0 -197
  490. package/src/components/search/index.ts +0 -7
  491. package/src/components/search/search.ts +0 -52
  492. package/src/components/search/types.ts +0 -175
  493. package/src/components/segmented-button/config.ts +0 -119
  494. package/src/components/segmented-button/index.ts +0 -4
  495. package/src/components/segmented-button/segment.ts +0 -108
  496. package/src/components/segmented-button/segmented-button.ts +0 -361
  497. package/src/components/segmented-button/types.ts +0 -306
  498. package/src/components/select/api.ts +0 -78
  499. package/src/components/select/config.ts +0 -76
  500. package/src/components/select/features.ts +0 -331
  501. package/src/components/select/select.ts +0 -73
  502. package/src/components/select/types.ts +0 -355
  503. package/src/components/sheet/api.ts +0 -96
  504. package/src/components/sheet/config.ts +0 -65
  505. package/src/components/sheet/features/content.ts +0 -51
  506. package/src/components/sheet/features/gestures.ts +0 -177
  507. package/src/components/sheet/features/position.ts +0 -41
  508. package/src/components/sheet/features/state.ts +0 -116
  509. package/src/components/sheet/features/title.ts +0 -86
  510. package/src/components/sheet/index.ts +0 -12
  511. package/src/components/sheet/sheet.ts +0 -56
  512. package/src/components/sheet/types.ts +0 -294
  513. package/src/components/slider/accessibility.md +0 -59
  514. package/src/components/slider/api.ts +0 -192
  515. package/src/components/slider/config.ts +0 -118
  516. package/src/components/slider/features/controller.ts +0 -737
  517. package/src/components/slider/features/handlers.ts +0 -497
  518. package/src/components/slider/features/index.ts +0 -5
  519. package/src/components/slider/features/range.ts +0 -104
  520. package/src/components/slider/features/states.ts +0 -195
  521. package/src/components/slider/index.ts +0 -17
  522. package/src/components/slider/schema.ts +0 -141
  523. package/src/components/slider/slider.ts +0 -76
  524. package/src/components/slider/types.ts +0 -223
  525. package/src/components/snackbar/api.ts +0 -162
  526. package/src/components/snackbar/config.ts +0 -61
  527. package/src/components/snackbar/features.ts +0 -76
  528. package/src/components/snackbar/index.ts +0 -9
  529. package/src/components/snackbar/position.ts +0 -79
  530. package/src/components/snackbar/queue.ts +0 -76
  531. package/src/components/snackbar/snackbar.ts +0 -60
  532. package/src/components/snackbar/types.ts +0 -159
  533. package/src/components/switch/api.ts +0 -93
  534. package/src/components/switch/config.ts +0 -56
  535. package/src/components/switch/features.ts +0 -198
  536. package/src/components/switch/index.ts +0 -8
  537. package/src/components/switch/switch.ts +0 -52
  538. package/src/components/switch/types.ts +0 -168
  539. package/src/components/tabs/api.ts +0 -221
  540. package/src/components/tabs/config.ts +0 -73
  541. package/src/components/tabs/features.ts +0 -403
  542. package/src/components/tabs/index.ts +0 -46
  543. package/src/components/tabs/indicator.ts +0 -285
  544. package/src/components/tabs/responsive.ts +0 -144
  545. package/src/components/tabs/scroll-indicators.ts +0 -149
  546. package/src/components/tabs/state.ts +0 -186
  547. package/src/components/tabs/tab-api.ts +0 -266
  548. package/src/components/tabs/tab.ts +0 -267
  549. package/src/components/tabs/tabs.ts +0 -71
  550. package/src/components/tabs/types.ts +0 -461
  551. package/src/components/tabs/utils.ts +0 -107
  552. package/src/components/textfield/api.ts +0 -197
  553. package/src/components/textfield/config.ts +0 -52
  554. package/src/components/textfield/features/leading-icon.ts +0 -127
  555. package/src/components/textfield/features/placement.ts +0 -149
  556. package/src/components/textfield/features/prefix-text.ts +0 -107
  557. package/src/components/textfield/features/suffix-text.ts +0 -100
  558. package/src/components/textfield/features/supporting-text.ts +0 -113
  559. package/src/components/textfield/features/trailing-icon.ts +0 -108
  560. package/src/components/textfield/index.ts +0 -9
  561. package/src/components/textfield/textfield.ts +0 -92
  562. package/src/components/textfield/types.ts +0 -265
  563. package/src/components/timepicker/README.md +0 -277
  564. package/src/components/timepicker/api.ts +0 -632
  565. package/src/components/timepicker/clockdial.ts +0 -479
  566. package/src/components/timepicker/config.ts +0 -228
  567. package/src/components/timepicker/index.ts +0 -3
  568. package/src/components/timepicker/render.ts +0 -613
  569. package/src/components/timepicker/timepicker.ts +0 -117
  570. package/src/components/timepicker/types.ts +0 -336
  571. package/src/components/timepicker/utils.ts +0 -241
  572. package/src/components/tooltip/api.ts +0 -415
  573. package/src/components/tooltip/config.ts +0 -80
  574. package/src/components/tooltip/index.ts +0 -12
  575. package/src/components/tooltip/tooltip.ts +0 -60
  576. package/src/components/tooltip/types.ts +0 -223
  577. package/src/components/top-app-bar/config.ts +0 -83
  578. package/src/components/top-app-bar/top-app-bar.ts +0 -316
  579. package/src/components/top-app-bar/types.ts +0 -140
  580. package/src/core/build/constants.ts +0 -48
  581. package/src/core/build/icon.ts +0 -137
  582. package/src/core/build/ripple.ts +0 -193
  583. package/src/core/build/text.ts +0 -91
  584. package/src/core/collection/adapters/base.ts +0 -62
  585. package/src/core/collection/adapters/route.ts +0 -201
  586. package/src/core/collection/collection.ts +0 -300
  587. package/src/core/collection/index.ts +0 -57
  588. package/src/core/collection/list-manager.ts +0 -333
  589. package/src/core/compose/base.ts +0 -43
  590. package/src/core/compose/component.ts +0 -255
  591. package/src/core/compose/features/badge.ts +0 -79
  592. package/src/core/compose/features/checkable.ts +0 -155
  593. package/src/core/compose/features/disabled.ts +0 -116
  594. package/src/core/compose/features/events.ts +0 -65
  595. package/src/core/compose/features/icon.ts +0 -71
  596. package/src/core/compose/features/input.ts +0 -174
  597. package/src/core/compose/features/lifecycle.ts +0 -139
  598. package/src/core/compose/features/position.ts +0 -94
  599. package/src/core/compose/features/ripple.ts +0 -58
  600. package/src/core/compose/features/size.ts +0 -29
  601. package/src/core/compose/features/style.ts +0 -31
  602. package/src/core/compose/features/text.ts +0 -44
  603. package/src/core/compose/features/textinput.ts +0 -238
  604. package/src/core/compose/features/textlabel.ts +0 -113
  605. package/src/core/compose/features/track.ts +0 -84
  606. package/src/core/compose/features/variant.ts +0 -29
  607. package/src/core/compose/features/withEvents.ts +0 -137
  608. package/src/core/compose/index.ts +0 -54
  609. package/src/core/composition/features/dom.ts +0 -45
  610. package/src/core/composition/features/icon.ts +0 -131
  611. package/src/core/composition/features/label.ts +0 -155
  612. package/src/core/config.ts +0 -211
  613. package/src/core/dom/attributes.ts +0 -33
  614. package/src/core/dom/classes.ts +0 -132
  615. package/src/core/dom/create.ts +0 -273
  616. package/src/core/dom/events.ts +0 -209
  617. package/src/core/dom/index.ts +0 -10
  618. package/src/core/dom/utils.ts +0 -97
  619. package/src/core/index.ts +0 -111
  620. package/src/core/layout/README.md +0 -715
  621. package/src/core/layout/array.ts +0 -180
  622. package/src/core/layout/config.ts +0 -193
  623. package/src/core/layout/create.ts +0 -54
  624. package/src/core/layout/index.ts +0 -36
  625. package/src/core/layout/object.ts +0 -123
  626. package/src/core/layout/processor.ts +0 -106
  627. package/src/core/layout/result.ts +0 -84
  628. package/src/core/layout/types.ts +0 -180
  629. package/src/core/layout/utils.ts +0 -144
  630. package/src/core/state/disabled.ts +0 -81
  631. package/src/core/state/emitter.ts +0 -94
  632. package/src/core/state/events.ts +0 -88
  633. package/src/core/state/lifecycle.ts +0 -131
  634. package/src/core/state/store.ts +0 -197
  635. package/src/core/utils/index.ts +0 -45
  636. package/src/core/utils/mobile.ts +0 -98
  637. package/src/core/utils/object.ts +0 -41
  638. package/src/core/utils/validate.ts +0 -234
  639. package/src/index.ts +0 -90
  640. package/src/styles/abstract/_base.scss +0 -2
  641. package/src/styles/abstract/_config.scss +0 -28
  642. package/src/styles/abstract/_functions.scss +0 -124
  643. package/src/styles/abstract/_mixins.scss +0 -352
  644. package/src/styles/abstract/_theme.scss +0 -269
  645. package/src/styles/abstract/_variables.scss +0 -305
  646. package/src/styles/base/_reset.scss +0 -86
  647. package/src/styles/base/_typography.scss +0 -155
  648. package/src/styles/components/_badge.scss +0 -182
  649. package/src/styles/components/_bottom-app-bar.scss +0 -103
  650. package/src/styles/components/_button.scss +0 -224
  651. package/src/styles/components/_card.scss +0 -401
  652. package/src/styles/components/_carousel.scss +0 -645
  653. package/src/styles/components/_checkbox.scss +0 -231
  654. package/src/styles/components/_chips.scss +0 -638
  655. package/src/styles/components/_datepicker.scss +0 -358
  656. package/src/styles/components/_dialog.scss +0 -259
  657. package/src/styles/components/_divider.scss +0 -57
  658. package/src/styles/components/_extended-fab.scss +0 -267
  659. package/src/styles/components/_fab.scss +0 -225
  660. package/src/styles/components/_list.scss +0 -248
  661. package/src/styles/components/_menu.scss +0 -242
  662. package/src/styles/components/_navigation-mobile.scss +0 -244
  663. package/src/styles/components/_navigation-system.scss +0 -151
  664. package/src/styles/components/_navigation.scss +0 -407
  665. package/src/styles/components/_progress.scss +0 -151
  666. package/src/styles/components/_radios.scss +0 -187
  667. package/src/styles/components/_search.scss +0 -306
  668. package/src/styles/components/_segmented-button.scss +0 -227
  669. package/src/styles/components/_select.scss +0 -272
  670. package/src/styles/components/_sheet.scss +0 -236
  671. package/src/styles/components/_slider.scss +0 -489
  672. package/src/styles/components/_snackbar.scss +0 -211
  673. package/src/styles/components/_switch.scss +0 -298
  674. package/src/styles/components/_tabs.scss +0 -416
  675. package/src/styles/components/_textfield.scss +0 -773
  676. package/src/styles/components/_timepicker.scss +0 -451
  677. package/src/styles/components/_tooltip.scss +0 -241
  678. package/src/styles/components/_top-app-bar.scss +0 -225
  679. package/src/styles/main.scss +0 -175
  680. package/src/styles/themes/_autumn.scss +0 -105
  681. package/src/styles/themes/_base-theme.scss +0 -85
  682. package/src/styles/themes/_baseline.scss +0 -173
  683. package/src/styles/themes/_bluekhaki.scss +0 -125
  684. package/src/styles/themes/_brownbeige.scss +0 -125
  685. package/src/styles/themes/_browngreen.scss +0 -125
  686. package/src/styles/themes/_forest.scss +0 -77
  687. package/src/styles/themes/_greenbeige.scss +0 -125
  688. package/src/styles/themes/_index.scss +0 -6
  689. package/src/styles/themes/_material.scss +0 -125
  690. package/src/styles/themes/_ocean.scss +0 -77
  691. package/src/styles/themes/_sageivory.scss +0 -125
  692. package/src/styles/themes/_spring.scss +0 -77
  693. package/src/styles/themes/_summer.scss +0 -87
  694. package/src/styles/themes/_sunset.scss +0 -60
  695. package/src/styles/themes/_tealcaramel.scss +0 -125
  696. package/src/styles/themes/_winter.scss +0 -77
  697. package/src/styles/utilities/_colors.scss +0 -154
  698. package/src/styles/utilities/_flexbox.scss +0 -194
  699. package/src/styles/utilities/_layout.scss +0 -665
  700. package/src/styles/utilities/_ripple.scss +0 -79
  701. package/src/styles/utilities/_spacing.scss +0 -139
  702. package/src/styles/utilities/_typography.scss +0 -178
  703. package/src/styles/utilities/_visibility.scss +0 -142
@@ -1,479 +0,0 @@
1
- // src/components/timepicker/clockdial.ts
2
-
3
- import { TimeValue, TIME_FORMAT, TIME_PICKER_TYPE, TIME_PERIOD } from './types';
4
- import { DIAL_CONSTANTS, TIME_CONSTANTS } from './config';
5
- import { padZero } from './utils';
6
-
7
- /**
8
- * Interface for Clock Dial rendering options
9
- */
10
- export interface ClockDialOptions {
11
- type: TIME_PICKER_TYPE;
12
- format: TIME_FORMAT;
13
- showSeconds: boolean;
14
- prefix: string;
15
- activeSelector: 'hour' | 'minute' | 'second';
16
- }
17
-
18
- /**
19
- * Theme colors interface
20
- */
21
- interface ThemeColors {
22
- primaryColor: string;
23
- onPrimaryColor: string;
24
- onSurfaceColor: string;
25
- selectedBgColor: string;
26
- bgColor: string;
27
- }
28
-
29
- /**
30
- * Updated constants for clock dial rendering
31
- */
32
- const CLOCK_CONSTANTS = {
33
- ...DIAL_CONSTANTS,
34
- KNOB_SIZE: 45, // Large hand knob size
35
- CENTER_SIZE: 8,
36
- NUMBER_SIZE: 24, // Same size for all numbers
37
- INNER_RADIUS: 75, // for 24h inner ring
38
- OUTER_RADIUS: 100, // for main ring
39
- TRACK_WIDTH: 1.5,
40
- HAND_WIDTH: 2
41
- };
42
-
43
- /**
44
- * Get theme colors from CSS variables
45
- * @param {string} prefix - Component prefix (e.g., 'mtrl')
46
- * @returns {ThemeColors} Object with theme colors
47
- */
48
- function getThemeColors(prefix: string): ThemeColors {
49
- const root = document.documentElement;
50
- const styles = getComputedStyle(root);
51
-
52
- // Extract primary color
53
- const primaryColor = styles.getPropertyValue(`--${prefix}-sys-color-primary`).trim() || '#6750A4';
54
-
55
- // Extract on-primary color
56
- const onPrimaryColor = styles.getPropertyValue(`--${prefix}-sys-color-on-primary`).trim() || '#FFFFFF';
57
-
58
- // Extract on-surface color
59
- const onSurfaceColor = styles.getPropertyValue(`--${prefix}-sys-color-on-surface`).trim() || '#1C1B1F';
60
-
61
- // Get RGB values for primary (for alpha calculations)
62
- const primaryRgb = styles.getPropertyValue(`--${prefix}-sys-color-primary-rgb`).trim() || '103, 80, 164';
63
-
64
- // Get RGB values for on-surface (for alpha calculations)
65
- const onSurfaceRgb = styles.getPropertyValue(`--${prefix}-sys-color-on-surface-rgb`).trim() || '28, 27, 31';
66
-
67
- // Create background with alpha
68
- const bgColor = `rgba(${onSurfaceRgb}, 0.05)`;
69
-
70
- // Create selected background with alpha
71
- const selectedBgColor = `rgba(${primaryRgb}, 0.1)`;
72
-
73
- return {
74
- primaryColor,
75
- onPrimaryColor,
76
- onSurfaceColor,
77
- bgColor,
78
- selectedBgColor
79
- };
80
- }
81
-
82
- /**
83
- * Renders a clock dial on canvas with improved visual design
84
- * @param {HTMLCanvasElement} canvas - Canvas element to render on
85
- * @param {TimeValue} timeValue - Current time value
86
- * @param {ClockDialOptions} options - Rendering options
87
- */
88
- export const renderClockDial = (
89
- canvas: HTMLCanvasElement,
90
- timeValue: TimeValue,
91
- options: ClockDialOptions
92
- ): void => {
93
- // Get the drawing context
94
- const ctx = canvas.getContext('2d');
95
- if (!ctx) {
96
- console.error('Could not get canvas context');
97
- return;
98
- }
99
-
100
- // Get theme colors on each render (to support theme changes)
101
- const colors = getThemeColors(options.prefix);
102
-
103
- // Ensure canvas dimensions are set correctly
104
- const devicePixelRatio = window.devicePixelRatio || 1;
105
- canvas.width = CLOCK_CONSTANTS.DIAMETER * devicePixelRatio;
106
- canvas.height = CLOCK_CONSTANTS.DIAMETER * devicePixelRatio;
107
-
108
- // Scale all drawing operations by the device pixel ratio
109
- ctx.scale(devicePixelRatio, devicePixelRatio);
110
-
111
- const centerX = CLOCK_CONSTANTS.DIAMETER / 2;
112
- const centerY = CLOCK_CONSTANTS.DIAMETER / 2;
113
- const radius = CLOCK_CONSTANTS.DIAMETER / 2;
114
-
115
- // Clear canvas
116
- ctx.clearRect(0, 0, canvas.width, canvas.height);
117
-
118
- // Draw clock face (outer circle)
119
- ctx.beginPath();
120
- ctx.arc(centerX, centerY, radius - 2, 0, 2 * Math.PI);
121
- ctx.fillStyle = colors.bgColor;
122
- ctx.fill();
123
-
124
- // Draw center dot
125
- ctx.beginPath();
126
- ctx.arc(centerX, centerY, CLOCK_CONSTANTS.CENTER_SIZE / 2, 0, 2 * Math.PI);
127
- ctx.fillStyle = colors.primaryColor;
128
- ctx.fill();
129
-
130
- // Draw numbers based on the active selector
131
- if (options.activeSelector === 'hour') {
132
- // For hour selector
133
- if (options.format === TIME_FORMAT.MILITARY) {
134
- // 24-hour clock face
135
- drawHourNumbers24(ctx, centerX, centerY, radius, timeValue.hours, colors);
136
- } else {
137
- // 12-hour clock face
138
- drawHourNumbers12(ctx, centerX, centerY, radius, timeValue.hours % 12 || 12, colors);
139
- }
140
- } else if (options.activeSelector === 'minute') {
141
- // For minute selector
142
- drawMinuteNumbers(ctx, centerX, centerY, radius, timeValue.minutes, colors);
143
- } else if (options.activeSelector === 'second' && options.showSeconds) {
144
- // For second selector
145
- drawMinuteNumbers(ctx, centerX, centerY, radius, timeValue.seconds || 0, colors);
146
- }
147
-
148
- // Draw clock hand
149
- drawClockHand(ctx, centerX, centerY, timeValue, options, colors);
150
- };
151
-
152
- /**
153
- * Draws 12-hour clock numbers
154
- */
155
- const drawHourNumbers12 = (
156
- ctx: CanvasRenderingContext2D,
157
- centerX: number,
158
- centerY: number,
159
- radius: number,
160
- selectedHour: number,
161
- colors: ThemeColors
162
- ): void => {
163
- const numbersRadius = CLOCK_CONSTANTS.OUTER_RADIUS;
164
-
165
- for (let hour = 1; hour <= 12; hour++) {
166
- const angle = (hour / 6) * Math.PI - Math.PI / 2; // Convert to radians, 0 at 12 o'clock
167
- const x = centerX + numbersRadius * Math.cos(angle);
168
- const y = centerY + numbersRadius * Math.sin(angle);
169
-
170
- const isSelected = hour === selectedHour;
171
-
172
- // Draw number background circle if it's the selected hour
173
- if (isSelected) {
174
- ctx.beginPath();
175
- ctx.arc(x, y, CLOCK_CONSTANTS.NUMBER_SIZE / 2, 0, 2 * Math.PI);
176
- ctx.fillStyle = colors.selectedBgColor;
177
- ctx.fill();
178
- }
179
-
180
- // Draw number text - same size for all, only color changes for selected
181
- ctx.font = `16px Roboto, Arial, sans-serif`;
182
- ctx.fillStyle = isSelected ? colors.primaryColor : colors.onSurfaceColor;
183
- ctx.textAlign = 'center';
184
- ctx.textBaseline = 'middle';
185
- ctx.fillText(hour.toString(), x, y + 2);
186
- }
187
- };
188
-
189
- /**
190
- * Draws 24-hour clock numbers (two rings)
191
- */
192
- const drawHourNumbers24 = (
193
- ctx: CanvasRenderingContext2D,
194
- centerX: number,
195
- centerY: number,
196
- radius: number,
197
- selectedHour: number,
198
- colors: ThemeColors
199
- ): void => {
200
- // Outer ring (1-12)
201
- const outerRadius = CLOCK_CONSTANTS.OUTER_RADIUS;
202
-
203
- for (let hour = 1; hour <= 12; hour++) {
204
- const angle = (hour / 6) * Math.PI - Math.PI / 2; // Convert to radians, 0 at 12 o'clock
205
- const x = centerX + outerRadius * Math.cos(angle);
206
- const y = centerY + outerRadius * Math.sin(angle);
207
-
208
- const isSelected = hour === selectedHour;
209
-
210
- // Draw number background circle if it's the selected hour
211
- if (isSelected) {
212
- ctx.beginPath();
213
- ctx.arc(x, y, CLOCK_CONSTANTS.NUMBER_SIZE / 2, 0, 2 * Math.PI);
214
- ctx.fillStyle = colors.selectedBgColor;
215
- ctx.fill();
216
- }
217
-
218
- // Draw number text - same size for all
219
- ctx.font = `16px Roboto, Arial, sans-serif`;
220
- ctx.fillStyle = isSelected ? colors.primaryColor : colors.onSurfaceColor;
221
- ctx.textAlign = 'center';
222
- ctx.textBaseline = 'middle';
223
- ctx.fillText(hour.toString(), x, y + 2);
224
- }
225
-
226
- // Inner ring (13-24/0)
227
- const innerRadius = CLOCK_CONSTANTS.INNER_RADIUS;
228
-
229
- for (let hour = 13; hour <= 24; hour++) {
230
- const displayHour = hour === 24 ? 0 : hour; // Show 0 instead of 24
231
- const angle = ((hour - 12) / 6) * Math.PI - Math.PI / 2; // Convert to radians, 0 at 12 o'clock
232
- const x = centerX + innerRadius * Math.cos(angle);
233
- const y = centerY + innerRadius * Math.sin(angle);
234
-
235
- const isSelected = displayHour === selectedHour;
236
-
237
- // Draw number background circle if it's the selected hour
238
- if (isSelected) {
239
- ctx.beginPath();
240
- ctx.arc(x, y, CLOCK_CONSTANTS.NUMBER_SIZE / 2, 0, 2 * Math.PI);
241
- ctx.fillStyle = colors.selectedBgColor;
242
- ctx.fill();
243
- }
244
-
245
- // Draw number text - same size but slightly smaller for inner ring
246
- ctx.font = `14px Roboto, Arial, sans-serif`;
247
- ctx.fillStyle = isSelected ? colors.primaryColor : colors.onSurfaceColor;
248
- ctx.textAlign = 'center';
249
- ctx.textBaseline = 'middle';
250
- ctx.fillText(padZero(displayHour), x, y + 2);
251
- }
252
- };
253
-
254
- /**
255
- * Draws minute numbers (0, 5, 10, ..., 55)
256
- */
257
- const drawMinuteNumbers = (
258
- ctx: CanvasRenderingContext2D,
259
- centerX: number,
260
- centerY: number,
261
- radius: number,
262
- selectedMinute: number,
263
- colors: ThemeColors
264
- ): void => {
265
- const numbersRadius = CLOCK_CONSTANTS.OUTER_RADIUS;
266
-
267
- // Draw minute markers in 5-minute increments
268
- for (let i = 0; i < 60; i += 5) {
269
- const angle = (i / 30) * Math.PI - Math.PI / 2; // Convert to radians, 0 at 12 o'clock
270
- const x = centerX + numbersRadius * Math.cos(angle);
271
- const y = centerY + numbersRadius * Math.sin(angle);
272
-
273
- const isSelected = i === selectedMinute;
274
-
275
- // Draw number background circle if it's the selected minute
276
- if (isSelected) {
277
- ctx.beginPath();
278
- ctx.arc(x, y, CLOCK_CONSTANTS.NUMBER_SIZE / 2, 0, 2 * Math.PI);
279
- ctx.fillStyle = colors.selectedBgColor;
280
- ctx.fill();
281
- }
282
-
283
- // Draw number text - same size for all
284
- ctx.font = `16px Roboto, Arial, sans-serif`;
285
- ctx.fillStyle = isSelected ? colors.primaryColor : colors.onSurfaceColor;
286
- ctx.textAlign = 'center';
287
- ctx.textBaseline = 'middle';
288
- ctx.fillText(padZero(i), x, y);
289
- }
290
-
291
- // If selected minute is not a multiple of 5, draw a special marker for it
292
- if (selectedMinute % 5 !== 0) {
293
- const angle = (selectedMinute / 30) * Math.PI - Math.PI / 2;
294
- const x = centerX + numbersRadius * Math.cos(angle);
295
- const y = centerY + numbersRadius * Math.sin(angle);
296
-
297
- // Draw selected minute background
298
- ctx.beginPath();
299
- ctx.arc(x, y, CLOCK_CONSTANTS.NUMBER_SIZE / 2, 0, 2 * Math.PI);
300
- ctx.fillStyle = colors.selectedBgColor;
301
- ctx.fill();
302
-
303
- // Draw selected minute text
304
- ctx.font = `16px Roboto, Arial, sans-serif`;
305
- ctx.fillStyle = colors.primaryColor;
306
- ctx.textAlign = 'center';
307
- ctx.textBaseline = 'middle';
308
- ctx.fillText(padZero(selectedMinute), x, y);
309
- }
310
- };
311
-
312
- /**
313
- * Draws the clock hand
314
- */
315
- const drawClockHand = (
316
- ctx: CanvasRenderingContext2D,
317
- centerX: number,
318
- centerY: number,
319
- timeValue: TimeValue,
320
- options: ClockDialOptions,
321
- colors: ThemeColors
322
- ): void => {
323
- let angle: number, handLength: number;
324
-
325
- // Calculate angle based on active selector
326
- if (options.activeSelector === 'hour') {
327
- if (options.format === TIME_FORMAT.MILITARY) {
328
- // 24-hour format
329
- if (timeValue.hours >= 12) {
330
- // Inner ring (12-23)
331
- const hour12 = timeValue.hours % 12 || 12;
332
- angle = (hour12 / 6) * Math.PI - Math.PI / 2;
333
- handLength = CLOCK_CONSTANTS.INNER_RADIUS;
334
- } else {
335
- // Outer ring (0-11)
336
- let hour12 = timeValue.hours;
337
- if (hour12 === 0) hour12 = 12;
338
- angle = (hour12 / 6) * Math.PI - Math.PI / 2;
339
- handLength = CLOCK_CONSTANTS.OUTER_RADIUS;
340
- }
341
- } else {
342
- // 12-hour format
343
- const hour12 = timeValue.hours % 12 || 12;
344
- angle = (hour12 / 6) * Math.PI - Math.PI / 2;
345
- handLength = CLOCK_CONSTANTS.OUTER_RADIUS;
346
- }
347
- } else if (options.activeSelector === 'minute') {
348
- // Minutes (0-59)
349
- angle = (timeValue.minutes / 30) * Math.PI - Math.PI / 2;
350
- handLength = CLOCK_CONSTANTS.OUTER_RADIUS;
351
- } else if (options.activeSelector === 'second') {
352
- // Seconds (0-59)
353
- angle = ((timeValue.seconds || 0) / 30) * Math.PI - Math.PI / 2;
354
- handLength = CLOCK_CONSTANTS.OUTER_RADIUS;
355
- } else {
356
- return; // No valid selector
357
- }
358
-
359
- // Draw hand line
360
- ctx.beginPath();
361
- ctx.moveTo(centerX, centerY);
362
- ctx.lineTo(
363
- centerX + handLength * Math.cos(angle),
364
- centerY + handLength * Math.sin(angle)
365
- );
366
- ctx.lineWidth = CLOCK_CONSTANTS.HAND_WIDTH;
367
- ctx.strokeStyle = colors.primaryColor;
368
- ctx.stroke();
369
-
370
- // Draw hand knob at the end (large as in second image)
371
- const knobX = centerX + handLength * Math.cos(angle);
372
- const knobY = centerY + handLength * Math.sin(angle);
373
-
374
- // Draw the background for the knob
375
- ctx.beginPath();
376
- ctx.arc(knobX, knobY, CLOCK_CONSTANTS.KNOB_SIZE / 2, 0, 2 * Math.PI);
377
- ctx.fillStyle = colors.primaryColor;
378
- ctx.fill();
379
-
380
- // Draw the selected value in the knob
381
- ctx.font = `16px Roboto, Arial, sans-serif`;
382
- ctx.fillStyle = colors.onPrimaryColor;
383
- ctx.textAlign = 'center';
384
- ctx.textBaseline = 'middle';
385
-
386
- // Display the appropriate value based on active selector
387
- let displayValue = '';
388
- if (options.activeSelector === 'hour') {
389
- if (options.format === TIME_FORMAT.MILITARY) {
390
- displayValue = padZero(timeValue.hours);
391
- } else {
392
- displayValue = String(timeValue.hours % 12 || 12);
393
- }
394
- } else if (options.activeSelector === 'minute') {
395
- displayValue = padZero(timeValue.minutes);
396
- } else if (options.activeSelector === 'second') {
397
- displayValue = padZero(timeValue.seconds || 0);
398
- }
399
-
400
- ctx.fillText(displayValue, knobX, knobY);
401
- };
402
-
403
- /**
404
- * Get time value from click coordinates on the canvas
405
- * @param {HTMLCanvasElement} canvas - Canvas element
406
- * @param {number} x - Click X coordinate relative to canvas
407
- * @param {number} y - Click Y coordinate relative to canvas
408
- * @param {ClockDialOptions} options - Clock dial options
409
- * @returns {number | null} Selected value or null if not valid
410
- */
411
- export const getTimeValueFromClick = (
412
- canvas: HTMLCanvasElement,
413
- x: number,
414
- y: number,
415
- options: ClockDialOptions
416
- ): number | null => {
417
- const centerX = CLOCK_CONSTANTS.DIAMETER / 2;
418
- const centerY = CLOCK_CONSTANTS.DIAMETER / 2;
419
-
420
- // Calculate click position relative to center
421
- const relX = x - centerX;
422
- const relY = y - centerY;
423
-
424
- // Calculate distance from center
425
- const distance = Math.sqrt(relX * relX + relY * relY);
426
-
427
- // Calculate angle in radians (0 at 12 o'clock, clockwise)
428
- let angle = Math.atan2(relY, relX) + Math.PI / 2;
429
- if (angle < 0) angle += 2 * Math.PI;
430
-
431
- // Convert angle to value based on active selector
432
- if (options.activeSelector === 'hour') {
433
- if (options.format === TIME_FORMAT.MILITARY) {
434
- // 24-hour format
435
- const innerThreshold = (CLOCK_CONSTANTS.INNER_RADIUS + CLOCK_CONSTANTS.OUTER_RADIUS) / 2;
436
- const isInnerRing = distance < innerThreshold;
437
-
438
- // Get base hour (0-11)
439
- let hour = Math.round(angle / (Math.PI / 6)) % 12;
440
-
441
- // Add 12 for inner ring (except for 12/0)
442
- if (isInnerRing && hour !== 0) {
443
- hour += 12;
444
- } else if (!isInnerRing && hour === 0) {
445
- hour = 12;
446
- } else if (isInnerRing && hour === 0) {
447
- hour = 0; // 12 AM is 0 in 24h format
448
- }
449
-
450
- return hour;
451
- } else {
452
- // 12-hour format
453
- let hour = Math.round(angle / (Math.PI / 6)) % 12;
454
- if (hour === 0) hour = 12;
455
- return hour;
456
- }
457
- } else if (options.activeSelector === 'minute' || options.activeSelector === 'second') {
458
- // Minutes or seconds (0-59)
459
- const value = Math.round(angle / (Math.PI / 30)) % 60;
460
- return value;
461
- }
462
-
463
- return null;
464
- };
465
-
466
- /**
467
- * Update the clock dial when theme changes (to be called by external code)
468
- * @param {HTMLCanvasElement} canvas - Canvas element
469
- * @param {TimeValue} timeValue - Current time value
470
- * @param {ClockDialOptions} options - Rendering options
471
- */
472
- export const updateClockDialTheme = (
473
- canvas: HTMLCanvasElement,
474
- timeValue: TimeValue,
475
- options: ClockDialOptions
476
- ): void => {
477
- // Simply re-render with current state
478
- renderClockDial(canvas, timeValue, options);
479
- };
@@ -1,228 +0,0 @@
1
- // src/components/timepicker/config.ts
2
-
3
- import {
4
- createComponentConfig,
5
- createElementConfig,
6
- BaseComponentConfig
7
- } from '../../core/config/component-config';
8
- import { TimePickerConfig } from './types';
9
- import {
10
- TIME_PICKER_TYPE,
11
- TIME_PICKER_ORIENTATION,
12
- TIME_FORMAT
13
- } from './types';
14
-
15
- export const DIAL_CONSTANTS = {
16
- DIAMETER: 256,
17
- INNER_RADIUS: 65,
18
- OUTER_RADIUS: 110,
19
- NUMBER_SIZE: 40,
20
- CENTER_SIZE: 8,
21
- HAND_SIZE: 36,
22
- TRACK_WIDTH: 2,
23
- };
24
-
25
- /**
26
- * Time constants used in the time picker.
27
- */
28
- export const TIME_CONSTANTS = {
29
- HOURS_12: Array.from({ length: 12 }, (_, i) => (i === 0 ? 12 : i)),
30
- HOURS_24: Array.from({ length: 24 }, (_, i) => i),
31
- MINUTES: Array.from({ length: 60 }, (_, i) => i),
32
- SECONDS: Array.from({ length: 60 }, (_, i) => i),
33
- };
34
-
35
- /**
36
- * Custom events fired by the time picker.
37
- */
38
- export const EVENTS = {
39
- CHANGE: 'change',
40
- OPEN: 'open',
41
- CLOSE: 'close',
42
- CONFIRM: 'confirm',
43
- CANCEL: 'cancel',
44
- };
45
-
46
- /**
47
- * Element selectors for time picker components.
48
- * Used for DOM manipulation and event delegation.
49
- */
50
- export const SELECTORS = {
51
- CONTAINER: '.mtrl-time-picker',
52
- MODAL: '.mtrl-time-picker-modal',
53
- DIALOG: '.mtrl-time-picker-dialog',
54
- TITLE: '.mtrl-time-picker-title',
55
- CONTENT: '.mtrl-time-picker-content',
56
- DIAL: '.mtrl-time-picker-dial',
57
- DIAL_CANVAS: '.mtrl-time-picker-dial-canvas',
58
- DIAL_FACE: '.mtrl-time-picker-dial-face',
59
- DIAL_HAND: '.mtrl-time-picker-dial-hand',
60
- DIAL_CENTER: '.mtrl-time-picker-dial-center',
61
- DIAL_NUMBERS: '.mtrl-time-picker-dial-numbers',
62
- DIAL_NUMBER: '.mtrl-time-picker-dial-number',
63
- INPUT_CONTAINER: '.mtrl-time-picker-input-container',
64
- HOURS_INPUT: '.mtrl-time-picker-hours',
65
- MINUTES_INPUT: '.mtrl-time-picker-minutes',
66
- SECONDS_INPUT: '.mtrl-time-picker-seconds',
67
- SEPARATOR: '.mtrl-time-picker-separator',
68
- PERIOD_CONTAINER: '.mtrl-time-picker-period',
69
- PERIOD_AM: '.mtrl-time-picker-period-am',
70
- PERIOD_PM: '.mtrl-time-picker-period-pm',
71
- ACTIONS: '.mtrl-time-picker-actions',
72
- TOGGLE_TYPE_BUTTON: '.mtrl-time-picker-toggle-type',
73
- CANCEL_BUTTON: '.mtrl-time-picker-cancel',
74
- CONFIRM_BUTTON: '.mtrl-time-picker-confirm',
75
- };
76
-
77
- /**
78
- * Z-index values for different parts of the time picker.
79
- */
80
- export const Z_INDEX = {
81
- MODAL: 1050,
82
- DIALOG: 1051,
83
- };
84
-
85
- /**
86
- * Default clock icon for time picker.
87
- * Simple clock SVG.
88
- */
89
- export const DEFAULT_CLOCK_ICON = `
90
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
91
- <circle cx="12" cy="12" r="10"></circle>
92
- <polyline points="12 6 12 12 16 14"></polyline>
93
- </svg>
94
- `
95
-
96
- /**
97
- * Default keyboard icon for time picker.
98
- * Simple keyboard SVG.
99
- */
100
- export const DEFAULT_KEYBOARD_ICON = `
101
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
102
- <rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect>
103
- <line x1="6" y1="8" x2="6" y2="8"></line>
104
- <line x1="10" y1="8" x2="10" y2="8"></line>
105
- <line x1="14" y1="8" x2="14" y2="8"></line>
106
- <line x1="18" y1="8" x2="18" y2="8"></line>
107
- <line x1="6" y1="12" x2="6" y2="12"></line>
108
- <line x1="10" y1="12" x2="10" y2="12"></line>
109
- <line x1="14" y1="12" x2="14" y2="12"></line>
110
- <line x1="18" y1="12" x2="18" y2="12"></line>
111
- <line x1="6" y1="16" x2="18" y2="16"></line>
112
- </svg>
113
- `;
114
-
115
- /**
116
- * Default configuration for the TimePicker component
117
- */
118
- export const defaultConfig: TimePickerConfig = {
119
- type: TIME_PICKER_TYPE.DIAL,
120
- format: TIME_FORMAT.AMPM,
121
- orientation: TIME_PICKER_ORIENTATION.VERTICAL,
122
- showSeconds: false,
123
- closeOnSelect: true,
124
- minuteStep: 1,
125
- secondStep: 1,
126
- cancelText: 'Cancel',
127
- confirmText: 'OK',
128
- isOpen: false,
129
- clockIcon: DEFAULT_CLOCK_ICON,
130
- keyboardIcon: DEFAULT_KEYBOARD_ICON
131
- };
132
-
133
- /**
134
- * Creates the base configuration for TimePicker component
135
- * @param {TimePickerConfig} config - User provided configuration
136
- * @returns {TimePickerConfig} Complete configuration with defaults applied
137
- */
138
- export const createBaseConfig = (config: TimePickerConfig = {}): TimePickerConfig =>
139
- createComponentConfig(defaultConfig, config, 'time-picker') as TimePickerConfig;
140
-
141
- /**
142
- * Generates element configuration for the TimePicker container
143
- * @param {TimePickerConfig} config - TimePicker configuration
144
- * @returns {Object} Element configuration object for withElement
145
- */
146
- export const getContainerConfig = (config: TimePickerConfig) => {
147
- return createElementConfig(config, {
148
- tag: 'div',
149
- attrs: {
150
- role: 'dialog',
151
- 'aria-modal': 'true',
152
- 'aria-labelledby': `${config.prefix}-time-picker-title`
153
- },
154
- className: [
155
- config.class,
156
- config.isOpen ? `${config.prefix}-time-picker--open` : ''
157
- ],
158
- forwardEvents: {
159
- click: true,
160
- keydown: true
161
- },
162
- interactive: true
163
- });
164
- };
165
-
166
- /**
167
- * Generates element configuration for the TimePicker modal
168
- * @param {TimePickerConfig} config - TimePicker configuration
169
- * @returns {Object} Element configuration object for withElement
170
- */
171
- export const getModalConfig = (config: TimePickerConfig) => {
172
- return createElementConfig(config, {
173
- tag: 'div',
174
- attrs: {
175
- role: 'presentation'
176
- },
177
- className: `${config.prefix}-time-picker-modal`,
178
- forwardEvents: {
179
- click: (component, event) => {
180
- // Only close if clicking directly on the modal backdrop
181
- if (event.target === component.element) {
182
- return true;
183
- }
184
- return false;
185
- }
186
- },
187
- interactive: true
188
- });
189
- };
190
-
191
- /**
192
- * Generates element configuration for the TimePicker dialog
193
- * @param {TimePickerConfig} config - TimePicker configuration
194
- * @returns {Object} Element configuration object for withElement
195
- */
196
- export const getDialogConfig = (config: TimePickerConfig) => {
197
- return createElementConfig(config, {
198
- tag: 'div',
199
- className: [
200
- `${config.prefix}-time-picker-dialog`,
201
- `${config.prefix}-time-picker-dialog--${config.type}`,
202
- `${config.prefix}-time-picker-dialog--${config.orientation}`,
203
- `${config.prefix}-time-picker-dialog--${config.format}`
204
- ],
205
- forwardEvents: {
206
- click: true
207
- },
208
- interactive: true
209
- });
210
- };
211
-
212
- /**
213
- * Creates API configuration for the TimePicker component
214
- * @param {Object} comp - Component with events and lifecycle features
215
- * @returns {Object} API configuration object
216
- */
217
- export const getApiConfig = (comp: any) => ({
218
- events: {
219
- on: (event: string, handler: Function) => comp.on(event, handler),
220
- off: (event: string, handler: Function) => comp.off(event, handler),
221
- emit: (event: string, data?: any) => comp.emit(event, data),
222
- },
223
- lifecycle: {
224
- destroy: () => comp.lifecycle.destroy()
225
- }
226
- });
227
-
228
- export default defaultConfig;
@@ -1,3 +0,0 @@
1
- // src/components/timepicker/index.ts
2
- export { default } from './timepicker';
3
- export type { TimePickerConfig, TimePickerComponent, TimeValue } from './types';