mtrl 0.8.0-next.35 → 0.8.0-next.37

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 (808) hide show
  1. package/README.md +87 -1
  2. package/dist/README.md +87 -1
  3. package/dist/components/badge/api.d.ts +1 -1
  4. package/dist/components/badge/api.js +162 -0
  5. package/dist/components/badge/badge.d.ts +1 -1
  6. package/dist/components/badge/badge.js +18 -0
  7. package/dist/components/badge/config.d.ts +1 -1
  8. package/dist/components/badge/config.js +63 -0
  9. package/dist/components/badge/constants.js +20 -0
  10. package/dist/components/badge/features.d.ts +1 -1
  11. package/dist/components/badge/features.js +95 -0
  12. package/dist/components/badge/index.d.ts +2 -2
  13. package/dist/components/badge/index.js +1 -0
  14. package/dist/components/badge/types.js +1 -0
  15. package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +1 -1
  16. package/dist/components/bottom-app-bar/bottom-app-bar.js +91 -0
  17. package/dist/components/bottom-app-bar/config.d.ts +1 -1
  18. package/dist/components/bottom-app-bar/config.js +10 -0
  19. package/dist/components/bottom-app-bar/constants.js +13 -0
  20. package/dist/components/bottom-app-bar/index.d.ts +2 -2
  21. package/dist/components/bottom-app-bar/index.js +3 -0
  22. package/dist/components/bottom-app-bar/types.d.ts +1 -1
  23. package/dist/components/bottom-app-bar/types.js +1 -0
  24. package/dist/components/bottom-sheet/api.d.ts +1 -1
  25. package/dist/components/bottom-sheet/api.js +56 -0
  26. package/dist/components/bottom-sheet/bottom-sheet.d.ts +1 -1
  27. package/dist/components/bottom-sheet/bottom-sheet.js +18 -0
  28. package/dist/components/bottom-sheet/config.d.ts +1 -1
  29. package/dist/components/bottom-sheet/config.js +19 -0
  30. package/dist/components/bottom-sheet/constants.js +35 -0
  31. package/dist/components/bottom-sheet/features/drag.d.ts +1 -1
  32. package/dist/components/bottom-sheet/features/drag.js +71 -0
  33. package/dist/components/bottom-sheet/features/index.d.ts +3 -3
  34. package/dist/components/bottom-sheet/features/index.js +3 -0
  35. package/dist/components/bottom-sheet/features/state.d.ts +1 -1
  36. package/dist/components/bottom-sheet/features/state.js +82 -0
  37. package/dist/components/bottom-sheet/features/structure.d.ts +1 -1
  38. package/dist/components/bottom-sheet/features/structure.js +88 -0
  39. package/dist/components/bottom-sheet/index.d.ts +2 -2
  40. package/dist/components/bottom-sheet/index.js +1 -0
  41. package/dist/components/bottom-sheet/types.d.ts +1 -1
  42. package/dist/components/bottom-sheet/types.js +1 -0
  43. package/dist/components/button/api.d.ts +2 -2
  44. package/dist/components/button/api.js +265 -0
  45. package/dist/components/button/button.d.ts +1 -1
  46. package/dist/components/button/button.js +25 -0
  47. package/dist/components/button/config.d.ts +1 -1
  48. package/dist/components/button/config.js +51 -0
  49. package/dist/components/button/constants.js +35 -0
  50. package/dist/components/button/features/progress.d.ts +2 -2
  51. package/dist/components/button/features/progress.js +163 -0
  52. package/dist/components/button/features/toggle.d.ts +1 -1
  53. package/dist/components/button/features/toggle.js +33 -0
  54. package/dist/components/button/index.d.ts +3 -3
  55. package/dist/components/button/index.js +1 -0
  56. package/dist/components/button/types.d.ts +3 -3
  57. package/dist/components/button/types.js +1 -0
  58. package/dist/components/button-group/button-group.d.ts +1 -1
  59. package/dist/components/button-group/button-group.js +350 -0
  60. package/dist/components/button-group/config.d.ts +9 -9
  61. package/dist/components/button-group/config.js +123 -0
  62. package/dist/components/button-group/constants.js +93 -0
  63. package/dist/components/button-group/index.d.ts +4 -4
  64. package/dist/components/button-group/index.js +3 -0
  65. package/dist/components/button-group/types.d.ts +1 -1
  66. package/dist/components/button-group/types.js +1 -0
  67. package/dist/components/card/api.d.ts +1 -1
  68. package/dist/components/card/api.js +74 -0
  69. package/dist/components/card/card.d.ts +1 -1
  70. package/dist/components/card/card.js +20 -0
  71. package/dist/components/card/config.d.ts +1 -1
  72. package/dist/components/card/config.js +161 -0
  73. package/dist/components/card/constants.js +55 -0
  74. package/dist/components/card/content.d.ts +1 -1
  75. package/dist/components/card/content.js +195 -0
  76. package/dist/components/card/features.d.ts +1 -1
  77. package/dist/components/card/features.js +225 -0
  78. package/dist/components/card/index.d.ts +5 -5
  79. package/dist/components/card/index.js +4 -0
  80. package/dist/components/card/types.js +1 -0
  81. package/dist/components/carousel/api.d.ts +1 -1
  82. package/dist/components/carousel/api.js +46 -0
  83. package/dist/components/carousel/arrangement.js +61 -0
  84. package/dist/components/carousel/carousel.d.ts +1 -1
  85. package/dist/components/carousel/carousel.js +11 -0
  86. package/dist/components/carousel/config.d.ts +1 -1
  87. package/dist/components/carousel/config.js +40 -0
  88. package/dist/components/carousel/constants.js +23 -0
  89. package/dist/components/carousel/features/index.d.ts +2 -2
  90. package/dist/components/carousel/features/index.js +2 -0
  91. package/dist/components/carousel/features/scroll.d.ts +2 -2
  92. package/dist/components/carousel/features/scroll.js +345 -0
  93. package/dist/components/carousel/features/slides.d.ts +1 -1
  94. package/dist/components/carousel/features/slides.js +127 -0
  95. package/dist/components/carousel/index.d.ts +3 -3
  96. package/dist/components/carousel/index.js +2 -0
  97. package/dist/components/carousel/keylines.js +292 -0
  98. package/dist/components/carousel/strategy.d.ts +1 -1
  99. package/dist/components/carousel/strategy.js +207 -0
  100. package/dist/components/carousel/types.js +1 -0
  101. package/dist/components/checkbox/api.d.ts +1 -1
  102. package/dist/components/checkbox/api.js +82 -0
  103. package/dist/components/checkbox/checkbox.d.ts +1 -1
  104. package/dist/components/checkbox/checkbox.js +29 -0
  105. package/dist/components/checkbox/config.d.ts +1 -1
  106. package/dist/components/checkbox/config.js +44 -0
  107. package/dist/components/checkbox/constants.js +20 -0
  108. package/dist/components/checkbox/index.d.ts +3 -3
  109. package/dist/components/checkbox/index.js +2 -0
  110. package/dist/components/checkbox/types.js +1 -0
  111. package/dist/components/chips/api.d.ts +1 -1
  112. package/dist/components/chips/api.js +153 -0
  113. package/dist/components/chips/chip/api.d.ts +1 -1
  114. package/dist/components/chips/chip/api.js +186 -0
  115. package/dist/components/chips/chip/chip.d.ts +1 -1
  116. package/dist/components/chips/chip/chip.js +78 -0
  117. package/dist/components/chips/chip/config.d.ts +1 -1
  118. package/dist/components/chips/chip/config.js +53 -0
  119. package/dist/components/chips/chip/constants.js +18 -0
  120. package/dist/components/chips/chip/index.d.ts +2 -2
  121. package/dist/components/chips/chip/index.js +2 -0
  122. package/dist/components/chips/chip/types.d.ts +1 -1
  123. package/dist/components/chips/chip/types.js +1 -0
  124. package/dist/components/chips/chips.d.ts +1 -1
  125. package/dist/components/chips/chips.js +32 -0
  126. package/dist/components/chips/config.d.ts +1 -1
  127. package/dist/components/chips/config.js +82 -0
  128. package/dist/components/chips/constants.js +20 -0
  129. package/dist/components/chips/features/chip-items.d.ts +1 -1
  130. package/dist/components/chips/features/chip-items.js +17 -0
  131. package/dist/components/chips/features/container.d.ts +1 -1
  132. package/dist/components/chips/features/container.js +41 -0
  133. package/dist/components/chips/features/controller.d.ts +1 -1
  134. package/dist/components/chips/features/controller.js +309 -0
  135. package/dist/components/chips/features/dom.d.ts +2 -2
  136. package/dist/components/chips/features/dom.js +27 -0
  137. package/dist/components/chips/features/index.d.ts +5 -5
  138. package/dist/components/chips/features/index.js +5 -0
  139. package/dist/components/chips/features/label.d.ts +1 -1
  140. package/dist/components/chips/features/label.js +63 -0
  141. package/dist/components/chips/index.d.ts +3 -3
  142. package/dist/components/chips/index.js +2 -0
  143. package/dist/components/chips/schema.d.ts +1 -1
  144. package/dist/components/chips/schema.js +46 -0
  145. package/dist/components/chips/types.js +11 -0
  146. package/dist/components/datepicker/api.d.ts +1 -1
  147. package/dist/components/datepicker/api.js +180 -0
  148. package/dist/components/datepicker/config.d.ts +1 -1
  149. package/dist/components/datepicker/config.js +89 -0
  150. package/dist/components/datepicker/constants.js +50 -0
  151. package/dist/components/datepicker/datepicker.d.ts +1 -1
  152. package/dist/components/datepicker/datepicker.js +238 -0
  153. package/dist/components/datepicker/index.d.ts +3 -3
  154. package/dist/components/datepicker/index.js +2 -0
  155. package/dist/components/datepicker/render.js +290 -0
  156. package/dist/components/datepicker/types.js +18 -0
  157. package/dist/components/datepicker/utils.d.ts +1 -1
  158. package/dist/components/datepicker/utils.js +156 -0
  159. package/dist/components/dialog/api.d.ts +1 -1
  160. package/dist/components/dialog/api.js +106 -0
  161. package/dist/components/dialog/config.d.ts +1 -1
  162. package/dist/components/dialog/config.js +84 -0
  163. package/dist/components/dialog/constants.js +51 -0
  164. package/dist/components/dialog/dialog.d.ts +1 -1
  165. package/dist/components/dialog/dialog.js +25 -0
  166. package/dist/components/dialog/features.d.ts +1 -1
  167. package/dist/components/dialog/features.js +619 -0
  168. package/dist/components/dialog/index.d.ts +2 -2
  169. package/dist/components/dialog/index.js +1 -0
  170. package/dist/components/dialog/types.js +1 -0
  171. package/dist/components/divider/config.js +9 -0
  172. package/dist/components/divider/constants.js +18 -0
  173. package/dist/components/divider/divider.d.ts +2 -2
  174. package/dist/components/divider/divider.js +11 -0
  175. package/dist/components/divider/features.d.ts +3 -3
  176. package/dist/components/divider/features.js +141 -0
  177. package/dist/components/divider/index.d.ts +3 -3
  178. package/dist/components/divider/index.js +2 -0
  179. package/dist/components/divider/types.d.ts +1 -1
  180. package/dist/components/divider/types.js +1 -0
  181. package/dist/components/drawer/api.d.ts +1 -1
  182. package/dist/components/drawer/api.js +73 -0
  183. package/dist/components/drawer/config.d.ts +2 -2
  184. package/dist/components/drawer/config.js +65 -0
  185. package/dist/components/drawer/constants.js +45 -0
  186. package/dist/components/drawer/drawer.d.ts +1 -1
  187. package/dist/components/drawer/drawer.js +42 -0
  188. package/dist/components/drawer/features/headline.d.ts +1 -1
  189. package/dist/components/drawer/features/headline.js +33 -0
  190. package/dist/components/drawer/features/index.d.ts +3 -3
  191. package/dist/components/drawer/features/index.js +3 -0
  192. package/dist/components/drawer/features/items.d.ts +1 -1
  193. package/dist/components/drawer/features/items.js +225 -0
  194. package/dist/components/drawer/features/state.d.ts +1 -1
  195. package/dist/components/drawer/features/state.js +95 -0
  196. package/dist/components/drawer/index.d.ts +2 -2
  197. package/dist/components/drawer/index.js +1 -0
  198. package/dist/components/drawer/types.d.ts +1 -1
  199. package/dist/components/drawer/types.js +1 -0
  200. package/dist/components/extended-fab/api.d.ts +1 -1
  201. package/dist/components/extended-fab/api.js +77 -0
  202. package/dist/components/extended-fab/config.d.ts +1 -1
  203. package/dist/components/extended-fab/config.js +64 -0
  204. package/dist/components/extended-fab/constants.js +39 -0
  205. package/dist/components/extended-fab/extended-fab.d.ts +1 -1
  206. package/dist/components/extended-fab/extended-fab.js +54 -0
  207. package/dist/components/extended-fab/index.d.ts +2 -2
  208. package/dist/components/extended-fab/index.js +1 -0
  209. package/dist/components/extended-fab/types.js +1 -0
  210. package/dist/components/fab/api.d.ts +1 -1
  211. package/dist/components/fab/api.js +52 -0
  212. package/dist/components/fab/config.d.ts +1 -1
  213. package/dist/components/fab/config.js +53 -0
  214. package/dist/components/fab/constants.js +37 -0
  215. package/dist/components/fab/fab.d.ts +1 -1
  216. package/dist/components/fab/fab.js +17 -0
  217. package/dist/components/fab/index.d.ts +2 -2
  218. package/dist/components/fab/index.js +1 -0
  219. package/dist/components/fab/types.js +1 -0
  220. package/dist/components/icon-button/api.d.ts +1 -1
  221. package/dist/components/icon-button/api.js +204 -0
  222. package/dist/components/icon-button/config.d.ts +1 -1
  223. package/dist/components/icon-button/config.js +91 -0
  224. package/dist/components/icon-button/constants.js +67 -0
  225. package/dist/components/icon-button/features/toggle.d.ts +1 -1
  226. package/dist/components/icon-button/features/toggle.js +131 -0
  227. package/dist/components/icon-button/icon-button.d.ts +1 -1
  228. package/dist/components/icon-button/icon-button.js +30 -0
  229. package/dist/components/icon-button/index.d.ts +4 -4
  230. package/dist/components/icon-button/index.js +2 -0
  231. package/dist/components/icon-button/types.d.ts +2 -2
  232. package/dist/components/icon-button/types.js +1 -0
  233. package/dist/components/index.d.ts +77 -77
  234. package/dist/components/index.js +41 -0
  235. package/dist/components/list/api.js +53 -0
  236. package/dist/components/list/config.d.ts +2 -2
  237. package/dist/components/list/config.js +80 -0
  238. package/dist/components/list/constants.js +35 -0
  239. package/dist/components/list/features/index.d.ts +2 -2
  240. package/dist/components/list/features/index.js +2 -0
  241. package/dist/components/list/features/renderer.js +120 -0
  242. package/dist/components/list/features/selection.js +160 -0
  243. package/dist/components/list/index.d.ts +3 -3
  244. package/dist/components/list/index.js +2 -0
  245. package/dist/components/list/list.js +19 -0
  246. package/dist/components/list/types.js +1 -0
  247. package/dist/components/loading-indicator/api.d.ts +1 -1
  248. package/dist/components/loading-indicator/api.js +122 -0
  249. package/dist/components/loading-indicator/config.d.ts +1 -1
  250. package/dist/components/loading-indicator/config.js +25 -0
  251. package/dist/components/loading-indicator/constants.d.ts +1 -1
  252. package/dist/components/loading-indicator/constants.js +32 -0
  253. package/dist/components/loading-indicator/features/motion.js +47 -0
  254. package/dist/components/loading-indicator/features/renderer.d.ts +2 -2
  255. package/dist/components/loading-indicator/features/renderer.js +115 -0
  256. package/dist/components/loading-indicator/index.d.ts +3 -3
  257. package/dist/components/loading-indicator/index.js +2 -0
  258. package/dist/components/loading-indicator/loading-indicator.d.ts +1 -1
  259. package/dist/components/loading-indicator/loading-indicator.js +17 -0
  260. package/dist/components/loading-indicator/types.js +1 -0
  261. package/dist/components/menu/api.d.ts +1 -1
  262. package/dist/components/menu/api.js +79 -0
  263. package/dist/components/menu/config.d.ts +1 -1
  264. package/dist/components/menu/config.js +82 -0
  265. package/dist/components/menu/constants.js +61 -0
  266. package/dist/components/menu/features/controller.d.ts +1 -1
  267. package/dist/components/menu/features/controller.js +542 -0
  268. package/dist/components/menu/features/index.d.ts +5 -5
  269. package/dist/components/menu/features/index.js +6 -0
  270. package/dist/components/menu/features/keyboard.d.ts +3 -1
  271. package/dist/components/menu/features/keyboard.js +296 -0
  272. package/dist/components/menu/features/opener.d.ts +1 -1
  273. package/dist/components/menu/features/opener.js +300 -0
  274. package/dist/components/menu/features/position.d.ts +1 -1
  275. package/dist/components/menu/features/position.js +274 -0
  276. package/dist/components/menu/features/registry.js +13 -0
  277. package/dist/components/menu/features/submenu.d.ts +1 -1
  278. package/dist/components/menu/features/submenu.js +386 -0
  279. package/dist/components/menu/features/tasks.d.ts +9 -0
  280. package/dist/components/menu/features/tasks.js +47 -0
  281. package/dist/components/menu/index.d.ts +3 -3
  282. package/dist/components/menu/index.js +2 -0
  283. package/dist/components/menu/menu.d.ts +1 -1
  284. package/dist/components/menu/menu.js +25 -0
  285. package/dist/components/menu/types.js +14 -0
  286. package/dist/components/navigation/api.d.ts +1 -1
  287. package/dist/components/navigation/api.js +117 -0
  288. package/dist/components/navigation/config.d.ts +1 -1
  289. package/dist/components/navigation/config.js +39 -0
  290. package/dist/components/navigation/constants.js +65 -0
  291. package/dist/components/navigation/features/controller.d.ts +1 -1
  292. package/dist/components/navigation/features/controller.js +173 -0
  293. package/dist/components/navigation/features/items.d.ts +2 -2
  294. package/dist/components/navigation/features/items.js +236 -0
  295. package/dist/components/navigation/index.d.ts +3 -3
  296. package/dist/components/navigation/index.js +2 -0
  297. package/dist/components/navigation/nav-item.d.ts +1 -1
  298. package/dist/components/navigation/nav-item.js +118 -0
  299. package/dist/components/navigation/navigation.d.ts +1 -1
  300. package/dist/components/navigation/navigation.js +52 -0
  301. package/dist/components/navigation/system/core.d.ts +1 -1
  302. package/dist/components/navigation/system/core.js +148 -0
  303. package/dist/components/navigation/system/events.d.ts +1 -1
  304. package/dist/components/navigation/system/events.js +126 -0
  305. package/dist/components/navigation/system/index.d.ts +2 -2
  306. package/dist/components/navigation/system/index.js +92 -0
  307. package/dist/components/navigation/system/mobile.d.ts +1 -1
  308. package/dist/components/navigation/system/mobile.js +139 -0
  309. package/dist/components/navigation/system/state.d.ts +1 -1
  310. package/dist/components/navigation/system/state.js +44 -0
  311. package/dist/components/navigation/system/types.js +1 -0
  312. package/dist/components/navigation/types.js +33 -0
  313. package/dist/components/progress/api.d.ts +1 -1
  314. package/dist/components/progress/api.js +205 -0
  315. package/dist/components/progress/config.d.ts +1 -1
  316. package/dist/components/progress/config.js +162 -0
  317. package/dist/components/progress/constants.js +110 -0
  318. package/dist/components/progress/features/canvas.d.ts +1 -1
  319. package/dist/components/progress/features/canvas.js +300 -0
  320. package/dist/components/progress/features/circular.d.ts +2 -2
  321. package/dist/components/progress/features/circular.js +71 -0
  322. package/dist/components/progress/features/colors.js +40 -0
  323. package/dist/components/progress/features/index.d.ts +4 -4
  324. package/dist/components/progress/features/index.js +4 -0
  325. package/dist/components/progress/features/linear.d.ts +2 -2
  326. package/dist/components/progress/features/linear.js +104 -0
  327. package/dist/components/progress/features/motion.js +105 -0
  328. package/dist/components/progress/features/resize-observer.js +40 -0
  329. package/dist/components/progress/features/state.d.ts +1 -1
  330. package/dist/components/progress/features/state.js +37 -0
  331. package/dist/components/progress/index.d.ts +2 -2
  332. package/dist/components/progress/index.js +1 -0
  333. package/dist/components/progress/progress.d.ts +1 -1
  334. package/dist/components/progress/progress.js +21 -0
  335. package/dist/components/progress/types.js +1 -0
  336. package/dist/components/radios/api.d.ts +1 -1
  337. package/dist/components/radios/api.js +73 -0
  338. package/dist/components/radios/config.d.ts +1 -1
  339. package/dist/components/radios/config.js +28 -0
  340. package/dist/components/radios/constants.js +53 -0
  341. package/dist/components/radios/index.d.ts +3 -3
  342. package/dist/components/radios/index.js +2 -0
  343. package/dist/components/radios/radio.d.ts +1 -1
  344. package/dist/components/radios/radio.js +186 -0
  345. package/dist/components/radios/radios.d.ts +1 -1
  346. package/dist/components/radios/radios.js +21 -0
  347. package/dist/components/radios/types.js +1 -0
  348. package/dist/components/search/api.d.ts +1 -1
  349. package/dist/components/search/api.js +110 -0
  350. package/dist/components/search/config.d.ts +1 -1
  351. package/dist/components/search/config.js +66 -0
  352. package/dist/components/search/constants.js +84 -0
  353. package/dist/components/search/features/index.d.ts +4 -4
  354. package/dist/components/search/features/index.js +4 -0
  355. package/dist/components/search/features/input.d.ts +1 -1
  356. package/dist/components/search/features/input.js +245 -0
  357. package/dist/components/search/features/states.d.ts +1 -1
  358. package/dist/components/search/features/states.js +182 -0
  359. package/dist/components/search/features/structure.d.ts +1 -1
  360. package/dist/components/search/features/structure.js +165 -0
  361. package/dist/components/search/features/suggestions.d.ts +1 -1
  362. package/dist/components/search/features/suggestions.js +223 -0
  363. package/dist/components/search/index.d.ts +2 -2
  364. package/dist/components/search/index.js +1 -0
  365. package/dist/components/search/search.d.ts +1 -1
  366. package/dist/components/search/search.js +27 -0
  367. package/dist/components/search/types.js +1 -0
  368. package/dist/components/segmented-button/config.d.ts +1 -1
  369. package/dist/components/segmented-button/config.js +77 -0
  370. package/dist/components/segmented-button/constants.js +40 -0
  371. package/dist/components/segmented-button/index.d.ts +3 -3
  372. package/dist/components/segmented-button/index.js +2 -0
  373. package/dist/components/segmented-button/segment.d.ts +1 -1
  374. package/dist/components/segmented-button/segment.js +94 -0
  375. package/dist/components/segmented-button/segmented-button.d.ts +1 -1
  376. package/dist/components/segmented-button/segmented-button.js +204 -0
  377. package/dist/components/segmented-button/types.js +11 -0
  378. package/dist/components/select/api.d.ts +1 -1
  379. package/dist/components/select/api.js +89 -0
  380. package/dist/components/select/config.d.ts +1 -1
  381. package/dist/components/select/config.js +54 -0
  382. package/dist/components/select/constants.js +53 -0
  383. package/dist/components/select/features.d.ts +1 -1
  384. package/dist/components/select/features.js +245 -0
  385. package/dist/components/select/index.d.ts +3 -3
  386. package/dist/components/select/index.js +2 -0
  387. package/dist/components/select/select.d.ts +1 -1
  388. package/dist/components/select/select.js +26 -0
  389. package/dist/components/select/types.js +4 -0
  390. package/dist/components/sheet/api.d.ts +1 -1
  391. package/dist/components/sheet/api.js +46 -0
  392. package/dist/components/sheet/config.d.ts +1 -1
  393. package/dist/components/sheet/config.js +36 -0
  394. package/dist/components/sheet/constants.js +64 -0
  395. package/dist/components/sheet/features/content.js +25 -0
  396. package/dist/components/sheet/features/gestures.js +126 -0
  397. package/dist/components/sheet/features/index.d.ts +5 -5
  398. package/dist/components/sheet/features/index.js +5 -0
  399. package/dist/components/sheet/features/position.d.ts +1 -1
  400. package/dist/components/sheet/features/position.js +19 -0
  401. package/dist/components/sheet/features/state.js +70 -0
  402. package/dist/components/sheet/features/title.js +45 -0
  403. package/dist/components/sheet/index.d.ts +3 -3
  404. package/dist/components/sheet/index.js +2 -0
  405. package/dist/components/sheet/sheet.d.ts +1 -1
  406. package/dist/components/sheet/sheet.js +25 -0
  407. package/dist/components/sheet/types.js +17 -0
  408. package/dist/components/side-sheet/api.d.ts +1 -1
  409. package/dist/components/side-sheet/api.js +50 -0
  410. package/dist/components/side-sheet/config.d.ts +1 -1
  411. package/dist/components/side-sheet/config.js +20 -0
  412. package/dist/components/side-sheet/constants.js +32 -0
  413. package/dist/components/side-sheet/features/index.d.ts +2 -2
  414. package/dist/components/side-sheet/features/index.js +2 -0
  415. package/dist/components/side-sheet/features/state.d.ts +1 -1
  416. package/dist/components/side-sheet/features/state.js +67 -0
  417. package/dist/components/side-sheet/features/structure.d.ts +1 -1
  418. package/dist/components/side-sheet/features/structure.js +97 -0
  419. package/dist/components/side-sheet/index.d.ts +2 -2
  420. package/dist/components/side-sheet/index.js +1 -0
  421. package/dist/components/side-sheet/side-sheet.d.ts +1 -1
  422. package/dist/components/side-sheet/side-sheet.js +17 -0
  423. package/dist/components/side-sheet/types.d.ts +1 -1
  424. package/dist/components/side-sheet/types.js +1 -0
  425. package/dist/components/slider/api.d.ts +2 -2
  426. package/dist/components/slider/api.js +104 -0
  427. package/dist/components/slider/config.d.ts +1 -1
  428. package/dist/components/slider/config.js +106 -0
  429. package/dist/components/slider/constants.js +74 -0
  430. package/dist/components/slider/features/controller.d.ts +1 -1
  431. package/dist/components/slider/features/controller.js +291 -0
  432. package/dist/components/slider/features/dom.d.ts +2 -2
  433. package/dist/components/slider/features/dom.js +113 -0
  434. package/dist/components/slider/features/handlers.d.ts +1 -1
  435. package/dist/components/slider/features/handlers.js +389 -0
  436. package/dist/components/slider/features/index.d.ts +5 -5
  437. package/dist/components/slider/features/index.js +5 -0
  438. package/dist/components/slider/features/range.d.ts +1 -1
  439. package/dist/components/slider/features/range.js +70 -0
  440. package/dist/components/slider/features/states.d.ts +1 -1
  441. package/dist/components/slider/features/states.js +119 -0
  442. package/dist/components/slider/features/tracks.d.ts +13 -0
  443. package/dist/components/slider/features/tracks.js +174 -0
  444. package/dist/components/slider/index.d.ts +2 -2
  445. package/dist/components/slider/index.js +1 -0
  446. package/dist/components/slider/slider.d.ts +2 -2
  447. package/dist/components/slider/slider.js +27 -0
  448. package/dist/components/slider/types.d.ts +2 -2
  449. package/dist/components/slider/types.js +2 -0
  450. package/dist/components/snackbar/api.d.ts +1 -1
  451. package/dist/components/snackbar/api.js +173 -0
  452. package/dist/components/snackbar/config.d.ts +7 -7
  453. package/dist/components/snackbar/config.js +33 -0
  454. package/dist/components/snackbar/constants.js +60 -0
  455. package/dist/components/snackbar/features.d.ts +1 -1
  456. package/dist/components/snackbar/features.js +125 -0
  457. package/dist/components/snackbar/index.d.ts +4 -4
  458. package/dist/components/snackbar/index.js +3 -0
  459. package/dist/components/snackbar/position.d.ts +1 -1
  460. package/dist/components/snackbar/position.js +24 -0
  461. package/dist/components/snackbar/queue.d.ts +1 -1
  462. package/dist/components/snackbar/queue.js +79 -0
  463. package/dist/components/snackbar/snackbar.d.ts +1 -1
  464. package/dist/components/snackbar/snackbar.js +25 -0
  465. package/dist/components/snackbar/types.d.ts +2 -2
  466. package/dist/components/snackbar/types.js +1 -0
  467. package/dist/components/split-button/api.d.ts +1 -1
  468. package/dist/components/split-button/api.js +122 -0
  469. package/dist/components/split-button/config.d.ts +1 -1
  470. package/dist/components/split-button/config.js +19 -0
  471. package/dist/components/split-button/constants.js +35 -0
  472. package/dist/components/split-button/features/buttons.d.ts +1 -1
  473. package/dist/components/split-button/features/buttons.js +39 -0
  474. package/dist/components/split-button/features/menu.d.ts +1 -1
  475. package/dist/components/split-button/features/menu.js +19 -0
  476. package/dist/components/split-button/index.d.ts +3 -3
  477. package/dist/components/split-button/index.js +2 -0
  478. package/dist/components/split-button/split-button.d.ts +1 -1
  479. package/dist/components/split-button/split-button.js +21 -0
  480. package/dist/components/split-button/types.d.ts +1 -1
  481. package/dist/components/split-button/types.js +1 -0
  482. package/dist/components/switch/api.d.ts +1 -1
  483. package/dist/components/switch/api.js +91 -0
  484. package/dist/components/switch/config.d.ts +1 -1
  485. package/dist/components/switch/config.js +27 -0
  486. package/dist/components/switch/constants.js +39 -0
  487. package/dist/components/switch/features.d.ts +3 -3
  488. package/dist/components/switch/features.js +101 -0
  489. package/dist/components/switch/index.d.ts +5 -5
  490. package/dist/components/switch/index.js +3 -0
  491. package/dist/components/switch/switch.d.ts +1 -1
  492. package/dist/components/switch/switch.js +18 -0
  493. package/dist/components/switch/types.js +4 -0
  494. package/dist/components/tabs/api.d.ts +1 -1
  495. package/dist/components/tabs/api.js +98 -0
  496. package/dist/components/tabs/config.d.ts +2 -2
  497. package/dist/components/tabs/config.js +42 -0
  498. package/dist/components/tabs/constants.js +62 -0
  499. package/dist/components/tabs/features.d.ts +2 -2
  500. package/dist/components/tabs/features.js +179 -0
  501. package/dist/components/tabs/index.d.ts +10 -10
  502. package/dist/components/tabs/index.js +10 -0
  503. package/dist/components/tabs/indicator.d.ts +1 -1
  504. package/dist/components/tabs/indicator.js +134 -0
  505. package/dist/components/tabs/responsive.d.ts +1 -1
  506. package/dist/components/tabs/responsive.js +72 -0
  507. package/dist/components/tabs/scroll-indicators.d.ts +1 -1
  508. package/dist/components/tabs/scroll-indicators.js +83 -0
  509. package/dist/components/tabs/state.d.ts +2 -2
  510. package/dist/components/tabs/state.js +84 -0
  511. package/dist/components/tabs/tab-api.d.ts +2 -2
  512. package/dist/components/tabs/tab-api.js +139 -0
  513. package/dist/components/tabs/tab.d.ts +1 -1
  514. package/dist/components/tabs/tab.js +185 -0
  515. package/dist/components/tabs/tabs.d.ts +1 -1
  516. package/dist/components/tabs/tabs.js +22 -0
  517. package/dist/components/tabs/types.d.ts +2 -2
  518. package/dist/components/tabs/types.js +1 -0
  519. package/dist/components/tabs/utils.d.ts +1 -1
  520. package/dist/components/tabs/utils.js +67 -0
  521. package/dist/components/textfield/api.d.ts +1 -1
  522. package/dist/components/textfield/api.js +190 -0
  523. package/dist/components/textfield/config.d.ts +1 -1
  524. package/dist/components/textfield/config.js +21 -0
  525. package/dist/components/textfield/constants.js +63 -0
  526. package/dist/components/textfield/features/density.d.ts +1 -1
  527. package/dist/components/textfield/features/density.js +38 -0
  528. package/dist/components/textfield/features/error.d.ts +1 -1
  529. package/dist/components/textfield/features/error.js +35 -0
  530. package/dist/components/textfield/features/index.d.ts +14 -14
  531. package/dist/components/textfield/features/index.js +8 -0
  532. package/dist/components/textfield/features/leading-icon.d.ts +1 -1
  533. package/dist/components/textfield/features/leading-icon.js +54 -0
  534. package/dist/components/textfield/features/placement.d.ts +1 -1
  535. package/dist/components/textfield/features/placement.js +162 -0
  536. package/dist/components/textfield/features/prefix-text.d.ts +1 -1
  537. package/dist/components/textfield/features/prefix-text.js +38 -0
  538. package/dist/components/textfield/features/suffix-text.d.ts +1 -1
  539. package/dist/components/textfield/features/suffix-text.js +34 -0
  540. package/dist/components/textfield/features/supporting-text.d.ts +1 -1
  541. package/dist/components/textfield/features/supporting-text.js +58 -0
  542. package/dist/components/textfield/features/trailing-icon.d.ts +1 -1
  543. package/dist/components/textfield/features/trailing-icon.js +40 -0
  544. package/dist/components/textfield/index.d.ts +2 -2
  545. package/dist/components/textfield/index.js +1 -0
  546. package/dist/components/textfield/textfield.d.ts +1 -1
  547. package/dist/components/textfield/textfield.js +18 -0
  548. package/dist/components/textfield/types.js +18 -0
  549. package/dist/components/timepicker/api.d.ts +1 -1
  550. package/dist/components/timepicker/api.js +426 -0
  551. package/dist/components/timepicker/clockdial.d.ts +1 -1
  552. package/dist/components/timepicker/clockdial.js +277 -0
  553. package/dist/components/timepicker/config.d.ts +1 -1
  554. package/dist/components/timepicker/config.js +81 -0
  555. package/dist/components/timepicker/constants.js +135 -0
  556. package/dist/components/timepicker/index.d.ts +4 -4
  557. package/dist/components/timepicker/index.js +3 -0
  558. package/dist/components/timepicker/render.d.ts +1 -1
  559. package/dist/components/timepicker/render.js +476 -0
  560. package/dist/components/timepicker/timepicker.d.ts +1 -1
  561. package/dist/components/timepicker/timepicker.js +68 -0
  562. package/dist/components/timepicker/types.js +20 -0
  563. package/dist/components/timepicker/utils.d.ts +1 -1
  564. package/dist/components/timepicker/utils.js +131 -0
  565. package/dist/components/tooltip/api.d.ts +1 -1
  566. package/dist/components/tooltip/api.js +293 -0
  567. package/dist/components/tooltip/config.d.ts +1 -1
  568. package/dist/components/tooltip/config.js +38 -0
  569. package/dist/components/tooltip/constants.js +49 -0
  570. package/dist/components/tooltip/index.d.ts +3 -3
  571. package/dist/components/tooltip/index.js +2 -0
  572. package/dist/components/tooltip/tooltip.d.ts +1 -1
  573. package/dist/components/tooltip/tooltip.js +31 -0
  574. package/dist/components/tooltip/types.js +23 -0
  575. package/dist/components/top-app-bar/config.d.ts +1 -1
  576. package/dist/components/top-app-bar/config.js +10 -0
  577. package/dist/components/top-app-bar/constants.js +33 -0
  578. package/dist/components/top-app-bar/index.d.ts +3 -3
  579. package/dist/components/top-app-bar/index.js +4 -0
  580. package/dist/components/top-app-bar/top-app-bar.d.ts +2 -2
  581. package/dist/components/top-app-bar/top-app-bar.js +155 -0
  582. package/dist/components/top-app-bar/types.d.ts +1 -1
  583. package/dist/components/top-app-bar/types.js +1 -0
  584. package/dist/core/canvas/animation.js +36 -0
  585. package/dist/core/canvas/drawing.js +62 -0
  586. package/dist/core/canvas/index.d.ts +4 -4
  587. package/dist/core/canvas/index.js +4 -0
  588. package/dist/core/canvas/resize.js +35 -0
  589. package/dist/core/canvas/utils.d.ts +5 -4
  590. package/dist/core/canvas/utils.js +116 -0
  591. package/dist/core/compose/base.js +7 -0
  592. package/dist/core/compose/component.js +131 -0
  593. package/dist/core/compose/features/badge.d.ts +1 -1
  594. package/dist/core/compose/features/badge.js +20 -0
  595. package/dist/core/compose/features/checkable.d.ts +1 -1
  596. package/dist/core/compose/features/checkable.js +55 -0
  597. package/dist/core/compose/features/constants.js +36 -0
  598. package/dist/core/compose/features/debounce.d.ts +1 -1
  599. package/dist/core/compose/features/debounce.js +53 -0
  600. package/dist/core/compose/features/disabled.d.ts +1 -1
  601. package/dist/core/compose/features/disabled.js +65 -0
  602. package/dist/core/compose/features/events.d.ts +1 -1
  603. package/dist/core/compose/features/events.js +19 -0
  604. package/dist/core/compose/features/icon.d.ts +1 -1
  605. package/dist/core/compose/features/icon.js +70 -0
  606. package/dist/core/compose/features/index.d.ts +34 -34
  607. package/dist/core/compose/features/index.js +19 -0
  608. package/dist/core/compose/features/input.d.ts +1 -1
  609. package/dist/core/compose/features/input.js +67 -0
  610. package/dist/core/compose/features/lifecycle.d.ts +1 -1
  611. package/dist/core/compose/features/lifecycle.js +71 -0
  612. package/dist/core/compose/features/position.d.ts +1 -1
  613. package/dist/core/compose/features/position.js +36 -0
  614. package/dist/core/compose/features/ripple.d.ts +2 -2
  615. package/dist/core/compose/features/ripple.js +137 -0
  616. package/dist/core/compose/features/size.d.ts +1 -1
  617. package/dist/core/compose/features/size.js +7 -0
  618. package/dist/core/compose/features/style.d.ts +1 -1
  619. package/dist/core/compose/features/style.js +9 -0
  620. package/dist/core/compose/features/text.d.ts +1 -1
  621. package/dist/core/compose/features/text.js +46 -0
  622. package/dist/core/compose/features/textinput.d.ts +1 -1
  623. package/dist/core/compose/features/textinput.js +161 -0
  624. package/dist/core/compose/features/textlabel.d.ts +1 -1
  625. package/dist/core/compose/features/textlabel.js +38 -0
  626. package/dist/core/compose/features/throttle.d.ts +1 -1
  627. package/dist/core/compose/features/throttle.js +47 -0
  628. package/dist/core/compose/features/track.d.ts +1 -1
  629. package/dist/core/compose/features/track.js +23 -0
  630. package/dist/core/compose/features/variant.d.ts +1 -1
  631. package/dist/core/compose/features/variant.js +7 -0
  632. package/dist/core/compose/features/withEvents.d.ts +1 -1
  633. package/dist/core/compose/features/withEvents.js +51 -0
  634. package/dist/core/compose/index.d.ts +9 -9
  635. package/dist/core/compose/index.js +5 -0
  636. package/dist/core/compose/pipe.js +6 -0
  637. package/dist/core/compose/utils/type-guards.d.ts +1 -1
  638. package/dist/core/compose/utils/type-guards.js +10 -0
  639. package/dist/core/config/component.js +71 -0
  640. package/dist/core/config/global.d.ts +2 -2
  641. package/dist/core/config/global.js +15 -0
  642. package/dist/core/config.js +72 -0
  643. package/dist/core/dom/attributes.js +39 -0
  644. package/dist/core/dom/classes.js +207 -0
  645. package/dist/core/dom/create.js +247 -0
  646. package/dist/core/dom/events.js +68 -0
  647. package/dist/core/dom/index.d.ts +6 -6
  648. package/dist/core/dom/index.js +4 -0
  649. package/dist/core/dom/utils.d.ts +1 -1
  650. package/dist/core/dom/utils.js +45 -0
  651. package/dist/core/index.d.ts +20 -20
  652. package/dist/core/index.js +13 -0
  653. package/dist/core/shapes/cubic.js +62 -0
  654. package/dist/core/shapes/index.d.ts +6 -6
  655. package/dist/core/shapes/index.js +3 -0
  656. package/dist/core/shapes/material.d.ts +1 -1
  657. package/dist/core/shapes/material.js +119 -0
  658. package/dist/core/shapes/polygon.d.ts +1 -1
  659. package/dist/core/shapes/polygon.js +221 -0
  660. package/dist/core/state/disabled.js +26 -0
  661. package/dist/core/state/emitter.js +24 -0
  662. package/dist/core/state/events.js +24 -0
  663. package/dist/core/state/index.d.ts +10 -10
  664. package/dist/core/state/index.js +5 -0
  665. package/dist/core/state/lifecycle.js +46 -0
  666. package/dist/core/state/store.js +61 -0
  667. package/dist/core/utils/background.js +35 -0
  668. package/dist/core/utils/color.js +23 -0
  669. package/dist/core/utils/index.d.ts +6 -6
  670. package/dist/core/utils/index.js +8 -0
  671. package/dist/core/utils/mobile.js +63 -0
  672. package/dist/core/utils/object.js +21 -0
  673. package/dist/core/utils/performance.js +103 -0
  674. package/dist/core/utils/theme.js +78 -0
  675. package/dist/core/utils/validate.js +113 -0
  676. package/dist/index.cjs +12 -18
  677. package/dist/index.d.ts +3 -3
  678. package/dist/index.js +4 -57
  679. package/dist/package.json +35 -10
  680. package/dist/styles/badge.css +2 -0
  681. package/dist/styles/badge.d.ts +1 -0
  682. package/dist/styles/badge.js +2 -0
  683. package/dist/styles/base.css +2 -0
  684. package/dist/styles/base.d.ts +1 -0
  685. package/dist/styles/base.js +2 -0
  686. package/dist/styles/bottom-app-bar.css +2 -0
  687. package/dist/styles/bottom-app-bar.d.ts +1 -0
  688. package/dist/styles/bottom-app-bar.js +2 -0
  689. package/dist/styles/bottom-sheet.css +2 -0
  690. package/dist/styles/bottom-sheet.d.ts +1 -0
  691. package/dist/styles/bottom-sheet.js +2 -0
  692. package/dist/styles/button-group.css +2 -0
  693. package/dist/styles/button-group.d.ts +1 -0
  694. package/dist/styles/button-group.js +3 -0
  695. package/dist/styles/button.css +2 -0
  696. package/dist/styles/button.d.ts +1 -0
  697. package/dist/styles/button.js +2 -0
  698. package/dist/styles/card.css +2 -0
  699. package/dist/styles/card.d.ts +1 -0
  700. package/dist/styles/card.js +2 -0
  701. package/dist/styles/carousel.css +2 -0
  702. package/dist/styles/carousel.d.ts +1 -0
  703. package/dist/styles/carousel.js +2 -0
  704. package/dist/styles/checkbox.css +2 -0
  705. package/dist/styles/checkbox.d.ts +1 -0
  706. package/dist/styles/checkbox.js +2 -0
  707. package/dist/styles/chips.css +2 -0
  708. package/dist/styles/chips.d.ts +1 -0
  709. package/dist/styles/chips.js +2 -0
  710. package/dist/styles/dialog.css +2 -0
  711. package/dist/styles/dialog.d.ts +1 -0
  712. package/dist/styles/dialog.js +3 -0
  713. package/dist/styles/divider.css +2 -0
  714. package/dist/styles/divider.d.ts +1 -0
  715. package/dist/styles/divider.js +2 -0
  716. package/dist/styles/drawer.css +2 -0
  717. package/dist/styles/drawer.d.ts +1 -0
  718. package/dist/styles/drawer.js +2 -0
  719. package/dist/styles/extended-fab.css +2 -0
  720. package/dist/styles/extended-fab.d.ts +1 -0
  721. package/dist/styles/extended-fab.js +2 -0
  722. package/dist/styles/fab.css +2 -0
  723. package/dist/styles/fab.d.ts +1 -0
  724. package/dist/styles/fab.js +2 -0
  725. package/dist/styles/icon-button.css +2 -0
  726. package/dist/styles/icon-button.d.ts +1 -0
  727. package/dist/styles/icon-button.js +2 -0
  728. package/dist/styles/list.css +2 -0
  729. package/dist/styles/list.d.ts +1 -0
  730. package/dist/styles/list.js +2 -0
  731. package/dist/styles/loading-indicator.css +2 -0
  732. package/dist/styles/loading-indicator.d.ts +1 -0
  733. package/dist/styles/loading-indicator.js +2 -0
  734. package/dist/styles/menu.css +2 -0
  735. package/dist/styles/menu.d.ts +1 -0
  736. package/dist/styles/menu.js +2 -0
  737. package/dist/styles/navigation.css +2 -0
  738. package/dist/styles/navigation.d.ts +1 -0
  739. package/dist/styles/navigation.js +2 -0
  740. package/dist/styles/progress.css +2 -0
  741. package/dist/styles/progress.d.ts +1 -0
  742. package/dist/styles/progress.js +2 -0
  743. package/dist/styles/radios.css +2 -0
  744. package/dist/styles/radios.d.ts +1 -0
  745. package/dist/styles/radios.js +2 -0
  746. package/dist/styles/search.css +2 -0
  747. package/dist/styles/search.d.ts +1 -0
  748. package/dist/styles/search.js +2 -0
  749. package/dist/styles/segmented-button.css +2 -0
  750. package/dist/styles/segmented-button.d.ts +1 -0
  751. package/dist/styles/segmented-button.js +2 -0
  752. package/dist/styles/select.css +2 -0
  753. package/dist/styles/select.d.ts +1 -0
  754. package/dist/styles/select.js +3 -0
  755. package/dist/styles/side-sheet.css +2 -0
  756. package/dist/styles/side-sheet.d.ts +1 -0
  757. package/dist/styles/side-sheet.js +2 -0
  758. package/dist/styles/slider.css +2 -0
  759. package/dist/styles/slider.d.ts +1 -0
  760. package/dist/styles/slider.js +2 -0
  761. package/dist/styles/snackbar.css +2 -0
  762. package/dist/styles/snackbar.d.ts +1 -0
  763. package/dist/styles/snackbar.js +3 -0
  764. package/dist/styles/split-button.css +2 -0
  765. package/dist/styles/split-button.d.ts +1 -0
  766. package/dist/styles/split-button.js +3 -0
  767. package/dist/styles/switch.css +2 -0
  768. package/dist/styles/switch.d.ts +1 -0
  769. package/dist/styles/switch.js +2 -0
  770. package/dist/styles/tabs.css +2 -0
  771. package/dist/styles/tabs.d.ts +1 -0
  772. package/dist/styles/tabs.js +3 -0
  773. package/dist/styles/textfield.css +2 -0
  774. package/dist/styles/textfield.d.ts +1 -0
  775. package/dist/styles/textfield.js +2 -0
  776. package/dist/styles/timepicker.css +2 -0
  777. package/dist/styles/timepicker.d.ts +1 -0
  778. package/dist/styles/timepicker.js +2 -0
  779. package/dist/styles/top-app-bar.css +2 -0
  780. package/dist/styles/top-app-bar.d.ts +1 -0
  781. package/dist/styles/top-app-bar.js +2 -0
  782. package/dist/styles/utilities.css +2 -0
  783. package/dist/styles/utilities.d.ts +1 -0
  784. package/dist/styles/utilities.js +2 -0
  785. package/dist/styles.css +2 -7
  786. package/dist/themes/autumn.css +2 -0
  787. package/dist/themes/baseline.css +2 -0
  788. package/dist/themes/brownbeige.css +2 -0
  789. package/dist/themes/browngreen.css +2 -0
  790. package/dist/themes/desert.css +2 -0
  791. package/dist/themes/forest.css +2 -0
  792. package/dist/themes/highcontrast.css +2 -0
  793. package/dist/themes/legacy.css +2 -0
  794. package/dist/themes/material.css +2 -0
  795. package/dist/themes/ocean.css +2 -0
  796. package/dist/themes/sageivory.css +2 -0
  797. package/dist/themes/spring.css +2 -0
  798. package/dist/themes/summer.css +2 -0
  799. package/dist/themes/sunset.css +2 -0
  800. package/dist/themes/tealcaramel.css +2 -0
  801. package/dist/themes/winter.css +2 -0
  802. package/package.json +36 -5
  803. package/src/styles/base/_document.scss +54 -0
  804. package/src/styles/components/_slider.scss +39 -10
  805. package/src/styles/main.scss +1 -51
  806. package/dist/components/slider/features/canvas.d.ts +0 -47
  807. package/dist/index.cjs.map +0 -300
  808. package/dist/index.js.map +0 -300
