mtrl 0.9.8 → 0.10.0-next.1

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 (548) hide show
  1. package/README.md +30 -1
  2. package/dist/README.md +30 -1
  3. package/dist/components/badge/api.d.ts +14 -20
  4. package/dist/components/badge/api.js +4 -5
  5. package/dist/components/badge/config.d.ts +549 -17
  6. package/dist/components/badge/config.js +7 -0
  7. package/dist/components/badge/features.d.ts +9 -7
  8. package/dist/components/badge/features.js +13 -12
  9. package/dist/components/badge/types.d.ts +38 -0
  10. package/dist/components/bottom-app-bar/bottom-app-bar.js +6 -2
  11. package/dist/components/bottom-app-bar/constants.d.ts +2 -2
  12. package/dist/components/bottom-app-bar/constants.js +2 -2
  13. package/dist/components/bottom-app-bar/types.d.ts +4 -4
  14. package/dist/components/bottom-sheet/config.d.ts +531 -17
  15. package/dist/components/bottom-sheet/constants.d.ts +6 -6
  16. package/dist/components/bottom-sheet/constants.js +6 -6
  17. package/dist/components/bottom-sheet/features/structure.d.ts +3 -3
  18. package/dist/components/button/api.d.ts +3 -2
  19. package/dist/components/button/api.js +1 -1
  20. package/dist/components/button/button.d.ts +2 -2
  21. package/dist/components/button/config.d.ts +531 -17
  22. package/dist/components/button/constants.d.ts +4 -4
  23. package/dist/components/button/constants.js +4 -4
  24. package/dist/components/button/features/progress.js +4 -4
  25. package/dist/components/button/types.d.ts +56 -11
  26. package/dist/components/button-group/button-group.js +5 -5
  27. package/dist/components/button-group/config.d.ts +64 -25
  28. package/dist/components/button-group/types.d.ts +27 -5
  29. package/dist/components/card/api.js +8 -8
  30. package/dist/components/card/card.d.ts +1 -1
  31. package/dist/components/card/config.d.ts +532 -18
  32. package/dist/components/card/config.js +1 -1
  33. package/dist/components/card/constants.d.ts +18 -15
  34. package/dist/components/card/constants.js +15 -15
  35. package/dist/components/card/content.js +20 -20
  36. package/dist/components/card/features.js +24 -21
  37. package/dist/components/card/index.d.ts +1 -1
  38. package/dist/components/card/types.d.ts +14 -4
  39. package/dist/components/carousel/api.d.ts +4 -3
  40. package/dist/components/carousel/config.d.ts +531 -17
  41. package/dist/components/carousel/index.d.ts +1 -1
  42. package/dist/components/carousel/types.d.ts +13 -2
  43. package/dist/components/checkbox/api.d.ts +1 -1
  44. package/dist/components/checkbox/api.js +4 -0
  45. package/dist/components/checkbox/checkbox.d.ts +1 -2
  46. package/dist/components/checkbox/checkbox.js +9 -0
  47. package/dist/components/checkbox/config.d.ts +533 -19
  48. package/dist/components/checkbox/config.js +2 -2
  49. package/dist/components/checkbox/constants.d.ts +5 -8
  50. package/dist/components/checkbox/constants.js +3 -3
  51. package/dist/components/checkbox/index.d.ts +4 -4
  52. package/dist/components/checkbox/types.d.ts +54 -9
  53. package/dist/components/chips/api.d.ts +15 -5
  54. package/dist/components/chips/chip/chip.d.ts +2 -6
  55. package/dist/components/chips/chip/chip.js +253 -68
  56. package/dist/components/chips/chip/index.d.ts +0 -1
  57. package/dist/components/chips/chip/index.js +0 -1
  58. package/dist/components/chips/config.d.ts +555 -53
  59. package/dist/components/chips/config.js +14 -13
  60. package/dist/components/chips/constants.d.ts +15 -41
  61. package/dist/components/chips/constants.js +4 -17
  62. package/dist/components/chips/factories.d.ts +9 -0
  63. package/dist/components/chips/factories.js +5 -0
  64. package/dist/components/chips/features/chip-items.d.ts +33 -2
  65. package/dist/components/chips/features/container.d.ts +68 -1
  66. package/dist/components/chips/features/container.js +1 -1
  67. package/dist/components/chips/features/controller.d.ts +54 -2
  68. package/dist/components/chips/features/controller.js +98 -111
  69. package/dist/components/chips/features/dom.d.ts +10 -1
  70. package/dist/components/chips/features/dom.js +40 -11
  71. package/dist/components/chips/features/index.d.ts +0 -1
  72. package/dist/components/chips/features/index.js +0 -1
  73. package/dist/components/chips/index.d.ts +2 -2
  74. package/dist/components/chips/index.js +1 -1
  75. package/dist/components/chips/schema.d.ts +8 -6
  76. package/dist/components/chips/schema.js +2 -2
  77. package/dist/components/chips/types.d.ts +163 -232
  78. package/dist/components/chips/types.js +1 -11
  79. package/dist/components/datepicker/api.d.ts +7 -18
  80. package/dist/components/datepicker/api.js +6 -179
  81. package/dist/components/datepicker/config.d.ts +535 -117
  82. package/dist/components/datepicker/config.js +6 -84
  83. package/dist/components/datepicker/constants.d.ts +21 -14
  84. package/dist/components/datepicker/constants.js +20 -14
  85. package/dist/components/datepicker/datepicker.d.ts +2 -6
  86. package/dist/components/datepicker/datepicker.js +560 -234
  87. package/dist/components/datepicker/index.d.ts +1 -1
  88. package/dist/components/datepicker/render.d.ts +3 -51
  89. package/dist/components/datepicker/render.js +119 -282
  90. package/dist/components/datepicker/types.d.ts +60 -79
  91. package/dist/components/datepicker/types.js +6 -6
  92. package/dist/components/datepicker/utils.d.ts +2 -0
  93. package/dist/components/datepicker/utils.js +46 -11
  94. package/dist/components/dialog/api.d.ts +9 -3
  95. package/dist/components/dialog/api.js +1 -1
  96. package/dist/components/dialog/config.d.ts +550 -63
  97. package/dist/components/dialog/constants.d.ts +9 -9
  98. package/dist/components/dialog/constants.js +9 -9
  99. package/dist/components/dialog/dialog.js +1 -1
  100. package/dist/components/dialog/features.d.ts +18 -8
  101. package/dist/components/dialog/features.js +57 -55
  102. package/dist/components/dialog/types.d.ts +78 -0
  103. package/dist/components/divider/features.d.ts +4 -4
  104. package/dist/components/divider/types.d.ts +31 -13
  105. package/dist/components/drawer/api.d.ts +4 -3
  106. package/dist/components/drawer/config.d.ts +534 -20
  107. package/dist/components/drawer/drawer.d.ts +2 -2
  108. package/dist/components/drawer/index.d.ts +1 -1
  109. package/dist/components/drawer/types.d.ts +12 -2
  110. package/dist/components/extended-fab/api.d.ts +3 -2
  111. package/dist/components/extended-fab/config.d.ts +531 -17
  112. package/dist/components/extended-fab/constants.d.ts +2 -2
  113. package/dist/components/extended-fab/constants.js +2 -2
  114. package/dist/components/extended-fab/index.d.ts +1 -1
  115. package/dist/components/extended-fab/types.d.ts +24 -12
  116. package/dist/components/fab/api.d.ts +3 -2
  117. package/dist/components/fab/config.d.ts +533 -19
  118. package/dist/components/fab/config.js +7 -6
  119. package/dist/components/fab/constants.d.ts +1 -1
  120. package/dist/components/fab/constants.js +1 -1
  121. package/dist/components/fab/fab.d.ts +1 -1
  122. package/dist/components/fab/fab.js +1 -1
  123. package/dist/components/fab/index.d.ts +1 -1
  124. package/dist/components/fab/types.d.ts +33 -9
  125. package/dist/components/icon-button/api.d.ts +5 -4
  126. package/dist/components/icon-button/api.js +2 -12
  127. package/dist/components/icon-button/config.d.ts +534 -20
  128. package/dist/components/icon-button/config.js +8 -7
  129. package/dist/components/icon-button/icon-button.d.ts +1 -1
  130. package/dist/components/icon-button/icon-button.js +1 -1
  131. package/dist/components/icon-button/index.d.ts +3 -3
  132. package/dist/components/icon-button/types.d.ts +26 -8
  133. package/dist/components/index.d.ts +3 -5
  134. package/dist/components/index.js +1 -3
  135. package/dist/components/list/api.d.ts +20 -13
  136. package/dist/components/list/api.js +57 -52
  137. package/dist/components/list/config.d.ts +589 -42
  138. package/dist/components/list/config.js +5 -22
  139. package/dist/components/list/constants.d.ts +4 -4
  140. package/dist/components/list/constants.js +4 -4
  141. package/dist/components/list/features/anatomy.d.ts +6 -0
  142. package/dist/components/list/features/anatomy.js +48 -0
  143. package/dist/components/list/features/renderer.d.ts +7 -8
  144. package/dist/components/list/features/renderer.js +97 -76
  145. package/dist/components/list/features/selection.d.ts +2 -8
  146. package/dist/components/list/features/selection.js +105 -142
  147. package/dist/components/list/index.d.ts +2 -10
  148. package/dist/components/list/list.d.ts +5 -24
  149. package/dist/components/list/list.js +0 -1
  150. package/dist/components/list/types.d.ts +138 -2
  151. package/dist/components/loading-indicator/config.d.ts +531 -17
  152. package/dist/components/menu/api.d.ts +5 -1
  153. package/dist/components/menu/config.d.ts +535 -47
  154. package/dist/components/menu/config.js +9 -11
  155. package/dist/components/menu/features/controller.d.ts +5 -2
  156. package/dist/components/menu/features/controller.js +28 -48
  157. package/dist/components/menu/features/keyboard.d.ts +3 -19
  158. package/dist/components/menu/features/keyboard.js +11 -11
  159. package/dist/components/menu/features/opener.d.ts +8 -2
  160. package/dist/components/menu/features/opener.js +2 -6
  161. package/dist/components/menu/features/position.d.ts +3 -3
  162. package/dist/components/menu/features/submenu.d.ts +20 -2
  163. package/dist/components/menu/features/submenu.js +4 -11
  164. package/dist/components/menu/features/tasks.d.ts +1 -1
  165. package/dist/components/menu/menu.js +1 -1
  166. package/dist/components/menu/types.d.ts +131 -0
  167. package/dist/components/navigation-rail/navigation-rail.js +2 -1
  168. package/dist/components/navigation-rail/types.d.ts +10 -0
  169. package/dist/components/progress/api.js +3 -2
  170. package/dist/components/progress/config.d.ts +567 -29
  171. package/dist/components/progress/config.js +9 -15
  172. package/dist/components/progress/features/canvas.js +1 -1
  173. package/dist/components/progress/features/state.d.ts +4 -5
  174. package/dist/components/progress/features/state.js +2 -1
  175. package/dist/components/radios/api.d.ts +4 -3
  176. package/dist/components/radios/config.d.ts +537 -21
  177. package/dist/components/radios/constants.d.ts +10 -6
  178. package/dist/components/radios/index.d.ts +1 -1
  179. package/dist/components/radios/radio.d.ts +19 -2
  180. package/dist/components/radios/radio.js +18 -13
  181. package/dist/components/radios/types.d.ts +21 -7
  182. package/dist/components/search/api.d.ts +3 -2
  183. package/dist/components/search/config.d.ts +551 -36
  184. package/dist/components/search/features/input.d.ts +86 -2
  185. package/dist/components/search/features/input.js +2 -2
  186. package/dist/components/search/features/states.d.ts +100 -2
  187. package/dist/components/search/features/states.js +3 -3
  188. package/dist/components/search/features/structure.d.ts +10 -2
  189. package/dist/components/search/features/suggestions.d.ts +53 -1
  190. package/dist/components/search/search.js +1 -1
  191. package/dist/components/segmented-button/config.d.ts +5 -5
  192. package/dist/components/segmented-button/config.js +1 -1
  193. package/dist/components/segmented-button/segment.js +2 -2
  194. package/dist/components/segmented-button/segmented-button.js +20 -7
  195. package/dist/components/segmented-button/types.d.ts +3 -3
  196. package/dist/components/select/features.d.ts +2 -2
  197. package/dist/components/select/features.js +30 -8
  198. package/dist/components/select/select.js +1 -1
  199. package/dist/components/select/types.d.ts +2 -2
  200. package/dist/components/side-sheet/config.d.ts +531 -17
  201. package/dist/components/side-sheet/constants.d.ts +8 -8
  202. package/dist/components/side-sheet/constants.js +8 -8
  203. package/dist/components/side-sheet/features/structure.d.ts +3 -3
  204. package/dist/components/slider/api.d.ts +14 -7
  205. package/dist/components/slider/api.js +4 -0
  206. package/dist/components/slider/config.d.ts +576 -56
  207. package/dist/components/slider/config.js +14 -10
  208. package/dist/components/slider/constants.d.ts +6 -6
  209. package/dist/components/slider/features/axis.d.ts +37 -0
  210. package/dist/components/slider/features/axis.js +17 -0
  211. package/dist/components/slider/features/controller.d.ts +521 -2
  212. package/dist/components/slider/features/controller.js +72 -38
  213. package/dist/components/slider/features/dom.js +7 -7
  214. package/dist/components/slider/features/handlers.d.ts +11 -20
  215. package/dist/components/slider/features/handlers.js +92 -108
  216. package/dist/components/slider/features/range.d.ts +7 -1
  217. package/dist/components/slider/features/range.js +4 -4
  218. package/dist/components/slider/features/states.d.ts +71 -1
  219. package/dist/components/slider/features/tracks.d.ts +47 -3
  220. package/dist/components/slider/features/tracks.js +143 -58
  221. package/dist/components/slider/slider.js +1 -1
  222. package/dist/components/slider/types.d.ts +162 -2
  223. package/dist/components/snackbar/config.d.ts +531 -17
  224. package/dist/components/snackbar/constants.d.ts +3 -3
  225. package/dist/components/snackbar/constants.js +3 -3
  226. package/dist/components/snackbar/index.d.ts +1 -1
  227. package/dist/components/snackbar/types.d.ts +27 -4
  228. package/dist/components/split-button/api.js +2 -2
  229. package/dist/components/split-button/config.d.ts +531 -17
  230. package/dist/components/switch/api.d.ts +1 -1
  231. package/dist/components/switch/config.d.ts +531 -17
  232. package/dist/components/switch/constants.d.ts +11 -11
  233. package/dist/components/switch/constants.js +8 -8
  234. package/dist/components/switch/features.js +38 -16
  235. package/dist/components/switch/index.d.ts +1 -1
  236. package/dist/components/switch/switch.js +4 -0
  237. package/dist/components/switch/types.d.ts +44 -8
  238. package/dist/components/tabs/api.d.ts +8 -9
  239. package/dist/components/tabs/api.js +16 -4
  240. package/dist/components/tabs/config.d.ts +3 -18
  241. package/dist/components/tabs/config.js +1 -12
  242. package/dist/components/tabs/constants.d.ts +18 -12
  243. package/dist/components/tabs/constants.js +8 -8
  244. package/dist/components/tabs/features.d.ts +11 -6
  245. package/dist/components/tabs/features.js +13 -8
  246. package/dist/components/tabs/indicator.js +20 -18
  247. package/dist/components/tabs/responsive.d.ts +19 -4
  248. package/dist/components/tabs/responsive.js +40 -48
  249. package/dist/components/tabs/scroll-indicators.js +11 -11
  250. package/dist/components/tabs/state.d.ts +0 -5
  251. package/dist/components/tabs/state.js +0 -40
  252. package/dist/components/tabs/tab.d.ts +13 -0
  253. package/dist/components/tabs/tab.js +9 -21
  254. package/dist/components/tabs/tabs.js +4 -4
  255. package/dist/components/tabs/types.d.ts +44 -12
  256. package/dist/components/tabs/utils.d.ts +42 -3
  257. package/dist/components/tabs/utils.js +53 -30
  258. package/dist/components/textfield/api.d.ts +1 -1
  259. package/dist/components/textfield/config.d.ts +536 -20
  260. package/dist/components/textfield/config.js +3 -3
  261. package/dist/components/textfield/constants.d.ts +17 -17
  262. package/dist/components/textfield/constants.js +11 -11
  263. package/dist/components/textfield/features/density.d.ts +1 -1
  264. package/dist/components/textfield/features/leading-icon.d.ts +16 -2
  265. package/dist/components/textfield/features/leading-icon.js +3 -3
  266. package/dist/components/textfield/features/placement.js +3 -3
  267. package/dist/components/textfield/features/prefix-text.d.ts +16 -2
  268. package/dist/components/textfield/features/prefix-text.js +1 -1
  269. package/dist/components/textfield/features/suffix-text.d.ts +16 -2
  270. package/dist/components/textfield/features/suffix-text.js +1 -1
  271. package/dist/components/textfield/features/supporting-text.js +2 -2
  272. package/dist/components/textfield/features/trailing-icon.d.ts +16 -2
  273. package/dist/components/textfield/features/trailing-icon.js +3 -3
  274. package/dist/components/textfield/index.d.ts +1 -1
  275. package/dist/components/textfield/textfield.d.ts +2 -2
  276. package/dist/components/textfield/types.d.ts +33 -5
  277. package/dist/components/timepicker/api.d.ts +5 -4
  278. package/dist/components/timepicker/api.js +30 -245
  279. package/dist/components/timepicker/clockdial.js +7 -8
  280. package/dist/components/timepicker/config.d.ts +1602 -60
  281. package/dist/components/timepicker/config.js +6 -6
  282. package/dist/components/timepicker/constants.d.ts +54 -54
  283. package/dist/components/timepicker/constants.js +54 -54
  284. package/dist/components/timepicker/index.d.ts +1 -1
  285. package/dist/components/timepicker/render.d.ts +2 -2
  286. package/dist/components/timepicker/render.js +102 -72
  287. package/dist/components/timepicker/timepicker.js +5 -8
  288. package/dist/components/timepicker/types.d.ts +41 -5
  289. package/dist/components/tooltip/config.d.ts +534 -19
  290. package/dist/components/tooltip/constants.d.ts +5 -5
  291. package/dist/components/tooltip/constants.js +3 -3
  292. package/dist/components/tooltip/tooltip.d.ts +2 -2
  293. package/dist/components/top-app-bar/constants.d.ts +6 -6
  294. package/dist/components/top-app-bar/constants.js +6 -6
  295. package/dist/components/top-app-bar/top-app-bar.js +11 -7
  296. package/dist/components/top-app-bar/types.d.ts +5 -5
  297. package/dist/core/compose/component.d.ts +5 -3
  298. package/dist/core/compose/component.js +1 -1
  299. package/dist/core/compose/features/checkable.d.ts +2 -1
  300. package/dist/core/compose/features/events.d.ts +3 -3
  301. package/dist/core/compose/features/icon.d.ts +1 -1
  302. package/dist/core/compose/features/icon.js +2 -2
  303. package/dist/core/compose/features/input.d.ts +24 -6
  304. package/dist/core/compose/features/input.js +5 -4
  305. package/dist/core/compose/features/ripple.d.ts +5 -8
  306. package/dist/core/compose/features/ripple.js +8 -11
  307. package/dist/core/compose/features/text.d.ts +4 -2
  308. package/dist/core/compose/features/text.js +9 -3
  309. package/dist/core/compose/features/textinput.d.ts +22 -8
  310. package/dist/core/compose/features/textinput.js +3 -2
  311. package/dist/core/compose/features/textlabel.d.ts +5 -1
  312. package/dist/core/compose/features/textlabel.js +5 -2
  313. package/dist/core/compose/features/track.d.ts +5 -0
  314. package/dist/core/compose/features/track.js +11 -4
  315. package/dist/core/compose/features/withEvents.d.ts +2 -2
  316. package/dist/core/compose/features/withEvents.js +8 -2
  317. package/dist/core/config/component.d.ts +546 -42
  318. package/dist/core/config/component.js +3 -11
  319. package/dist/core/config/global.d.ts +0 -22
  320. package/dist/core/config.d.ts +0 -33
  321. package/dist/core/config.js +1 -58
  322. package/dist/core/dom/attributes.js +9 -3
  323. package/dist/core/dom/classes.js +8 -26
  324. package/dist/core/dom/create.d.ts +35 -6
  325. package/dist/core/dom/create.js +3 -7
  326. package/dist/core/dom/index.d.ts +1 -1
  327. package/dist/core/dom/utils.js +2 -1
  328. package/dist/core/index.d.ts +1 -5
  329. package/dist/core/index.js +1 -3
  330. package/dist/core/state/index.d.ts +0 -4
  331. package/dist/core/state/index.js +0 -2
  332. package/dist/core/utils/attributes.d.ts +29 -0
  333. package/dist/core/utils/attributes.js +11 -0
  334. package/dist/core/utils/warn.d.ts +8 -0
  335. package/dist/core/utils/warn.js +15 -0
  336. package/dist/elements/adapter.d.ts +96 -0
  337. package/dist/elements/adapter.js +69 -0
  338. package/dist/elements/button.d.ts +72 -0
  339. package/dist/elements/button.js +42 -0
  340. package/dist/elements/css/badge.js +3 -0
  341. package/dist/elements/css/button.js +4 -0
  342. package/dist/elements/css/index.js +5 -0
  343. package/dist/elements/css/progress.d.ts +1 -0
  344. package/dist/elements/css/progress.js +3 -0
  345. package/dist/elements/css/ripple.d.ts +1 -0
  346. package/dist/elements/css/ripple.js +3 -0
  347. package/dist/elements/css/switch.d.ts +1 -0
  348. package/dist/elements/css/switch.js +3 -0
  349. package/dist/elements/css/tabs.d.ts +1 -0
  350. package/dist/elements/css/tabs.js +5 -0
  351. package/dist/elements/define.d.ts +166 -0
  352. package/dist/elements/define.js +354 -0
  353. package/dist/elements/index.d.ts +53 -0
  354. package/dist/elements/index.js +22 -0
  355. package/dist/elements/styles.d.ts +22 -0
  356. package/dist/elements/styles.js +34 -0
  357. package/dist/elements/switch.d.ts +86 -0
  358. package/dist/elements/switch.js +48 -0
  359. package/dist/elements/tabs.d.ts +76 -0
  360. package/dist/elements/tabs.js +110 -0
  361. package/dist/index.cjs +0 -0
  362. package/dist/package.json +52 -2
  363. package/dist/react/create.d.ts +45 -0
  364. package/dist/react/create.js +104 -0
  365. package/dist/react/index.d.ts +19 -0
  366. package/dist/react/index.js +13 -0
  367. package/dist/solid/create.d.ts +44 -0
  368. package/dist/solid/create.js +82 -0
  369. package/dist/solid/index.d.ts +19 -0
  370. package/dist/solid/index.js +12 -0
  371. package/dist/styles/badge.css +2 -2
  372. package/dist/styles/base.css +2 -2
  373. package/dist/styles/bottom-app-bar.css +2 -2
  374. package/dist/styles/bottom-sheet.css +2 -2
  375. package/dist/styles/button-group.css +2 -2
  376. package/dist/styles/button.css +2 -2
  377. package/dist/styles/card.css +2 -2
  378. package/dist/styles/carousel.css +2 -2
  379. package/dist/styles/checkbox.css +2 -2
  380. package/dist/styles/chips.css +2 -2
  381. package/dist/styles/datepicker.css +2 -0
  382. package/dist/styles/datepicker.d.ts +1 -0
  383. package/dist/styles/datepicker.js +2 -0
  384. package/dist/styles/dialog.css +2 -2
  385. package/dist/styles/divider.css +2 -2
  386. package/dist/styles/drawer.css +2 -2
  387. package/dist/styles/extended-fab.css +2 -2
  388. package/dist/styles/fab.css +2 -2
  389. package/dist/styles/icon-button.css +2 -2
  390. package/dist/styles/list.css +2 -2
  391. package/dist/styles/loading-indicator.css +2 -2
  392. package/dist/styles/menu.css +2 -2
  393. package/dist/styles/navigation-rail.css +2 -2
  394. package/dist/styles/progress.css +2 -2
  395. package/dist/styles/radios.css +2 -2
  396. package/dist/styles/search.css +2 -2
  397. package/dist/styles/segmented-button.css +2 -2
  398. package/dist/styles/select.css +2 -2
  399. package/dist/styles/side-sheet.css +2 -2
  400. package/dist/styles/slider.css +2 -2
  401. package/dist/styles/snackbar.css +2 -2
  402. package/dist/styles/split-button.css +2 -2
  403. package/dist/styles/switch.css +2 -2
  404. package/dist/styles/tabs.css +2 -2
  405. package/dist/styles/textfield.css +2 -2
  406. package/dist/styles/timepicker.css +2 -2
  407. package/dist/styles/tooltip.css +2 -2
  408. package/dist/styles/top-app-bar.css +2 -2
  409. package/dist/styles/utilities.css +2 -2
  410. package/dist/styles.css +2 -2
  411. package/dist/svelte/Button.svelte +19 -0
  412. package/dist/svelte/Button.svelte.d.ts +5 -0
  413. package/dist/svelte/Switch.svelte +20 -0
  414. package/dist/svelte/Switch.svelte.d.ts +5 -0
  415. package/dist/svelte/Tab.svelte +11 -0
  416. package/dist/svelte/Tab.svelte.d.ts +5 -0
  417. package/dist/svelte/Tabs.svelte +20 -0
  418. package/dist/svelte/Tabs.svelte.d.ts +5 -0
  419. package/dist/svelte/index.d.ts +6 -0
  420. package/dist/svelte/index.js +11 -0
  421. package/dist/svelte/runtime.d.ts +60 -0
  422. package/dist/svelte/runtime.js +76 -0
  423. package/dist/themes/autumn.css +2 -2
  424. package/dist/themes/baseline.css +2 -2
  425. package/dist/themes/brownbeige.css +2 -2
  426. package/dist/themes/browngreen.css +2 -2
  427. package/dist/themes/desert.css +2 -2
  428. package/dist/themes/forest.css +2 -2
  429. package/dist/themes/highcontrast.css +2 -2
  430. package/dist/themes/legacy.css +2 -2
  431. package/dist/themes/material.css +2 -2
  432. package/dist/themes/ocean.css +2 -2
  433. package/dist/themes/sageivory.css +2 -2
  434. package/dist/themes/spring.css +2 -2
  435. package/dist/themes/summer.css +2 -2
  436. package/dist/themes/sunset.css +2 -2
  437. package/dist/themes/tealcaramel.css +2 -2
  438. package/dist/themes/winter.css +2 -2
  439. package/dist/vue/create.d.ts +53 -0
  440. package/dist/vue/create.js +86 -0
  441. package/dist/vue/index.d.ts +19 -0
  442. package/dist/vue/index.js +12 -0
  443. package/package.json +77 -3
  444. package/src/styles/abstract/_mixins.scss +15 -1
  445. package/src/styles/abstract/_variables.scss +1 -3
  446. package/src/styles/abstract/chips/_assist.scss +7 -0
  447. package/src/styles/abstract/chips/_filter.scss +7 -0
  448. package/src/styles/abstract/chips/_input.scss +7 -0
  449. package/src/styles/abstract/chips/_suggestion.scss +7 -0
  450. package/src/styles/components/_badge.scss +1 -1
  451. package/src/styles/components/_bottom-app-bar.scss +5 -5
  452. package/src/styles/components/_bottom-sheet.scss +17 -17
  453. package/src/styles/components/_button-group.scss +2 -2
  454. package/src/styles/components/_button.scss +12 -12
  455. package/src/styles/components/_card.scss +11 -11
  456. package/src/styles/components/_checkbox.scss +103 -108
  457. package/src/styles/components/_chips.scss +179 -513
  458. package/src/styles/components/_datepicker.scss +105 -353
  459. package/src/styles/components/_dialog.scss +36 -36
  460. package/src/styles/components/_drawer.scss +2 -1
  461. package/src/styles/components/_extended-fab.scss +7 -7
  462. package/src/styles/components/_fab.scss +4 -4
  463. package/src/styles/components/_icon-button.scss +7 -7
  464. package/src/styles/components/_list.scss +84 -760
  465. package/src/styles/components/_menu.scss +25 -25
  466. package/src/styles/components/_progress.scss +1 -1
  467. package/src/styles/components/_radios.scss +71 -61
  468. package/src/styles/components/_segmented-button.scss +6 -6
  469. package/src/styles/components/_select.scss +22 -22
  470. package/src/styles/components/_side-sheet.scss +20 -20
  471. package/src/styles/components/_slider.scss +166 -75
  472. package/src/styles/components/_snackbar.scss +7 -7
  473. package/src/styles/components/_split-button.scss +1 -1
  474. package/src/styles/components/_switch.scss +102 -107
  475. package/src/styles/components/_tabs.scss +99 -59
  476. package/src/styles/components/_textfield.scss +153 -153
  477. package/src/styles/components/_timepicker.scss +60 -44
  478. package/src/styles/components/_top-app-bar.scss +20 -20
  479. package/src/styles/main.scss +0 -1
  480. package/src/styles/themes/_autumn.scss +10 -0
  481. package/src/styles/themes/_baseline.scss +12 -0
  482. package/src/styles/themes/_bluekhaki.scss +10 -0
  483. package/src/styles/themes/_brownbeige.scss +10 -0
  484. package/src/styles/themes/_browngreen.scss +10 -0
  485. package/src/styles/themes/_desert.scss +10 -0
  486. package/src/styles/themes/_forest.scss +10 -0
  487. package/src/styles/themes/_greenbeige.scss +10 -0
  488. package/src/styles/themes/_highcontrast.scss +10 -0
  489. package/src/styles/themes/_legacy.scss +10 -0
  490. package/src/styles/themes/_material.scss +10 -0
  491. package/src/styles/themes/_ocean.scss +10 -0
  492. package/src/styles/themes/_sageivory.scss +10 -0
  493. package/src/styles/themes/_spring.scss +10 -0
  494. package/src/styles/themes/_summer.scss +10 -0
  495. package/src/styles/themes/_sunset.scss +10 -0
  496. package/src/styles/themes/_tealcaramel.scss +10 -0
  497. package/src/styles/themes/_winter.scss +10 -0
  498. package/src/styles/utilities/_ripple.scss +2 -1
  499. package/dist/components/chips/chip/api.d.ts +0 -23
  500. package/dist/components/chips/chip/api.js +0 -187
  501. package/dist/components/chips/chip/config.d.ts +0 -67
  502. package/dist/components/chips/chip/config.js +0 -53
  503. package/dist/components/chips/chip/types.d.ts +0 -11
  504. package/dist/components/chips/features/label.d.ts +0 -8
  505. package/dist/components/chips/features/label.js +0 -63
  506. package/dist/components/navigation/api.d.ts +0 -8
  507. package/dist/components/navigation/api.js +0 -117
  508. package/dist/components/navigation/config.d.ts +0 -45
  509. package/dist/components/navigation/config.js +0 -39
  510. package/dist/components/navigation/constants.d.ts +0 -137
  511. package/dist/components/navigation/constants.js +0 -65
  512. package/dist/components/navigation/features/controller.d.ts +0 -28
  513. package/dist/components/navigation/features/controller.js +0 -173
  514. package/dist/components/navigation/features/items.d.ts +0 -32
  515. package/dist/components/navigation/features/items.js +0 -236
  516. package/dist/components/navigation/index.d.ts +0 -3
  517. package/dist/components/navigation/index.js +0 -2
  518. package/dist/components/navigation/nav-item.d.ts +0 -30
  519. package/dist/components/navigation/nav-item.js +0 -119
  520. package/dist/components/navigation/navigation.d.ts +0 -8
  521. package/dist/components/navigation/navigation.js +0 -52
  522. package/dist/components/navigation/system/core.d.ts +0 -72
  523. package/dist/components/navigation/system/core.js +0 -148
  524. package/dist/components/navigation/system/events.d.ts +0 -35
  525. package/dist/components/navigation/system/events.js +0 -126
  526. package/dist/components/navigation/system/index.d.ts +0 -10
  527. package/dist/components/navigation/system/index.js +0 -92
  528. package/dist/components/navigation/system/mobile.d.ts +0 -52
  529. package/dist/components/navigation/system/mobile.js +0 -140
  530. package/dist/components/navigation/system/state.d.ts +0 -22
  531. package/dist/components/navigation/system/state.js +0 -44
  532. package/dist/components/navigation/system/types.d.ts +0 -337
  533. package/dist/components/navigation/types.d.ts +0 -225
  534. package/dist/components/navigation/types.js +0 -33
  535. package/dist/components/tabs/tab-api.d.ts +0 -49
  536. package/dist/components/tabs/tab-api.js +0 -139
  537. package/dist/core/state/disabled.d.ts +0 -32
  538. package/dist/core/state/disabled.js +0 -26
  539. package/dist/core/state/lifecycle.d.ts +0 -56
  540. package/dist/core/state/lifecycle.js +0 -51
  541. package/dist/styles/navigation.css +0 -2
  542. package/dist/styles/navigation.js +0 -2
  543. package/src/styles/components/_navigation-mobile.scss +0 -244
  544. package/src/styles/components/_navigation-system.scss +0 -153
  545. package/src/styles/components/_navigation.scss +0 -407
  546. /package/dist/{components/chips/chip/types.js → elements/css/badge.d.ts} +0 -0
  547. /package/dist/{components/navigation/system/types.js → elements/css/button.d.ts} +0 -0
  548. /package/dist/{styles/navigation.d.ts → elements/css/index.d.ts} +0 -0
