mtrl 0.3.8 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/dist/LICENSE +21 -0
  2. package/dist/README.md +324 -0
  3. package/dist/components/badge/api.d.ts +48 -0
  4. package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
  5. package/dist/components/badge/config.d.ts +79 -0
  6. package/dist/components/badge/constants.d.ts +35 -0
  7. package/dist/components/badge/features.d.ts +36 -0
  8. package/dist/components/badge/index.d.ts +8 -0
  9. package/dist/components/badge/types.d.ts +256 -0
  10. package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
  11. package/dist/components/bottom-app-bar/config.d.ts +16 -0
  12. package/dist/components/bottom-app-bar/constants.d.ts +22 -0
  13. package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
  14. package/dist/components/bottom-app-bar/types.d.ts +96 -0
  15. package/dist/components/button/api.d.ts +47 -0
  16. package/dist/components/button/button.d.ts +25 -0
  17. package/dist/components/button/config.d.ts +59 -0
  18. package/dist/components/button/constants.d.ts +43 -0
  19. package/dist/components/button/index.d.ts +6 -0
  20. package/dist/components/button/types.d.ts +265 -0
  21. package/dist/components/card/api.d.ts +11 -0
  22. package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
  23. package/dist/components/card/config.d.ts +105 -0
  24. package/dist/components/card/constants.d.ts +85 -0
  25. package/dist/components/card/content.d.ts +92 -0
  26. package/dist/components/card/features.d.ts +131 -0
  27. package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
  28. package/dist/components/card/types.d.ts +471 -0
  29. package/dist/components/carousel/api.d.ts +33 -0
  30. package/dist/components/carousel/carousel.d.ts +75 -0
  31. package/dist/components/carousel/config.d.ts +45 -0
  32. package/dist/components/carousel/constants.d.ts +165 -0
  33. package/dist/components/carousel/features/drag.d.ts +8 -0
  34. package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
  35. package/dist/components/carousel/features/slides.d.ts +8 -0
  36. package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
  37. package/dist/components/carousel/types.d.ts +276 -0
  38. package/dist/components/checkbox/api.d.ts +7 -0
  39. package/dist/components/checkbox/checkbox.d.ts +65 -0
  40. package/dist/components/checkbox/config.d.ts +44 -0
  41. package/dist/components/checkbox/constants.d.ts +63 -0
  42. package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
  43. package/dist/components/checkbox/types.d.ts +242 -0
  44. package/dist/components/chips/api.d.ts +49 -0
  45. package/dist/components/chips/chip/api.d.ts +23 -0
  46. package/dist/components/chips/chip/chip.d.ts +8 -0
  47. package/dist/components/chips/chip/config.d.ts +57 -0
  48. package/dist/components/chips/chip/constants.d.ts +38 -0
  49. package/dist/components/chips/chip/index.d.ts +2 -0
  50. package/dist/components/chips/chip/types.d.ts +11 -0
  51. package/dist/components/chips/chips.d.ts +17 -0
  52. package/dist/components/chips/config.d.ts +67 -0
  53. package/dist/components/chips/constants.d.ts +46 -0
  54. package/dist/components/chips/features/chip-items.d.ts +8 -0
  55. package/dist/components/chips/features/container.d.ts +8 -0
  56. package/dist/components/chips/features/controller.d.ts +9 -0
  57. package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
  58. package/dist/components/chips/features/label.d.ts +8 -0
  59. package/dist/components/chips/index.d.ts +4 -0
  60. package/dist/components/chips/schema.d.ts +34 -0
  61. package/dist/components/chips/types.d.ts +398 -0
  62. package/dist/components/datepicker/api.d.ts +9 -0
  63. package/dist/components/datepicker/config.d.ts +79 -0
  64. package/dist/components/datepicker/constants.d.ts +97 -0
  65. package/dist/components/datepicker/datepicker.d.ts +8 -0
  66. package/dist/components/datepicker/index.d.ts +3 -0
  67. package/dist/components/datepicker/render.d.ts +43 -0
  68. package/dist/components/datepicker/types.d.ts +321 -0
  69. package/dist/components/datepicker/utils.d.ts +84 -0
  70. package/dist/components/dialog/api.d.ts +59 -0
  71. package/dist/components/dialog/config.d.ts +91 -0
  72. package/dist/components/dialog/constants.d.ts +116 -0
  73. package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
  74. package/dist/components/dialog/features.d.ts +37 -0
  75. package/dist/components/dialog/index.d.ts +14 -0
  76. package/dist/components/dialog/types.d.ts +483 -0
  77. package/dist/components/divider/config.d.ts +143 -0
  78. package/dist/components/divider/constants.d.ts +45 -0
  79. package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
  80. package/dist/components/divider/features.d.ts +50 -0
  81. package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
  82. package/dist/components/divider/types.d.ts +124 -0
  83. package/dist/components/extended-fab/api.d.ts +83 -0
  84. package/dist/components/extended-fab/config.d.ts +75 -0
  85. package/dist/components/extended-fab/constants.d.ts +82 -0
  86. package/dist/components/extended-fab/extended-fab.d.ts +61 -0
  87. package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
  88. package/dist/components/extended-fab/types.d.ts +703 -0
  89. package/dist/components/fab/api.d.ts +64 -0
  90. package/dist/components/fab/config.d.ts +71 -0
  91. package/dist/components/fab/constants.d.ts +75 -0
  92. package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
  93. package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
  94. package/dist/components/fab/types.d.ts +577 -0
  95. package/dist/components/index.d.ts +76 -0
  96. package/dist/components/list/api.d.ts +106 -0
  97. package/dist/components/list/config.d.ts +61 -0
  98. package/dist/components/list/constants.d.ts +76 -0
  99. package/dist/components/list/features/index.d.ts +2 -0
  100. package/dist/components/list/features/listmanager.d.ts +9 -0
  101. package/dist/components/list/features/selection.d.ts +9 -0
  102. package/dist/components/list/index.d.ts +12 -0
  103. package/dist/components/list/list.d.ts +11 -0
  104. package/dist/components/list/types.d.ts +294 -0
  105. package/dist/components/menu/api.d.ts +58 -0
  106. package/dist/components/menu/config.d.ts +78 -0
  107. package/dist/components/menu/constants.d.ts +106 -0
  108. package/dist/components/menu/features/controller.d.ts +10 -0
  109. package/dist/components/menu/features/index.d.ts +6 -0
  110. package/dist/components/menu/features/keyboard.d.ts +26 -0
  111. package/dist/components/menu/features/opener.d.ts +10 -0
  112. package/dist/components/menu/features/position.d.ts +18 -0
  113. package/dist/components/menu/features/submenu.d.ts +10 -0
  114. package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
  115. package/dist/components/menu/menu.d.ts +29 -0
  116. package/dist/components/menu/types.d.ts +338 -0
  117. package/dist/components/navigation/api.d.ts +8 -0
  118. package/dist/components/navigation/config.d.ts +34 -0
  119. package/dist/components/navigation/constants.d.ts +137 -0
  120. package/dist/components/navigation/features/controller.d.ts +30 -0
  121. package/dist/components/navigation/features/items.d.ts +32 -0
  122. package/dist/components/navigation/index.d.ts +3 -0
  123. package/dist/components/navigation/nav-item.d.ts +30 -0
  124. package/dist/components/navigation/navigation.d.ts +8 -0
  125. package/dist/components/navigation/system/core.d.ts +72 -0
  126. package/dist/components/navigation/system/events.d.ts +35 -0
  127. package/dist/components/navigation/system/index.d.ts +10 -0
  128. package/dist/components/navigation/system/mobile.d.ts +52 -0
  129. package/dist/components/navigation/system/state.d.ts +22 -0
  130. package/dist/components/navigation/system/types.d.ts +305 -0
  131. package/dist/components/navigation/types.d.ts +216 -0
  132. package/dist/components/progress/api.d.ts +46 -0
  133. package/dist/components/progress/config.d.ts +72 -0
  134. package/dist/components/progress/constants.d.ts +139 -0
  135. package/dist/components/progress/features/canvas.d.ts +32 -0
  136. package/dist/components/progress/features/circular.d.ts +9 -0
  137. package/dist/components/progress/features/index.d.ts +8 -0
  138. package/dist/components/progress/features/linear.d.ts +9 -0
  139. package/dist/components/progress/features/resize-observer.d.ts +5 -0
  140. package/dist/components/progress/features/state.d.ts +38 -0
  141. package/dist/components/progress/features.d.ts +40 -0
  142. package/dist/components/progress/index.d.ts +3 -0
  143. package/dist/components/progress/progress.d.ts +24 -0
  144. package/dist/components/progress/types.d.ts +272 -0
  145. package/dist/components/radios/api.d.ts +37 -0
  146. package/dist/components/radios/config.d.ts +42 -0
  147. package/dist/components/radios/constants.d.ts +114 -0
  148. package/dist/components/radios/index.d.ts +3 -0
  149. package/dist/components/radios/radio.d.ts +8 -0
  150. package/dist/components/radios/radios.d.ts +8 -0
  151. package/dist/components/radios/types.d.ts +189 -0
  152. package/dist/components/search/api.d.ts +55 -0
  153. package/dist/components/search/config.d.ts +73 -0
  154. package/dist/components/search/constants.d.ts +128 -0
  155. package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
  156. package/dist/components/search/features/search.d.ts +7 -0
  157. package/dist/components/search/features/states.d.ts +8 -0
  158. package/dist/components/search/features/structure.d.ts +7 -0
  159. package/dist/components/search/index.d.ts +3 -0
  160. package/dist/components/search/search.d.ts +8 -0
  161. package/dist/components/search/types.d.ts +132 -0
  162. package/dist/components/segmented-button/config.d.ts +65 -0
  163. package/dist/components/segmented-button/constants.d.ts +85 -0
  164. package/dist/components/segmented-button/index.d.ts +4 -0
  165. package/dist/components/segmented-button/segment.d.ts +15 -0
  166. package/dist/components/segmented-button/segmented-button.d.ts +49 -0
  167. package/dist/components/segmented-button/types.d.ts +257 -0
  168. package/dist/components/select/api.d.ts +8 -0
  169. package/dist/components/select/config.d.ts +18 -0
  170. package/dist/components/select/constants.d.ts +113 -0
  171. package/dist/components/select/features.d.ts +13 -0
  172. package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
  173. package/dist/components/select/select.d.ts +36 -0
  174. package/dist/components/select/types.d.ts +302 -0
  175. package/dist/components/sheet/api.d.ts +37 -0
  176. package/dist/components/sheet/config.d.ts +42 -0
  177. package/dist/components/sheet/constants.d.ts +136 -0
  178. package/dist/components/sheet/features/content.d.ts +6 -0
  179. package/dist/components/sheet/features/gestures.d.ts +6 -0
  180. package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
  181. package/dist/components/sheet/features/position.d.ts +7 -0
  182. package/dist/components/sheet/features/state.d.ts +6 -0
  183. package/dist/components/sheet/features/title.d.ts +6 -0
  184. package/dist/components/sheet/index.d.ts +3 -0
  185. package/dist/components/sheet/sheet.d.ts +8 -0
  186. package/dist/components/sheet/types.d.ts +250 -0
  187. package/dist/components/slider/api.d.ts +57 -0
  188. package/dist/components/slider/config.d.ts +75 -0
  189. package/dist/components/slider/constants.d.ts +138 -0
  190. package/dist/components/slider/features/controller.d.ts +9 -0
  191. package/dist/components/slider/features/handlers.d.ts +25 -0
  192. package/dist/components/slider/features/index.d.ts +3 -0
  193. package/dist/components/slider/features/range.d.ts +8 -0
  194. package/dist/components/slider/features/states.d.ts +9 -0
  195. package/dist/components/slider/index.d.ts +3 -0
  196. package/dist/components/slider/schema.d.ts +108 -0
  197. package/dist/components/slider/slider.d.ts +18 -0
  198. package/dist/components/slider/types.d.ts +170 -0
  199. package/dist/components/snackbar/api.d.ts +7 -0
  200. package/dist/components/snackbar/config.d.ts +55 -0
  201. package/dist/components/snackbar/constants.d.ts +88 -0
  202. package/dist/components/snackbar/features.d.ts +13 -0
  203. package/dist/components/snackbar/index.d.ts +3 -0
  204. package/dist/components/snackbar/position.d.ts +15 -0
  205. package/dist/components/snackbar/queue.d.ts +7 -0
  206. package/dist/components/snackbar/snackbar.d.ts +8 -0
  207. package/dist/components/snackbar/types.d.ts +172 -0
  208. package/dist/components/switch/api.d.ts +7 -0
  209. package/dist/components/switch/config.d.ts +34 -0
  210. package/dist/components/switch/constants.d.ts +88 -0
  211. package/dist/components/switch/features.d.ts +59 -0
  212. package/dist/components/switch/index.d.ts +4 -0
  213. package/dist/components/switch/switch.d.ts +8 -0
  214. package/dist/components/switch/types.d.ts +131 -0
  215. package/dist/components/tabs/api.d.ts +52 -0
  216. package/dist/components/tabs/config.d.ts +39 -0
  217. package/dist/components/tabs/constants.d.ts +142 -0
  218. package/dist/components/tabs/features.d.ts +133 -0
  219. package/dist/components/tabs/index.d.ts +11 -0
  220. package/dist/components/tabs/indicator.d.ts +49 -0
  221. package/dist/components/tabs/responsive.d.ts +38 -0
  222. package/dist/components/tabs/scroll-indicators.d.ts +18 -0
  223. package/dist/components/tabs/state.d.ts +53 -0
  224. package/dist/components/tabs/tab-api.d.ts +43 -0
  225. package/dist/components/tabs/tab.d.ts +7 -0
  226. package/dist/components/tabs/tabs.d.ts +27 -0
  227. package/dist/components/tabs/types.d.ts +390 -0
  228. package/dist/components/tabs/utils.d.ts +17 -0
  229. package/dist/components/textfield/api.d.ts +8 -0
  230. package/dist/components/textfield/config.d.ts +34 -0
  231. package/dist/components/textfield/constants.d.ts +148 -0
  232. package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
  233. package/dist/components/textfield/features/leading-icon.d.ts +55 -0
  234. package/dist/components/textfield/features/placement.d.ts +28 -0
  235. package/dist/components/textfield/features/prefix-text.d.ts +54 -0
  236. package/dist/components/textfield/features/suffix-text.d.ts +54 -0
  237. package/dist/components/textfield/features/supporting-text.d.ts +59 -0
  238. package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
  239. package/dist/components/textfield/index.d.ts +3 -0
  240. package/dist/components/textfield/textfield.d.ts +36 -0
  241. package/dist/components/textfield/types.d.ts +217 -0
  242. package/dist/components/timepicker/api.d.ts +24 -0
  243. package/dist/components/timepicker/clockdial.d.ts +34 -0
  244. package/dist/components/timepicker/config.d.ts +75 -0
  245. package/dist/components/timepicker/constants.d.ts +266 -0
  246. package/dist/components/timepicker/index.d.ts +4 -0
  247. package/dist/components/timepicker/render.d.ts +9 -0
  248. package/dist/components/timepicker/timepicker.d.ts +8 -0
  249. package/dist/components/timepicker/types.d.ts +284 -0
  250. package/dist/components/timepicker/utils.d.ts +74 -0
  251. package/dist/components/tooltip/api.d.ts +18 -0
  252. package/dist/components/tooltip/config.d.ts +38 -0
  253. package/dist/components/tooltip/constants.d.ts +108 -0
  254. package/dist/components/tooltip/index.d.ts +3 -0
  255. package/dist/components/tooltip/tooltip.d.ts +8 -0
  256. package/dist/components/tooltip/types.d.ts +188 -0
  257. package/dist/components/top-app-bar/config.d.ts +16 -0
  258. package/dist/components/top-app-bar/constants.d.ts +74 -0
  259. package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
  260. package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
  261. package/dist/components/top-app-bar/types.d.ts +118 -0
  262. package/dist/constants.d.ts +30 -0
  263. package/dist/core/canvas/index.d.ts +5 -0
  264. package/dist/core/canvas/resize.d.ts +14 -0
  265. package/dist/core/collection/adapters/base.d.ts +47 -0
  266. package/dist/core/collection/adapters/route.d.ts +149 -0
  267. package/dist/core/collection/collection.d.ts +131 -0
  268. package/dist/core/collection/index.d.ts +10 -0
  269. package/dist/core/collection/list-manager/config.d.ts +29 -0
  270. package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
  271. package/dist/core/collection/list-manager/index.d.ts +61 -0
  272. package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
  273. package/dist/core/collection/list-manager/renderer.d.ts +31 -0
  274. package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
  275. package/dist/core/collection/list-manager/state.d.ts +60 -0
  276. package/dist/core/collection/list-manager/types.d.ts +361 -0
  277. package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
  278. package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
  279. package/dist/core/compose/base.d.ts +31 -0
  280. package/dist/core/compose/component.d.ts +61 -0
  281. package/dist/core/compose/features/badge.d.ts +43 -0
  282. package/dist/core/compose/features/checkable.d.ts +59 -0
  283. package/dist/core/compose/features/constants.d.ts +45 -0
  284. package/dist/core/compose/features/debounce.d.ts +84 -0
  285. package/dist/core/compose/features/disabled.d.ts +47 -0
  286. package/dist/core/compose/features/events.d.ts +37 -0
  287. package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
  288. package/dist/core/compose/features/gestures/pan.d.ts +108 -0
  289. package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
  290. package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
  291. package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
  292. package/dist/core/compose/features/gestures/tap.d.ts +79 -0
  293. package/dist/core/compose/features/gestures.d.ts +86 -0
  294. package/dist/core/compose/features/icon.d.ts +71 -0
  295. package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
  296. package/dist/core/compose/features/input.d.ts +71 -0
  297. package/dist/core/compose/features/lifecycle.d.ts +61 -0
  298. package/dist/core/compose/features/position.d.ts +51 -0
  299. package/dist/core/compose/features/ripple.d.ts +61 -0
  300. package/dist/core/compose/features/size.d.ts +17 -0
  301. package/dist/core/compose/features/style.d.ts +16 -0
  302. package/dist/core/compose/features/text.d.ts +63 -0
  303. package/dist/core/compose/features/textinput.d.ts +93 -0
  304. package/dist/core/compose/features/textlabel.d.ts +57 -0
  305. package/dist/core/compose/features/throttle.d.ts +75 -0
  306. package/dist/core/compose/features/track.d.ts +42 -0
  307. package/dist/core/compose/features/variant.d.ts +17 -0
  308. package/dist/core/compose/features/withEvents.d.ts +45 -0
  309. package/dist/core/compose/index.d.ts +17 -0
  310. package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
  311. package/dist/core/compose/utils/type-guards.d.ts +27 -0
  312. package/dist/core/composition/features/dom.d.ts +19 -0
  313. package/dist/core/composition/features/icon.d.ts +45 -0
  314. package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
  315. package/dist/core/composition/features/label.d.ts +49 -0
  316. package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
  317. package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
  318. package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +35 -83
  319. package/dist/core/config.d.ts +130 -0
  320. package/dist/core/dom/attributes.d.ts +20 -0
  321. package/dist/core/dom/classes.d.ts +52 -0
  322. package/dist/core/dom/create.d.ts +154 -0
  323. package/dist/core/dom/events.d.ts +69 -0
  324. package/dist/core/dom/index.d.ts +6 -0
  325. package/dist/core/dom/utils.d.ts +42 -0
  326. package/dist/core/gestures/index.d.ts +12 -0
  327. package/dist/core/gestures/longpress.d.ts +23 -0
  328. package/dist/core/gestures/manager.d.ts +14 -0
  329. package/dist/core/gestures/pan.d.ts +12 -0
  330. package/dist/core/gestures/pinch.d.ts +14 -0
  331. package/dist/core/gestures/rotate.d.ts +14 -0
  332. package/dist/core/gestures/swipe.d.ts +20 -0
  333. package/dist/core/gestures/tap.d.ts +12 -0
  334. package/dist/core/gestures/types.d.ts +320 -0
  335. package/dist/core/gestures/utils.d.ts +57 -0
  336. package/dist/core/index.d.ts +29 -0
  337. package/dist/core/layout/array.d.ts +15 -0
  338. package/dist/core/layout/config.d.ts +32 -0
  339. package/dist/core/layout/create.d.ts +14 -0
  340. package/dist/core/layout/index.d.ts +13 -0
  341. package/dist/core/layout/jsx.d.ts +13 -0
  342. package/dist/core/layout/object.d.ts +14 -0
  343. package/dist/core/layout/processor.d.ts +28 -0
  344. package/dist/core/layout/result.d.ts +12 -0
  345. package/dist/core/layout/template.d.ts +12 -0
  346. package/dist/core/layout/types.d.ts +137 -0
  347. package/dist/core/layout/utils.d.ts +38 -0
  348. package/dist/core/state/disabled.d.ts +32 -0
  349. package/dist/core/state/emitter.d.ts +40 -0
  350. package/dist/core/state/events.d.ts +36 -0
  351. package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
  352. package/dist/core/state/lifecycle.d.ts +57 -0
  353. package/dist/core/state/store.d.ts +82 -0
  354. package/dist/core/utils/background.d.ts +40 -0
  355. package/dist/core/utils/index.d.ts +18 -0
  356. package/dist/core/utils/mobile.d.ts +54 -0
  357. package/dist/core/utils/object.d.ts +13 -0
  358. package/dist/core/utils/performance.d.ts +79 -0
  359. package/dist/core/utils/theme.d.ts +38 -0
  360. package/dist/core/utils/validate.d.ts +73 -0
  361. package/dist/index.cjs +64 -0
  362. package/dist/index.cjs.map +291 -0
  363. package/dist/index.d.ts +15 -0
  364. package/dist/index.js +53 -14854
  365. package/dist/index.js.map +291 -0
  366. package/dist/package.json +39 -0
  367. package/dist/styles.css +7 -0
  368. package/package.json +23 -4
  369. package/.env +0 -15
  370. package/.typedocignore +0 -11
  371. package/CONTRIBUTING.md +0 -218
  372. package/DOCS.md +0 -153
  373. package/TESTING.md +0 -214
  374. package/git-user-stats.js +0 -545
  375. package/index.ts +0 -10
  376. package/src/components/badge/api.ts +0 -313
  377. package/src/components/badge/config.ts +0 -153
  378. package/src/components/badge/features.ts +0 -194
  379. package/src/components/badge/index.ts +0 -90
  380. package/src/components/badge/types.ts +0 -279
  381. package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
  382. package/src/components/bottom-app-bar/config.ts +0 -29
  383. package/src/components/bottom-app-bar/types.ts +0 -114
  384. package/src/components/button/api.ts +0 -172
  385. package/src/components/button/button.ts +0 -112
  386. package/src/components/button/config.ts +0 -96
  387. package/src/components/button/index.ts +0 -37
  388. package/src/components/button/types.ts +0 -290
  389. package/src/components/card/api.ts +0 -222
  390. package/src/components/card/config.ts +0 -304
  391. package/src/components/card/content.ts +0 -343
  392. package/src/components/card/features.ts +0 -407
  393. package/src/components/card/types.ts +0 -497
  394. package/src/components/carousel/api.ts +0 -147
  395. package/src/components/carousel/carousel.ts +0 -242
  396. package/src/components/carousel/config.ts +0 -91
  397. package/src/components/carousel/constants.ts +0 -181
  398. package/src/components/carousel/features/drag.ts +0 -388
  399. package/src/components/carousel/features/slides.ts +0 -682
  400. package/src/components/carousel/types.ts +0 -327
  401. package/src/components/checkbox/api.ts +0 -82
  402. package/src/components/checkbox/checkbox.ts +0 -142
  403. package/src/components/checkbox/config.ts +0 -89
  404. package/src/components/checkbox/types.ts +0 -342
  405. package/src/components/chips/api.ts +0 -194
  406. package/src/components/chips/chip/api.ts +0 -233
  407. package/src/components/chips/chip/chip.ts +0 -131
  408. package/src/components/chips/chip/config.ts +0 -91
  409. package/src/components/chips/chip/index.ts +0 -3
  410. package/src/components/chips/chips.md +0 -481
  411. package/src/components/chips/chips.ts +0 -75
  412. package/src/components/chips/config.ts +0 -109
  413. package/src/components/chips/constants.ts +0 -61
  414. package/src/components/chips/features/chip-items.ts +0 -33
  415. package/src/components/chips/features/container.ts +0 -77
  416. package/src/components/chips/features/controller.ts +0 -448
  417. package/src/components/chips/features/label.ts +0 -108
  418. package/src/components/chips/index.ts +0 -11
  419. package/src/components/chips/schema.ts +0 -61
  420. package/src/components/chips/types.ts +0 -469
  421. package/src/components/datepicker/api.ts +0 -265
  422. package/src/components/datepicker/config.ts +0 -141
  423. package/src/components/datepicker/datepicker.ts +0 -341
  424. package/src/components/datepicker/index.ts +0 -12
  425. package/src/components/datepicker/render.ts +0 -450
  426. package/src/components/datepicker/types.ts +0 -397
  427. package/src/components/datepicker/utils.ts +0 -289
  428. package/src/components/dialog/api.ts +0 -317
  429. package/src/components/dialog/config.ts +0 -116
  430. package/src/components/dialog/features.ts +0 -907
  431. package/src/components/dialog/index.ts +0 -141
  432. package/src/components/dialog/types.ts +0 -553
  433. package/src/components/divider/config.ts +0 -165
  434. package/src/components/divider/features.ts +0 -233
  435. package/src/components/divider/types.ts +0 -132
  436. package/src/components/extended-fab/api.ts +0 -193
  437. package/src/components/extended-fab/config.ts +0 -140
  438. package/src/components/extended-fab/extended-fab.ts +0 -153
  439. package/src/components/extended-fab/types.ts +0 -749
  440. package/src/components/fab/api.ts +0 -137
  441. package/src/components/fab/config.ts +0 -121
  442. package/src/components/fab/types.ts +0 -615
  443. package/src/components/list/api.ts +0 -82
  444. package/src/components/list/config.ts +0 -63
  445. package/src/components/list/features.ts +0 -229
  446. package/src/components/list/index.ts +0 -67
  447. package/src/components/list/list-item.ts +0 -163
  448. package/src/components/list/list.ts +0 -108
  449. package/src/components/list/types.ts +0 -396
  450. package/src/components/list/utils.ts +0 -98
  451. package/src/components/menu/api.ts +0 -230
  452. package/src/components/menu/config.ts +0 -127
  453. package/src/components/menu/features/anchor.ts +0 -394
  454. package/src/components/menu/features/controller.ts +0 -1423
  455. package/src/components/menu/features/index.ts +0 -13
  456. package/src/components/menu/features/position.ts +0 -353
  457. package/src/components/menu/menu.ts +0 -121
  458. package/src/components/menu/types.ts +0 -392
  459. package/src/components/navigation/api.ts +0 -142
  460. package/src/components/navigation/config.ts +0 -73
  461. package/src/components/navigation/features/controller.ts +0 -273
  462. package/src/components/navigation/features/items.ts +0 -353
  463. package/src/components/navigation/index.ts +0 -11
  464. package/src/components/navigation/nav-item.ts +0 -196
  465. package/src/components/navigation/navigation.ts +0 -115
  466. package/src/components/navigation/system/core.ts +0 -302
  467. package/src/components/navigation/system/events.ts +0 -240
  468. package/src/components/navigation/system/index.ts +0 -184
  469. package/src/components/navigation/system/mobile.ts +0 -278
  470. package/src/components/navigation/system/state.ts +0 -77
  471. package/src/components/navigation/system/types.ts +0 -364
  472. package/src/components/navigation/types.ts +0 -292
  473. package/src/components/progress/api.ts +0 -178
  474. package/src/components/progress/config.ts +0 -122
  475. package/src/components/progress/index.ts +0 -4
  476. package/src/components/progress/progress.ts +0 -159
  477. package/src/components/progress/types.ts +0 -255
  478. package/src/components/radios/api.ts +0 -125
  479. package/src/components/radios/config.ts +0 -59
  480. package/src/components/radios/constants.ts +0 -19
  481. package/src/components/radios/index.ts +0 -3
  482. package/src/components/radios/radio.ts +0 -292
  483. package/src/components/radios/radios.ts +0 -43
  484. package/src/components/radios/types.ts +0 -219
  485. package/src/components/search/api.ts +0 -203
  486. package/src/components/search/config.ts +0 -86
  487. package/src/components/search/features/search.ts +0 -717
  488. package/src/components/search/features/states.ts +0 -169
  489. package/src/components/search/features/structure.ts +0 -197
  490. package/src/components/search/index.ts +0 -7
  491. package/src/components/search/search.ts +0 -52
  492. package/src/components/search/types.ts +0 -175
  493. package/src/components/segmented-button/config.ts +0 -119
  494. package/src/components/segmented-button/index.ts +0 -4
  495. package/src/components/segmented-button/segment.ts +0 -108
  496. package/src/components/segmented-button/segmented-button.ts +0 -361
  497. package/src/components/segmented-button/types.ts +0 -306
  498. package/src/components/select/api.ts +0 -78
  499. package/src/components/select/config.ts +0 -76
  500. package/src/components/select/features.ts +0 -331
  501. package/src/components/select/select.ts +0 -73
  502. package/src/components/select/types.ts +0 -355
  503. package/src/components/sheet/api.ts +0 -96
  504. package/src/components/sheet/config.ts +0 -65
  505. package/src/components/sheet/features/content.ts +0 -51
  506. package/src/components/sheet/features/gestures.ts +0 -177
  507. package/src/components/sheet/features/position.ts +0 -41
  508. package/src/components/sheet/features/state.ts +0 -116
  509. package/src/components/sheet/features/title.ts +0 -86
  510. package/src/components/sheet/index.ts +0 -12
  511. package/src/components/sheet/sheet.ts +0 -56
  512. package/src/components/sheet/types.ts +0 -294
  513. package/src/components/slider/accessibility.md +0 -59
  514. package/src/components/slider/api.ts +0 -192
  515. package/src/components/slider/config.ts +0 -118
  516. package/src/components/slider/features/controller.ts +0 -737
  517. package/src/components/slider/features/handlers.ts +0 -497
  518. package/src/components/slider/features/index.ts +0 -5
  519. package/src/components/slider/features/range.ts +0 -104
  520. package/src/components/slider/features/states.ts +0 -195
  521. package/src/components/slider/index.ts +0 -17
  522. package/src/components/slider/schema.ts +0 -141
  523. package/src/components/slider/slider.ts +0 -76
  524. package/src/components/slider/types.ts +0 -223
  525. package/src/components/snackbar/api.ts +0 -162
  526. package/src/components/snackbar/config.ts +0 -61
  527. package/src/components/snackbar/features.ts +0 -76
  528. package/src/components/snackbar/index.ts +0 -9
  529. package/src/components/snackbar/position.ts +0 -79
  530. package/src/components/snackbar/queue.ts +0 -76
  531. package/src/components/snackbar/snackbar.ts +0 -60
  532. package/src/components/snackbar/types.ts +0 -159
  533. package/src/components/switch/api.ts +0 -93
  534. package/src/components/switch/config.ts +0 -56
  535. package/src/components/switch/features.ts +0 -198
  536. package/src/components/switch/index.ts +0 -8
  537. package/src/components/switch/switch.ts +0 -52
  538. package/src/components/switch/types.ts +0 -168
  539. package/src/components/tabs/api.ts +0 -221
  540. package/src/components/tabs/config.ts +0 -73
  541. package/src/components/tabs/features.ts +0 -403
  542. package/src/components/tabs/index.ts +0 -46
  543. package/src/components/tabs/indicator.ts +0 -285
  544. package/src/components/tabs/responsive.ts +0 -144
  545. package/src/components/tabs/scroll-indicators.ts +0 -149
  546. package/src/components/tabs/state.ts +0 -186
  547. package/src/components/tabs/tab-api.ts +0 -266
  548. package/src/components/tabs/tab.ts +0 -267
  549. package/src/components/tabs/tabs.ts +0 -71
  550. package/src/components/tabs/types.ts +0 -461
  551. package/src/components/tabs/utils.ts +0 -107
  552. package/src/components/textfield/api.ts +0 -197
  553. package/src/components/textfield/config.ts +0 -52
  554. package/src/components/textfield/features/leading-icon.ts +0 -127
  555. package/src/components/textfield/features/placement.ts +0 -149
  556. package/src/components/textfield/features/prefix-text.ts +0 -107
  557. package/src/components/textfield/features/suffix-text.ts +0 -100
  558. package/src/components/textfield/features/supporting-text.ts +0 -113
  559. package/src/components/textfield/features/trailing-icon.ts +0 -108
  560. package/src/components/textfield/index.ts +0 -9
  561. package/src/components/textfield/textfield.ts +0 -92
  562. package/src/components/textfield/types.ts +0 -265
  563. package/src/components/timepicker/README.md +0 -277
  564. package/src/components/timepicker/api.ts +0 -632
  565. package/src/components/timepicker/clockdial.ts +0 -479
  566. package/src/components/timepicker/config.ts +0 -228
  567. package/src/components/timepicker/index.ts +0 -3
  568. package/src/components/timepicker/render.ts +0 -613
  569. package/src/components/timepicker/timepicker.ts +0 -117
  570. package/src/components/timepicker/types.ts +0 -336
  571. package/src/components/timepicker/utils.ts +0 -241
  572. package/src/components/tooltip/api.ts +0 -415
  573. package/src/components/tooltip/config.ts +0 -80
  574. package/src/components/tooltip/index.ts +0 -12
  575. package/src/components/tooltip/tooltip.ts +0 -60
  576. package/src/components/tooltip/types.ts +0 -223
  577. package/src/components/top-app-bar/config.ts +0 -83
  578. package/src/components/top-app-bar/top-app-bar.ts +0 -316
  579. package/src/components/top-app-bar/types.ts +0 -140
  580. package/src/core/build/constants.ts +0 -48
  581. package/src/core/build/icon.ts +0 -137
  582. package/src/core/build/ripple.ts +0 -193
  583. package/src/core/build/text.ts +0 -91
  584. package/src/core/collection/adapters/base.ts +0 -62
  585. package/src/core/collection/adapters/route.ts +0 -201
  586. package/src/core/collection/collection.ts +0 -300
  587. package/src/core/collection/index.ts +0 -57
  588. package/src/core/collection/list-manager.ts +0 -333
  589. package/src/core/compose/base.ts +0 -43
  590. package/src/core/compose/component.ts +0 -255
  591. package/src/core/compose/features/badge.ts +0 -79
  592. package/src/core/compose/features/checkable.ts +0 -155
  593. package/src/core/compose/features/disabled.ts +0 -116
  594. package/src/core/compose/features/events.ts +0 -65
  595. package/src/core/compose/features/icon.ts +0 -71
  596. package/src/core/compose/features/input.ts +0 -174
  597. package/src/core/compose/features/lifecycle.ts +0 -139
  598. package/src/core/compose/features/position.ts +0 -94
  599. package/src/core/compose/features/ripple.ts +0 -58
  600. package/src/core/compose/features/size.ts +0 -29
  601. package/src/core/compose/features/style.ts +0 -31
  602. package/src/core/compose/features/text.ts +0 -44
  603. package/src/core/compose/features/textinput.ts +0 -238
  604. package/src/core/compose/features/textlabel.ts +0 -113
  605. package/src/core/compose/features/track.ts +0 -84
  606. package/src/core/compose/features/variant.ts +0 -29
  607. package/src/core/compose/features/withEvents.ts +0 -137
  608. package/src/core/compose/index.ts +0 -54
  609. package/src/core/composition/features/dom.ts +0 -45
  610. package/src/core/composition/features/icon.ts +0 -131
  611. package/src/core/composition/features/label.ts +0 -155
  612. package/src/core/config.ts +0 -211
  613. package/src/core/dom/attributes.ts +0 -33
  614. package/src/core/dom/classes.ts +0 -132
  615. package/src/core/dom/create.ts +0 -273
  616. package/src/core/dom/events.ts +0 -209
  617. package/src/core/dom/index.ts +0 -10
  618. package/src/core/dom/utils.ts +0 -97
  619. package/src/core/index.ts +0 -111
  620. package/src/core/layout/README.md +0 -715
  621. package/src/core/layout/array.ts +0 -180
  622. package/src/core/layout/config.ts +0 -193
  623. package/src/core/layout/create.ts +0 -54
  624. package/src/core/layout/index.ts +0 -36
  625. package/src/core/layout/object.ts +0 -123
  626. package/src/core/layout/processor.ts +0 -106
  627. package/src/core/layout/result.ts +0 -84
  628. package/src/core/layout/types.ts +0 -180
  629. package/src/core/layout/utils.ts +0 -144
  630. package/src/core/state/disabled.ts +0 -81
  631. package/src/core/state/emitter.ts +0 -94
  632. package/src/core/state/events.ts +0 -88
  633. package/src/core/state/lifecycle.ts +0 -131
  634. package/src/core/state/store.ts +0 -197
  635. package/src/core/utils/index.ts +0 -45
  636. package/src/core/utils/mobile.ts +0 -98
  637. package/src/core/utils/object.ts +0 -41
  638. package/src/core/utils/validate.ts +0 -234
  639. package/src/index.ts +0 -90
  640. package/src/styles/abstract/_base.scss +0 -2
  641. package/src/styles/abstract/_config.scss +0 -28
  642. package/src/styles/abstract/_functions.scss +0 -124
  643. package/src/styles/abstract/_mixins.scss +0 -352
  644. package/src/styles/abstract/_theme.scss +0 -269
  645. package/src/styles/abstract/_variables.scss +0 -305
  646. package/src/styles/base/_reset.scss +0 -86
  647. package/src/styles/base/_typography.scss +0 -155
  648. package/src/styles/components/_badge.scss +0 -182
  649. package/src/styles/components/_bottom-app-bar.scss +0 -103
  650. package/src/styles/components/_button.scss +0 -224
  651. package/src/styles/components/_card.scss +0 -401
  652. package/src/styles/components/_carousel.scss +0 -645
  653. package/src/styles/components/_checkbox.scss +0 -231
  654. package/src/styles/components/_chips.scss +0 -638
  655. package/src/styles/components/_datepicker.scss +0 -358
  656. package/src/styles/components/_dialog.scss +0 -259
  657. package/src/styles/components/_divider.scss +0 -57
  658. package/src/styles/components/_extended-fab.scss +0 -267
  659. package/src/styles/components/_fab.scss +0 -225
  660. package/src/styles/components/_list.scss +0 -248
  661. package/src/styles/components/_menu.scss +0 -242
  662. package/src/styles/components/_navigation-mobile.scss +0 -244
  663. package/src/styles/components/_navigation-system.scss +0 -151
  664. package/src/styles/components/_navigation.scss +0 -407
  665. package/src/styles/components/_progress.scss +0 -151
  666. package/src/styles/components/_radios.scss +0 -187
  667. package/src/styles/components/_search.scss +0 -306
  668. package/src/styles/components/_segmented-button.scss +0 -227
  669. package/src/styles/components/_select.scss +0 -272
  670. package/src/styles/components/_sheet.scss +0 -236
  671. package/src/styles/components/_slider.scss +0 -489
  672. package/src/styles/components/_snackbar.scss +0 -211
  673. package/src/styles/components/_switch.scss +0 -298
  674. package/src/styles/components/_tabs.scss +0 -416
  675. package/src/styles/components/_textfield.scss +0 -773
  676. package/src/styles/components/_timepicker.scss +0 -451
  677. package/src/styles/components/_tooltip.scss +0 -241
  678. package/src/styles/components/_top-app-bar.scss +0 -225
  679. package/src/styles/main.scss +0 -175
  680. package/src/styles/themes/_autumn.scss +0 -105
  681. package/src/styles/themes/_base-theme.scss +0 -85
  682. package/src/styles/themes/_baseline.scss +0 -173
  683. package/src/styles/themes/_bluekhaki.scss +0 -125
  684. package/src/styles/themes/_brownbeige.scss +0 -125
  685. package/src/styles/themes/_browngreen.scss +0 -125
  686. package/src/styles/themes/_forest.scss +0 -77
  687. package/src/styles/themes/_greenbeige.scss +0 -125
  688. package/src/styles/themes/_index.scss +0 -6
  689. package/src/styles/themes/_material.scss +0 -125
  690. package/src/styles/themes/_ocean.scss +0 -77
  691. package/src/styles/themes/_sageivory.scss +0 -125
  692. package/src/styles/themes/_spring.scss +0 -77
  693. package/src/styles/themes/_summer.scss +0 -87
  694. package/src/styles/themes/_sunset.scss +0 -60
  695. package/src/styles/themes/_tealcaramel.scss +0 -125
  696. package/src/styles/themes/_winter.scss +0 -77
  697. package/src/styles/utilities/_colors.scss +0 -154
  698. package/src/styles/utilities/_flexbox.scss +0 -194
  699. package/src/styles/utilities/_layout.scss +0 -665
  700. package/src/styles/utilities/_ripple.scss +0 -79
  701. package/src/styles/utilities/_spacing.scss +0 -139
  702. package/src/styles/utilities/_typography.scss +0 -178
  703. package/src/styles/utilities/_visibility.scss +0 -142
