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,26 +1,16 @@
1
- // src/core/composition/index.ts
2
-
3
1
  /**
4
2
  * @module core/composition
5
3
  * @description Composition utilities for creating components using the structure-based approach
6
- *
4
+ *
7
5
  * The composition module provides features that work with the structure definition
8
6
  * mechanism. Unlike traditional features that directly modify the DOM, these
9
7
  * features modify a layout schema that is later used to create DOM elements.
10
- *
8
+ *
11
9
  * This approach provides several advantages:
12
10
  * - Clearer separation between layout and DOM creation
13
11
  * - More predictable component creation process
14
12
  * - Better support for server-side rendering
15
13
  * - Enhanced testability
16
14
  */
17
-
18
- // Export features
19
- export {
20
- withLayout,
21
- withDom,
22
- withIcon,
23
- withLabel,
24
- } from './features';
25
-
26
- export type { IconConfig, LabelConfig } from './features';
15
+ export { withLayout, withDom, withIcon, withLabel, } from './features';
16
+ export type { IconConfig, LabelConfig } from './features';
@@ -1,136 +1,88 @@
1
- // src/core/config/component-config.ts
2
- import { PREFIX } from '../config';
3
-
4
1
  /**
5
2
  * Base component configuration interface
6
3
  * Common configuration properties shared by all components
7
4
  */
8
5
  export interface BaseComponentConfig {
9
- componentName?: string;
10
- prefix?: string;
11
- class?: string;
12
- [key: string]: any;
6
+ componentName?: string;
7
+ prefix?: string;
8
+ class?: string | string[];
9
+ className?: string | string[];
10
+ rawClass?: string | string[];
11
+ [key: string]: any;
13
12
  }
14
-
15
13
  /**
16
14
  * Creates a base configuration for any component
17
- *
15
+ *
18
16
  * @param {BaseComponentConfig} defaults - Default configuration for the component
19
17
  * @param {BaseComponentConfig} userConfig - User provided configuration
20
18
  * @param {string} componentName - The name of the component
21
19
  * @returns {BaseComponentConfig} Complete configuration with defaults applied
22
- *
20
+ *
23
21
  * @example
24
22
  * // In button/config.ts
25
- * export const createBaseConfig = (config: ButtonConfig = {}) =>
23
+ * export const createBaseConfig = (config: ButtonConfig = {}) =>
26
24
  * createComponentConfig(defaultConfig, config, 'button');
27
25
  */
28
- export const createComponentConfig = (
29
- defaults: BaseComponentConfig,
30
- userConfig: BaseComponentConfig = {},
31
- componentName: string
32
- ): BaseComponentConfig => {
33
- // Create a new object with defaults and user config
34
- const config = {
35
- ...defaults,
36
- ...userConfig,
37
- // Force these values to ensure consistency
38
- componentName,
39
- prefix: PREFIX
40
- };
41
-
42
- return config;
43
- };
44
-
26
+ export declare const createComponentConfig: (defaults: BaseComponentConfig, userConfig: BaseComponentConfig, componentName: string) => BaseComponentConfig;
45
27
  /**
46
28
  * Creates a class name with proper prefixing
47
- *
29
+ *
48
30
  * @param {string} componentName - The name of the component
49
31
  * @param {string} [element] - Optional element name for BEM notation
50
32
  * @param {string} [modifier] - Optional modifier name for BEM notation
51
33
  * @returns {string} Properly formatted class name
52
- *
34
+ *
53
35
  * @example
54
36
  * // Returns 'mtrl-button'
55
37
  * createClassName('button');
56
- *
38
+ *
57
39
  * // Returns 'mtrl-button__icon'
58
40
  * createClassName('button', 'icon');
59
- *
41
+ *
60
42
  * // Returns 'mtrl-button--primary'
61
43
  * createClassName('button', null, 'primary');
62
- *
44
+ *
63
45
  * // Returns 'mtrl-button__icon--small'
64
46
  * createClassName('button', 'icon', 'small');
65
47
  */