package/README.md CHANGED
@@ -134,6 +134,35 @@ const button = createButton({
134
134
 
135
135
  Button progress and card actions load on demand; enable code splitting in your build to keep them out of the initial chunk.
136
136
 
137
+ ## Web components and frameworks (experimental)
138
+
139
+ From `0.10.0-next.1` (`npm install mtrl@next`), components also ship as custom elements, with thin adapters for React, Vue, Svelte and Solid. Button, switch and tabs are available so far; more follow through 0.10.x. The API may still change.
140
+
141
+ ```html
142
+ <script type="module">
143
+ import 'mtrl/elements/css'; // the elements' styles
144
+ import { defineAll } from 'mtrl/elements';
145
+ defineAll(); // registers <m-button>, <m-switch>, <m-tabs>, <m-tab>
146
+ </script>
147
+
148
+ <m-switch name="wifi" checked>Wi-Fi</m-switch>
149
+ <m-tabs value="songs">
150
+ <m-tab value="songs">Songs</m-tab>
151
+ <m-tab value="albums">Albums</m-tab>
152
+ </m-tabs>
153
+ ```
154
+
155
+ The page still loads mtrl's base styles and a theme (see [Styles](#styles)); the elements render in shadow DOM and pick up the theme's tokens. Attributes are defaults and properties the live state, as on native controls; form controls take part in forms, reset and validation.
156
+
157
+ | Framework | Import | Two-way binding |
158
+ |-----------|--------|-----------------|
159
+ | React 18 and 19 | `import { Switch } from 'mtrl/react'` | `checked` + `onChange`, or `defaultChecked` |
160
+ | Vue 3 | `import { MSwitch } from 'mtrl/vue'` | `v-model` |
161
+ | Svelte 5 | `import { Switch } from 'mtrl/svelte'` | `bind:checked` |
162
+ | Solid | `import { Switch } from 'mtrl/solid'` | `checked` + `onChange` |
163
+
164
+ Each framework is an optional peer dependency; mtrl installs none of them. All adapters render on the server and hydrate.
165
+
137
166
  ## Building your own components
138
167
 
139
168
  Components are composed from small features with `pipe`. The same building blocks are public:
@@ -198,7 +227,7 @@ The policy sees every string, the library's own icons included; a `TrustedHTML`
198
227
  - `title-large` uses weight 400, as M3 specifies.
199
228
  - The slider draws with DOM and CSS; styles for `.mtrl-slider-canvas` no longer apply.
200
229
 
201
- The full list, with every renamed property, is in [changelog.txt](changelog.txt).
230
+ The full list, with every renamed property, is in the [0.8.0 changelog](CHANGELOG.md#080---2026-09-15).
202
231
 
203
232
  ## Browser support
204
233
 
package/dist/README.md CHANGED
@@ -134,6 +134,35 @@ const button = createButton({
134
134
 
135
135
  Button progress and card actions load on demand; enable code splitting in your build to keep them out of the initial chunk.
136
136
 
137
+ ## Web components and frameworks (experimental)
138
+
139
+ From `0.10.0-next.1` (`npm install mtrl@next`), components also ship as custom elements, with thin adapters for React, Vue, Svelte and Solid. Button, switch and tabs are available so far; more follow through 0.10.x. The API may still change.
140
+
141
+ ```html
142
+ <script type="module">
143
+ import 'mtrl/elements/css'; // the elements' styles
144
+ import { defineAll } from 'mtrl/elements';
145
+ defineAll(); // registers <m-button>, <m-switch>, <m-tabs>, <m-tab>
146
+ </script>
147
+
148
+ <m-switch name="wifi" checked>Wi-Fi</m-switch>
149
+ <m-tabs value="songs">
150
+ <m-tab value="songs">Songs</m-tab>
151
+ <m-tab value="albums">Albums</m-tab>
152
+ </m-tabs>
153
+ ```
154
+
155
+ The page still loads mtrl's base styles and a theme (see [Styles](#styles)); the elements render in shadow DOM and pick up the theme's tokens. Attributes are defaults and properties the live state, as on native controls; form controls take part in forms, reset and validation.
156
+
157
+ | Framework | Import | Two-way binding |
158
+ |-----------|--------|-----------------|
159
+ | React 18 and 19 | `import { Switch } from 'mtrl/react'` | `checked` + `onChange`, or `defaultChecked` |
160
+ | Vue 3 | `import { MSwitch } from 'mtrl/vue'` | `v-model` |
161
+ | Svelte 5 | `import { Switch } from 'mtrl/svelte'` | `bind:checked` |
162
+ | Solid | `import { Switch } from 'mtrl/solid'` | `checked` + `onChange` |
163
+
164
+ Each framework is an optional peer dependency; mtrl installs none of them. All adapters render on the server and hydrate.
165
+
137
166
  ## Building your own components
138
167
 
139
168
  Components are composed from small features with `pipe`. The same building blocks are public:
@@ -198,7 +227,7 @@ The policy sees every string, the library's own icons included; a `TrustedHTML`
198
227
  - `title-large` uses weight 400, as M3 specifies.
199
228
  - The slider draws with DOM and CSS; styles for `.mtrl-slider-canvas` no longer apply.
200
229
 
201
- The full list, with every renamed property, is in [changelog.txt](changelog.txt).
230
+ The full list, with every renamed property, is in the [0.8.0 changelog](CHANGELOG.md#080---2026-09-15).
202
231
 
203
232
  ## Browser support
204
233
 
@@ -1,37 +1,31 @@
1
- import { BadgeComponent } from "./types.js";
1
+ import { BadgeComponent, BadgeFeatureHost, BadgeVisibility } from "./types.js";
2
2
  /**
3
3
  * API configuration options for badge component
4
4
  * @category Components
5
5
  * @internal
6
6
  */
7
7
  interface ApiOptions {
8
- visibility: {
9
- show: () => void;
10
- hide: () => void;
11
- toggle: (visible?: boolean) => void;
12
- isVisible: () => boolean;
13
- };
8
+ visibility: BadgeVisibility;
14
9
  lifecycle: {
15
10
  destroy: () => void;
16
11
  };
17
12
  }
18
13
  /**
19
- * Component with required elements and methods for API enhancement
14
+ * What withAPI needs from the component it wraps: everything a badge feature
15
+ * needs, plus the events withEvents installs.
16
+ *
17
+ * This was a hand-written interface that described `config` as three optional
18
+ * properties. All-optional made it a weak type, so the real component -- whose
19
+ * config is the badge's own -- had "no properties in common" with it, and
20
+ * `addClass` was declared as returning the interface itself, which is the
21
+ * narrowing #120 removed from the source.
22
+ *
20
23
  * @category Components
21
24
  * @internal
22
25
  */
23
- interface ComponentWithElements {
24
- element: HTMLElement;
25
- wrapper?: HTMLElement;
26
- config: {
27
- max?: number;
28
- label?: string | number;
29
- variant?: string;
30
- };
31
- getClass: (name: string) => string;
32
- addClass: (...classes: string[]) => ComponentWithElements;
33
- on: (event: string, handler: Function) => ComponentWithElements;
34
- off: (event: string, handler: Function) => ComponentWithElements;
26
+ interface ComponentWithElements extends BadgeFeatureHost {
27
+ on(event: string, handler: Function): this;
28
+ off(event: string, handler: Function): this;
35
29
  }
36
30
  /**
37
31
  * Enhances a badge component with API methods.
@@ -1,3 +1,4 @@
1
+ import { isBadgeOverflow, isEmptyBadgeLabel } from "./config.js";
1
2
  import { formatBadgeLabel } from "./config.js";
2
3
  const VARIANT_SMALL = "small";
3
4
  const ALL_COLORS = [
@@ -25,12 +26,10 @@ export const withAPI = ({ visibility, lifecycle }) => (component) => {
25
26
  const formattedLabel = formatBadgeLabel(label, component.config.max);
26
27
  component.element.textContent = formattedLabel;
27
28
  component.element.classList.remove(`${component.getClass("badge")}--overflow`);
28
- if (typeof label === "number" &&
29
- component.config.max !== undefined &&
30
- label > component.config.max) {
29
+ if (isBadgeOverflow(label, component.config.max)) {
31
30
  component.element.classList.add(`${component.getClass("badge")}--overflow`);
32
31
  }
33
- if (formattedLabel === "" || formattedLabel === "0") {
32
+ if (isEmptyBadgeLabel(formattedLabel)) {
34
33
  badgeComponent.hide();
35
34
  }
36
35
  else {
@@ -109,7 +108,7 @@ export const withAPI = ({ visibility, lifecycle }) => (component) => {
109
108
  component.wrapper.removeChild(component.element);
110
109
  }
111
110
  const wrapper = document.createElement("div");
112
- wrapper.classList.add(component.getClass("badge-wrapper"));
111
+ wrapper.classList.add(component.getClass("badge__wrapper"));
113
112
  wrapper.style.position = "relative";
114
113
  const parent = target.parentNode;
115
114
  if (parent) {