@@ -0,0 +1,78 @@
1
+ import { MenuConfig } from './types';
2
+ /**
3
+ * Default configuration for the Menu component
4
+ * These values will be used when not explicitly specified by the user.
5
+ *
6
+ * @category Components
7
+ */
8
+ export declare const defaultConfig: Partial<MenuConfig>;
9
+ /**
10
+ * Creates the base configuration for Menu component by merging user-provided
11
+ * config with default values.
12
+ *
13
+ * @param {MenuConfig} config - User provided configuration
14
+ * @returns {MenuConfig} Complete configuration with defaults applied
15
+ * @category Components
16
+ * @internal
17
+ */
18
+ export declare const createBaseConfig: (config: MenuConfig) => MenuConfig;
19
+ /**
20
+ * Generates element configuration for the Menu component.
21
+ * This function creates the necessary attributes and configuration
22
+ * for the DOM element creation process.
23
+ *
24
+ * @param {MenuConfig} config - Menu configuration
25
+ * @returns {Object} Element configuration object for withElement
26
+ * @category Components
27
+ * @internal
28
+ */
29
+ export declare const getElementConfig: (config: MenuConfig) => {
30
+ tag: string;
31
+ componentName: string;
32
+ attributes: Record<string, any>;
33
+ className: string[];
34
+ rawClass: string | string[];
35
+ html: string;
36
+ text: string;
37
+ forwardEvents: Record<string, boolean | ((component: any, event: Event) => boolean)>;
38
+ interactive: boolean;
39
+ };
40
+ /**
41
+ * Creates API configuration for the Menu component.
42
+ * This connects the core component features to the public API.
43
+ *
44
+ * @param {Object} component - Component with menu features
45
+ * @returns {Object} API configuration object
46
+ * @category Components
47
+ * @internal
48
+ */
49
+ export declare const getApiConfig: (component: any) => {
50
+ menu: {
51
+ open: (event: any, interactionType: any) => any;
52
+ close: (event: any, restoreFocus: any, skipAnimation: any) => any;
53
+ toggle: (event: any, interactionType: any) => any;
54
+ isOpen: () => any;
55
+ setItems: (items: any) => any;
56
+ getItems: () => any;
57
+ setPosition: (position: any) => any;
58
+ getPosition: () => any;
59
+ setSelected: (itemId: any) => any;
60
+ getSelected: () => any;
61
+ };
62
+ opener: {
63
+ setOpener: (opener: any) => any;
64
+ getOpener: () => any;
65
+ };
66
+ submenu: {
67
+ hasOpenSubmenu: () => any;
68
+ closeAllSubmenus: () => any;
69
+ };
70
+ events: {
71
+ on: (event: any, handler: any) => any;
72
+ off: (event: any, handler: any) => any;
73
+ };
74
+ lifecycle: {
75
+ destroy: () => any;
76
+ };
77
+ };
78
+ export default defaultConfig;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Menu position options for alignment relative to opener element
3
+ */
4
+ export declare const MENU_POSITION: {
5
+ /** Places menu below the opener, aligned to left edge */
6
+ readonly BOTTOM_START: "bottom-start";
7
+ /** Places menu below the opener, centered */
8
+ readonly BOTTOM: "bottom";
9
+ /** Places menu below the opener, aligned to right edge */
10
+ readonly BOTTOM_END: "bottom-end";
11
+ /** Places menu above the opener, aligned to left edge */
12
+ readonly TOP_START: "top-start";
13
+ /** Places menu above the opener, centered */
14
+ readonly TOP: "top";
15
+ /** Places menu above the opener, aligned to right edge */
16
+ readonly TOP_END: "top-end";
17
+ /** Places menu to the right of the opener, aligned to top edge */
18
+ readonly RIGHT_START: "right-start";
19
+ /** Places menu to the right of the opener, centered */
20
+ readonly RIGHT: "right";
21
+ /** Places menu to the right of the opener, aligned to bottom edge */
22
+ readonly RIGHT_END: "right-end";
23
+ /** Places menu to the left of the opener, aligned to top edge */
24
+ readonly LEFT_START: "left-start";
25
+ /** Places menu to the left of the opener, centered */
26
+ readonly LEFT: "left";
27
+ /** Places menu to the left of the opener, aligned to bottom edge */
28
+ readonly LEFT_END: "left-end";
29
+ };
30
+ /**
31
+ * Default configuration values for menus
32
+ */
33
+ export declare const MENU_DEFAULTS: {
34
+ /** Default menu position */
35
+ readonly POSITION: "bottom-start";
36
+ /** Default offset from the opener (in pixels) */
37
+ readonly OFFSET: 0;
38
+ /** Close menu when an item is selected */
39
+ readonly CLOSE_ON_SELECT: true;
40
+ /** Close menu when clicking outside */
41
+ readonly CLOSE_ON_CLICK_OUTSIDE: true;
42
+ /** Close menu when escape key is pressed */
43
+ readonly CLOSE_ON_ESCAPE: true;
44
+ /** Open submenus on hover */
45
+ readonly OPEN_SUBMENU_ON_HOVER: true;
46
+ /** Automatically flip menu position to stay in viewport */
47
+ readonly AUTO_FLIP: true;
48
+ };
49
+ /**
50
+ * Interaction types for menu opening/closing
51
+ */
52
+ export declare const MENU_INTERACTION_TYPES: {
53
+ /** Interaction via mouse or touch */
54
+ readonly MOUSE: "mouse";
55
+ /** Interaction via keyboard */
56
+ readonly KEYBOARD: "keyboard";
57
+ };
58
+ /**
59
+ * Menu item types
60
+ */
61
+ export declare const MENU_ITEM_TYPES: {
62
+ /** Standard interactive menu item */
63
+ readonly ITEM: "item";
64
+ /** Non-interactive dividing line */
65
+ readonly DIVIDER: "divider";
66
+ };
67
+ /**
68
+ * Menu event names
69
+ */
70
+ export declare const MENU_EVENTS: {
71
+ /** Fired when the menu is opened */
72
+ readonly OPEN: "open";
73
+ /** Fired when the menu is closed */
74
+ readonly CLOSE: "close";
75
+ /** Fired when a menu item is selected */
76
+ readonly SELECT: "select";
77
+ };
78
+ /**
79
+ * CSS classes for menu elements
80
+ */
81
+ export declare const MENU_CLASSES: {
82
+ /** Menu container */
83
+ readonly CONTAINER: "menu";
84
+ /** Visible menu */
85
+ readonly VISIBLE: "menu--visible";
86
+ /** Menu inner container */
87
+ readonly INNER: "menu__inner";
88
+ /** Individual menu item */
89
+ readonly ITEM: "menu__item";
90
+ /** Disabled menu item */
91
+ readonly ITEM_DISABLED: "menu__item--disabled";
92
+ /** Selected menu item */
93
+ readonly ITEM_SELECTED: "menu__item--selected";
94
+ /** Menu item with submenu */
95
+ readonly ITEM_HAS_SUBMENU: "menu__item--has-submenu";
96
+ /** Divider */
97
+ readonly DIVIDER: "menu__divider";
98
+ /** Item icon */
99
+ readonly ITEM_ICON: "menu__item-icon";
100
+ /** Item text */
101
+ readonly ITEM_TEXT: "menu__item-text";
102
+ /** Item keyboard shortcut */
103
+ readonly ITEM_SHORTCUT: "menu__item-shortcut";
104
+ /** Submenu indicator */
105
+ readonly SUBMENU_INDICATOR: "menu__submenu-indicator";
106
+ };
@@ -0,0 +1,10 @@
1
+ import { MenuConfig } from '../types';
2
+ /**
3
+ * Adds controller functionality to the menu component
4
+ * Manages state, rendering, positioning, and event handling
5
+ *
6
+ * @param config - Menu configuration
7
+ * @returns Component enhancer with menu controller functionality
8
+ */
9
+ declare const withController: (config: MenuConfig) => (component: any) => any;
10
+ export default withController;
@@ -0,0 +1,6 @@
1
+ import withController from './controller';
2
+ import withOpener from './opener';
3
+ import withPosition from './position';
4
+ import withKeyboard from './keyboard';
5
+ import withSubmenu from './submenu';
6
+ export { withController, withOpener, withPosition, withKeyboard, withSubmenu };
@@ -0,0 +1,26 @@
1
+ import { MenuItem } from '../types';
2
+ /**
3
+ * Keyboard navigation handler for menus
4
+ * Manages focus management and keyboard interactions for accessibility
5
+ */
6
+ export declare const createKeyboardNavigation: (component: any) => {
7
+ handleInitialFocus: (menuElement: HTMLElement, interactionType: "keyboard" | "mouse") => void;
8
+ handleMenuKeydown: (e: KeyboardEvent, state: any, actions: {
9
+ closeMenu: (event: Event, restoreFocus?: boolean) => void;
10
+ closeSubmenu: (level: number) => void;
11
+ findItemById: (id: string) => MenuItem | null;
12
+ handleSubmenuClick: (item: MenuItem, index: number, itemElement: HTMLElement) => void;
13
+ handleNestedSubmenuClick: (item: MenuItem, index: number, itemElement: HTMLElement) => void;
14
+ }) => void;
15
+ setupKeyboardHandlers: (menuElement: HTMLElement, state: any, actions: any) => void;
16
+ isTabNavigationActive: () => boolean;
17
+ getFocusableElements: () => HTMLElement[];
18
+ };
19
+ /**
20
+ * Adds keyboard navigation functionality to the menu component
21
+ *
22
+ * @param config - Menu configuration
23
+ * @returns Component enhancer with keyboard navigation functionality
24
+ */
25
+ declare const withKeyboard: (config: any) => (component: any) => any;
26
+ export default withKeyboard;
@@ -0,0 +1,10 @@
1
+ import { MenuConfig } from '../types';
2
+ /**
3
+ * Adds opener functionality to menu component
4
+ * Manages the relationship between menu and its opener element
5
+ *
6
+ * @param config - Menu configuration
7
+ * @returns Component enhancer with opener management functionality
8
+ */
9
+ declare const withOpener: (config: MenuConfig) => (component: any) => any;
10
+ export default withOpener;
@@ -0,0 +1,18 @@
1
+ import { MenuConfig } from '../types';
2
+ /**
3
+ * Menu position helper
4
+ * Provides functions for positioning menus and submenus
5
+ */
6
+ export declare const createPositioner: (component: any, config: MenuConfig) => {
7
+ positionMenu: (openerElement: HTMLElement) => void;
8
+ positionSubmenu: (submenuElement: HTMLElement, parentItemElement: HTMLElement, level?: number) => void;
9
+ positionElement: (menuElement: HTMLElement, openerElement: HTMLElement, preferredPosition: string, isSubmenu?: boolean) => void;
10
+ };
11
+ /**
12
+ * Adds positioning functionality to the menu component
13
+ *
14
+ * @param config - Menu configuration options
15
+ * @returns Component enhancer with positioning functionality
16
+ */
17
+ declare const withPosition: (config: MenuConfig) => (component: any) => any;
18
+ export default withPosition;
@@ -0,0 +1,10 @@
1
+ import { MenuConfig } from '../types';
2
+ /**
3
+ * Adds submenu functionality to the menu component
4
+ * Manages creation, positioning, and interaction with nested submenus
5
+ *
6
+ * @param config - Menu configuration
7
+ * @returns Component enhancer with submenu functionality
8
+ */
9
+ declare const withSubmenu: (config: MenuConfig) => (component: any) => any;
10
+ export default withSubmenu;
@@ -1,44 +1,28 @@
1
- // src/components/menu/index.ts
2
-
3
1
  /**
4
2
  * Menu component module
5
- *
3
+ *
6
4
  * The Menu component provides a Material Design 3 compliant dropdown menu
7
5
  * system with support for nested menus, keyboard navigation, and accessibility.
8
- *
6
+ *
9
7
  * @module components/menu
10
8
  * @category Components
11
9
  */