66
- export const createClassName = (
67
- componentName: string,
68
- element?: string | null,
69
- modifier?: string | null
70
- ): string => {
71
- let className = `${PREFIX}-${componentName}`;
72
-
73
- if (element) {
74
- className += `__${element}`;
75
- }
76
-
77
- if (modifier) {
78
- className += `--${modifier}`;
79
- }
80
-
81
- return className;
82
- };
83
-
48
+ export declare const createClassName: (componentName: string, element?: string | null, modifier?: string | null) => string;
84
49
  /**
85
50
  * Processes class names for an element, handling arrays, nulls and conditional classes
86
- *
51
+ *
87
52
  * @param {string | string[] | null} classNames - Class names to process
88
53
  * @returns {string} Space-separated class names as a string
89
- *
54
+ *
90
55
  * @example
91
56
  * // Returns 'mtrl-card mtrl-card--elevated custom-class'
92
57
  * processClassNames(['mtrl-card', 'mtrl-card--elevated', 'custom-class']);
93
- *
58
+ *
94
59
  * // Returns 'mtrl-card'
95
60
  * processClassNames(['mtrl-card', null, undefined]);
96
61
  */
97
- export const processClassNames = (classNames: string | string[] | null): string => {
98
- if (!classNames) return '';
99
-
100
- if (typeof classNames === 'string') return classNames;
101
-
102
- return classNames
103
- .filter(Boolean) // Remove null, undefined, empty strings
104
- .join(' ');
105
- };
106
-
62
+ export declare const processClassNames: (classNames: string | string[] | null) => string;
107
63
  /**
108
64
  * Creates a configuration object for withElement HOC
109
- *
65
+ *
110
66
  * @param {BaseComponentConfig} config - Component configuration
111
67
  * @param {Object} options - Element options
112
68
  * @returns {Object} Configuration object for withElement
113
69
  */
