mtrl 0.3.7 → 0.3.9

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 (691) 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 +63 -0
  134. package/dist/components/progress/constants.d.ts +58 -0
  135. package/dist/components/progress/index.d.ts +3 -0
  136. package/dist/components/progress/progress.d.ts +24 -0
  137. package/dist/components/progress/types.d.ts +199 -0
  138. package/dist/components/radios/api.d.ts +37 -0
  139. package/dist/components/radios/config.d.ts +42 -0
  140. package/dist/components/radios/constants.d.ts +114 -0
  141. package/dist/components/radios/index.d.ts +3 -0
  142. package/dist/components/radios/radio.d.ts +8 -0
  143. package/dist/components/radios/radios.d.ts +8 -0
  144. package/dist/components/radios/types.d.ts +189 -0
  145. package/dist/components/search/api.d.ts +55 -0
  146. package/dist/components/search/config.d.ts +73 -0
  147. package/dist/components/search/constants.d.ts +128 -0
  148. package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
  149. package/dist/components/search/features/search.d.ts +7 -0
  150. package/dist/components/search/features/states.d.ts +8 -0
  151. package/dist/components/search/features/structure.d.ts +7 -0
  152. package/dist/components/search/index.d.ts +3 -0
  153. package/dist/components/search/search.d.ts +8 -0
  154. package/dist/components/search/types.d.ts +132 -0
  155. package/dist/components/segmented-button/config.d.ts +65 -0
  156. package/dist/components/segmented-button/constants.d.ts +85 -0
  157. package/dist/components/segmented-button/index.d.ts +4 -0
  158. package/dist/components/segmented-button/segment.d.ts +15 -0
  159. package/dist/components/segmented-button/segmented-button.d.ts +49 -0
  160. package/dist/components/segmented-button/types.d.ts +257 -0
  161. package/dist/components/select/api.d.ts +8 -0
  162. package/dist/components/select/config.d.ts +18 -0
  163. package/dist/components/select/constants.d.ts +113 -0
  164. package/dist/components/select/features.d.ts +13 -0
  165. package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
  166. package/dist/components/select/select.d.ts +36 -0
  167. package/dist/components/select/types.d.ts +302 -0
  168. package/dist/components/sheet/api.d.ts +37 -0
  169. package/dist/components/sheet/config.d.ts +42 -0
  170. package/dist/components/sheet/constants.d.ts +136 -0
  171. package/dist/components/sheet/features/content.d.ts +6 -0
  172. package/dist/components/sheet/features/gestures.d.ts +6 -0
  173. package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
  174. package/dist/components/sheet/features/position.d.ts +7 -0
  175. package/dist/components/sheet/features/state.d.ts +6 -0
  176. package/dist/components/sheet/features/title.d.ts +6 -0
  177. package/dist/components/sheet/index.d.ts +3 -0
  178. package/dist/components/sheet/sheet.d.ts +8 -0
  179. package/dist/components/sheet/types.d.ts +250 -0
  180. package/dist/components/slider/api.d.ts +57 -0
  181. package/dist/components/slider/config.d.ts +75 -0
  182. package/dist/components/slider/constants.d.ts +138 -0
  183. package/dist/components/slider/features/controller.d.ts +9 -0
  184. package/dist/components/slider/features/handlers.d.ts +25 -0
  185. package/dist/components/slider/features/index.d.ts +3 -0
  186. package/dist/components/slider/features/range.d.ts +8 -0
  187. package/dist/components/slider/features/states.d.ts +9 -0
  188. package/dist/components/slider/index.d.ts +3 -0
  189. package/dist/components/slider/schema.d.ts +108 -0
  190. package/dist/components/slider/slider.d.ts +18 -0
  191. package/dist/components/slider/types.d.ts +170 -0
  192. package/dist/components/snackbar/api.d.ts +7 -0
  193. package/dist/components/snackbar/config.d.ts +55 -0
  194. package/dist/components/snackbar/constants.d.ts +88 -0
  195. package/dist/components/snackbar/features.d.ts +13 -0
  196. package/dist/components/snackbar/index.d.ts +3 -0
  197. package/dist/components/snackbar/position.d.ts +15 -0
  198. package/dist/components/snackbar/queue.d.ts +7 -0
  199. package/dist/components/snackbar/snackbar.d.ts +8 -0
  200. package/dist/components/snackbar/types.d.ts +172 -0
  201. package/dist/components/switch/api.d.ts +7 -0
  202. package/dist/components/switch/config.d.ts +34 -0
  203. package/dist/components/switch/constants.d.ts +88 -0
  204. package/dist/components/switch/features.d.ts +59 -0
  205. package/dist/components/switch/index.d.ts +4 -0
  206. package/dist/components/switch/switch.d.ts +8 -0
  207. package/dist/components/switch/types.d.ts +131 -0
  208. package/dist/components/tabs/api.d.ts +52 -0
  209. package/dist/components/tabs/config.d.ts +39 -0
  210. package/dist/components/tabs/constants.d.ts +142 -0
  211. package/dist/components/tabs/features.d.ts +133 -0
  212. package/dist/components/tabs/index.d.ts +11 -0
  213. package/dist/components/tabs/indicator.d.ts +49 -0
  214. package/dist/components/tabs/responsive.d.ts +38 -0
  215. package/dist/components/tabs/scroll-indicators.d.ts +18 -0
  216. package/dist/components/tabs/state.d.ts +53 -0
  217. package/dist/components/tabs/tab-api.d.ts +43 -0
  218. package/dist/components/tabs/tab.d.ts +7 -0
  219. package/dist/components/tabs/tabs.d.ts +27 -0
  220. package/dist/components/tabs/types.d.ts +390 -0
  221. package/dist/components/tabs/utils.d.ts +17 -0
  222. package/dist/components/textfield/api.d.ts +8 -0
  223. package/dist/components/textfield/config.d.ts +34 -0
  224. package/dist/components/textfield/constants.d.ts +148 -0
  225. package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
  226. package/dist/components/textfield/features/leading-icon.d.ts +55 -0
  227. package/dist/components/textfield/features/placement.d.ts +28 -0
  228. package/dist/components/textfield/features/prefix-text.d.ts +54 -0
  229. package/dist/components/textfield/features/suffix-text.d.ts +54 -0
  230. package/dist/components/textfield/features/supporting-text.d.ts +59 -0
  231. package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
  232. package/dist/components/textfield/index.d.ts +3 -0
  233. package/dist/components/textfield/textfield.d.ts +36 -0
  234. package/dist/components/textfield/types.d.ts +217 -0
  235. package/dist/components/timepicker/api.d.ts +24 -0
  236. package/dist/components/timepicker/clockdial.d.ts +34 -0
  237. package/dist/components/timepicker/config.d.ts +75 -0
  238. package/dist/components/timepicker/constants.d.ts +266 -0
  239. package/dist/components/timepicker/index.d.ts +4 -0
  240. package/dist/components/timepicker/render.d.ts +9 -0
  241. package/dist/components/timepicker/timepicker.d.ts +8 -0
  242. package/dist/components/timepicker/types.d.ts +284 -0
  243. package/dist/components/timepicker/utils.d.ts +74 -0
  244. package/dist/components/tooltip/api.d.ts +18 -0
  245. package/dist/components/tooltip/config.d.ts +38 -0
  246. package/dist/components/tooltip/constants.d.ts +108 -0
  247. package/dist/components/tooltip/index.d.ts +3 -0
  248. package/dist/components/tooltip/tooltip.d.ts +8 -0
  249. package/dist/components/tooltip/types.d.ts +188 -0
  250. package/dist/components/top-app-bar/config.d.ts +16 -0
  251. package/dist/components/top-app-bar/constants.d.ts +74 -0
  252. package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
  253. package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
  254. package/dist/components/top-app-bar/types.d.ts +118 -0
  255. package/dist/constants.d.ts +30 -0
  256. package/dist/core/collection/adapters/base.d.ts +47 -0
  257. package/dist/core/collection/adapters/route.d.ts +149 -0
  258. package/dist/core/collection/collection.d.ts +131 -0
  259. package/dist/core/collection/index.d.ts +10 -0
  260. package/dist/core/collection/list-manager/config.d.ts +29 -0
  261. package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
  262. package/dist/core/collection/list-manager/index.d.ts +61 -0
  263. package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
  264. package/dist/core/collection/list-manager/renderer.d.ts +31 -0
  265. package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
  266. package/dist/core/collection/list-manager/state.d.ts +60 -0
  267. package/dist/core/collection/list-manager/types.d.ts +361 -0
  268. package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
  269. package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
  270. package/dist/core/compose/base.d.ts +31 -0
  271. package/dist/core/compose/component.d.ts +61 -0
  272. package/dist/core/compose/features/badge.d.ts +43 -0
  273. package/dist/core/compose/features/checkable.d.ts +59 -0
  274. package/dist/core/compose/features/constants.d.ts +45 -0
  275. package/dist/core/compose/features/debounce.d.ts +84 -0
  276. package/dist/core/compose/features/disabled.d.ts +47 -0
  277. package/dist/core/compose/features/events.d.ts +37 -0
  278. package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
  279. package/dist/core/compose/features/gestures/pan.d.ts +108 -0
  280. package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
  281. package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
  282. package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
  283. package/dist/core/compose/features/gestures/tap.d.ts +79 -0
  284. package/dist/core/compose/features/gestures.d.ts +86 -0
  285. package/dist/core/compose/features/icon.d.ts +71 -0
  286. package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
  287. package/dist/core/compose/features/input.d.ts +71 -0
  288. package/dist/core/compose/features/lifecycle.d.ts +61 -0
  289. package/dist/core/compose/features/position.d.ts +51 -0
  290. package/dist/core/compose/features/ripple.d.ts +61 -0
  291. package/dist/core/compose/features/size.d.ts +17 -0
  292. package/dist/core/compose/features/style.d.ts +16 -0
  293. package/dist/core/compose/features/text.d.ts +63 -0
  294. package/dist/core/compose/features/textinput.d.ts +93 -0
  295. package/dist/core/compose/features/textlabel.d.ts +57 -0
  296. package/dist/core/compose/features/throttle.d.ts +75 -0
  297. package/dist/core/compose/features/track.d.ts +42 -0
  298. package/dist/core/compose/features/variant.d.ts +17 -0
  299. package/dist/core/compose/features/withEvents.d.ts +45 -0
  300. package/dist/core/compose/index.d.ts +17 -0
  301. package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
  302. package/dist/core/compose/utils/type-guards.d.ts +27 -0
  303. package/dist/core/composition/features/dom.d.ts +19 -0
  304. package/dist/core/composition/features/icon.d.ts +45 -0
  305. package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
  306. package/dist/core/composition/features/label.d.ts +49 -0
  307. package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
  308. package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
  309. package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +34 -82
  310. package/dist/core/config.d.ts +130 -0
  311. package/{src/core/dom/attributes.ts → dist/core/dom/attributes.d.ts} +2 -13
  312. package/dist/core/dom/classes.d.ts +42 -0
  313. package/dist/core/dom/create.d.ts +124 -0
  314. package/dist/core/dom/events.d.ts +69 -0
  315. package/{src/core/dom/index.ts → dist/core/dom/index.d.ts} +1 -5
  316. package/dist/core/dom/utils.d.ts +42 -0
  317. package/dist/core/gestures/index.d.ts +12 -0
  318. package/dist/core/gestures/longpress.d.ts +23 -0
  319. package/dist/core/gestures/manager.d.ts +14 -0
  320. package/dist/core/gestures/pan.d.ts +12 -0
  321. package/dist/core/gestures/pinch.d.ts +14 -0
  322. package/dist/core/gestures/rotate.d.ts +14 -0
  323. package/dist/core/gestures/swipe.d.ts +20 -0
  324. package/dist/core/gestures/tap.d.ts +12 -0
  325. package/dist/core/gestures/types.d.ts +320 -0
  326. package/dist/core/gestures/utils.d.ts +57 -0
  327. package/dist/core/index.d.ts +29 -0
  328. package/dist/core/layout/array.d.ts +15 -0
  329. package/dist/core/layout/config.d.ts +32 -0
  330. package/dist/core/layout/create.d.ts +14 -0
  331. package/dist/core/layout/index.d.ts +13 -0
  332. package/dist/core/layout/jsx.d.ts +13 -0
  333. package/dist/core/layout/object.d.ts +14 -0
  334. package/dist/core/layout/processor.d.ts +28 -0
  335. package/dist/core/layout/result.d.ts +12 -0
  336. package/dist/core/layout/template.d.ts +12 -0
  337. package/dist/core/layout/types.d.ts +137 -0
  338. package/dist/core/layout/utils.d.ts +38 -0
  339. package/dist/core/state/disabled.d.ts +32 -0
  340. package/dist/core/state/emitter.d.ts +40 -0
  341. package/dist/core/state/events.d.ts +36 -0
  342. package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
  343. package/dist/core/state/lifecycle.d.ts +57 -0
  344. package/dist/core/state/store.d.ts +82 -0
  345. package/dist/core/utils/background.d.ts +40 -0
  346. package/dist/core/utils/index.d.ts +23 -0
  347. package/dist/core/utils/mobile.d.ts +54 -0
  348. package/dist/core/utils/object.d.ts +13 -0
  349. package/dist/core/utils/performance.d.ts +79 -0
  350. package/dist/core/utils/validate.d.ts +73 -0
  351. package/dist/index.cjs +64 -0
  352. package/dist/index.cjs.map +285 -0
  353. package/dist/index.d.ts +15 -0
  354. package/dist/index.js +53 -14854
  355. package/dist/index.js.map +285 -0
  356. package/dist/package.json +39 -0
  357. package/dist/styles.css +7 -0
  358. package/package.json +24 -5
  359. package/.env +0 -15
  360. package/.typedocignore +0 -11
  361. package/CONTRIBUTING.md +0 -218
  362. package/DOCS.md +0 -153
  363. package/TESTING.md +0 -214
  364. package/git-user-stats.js +0 -545
  365. package/index.ts +0 -10
  366. package/src/components/badge/api.ts +0 -313
  367. package/src/components/badge/config.ts +0 -153
  368. package/src/components/badge/features.ts +0 -194
  369. package/src/components/badge/index.ts +0 -90
  370. package/src/components/badge/types.ts +0 -279
  371. package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
  372. package/src/components/bottom-app-bar/config.ts +0 -29
  373. package/src/components/bottom-app-bar/types.ts +0 -114
  374. package/src/components/button/api.ts +0 -172
  375. package/src/components/button/button.ts +0 -112
  376. package/src/components/button/config.ts +0 -96
  377. package/src/components/button/index.ts +0 -37
  378. package/src/components/button/types.ts +0 -290
  379. package/src/components/card/api.ts +0 -222
  380. package/src/components/card/config.ts +0 -304
  381. package/src/components/card/content.ts +0 -343
  382. package/src/components/card/features.ts +0 -407
  383. package/src/components/card/types.ts +0 -497
  384. package/src/components/carousel/api.ts +0 -147
  385. package/src/components/carousel/carousel.ts +0 -242
  386. package/src/components/carousel/config.ts +0 -91
  387. package/src/components/carousel/constants.ts +0 -181
  388. package/src/components/carousel/features/drag.ts +0 -388
  389. package/src/components/carousel/features/slides.ts +0 -682
  390. package/src/components/carousel/types.ts +0 -327
  391. package/src/components/checkbox/api.ts +0 -82
  392. package/src/components/checkbox/checkbox.ts +0 -142
  393. package/src/components/checkbox/config.ts +0 -89
  394. package/src/components/checkbox/types.ts +0 -342
  395. package/src/components/chips/api.ts +0 -194
  396. package/src/components/chips/chip/api.ts +0 -233
  397. package/src/components/chips/chip/chip.ts +0 -131
  398. package/src/components/chips/chip/config.ts +0 -91
  399. package/src/components/chips/chip/index.ts +0 -3
  400. package/src/components/chips/chips.md +0 -481
  401. package/src/components/chips/chips.ts +0 -75
  402. package/src/components/chips/config.ts +0 -109
  403. package/src/components/chips/constants.ts +0 -61
  404. package/src/components/chips/features/chip-items.ts +0 -33
  405. package/src/components/chips/features/container.ts +0 -77
  406. package/src/components/chips/features/controller.ts +0 -448
  407. package/src/components/chips/features/label.ts +0 -108
  408. package/src/components/chips/index.ts +0 -11
  409. package/src/components/chips/schema.ts +0 -61
  410. package/src/components/chips/types.ts +0 -469
  411. package/src/components/datepicker/api.ts +0 -265
  412. package/src/components/datepicker/config.ts +0 -141
  413. package/src/components/datepicker/datepicker.ts +0 -341
  414. package/src/components/datepicker/index.ts +0 -12
  415. package/src/components/datepicker/render.ts +0 -450
  416. package/src/components/datepicker/types.ts +0 -397
  417. package/src/components/datepicker/utils.ts +0 -289
  418. package/src/components/dialog/api.ts +0 -317
  419. package/src/components/dialog/config.ts +0 -116
  420. package/src/components/dialog/features.ts +0 -907
  421. package/src/components/dialog/index.ts +0 -141
  422. package/src/components/dialog/types.ts +0 -553
  423. package/src/components/divider/config.ts +0 -165
  424. package/src/components/divider/features.ts +0 -233
  425. package/src/components/divider/types.ts +0 -132
  426. package/src/components/extended-fab/api.ts +0 -193
  427. package/src/components/extended-fab/config.ts +0 -140
  428. package/src/components/extended-fab/extended-fab.ts +0 -153
  429. package/src/components/extended-fab/types.ts +0 -749
  430. package/src/components/fab/api.ts +0 -137
  431. package/src/components/fab/config.ts +0 -121
  432. package/src/components/fab/types.ts +0 -615
  433. package/src/components/list/api.ts +0 -82
  434. package/src/components/list/config.ts +0 -63
  435. package/src/components/list/features.ts +0 -229
  436. package/src/components/list/index.ts +0 -67
  437. package/src/components/list/list-item.ts +0 -163
  438. package/src/components/list/list.ts +0 -108
  439. package/src/components/list/types.ts +0 -396
  440. package/src/components/list/utils.ts +0 -98
  441. package/src/components/menu/api.ts +0 -193
  442. package/src/components/menu/config.ts +0 -125
  443. package/src/components/menu/features/anchor.ts +0 -243
  444. package/src/components/menu/features/controller.ts +0 -1167
  445. package/src/components/menu/features/index.ts +0 -5
  446. package/src/components/menu/features/position.ts +0 -353
  447. package/src/components/menu/menu.ts +0 -119
  448. package/src/components/menu/types.ts +0 -379
  449. package/src/components/navigation/api.ts +0 -142
  450. package/src/components/navigation/config.ts +0 -73
  451. package/src/components/navigation/features/controller.ts +0 -273
  452. package/src/components/navigation/features/items.ts +0 -353
  453. package/src/components/navigation/index.ts +0 -11
  454. package/src/components/navigation/nav-item.ts +0 -196
  455. package/src/components/navigation/navigation.ts +0 -115
  456. package/src/components/navigation/system/core.ts +0 -302
  457. package/src/components/navigation/system/events.ts +0 -240
  458. package/src/components/navigation/system/index.ts +0 -184
  459. package/src/components/navigation/system/mobile.ts +0 -278
  460. package/src/components/navigation/system/state.ts +0 -77
  461. package/src/components/navigation/system/types.ts +0 -364
  462. package/src/components/navigation/types.ts +0 -292
  463. package/src/components/progress/api.ts +0 -178
  464. package/src/components/progress/config.ts +0 -122
  465. package/src/components/progress/index.ts +0 -4
  466. package/src/components/progress/progress.ts +0 -159
  467. package/src/components/progress/types.ts +0 -255
  468. package/src/components/radios/api.ts +0 -125
  469. package/src/components/radios/config.ts +0 -59
  470. package/src/components/radios/constants.ts +0 -19
  471. package/src/components/radios/index.ts +0 -3
  472. package/src/components/radios/radio.ts +0 -292
  473. package/src/components/radios/radios.ts +0 -43
  474. package/src/components/radios/types.ts +0 -219
  475. package/src/components/search/api.ts +0 -203
  476. package/src/components/search/config.ts +0 -86
  477. package/src/components/search/features/search.ts +0 -717
  478. package/src/components/search/features/states.ts +0 -169
  479. package/src/components/search/features/structure.ts +0 -197
  480. package/src/components/search/index.ts +0 -7
  481. package/src/components/search/search.ts +0 -52
  482. package/src/components/search/types.ts +0 -175
  483. package/src/components/segmented-button/config.ts +0 -119
  484. package/src/components/segmented-button/index.ts +0 -4
  485. package/src/components/segmented-button/segment.ts +0 -108
  486. package/src/components/segmented-button/segmented-button.ts +0 -361
  487. package/src/components/segmented-button/types.ts +0 -306
  488. package/src/components/select/api.ts +0 -78
  489. package/src/components/select/config.ts +0 -76
  490. package/src/components/select/features.ts +0 -317
  491. package/src/components/select/select.ts +0 -73
  492. package/src/components/select/types.ts +0 -355
  493. package/src/components/sheet/api.ts +0 -96
  494. package/src/components/sheet/config.ts +0 -65
  495. package/src/components/sheet/features/content.ts +0 -51
  496. package/src/components/sheet/features/gestures.ts +0 -177
  497. package/src/components/sheet/features/position.ts +0 -41
  498. package/src/components/sheet/features/state.ts +0 -116
  499. package/src/components/sheet/features/title.ts +0 -86
  500. package/src/components/sheet/index.ts +0 -12
  501. package/src/components/sheet/sheet.ts +0 -56
  502. package/src/components/sheet/types.ts +0 -294
  503. package/src/components/slider/accessibility.md +0 -59
  504. package/src/components/slider/api.ts +0 -192
  505. package/src/components/slider/config.ts +0 -118
  506. package/src/components/slider/features/controller.ts +0 -737
  507. package/src/components/slider/features/handlers.ts +0 -497
  508. package/src/components/slider/features/index.ts +0 -5
  509. package/src/components/slider/features/range.ts +0 -104
  510. package/src/components/slider/features/states.ts +0 -195
  511. package/src/components/slider/index.ts +0 -17
  512. package/src/components/slider/schema.ts +0 -141
  513. package/src/components/slider/slider.ts +0 -76
  514. package/src/components/slider/types.ts +0 -223
  515. package/src/components/snackbar/api.ts +0 -162
  516. package/src/components/snackbar/config.ts +0 -61
  517. package/src/components/snackbar/features.ts +0 -76
  518. package/src/components/snackbar/index.ts +0 -9
  519. package/src/components/snackbar/position.ts +0 -79
  520. package/src/components/snackbar/queue.ts +0 -76
  521. package/src/components/snackbar/snackbar.ts +0 -60
  522. package/src/components/snackbar/types.ts +0 -159
  523. package/src/components/switch/api.ts +0 -93
  524. package/src/components/switch/config.ts +0 -56
  525. package/src/components/switch/features.ts +0 -198
  526. package/src/components/switch/index.ts +0 -8
  527. package/src/components/switch/switch.ts +0 -52
  528. package/src/components/switch/types.ts +0 -168
  529. package/src/components/tabs/api.ts +0 -221
  530. package/src/components/tabs/config.ts +0 -73
  531. package/src/components/tabs/features.ts +0 -403
  532. package/src/components/tabs/index.ts +0 -46
  533. package/src/components/tabs/indicator.ts +0 -285
  534. package/src/components/tabs/responsive.ts +0 -144
  535. package/src/components/tabs/scroll-indicators.ts +0 -149
  536. package/src/components/tabs/state.ts +0 -186
  537. package/src/components/tabs/tab-api.ts +0 -266
  538. package/src/components/tabs/tab.ts +0 -267
  539. package/src/components/tabs/tabs.ts +0 -71
  540. package/src/components/tabs/types.ts +0 -461
  541. package/src/components/tabs/utils.ts +0 -107
  542. package/src/components/textfield/api.ts +0 -197
  543. package/src/components/textfield/config.ts +0 -52
  544. package/src/components/textfield/features/leading-icon.ts +0 -127
  545. package/src/components/textfield/features/placement.ts +0 -149
  546. package/src/components/textfield/features/prefix-text.ts +0 -107
  547. package/src/components/textfield/features/suffix-text.ts +0 -100
  548. package/src/components/textfield/features/supporting-text.ts +0 -113
  549. package/src/components/textfield/features/trailing-icon.ts +0 -108
  550. package/src/components/textfield/index.ts +0 -9
  551. package/src/components/textfield/textfield.ts +0 -92
  552. package/src/components/textfield/types.ts +0 -265
  553. package/src/components/timepicker/README.md +0 -277
  554. package/src/components/timepicker/api.ts +0 -632
  555. package/src/components/timepicker/clockdial.ts +0 -479
  556. package/src/components/timepicker/config.ts +0 -228
  557. package/src/components/timepicker/index.ts +0 -3
  558. package/src/components/timepicker/render.ts +0 -613
  559. package/src/components/timepicker/timepicker.ts +0 -117
  560. package/src/components/timepicker/types.ts +0 -336
  561. package/src/components/timepicker/utils.ts +0 -241
  562. package/src/components/tooltip/api.ts +0 -415
  563. package/src/components/tooltip/config.ts +0 -80
  564. package/src/components/tooltip/index.ts +0 -12
  565. package/src/components/tooltip/tooltip.ts +0 -60
  566. package/src/components/tooltip/types.ts +0 -223
  567. package/src/components/top-app-bar/config.ts +0 -83
  568. package/src/components/top-app-bar/top-app-bar.ts +0 -316
  569. package/src/components/top-app-bar/types.ts +0 -140
  570. package/src/core/build/constants.ts +0 -48
  571. package/src/core/build/icon.ts +0 -137
  572. package/src/core/build/ripple.ts +0 -193
  573. package/src/core/build/text.ts +0 -91
  574. package/src/core/collection/adapters/base.ts +0 -62
  575. package/src/core/collection/adapters/route.ts +0 -201
  576. package/src/core/collection/collection.ts +0 -300
  577. package/src/core/collection/index.ts +0 -57
  578. package/src/core/collection/list-manager.ts +0 -333
  579. package/src/core/compose/base.ts +0 -43
  580. package/src/core/compose/component.ts +0 -255
  581. package/src/core/compose/features/badge.ts +0 -79
  582. package/src/core/compose/features/checkable.ts +0 -155
  583. package/src/core/compose/features/disabled.ts +0 -116
  584. package/src/core/compose/features/events.ts +0 -65
  585. package/src/core/compose/features/icon.ts +0 -71
  586. package/src/core/compose/features/input.ts +0 -174
  587. package/src/core/compose/features/lifecycle.ts +0 -139
  588. package/src/core/compose/features/position.ts +0 -94
  589. package/src/core/compose/features/ripple.ts +0 -58
  590. package/src/core/compose/features/size.ts +0 -29
  591. package/src/core/compose/features/style.ts +0 -31
  592. package/src/core/compose/features/text.ts +0 -44
  593. package/src/core/compose/features/textinput.ts +0 -238
  594. package/src/core/compose/features/textlabel.ts +0 -113
  595. package/src/core/compose/features/track.ts +0 -84
  596. package/src/core/compose/features/variant.ts +0 -29
  597. package/src/core/compose/features/withEvents.ts +0 -137
  598. package/src/core/compose/index.ts +0 -54
  599. package/src/core/composition/features/dom.ts +0 -45
  600. package/src/core/composition/features/icon.ts +0 -131
  601. package/src/core/composition/features/label.ts +0 -155
  602. package/src/core/config.ts +0 -211
  603. package/src/core/dom/classes.ts +0 -132
  604. package/src/core/dom/create.ts +0 -273
  605. package/src/core/dom/events.ts +0 -209
  606. package/src/core/dom/utils.ts +0 -97
  607. package/src/core/index.ts +0 -111
  608. package/src/core/layout/README.md +0 -715
  609. package/src/core/layout/array.ts +0 -180
  610. package/src/core/layout/config.ts +0 -193
  611. package/src/core/layout/create.ts +0 -54
  612. package/src/core/layout/index.ts +0 -36
  613. package/src/core/layout/object.ts +0 -123
  614. package/src/core/layout/processor.ts +0 -106
  615. package/src/core/layout/result.ts +0 -84
  616. package/src/core/layout/types.ts +0 -180
  617. package/src/core/layout/utils.ts +0 -144
  618. package/src/core/state/disabled.ts +0 -81
  619. package/src/core/state/emitter.ts +0 -94
  620. package/src/core/state/events.ts +0 -88
  621. package/src/core/state/lifecycle.ts +0 -131
  622. package/src/core/state/store.ts +0 -197
  623. package/src/core/utils/index.ts +0 -45
  624. package/src/core/utils/mobile.ts +0 -98
  625. package/src/core/utils/object.ts +0 -41
  626. package/src/core/utils/validate.ts +0 -234
  627. package/src/index.ts +0 -134
  628. package/src/styles/abstract/_base.scss +0 -2
  629. package/src/styles/abstract/_config.scss +0 -28
  630. package/src/styles/abstract/_functions.scss +0 -124
  631. package/src/styles/abstract/_mixins.scss +0 -352
  632. package/src/styles/abstract/_theme.scss +0 -269
  633. package/src/styles/abstract/_variables.scss +0 -305
  634. package/src/styles/base/_reset.scss +0 -86
  635. package/src/styles/base/_typography.scss +0 -155
  636. package/src/styles/components/_badge.scss +0 -182
  637. package/src/styles/components/_bottom-app-bar.scss +0 -103
  638. package/src/styles/components/_button.scss +0 -224
  639. package/src/styles/components/_card.scss +0 -401
  640. package/src/styles/components/_carousel.scss +0 -645
  641. package/src/styles/components/_checkbox.scss +0 -231
  642. package/src/styles/components/_chips.scss +0 -638
  643. package/src/styles/components/_datepicker.scss +0 -358
  644. package/src/styles/components/_dialog.scss +0 -259
  645. package/src/styles/components/_divider.scss +0 -57
  646. package/src/styles/components/_extended-fab.scss +0 -267
  647. package/src/styles/components/_fab.scss +0 -225
  648. package/src/styles/components/_list.scss +0 -248
  649. package/src/styles/components/_menu.scss +0 -248
  650. package/src/styles/components/_navigation-mobile.scss +0 -244
  651. package/src/styles/components/_navigation-system.scss +0 -151
  652. package/src/styles/components/_navigation.scss +0 -407
  653. package/src/styles/components/_progress.scss +0 -151
  654. package/src/styles/components/_radios.scss +0 -187
  655. package/src/styles/components/_search.scss +0 -306
  656. package/src/styles/components/_segmented-button.scss +0 -227
  657. package/src/styles/components/_select.scss +0 -265
  658. package/src/styles/components/_sheet.scss +0 -236
  659. package/src/styles/components/_slider.scss +0 -489
  660. package/src/styles/components/_snackbar.scss +0 -211
  661. package/src/styles/components/_switch.scss +0 -298
  662. package/src/styles/components/_tabs.scss +0 -416
  663. package/src/styles/components/_textfield.scss +0 -773
  664. package/src/styles/components/_timepicker.scss +0 -451
  665. package/src/styles/components/_tooltip.scss +0 -241
  666. package/src/styles/components/_top-app-bar.scss +0 -225
  667. package/src/styles/main.scss +0 -175
  668. package/src/styles/themes/_autumn.scss +0 -105
  669. package/src/styles/themes/_base-theme.scss +0 -85
  670. package/src/styles/themes/_baseline.scss +0 -173
  671. package/src/styles/themes/_bluekhaki.scss +0 -125
  672. package/src/styles/themes/_brownbeige.scss +0 -125
  673. package/src/styles/themes/_browngreen.scss +0 -125
  674. package/src/styles/themes/_forest.scss +0 -77
  675. package/src/styles/themes/_greenbeige.scss +0 -125
  676. package/src/styles/themes/_index.scss +0 -6
  677. package/src/styles/themes/_material.scss +0 -125
  678. package/src/styles/themes/_ocean.scss +0 -77
  679. package/src/styles/themes/_sageivory.scss +0 -125
  680. package/src/styles/themes/_spring.scss +0 -77
  681. package/src/styles/themes/_summer.scss +0 -87
  682. package/src/styles/themes/_sunset.scss +0 -60
  683. package/src/styles/themes/_tealcaramel.scss +0 -125
  684. package/src/styles/themes/_winter.scss +0 -77
  685. package/src/styles/utilities/_colors.scss +0 -154
  686. package/src/styles/utilities/_flexbox.scss +0 -194
  687. package/src/styles/utilities/_layout.scss +0 -665
  688. package/src/styles/utilities/_ripple.scss +0 -79
  689. package/src/styles/utilities/_spacing.scss +0 -139
  690. package/src/styles/utilities/_typography.scss +0 -178
  691. package/src/styles/utilities/_visibility.scss +0 -142
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mtrl",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "A functional TypeScript/JavaScript component library with composable architecture based on Material Design 3",
5
5
  "author": "floor",