12
-
13
- // Export main component factory
14
10
  export { default } from './menu';
15
-
16
- // Export types and interfaces
17
- export type {
18
- MenuConfig,
19
- MenuComponent,
20
- MenuItem,
21
- MenuDivider,
22
- MenuContent,
23
- MenuEvent,
24
- MenuSelectEvent,
25
- MenuPosition
26
- } from './types';
27
-
11
+ export type { MenuConfig, MenuComponent, MenuItem, MenuDivider, MenuContent, MenuEvent, MenuSelectEvent, MenuPosition } from './types';
28
12
  /**
29
13
  * Constants for menu position values - use these instead of string literals
30
14
  * for better code completion and type safety.
31
- *
15
+ *
32
16
  * @example
33
17
  * import { createMenu, MENU_POSITION } from 'mtrl';
34
- *
35
- * // Create a menu positioned at the bottom-right of its anchor
36
- * const menu = createMenu({
37
- * anchor: '#dropdown-button',
18
+ *
19
+ * // Create a menu positioned at the bottom-right of its opener
20
+ * const menu = createMenu({
21
+ * opener: '#dropdown-button',
38
22
  * items: [...],
39
- * position: MENU_POSITION.BOTTOM_END
23
+ * position: MENU_POSITION.BOTTOM_END
40
24
  * });
41
- *
25
+ *
42
26
  * @category Components
43
27
  */