114
- export const createElementConfig = (
115
- config: BaseComponentConfig,
116
- options: {
70
+ export declare const createElementConfig: (config: BaseComponentConfig, options: {
117
71
  tag: string;
118
- attrs?: Record<string, any>;
72
+ attributes?: Record<string, any>;
119
73
  className?: string | string[] | null;
120
74
  html?: string;
121
75
  text?: string;
122
- forwardEvents?: Record<string, boolean | Function>;
76
+ forwardEvents?: Record<string, boolean | ((component: any, event: Event) => boolean)>;
123
77
  interactive?: boolean;
124
- }
125
- ) => {
126
- return {
127
- tag: options.tag,
128
- componentName: config.componentName,
129
- attrs: options.attrs || {},
130
- className: options.className,
131
- html: options.html,
132
- text: options.text,
133
- forwardEvents: options.forwardEvents || {},
134
- interactive: options.interactive
135
- };
136
- };
78
+ }) => {
79
+ tag: string;
80
+ componentName: string;
81
+ attributes: Record<string, any>;
82
+ className: string[];
83
+ rawClass: string | string[];
84
+ html: string;
85
+ text: string;
86
+ forwardEvents: Record<string, boolean | ((component: any, event: Event) => boolean)>;
87
+ interactive: boolean;
88
+ };
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Library prefix used for all components
3
+ */
4
+ export declare const PREFIX = "mtrl";
5
+ /**
6
+ * Gets a prefixed component class name
7
+ * @param type - Component type
8
+ * @returns Prefixed class name
9
+ */
10
+ export declare const getComponentClass: (type: string) => string;
11
+ /**
12
+ * Gets a BEM modifier class name
13
+ * @param baseClass - Base class name
14
+ * @param modifier - Modifier name
15
+ * @returns Modifier class name
16
+ */
17
+ export declare const getModifierClass: (baseClass: string, modifier: string) => string;
18
+ /**
19
+ * Gets a BEM element class name
20
+ * @param baseClass - Base class name
21
+ * @param element - Element name
22
+ * @returns Element class name
23
+ */
24
+ export declare const getElementClass: (baseClass: string, element: string) => string;
25
+ /**
26
+ * Component type identifiers
27
+ */
28
+ export declare enum COMPONENTS {
29
+ BUTTON = "button",
30
+ TEXTFIELD = "textfield",
31
+ CONTAINER = "container",
32
+ SNACKBAR = "snackbar",
33
+ SWITCH = "switch"
34
+ }
35
+ /**
36
+ * Theme configuration interface
37
+ */
38
+ export interface ThemeConfig {
39
+ /**
40
+ * Theme name
41
+ */
42
+ name: string;
43
+ /**
44
+ * Theme CSS variables
45
+ */
46
+ variables: Record<string, string>;
47
+ /**
48
+ * Theme variants
49
+ */
50
+ variants: Record<string, any>;
51
+ }
52
+ /**
53
+ * Component configuration interface
54
+ */
55
+ export interface ComponentConfig {
56
+ prefix: string;
57
+ type: string;
58
+ baseClass: string;
59
+ getClass: () => string;
60
+ getModifierClass: (modifier: string) => string;
61
+ getElementClass: (element: string) => string;
62
+ withTheme: (theme: string) => ThemedComponentConfig;
63
+ withVariants: (...variants: string[]) => VariantComponentConfig;
64
+ withStates: (...states: string[]) => StateComponentConfig;
65
+ }
66
+ /**
67
+ * Themed component configuration interface
68
+ */
69
+ export interface ThemedComponentConfig extends ComponentConfig {
70
+ theme: string;
71
+ getThemeClass: (variant: string) => string;
72
+ getCssVariables: () => Record<string, string>;
73
+ }
74
+ /**
75
+ * Variant component configuration interface
76
+ */
77
+ export interface VariantComponentConfig extends ComponentConfig {
78
+ variants: string[];
79
+ hasVariant: (variant: string) => boolean;
80
+ getVariantClass: (variant: string) => string | null;
81
+ }
82
+ /**
83
+ * State component configuration interface
84
+ */
85
+ export interface StateComponentConfig extends ComponentConfig {
86
+ states: string[];
87
+ getStateClass: (state: string) => string | null;
88
+ }
89
+ /**
90
+ * Creates a component configuration object
91
+ * @param type - Component type
92
+ * @returns Component configuration interface
93
+ */
94
+ export declare const createComponentConfig: (type: string) => ComponentConfig;
95
+ /**
96
+ * Common component states
97
+ */
98
+ export declare enum STATES {
99
+ DISABLED = "disabled",
100
+ FOCUSED = "focused",
101
+ ACTIVE = "active",
102
+ LOADING = "loading",
103
+ ERROR = "error"
104
+ }
105
+ /**
106
+ * CSS class generation utilities
107
+ */
108
+ export declare const classNames: {
109
+ /**
110
+ * Creates a BEM-style class name
111
+ * @param block - Block name
112
+ * @param element - Element name
113
+ * @param modifier - Modifier name
114
+ * @returns BEM class name
115
+ */
116
+ bem: (block: string, element?: string, modifier?: string) => string;
117
+ /**
118
+ * Joins class names, filtering out falsy values
119
+ * @param classes - Class names to join
120
+ * @returns Joined class names
121
+ */
122
+ join: (...classes: (string | undefined | null | false)[]) => string;
123
+ };
124
+ /**
125
+ * Creates a themed component configuration
126
+ * @param type - Component type
127
+ * @param theme - Theme configuration
128
+ * @returns Themed component configuration
129
+ */
130
+ export declare const createThemedComponent: (type: string, theme: ThemeConfig) => ThemedComponentConfig;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module core/dom
3
+ * @description DOM attribute helpers
4
+ */
5
+ /**
6
+ * Sets attributes on an HTML element
7
+ *
8
+ * @param {HTMLElement} element - Element to set attributes on
9
+ * @param {Record<string, any>} attributes - Attributes to set
10
+ * @returns {HTMLElement} The element for chaining
11
+ */
12
+ export declare const setAttributes: (element: HTMLElement, attributes?: Record<string, any>) => HTMLElement;
13
+ /**
14
+ * Removes attributes from an HTML element
15
+ *
16
+ * @param {HTMLElement} element - Element to remove attributes from
17
+ * @param {string[]} attributes - Attributes to remove
18
+ * @returns {HTMLElement} The element for chaining
19
+ */
20
+ export declare const removeAttributes: (element: HTMLElement, attributes?: string[]) => HTMLElement;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @module core/dom
3
+ * @description DOM manipulation utilities optimized for performance
4
+ */
5
+ /**
6
+ * Normalizes class names input by handling various formats:
7
+ * - String with space-separated classes
8
+ * - Array of strings
9
+ * - Mixed array of strings and space-separated classes
10
+ *
11
+ * @param classes - Classes to normalize
12
+ * @returns Array of unique, non-empty class names
13
+ */
14
+ export declare const normalizeClasses: (...classes: (string | string[])[]) => string[];
15
+ /**
16
+ * Adds multiple classes to an element
17
+ * Automatically adds prefix to classes that don't already have it
18
+ * Optimized for minimal array operations and DOM interactions
19
+ *
20
+ * @param {HTMLElement} element - Target element
21
+ * @param {...(string | string[])} classes - Classes to add
22
+ * @returns {HTMLElement} Modified element
23
+ */
24
+ export declare const addClass: (element: HTMLElement, ...classes: (string | string[])[]) => HTMLElement;
25
+ /**
26
+ * Removes multiple classes from an element
27
+ * Handles only exact class names as specified (no automatic prefixing)
28
+ * For better performance, clients should know exactly which classes to remove
29
+ *
30
+ * @param {HTMLElement} element - Target element
31
+ * @param {...(string | string[])} classes - Classes to remove
32
+ * @returns {HTMLElement} Modified element
33
+ */
34
+ export declare const removeClass: (element: HTMLElement, ...classes: (string | string[])[]) => HTMLElement;
35
+ /**
36
+ * Toggles multiple classes on an element
37
+ * Automatically adds prefix to classes that don't already have it
38
+ *
39
+ * @param {HTMLElement} element - Target element
40
+ * @param {...(string | string[])} classes - Classes to toggle
41
+ * @returns {HTMLElement} Modified element
42
+ */
43
+ export declare const toggleClass: (element: HTMLElement, ...classes: (string | string[])[]) => HTMLElement;
44
+ /**
45
+ * Checks if an element has all specified classes
46
+ * Automatically adds prefix to classes that don't already have it
47
+ *
48
+ * @param {HTMLElement} element - Target element
49
+ * @param {...(string | string[])} classes - Classes to check
50
+ * @returns {boolean} True if element has all specified classes
51
+ */
52
+ export declare const hasClass: (element: HTMLElement, ...classes: (string | string[])[]) => boolean;
@@ -0,0 +1,154 @@
1
+ /**
2
+ * @module core/dom
3
+ * @description DOM manipulation utilities
4
+ */
5
+ /**
6
+ * Event handler function type
7
+ */
8
+ export type EventHandler = (event: Event) => void;
9
+ /**
10
+ * Event condition type - either a boolean or a function that returns a boolean
11
+ */
12
+ export type EventCondition = boolean | ((context: any, event: Event) => boolean);
13
+ /**
14
+ * Element type that can be either HTMLElement or SVGElement
15
+ */
16
+ export type DOMElement = HTMLElement | SVGElement;
17
+ /**
18
+ * Options for element creation
19
+ */
20
+ export interface CreateElementOptions {
21
+ /**
22
+ * HTML tag name
23
+ */
24
+ tag?: string;
25
+ /**
26
+ * Container to append element to
27
+ */
28
+ container?: HTMLElement | null;
29
+ /**
30
+ * Inner HTML content
31
+ */
32
+ html?: string;
33
+ /**
34
+ * Text content
35
+ */
36
+ text?: string;
37
+ /**
38
+ * Element ID
39
+ */
40
+ id?: string;
41
+ /**
42
+ * Element ariaLabel
43
+ */
44
+ ariaLabel?: string;
45
+ /**
46
+ * Dataset attributes
47
+ */
48
+ data?: Record<string, string>;
49
+ /**
50
+ * CSS classes (will be automatically prefixed with 'mtrl-')
51
+ * Alias for 'className'
52
+ */
53
+ class?: string | string[];
54
+ /**
55
+ * CSS classes (will be automatically prefixed with 'mtrl-')
56
+ * Alias for 'class'
57
+ */
58
+ className?: string | string[];
59
+ /**
60
+ * CSS classes that will NOT be prefixed
61
+ * Added as-is to the element
62
+ */
63
+ rawClass?: string | string[];
64
+ /**
65
+ * HTML attributes
66
+ */
67
+ attributes?: Record<string, any>;
68
+ /**
69
+ * Events to forward when component has emit method
70
+ */
71
+ forwardEvents?: Record<string, EventCondition>;
72
+ /**
73
+ * Callback after element creation
74
+ */
75
+ onCreate?: (element: HTMLElement, context?: any) => void;
76
+ /**
77
+ * Component context
78
+ */
79
+ context?: any;
80
+ /**
81
+ * Additional attributes
82
+ */
83
+ [key: string]: any;
84
+ }
85
+ /**
86
+ * Options for SVG element creation, extends regular element options
87
+ */
88
+ export interface CreateSVGElementOptions extends Omit<CreateElementOptions, 'container' | 'onCreate'> {
89
+ /**
90
+ * Container to append element to
91
+ */
92
+ container?: DOMElement | null;
93
+ /**
94
+ * Callback after element creation
95
+ */
96
+ onCreate?: (element: SVGElement, context?: any) => void;
97
+ }
98
+ /**
99
+ * Event handler storage to facilitate cleanup
100
+ */
101
+ export interface EventHandlerStorage {
102
+ [eventName: string]: EventHandler;
103
+ }
104
+ /**
105
+ * Creates an HTML element with the specified options
106
+ *
107
+ * @param {CreateElementOptions} options - Element creation options
108
+ * @returns {HTMLElement} Created HTML element
109
+ */
110
+ export declare const createElement: (options?: CreateElementOptions) => HTMLElement;
111
+ /**
112
+ * Creates an SVG element with the specified options
113
+ *
114
+ * @param {CreateSVGElementOptions} options - SVG element creation options
115
+ * @returns {SVGElement} Created SVG element
116
+ */
117
+ export declare const createSVGElement: (options?: CreateSVGElementOptions) => SVGElement;
118
+ /**
119
+ * Removes event handlers from an element
120
+ * @param element - Element to cleanup
121
+ */
122
+ export declare const removeEventHandlers: (element: HTMLElement | SVGElement) => void;
123
+ /**
124
+ * Higher-order function to add attributes to an element
125
+ * @param {Record<string, any>} attributes - Attributes to add
126
+ * @returns {(element: HTMLElement) => HTMLElement} Element transformer
127
+ */
128
+ export declare const withAttributes: (attributes: Record<string, any>) => (element: HTMLElement) => HTMLElement;
129
+ /**
130
+ * Higher-order function to add classes to an element
131
+ * @param {...(string | string[])} classes - Classes to add
132
+ * @returns {(element: HTMLElement) => HTMLElement} Element transformer
133
+ */
134
+ export declare const withClasses: (...classes: (string | string[])[]) => (element: HTMLElement) => HTMLElement;
135
+ /**
136
+ * Higher-order function to add content to an element
137
+ * @param {Node|string} content - Content to add
138
+ * @returns {(element: HTMLElement) => HTMLElement} Element transformer
139
+ */
140
+ export declare const withContent: (content: Node | string) => (element: HTMLElement) => HTMLElement;
141
+ declare global {
142
+ interface HTMLElement {
143
+ /**
144
+ * Storage for event handlers to enable cleanup
145
+ */
146
+ __eventHandlers?: EventHandlerStorage;
147
+ }
148
+ interface SVGElement {
149
+ /**
150
+ * Storage for event handlers to enable cleanup
151
+ */
152
+ __eventHandlers?: EventHandlerStorage;
153
+ }
154
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @module core/dom
3
+ * @description DOM manipulation utilities
4
+ */
5
+ /**
6
+ * Event manager interface for handling DOM events
7
+ */
8
+ export interface EventManager {
9
+ /**
10
+ * Add an event listener with options
11
+ * @param event - Event name
12
+ * @param handler - Event handler
13
+ * @param options - addEventListener options
14
+ * @returns EventManager instance for chaining
15
+ */
16
+ on: <T extends Event>(event: string, handler: (e: T) => void, options?: AddEventListenerOptions) => EventManager;
17
+ /**
18
+ * Remove an event listener
19
+ * @param event - Event name
20
+ * @param handler - Event handler
21
+ * @returns EventManager instance for chaining
22
+ */
23
+ off: <T extends Event>(event: string, handler: (e: T) => void) => EventManager;
24
+ /**
25
+ * Temporarily disable all event listeners
26
+ * @returns EventManager instance for chaining
27
+ */
28
+ pause: () => EventManager;
29
+ /**
30
+ * Re-enable all event listeners
31
+ * @returns EventManager instance for chaining
32
+ */
33
+ resume: () => EventManager;
34
+ /**
35
+ * Remove all event listeners and clean up
36
+ */
37
+ destroy: () => void;
38
+ /**
39
+ * Get all active handlers
40
+ * @returns Map of active handlers
41
+ */
42
+ getHandlers: () => Map<string, HandlerInfo>;
43
+ /**
44
+ * Check if a specific handler exists
45
+ * @param event - Event name
46
+ * @param handler - Event handler
47
+ * @returns Whether handler exists
48
+ */
49
+ hasHandler: <T extends Event>(event: string, handler: (e: T) => void) => boolean;
50
+ }
51
+ /**
52
+ * Handler information
53
+ */
54
+ interface HandlerInfo {
55
+ original: EventListener;
56
+ enhanced: EventListener;
57
+ event: string;
58
+ options: AddEventListenerOptions;
59
+ }
60
+ /**
61
+ * Creates an event manager to handle DOM events with enhanced functionality.
62
+ * Provides a robust interface for managing event listeners with error handling,
63
+ * cleanup, and lifecycle management.
64
+ *
65
+ * @param element - DOM element to attach events to
66
+ * @returns Event manager interface
67
+ */
68
+ export declare const createEventManager: (element: HTMLElement) => EventManager;
69
+ export {};
@@ -0,0 +1,6 @@
1
+ export { createElement, createSVGElement } from './create';
2
+ export type { CreateElementOptions } from './create';
3
+ export { setAttributes, removeAttributes } from './attributes';
4
+ export { addClass, removeClass, toggleClass, hasClass, normalizeClasses } from './classes';
5
+ export { createEventManager } from './events';
6
+ export type { EventManager } from './events';
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Normalizes class names input by handling various formats:
3
+ * - String with space-separated classes
4
+ * - Array of strings
5
+ * - Mixed array of strings and space-separated classes
6
+ *
7
+ * @param classes - Classes to normalize
8
+ * @returns Array of unique, non-empty class names
9
+ */
10
+ export declare const normalizeClasses: (...classes: (string | string[])[]) => string[];
11
+ /**
12
+ * Creates a DOM element with attributes
13
+ *
14
+ * @param tag - Element tag name
15
+ * @param attributes - Element attributes
16
+ * @returns Created element
17
+ */
18
+ export declare const createElement: <T extends HTMLElement>(tag: string, attributes?: Record<string, any>) => T;
19
+ /**
20
+ * Sets inline styles on an element
21
+ *
22
+ * @param element - Target element
23
+ * @param styles - Styles to set
24
+ * @returns Modified element
25
+ */
26
+ export declare const setStyles: <T extends HTMLElement>(element: T, styles: Partial<CSSStyleDeclaration>) => T;
27
+ /**
28
+ * Checks if an element matches a selector
29
+ *
30
+ * @param element - Element to check
31
+ * @param selector - CSS selector
32
+ * @returns Whether element matches selector
33
+ */
34
+ export declare const matches: (element: Element, selector: string) => boolean;
35
+ /**
36
+ * Finds the closest ancestor matching a selector
37
+ *
38
+ * @param element - Starting element
39
+ * @param selector - CSS selector
40
+ * @returns Matching ancestor or null
41
+ */
42
+ export declare const closest: <T extends HTMLElement>(element: Element, selector: string) => T | null;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @module core/gestures
3
+ * @description Modular gesture recognition system for touch and mouse interactions
4
+ */
5
+ export { createGestureManager, GESTURE_TYPES, SWIPE_DIRECTIONS } from './manager';
6
+ export { detectTap } from './tap';
7
+ export { detectSwipe } from './swipe';
8
+ export { detectLongPress } from './longpress';
9
+ export { detectPinch } from './pinch';
10
+ export { detectRotate } from './rotate';
11
+ export { detectPan } from './pan';
12
+ export type { GestureManager, GestureConfig, GestureEvent, TapEvent, SwipeEvent, LongPressEvent, PinchEvent, RotateEvent, PanEvent, AnyGestureEvent, GestureHandler, GestureState, GestureDetectionContext } from './types';