6
6
  "license": "MIT License",
@@ -10,7 +10,7 @@
10
10
  "ui",
11
11
  "user interface",
12
12
  "typescript",
13
- "functional",
13
+ "functional",
14
14
  "composable",
15
15
  "material design 3",
16
16
  "md3",
@@ -20,7 +20,20 @@
20
20
  "type-safe"
21
21
  ],
22
22
  "type": "module",
23
- "main": "index.js",
23
+ "main": "./dist/index.cjs",
24
+ "module": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "import": "./dist/index.js",
29
+ "require": "./dist/index.cjs",
30
+ "types": "./dist/index.d.ts"
31
+ },
32
+ "./styles": "./dist/styles.css"
33
+ },
34
+ "files": [
35
+ "dist"
36
+ ],
24
37
  "scripts": {
25
38
  "start": "bun run server.js",
26
39
  "dev": "bun --watch server.js",
@@ -30,7 +43,8 @@
30
43
  "build:js": "bun build demo/main.js --outfile=demo/dist/bundle.js --format=esm",
31
44
  "build:css": "sass src/styles/main.scss:demo/dist/styles.css --style=compressed",
32
45
  "build": "bun run build:js && bun run build:css",
33
- "build:watch": "bun build --watch demo/main.js --outfile=demo/dist/bundle.js & sass --watch src/styles/main.scss:demo/dist/styles.css",
46
+ "build:lib": "bun run build.ts",
47
+ "prepublishOnly": "bun run build:lib",
34
48
  "test": "bun test",
35
49
  "test:watch": "bun test --watch",
36
50
  "test:coverage": "bun test --coverage",
@@ -39,7 +53,12 @@
39
53
  "docs:js": "typedoc --options typedoc.simple.json",
40
54
  "docs:alt": "bun generate-docs.js",
41
55
  "docs:serve": "bun run --bun serve docs",
42
- "docs:fix-errors": "tsc --noEmit --allowJs --skipLibCheck"
56
+ "docs:fix-errors": "tsc --noEmit --allowJs --skipLibCheck",
57
+ "ts:check": "tsc --noEmit --skipLibCheck",
58
+ "ts:next-error": "bun scripts/next-ts-error.ts",
59
+ "ts:fix": "bun scripts/fix-typescript.ts",
60
+ "ts:fix-file": "bun scripts/fix-typescript.ts",
61
+ "ts:fix-next": "bun scripts/fix-next-error.ts"
43
62
  },