44
- export { MENU_POSITION } from './types';
28
+ export { MENU_POSITION, MENU_DEFAULTS, MENU_INTERACTION_TYPES, MENU_ITEM_TYPES, MENU_EVENTS, MENU_CLASSES } from './constants';
@@ -0,0 +1,29 @@
1
+ import { MenuConfig, MenuComponent } from './types';
2
+ /**
3
+ * Creates a new Menu component with the specified configuration.
4
+ *
5
+ * The Menu component implements the Material Design 3 menu specifications,
6
+ * providing a flexible dropdown menu system with support for nested menus,
7
+ * keyboard navigation, and ARIA accessibility.
8
+ *
9
+ * Menus are built using a functional composition pattern, applying various
10
+ * features through the pipe function for a modular architecture.
11
+ *
12
+ * The menu element is not added to the DOM until it's opened, and it's removed
13
+ * from the DOM when closed, following best practices for dropdown menus.
14
+ *
15
+ * @param {MenuConfig} config - Configuration options for the menu
16
+ * This must include an opener element or selector, and an array of menu items.
17
+ * See {@link MenuConfig} for all available options.
18
+ *
19
+ * @returns {MenuComponent} A fully configured menu component instance with
20
+ * all requested features applied. The returned component has methods for
21
+ * menu manipulation, event handling, and lifecycle management.
22
+ *
23
+ * @throws {Error} Throws an error if menu creation fails or if required
24
+ * configuration (like opener) is missing.
25
+ *
26
+ * @category Components
27
+ */
28
+ declare const createMenu: (config: MenuConfig) => MenuComponent;
29
+ export default createMenu;
@@ -0,0 +1,338 @@
1
+ /**
2
+ * Menu position options
3
+ * Controls where the menu will appear relative to its opener element
4
+ *
5
+ * @category Components
6
+ */
7
+ export declare const MENU_POSITION: {
8
+ /** Places menu below the opener, aligned to left edge */
9
+ readonly BOTTOM_START: "bottom-start";
10
+ /** Places menu below the opener, centered */
11
+ readonly BOTTOM: "bottom";
12
+ /** Places menu below the opener, aligned to right edge */
13
+ readonly BOTTOM_END: "bottom-end";
14
+ /** Places menu above the opener, aligned to left edge */
15
+ readonly TOP_START: "top-start";
16
+ /** Places menu above the opener, centered */
17
+ readonly TOP: "top";
18
+ /** Places menu above the opener, aligned to right edge */
19
+ readonly TOP_END: "top-end";
20
+ /** Places menu to the right of the opener, aligned to top edge */
21
+ readonly RIGHT_START: "right-start";
22
+ /** Places menu to the right of the opener, centered */
23
+ readonly RIGHT: "right";
24
+ /** Places menu to the right of the opener, aligned to bottom edge */
25
+ readonly RIGHT_END: "right-end";
26
+ /** Places menu to the left of the opener, aligned to top edge */
27
+ readonly LEFT_START: "left-start";
28
+ /** Places menu to the left of the opener, centered */
29
+ readonly LEFT: "left";
30
+ /** Places menu to the left of the opener, aligned to bottom edge */
31
+ readonly LEFT_END: "left-end";
32
+ };
33
+ /**
34
+ * Position options for the menu
35
+ *
36
+ * @category Components
37
+ */
38
+ export type MenuPosition = typeof MENU_POSITION[keyof typeof MENU_POSITION];
39
+ /**
40
+ * Configuration interface for a menu item
41
+ *
42
+ * @category Components
43
+ */
44
+ export interface MenuItem {
45
+ /**
46
+ * Unique ID for the menu item
47
+ * Required for accessibility and event handling
48
+ */
49
+ id: string;
50
+ /**
51
+ * Display text for the menu item
52
+ */
53
+ text: string;
54
+ /**
55
+ * Optional icon to display before the text
56
+ * Accepts HTML string (typically SVG)
57
+ */
58
+ icon?: string;
59
+ /**
60
+ * Optional keyboard shortcut hint to display
61
+ * Shown at the end of the menu item
62
+ */
63
+ shortcut?: string;
64
+ /**
65
+ * Whether the menu item is disabled
66
+ * Disabled items cannot be clicked but remain visible
67
+ */
68
+ disabled?: boolean;
69
+ /**
70
+ * Whether this item has a submenu
71
+ * If true, the item will show an indicator and can open a nested menu
72
+ */
73
+ hasSubmenu?: boolean;
74
+ /**
75
+ * Optional array of submenu items
76
+ * Only used when hasSubmenu is true
77
+ */
78
+ submenu?: MenuItem[];
79
+ /**
80
+ * Additional data to associate with the menu item
81
+ * This can be used for custom behavior in click handlers
82
+ */
83
+ data?: any;
84
+ }
85
+ /**
86
+ * Menu item type for dividers
87
+ *
88
+ * @category Components
89
+ */
90
+ export interface MenuDivider {
91
+ /**
92
+ * Type must be 'divider' to differentiate from regular menu items
93
+ */
94
+ type: 'divider';
95
+ /**
96
+ * Optional ID for the divider (for accessibility)
97
+ */
98
+ id?: string;
99
+ }
100
+ /**
101
+ * Combined type for menu content items (regular items or dividers)
102
+ *
103
+ * @category Components
104
+ */
105
+ export type MenuContent = MenuItem | MenuDivider;
106
+ /**
107
+ * Configuration interface for the Menu component
108
+ *
109
+ * @category Components
110
+ */
111
+ export interface MenuConfig {
112
+ /**
113
+ * Element to which the menu will be openered
114
+ * Can be an HTML element, a CSS selector string, or a component with an element property
115
+ */
116
+ opener: HTMLElement | string | {
117
+ element: HTMLElement;
118
+ };
119
+ /**
120
+ * Array of menu items and dividers to display
121
+ */
122
+ items: MenuContent[];
123
+ /**
124
+ * Position of the menu relative to the opener
125
+ * @default 'bottom-start'
126
+ */
127
+ position?: MenuPosition;
128
+ /**
129
+ * Whether the menu should close when an item is clicked
130
+ * @default true
131
+ */
132
+ closeOnSelect?: boolean;
133
+ /**
134
+ * Whether the menu should close when the user clicks outside
135
+ * @default true
136
+ */
137
+ closeOnClickOutside?: boolean;
138
+ /**
139
+ * Whether the menu should close when the escape key is pressed
140
+ * @default true
141
+ */
142
+ closeOnEscape?: boolean;
143
+ /**
144
+ * Whether submenus should open on hover
145
+ * @default true
146
+ */
147
+ openSubmenuOnHover?: boolean;
148
+ /**
149
+ * Optional width for the menu (in CSS units)
150
+ * If not provided, menu will size to its content
151
+ */
152
+ width?: string;
153
+ /**
154
+ * Optional maximum height for the menu (in CSS units)
155
+ * If content exceeds this height, the menu will scroll
156
+ */
157
+ maxHeight?: string;
158
+ /**
159
+ * Optional offset from the opener (in pixels)
160
+ * @default 8
161
+ */
162
+ offset?: number;
163
+ /**
164
+ * Whether the menu should automatically flip position to stay in viewport
165
+ * @default true
166
+ */
167
+ autoFlip?: boolean;
168
+ /**
169
+ * Whether the menu is initially visible
170
+ * @default false
171
+ */
172
+ visible?: boolean;
173
+ /**
174
+ * Additional CSS classes to add to the menu
175
+ */
176
+ class?: string;
177
+ /**
178
+ * Component prefix for CSS class names
179
+ * @default 'mtrl'
180
+ */
181
+ prefix?: string;
182
+ /**
183
+ * Component name used in CSS class generation
184
+ * @default 'menu'
185
+ */
186
+ componentName?: string;
187
+ /**
188
+ * Event handlers for the menu
189
+ */
190
+ on?: {
191
+ /**
192
+ * Called when the menu is opened
193
+ */
194
+ open?: (event: MenuEvent) => void;
195
+ /**
196
+ * Called when the menu is closed
197
+ */
198
+ close?: (event: MenuEvent) => void;
199
+ /**
200
+ * Called when a menu item is selected
201
+ */
202
+ select?: (event: MenuSelectEvent) => void;
203
+ };
204
+ }
205
+ /**
206
+ * Menu event interface
207
+ *
208
+ * @category Components
209
+ */
210
+ export interface MenuEvent {
211
+ /** The menu component that triggered the event */
212
+ menu: MenuComponent;
213
+ /** Original DOM event if available */
214
+ originalEvent?: Event;
215
+ /** Function to prevent default behavior */
216
+ preventDefault: () => void;
217
+ /** Whether default behavior was prevented */
218
+ defaultPrevented: boolean;
219
+ }
220
+ /**
221
+ * Menu selection event interface
222
+ *
223
+ * @category Components
224
+ */
225
+ export interface MenuSelectEvent extends MenuEvent {
226
+ /** The selected menu item */
227
+ item: MenuItem;
228
+ /** ID of the selected menu item */
229
+ itemId: string;
230
+ /** Data associated with the menu item (if any) */
231
+ itemData?: any;
232
+ }
233
+ /**
234
+ * Menu component interface
235
+ *
236
+ * @category Components
237
+ */
238
+ export interface MenuComponent {
239
+ /** The menu's root DOM element */
240
+ element: HTMLElement;
241
+ /**
242
+ * Opens the menu
243
+ * @param event - Optional event that triggered the open
244
+ * @param interactionType - The type of interaction that triggered the open ('mouse' or 'keyboard')
245
+ * @returns The menu component for chaining
246
+ */
247
+ open: (event?: Event, interactionType?: 'mouse' | 'keyboard') => MenuComponent;
248
+ /**
249
+ * Closes the menu
250
+ * @param event - Optional event that triggered the close
251
+ * @returns The menu component for chaining
252
+ */
253
+ close: (event?: Event) => MenuComponent;
254
+ /**
255
+ * Toggles the menu's open state
256
+ * @param event - Optional event that triggered the toggle
257
+ * @returns The menu component for chaining
258
+ */
259
+ toggle: (event?: Event) => MenuComponent;
260
+ /**
261
+ * Checks if the menu is currently open
262
+ * @returns True if the menu is open
263
+ */
264
+ isOpen: () => boolean;
265
+ /**
266
+ * Updates the menu items
267
+ * @param items - New array of menu items and dividers
268
+ * @returns The menu component for chaining
269
+ */
270
+ setItems: (items: MenuContent[]) => MenuComponent;
271
+ /**
272
+ * Gets the current menu items
273
+ * @returns Array of current menu items and dividers
274
+ */
275
+ getItems: () => MenuContent[];
276
+ /**
277
+ * Updates the menu's opener element
278
+ * @param opener - New opener element or selector
279
+ * @returns The menu component for chaining
280
+ */
281
+ setOpener: (opener: HTMLElement | string) => MenuComponent;
282
+ /**
283
+ * Gets the current opener element
284
+ * @returns Current opener element
285
+ */
286
+ getOpener: () => HTMLElement;
287
+ /**
288
+ * Updates the menu's position
289
+ * @param position - New position value
290
+ * @returns The menu component for chaining
291
+ */
292
+ setPosition: (position: MenuPosition) => MenuComponent;
293
+ /**
294
+ * Gets the current menu position
295
+ * @returns Current position
296
+ */
297
+ getPosition: () => MenuPosition;
298
+ /**
299
+ * Sets the selected menu item
300
+ * @param itemId - ID of the menu item to mark as selected
301
+ * @returns The menu component for chaining
302
+ */
303
+ setSelected: (itemId: string) => MenuComponent;
304
+ /**
305
+ * Gets the currently selected menu item's ID
306
+ * @returns ID of the selected menu item or null if none is selected
307
+ */
308
+ getSelected: () => string | null;
309
+ /**
310
+ * Adds an event listener to the menu
311
+ * @param event - Event name ('open', 'close', 'select')
312
+ * @param handler - Event handler function
313
+ * @returns The menu component for chaining
314
+ */
315
+ on: <T extends keyof MenuEvents>(event: T, handler: MenuEvents[T]) => MenuComponent;
316
+ /**
317
+ * Removes an event listener from the menu
318
+ * @param event - Event name
319
+ * @param handler - Event handler function
320
+ * @returns The menu component for chaining
321
+ */
322
+ off: <T extends keyof MenuEvents>(event: T, handler: MenuEvents[T]) => MenuComponent;
323
+ /**
324
+ * Destroys the menu component and cleans up resources
325
+ */
326
+ destroy: () => void;
327
+ }
328
+ /**
329
+ * Menu events interface for type-checking
330
+ *
331
+ * @category Components
332
+ * @internal
333
+ */
334
+ export interface MenuEvents {
335
+ 'open': (event: MenuEvent) => void;
336
+ 'close': (event: MenuEvent) => void;
337
+ 'select': (event: MenuSelectEvent) => void;
338
+ }