package/README.md CHANGED
@@ -63,7 +63,9 @@ bun add mtrl
63
63
 
64
64
  ## Tree-Shaking Optimized Imports
65
65
 
66
- mtrl is optimized for tree-shaking. Constants are exported separately from component creators to minimize bundle size.
66
+ mtrl publishes ESM modules so application bundlers can remove unused exports and
67
+ split dynamic imports. The root and direct component imports use the same modules.
68
+ CommonJS remains available through `require('mtrl')`.
67
69
 
68
70
  ### Import Patterns
69
71
 
@@ -100,6 +102,90 @@ const slider = createSlider({
100
102
 
101
103
  **Note:** Constants are NOT exported from main entry points. Always import them from the component's constants file.
102
104
 
105
+ ### Selective styles
106
+
107
+ The full stylesheet remains available:
108
+
109
+ ```typescript
110
+ import 'mtrl/styles';
111
+ ```
112
+
113
+ For smaller applications, import the base once, followed by the components you use:
114
+
115
+ ```typescript
116
+ import 'mtrl/styles/base';
117
+ import 'mtrl/styles/button';
118
+ import 'mtrl/styles/textfield';
119
+
120
+ // Optional: alternate themes and utility classes
121
+ import 'mtrl/themes/ocean';
122
+ import 'mtrl/styles/utilities';
123
+ ```
124
+
125
+ The base includes the baseline light/dark theme, tokens, reset, typography, and
126
+ ripple styles. Selective style entry points are JavaScript modules that import
127
+ their CSS and dependencies (for example, button imports progress; select imports
128
+ textfield and menu). Use a CSS-capable application bundler to resolve and
129
+ deduplicate these imports. Their ordered `mtrl` cascade layers preserve component
130
+ overrides even when a bundler reorders CSS chunks. Unlayered application CSS can
131
+ override these library styles. Load optional themes after the base.
132
+ Choose either the full stylesheet or selective imports to avoid
133
+ duplicating styles. DatePicker remains available through the full stylesheet;
134
+ it has no separate style entry while in development.
135
+
136
+ Button progress and card action buttons retain their dynamic imports in ESM.
137
+ Enable code splitting in your application build to load those features on demand.
138
+ The CommonJS compatibility bundle includes them eagerly.
139
+
140
+ Slider decoration uses DOM tracks and CSS backgrounds for ticks; it no longer
141
+ creates a canvas or subscribes to theme changes. Its public slider API and
142
+ accessible handles remain. Themes and per-slider colour overrides apply through
143
+ CSS. Custom styling that targets the former `.mtrl-slider-canvas` element must be
144
+ updated. Run `bun run slider:check` after building for slider geometry, keyboard,
145
+ pointer, resize, and lifecycle checks. For comparison with a previous canvas
146
+ build, pass `--reference=/path/to/reference` to `scripts/check-slider.ts`; that
147
+ directory must contain an ESM `slider.js` exporting `createSlider` and its full
148
+ `styles.css`. Comparison screenshots and measurements go to `analysis/slider-dom`.
149
+ CSS rounded corners differ slightly from the previous canvas curves.
150
+
151
+ ### Checking distribution size
152
+
153
+ ```bash
154
+ bun run build
155
+ bun run size:check
156
+ ```
157
+
158
+ The size check packs and installs the local distribution in a temporary directory,
159
+ checks Node ESM/CommonJS and TypeScript imports, and measures minified consumer
160
+ bundles with gzip and Brotli. It enforces budgets for individual imports, a form,
161
+ CSS, and the initial button chunks. Results are saved to
162
+ `analysis/package-size.json`. Run it after building; it does not rebuild dist.
163
+
164
+ For a second bundler and real-browser checks:
165
+
166
+ ```bash
167
+ node node_modules/playwright/cli.js install chromium
168
+ bun run consumer:check
169
+ ```
170
+
171
+ This builds a packed Vite application and checks tree-shaking, CSS deduplication,
172
+ and on-demand progress loading. Chromium compares full and selective CSS with
173
+ screenshots and computed styles across component states, baseline/ocean themes,
174
+ light/dark modes, and desktop/mobile widths. It also exercises pointer and keyboard
175
+ interactions. Reports and screenshots are saved to `analysis/browser`; CI runs
176
+ these checks and uploads the artifacts. Comparisons use the full stylesheet from
177
+ the same build as their reference, so they test distribution equivalence rather
178
+ than establish a separate design baseline.
179
+
180
+ `scripts/style-manifest.ts` declares selective entries and their dependencies.
181
+ The build rejects missing dependencies and cycles, checks the manifest against
182
+ Sass's parsed full-stylesheet imports, and verifies component dependencies retained
183
+ by tree-shaking, including lazy imports. Vite and Playwright are development-only
184
+ dependencies, pinned along with the existing tools in `bun.lock`.
185
+
186
+ Builds fail on TypeScript or Sass errors. Published ESM is readable and includes
187
+ declarations; source maps are omitted from the package to reduce installation size.
188
+
103
189
  ## Component Architecture
104
190
 
105
191
  Let's look at how mtrl components are constructed:
package/dist/README.md CHANGED
@@ -63,7 +63,9 @@ bun add mtrl
63
63
 
64
64
  ## Tree-Shaking Optimized Imports
65
65
 
66
- mtrl is optimized for tree-shaking. Constants are exported separately from component creators to minimize bundle size.
66
+ mtrl publishes ESM modules so application bundlers can remove unused exports and
67
+ split dynamic imports. The root and direct component imports use the same modules.
68
+ CommonJS remains available through `require('mtrl')`.
67
69
 
68
70
  ### Import Patterns
69
71
 
@@ -100,6 +102,90 @@ const slider = createSlider({
100
102
 
101
103
  **Note:** Constants are NOT exported from main entry points. Always import them from the component's constants file.
102
104
 
105
+ ### Selective styles
106
+
107
+ The full stylesheet remains available:
108
+
109
+ ```typescript
110
+ import 'mtrl/styles';
111
+ ```
112
+
113
+ For smaller applications, import the base once, followed by the components you use:
114
+
115
+ ```typescript
116
+ import 'mtrl/styles/base';
117
+ import 'mtrl/styles/button';
118
+ import 'mtrl/styles/textfield';
119
+
120
+ // Optional: alternate themes and utility classes
121
+ import 'mtrl/themes/ocean';
122
+ import 'mtrl/styles/utilities';
123
+ ```
124
+
125
+ The base includes the baseline light/dark theme, tokens, reset, typography, and
126
+ ripple styles. Selective style entry points are JavaScript modules that import
127
+ their CSS and dependencies (for example, button imports progress; select imports
128
+ textfield and menu). Use a CSS-capable application bundler to resolve and
129
+ deduplicate these imports. Their ordered `mtrl` cascade layers preserve component
130
+ overrides even when a bundler reorders CSS chunks. Unlayered application CSS can
131
+ override these library styles. Load optional themes after the base.
132
+ Choose either the full stylesheet or selective imports to avoid
133
+ duplicating styles. DatePicker remains available through the full stylesheet;
134
+ it has no separate style entry while in development.
135
+
136
+ Button progress and card action buttons retain their dynamic imports in ESM.
137
+ Enable code splitting in your application build to load those features on demand.
138
+ The CommonJS compatibility bundle includes them eagerly.
139
+
140
+ Slider decoration uses DOM tracks and CSS backgrounds for ticks; it no longer
141
+ creates a canvas or subscribes to theme changes. Its public slider API and
142
+ accessible handles remain. Themes and per-slider colour overrides apply through
143
+ CSS. Custom styling that targets the former `.mtrl-slider-canvas` element must be
144
+ updated. Run `bun run slider:check` after building for slider geometry, keyboard,
145
+ pointer, resize, and lifecycle checks. For comparison with a previous canvas
146
+ build, pass `--reference=/path/to/reference` to `scripts/check-slider.ts`; that
147
+ directory must contain an ESM `slider.js` exporting `createSlider` and its full
148
+ `styles.css`. Comparison screenshots and measurements go to `analysis/slider-dom`.
149
+ CSS rounded corners differ slightly from the previous canvas curves.
150
+
151
+ ### Checking distribution size
152
+
153
+ ```bash
154
+ bun run build
155
+ bun run size:check
156
+ ```
157
+
158
+ The size check packs and installs the local distribution in a temporary directory,
159
+ checks Node ESM/CommonJS and TypeScript imports, and measures minified consumer
160
+ bundles with gzip and Brotli. It enforces budgets for individual imports, a form,
161
+ CSS, and the initial button chunks. Results are saved to
162
+ `analysis/package-size.json`. Run it after building; it does not rebuild dist.
163
+
164
+ For a second bundler and real-browser checks:
165
+
166
+ ```bash
167
+ node node_modules/playwright/cli.js install chromium
168
+ bun run consumer:check
169
+ ```
170
+
171
+ This builds a packed Vite application and checks tree-shaking, CSS deduplication,
172
+ and on-demand progress loading. Chromium compares full and selective CSS with
173
+ screenshots and computed styles across component states, baseline/ocean themes,
174
+ light/dark modes, and desktop/mobile widths. It also exercises pointer and keyboard
175
+ interactions. Reports and screenshots are saved to `analysis/browser`; CI runs
176
+ these checks and uploads the artifacts. Comparisons use the full stylesheet from
177
+ the same build as their reference, so they test distribution equivalence rather
178
+ than establish a separate design baseline.
179
+
180
+ `scripts/style-manifest.ts` declares selective entries and their dependencies.
181
+ The build rejects missing dependencies and cycles, checks the manifest against
182
+ Sass's parsed full-stylesheet imports, and verifies component dependencies retained
183
+ by tree-shaking, including lazy imports. Vite and Playwright are development-only
184
+ dependencies, pinned along with the existing tools in `bun.lock`.
185
+
186
+ Builds fail on TypeScript or Sass errors. Published ESM is readable and includes
187
+ declarations; source maps are omitted from the package to reduce installation size.
188
+
103
189
  ## Component Architecture
104
190
 
105
191
  Let's look at how mtrl components are constructed:
@@ -1,4 +1,4 @@
1
- import { BadgeComponent } from "./types";
1
+ import { BadgeComponent } from "./types.js";
2
2
  /**
3
3
  * API configuration options for badge component
4
4
  * @category Components
@@ -0,0 +1,162 @@
1
+ import { formatBadgeLabel } from "./config.js";
2
+ const VARIANT_SMALL = "small";
3
+ const ALL_COLORS = [
4
+ "error",
5
+ "primary",
6
+ "secondary",
7
+ "tertiary",
8
+ "success",
9
+ "warning",
10
+ "info",
11
+ ];
12
+ const ALL_VARIANTS = ["small", "large"];
13
+ const ALL_POSITIONS = ["top-right", "top-left", "bottom-right", "bottom-left"];
14
+ export const withAPI = ({ visibility, lifecycle }) => (component) => {
15
+ const badgeComponent = {
16
+ element: component.element,
17
+ wrapper: component.wrapper,
18
+ getClass: component.getClass,
19
+ setLabel(label) {
20
+ component.config.label = label;
21
+ if (component.config.variant === VARIANT_SMALL) {
22
+ component.element.textContent = "";
23
+ return badgeComponent;
24
+ }
25
+ const formattedLabel = formatBadgeLabel(label, component.config.max);
26
+ component.element.textContent = formattedLabel;
27
+ component.element.classList.remove(`${component.getClass("badge")}--overflow`);
28
+ if (typeof label === "number" &&
29
+ component.config.max !== undefined &&
30
+ label > component.config.max) {
31
+ component.element.classList.add(`${component.getClass("badge")}--overflow`);
32
+ }
33
+ if (formattedLabel === "" || formattedLabel === "0") {
34
+ badgeComponent.hide();
35
+ }
36
+ else {
37
+ badgeComponent.show();
38
+ }
39
+ return badgeComponent;
40
+ },
41
+ getLabel() {
42
+ return component.element.textContent || "";
43
+ },
44
+ setContent(content) {
45
+ return badgeComponent.setLabel(content);
46
+ },
47
+ getContent() {
48
+ return badgeComponent.getLabel();
49
+ },
50
+ show() {
51
+ visibility.show();
52
+ return badgeComponent;
53
+ },
54
+ hide() {
55
+ visibility.hide();
56
+ return badgeComponent;
57
+ },
58
+ toggle(visible) {
59
+ visibility.toggle(visible);
60
+ return badgeComponent;
61
+ },
62
+ isVisible() {
63
+ return visibility.isVisible();
64
+ },
65
+ setMax(max) {
66
+ component.config.max = max;
67
+ if (component.config.label !== undefined) {
68
+ badgeComponent.setLabel(component.config.label);
69
+ }
70
+ return badgeComponent;
71
+ },
72
+ setColor(color) {
73
+ ALL_COLORS.forEach((colorName) => {
74
+ component.element.classList.remove(`${component.getClass("badge")}--${colorName}`);
75
+ });
76
+ component.element.classList.add(`${component.getClass("badge")}--${color}`);
77
+ return badgeComponent;
78
+ },
79
+ setVariant(variant) {
80
+ ALL_VARIANTS.forEach((variantName) => {
81
+ component.element.classList.remove(`${component.getClass("badge")}--${variantName}`);
82
+ });
83
+ component.element.classList.add(`${component.getClass("badge")}--${variant}`);
84
+ component.config.variant = variant;
85
+ if (variant === VARIANT_SMALL) {
86
+ component.element.textContent = "";
87
+ component.element.setAttribute("aria-hidden", "true");
88
+ }
89
+ else {
90
+ component.element.setAttribute("role", "status");
91
+ if (component.config.label !== undefined) {
92
+ badgeComponent.setLabel(component.config.label);
93
+ }
94
+ }
95
+ return badgeComponent;
96
+ },
97
+ setPosition(position) {
98
+ ALL_POSITIONS.forEach((posName) => {
99
+ component.element.classList.remove(`${component.getClass("badge")}--${posName}`);
100
+ });
101
+ component.element.classList.add(`${component.getClass("badge")}--${position}`);
102
+ return badgeComponent;
103
+ },
104
+ attachTo(target) {
105
+ if (component.wrapper &&
106
+ component.wrapper.contains(component.element)) {
107
+ component.wrapper.removeChild(component.element);
108
+ }
109
+ const wrapper = document.createElement("div");
110
+ wrapper.classList.add(component.getClass("badge-wrapper"));
111
+ wrapper.style.position = "relative";
112
+ const parent = target.parentNode;
113
+ if (parent) {
114
+ parent.replaceChild(wrapper, target);
115
+ wrapper.appendChild(target);
116
+ wrapper.appendChild(component.element);
117
+ component.element.classList.add(`${component.getClass("badge")}--positioned`);
118
+ component.wrapper = wrapper;
119
+ badgeComponent.wrapper = wrapper;
120
+ }
121
+ return badgeComponent;
122
+ },
123
+ detach() {
124
+ if (component.wrapper &&
125
+ component.wrapper.contains(component.element)) {
126
+ component.wrapper.removeChild(component.element);
127
+ component.element.classList.remove(`${component.getClass("badge")}--positioned`);
128
+ document.body.appendChild(component.element);
129
+ component.wrapper = undefined;
130
+ badgeComponent.wrapper = undefined;
131
+ }
132
+ return badgeComponent;
133
+ },
134
+ destroy() {
135
+ lifecycle.destroy();
136
+ if (component.wrapper) {
137
+ const target = component.wrapper.firstChild;
138
+ const parent = component.wrapper.parentNode;
139
+ if (parent && target) {
140
+ parent.replaceChild(target, component.wrapper);
141
+ }
142
+ }
143
+ },
144
+ addClass: (...classes) => {
145
+ component.addClass(...classes);
146
+ return badgeComponent;
147
+ },
148
+ removeClass: (...classes) => {
149
+ component.removeClass(...classes);
150
+ return badgeComponent;
151
+ },
152
+ on: (event, handler) => {
153
+ component.on(event, handler);
154
+ return badgeComponent;
155
+ },
156
+ off: (event, handler) => {
157
+ component.off(event, handler);
158
+ return badgeComponent;
159
+ },
160
+ };
161
+ return badgeComponent;
162
+ };
@@ -1,4 +1,4 @@
1
- import { BadgeConfig, BadgeComponent } from './types';
1
+ import { BadgeConfig, BadgeComponent } from "./types.js";
2
2
  /**
3
3
  * Creates a new Badge component following Material Design 3 guidelines.
4
4
  *
@@ -0,0 +1,18 @@
1
+ import { pipe } from "../../core/compose/index.js";
2
+ import { createBase, withElement } from "../../core/compose/component.js";
3
+ import { withEvents, withLifecycle } from "../../core/compose/features/index.js";
4
+ import { withVisibility, withVariant, withColor, withPosition, withMax, withAttachment } from "./features.js";
5
+ import { withAPI } from "./api.js";
6
+ import { createBaseConfig, getElementConfig, getApiConfig } from "./config.js";
7
+ const createBadge = (config = {}) => {
8
+ const baseConfig = createBaseConfig(config);
9
+ try {
10
+ const badge = pipe(createBase, withEvents(), withElement(getElementConfig(baseConfig)), withVariant(baseConfig), withColor(baseConfig), withPosition(baseConfig), withMax(baseConfig), withVisibility(), withAttachment(baseConfig), withLifecycle(), comp => withAPI(getApiConfig(comp))(comp))(baseConfig);
11
+ return badge;
12
+ }
13
+ catch (error) {
14
+ console.error('Badge creation error:', error);
15
+ throw new Error(`Failed to create badge: ${error.message}`);
16
+ }
17
+ };
18
+ export default createBadge;
@@ -1,4 +1,4 @@
1
- import { BadgeConfig } from "./types";
1
+ import { BadgeConfig } from "./types.js";
2
2
  /**
3
3
  * Default configuration for the Badge component
4
4
  * These values will be used when not explicitly specified by the user.
@@ -0,0 +1,63 @@
1
+ import { createComponentConfig, createElementConfig, } from "../../core/config/component.js";
2
+ import { BADGE_VARIANTS, BADGE_COLORS, BADGE_POSITIONS, BADGE_MAX_CHARACTERS, } from "./constants.js";
3
+ export const defaultConfig = {
4
+ variant: BADGE_VARIANTS.LARGE,
5
+ color: BADGE_COLORS.ERROR,
6
+ position: BADGE_POSITIONS.TOP_RIGHT,
7
+ label: "",
8
+ visible: true,
9
+ };
10
+ export const createBaseConfig = (config = {}) => createComponentConfig(defaultConfig, config, "badge");
11
+ export const getElementConfig = (config) => {
12
+ const attributes = {};
13
+ if (config.variant !== "small") {
14
+ attributes.role = "status";
15
+ }
16
+ const formattedLabel = config.variant === "small"
17
+ ? ""
18
+ : formatBadgeLabel(config.label || "", config.max);
19
+ return createElementConfig(config, {
20
+ tag: "span",
21
+ attributes,
22
+ className: config.class,
23
+ text: formattedLabel,
24
+ });
25
+ };
26
+ export const getApiConfig = (comp) => ({
27
+ visibility: {
28
+ show: () => comp.visibility.show(),
29
+ hide: () => comp.visibility.hide(),
30
+ toggle: (visible) => comp.visibility.toggle(visible),
31
+ isVisible: () => comp.visibility.isVisible(),
32
+ },
33
+ lifecycle: {
34
+ destroy: () => comp.lifecycle.destroy(),
35
+ },
36
+ });
37
+ export const formatBadgeLabel = (label, max) => {
38
+ if (label === undefined || label === null || label === "") {
39
+ return "";
40
+ }
41
+ let formattedLabel = String(label);
42
+ const numericLabel = Number(label);
43
+ if (max !== undefined && !isNaN(numericLabel) && numericLabel > max) {
44
+ formattedLabel = `${max}+`;
45
+ }
46
+ if (formattedLabel.length > BADGE_MAX_CHARACTERS) {
47
+ const numericValue = Number(label);
48
+ if (!isNaN(numericValue)) {
49
+ if (numericValue >= 1000) {
50
+ formattedLabel = "999+";
51
+ }
52
+ else {
53
+ formattedLabel =
54
+ formattedLabel.substring(0, BADGE_MAX_CHARACTERS - 1) + "+";
55
+ }
56
+ }
57
+ else {
58
+ formattedLabel = formattedLabel.substring(0, BADGE_MAX_CHARACTERS);
59
+ }
60
+ }
61
+ return formattedLabel;
62
+ };
63
+ export default defaultConfig;
@@ -0,0 +1,20 @@
1
+ export const BADGE_VARIANTS = {
2
+ SMALL: 'small',
3
+ LARGE: 'large'
4
+ };
5
+ export const BADGE_COLORS = {
6
+ ERROR: 'error',
7
+ PRIMARY: 'primary',
8
+ SECONDARY: 'secondary',
9
+ TERTIARY: 'tertiary',
10
+ SUCCESS: 'success',
11
+ WARNING: 'warning',
12
+ INFO: 'info'
13
+ };
14
+ export const BADGE_POSITIONS = {
15
+ TOP_RIGHT: 'top-right',
16
+ TOP_LEFT: 'top-left',
17
+ BOTTOM_RIGHT: 'bottom-right',
18
+ BOTTOM_LEFT: 'bottom-left'
19
+ };
20
+ export const BADGE_MAX_CHARACTERS = 4;
@@ -1,4 +1,4 @@
1
- import { BadgeConfig } from './types';
1
+ import { BadgeConfig } from "./types.js";
2
2
  /**
3
3
  * Higher-order function that adds visibility control features to a component
4
4
  * @returns {Function} Component enhancer with visibility features
@@ -0,0 +1,95 @@
1
+ import { formatBadgeLabel } from "./config.js";
2
+ const VARIANT_SMALL = 'small';
3
+ const VARIANT_LARGE = 'large';
4
+ const COLOR_ERROR = 'error';
5
+ const POSITION_TOP_RIGHT = 'top-right';
6
+ export const withVisibility = () => component => {
7
+ const visible = component.config.visible !== false;
8
+ if (!visible) {
9
+ component.element.classList.add(`${component.getClass('badge')}--invisible`);
10
+ }
11
+ return {
12
+ ...component,
13
+ visibility: {
14
+ show() {
15
+ component.element.classList.remove(`${component.getClass('badge')}--invisible`);
16
+ },
17
+ hide() {
18
+ component.element.classList.add(`${component.getClass('badge')}--invisible`);
19
+ },
20
+ toggle(visible) {
21
+ if (visible === undefined) {
22
+ component.element.classList.toggle(`${component.getClass('badge')}--invisible`);
23
+ }
24
+ else if (visible) {
25
+ this.show();
26
+ }
27
+ else {
28
+ this.hide();
29
+ }
30
+ },
31
+ isVisible() {
32
+ return !component.element.classList.contains(`${component.getClass('badge')}--invisible`);
33
+ }
34
+ }
35
+ };
36
+ };
37
+ export const withVariant = (config) => component => {
38
+ const variant = config.variant || VARIANT_LARGE;
39
+ component.element.classList.add(`${component.getClass('badge')}--${variant}`);
40
+ if (variant === VARIANT_SMALL) {
41
+ component.element.textContent = '';
42
+ component.element.setAttribute('aria-hidden', 'true');
43
+ }
44
+ else {
45
+ component.element.setAttribute('role', 'status');
46
+ if (config.label !== undefined && config.label !== '') {
47
+ const formattedLabel = formatBadgeLabel(config.label, config.max);
48
+ component.element.textContent = formattedLabel;
49
+ }
50
+ }
51
+ return component;
52
+ };
53
+ export const withColor = (config) => component => {
54
+ const color = config.color || COLOR_ERROR;
55
+ component.element.classList.add(`${component.getClass('badge')}--${color}`);
56
+ return component;
57
+ };
58
+ export const withPosition = (config) => component => {
59
+ const position = config.position || POSITION_TOP_RIGHT;
60
+ component.element.classList.add(`${component.getClass('badge')}--${position}`);
61
+ if (config.target) {
62
+ component.element.classList.add(`${component.getClass('badge')}--positioned`);
63
+ }
64
+ return component;
65
+ };
66
+ export const withMax = (config) => component => {
67
+ if (config.max === undefined || config.variant === VARIANT_SMALL) {
68
+ return component;
69
+ }
70
+ component.config.max = config.max;
71
+ if (config.label !== undefined && config.label !== '') {
72
+ const formattedLabel = formatBadgeLabel(config.label, config.max);
73
+ component.element.textContent = formattedLabel;
74
+ if (typeof config.label === 'number' && config.label > config.max) {
75
+ component.element.classList.add(`${component.getClass('badge')}--overflow`);
76
+ }
77
+ }
78
+ return component;
79
+ };
80
+ export const withAttachment = (config) => component => {
81
+ if (!config.target) {
82
+ return component;
83
+ }
84
+ const wrapper = document.createElement('div');
85
+ wrapper.classList.add(component.getClass('badge-wrapper'));
86
+ wrapper.style.position = 'relative';
87
+ const parent = config.target.parentNode;
88
+ if (parent) {
89
+ parent.replaceChild(wrapper, config.target);
90
+ wrapper.appendChild(config.target);
91
+ wrapper.appendChild(component.element);
92
+ component.wrapper = wrapper;
93
+ }
94
+ return component;
95
+ };
@@ -4,5 +4,5 @@
4
4
  * @description A small element that communicates status, shows a count,
5
5
  * or highlights an element requiring attention.
6
6
  */
7
- export { default } from "./badge";
8
- export type { BadgeConfig, BadgeComponent, BadgeVariant, BadgeColor, BadgePosition, } from "./types";
7
+ export { default } from "./badge.js";
8
+ export type { BadgeConfig, BadgeComponent, BadgeVariant, BadgeColor, BadgePosition, } from "./types.js";
@@ -0,0 +1 @@
1
+ export { default } from "./badge.js";
@@ -0,0 +1 @@
1
+ export {};
@@ -2,7 +2,7 @@
2
2
  * @module components/bottom-app-bar
3
3
  * @description Bottom app bar implementation
4
4
  */
5
- import { BottomAppBar, BottomAppBarConfig } from "./types";
5
+ import { BottomAppBar, BottomAppBarConfig } from "./types.js";
6
6
  /**
7
7
  * Creates a bottom app bar component
8
8
  *