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,632 +0,0 @@
1
- // src/components/timePicker/api.ts
2
-
3
- import {
4
- TimePickerComponent,
5
- TimePickerConfig,
6
- TimeValue,
7
- TIME_PICKER_TYPE,
8
- TIME_PICKER_ORIENTATION,
9
- TIME_FORMAT,
10
- TIME_PERIOD
11
- } from './types';
12
- import { EVENTS, SELECTORS } from './config';
13
- import { formatTime, padZero } from './utils';
14
- import { renderTimePicker } from './render';
15
- import { renderClockDial, getTimeValueFromClick } from './clockdial';
16
-
17
- interface ApiOptions {
18
- events: {
19
- on: (event: string, handler: Function) => any;
20
- off: (event: string, handler: Function) => any;
21
- emit: (event: string, data?: any) => any;
22
- };
23
- lifecycle: {
24
- destroy: () => void;
25
- };
26
- }
27
-
28
- /**
29
- * Creates the API for TimePicker component
30
- *
31
- * @param baseComponent - Base component with element and events
32
- * @param modalElement - Modal overlay element
33
- * @param dialogElement - Dialog content element
34
- * @param timeValue - Current time value
35
- * @param config - Component configuration
36
- * @param options - API options with events and lifecycle methods
37
- * @returns TimePicker component API
38
- */
39
- export const createTimePickerAPI = (
40
- baseComponent: any,
41
- modalElement: HTMLElement,
42
- dialogElement: HTMLElement,
43
- timeValue: TimeValue,
44
- config: TimePickerConfig,
45
- options: ApiOptions
46
- ): TimePickerComponent => {
47
- // Track open state
48
- let isOpen = !!config.isOpen;
49
-
50
- // Create event handlers
51
- const handleKeydown = (event: KeyboardEvent) => {
52
- if (event.key === 'Escape') {
53
- timePickerAPI.close();
54
- options.events.emit(EVENTS.CANCEL);
55
- }
56
- };
57
-
58
- const handleClickOutside = (event: MouseEvent) => {
59
- if (event.target === modalElement) {
60
- timePickerAPI.close();
61
- }
62
- };
63
-
64
- // Create time picker API
65
- const timePickerAPI: TimePickerComponent = {
66
- element: baseComponent.element,
67
- modalElement,
68
- dialogElement,
69
- isOpen,
70
-
71
- open() {
72
- if (isOpen) return this;
73
-
74
- // Show modal
75
- modalElement.style.display = 'block';
76
-
77
- // Add the active class to trigger animations
78
- // We need to force a reflow before adding the active class for the transition to work
79
- void modalElement.offsetWidth; // Force reflow
80
- modalElement.classList.add('active');
81
- dialogElement.classList.add('active');
82
-
83
- // Add event listeners
84
- document.addEventListener('keydown', handleKeydown);
85
- modalElement.addEventListener('click', handleClickOutside);
86
-
87
- // Update state
88
- isOpen = true;
89
- baseComponent.element.classList.add(`${config.prefix}-time-picker--open`);
90
-
91
- // Force re-render to ensure canvas is drawn after dialog is visible
92
- // This ensures the canvas has proper dimensions for rendering
93
- setTimeout(() => {
94
- renderTimePicker(dialogElement, timeValue, config);
95
- }, 50);
96
-
97
- // Emit open event
98
- options.events.emit(EVENTS.OPEN);
99
-
100
- // Call onOpen callback if provided
101
- if (config.onOpen) {
102
- config.onOpen();
103
- }
104
-
105
- return this;
106
- },
107
-
108
- close() {
109
- if (!isOpen) return this;
110
-
111
- // Remove active classes to trigger fade-out transition
112
- modalElement.classList.remove('active');
113
- dialogElement.classList.remove('active');
114
-
115
- // Use setTimeout to let the transition finish before hiding completely
116
- setTimeout(() => {
117
- // Hide modal
118
- modalElement.style.display = 'none';
119
- }, 300); // Match the transition duration
120
-
121
- // Remove event listeners
122
- document.removeEventListener('keydown', handleKeydown);
123
- modalElement.removeEventListener('click', handleClickOutside);
124
-
125
- // Update state
126
- isOpen = false;
127
- baseComponent.element.classList.remove(`${config.prefix}-time-picker--open`);
128
-
129
- // Emit close event
130
- options.events.emit(EVENTS.CLOSE);
131
-
132
- // Call onClose callback if provided
133
- if (config.onClose) {
134
- config.onClose();
135
- }
136
-
137
- return this;
138
- },
139
-
140
- toggle() {
141
- return isOpen ? this.close() : this.open();
142
- },
143
-
144
- getValue() {
145
- return formatTime(timeValue, config.format === TIME_FORMAT.MILITARY);
146
- },
147
-
148
- getTimeObject() {
149
- return { ...timeValue };
150
- },
151
-
152
- setValue(time: string) {
153
- try {
154
- // Parse time string (throw error if invalid)
155
- const parsedTime = time.split(':');
156
- const hours = parseInt(parsedTime[0], 10);
157
- const minutes = parseInt(parsedTime[1], 10);
158
- const seconds = parsedTime[2] ? parseInt(parsedTime[2], 10) : 0;
159
-
160
- if (
161
- isNaN(hours) || hours < 0 || hours > 23 ||
162
- isNaN(minutes) || minutes < 0 || minutes > 59 ||
163
- isNaN(seconds) || seconds < 0 || seconds > 59
164
- ) {
165
- throw new Error('Invalid time format. Use HH:MM or HH:MM:SS (24-hour format).');
166
- }
167
-
168
- // Update time value
169
- timeValue.hours = hours;
170
- timeValue.minutes = minutes;
171
- timeValue.seconds = seconds;
172
- timeValue.period = hours >= 12 ? 'PM' : 'AM';
173
-
174
- // Re-render time picker
175
- renderTimePicker(dialogElement, timeValue, config);
176
-
177
- // Emit change event
178
- options.events.emit(EVENTS.CHANGE, this.getValue());
179
-
180
- // Call onChange callback if provided
181
- if (config.onChange) {
182
- config.onChange(this.getValue());
183
- }
184
- } catch (error) {
185
- console.error('Error setting time value:', error);
186
- }
187
-
188
- return this;
189
- },
190
-
191
- setType(type: TIME_PICKER_TYPE) {
192
- if (config.type === type) return this;
193
-
194
- // Update config
195
- config.type = type;
196
-
197
- // Update class
198
- dialogElement.classList.remove(
199
- `${config.prefix}-time-picker-dialog--${TIME_PICKER_TYPE.DIAL}`,
200
- `${config.prefix}-time-picker-dialog--${TIME_PICKER_TYPE.INPUT}`
201
- );
202
- dialogElement.classList.add(`${config.prefix}-time-picker-dialog--${type}`);
203
-
204
- // Re-render time picker
205
- renderTimePicker(dialogElement, timeValue, config);
206
-
207
- return this;
208
- },
209
-
210
- getType() {
211
- return config.type;
212
- },
213
-
214
- setFormat(format: TIME_FORMAT) {
215
- if (config.format === format) return this;
216
-
217
- // Update config
218
- config.format = format;
219
-
220
- // Update class
221
- dialogElement.classList.remove(
222
- `${config.prefix}-time-picker-dialog--${TIME_FORMAT.AMPM}`,
223
- `${config.prefix}-time-picker-dialog--${TIME_FORMAT.MILITARY}`
224
- );
225
- dialogElement.classList.add(`${config.prefix}-time-picker-dialog--${format}`);
226
-
227
- // Adjust time value if needed
228
- if (format === TIME_FORMAT.MILITARY) {
229
- // No need to change the hours, just ensure period is set correctly
230
- timeValue.period = timeValue.hours >= 12 ? 'PM' : 'AM';
231
- } else {
232
- // Convert 24h to 12h display (though internally we keep 24h)
233
- timeValue.period = timeValue.hours >= 12 ? 'PM' : 'AM';
234
- }
235
-
236
- // Re-render time picker
237
- renderTimePicker(dialogElement, timeValue, config);
238
-
239
- // Emit change event
240
- options.events.emit(EVENTS.CHANGE, this.getValue());
241
-
242
- return this;
243
- },
244
-
245
- getFormat() {
246
- return config.format;
247
- },
248
-
249
- setOrientation(orientation: TIME_PICKER_ORIENTATION) {
250
- if (config.orientation === orientation) return this;
251
-
252
- // Update config
253
- config.orientation = orientation;
254
-
255
- // Update class
256
- dialogElement.classList.remove(
257
- `${config.prefix}-time-picker-dialog--${TIME_PICKER_ORIENTATION.VERTICAL}`,
258
- `${config.prefix}-time-picker-dialog--${TIME_PICKER_ORIENTATION.HORIZONTAL}`
259
- );
260
- dialogElement.classList.add(`${config.prefix}-time-picker-dialog--${orientation}`);
261
-
262
- // Re-render time picker
263
- renderTimePicker(dialogElement, timeValue, config);
264
-
265
- return this;
266
- },
267
-
268
- getOrientation() {
269
- return config.orientation;
270
- },
271
-
272
- setTitle(title: string) {
273
- config.title = title;
274
-
275
- // Update title element if it exists
276
- const titleElement = dialogElement.querySelector(SELECTORS.TITLE);
277
- if (titleElement) {
278
- titleElement.textContent = title;
279
- } else {
280
- // Re-render to add title
281
- renderTimePicker(dialogElement, timeValue, config);
282
- }
283
-
284
- return this;
285
- },
286
-
287
- getTitle() {
288
- return config.title || '';
289
- },
290
-
291
- destroy() {
292
- // Close if open
293
- if (isOpen) {
294
- this.close();
295
- }
296
-
297
- // Remove from DOM
298
- if (modalElement && modalElement.parentNode) {
299
- modalElement.parentNode.removeChild(modalElement);
300
- }
301
-
302
- // Call lifecycle destroy
303
- options.lifecycle.destroy();
304
- },
305
-
306
- on(event: string, handler: Function) {
307
- options.events.on(event, handler);
308
- return this;
309
- },
310
-
311
- off(event: string, handler: Function) {
312
- options.events.off(event, handler);
313
- return this;
314
- }
315
- };
316
-
317
- // Set up event handlers for the time picker dialog
318
- dialogElement.addEventListener('click', (event) => {
319
- const target = event.target as HTMLElement;
320
-
321
- // Handle cancel button click
322
- if (target.closest(SELECTORS.CANCEL_BUTTON)) {
323
- timePickerAPI.close();
324
- options.events.emit(EVENTS.CANCEL);
325
-
326
- // Call onCancel callback if provided
327
- if (config.onCancel) {
328
- config.onCancel();
329
- }
330
- }
331
-
332
- // Handle confirm button click
333
- if (target.closest(SELECTORS.CONFIRM_BUTTON)) {
334
- timePickerAPI.close();
335
- options.events.emit(EVENTS.CONFIRM, timePickerAPI.getValue());
336
-
337
- // Call onConfirm callback if provided
338
- if (config.onConfirm) {
339
- config.onConfirm(timePickerAPI.getValue());
340
- }
341
- }
342
-
343
- // Handle toggle type button click (switch between dial and input)
344
- if (target.closest(SELECTORS.TOGGLE_TYPE_BUTTON)) {
345
- const newType = config.type === TIME_PICKER_TYPE.DIAL
346
- ? TIME_PICKER_TYPE.INPUT
347
- : TIME_PICKER_TYPE.DIAL;
348
- timePickerAPI.setType(newType);
349
- }
350
-
351
- if (target.closest(SELECTORS.PERIOD_AM)) {
352
- if (timeValue.period !== TIME_PERIOD.AM) {
353
- timeValue.period = TIME_PERIOD.AM;
354
- if (timeValue.hours >= 12) {
355
- timeValue.hours -= 12;
356
- }
357
- renderTimePicker(dialogElement, timeValue, config);
358
- options.events.emit(EVENTS.CHANGE, timePickerAPI.getValue());
359
-
360
- // Call onChange callback if provided
361
- if (config.onChange) {
362
- config.onChange(timePickerAPI.getValue());
363
- }
364
- }
365
- }
366
-
367
- if (target.closest(SELECTORS.PERIOD_PM)) {
368
- if (timeValue.period !== TIME_PERIOD.PM) {
369
- timeValue.period = TIME_PERIOD.PM;
370
- if (timeValue.hours < 12) {
371
- timeValue.hours += 12;
372
- }
373
- renderTimePicker(dialogElement, timeValue, config);
374
- options.events.emit(EVENTS.CHANGE, timePickerAPI.getValue());
375
-
376
- // Call onChange callback if provided
377
- if (config.onChange) {
378
- config.onChange(timePickerAPI.getValue());
379
- }
380
- }
381
- }
382
-
383
- // Handle canvas dial click
384
- if (target.closest(SELECTORS.DIAL_CANVAS)) {
385
- if (config.type === TIME_PICKER_TYPE.DIAL) {
386
- const canvas = target as HTMLCanvasElement;
387
- const rect = canvas.getBoundingClientRect();
388
- const x = event.clientX - rect.left;
389
- const y = event.clientY - rect.top;
390
-
391
- // Determine active selector
392
- let activeSelector: 'hour' | 'minute' | 'second' = 'hour';
393
- const hoursEl = dialogElement.querySelector(SELECTORS.HOURS_INPUT);
394
- const minutesEl = dialogElement.querySelector(SELECTORS.MINUTES_INPUT);
395
- const secondsEl = dialogElement.querySelector(SELECTORS.SECONDS_INPUT);
396
-
397
- if (hoursEl && hoursEl.getAttribute('data-active') === 'true') {
398
- activeSelector = 'hour';
399
- } else if (minutesEl && minutesEl.getAttribute('data-active') === 'true') {
400
- activeSelector = 'minute';
401
- } else if (config.showSeconds && secondsEl && secondsEl.getAttribute('data-active') === 'true') {
402
- activeSelector = 'second';
403
- }
404
-
405
- // Get the time value from the click position
406
- const selectedValue = getTimeValueFromClick(canvas, x, y, {
407
- type: config.type,
408
- format: config.format,
409
- showSeconds: config.showSeconds,
410
- prefix: config.prefix,
411
- activeSelector
412
- });
413
-
414
- if (selectedValue !== null) {
415
- if (activeSelector === 'hour') {
416
- let newHours = selectedValue;
417
-
418
- // Adjust for 12-hour format if needed
419
- if (config.format === TIME_FORMAT.AMPM) {
420
- // Convert to 24-hour format internally
421
- if (timeValue.period === TIME_PERIOD.PM && selectedValue !== 12) {
422
- newHours += 12;
423
- } else if (timeValue.period === TIME_PERIOD.AM && selectedValue === 12) {
424
- newHours = 0;
425
- }
426
- }
427
-
428
- if (timeValue.hours !== newHours) {
429
- timeValue.hours = newHours;
430
-
431
- // Update display time
432
- const hoursDisplay = hoursEl as HTMLElement;
433
- if (hoursDisplay) {
434
- hoursDisplay.textContent = padZero(config.format === TIME_FORMAT.MILITARY
435
- ? newHours
436
- : (newHours % 12 || 12));
437
- }
438
-
439
- // Directly update the canvas
440
- const canvasElement = dialogElement.querySelector(SELECTORS.DIAL_CANVAS) as HTMLCanvasElement;
441
- if (canvasElement) {
442
- renderClockDial(canvasElement, timeValue, {
443
- type: config.type,
444
- format: config.format,
445
- showSeconds: config.showSeconds,
446
- prefix: config.prefix,
447
- activeSelector
448
- });
449
- }
450
-
451
- options.events.emit(EVENTS.CHANGE, timePickerAPI.getValue());
452
-
453
- // Call onChange callback if provided
454
- if (config.onChange) {
455
- config.onChange(timePickerAPI.getValue());
456
- }
457
- }
458
- } else if (activeSelector === 'minute') {
459
- if (timeValue.minutes !== selectedValue) {
460
- timeValue.minutes = selectedValue;
461
-
462
- // Update display time
463
- const minutesDisplay = minutesEl as HTMLElement;
464
- if (minutesDisplay) {
465
- minutesDisplay.textContent = padZero(selectedValue);
466
- }
467
-
468
- // Directly update the canvas
469
- const canvasElement = dialogElement.querySelector(SELECTORS.DIAL_CANVAS) as HTMLCanvasElement;
470
- if (canvasElement) {
471
- renderClockDial(canvasElement, timeValue, {
472
- type: config.type,
473
- format: config.format,
474
- showSeconds: config.showSeconds,
475
- prefix: config.prefix,
476
- activeSelector
477
- });
478
- }
479
-
480
- options.events.emit(EVENTS.CHANGE, timePickerAPI.getValue());
481
-
482
- // Call onChange callback if provided
483
- if (config.onChange) {
484
- config.onChange(timePickerAPI.getValue());
485
- }
486
- }
487
- } else if (activeSelector === 'second' && config.showSeconds) {
488
- if (timeValue.seconds !== selectedValue) {
489
- timeValue.seconds = selectedValue;
490
-
491
- // Update display time
492
- const secondsDisplay = secondsEl as HTMLElement;
493
- if (secondsDisplay) {
494
- secondsDisplay.textContent = padZero(selectedValue);
495
- }
496
-
497
- // Directly update the canvas
498
- const canvasElement = dialogElement.querySelector(SELECTORS.DIAL_CANVAS) as HTMLCanvasElement;
499
- if (canvasElement) {
500
- renderClockDial(canvasElement, timeValue, {
501
- type: config.type,
502
- format: config.format,
503
- showSeconds: config.showSeconds,
504
- prefix: config.prefix,
505
- activeSelector
506
- });
507
- }
508
-
509
- options.events.emit(EVENTS.CHANGE, timePickerAPI.getValue());
510
-
511
- // Call onChange callback if provided
512
- if (config.onChange) {
513
- config.onChange(timePickerAPI.getValue());
514
- }
515
- }
516
- }
517
- }
518
- }
519
- }
520
- });
521
-
522
- // Set up input handling for input type time picker
523
- const handleInputChange = (event: Event) => {
524
- const target = event.target as HTMLInputElement;
525
- const inputType = target.getAttribute('data-type');
526
- const value = parseInt(target.value, 10);
527
-
528
- if (isNaN(value)) return;
529
-
530
- if (inputType === 'hour') {
531
- let newHours = value;
532
-
533
- // Handle hour constraints
534
- if (config.format === TIME_FORMAT.AMPM) {
535
- if (value < 1) newHours = 12;
536
- if (value > 12) newHours = 1;
537
-
538
- // Convert to 24h format internally
539
- if (timeValue.period === 'PM' && newHours !== 12) {
540
- newHours += 12;
541
- } else if (timeValue.period === 'AM' && newHours === 12) {
542
- newHours = 0;
543
- }
544
- } else {
545
- if (value < 0) newHours = 0;
546
- if (value > 23) newHours = 23;
547
- }
548
-
549
- timeValue.hours = newHours;
550
- } else if (inputType === 'minute') {
551
- let newMinutes = value;
552
-
553
- // Handle minute constraints
554
- if (newMinutes < 0) newMinutes = 0;
555
- if (newMinutes > 59) newMinutes = 59;
556
-
557
- timeValue.minutes = newMinutes;
558
- } else if (inputType === 'second') {
559
- let newSeconds = value;
560
-
561
- // Handle second constraints
562
- if (newSeconds < 0) newSeconds = 0;
563
- if (newSeconds > 59) newSeconds = 59;
564
-
565
- timeValue.seconds = newSeconds;
566
- }
567
-
568
- // Re-render time picker with updated values
569
- renderTimePicker(dialogElement, timeValue, config);
570
-
571
- // Emit change event
572
- options.events.emit(EVENTS.CHANGE, timePickerAPI.getValue());
573
-
574
- // Call onChange callback if provided
575
- if (config.onChange) {
576
- config.onChange(timePickerAPI.getValue());
577
- }
578
- };
579
-
580
- // Add event delegation for input fields
581
- dialogElement.addEventListener('change', (event) => {
582
- const target = event.target as HTMLElement;
583
- if (
584
- target.matches(SELECTORS.HOURS_INPUT) ||
585
- target.matches(SELECTORS.MINUTES_INPUT) ||
586
- target.matches(SELECTORS.SECONDS_INPUT)
587
- ) {
588
- handleInputChange(event);
589
- }
590
- });
591
-
592
- // Add event delegation for input keyup
593
- dialogElement.addEventListener('keyup', (event) => {
594
- const target = event.target as HTMLElement;
595
- if (
596
- target.matches(SELECTORS.HOURS_INPUT) ||
597
- target.matches(SELECTORS.MINUTES_INPUT) ||
598
- target.matches(SELECTORS.SECONDS_INPUT)
599
- ) {
600
- if (event.key === 'Enter') {
601
- handleInputChange(event);
602
-
603
- // Move focus to next input or confirm button
604
- if (target.matches(SELECTORS.HOURS_INPUT)) {
605
- const minutesInput = dialogElement.querySelector(SELECTORS.MINUTES_INPUT);
606
- if (minutesInput) {
607
- (minutesInput as HTMLElement).focus();
608
- }
609
- } else if (target.matches(SELECTORS.MINUTES_INPUT)) {
610
- if (config.showSeconds) {
611
- const secondsInput = dialogElement.querySelector(SELECTORS.SECONDS_INPUT);
612
- if (secondsInput) {
613
- (secondsInput as HTMLElement).focus();
614
- }
615
- } else {
616
- const confirmButton = dialogElement.querySelector(SELECTORS.CONFIRM_BUTTON);
617
- if (confirmButton) {
618
- (confirmButton as HTMLElement).focus();
619
- }
620
- }
621
- } else if (target.matches(SELECTORS.SECONDS_INPUT)) {
622
- const confirmButton = dialogElement.querySelector(SELECTORS.CONFIRM_BUTTON);
623
- if (confirmButton) {
624
- (confirmButton as HTMLElement).focus();
625
- }
626
- }
627
- }
628
- }
629
- });
630
-
631
- return timePickerAPI;
632
- };