44
63
  "repository": {
45
64
  "type": "git",
package/.env DELETED
@@ -1,15 +0,0 @@
1
- # Application settings
2
- NODE_ENV=development
3
- PORT=4000
4
- # Compression settings
5
- COMPRESSION_ENABLED=false
6
- # Cache settings (shorter for development)
7
- CACHE_STATIC_FILES=0 # No caching in development
8
- CACHE_CSS_FILES=0
9
- CACHE_PUBLIC_FILES=0
10
- # Security settings
11
- ENABLE_CORS=true
12
- CORS_ORIGIN=*
13
- # Application specific settings
14
- APP_TITLE=MTRL Playground (DEV)
15
- DEBUG_LEVEL=debug
package/.typedocignore DELETED
@@ -1,11 +0,0 @@
1
- # Ignore files with TypeScript errors
2
- src/components/snackbar/api.ts
3
- src/components/snackbar/config.ts
4
- src/components/snackbar/features.ts
5
- src/components/snackbar/index.ts
6
- src/components/snackbar/position.ts
7
- src/components/snackbar/queue.ts
8
- src/components/snackbar/snackbar.ts
9
- src/components/chip/chip-set.ts
10
- src/components/chip/chip.ts
11
- src/components/menu/features/items-manager.ts
package/CONTRIBUTING.md DELETED
@@ -1,218 +0,0 @@
1
- # Contributing to mtrl
2
-
3
- Thank you for your interest in contributing to mtrl! This document provides guidelines and instructions for contributing to this lightweight, TypeScript-focused UI component library.
4
-
5
- ## Why Contribute?
6
-
7
- mtrl aims to be a modern, flexible UI component library with:
8
-
9
- - Zero dependencies (except Bun for development)
10
- - TypeScript-first codebase
11
- - Lightweight, tree-shakable components
12
- - Simple and extensible API
13
- - Excellent documentation
14
-
15
- By contributing to mtrl, you'll help create a lean alternative to heavier frameworks while gaining experience with modern TypeScript patterns and component design.
16
-
17
- ## Getting Started
18
-
19
- ### Development Environment
20
-
21
- 1. **Fork and clone the repository**:
22
- ```bash
23
- git clone https://github.com/YOUR-USERNAME/mtrl.git
24
- cd mtrl
25
- ```
26
-
27
- 2. **Install dependencies**:
28
- ```bash
29
- bun install
30
- ```
31
-
32
- ### Testing Your Components with mtrl.app
33
-
34
- mtrl uses a separate repository called mtrl.app (https://mtrl.app) for showcasing and testing components. There are two ways to test your components:
35
-
36
- 1. **Build and link locally**:
37
- ```bash
38
- # In the mtrl repository
39
- bun run build
40
-
41
- # Clone the mtrl.app repository
42
- git clone https://github.com/YOUR-USERNAME/mtrl.app.git
43
- cd mtrl.app
44
-
45
- # Install dependencies and link to your local mtrl build
46
- bun install
47
- bun link ../path/to/your/mtrl
48
-
49
- # Start the showcase server
50
- bun run dev
51
- ```
52
-
53
- 2. **Use the official showcase site**:
54
- Visit https://mtrl.app to see official examples and documentation.
55
-
56
- ## Contribution Workflow
57
-
58
- 1. **Pick an issue or feature** - Start with issues labeled `good-first-issue` or `help-wanted`.
59
-
60
- 2. **Create a branch** - Name your branch based on what you're working on:
61
- ```bash
62
- git checkout -b feature/button-improvements
63
- # or
64
- git checkout -b fix/textfield-validation
65
- ```
66
-
67
- 3. **Make your changes** - Follow the coding standards and guidelines below.
68
-
69
- 4. **Test your changes** - Use the playground app to test your components in real-time.
70
-
71
- 5. **Submit a pull request** - Include a detailed description of your changes and reference any related issues.
72
-
73
- ## Development Guidelines
74
-
75
- ### Component Structure
76
-
77
- mtrl components follow a consistent pattern:
78
-
79
- ```typescript
80
- // src/components/mycomponent/index.ts
81
- export { createMyComponent } from './mycomponent';
82
- export type { MyComponentOptions } from './types';
83
-
84
- // src/components/mycomponent/types.ts
85
- export interface MyComponentOptions {
86
- text?: string;
87
- onClick?: (event: MouseEvent) => void;
88
- // other options...
89
- }
90
-
91
- // src/components/mycomponent/mycomponent.ts
92
- import { createElement } from '../../core/dom/create';
93
- import { createLifecycle } from '../../core/state/lifecycle';
94
- import type { MyComponentOptions } from './types';
95
-
96
- /**
97
- * Creates a new MyComponent instance
98
- * @param options - Configuration options for MyComponent
99
- * @returns The MyComponent instance
100
- */
101
- export const createMyComponent = (options: MyComponentOptions = {}) => {
102
- // Create DOM elements
103
- const element = createElement({...});
104
-
105
- // Setup state and features
106
- const lifecycle = createLifecycle(element);
107
-
108
- // Return component API
109
- return {
110
- element,
111
- // Other public methods...
112
- destroy() {
113
- lifecycle.destroy();
114
- }
115
- };
116
- };
117
- ```
118
-
119
- ### Using mtrl.app for Development
120
-
121
- The mtrl.app showcase application is the best way to develop and test your components:
122
-
123
- 1. Clone the mtrl.app repository alongside your mtrl clone.
124
- 2. Create a new view file in `src/client/content/components/` for your component.
125
- 3. Add the route in `src/client/core/navigation.ts` of the mtrl.app repository.
126
- 4. Implement different variants and states for testing.
127
- 5. Run the showcase server with `bun run dev` in the mtrl.app directory.
128
-
129
- This separation of the library code (mtrl) and the showcase app (mtrl.app) keeps the core library clean while providing a rich development environment.
130
-
131
- ### TypeScript Standards
132
-
133
- - Use TypeScript's type system to create clear interfaces and types
134
- - Export types and interfaces separately from implementations
135
- - Use strict typing and avoid `any` when possible
136
- - Prefer interfaces for public APIs and type aliases for complex types
137
- - Add proper return types to all functions
138
-
139
- ### Coding Standards
140
-
141
- - Add file path as a comment on the first line of each file
142
- - Use functional programming principles when possible
143
- - Use consistent naming conventions:
144
- - Factory functions should be named `createXyz`
145
- - Utilities should use clear, descriptive names
146
- - Interfaces should be named in PascalCase (e.g., `ButtonOptions`)
147
- - Write TypeDoc comments for all public functions and types
148
-
149
- ### CSS/SCSS Guidelines
150
-
151
- - Use BEM-style naming: `mtrl-component__element--modifier`
152
- - Keep specificity low
153
- - Use CSS variables for theming
154
- - Organize styles in the `src/components/*/styles.scss` file
155
-
156
- ## Pull Request Process
157
-
158
- 1. Ensure your code follows the style guidelines
159
- 2. Update documentation as needed
160
- 3. Include a clear description of the changes
161
- 4. Reference any issues that are being addressed
162
- 5. Wait for review and address any feedback
163
-
164
- ## Testing
165
-
166
- Please add appropriate tests for your changes:
167
-
168
- ```typescript
169
- // Example test structure
170
- describe('myComponent', () => {
171
- it('should render correctly', () => {
172
- // Test code
173
- });
174
-
175
- it('should handle user interaction', () => {
176
- // Test code
177
- });
178
- });
179
- ```
180
-
181
- ## Documentation
182
-
183
- Documentation is crucial for this project:
184
-
185
- - Add TypeDoc comments for all public API methods and types
186
- - Comment the file path at the top of each file
187
- - Update the component's README.md (if applicable)
188
- - Consider adding example code in the playground
189
-
190
- Example of proper TypeDoc:
191
-
192
- ```typescript
193
- /**
194
- * Creates a button element with specified options
195
- *
196
- * @param options - The button configuration options
197
- * @returns A button component instance
198
- * @example
199
- * ```ts
200
- * const button = createButton({ text: 'Click me', variant: 'primary' });
201
- * document.body.appendChild(button.element);
202
- * ```
203
- */
204
- ```
205
-
206
- ## Community and Communication
207
-
208
- - Submit issues for bugs or feature requests
209
- - Join the discussion on existing issues
210
- - Be respectful and constructive in communications
211
-
212
- ## License
213
-
214
- By contributing to mtrl, you agree that your contributions will be licensed under the project's MIT License.
215
-
216
- ---
217
-
218
- Thank you for contributing to mtrl! Your efforts help make this library better for everyone.
package/DOCS.md DELETED
@@ -1,153 +0,0 @@
1
- # TypeDoc Installation and Usage Guide for mtrl
2
-
3
- This guide will help you set up and use TypeDoc with your mtrl library.
4
-
5
- ## Installation
6
-
7
- To install TypeDoc and its dependencies:
8
-
9
- ```bash
10
- # Using Bun
11
- bun add -D typedoc
12
-
13
- # Using npm
14
- npm install --save-dev typedoc
15
-
16
- # Using yarn
17
- yarn add --dev typedoc
18
- ```
19
-
20
- ## Configuration
21
-
22
- TypeDoc is configured via the `typedoc.json` file at the root of your project. This configuration specifies input files, output directory, theming options, and more.
23
-
24
- ## Generating Documentation
25
-
26
- To generate documentation:
27
-
28
- ```bash
29
- # Using the npm script
30
- bun run docs
31
-
32
- # Or directly
33
- bun typedoc
34
- ```
35
-
36
- ## Serving Documentation Locally
37
-
38
- To view the generated documentation in your browser:
39
-
40
- ```bash
41
- # Using the npm script
42
- bun run docs:serve
43
-
44
- # Or directly
45
- bun run --bun serve docs
46
- ```
47
-
48
- Then open your browser to http://localhost:8080
49
-
50
- ## Documentation Structure
51
-
52
- TypeDoc generates a structured representation of your codebase:
53
-
54
- - **Modules**: File-based organization of your code
55
- - **Classes/Interfaces**: Object definitions and their members
56
- - **Functions**: Standalone functions
57
- - **Type aliases**: Custom type definitions
58
- - **Variables**: Exported variables
59
-
60
- ## JSDoc Tips for Better Documentation
61
-
62
- TypeDoc uses JSDoc comments to generate documentation. Here are some tips for writing effective comments:
63
-
64
- ### Basic Comment Structure
65
-
66
- ```typescript
67
- /**
68
- * Description of the function
69
- * @param paramName Description of the parameter
70
- * @returns Description of the return value
71
- */
72
- function myFunction(paramName: string): number {
73
- // Implementation
74
- }
75
- ```
76
-
77
- ### Common JSDoc Tags
78
-
79
- - `@param {type} name - Description` - Describes a function parameter
80
- - `@returns {type} Description` - Describes the return value
81
- - `@example` - Provides an example of usage
82
- - `@see` - References related documentation
83
- - `@deprecated` - Marks an element as deprecated
84
- - `@since version` - Indicates when the element was added
85
- - `@category name` - Organizes documentation into categories
86
-
87
- ### Categories
88
-
89
- Use the `@category` tag to organize your mtrl components and utilities:
90
-
91
- ```typescript
92
- /**
93
- * @category Components
94
- */
95
- export interface ButtonConfig {
96
- // ...
97
- }
98
-
99
- /**
100
- * @category Core
101
- */
102
- export const pipe = (...fns) => (initialValue) => {
103
- // ...
104
- }
105
- ```
106
-
107
- ## Customizing the Theme
108
-
109
- If you want to customize the default theme, you can create a custom theme:
110
-
111
- 1. Create a `typedoc-theme` directory
112
- 2. Copy the default theme files from the TypeDoc package
113
- 3. Modify the files as needed
114
- 4. Update the `typedoc.json` file to use your custom theme:
115
-
116
- ```json
117
- {
118
- "theme": "./typedoc-theme"
119
- }
120
- ```
121
-
122
- ## Continuous Integration
123
-
124
- To automatically generate documentation on each commit or release:
125
-
126
- 1. Add a script to your CI workflow (GitHub Actions, etc.)
127
- 2. Generate the docs and deploy them to GitHub Pages or another hosting service
128
-
129
- Example GitHub Actions workflow:
130
-
131
- ```yaml
132
- name: Generate Docs
133
-
134
- on:
135
- push:
136
- branches: [main]
137
-
138
- jobs:
139
- build:
140
- runs-on: ubuntu-latest
141
- steps:
142
- - uses: actions/checkout@v3
143
- - uses: oven-sh/setup-bun@v1
144
- - name: Install dependencies
145
- run: bun install
146
- - name: Generate docs
147
- run: bun run docs
148
- - name: Deploy to GitHub Pages
149
- uses: JamesIves/github-pages-deploy-action@4.1.4
150
- with:
151
- branch: gh-pages
152
- folder: docs
153
- ```
package/TESTING.md DELETED
@@ -1,214 +0,0 @@
1
- # Testing mtrl Components
2
-
3
- This document provides guidelines for writing and running tests for the mtrl library. We use Bun's built-in test runner for fast, efficient testing.
4
-
5
- ## Running Tests
6
-
7
- ```bash
8
- # Run all tests
9
- bun test
10
-
11
- # Run tests in watch mode (re-runs tests when files change)
12
- bun test --watch
13
-
14
- # Run tests with coverage report
15
- bun test --coverage
16
-
17
- # Run tests with UI
18
- bun test --watch --ui
19
-
20
- # Run specific test file or pattern
21
- bun test test/components/button.test.ts
22
- ```
23
-
24
- ## Test Structure
25
-
26
- Tests are organized to mirror the source code structure:
27
-
28
- ```
29
- test/
30
- ├── setup.ts # Global test setup and DOM mocking
31
- ├── components/ # Component tests
32
- │ ├── button.test.ts
33
- │ ├── textfield.test.ts
34
- │ └── ...
35
- └── core/ # Core functionality tests
36
- ├── dom.classes.test.ts
37
- ├── dom.attributes.test.ts
38
- ├── dom.events.test.ts
39
- ├── utils.normalize.test.ts
40
- ├── utils.object.test.ts
41
- ├── emitter.test.ts
42
- ├── ripple.test.ts
43
- └── state.store.test.ts
44
- ```
45
-
46
- ## Writing Tests
47
-
48
- When writing tests for mtrl components, follow these guidelines:
49
-
50
- ### 1. Test Component Creation
51
-
52
- Always verify that components are created correctly with default options:
53
-
54
- ```typescript
55
- test('should create a component element', () => {
56
- const component = createComponent();
57
- expect(component.element).toBeDefined();
58
- expect(component.element.tagName).toBe('DIV');
59
- expect(component.element.className).toContain('mtrl-component');
60
- });
61
- ```
62
-
63
- ### 2. Test Configuration Options
64
-
65
- Test that configuration options properly affect the component:
66
-
67
- ```typescript
68
- test('should apply variant class', () => {
69
- const variant = 'filled';
70
- const component = createComponent({
71
- variant
72
- });
73
-
74
- expect(component.element.className).toContain(`mtrl-component--${variant}`);
75
- });
76
- ```
77
-
78
- ### 3. Test Events
79
-
80
- Verify that events are properly emitted and handled:
81
-
82
- ```typescript
83
- test('should handle click events', () => {
84
- const component = createComponent();
85
- const handleClick = mock(() => {});
86
-
87
- component.on('click', handleClick);
88
-
89
- // Simulate event
90
- const event = new Event('click');
91
- component.element.dispatchEvent(event);
92
-
93
- expect(handleClick).toHaveBeenCalled();
94
- });
95
- ```
96
-
97
- ### 4. Test State Changes
98
-
99
- Test component state changes through its API:
100
-
101
- ```typescript
102
- test('should support disabled state', () => {
103
- const component = createComponent();
104
-
105
- // Initially not disabled
106
- expect(component.disabled.isDisabled()).toBe(false);
107
-
108
- // Disable
109
- component.disable();
110
- expect(component.disabled.isDisabled()).toBe(true);
111
- expect(component.element.classList.contains('mtrl-component--disabled')).toBe(true);
112
-
113
- // Enable
114
- component.enable();
115
- expect(component.disabled.isDisabled()).toBe(false);
116
- expect(component.element.classList.contains('mtrl-component--disabled')).toBe(false);
117
- });
118
- ```
119
-
120
- ## JSDOM Setup
121
-
122
- We use JSDOM to create a DOM environment for component tests. Each test file that requires DOM manipulation should include the proper JSDOM setup:
123
-
124
- ```typescript
125
- // Setup jsdom environment
126
- let dom: JSDOM;
127
- let window: Window;
128
- let document: Document;
129
- let originalGlobalDocument: any;
130
- let originalGlobalWindow: any;
131
-
132
- beforeAll(() => {
133
- // Create a new JSDOM instance
134
- dom = new JSDOM('<!DOCTYPE html><html><body></body></html>', {
135
- url: 'http://localhost/',
136
- pretendToBeVisual: true
137
- });
138
-
139
- // Get window and document from jsdom
140
- window = dom.window;
141
- document = window.document;
142
-
143
- // Store original globals
144
- originalGlobalDocument = global.document;
145
- originalGlobalWindow = global.window;
146
-
147
- // Set globals to use jsdom
148
- global.document = document;
149
- global.window = window;
150
- global.Element = window.Element;
151
- global.HTMLElement = window.HTMLElement;
152
- global.Event = window.Event;
153
- });
154
-
155
- afterAll(() => {
156
- // Restore original globals
157
- global.document = originalGlobalDocument;
158
- global.window = originalGlobalWindow;
159
-
160
- // Clean up jsdom
161
- window.close();
162
- });
163
- ```
164
-
165
- ## Component Testing Approach
166
-
167
- For most component tests, we use a mock implementation approach that creates components with the same interface as the real components, but with simplified internals. This approach:
168
-
169
- 1. Avoids circular dependency issues in tests
170
- 2. Makes tests faster and more isolated
171
- 3. Allows testing component interfaces without implementation details
172
- 4. Provides better control over the test environment
173
-
174
- A typical mock component setup might look like:
175
-
176
- ```typescript
177
- const createMockComponent = (config: ComponentConfig = {}): ComponentInterface => {
178
- // Create base elements
179
- const element = document.createElement('div');
180
- element.className = 'mtrl-component';
181
-
182
- // Apply configuration
183
- if (config.variant) {
184
- element.classList.add(`mtrl-component--${config.variant}`);
185
- }
186
-
187
- // Event tracking
188
- const eventHandlers: Record<string, Function[]> = {};
189
-
190
- // Return component interface
191
- return {
192
- element,
193
-
194
- // Component methods matching the real component API
195
- setValue(value: string) {
196
- element.setAttribute('value', value);
197
- return this;
198
- },
199
-
200
- getValue() {
201
- return element.getAttribute('value') || '';
202
- },
203
-
204
- on(event: string, handler: Function) {
205
- if (!eventHandlers[event]) eventHandlers[event] = [];
206
- eventHandlers[event].push(handler);
207
- element.addEventListener(event, handler as EventListener);
208
- return this;
209
- },
210
-
211
- // Additional methods as needed...
212
- };
213
- };
214
- ```